From 1172de622b5e615677918d4fa0f02a9b2766171c Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 11 八月 2023 14:27:19 +0800
Subject: [PATCH] admin3

---
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiDriverController.java                   |   52 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedbackMapper.xml                       |   19 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_edit.html                                              |   42 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/SiteWarpper.java                          |   43 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyService.java                         |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/ConstantFactory.java                   |  333 
 UserOKTravel/guns-admin/src/main/webapp/static/js/contabs.js                                                                 |  339 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.min.js                               |    3 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IGDInterfaceService.java                     |   10 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysIntegral.java                               |   62 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/laydate.css                                  |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/UrlEncoderUtils.java                            |   44 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java                                   |  218 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INettyService.java                           |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserInfoMapper.java                              |   55 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOperationLogService.java                    |   24 
 UserOKTravel/guns-admin/src/main/webapp/static/js/bootstrap.min.js                                                           |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VerifiedMapper.xml                       |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java                           |   69 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java    |   59 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/InvoiceController.java                                  |  103 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRedenvelopeService.java         |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SystemException.java                            |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java                      |  130 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityRegisteredMapper.java              |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VerifiedWarpper.java                         |   69 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept_info.js                                              |  182 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                   |  122 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedbackService.java                        |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/listener/ConfigListener.java                                   |   54 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java                        |  716 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu.js                                                   |  119 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java                     |   27 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/table.tag                                                   |   12 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserServiceImpl.java                    |   48 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java        |   48 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ResultNotification.java             |  215 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/RestApiInteceptor.java                               |   62 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DeptServiceImpl.java                    |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/Const.java                                     |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java                    |  878 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java                               |  224 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRedenvelopeMapper.xml        |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java                          |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthService.java                                |   51 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/tag/DictSelectorTag.java                                       |  201 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityBusinessService.java                |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VersionManagementServiceImpl.java       |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java                               |  104 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCityBusiness.java                          |   45 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                   |  417 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAgreementService.java                       |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderPositionService.java                   |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemNotice.java                              |  147 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/Cache.java                               |   15 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java                |   73 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_add.html                                               |   42 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/avatar.tag                                                  |   29 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/button.tag                                                  |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java                       |  168 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/ztree-object.js                                                     |   94 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java                     |   48 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/4.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/IConstantFactory.java                  |  116 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderEvaluateMapper.java                         |   22 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/404.html                                                                |   41 
 UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap.min.css                                                         |    6 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineSite.java                               |  121 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InvoiceMapper.xml                        |   35 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityDiscount1.java                     |  134 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java  |  153 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.css                                        |   28 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/BlackboardController.java                 |   35 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SystemNoticeController.java                             |  174 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralOrderMapper.java                         |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BankCard.java                                  |  161 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/Config.java                         |   21 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html                                                      |   53 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SmsrecordServiceImpl.java               |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineServiceImpl.java                  |   73 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java                |   69 
 UserOKTravel/guns-admin/pom.xml                                                                                              |  314 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml                      |   27 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.ttf                                                 |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DictMap.java                           |   24 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Agreement.java                                 |   59 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/BeetlConfig.java                                         |   46 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVersionManagementService.java               |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserCouponRecordMapper.xml               |  123 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/factory/DictFieldWarpperFactory.java   |   33 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml                 |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpClientUtil.java                  |  265 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/GunsUserFilter.java                                  |  105 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml                         |   38 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MinistryOfTransport.java                        | 1224 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java                                 |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java                           |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ComplaintMapper.java                             |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java                            |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralGoodsWarpper.java                    |   84 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/RoleDict.java                          |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/ShiroFactroy.java                                |   98 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/laydate.js                                                 |    2 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict.js                                                   |  104 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/log.js                                                     |   97 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LocationMapper.java                           |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VerifiedMapper.java                              |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverServiceMapper.java                         |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml                         |  331 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2                                      |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/web-upload-object.js                                                |  126 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.js                                         | 8106 ++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITNoticesService.java                        |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsSpreadService.java     |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/LogDict.java                           |   22 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.min.js                             |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/VersionManagementController.java                        |   60 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java                                   |  924 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/SiteMapper.java                               |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShift.java                              |  117 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Income.java                                    |  134 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java    | 1368 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java     |  239 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineWarpper.java                          |   85 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/OrderCharteredCarMapper.java               |   27 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java                         |   64 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java                         |   61 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/InvoiceWarpper.java                          |  104 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftDriverMapper.java                    |    7 
 UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile.png                                               |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/need/layer.css                                        |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java                          |  164 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IComplaintService.java                       |   18 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.woff                           |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityHistoryMapper.java                 |   24 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/GDInterfaceMapper.xml                    |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java                        |   27 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SmsrecordMapper.xml                      |   14 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/MutiStrFactory.java                    |   96 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/mapping/OrderCharteredCarMapper.xml        |   59 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java              |  158 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java                |  464 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OfflineTravelPayment.java                      |  136 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckManager.java                        |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OfflineTravelPaymentMapper.xml           |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderCancelMapper.xml                    |   70 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_add.html                                               |   64 
 UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap-rtl.css                                                         | 1468 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AdvertisementMapper.xml                  |   43 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml             |   42 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LocationMapper.xml                    |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java        |  116 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/images/sprite-skin-flat.png                                       |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DictMapper.java                                  |   34 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/login_log.html                                               |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TNoticesMapper.xml                       |   66 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/AdvertisementWarpper.java                    |  103 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/NoticeMap.java                         |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java                      |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/Contrast.java                                             |  211 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SensitiveWordsMapper.java                        |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IPaymentRecordService.java                     |   35 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user.html                                                   |   85 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TravelRecordWarpper.java                     |  101 
 UserOKTravel/guns-admin/src/main/webapp/static/css/_fstyle.css                                                               |   65 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml                           |  177 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java                   |  121 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/PaymentRecordMapper.xml                    |   57 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java                           |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityHistory.java                     |  145 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java                             |   33 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java        | 1730 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VersionWarpper.java                          |   84 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_add.html                                               |   40 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/UserMgrController.java                    |  373 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java                              |  135 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityBusinessMapper.xml               |   62 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarServiceMapper.xml                     |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java                             |  146 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                   |  186 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/ServerCarModel.java                            |  120 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java                               |  105 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DictServiceImpl.java                    |  101 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml                            |   71 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralGoodsMapper.java                         |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRoleService.java                            |   68 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityRegistered.java                  |  134 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java                     |  405 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/select-list-object.js                                               |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BaseBean.java                                  |  107 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.svg                            |   45 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SensitiveWords.java                            |   64 
 UserOKTravel/guns-admin/src/main/webapp/static/favicon.ico                                                                   |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif                                       |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ComplaintMapper.xml                      |   17 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/metisMenu/jquery.metisMenu.js                                      |  120 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AgreementMapper.java                             |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OperationLogServiceImpl.java            |   28 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/select.tag                                                  |   22 
 UserOKTravel/guns-admin/src/main/webapp/static/img/icons.png                                                                 |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderEvaluate.java                             |  136 
 UserOKTravel/guns-admin/src/main/webapp/static/js/hplus.js                                                                   |  294 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java                              |   44 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogType.java                             |   30 
 UserOKTravel/guns-admin/src/main/webapp/static/css/style.css                                                                 | 7897 ++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/MenuDict.java                          |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOrdersServiceImpl.java            |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverOrdersService.java                    |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OfflineTravelPaymentMapper.java                  |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Role.java                                      |  127 
 UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.js                                                              |    4 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java                               |  857 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java                  |   37 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java                                 |   57 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/3.png                                               |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff                                       |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineService.java                          |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Advertisement.java                             |  127 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/wangEditor/wangEditor.js                                           | 3967 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/NoticeMapper.java                                |   25 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml                    |   58 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml                  |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml                        |  398 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java                           |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogSucceed.java                          |   27 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java                             |   29 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java                    |   73 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.min.js                                     |    3 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table.min.js                             |    8 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/tree-table-object.js                                                |  136 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                                 |  862 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuStatus.java                          |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/MenuServiceImpl.java                    |   90 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginLogController.java                   |   69 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Location.java                               |  203 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/ApiMenuFilter.java                                        |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RedPacketRecordServiceImpl.java         |   18 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_assign.html                                            |   75 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/GlobalExceptionHandler.java                                |  123 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityMapper.xml                       |   61 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml                         |   23 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JuHeUtil.java                                   |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserMapper.java                                  |   45 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOfflineTravelPaymentService.java            |    7 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.eot                                                 |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js                |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISmsrecordService.java                       |   17 
 UserOKTravel/guns-admin/src/main/webapp/static/img/bg.png                                                                    |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedbackMapper.java                              |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/WithdrawalMapper.java                            |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/PaymentRecordServiceImpl.java             |   69 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BankCardMapper.java                              |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralOrderMapper.xml                  |   32 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/pace/pace.min.js                                                   |    2 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html                                                  |   71 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Region.java                                    |  104 
 UserOKTravel/guns-admin/src/main/resources/redis.properties                                                                  |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dict.java                                      |  116 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.js                                  | 6502 ++
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/NameCon.tag                                                 |   14 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILoginLogService.java                        |   24 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/layer.js                                              |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthIntercepter.java                            |   37 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BankCardServiceImpl.java                |   92 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RedPacketRecordMapper.xml                |   35 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml                           |   77 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AdvertisementController.java                            |   48 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/6.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/TransactionDetailsMapper.xml               |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushOrderMapper.xml                      |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml                       |   12 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityBalance.java                       |  260 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderServerWarpper.java                      |  128 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java                |   23 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ApplicationRunnerUtil.java                      |   99 
 UserOKTravel/guns-admin/src/main/webapp/static/css/login.css                                                                 |   93 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java           |  198 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java                                       |  272 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/code/code.html                                                   |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/Permission.java                                |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISystemNoticeService.java                    |   65 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/EndPushWarpper.java                          |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java              |  197 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ProblemMapper.xml                        |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyServiceImpl.java                 |   12 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role.js                                                   |  125 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DeptController.java                       |  164 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogisticsSpread.java              |  106 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DESUtil.java                                    |  195 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java                     | 1035 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict.html                                                   |   38 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRedenvelopeServiceImpl.java |   32 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/AESUtil.java                                    |   98 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserRedPacketRecordService.java             |   40 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuOpenStatus.java                      |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java                           |   40 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/validate/bootstrapValidator.min.css                               |   12 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceServiceImpl.java           |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SystemNoticeWarpper.java                     |  124 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/login.html                                                              |   63 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/GDInterfaceMapper.java                           |   12 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderCancelMapper.java                           |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/JwtTokenUtil.java                                         |  127 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ManagerStatus.java                       |   49 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/RoleController.java                       |  230 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/PushOrder.java                                 |  118 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.js                            | 4993 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderDriverWarpper.java                      |  181 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java   |  876 
 UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.css                                                          | 2026 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java          |  248 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml             |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OfflineTravelPaymentServiceImpl.java    |   11 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RelationServiceImpl.java                |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java                             |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml         |  206 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice_info.js                                          |  127 
 UserOKTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java                                            |   46 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/PayUtil.java                        |  394 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/demo.css                                                    |   33 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java          |  138 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/TNoticeController.java                                  |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/WithdrawalWarpper.java                       |  101 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserRedPacketRecordServiceImpl.java     |   59 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java             |   84 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/BizLogType.java                          |   51 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml                           |   42 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                 | 1354 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java                  |  130 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java                |   62 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AgreementServiceImpl.java               |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/factory/UserFactory.java                             |   54 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_edit.html                                              |   86 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/5.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LinePriceMapper.java                          |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LinePrice.java                              |  120 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_tab.html                                                        |   74 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DictController.java                       |  142 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/layer.js                                                     |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/controller/OrderPrivateCarController.java      |   95 
 UserOKTravel/guns-admin/src/main/resources/ehcache.xml                                                                       |   57 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/factory/DefaultTemplateFactory.java                    |   61 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java                         |  183 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IInvoiceService.java                         |   29 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityDiscount1Mapper.java                 |   11 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushOrderServiceImpl.java               |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Notice.java                                    |  115 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/NoticeController.java                     |  138 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverMapper.java                                |   43 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/GDInterface.java                               |   93 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/PaymentRecordMapper.java                           |   23 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java                            |   46 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/input.tag                                                   |   51 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js                    |   46 
 UserOKTravel/guns-admin/src/main/webapp/static/img/boy.gif                                                                   |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png                                   |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml                       |  191 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java                        |  235 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user.js                                                   |  207 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverOrders.java                              |   62 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_roleassign.html                                        |   79 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderCancel.java                               |  178 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java                                    |  909 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java                           |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ICBCPayUtil.java                                |  679 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeptDict.java                          |   28 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/service/TableService.java                              |   29 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/KaptchaController.java                    |  114 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.js                                   | 8012 ++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/BeetlConfiguration.java                                  |   71 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process_info.js                                      |   96 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_edit.html                                              |   60 
 UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.map                                                             |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityRegisteredMapper.xml       |   28 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/KaptchaUtil.java                                          |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ProtocolSignUtil.java               |  546 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java                  |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OperationLog.java                              |  154 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java                |  261 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept.html                                                   |   38 
 UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-1.png                                        |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/ajax-object.js                                                      |   66 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java                           |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyCityMapper.java                           |   10 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_edit.html                                              |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml                        |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/DatasourceEnum.java                            |   15 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Expense.java                                   |  123 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/8.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/MenuController.java                       |  244 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/custom.css                                                 |   59 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen.css                                                 |  423 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/JwtConstants.java                              |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java           |   98 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LocationWarpper.java                      |  128 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java                         |  138 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/DateUtils.js                                                        |  173 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/IntegralGoodsController.java                            |  140 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.min.js                              |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SensitiveWordsMapper.xml                 |   11 
 UserOKTravel/guns-admin/src/main/resources/META-INF/spring-devtools.properties                                               |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java                    |   97 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/UUIDUtil.java                                   |   78 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/SelectCon.tag                                               |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineMapper.java                               |   28 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/OrderTaxiMapper.java                               |   92 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite.png                                          |    0 
 UserOKTravel/guns-admin/src/test/sql/test.sql                                                                                |   35 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon.png                                       |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.svg                                        |  288 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/AbstractDictMap.java              |   53 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ProblemController.java                                  |   92 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java                                |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralOrder.java                             |  175 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityInvite.java                        |  162 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AdvertisementMapper.java                         |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineSiteService.java                      |   29 
 UserOKTravel/guns-admin/src/main/resources/application.yml                                                                   |  147 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.js                               | 4622 +
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LinePriceMapper.xml                   |   23 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckFactory.java                        |   73 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java                                           |  174 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/PageFactory.java                       |   38 
 UserOKTravel/guns-admin/sql/guns.sql                                                                                         |  384 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityDiscount1Mapper.xml          |   32 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java                                |  105 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRegistered.java                    |  162 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml                         |   16 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-table/bootstrap-table.min.css                           |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java                                   |  106 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderPositionMapper.java                         |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderPositionMapper.xml                  |   27 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralGoodsServiceImpl.java           |   44 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ProblemWarpper.java                          |   78 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ComplaintServiceImpl.java               |   57 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif                                  |    0 
 UserOKTravel/guns-admin/doc/Guns 技术文档 v1.0.pdf                                                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDeptService.java                            |   33 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java                  |  159 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml            |   74 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java                                |   71 
 UserOKTravel/guns-admin/sql/oktravel.sql                                                                                     | 25883 +++++++++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/VersionManagement.java                         |  120 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java                                   |  133 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java                          |   13 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/loading.gif                                             |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java                                         |  216 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralGoodsService.java                   |   21 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderPosition.java                             |  148 
 UserOKTravel/guns-admin/src/main/resources/logback-spring.xml                                                                |  221 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java                                 |  120 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/ShiroExt.java                                            |  186 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityWarpper.java                |  235 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FeedbackController.java                                 |   58 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/MinistryOfTransportController.java                      |   37 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BankCardMapper.xml                       |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml                    |   26 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite@2x.png                                       |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Verified.java                                  |  134 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeleteDict.java                        |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqAddManager.java                          |   76 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dept.java                                      |  140 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ServerCarModelMapper.java                        |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java                            |   68 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDictService.java                            |   48 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice.js                                               |  106 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/LogAop.java                                                |  105 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/MultiDataSourceConfig.java                        |  125 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/tag_tips                                                    |   22 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.ttf                            |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OperationLogMapper.java                          |   26 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/webuploader/webuploader.css                                       |   30 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.min.js                           |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/OrderCrossCityMapper.java                     |   94 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java             |   74 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_add.html                                               |   63 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png                                         |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/GetMobile.java                                            |   87 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml              |  594 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/HttpUtils.java                                            |  312 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderEvaluateWarpper.java                    |   66 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/VerifyCodeUtils.java                            |  260 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_edit.html                                          |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverService.java                             |   62 
 UserOKTravel/guns-admin/src/main/webapp/static/js/content.js                                                                 |   98 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green@2x.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/GDInterfaceServiceImpl.java             |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HMACSHA1.java                                   |   63 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralGoods.java                             |  148 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqEditManager.java                         |   60 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Phone.java                                     |   90 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/IShiro.java                                      |   50 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java                          |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Feedback.java                                  |  176 
 UserOKTravel/guns-admin/src/main/webapp/static/img/user.png                                                                  |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java            |  278 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/BizExceptionEnum.java                         |  100 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/layer.css                                      |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java            |  115 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CarService.java                                |   76 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf                                        |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiCallbackController.java                 |   23 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ResultUtil.java                                 |  188 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java                          |   63 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/2.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java        |  112 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java                    |   67 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml          |  546 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/EhCacheConfig.java                                           |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPushOrderService.java                       |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserRedPacketRecordMapper.java                   |   42 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff2                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogObjectHolder.java                                       |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysIntegralMapper.java                           |   10 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityBalanceMapper.java                   |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityInviteMapper.java                    |   14 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java           |  117 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.min.js                           |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RedPacketRecordMapper.java                       |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/BussinessLog.java                              |   33 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsServletInitializer.java                                         |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogManager.java                                            |   33 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RegionMapper.java                                |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ManagerUser.java                            |   97 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpResult.java                      |   45 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/InvalidKaptchaException.java                  |   10 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRedenvelopeMapper.java               |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java                                      |   80 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml         |   45 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java             |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityMapper.java                              |   25 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/7.png                                               |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif                                  |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/additional-methods.min.js                                 |    4 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/code/code.html                                                          |  101 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif                                           |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java                    |   90 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/ICheck.java                                        |   32 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java                |   69 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java                                   |  145 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroUser.java                                           |   81 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role_info.js                                              |  194 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java                       |  176 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java                                |   48 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroDbRealm.java                                        |   78 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MD5AndKL.java                                   |  112 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Site.java                                   |  176 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Relation.java                                  |   75 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept.js                                                   |  110 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java                 |  109 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NoticeServiceImpl.java                  |   27 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html                                                              |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAdvertisementService.java                   |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBankCardService.java                        |   42 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java                 |   72 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/Feng.js                                                             |  196 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ExpenseState.java                        |   52 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralOrderServiceImpl.java           |   84 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_add.html                                               |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverServiceService.java                   |   19 
 UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.min.css                                                      |    4 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverOrdersMapper.java                          |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java                             |   27 
 UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-3.png                                        |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShiftDriver.java                        |  134 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IMenuService.java                            |   94 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCity.java                                  |  115 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/TimeCon.tag                                                 |   15 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/SessionHolderInterceptor.java                        |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyCityMapper.xml                    |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java                         |  239 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IProblemService.java                         |   32 
 UserOKTravel/guns-admin/src/main/webapp/static/img/locked.png                                                                |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java                   |   76 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ProblemMapper.java                               |   22 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INoticeService.java                          |   23 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role.html                                                   |   41 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java                                             |   46 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/FontAwesome.otf                                                         |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml                     |   14 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TNoticeWarpper.java                          |   78 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.min.js                        |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/Order.java                               |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserRedPacketRecordMapper.xml            |  103 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu.html                                                   |   41 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralGoodsMapper.xml                  |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/TransactionDetailsMapper.java                      |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushOrderMapper.java                             |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRedPacketRecordService.java                 |    8 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RelationMapper.java                              |   16 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user_info.js                                              |  290 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TNotices.java                                  |  160 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/UserDict.java                          |   36 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java                                  |  128 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml                     |   34 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/zTreeStyle.css                                              |   97 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsSpreadService.java |   12 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java                                   |  694 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsSpreadMapper.java          |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/PaymentRecord.java                               |  202 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java                                                |   85 
 UserOKTravel/guns-admin/src/main/webapp/static/img/girl.gif                                                                  |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserCouponRecordMapper.java                      |   55 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java                 |   90 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java                                |  220 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js                      |    7 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/login_log.js                                               |  113 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRelationService.java                        |   16 
 UserOKTravel/guns-admin/src/main/webapp/static/img/loading-upload.gif                                                        |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VersionManagementMapper.xml              |   26 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_add.html                                           |   39 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/NettyController.java                                    |   91 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LoginLogServiceImpl.java                |   28 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityBusinessMapper.java                      |   29 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TNoticesMapper.java                              |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml                    |   26 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu_info.js                                              |  175 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java                                           |   48 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderStatusWarpper.java                      |   38 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/Uploader.swf                                           |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java                   |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java                          |  226 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/SingleDataSourceConfig.java                       |   61 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogTaskFactory.java                                |  102 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemNoticeMapper.xml                   |   51 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/CacheKey.java                            |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsSpreadMapper.xml   |   14 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/RedPacketRecord.java                           |  162 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/SystemDict.java                   |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SpringSessionConfig.java                                     |   15 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java                                    |   72 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java                     |   18 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js                         |  308 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemNoticeMapper.java                          |   47 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_theme.html                                                      |   84 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png                                       |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java                                   |   59 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogFactory.java                                    |   47 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthenticationKit.java                          |  233 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RoleMapper.java                                  |   53 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/CouponWarpper.java                           |  124 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml                   |   46 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ExpenseMapper.java                               |   16 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SysIntegralMapper.xml                    |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java             |   19 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java     |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java                   |  232 
 UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/shattered.png                                                    |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense.js                                           |   93 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralOrderService.java                   |   30 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java                                 |  123 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif                                  |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java                               |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml          |   53 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java                            |  267 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java                             |   96 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/MenuMapper.java                                  |   80 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/9.png                                               |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VersionManagementMapper.java                     |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserCouponRecord.java                          |  234 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot                                        |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/ztree/jquery.ztree.all.min.js                                      |  165 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense_info.js                                      |   96 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SmsrecordMapper.java                             |    7 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemPrice.java                               |   90 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                                    | 1821 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff                                                |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverOrdersMapper.xml                   |   25 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVerifiedService.java                        |   17 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HashKit.java                                    |  109 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/LoginLogMapper.java                              |   27 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml                        |  121 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java                               |  139 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/Configuration.java                              |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java                                 |  125 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java                                  |  356 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.eot                            |    0 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.js                               | 6030 ++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InvoiceMapper.java                               |   22 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/zh_CN.js                                                  |  370 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java                | 1274 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AdvertisementServiceImpl.java           |   40 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/slimscroll/jquery.slimscroll.min.js                                |   15 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/BeetlProperties.java                              |  103 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.fis.js                                     | 8083 ++
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java                   |   79 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VerifiedServiceImpl.java                |   59 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/User.java                                      |  232 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/log.html                                                     |   46 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java                      |  235 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CompanyCity.java                               |  104 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/UserDto.java                                |  153 
 UserOKTravel/guns-admin/src/main/webapp/static/js/common/bootstrap-table-object.js                                           |  134 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_view.html                                              |   75 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/LoginLog.java                                  |  128 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/bootstrapValidator.min.js                                 |   14 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/code/code.js                                                   |   18 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderEvaluateMapper.xml                  |   26 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java                         |  894 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict_info.js                                              |  118 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java                            |  129 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRegisteredMapper.java                |   19 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png                                          |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LogController.java                        |   84 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice.html                                               |   38 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_chpwd.html                                             |   34 
 UserOKTravel/guns-admin/src/main/webapp/static/modular/code/gen.js                                                           |   93 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml                           |   37 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml                       |   41 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml                          |   68 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_edit.html                                              |   43 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml                   |   29 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css                       |   10 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroKit.java                                            |  290 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DeptMapper.java                                  |   31 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/PermissionAop.java                                         |   70 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TNoticesServiceImpl.java                |   32 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SmartScreenOrderVo.java                      |   99 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java                                   |   29 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java          |   20 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsMapper.java                |   61 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BankCardController.java                                 |  127 
 UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/blackboard.html                                                         |   14 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/iCheck/icheck.min.js                                               |   11 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Menu.java                                      |  208 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java                             |   28 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml                           |   79 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java  |   35 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRedenvelope.java                   |  162 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Smsrecord.java                                 |  106 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/chosen/chosen.jquery.js                                            | 1211 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml                        |   20 
 UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.js                                 | 5026 +
 UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process.js                                           |   77 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Complaint.java                                 |  148 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml                        |   34 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java          |   58 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralOrderWarpper.java                    |   74 
 UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.svg                                                 |  640 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Problem.java                                   |  134 
 UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green.png                                                  |    0 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarServiceMapper.java                            |   11 
 742 files changed, 166,339 insertions(+), 0 deletions(-)

diff --git "a/UserOKTravel/guns-admin/doc/Guns \346\212\200\346\234\257\346\226\207\346\241\243 v1.0.pdf" "b/UserOKTravel/guns-admin/doc/Guns \346\212\200\346\234\257\346\226\207\346\241\243 v1.0.pdf"
new file mode 100644
index 0000000..49bafc9
--- /dev/null
+++ "b/UserOKTravel/guns-admin/doc/Guns \346\212\200\346\234\257\346\226\207\346\241\243 v1.0.pdf"
Binary files differ
diff --git a/UserOKTravel/guns-admin/pom.xml b/UserOKTravel/guns-admin/pom.xml
new file mode 100644
index 0000000..04438de
--- /dev/null
+++ b/UserOKTravel/guns-admin/pom.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.stylefeng</groupId>
+        <artifactId>guns-parent</artifactId>
+        <version>1.0.0</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>guns-admin</artifactId>
+    <name>guns-admin</name>
+    <description>guns 的spring boot版本</description>
+
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <!--整合hystrix-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.stylefeng</groupId>
+            <artifactId>guns-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.stylefeng</groupId>
+            <artifactId>guns-generator</artifactId>
+        </dependency>
+
+        <!--spring boot依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-cache</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-validation</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-core</artifactId>
+            <version>2.11.3</version>
+        </dependency>
+
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.boot</groupId>-->
+            <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
+            <!--<scope>provided</scope>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>javax.servlet</groupId>-->
+            <!--<artifactId>javax.servlet-api</artifactId>-->
+            <!--<version>3.1.0</version>-->
+            <!--<scope>provided</scope>-->
+        <!--</dependency>-->
+
+
+        <!--shiro依赖-->
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-core</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-api</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-spring</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.shiro</groupId>
+            <artifactId>shiro-ehcache</artifactId>
+            <exclusions>
+                <exclusion>
+                    <artifactId>slf4j-api</artifactId>
+                    <groupId>org.slf4j</groupId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.ehcache</groupId>
+            <artifactId>ehcache</artifactId>
+        </dependency>
+
+        <!--需要分布式session的话需要放开注释-->
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.session</groupId>-->
+            <!--<artifactId>spring-session-data-redis</artifactId>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+            <!--<groupId>org.springframework.boot</groupId>-->
+            <!--<artifactId>spring-boot-starter-data-redis</artifactId>-->
+        <!--</dependency>-->
+
+        <dependency>
+            <groupId>com.github.penggle</groupId>
+            <artifactId>kaptcha</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ibeetl</groupId>
+            <artifactId>beetl</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>redis.clients</groupId>
+            <artifactId>jedis</artifactId>
+            <version>2.9.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>dom4j</groupId>
+            <artifactId>dom4j</artifactId>
+            <version>1.6.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alipay.sdk</groupId>
+            <artifactId>alipay-sdk-java</artifactId>
+            <version>4.8.10.ALL</version>
+        </dependency>
+        <!-- oos对象存储 -->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+            <version>3.8.0</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.4.3</version>
+        </dependency>
+
+        <!-- 计算两坐标间的直线距离 -->
+        <dependency>
+            <groupId>org.gavaghan</groupId>
+            <artifactId>geodesy</artifactId>
+            <version>1.1.3</version>
+        </dependency>
+
+        <!--DES加密DES/ECB/PKCS7Padding填充类型支持插件-->
+        <dependency>
+            <groupId>org.bouncycastle</groupId>
+            <artifactId>bcprov-jdk15on</artifactId>
+            <version>1.60</version>
+        </dependency>
+
+        <!--引入本地工行支付jar start-->
+        <dependency>
+            <groupId>com.icbc</groupId>
+            <artifactId>icbc</artifactId>
+            <version>v2</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/icbc-api-sdk-cop.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>com.icbc.api</groupId>
+            <artifactId>icbc</artifactId>
+            <version>v2</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/icbc-api-sdk-cop-io.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>cn.com.infosec</groupId>
+            <artifactId>icbc</artifactId>
+            <version>v2</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/icbc-ca.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>cn.com.infosecCrypto</groupId>
+            <artifactId>icbc</artifactId>
+            <version>v2</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/InfosecCrypto_Java1_02_JDK14+.jar</systemPath>
+        </dependency>
+        <dependency>
+            <groupId>proguard</groupId>
+            <artifactId>icbc</artifactId>
+            <version>v2</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/proguard.jar</systemPath>
+        </dependency>
+        <!--引入本地工行支付jar end-->
+        <!--柳州银行jar -->
+        <dependency>
+            <groupId>proguard</groupId>
+            <artifactId>icbc</artifactId>
+            <version>v2</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/lib/fop.sdk-1.6.15-ALL-20221125160915.jar</systemPath>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <!--打包jar包方式-->
+        <!--<plugins>-->
+            <!--<plugin>-->
+                <!--<groupId>org.springframework.boot</groupId>-->
+                <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
+                <!--<configuration>-->
+                    <!--<fork>true</fork>&lt;!&ndash; 如果没有该项配置,肯呢个devtools不会起作用,即应用不会restart &ndash;&gt;-->
+                <!--</configuration>-->
+            <!--</plugin>-->
+        <!--</plugins>-->
+
+        <!--打包jar包方式-->
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <includeSystemScope>true</includeSystemScope>
+                </configuration>
+            </plugin>
+        </plugins>
+
+        <!--打包war包引入本地jar的打包方式-->
+<!--        <plugins>-->
+<!--            <plugin>-->
+<!--                <groupId>org.apache.maven.plugins</groupId>-->
+<!--                <artifactId>maven-war-plugin</artifactId>-->
+<!--                <configuration>-->
+<!--                    &lt;!&ndash; 设置成false,否则检查web.xml是否存在。因为springboot是没有web.xml的 &ndash;&gt;-->
+<!--                    <failOnMissingWebXml>false</failOnMissingWebXml>-->
+<!--                    &lt;!&ndash;打包后的项目名&ndash;&gt;-->
+<!--                    &lt;!&ndash;<warName>example</warName>&ndash;&gt;-->
+<!--                    <webResources>-->
+<!--                        <resource>-->
+<!--                            &lt;!&ndash;把本地lib里面的jar复制到lib&ndash;&gt;-->
+<!--                            <directory>${project.basedir}/lib</directory>-->
+<!--                            <targetPath>WEB-INF/lib/</targetPath>-->
+<!--                            <includes>-->
+<!--                                <include>**/*.jar</include>-->
+<!--                            </includes>-->
+<!--                        </resource>-->
+<!--                    </webResources>-->
+<!--                </configuration>-->
+<!--            </plugin>-->
+<!--        </plugins>-->
+
+
+        <resources>
+            <resource>
+                <directory>lib</directory>
+                <targetPath>/BOOT-INF/lib/</targetPath>
+                <includes>
+                    <include>**/*.jar</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>src/main/webapp</directory>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>true</filtering>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
+    </build>
+
+</project>
diff --git a/UserOKTravel/guns-admin/sql/guns.sql b/UserOKTravel/guns-admin/sql/guns.sql
new file mode 100644
index 0000000..4da462e
--- /dev/null
+++ b/UserOKTravel/guns-admin/sql/guns.sql
@@ -0,0 +1,384 @@
+/*
+Navicat MySQL Data Transfer
+
+Source Server         : localhost
+Source Server Version : 50721
+Source Host           : localhost:3306
+Source Database       : guns
+
+Target Server Type    : MYSQL
+Target Server Version : 50721
+File Encoding         : 65001
+
+Date: 2018-06-26 23:10:40
+*/
+
+DROP DATABASE IF EXISTS guns;
+CREATE DATABASE IF NOT EXISTS guns DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+
+USE guns;
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for sys_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dept`;
+CREATE TABLE `sys_dept` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `num` int(11) DEFAULT NULL COMMENT '排序',
+  `pid` int(11) DEFAULT NULL COMMENT '父部门id',
+  `pids` varchar(255) DEFAULT NULL COMMENT '父级ids',
+  `simplename` varchar(45) DEFAULT NULL COMMENT '简称',
+  `fullname` varchar(255) DEFAULT NULL COMMENT '全称',
+  `tips` varchar(255) DEFAULT NULL COMMENT '提示',
+  `version` int(11) DEFAULT NULL COMMENT '版本(乐观锁保留字段)',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 COMMENT='部门表';
+
+-- ----------------------------
+-- Records of sys_dept
+-- ----------------------------
+INSERT INTO `sys_dept` VALUES ('24', '1', '0', '[0],', '总公司', '总公司', '', null);
+INSERT INTO `sys_dept` VALUES ('25', '2', '24', '[0],[24],', '开发部', '开发部', '', null);
+INSERT INTO `sys_dept` VALUES ('26', '3', '24', '[0],[24],', '运营部', '运营部', '', null);
+INSERT INTO `sys_dept` VALUES ('27', '4', '24', '[0],[24],', '战略部', '战略部', '', null);
+
+-- ----------------------------
+-- Table structure for sys_dict
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict`;
+CREATE TABLE `sys_dict` (
+  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `num` int(11) DEFAULT NULL COMMENT '排序',
+  `pid` int(11) DEFAULT NULL COMMENT '父级字典',
+  `name` varchar(255) DEFAULT NULL COMMENT '名称',
+  `tips` varchar(255) DEFAULT NULL COMMENT '提示',
+  `code` varchar(255) DEFAULT NULL COMMENT '值',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='字典表';
+
+-- ----------------------------
+-- Records of sys_dict
+-- ----------------------------
+INSERT INTO `sys_dict` VALUES ('50', '0', '0', '性别', null, 'sys_sex');
+INSERT INTO `sys_dict` VALUES ('51', '1', '50', '男', null, '1');
+INSERT INTO `sys_dict` VALUES ('52', '2', '50', '女', null, '2');
+INSERT INTO `sys_dict` VALUES ('53', '0', '0', '状态', null, 'sys_state');
+INSERT INTO `sys_dict` VALUES ('54', '1', '53', '启用', null, '1');
+INSERT INTO `sys_dict` VALUES ('55', '2', '53', '禁用', null, '2');
+INSERT INTO `sys_dict` VALUES ('56', '0', '0', '账号状态', null, 'account_state');
+INSERT INTO `sys_dict` VALUES ('57', '1', '56', '启用', null, '1');
+INSERT INTO `sys_dict` VALUES ('58', '2', '56', '冻结', null, '2');
+INSERT INTO `sys_dict` VALUES ('59', '3', '56', '已删除', null, '3');
+
+-- ----------------------------
+-- Table structure for sys_expense
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_expense`;
+CREATE TABLE `sys_expense` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(20,2) DEFAULT NULL COMMENT '报销金额',
+  `desc` varchar(255) DEFAULT '' COMMENT '描述',
+  `createtime` datetime DEFAULT NULL COMMENT '创建时间',
+  `state` int(11) DEFAULT NULL COMMENT '状态: 1.待提交  2:待审核   3.审核通过 4:驳回',
+  `userid` int(11) DEFAULT NULL COMMENT '用户id',
+  `processId` varchar(255) DEFAULT NULL COMMENT '流程定义id',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='报销表';
+
+-- ----------------------------
+-- Records of sys_expense
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_login_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_login_log`;
+CREATE TABLE `sys_login_log` (
+  `id` int(65) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `logname` varchar(255) DEFAULT NULL COMMENT '日志名称',
+  `userid` int(65) DEFAULT NULL COMMENT '管理员id',
+  `createtime` datetime DEFAULT NULL COMMENT '创建时间',
+  `succeed` varchar(255) DEFAULT NULL COMMENT '是否执行成功',
+  `message` text COMMENT '具体消息',
+  `ip` varchar(255) DEFAULT NULL COMMENT '登录ip',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=217 DEFAULT CHARSET=utf8 COMMENT='登录记录';
+
+-- ----------------------------
+-- Records of sys_login_log
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `code` varchar(255) DEFAULT NULL COMMENT '菜单编号',
+  `pcode` varchar(255) DEFAULT NULL COMMENT '菜单父编号',
+  `pcodes` varchar(255) DEFAULT NULL COMMENT '当前菜单的所有父菜单编号',
+  `name` varchar(255) DEFAULT NULL COMMENT '菜单名称',
+  `icon` varchar(255) DEFAULT NULL COMMENT '菜单图标',
+  `url` varchar(255) DEFAULT NULL COMMENT 'url地址',
+  `num` int(65) DEFAULT NULL COMMENT '菜单排序号',
+  `levels` int(65) DEFAULT NULL COMMENT '菜单层级',
+  `ismenu` int(11) DEFAULT NULL COMMENT '是否是菜单(1:是  0:不是)',
+  `tips` varchar(255) DEFAULT NULL COMMENT '备注',
+  `status` int(65) DEFAULT NULL COMMENT '菜单状态 :  1:启用   0:不启用',
+  `isopen` int(11) DEFAULT NULL COMMENT '是否打开:    1:打开   0:不打开',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=171 DEFAULT CHARSET=utf8 COMMENT='菜单表';
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES ('105', 'system', '0', '[0],', '系统管理', 'fa-user', '#', '4', '1', '1', null, '1', '1');
+INSERT INTO `sys_menu` VALUES ('106', 'mgr', 'system', '[0],[system],', '用户管理', '', '/mgr', '1', '2', '1', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('107', 'mgr_add', 'mgr', '[0],[system],[mgr],', '添加用户', null, '/mgr/add', '1', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('108', 'mgr_edit', 'mgr', '[0],[system],[mgr],', '修改用户', null, '/mgr/edit', '2', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('109', 'mgr_delete', 'mgr', '[0],[system],[mgr],', '删除用户', null, '/mgr/delete', '3', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('110', 'mgr_reset', 'mgr', '[0],[system],[mgr],', '重置密码', null, '/mgr/reset', '4', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('111', 'mgr_freeze', 'mgr', '[0],[system],[mgr],', '冻结用户', null, '/mgr/freeze', '5', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('112', 'mgr_unfreeze', 'mgr', '[0],[system],[mgr],', '解除冻结用户', null, '/mgr/unfreeze', '6', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('113', 'mgr_setRole', 'mgr', '[0],[system],[mgr],', '分配角色', null, '/mgr/setRole', '7', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('114', 'role', 'system', '[0],[system],', '角色管理', null, '/role', '2', '2', '1', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('115', 'role_add', 'role', '[0],[system],[role],', '添加角色', null, '/role/add', '1', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('116', 'role_edit', 'role', '[0],[system],[role],', '修改角色', null, '/role/edit', '2', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('117', 'role_remove', 'role', '[0],[system],[role],', '删除角色', null, '/role/remove', '3', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('118', 'role_setAuthority', 'role', '[0],[system],[role],', '配置权限', null, '/role/setAuthority', '4', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('119', 'menu', 'system', '[0],[system],', '菜单管理', null, '/menu', '4', '2', '1', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('120', 'menu_add', 'menu', '[0],[system],[menu],', '添加菜单', null, '/menu/add', '1', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('121', 'menu_edit', 'menu', '[0],[system],[menu],', '修改菜单', null, '/menu/edit', '2', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('122', 'menu_remove', 'menu', '[0],[system],[menu],', '删除菜单', null, '/menu/remove', '3', '3', '0', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('128', 'log', 'system', '[0],[system],', '业务日志', null, '/log', '6', '2', '1', null, '1', '0');
+INSERT INTO `sys_menu` VALUES ('130', 'druid', 'system', '[0],[system],', '监控管理', null, '/druid', '7', '2', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('131', 'dept', 'system', '[0],[system],', '部门管理', null, '/dept', '3', '2', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('132', 'dict', 'system', '[0],[system],', '字典管理', null, '/dict', '4', '2', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('133', 'loginLog', 'system', '[0],[system],', '登录日志', null, '/loginLog', '6', '2', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('134', 'log_clean', 'log', '[0],[system],[log],', '清空日志', null, '/log/delLog', '3', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('135', 'dept_add', 'dept', '[0],[system],[dept],', '添加部门', null, '/dept/add', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('136', 'dept_update', 'dept', '[0],[system],[dept],', '修改部门', null, '/dept/update', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('137', 'dept_delete', 'dept', '[0],[system],[dept],', '删除部门', null, '/dept/delete', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('138', 'dict_add', 'dict', '[0],[system],[dict],', '添加字典', null, '/dict/add', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('139', 'dict_update', 'dict', '[0],[system],[dict],', '修改字典', null, '/dict/update', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('140', 'dict_delete', 'dict', '[0],[system],[dict],', '删除字典', null, '/dict/delete', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('141', 'notice', 'system', '[0],[system],', '通知管理', null, '/notice', '9', '2', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('142', 'notice_add', 'notice', '[0],[system],[notice],', '添加通知', null, '/notice/add', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('143', 'notice_update', 'notice', '[0],[system],[notice],', '修改通知', null, '/notice/update', '2', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('144', 'notice_delete', 'notice', '[0],[system],[notice],', '删除通知', null, '/notice/delete', '3', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('145', 'hello', '0', '[0],', '通知', 'fa-rocket', '/notice/hello', '1', '1', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('148', 'code', '0', '[0],', '代码生成', 'fa-code', '/code', '3', '1', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('149', 'api_mgr', '0', '[0],', '接口文档', 'fa-leaf', '/swagger-ui.html', '2', '1', '1', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('150', 'to_menu_edit', 'menu', '[0],[system],[menu],', '菜单编辑跳转', '', '/menu/menu_edit', '4', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('151', 'menu_list', 'menu', '[0],[system],[menu],', '菜单列表', '', '/menu/list', '5', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('152', 'to_dept_update', 'dept', '[0],[system],[dept],', '修改部门跳转', '', '/dept/dept_update', '4', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('153', 'dept_list', 'dept', '[0],[system],[dept],', '部门列表', '', '/dept/list', '5', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('154', 'dept_detail', 'dept', '[0],[system],[dept],', '部门详情', '', '/dept/detail', '6', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('155', 'to_dict_edit', 'dict', '[0],[system],[dict],', '修改菜单跳转', '', '/dict/dict_edit', '4', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('156', 'dict_list', 'dict', '[0],[system],[dict],', '字典列表', '', '/dict/list', '5', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('157', 'dict_detail', 'dict', '[0],[system],[dict],', '字典详情', '', '/dict/detail', '6', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('158', 'log_list', 'log', '[0],[system],[log],', '日志列表', '', '/log/list', '2', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('159', 'log_detail', 'log', '[0],[system],[log],', '日志详情', '', '/log/detail', '3', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('160', 'del_login_log', 'loginLog', '[0],[system],[loginLog],', '清空登录日志', '', '/loginLog/delLoginLog', '1', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('161', 'login_log_list', 'loginLog', '[0],[system],[loginLog],', '登录日志列表', '', '/loginLog/list', '2', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('162', 'to_role_edit', 'role', '[0],[system],[role],', '修改角色跳转', '', '/role/role_edit', '5', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('163', 'to_role_assign', 'role', '[0],[system],[role],', '角色分配跳转', '', '/role/role_assign', '6', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('164', 'role_list', 'role', '[0],[system],[role],', '角色列表', '', '/role/list', '7', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('165', 'to_assign_role', 'mgr', '[0],[system],[mgr],', '分配角色跳转', '', '/mgr/role_assign', '8', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('166', 'to_user_edit', 'mgr', '[0],[system],[mgr],', '编辑用户跳转', '', '/mgr/user_edit', '9', '3', '0', null, '1', null);
+INSERT INTO `sys_menu` VALUES ('167', 'mgr_list', 'mgr', '[0],[system],[mgr],', '用户列表', '', '/mgr/list', '10', '3', '0', null, '1', null);
+
+-- ----------------------------
+-- Table structure for sys_notice
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_notice`;
+CREATE TABLE `sys_notice` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `title` varchar(255) DEFAULT NULL COMMENT '标题',
+  `type` int(11) DEFAULT NULL COMMENT '类型',
+  `content` text COMMENT '内容',
+  `createtime` datetime DEFAULT NULL COMMENT '创建时间',
+  `creater` int(11) DEFAULT NULL COMMENT '创建人',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 COMMENT='通知表';
+
+-- ----------------------------
+-- Records of sys_notice
+-- ----------------------------
+INSERT INTO `sys_notice` VALUES ('6', '世界', '10', '欢迎使用Guns管理系统', '2017-01-11 08:53:20', '1');
+INSERT INTO `sys_notice` VALUES ('8', '你好', null, '你好', '2017-05-10 19:28:57', '1');
+
+-- ----------------------------
+-- Table structure for sys_operation_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_operation_log`;
+CREATE TABLE `sys_operation_log` (
+  `id` int(65) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `logtype` varchar(255) DEFAULT NULL COMMENT '日志类型',
+  `logname` varchar(255) DEFAULT NULL COMMENT '日志名称',
+  `userid` int(65) DEFAULT NULL COMMENT '用户id',
+  `classname` varchar(255) DEFAULT NULL COMMENT '类名称',
+  `method` text COMMENT '方法名称',
+  `createtime` datetime DEFAULT NULL COMMENT '创建时间',
+  `succeed` varchar(255) DEFAULT NULL COMMENT '是否成功',
+  `message` text COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=554 DEFAULT CHARSET=utf8 COMMENT='操作日志';
+
+-- ----------------------------
+-- Records of sys_operation_log
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_relation
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_relation`;
+CREATE TABLE `sys_relation` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `menuid` bigint(11) DEFAULT NULL COMMENT '菜单id',
+  `roleid` int(11) DEFAULT NULL COMMENT '角色id',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3792 DEFAULT CHARSET=utf8 COMMENT='角色和菜单关联表';
+
+-- ----------------------------
+-- Records of sys_relation
+-- ----------------------------
+INSERT INTO `sys_relation` VALUES ('3377', '105', '5');
+INSERT INTO `sys_relation` VALUES ('3378', '106', '5');
+INSERT INTO `sys_relation` VALUES ('3379', '107', '5');
+INSERT INTO `sys_relation` VALUES ('3380', '108', '5');
+INSERT INTO `sys_relation` VALUES ('3381', '109', '5');
+INSERT INTO `sys_relation` VALUES ('3382', '110', '5');
+INSERT INTO `sys_relation` VALUES ('3383', '111', '5');
+INSERT INTO `sys_relation` VALUES ('3384', '112', '5');
+INSERT INTO `sys_relation` VALUES ('3385', '113', '5');
+INSERT INTO `sys_relation` VALUES ('3386', '114', '5');
+INSERT INTO `sys_relation` VALUES ('3387', '115', '5');
+INSERT INTO `sys_relation` VALUES ('3388', '116', '5');
+INSERT INTO `sys_relation` VALUES ('3389', '117', '5');
+INSERT INTO `sys_relation` VALUES ('3390', '118', '5');
+INSERT INTO `sys_relation` VALUES ('3391', '119', '5');
+INSERT INTO `sys_relation` VALUES ('3392', '120', '5');
+INSERT INTO `sys_relation` VALUES ('3393', '121', '5');
+INSERT INTO `sys_relation` VALUES ('3394', '122', '5');
+INSERT INTO `sys_relation` VALUES ('3395', '150', '5');
+INSERT INTO `sys_relation` VALUES ('3396', '151', '5');
+INSERT INTO `sys_relation` VALUES ('3737', '105', '1');
+INSERT INTO `sys_relation` VALUES ('3738', '106', '1');
+INSERT INTO `sys_relation` VALUES ('3739', '107', '1');
+INSERT INTO `sys_relation` VALUES ('3740', '108', '1');
+INSERT INTO `sys_relation` VALUES ('3741', '109', '1');
+INSERT INTO `sys_relation` VALUES ('3742', '110', '1');
+INSERT INTO `sys_relation` VALUES ('3743', '111', '1');
+INSERT INTO `sys_relation` VALUES ('3744', '112', '1');
+INSERT INTO `sys_relation` VALUES ('3745', '113', '1');
+INSERT INTO `sys_relation` VALUES ('3746', '165', '1');
+INSERT INTO `sys_relation` VALUES ('3747', '166', '1');
+INSERT INTO `sys_relation` VALUES ('3748', '167', '1');
+INSERT INTO `sys_relation` VALUES ('3749', '114', '1');
+INSERT INTO `sys_relation` VALUES ('3750', '115', '1');
+INSERT INTO `sys_relation` VALUES ('3751', '116', '1');
+INSERT INTO `sys_relation` VALUES ('3752', '117', '1');
+INSERT INTO `sys_relation` VALUES ('3753', '118', '1');
+INSERT INTO `sys_relation` VALUES ('3754', '162', '1');
+INSERT INTO `sys_relation` VALUES ('3755', '163', '1');
+INSERT INTO `sys_relation` VALUES ('3756', '164', '1');
+INSERT INTO `sys_relation` VALUES ('3757', '119', '1');
+INSERT INTO `sys_relation` VALUES ('3758', '120', '1');
+INSERT INTO `sys_relation` VALUES ('3759', '121', '1');
+INSERT INTO `sys_relation` VALUES ('3760', '122', '1');
+INSERT INTO `sys_relation` VALUES ('3761', '150', '1');
+INSERT INTO `sys_relation` VALUES ('3762', '151', '1');
+INSERT INTO `sys_relation` VALUES ('3763', '128', '1');
+INSERT INTO `sys_relation` VALUES ('3764', '134', '1');
+INSERT INTO `sys_relation` VALUES ('3765', '158', '1');
+INSERT INTO `sys_relation` VALUES ('3766', '159', '1');
+INSERT INTO `sys_relation` VALUES ('3767', '130', '1');
+INSERT INTO `sys_relation` VALUES ('3768', '131', '1');
+INSERT INTO `sys_relation` VALUES ('3769', '135', '1');
+INSERT INTO `sys_relation` VALUES ('3770', '136', '1');
+INSERT INTO `sys_relation` VALUES ('3771', '137', '1');
+INSERT INTO `sys_relation` VALUES ('3772', '152', '1');
+INSERT INTO `sys_relation` VALUES ('3773', '153', '1');
+INSERT INTO `sys_relation` VALUES ('3774', '154', '1');
+INSERT INTO `sys_relation` VALUES ('3775', '132', '1');
+INSERT INTO `sys_relation` VALUES ('3776', '138', '1');
+INSERT INTO `sys_relation` VALUES ('3777', '139', '1');
+INSERT INTO `sys_relation` VALUES ('3778', '140', '1');
+INSERT INTO `sys_relation` VALUES ('3779', '155', '1');
+INSERT INTO `sys_relation` VALUES ('3780', '156', '1');
+INSERT INTO `sys_relation` VALUES ('3781', '157', '1');
+INSERT INTO `sys_relation` VALUES ('3782', '133', '1');
+INSERT INTO `sys_relation` VALUES ('3783', '160', '1');
+INSERT INTO `sys_relation` VALUES ('3784', '161', '1');
+INSERT INTO `sys_relation` VALUES ('3785', '141', '1');
+INSERT INTO `sys_relation` VALUES ('3786', '142', '1');
+INSERT INTO `sys_relation` VALUES ('3787', '143', '1');
+INSERT INTO `sys_relation` VALUES ('3788', '144', '1');
+INSERT INTO `sys_relation` VALUES ('3789', '145', '1');
+INSERT INTO `sys_relation` VALUES ('3790', '148', '1');
+INSERT INTO `sys_relation` VALUES ('3791', '149', '1');
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `num` int(11) DEFAULT NULL COMMENT '序号',
+  `pid` int(11) DEFAULT NULL COMMENT '父角色id',
+  `name` varchar(255) DEFAULT NULL COMMENT '角色名称',
+  `deptid` int(11) DEFAULT NULL COMMENT '部门名称',
+  `tips` varchar(255) DEFAULT NULL COMMENT '提示',
+  `version` int(11) DEFAULT NULL COMMENT '保留字段(暂时没用)',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='角色表';
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES ('1', '1', '0', '超级管理员', '24', 'administrator', '1');
+INSERT INTO `sys_role` VALUES ('5', '2', '1', '临时', '26', 'temp', null);
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user` (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `avatar` varchar(255) DEFAULT NULL COMMENT '头像',
+  `account` varchar(45) DEFAULT NULL COMMENT '账号',
+  `password` varchar(45) DEFAULT NULL COMMENT '密码',
+  `salt` varchar(45) DEFAULT NULL COMMENT 'md5密码盐',
+  `name` varchar(45) DEFAULT NULL COMMENT '名字',
+  `birthday` datetime DEFAULT NULL COMMENT '生日',
+  `sex` int(11) DEFAULT NULL COMMENT '性别(1:男 2:女)',
+  `email` varchar(45) DEFAULT NULL COMMENT '电子邮件',
+  `phone` varchar(45) DEFAULT NULL COMMENT '电话',
+  `roleid` varchar(255) DEFAULT NULL COMMENT '角色id',
+  `deptid` int(11) DEFAULT NULL COMMENT '部门id',
+  `status` int(11) DEFAULT NULL COMMENT '状态(1:启用  2:冻结  3:删除)',
+  `createtime` datetime DEFAULT NULL COMMENT '创建时间',
+  `version` int(11) DEFAULT NULL COMMENT '保留字段',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COMMENT='管理员表';
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+INSERT INTO `sys_user` VALUES ('1', 'girl.gif', 'admin', 'ecfadcde9305f8891bcfe5a1e28c253e', '8pgby', '张三', '2017-05-05 00:00:00', '2', 'sn93@qq.com', '18200000000', '1', '27', '1', '2016-01-29 08:49:53', '25');
+INSERT INTO `sys_user` VALUES ('44', null, 'test', '45abb7879f6a8268f1ef600e6038ac73', 'ssts3', 'test', '2017-05-01 00:00:00', '1', 'abc@123.com', '', '5', '26', '3', '2017-05-16 20:33:37', null);
+INSERT INTO `sys_user` VALUES ('45', null, 'boss', '71887a5ad666a18f709e1d4e693d5a35', '1f7bf', '老板', '2017-12-04 00:00:00', '1', '', '', '1', '24', '1', '2017-12-04 22:24:02', null);
+INSERT INTO `sys_user` VALUES ('46', null, 'manager', 'b53cac62e7175637d4beb3b16b2f7915', 'j3cs9', '经理', '2017-12-04 00:00:00', '1', '', '', '1', '24', '1', '2017-12-04 22:24:24', null);
+
+
+DROP TABLE IF EXISTS `test`;
+CREATE TABLE `test` (
+  `aaa` int(11) NOT NULL AUTO_INCREMENT,
+  `bbb` varchar(255) DEFAULT NULL,
+  PRIMARY KEY (`aaa`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/sql/oktravel.sql b/UserOKTravel/guns-admin/sql/oktravel.sql
new file mode 100644
index 0000000..fcf4d22
--- /dev/null
+++ b/UserOKTravel/guns-admin/sql/oktravel.sql
@@ -0,0 +1,25883 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : 127.0.0.1
+ Source Server Type    : MySQL
+ Source Server Version : 50637
+ Source Host           : localhost:3306
+ Source Schema         : oktravel
+
+ Target Server Type    : MySQL
+ Target Server Version : 50637
+ File Encoding         : 65001
+
+ Date: 13/11/2020 19:32:55
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for sys_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dept`;
+CREATE TABLE `sys_dept`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `num` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `pid` int(11) NULL DEFAULT NULL COMMENT '父部门id',
+  `pids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父级ids',
+  `simplename` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '简称',
+  `fullname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '全称',
+  `tips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示',
+  `version` int(11) NULL DEFAULT NULL COMMENT '版本(乐观锁保留字段)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '部门表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_dept
+-- ----------------------------
+INSERT INTO `sys_dept` VALUES (24, 1, 0, '[0],', '总公司', '总公司', '', NULL);
+INSERT INTO `sys_dept` VALUES (25, 1, 24, '[0],[24],', '分公司', '分公司', '', NULL);
+INSERT INTO `sys_dept` VALUES (26, 1, 25, '[0],[24],[25],', '加盟商', '加盟商', '', NULL);
+INSERT INTO `sys_dept` VALUES (27, NULL, 0, '[0],', '技术部', '技术部', '', NULL);
+
+-- ----------------------------
+-- Table structure for sys_dict
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict`;
+CREATE TABLE `sys_dict`  (
+  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `num` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `pid` int(11) NULL DEFAULT NULL COMMENT '父级字典',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
+  `tips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '值',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 60 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_dict
+-- ----------------------------
+INSERT INTO `sys_dict` VALUES (50, 0, 0, '性别', NULL, 'sys_sex');
+INSERT INTO `sys_dict` VALUES (51, 1, 50, '男', NULL, '1');
+INSERT INTO `sys_dict` VALUES (52, 2, 50, '女', NULL, '2');
+INSERT INTO `sys_dict` VALUES (53, 0, 0, '状态', NULL, 'sys_state');
+INSERT INTO `sys_dict` VALUES (54, 1, 53, '启用', NULL, '1');
+INSERT INTO `sys_dict` VALUES (55, 2, 53, '禁用', NULL, '2');
+INSERT INTO `sys_dict` VALUES (56, 0, 0, '账号状态', NULL, 'account_state');
+INSERT INTO `sys_dict` VALUES (57, 1, 56, '启用', NULL, '1');
+INSERT INTO `sys_dict` VALUES (58, 2, 56, '冻结', NULL, '2');
+INSERT INTO `sys_dict` VALUES (59, 3, 56, '已删除', NULL, '3');
+
+-- ----------------------------
+-- Table structure for sys_expense
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_expense`;
+CREATE TABLE `sys_expense`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(20, 2) NULL DEFAULT NULL COMMENT '报销金额',
+  `desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '描述',
+  `createtime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `state` int(11) NULL DEFAULT NULL COMMENT '状态: 1.待提交  2:待审核   3.审核通过 4:驳回',
+  `userid` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `processId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程定义id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报销表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_expense
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_login_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_login_log`;
+CREATE TABLE `sys_login_log`  (
+  `id` int(65) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `logname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志名称',
+  `userid` int(65) NULL DEFAULT NULL COMMENT '管理员id',
+  `createtime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `succeed` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否执行成功',
+  `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '具体消息',
+  `ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登录ip',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1636 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '登录记录' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_login_log
+-- ----------------------------
+INSERT INTO `sys_login_log` VALUES (1359, '登录日志', 1, '2020-08-17 10:09:15', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1360, '登录日志', 1, '2020-08-17 10:20:22', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1361, '登录日志', 1, '2020-08-17 10:41:34', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1362, '登录日志', 1, '2020-08-17 10:46:04', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1363, '登录日志', 1, '2020-08-17 10:54:59', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1364, '登录日志', 1, '2020-08-17 11:35:17', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1365, '登录日志', 1, '2020-08-17 11:37:19', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1366, '登录日志', 1, '2020-08-17 11:59:35', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1367, '登录日志', 1, '2020-08-17 13:55:55', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1368, '登录日志', 1, '2020-08-17 17:48:14', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1369, '登录日志', 1, '2020-08-17 18:34:08', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1370, '登录日志', 1, '2020-08-17 18:36:21', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1371, '登录日志', 1, '2020-08-17 18:57:20', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1372, '登录日志', 1, '2020-08-17 20:04:29', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1373, '登录日志', 1, '2020-08-17 20:22:09', '成功', NULL, '117.136.82.244');
+INSERT INTO `sys_login_log` VALUES (1374, '登录日志', 1, '2020-08-18 09:02:04', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1375, '登录日志', 1, '2020-08-18 09:04:53', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1376, '登录日志', 1, '2020-08-18 11:32:42', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1377, '登录日志', 1, '2020-08-18 19:06:43', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1378, '退出日志', 1, '2020-08-18 19:06:47', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1379, '登录日志', 1, '2020-08-18 20:25:52', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1380, '登录日志', 1, '2020-08-19 09:57:13', '成功', NULL, '222.209.35.216');
+INSERT INTO `sys_login_log` VALUES (1381, '登录日志', 1, '2020-08-19 11:55:22', '成功', NULL, '223.104.9.196');
+INSERT INTO `sys_login_log` VALUES (1382, '登录日志', 1, '2020-08-19 11:55:22', '成功', NULL, '223.104.9.196');
+INSERT INTO `sys_login_log` VALUES (1383, '登录日志', 1, '2020-08-19 16:25:46', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1384, '登录日志', 1, '2020-08-19 16:57:48', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1385, '登录日志', 1, '2020-08-19 18:07:52', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1386, '登录日志', 1, '2020-08-20 11:27:57', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1387, '登录日志', 1, '2020-08-20 13:38:09', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1388, '退出日志', 1, '2020-08-20 13:42:28', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1389, '登录失败日志', NULL, '2020-08-20 13:42:41', '成功', '账号:广西云森,账号密码错误', '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1390, '登录日志', 1, '2020-08-20 13:43:09', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1391, '退出日志', 1, '2020-08-20 13:44:31', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1392, '登录日志', 36, '2020-08-20 13:44:45', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1393, '退出日志', 36, '2020-08-20 13:50:37', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1394, '登录日志', 37, '2020-08-20 13:50:52', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1395, '退出日志', 37, '2020-08-20 13:50:59', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1396, '登录日志', 1, '2020-08-20 13:51:01', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1397, '登录失败日志', NULL, '2020-08-20 14:13:48', '成功', '账号:JSB01,账号密码错误', '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1398, '登录失败日志', NULL, '2020-08-20 14:14:15', '成功', '账号:JSB01,账号密码错误', '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1399, '登录失败日志', NULL, '2020-08-20 14:14:30', '成功', '账号:admin,账号密码错误', '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1400, '登录日志', 1, '2020-08-20 14:14:48', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1401, '登录日志', 1, '2020-08-20 17:18:28', '成功', NULL, '222.217.140.250');
+INSERT INTO `sys_login_log` VALUES (1402, '登录日志', 1, '2020-08-21 09:44:06', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1403, '登录日志', 1, '2020-08-21 09:46:44', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1404, '登录日志', 1, '2020-08-21 11:02:38', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1405, '登录日志', 1, '2020-08-21 13:35:20', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1406, '登录日志', 1, '2020-08-21 15:10:06', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1407, '登录日志', 1, '2020-08-22 20:07:01', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1408, '登录日志', 1, '2020-08-23 16:25:32', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1409, '登录日志', 1, '2020-08-24 09:23:36', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1410, '登录日志', 1, '2020-08-24 11:04:07', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1411, '登录日志', 1, '2020-08-24 13:41:26', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1412, '登录日志', 1, '2020-08-24 13:58:35', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1413, '登录日志', 1, '2020-08-24 16:42:02', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1414, '登录日志', 1, '2020-08-24 17:15:10', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1415, '登录日志', 1, '2020-08-24 17:18:56', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1416, '退出日志', 1, '2020-08-24 17:31:32', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1417, '登录日志', 1, '2020-08-24 17:31:34', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1418, '登录日志', 1, '2020-08-24 17:41:01', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1419, '登录日志', 1, '2020-08-24 19:08:58', '成功', NULL, '222.209.33.245');
+INSERT INTO `sys_login_log` VALUES (1420, '登录日志', 1, '2020-08-25 09:46:13', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1421, '登录日志', 1, '2020-08-25 13:37:30', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1422, '登录日志', 1, '2020-08-25 16:20:59', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1423, '登录日志', 1, '2020-08-25 16:21:23', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1424, '登录日志', 1, '2020-08-26 09:50:30', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1425, '登录日志', 1, '2020-08-26 09:56:46', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1426, '登录日志', 1, '2020-08-26 10:07:29', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1427, '登录日志', 1, '2020-08-26 10:41:42', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1428, '登录日志', 1, '2020-08-26 11:39:25', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1429, '登录日志', 1, '2020-08-26 13:59:38', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1430, '登录日志', 1, '2020-08-27 09:49:58', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1431, '登录日志', 1, '2020-08-27 10:14:10', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1432, '登录日志', 1, '2020-08-27 12:04:12', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1433, '登录日志', 1, '2020-08-27 14:00:32', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1434, '登录日志', 1, '2020-08-27 15:00:44', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1435, '登录日志', 1, '2020-08-27 15:05:01', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1436, '登录日志', 1, '2020-08-27 16:07:23', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1437, '登录日志', 1, '2020-08-27 17:02:24', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1438, '登录失败日志', NULL, '2020-08-27 17:07:47', '成功', '账号:YYB01,账号密码错误', '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1439, '登录失败日志', NULL, '2020-08-27 17:08:06', '成功', '账号:admin,账号密码错误', '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1440, '登录日志', 39, '2020-08-27 17:08:53', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1441, '登录日志', 39, '2020-08-27 17:09:52', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1442, '登录日志', 39, '2020-08-27 17:11:47', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1443, '退出日志', 39, '2020-08-27 17:13:44', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1444, '登录日志', 1, '2020-08-27 17:13:45', '成功', NULL, '125.73.83.241');
+INSERT INTO `sys_login_log` VALUES (1445, '登录日志', 39, '2020-08-29 10:08:32', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1446, '登录日志', 1, '2020-08-29 10:28:54', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1447, '退出日志', 39, '2020-08-29 10:53:19', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1448, '登录日志', 39, '2020-08-29 10:53:35', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1449, '登录失败日志', NULL, '2020-08-29 10:54:07', '成功', '账号:YYB01,账号密码错误', '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1450, '登录日志', 39, '2020-08-29 10:57:32', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1451, '登录日志', 37, '2020-08-29 11:02:23', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1452, '登录日志', 1, '2020-08-29 12:05:10', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1453, '退出日志', 1, '2020-08-29 12:05:44', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1454, '登录失败日志', NULL, '2020-08-29 12:06:19', '成功', '账号:test,账号密码错误', '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1455, '登录失败日志', NULL, '2020-08-29 12:06:39', '成功', '账号:test,账号密码错误', '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1456, '登录日志', 1, '2020-08-29 12:06:57', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1457, '退出日志', 1, '2020-08-29 12:35:40', '成功', NULL, '222.211.206.154');
+INSERT INTO `sys_login_log` VALUES (1458, '登录日志', 1, '2020-08-29 14:16:43', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1459, '登录日志', 1, '2020-08-29 17:24:26', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1460, '登录日志', 1, '2020-08-31 10:24:15', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1461, '登录日志', 37, '2020-08-31 10:26:00', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1462, '登录日志', 1, '2020-08-31 10:39:26', '成功', NULL, '222.211.205.184');
+INSERT INTO `sys_login_log` VALUES (1463, '登录日志', 1, '2020-08-31 13:21:36', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1464, '登录日志', 39, '2020-08-31 14:06:10', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1465, '登录日志', 1, '2020-08-31 14:23:41', '成功', NULL, '222.211.205.184');
+INSERT INTO `sys_login_log` VALUES (1466, '登录日志', 1, '2020-08-31 14:32:24', '成功', NULL, '222.211.205.184');
+INSERT INTO `sys_login_log` VALUES (1467, '登录日志', 39, '2020-08-31 15:03:37', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1468, '登录日志', 1, '2020-08-31 15:47:25', '成功', NULL, '222.211.205.184');
+INSERT INTO `sys_login_log` VALUES (1469, '登录日志', 39, '2020-09-01 12:15:52', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1470, '登录日志', 39, '2020-09-01 13:10:40', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1471, '登录日志', 1, '2020-09-01 13:38:11', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1472, '登录日志', 39, '2020-09-01 14:40:55', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1473, '登录日志', 1, '2020-09-02 09:11:43', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1474, '登录日志', 39, '2020-09-02 16:14:42', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1475, '登录日志', 39, '2020-09-02 16:58:05', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1476, '登录日志', 1, '2020-09-02 17:35:08', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1477, '登录日志', 1, '2020-09-03 13:45:10', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1478, '登录日志', 1, '2020-09-03 16:19:57', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1479, '登录日志', 39, '2020-09-03 16:26:54', '成功', NULL, '222.217.140.135');
+INSERT INTO `sys_login_log` VALUES (1480, '登录日志', 1, '2020-09-04 16:11:52', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1481, '登录日志', 39, '2020-09-04 16:25:24', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1482, '登录日志', 1, '2020-09-04 18:31:26', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1483, '登录日志', 1, '2020-09-04 19:12:11', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1484, '登录日志', 1, '2020-09-04 22:41:45', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1485, '登录日志', 1, '2020-09-05 12:26:39', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1486, '登录日志', 39, '2020-09-05 12:50:19', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1487, '登录日志', 1, '2020-09-05 13:09:51', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1488, '登录日志', 39, '2020-09-05 17:07:42', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1489, '登录日志', 1, '2020-09-07 11:26:26', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1490, '登录日志', 1, '2020-09-07 13:55:15', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1491, '登录日志', 1, '2020-09-07 14:57:01', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1492, '登录日志', 1, '2020-09-07 15:18:28', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1493, '登录日志', 39, '2020-09-07 16:39:28', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1494, '登录日志', 39, '2020-09-08 10:49:14', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1495, '登录日志', 1, '2020-09-08 11:02:00', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1496, '登录日志', 1, '2020-09-08 14:19:57', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1497, '登录日志', 1, '2020-09-08 16:10:13', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1498, '登录日志', 1, '2020-09-09 10:07:30', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1499, '登录日志', 37, '2020-09-09 10:58:17', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1500, '登录日志', 1, '2020-09-09 11:23:36', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1501, '登录日志', 39, '2020-09-09 11:26:53', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1502, '登录日志', 1, '2020-09-10 14:56:56', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1503, '登录日志', 39, '2020-09-10 16:00:08', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1504, '登录日志', 1, '2020-09-10 16:05:51', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1505, '登录日志', 1, '2020-09-10 16:10:27', '成功', NULL, '171.105.116.77');
+INSERT INTO `sys_login_log` VALUES (1506, '登录日志', 1, '2020-09-10 16:11:08', '成功', NULL, '171.105.116.77');
+INSERT INTO `sys_login_log` VALUES (1507, '退出日志', 1, '2020-09-10 16:11:34', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1508, '登录日志', 1, '2020-09-10 16:11:45', '成功', NULL, '171.105.116.77');
+INSERT INTO `sys_login_log` VALUES (1509, '登录日志', 37, '2020-09-10 16:11:50', '成功', NULL, '220.173.187.1');
+INSERT INTO `sys_login_log` VALUES (1510, '登录日志', 1, '2020-09-10 16:29:50', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1511, '登录日志', 1, '2020-09-10 16:48:02', '成功', NULL, '222.211.205.223');
+INSERT INTO `sys_login_log` VALUES (1512, '登录日志', 1, '2020-09-11 08:45:53', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1513, '登录日志', 1, '2020-09-11 16:01:49', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1514, '登录日志', 1, '2020-09-12 10:12:07', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1515, '登录日志', 1, '2020-09-12 16:21:48', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1516, '登录日志', 39, '2020-09-12 16:36:42', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1517, '登录日志', 1, '2020-09-12 17:47:42', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1518, '登录日志', 1, '2020-09-12 17:55:03', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1519, '登录日志', 39, '2020-09-14 14:19:04', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1520, '登录日志', 39, '2020-09-14 16:06:58', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1521, '登录日志', 1, '2020-09-15 15:17:41', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1522, '登录日志', 1, '2020-09-15 23:00:03', '成功', NULL, '106.122.101.71');
+INSERT INTO `sys_login_log` VALUES (1523, '登录日志', 1, '2020-09-16 08:33:44', '成功', NULL, '140.243.205.65');
+INSERT INTO `sys_login_log` VALUES (1524, '登录日志', 1, '2020-09-16 08:45:49', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1525, '登录失败日志', NULL, '2020-09-16 09:26:42', '成功', '账号:JSB01,账号密码错误', '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1526, '登录日志', 37, '2020-09-16 09:27:02', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1527, '登录日志', 37, '2020-09-17 16:36:05', '成功', NULL, '125.73.82.152');
+INSERT INTO `sys_login_log` VALUES (1528, '登录日志', 1, '2020-09-18 09:48:29', '成功', NULL, '222.217.142.228');
+INSERT INTO `sys_login_log` VALUES (1529, '登录日志', 1, '2020-09-18 09:58:37', '成功', NULL, '222.217.142.228');
+INSERT INTO `sys_login_log` VALUES (1530, '登录日志', 37, '2020-09-18 12:17:58', '成功', NULL, '222.217.142.228');
+INSERT INTO `sys_login_log` VALUES (1531, '登录日志', 1, '2020-09-19 14:57:59', '成功', NULL, '222.217.142.228');
+INSERT INTO `sys_login_log` VALUES (1532, '登录日志', 1, '2020-09-19 15:58:39', '成功', NULL, '222.217.142.228');
+INSERT INTO `sys_login_log` VALUES (1533, '登录日志', 1, '2020-09-21 11:28:40', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1534, '退出日志', 1, '2020-09-23 16:35:31', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1535, '登录日志', 1, '2020-09-23 16:35:32', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1536, '退出日志', 1, '2020-09-23 16:38:53', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1537, '登录日志', 1, '2020-09-23 16:38:54', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1538, '登录日志', 1, '2020-09-23 16:40:44', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1539, '退出日志', 1, '2020-09-23 16:52:18', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1540, '登录日志', 1, '2020-09-23 16:52:19', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1541, '登录日志', 1, '2020-09-23 16:58:44', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1542, '登录日志', 1, '2020-09-23 17:02:02', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1543, '退出日志', 1, '2020-09-23 17:05:46', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1544, '登录日志', 1, '2020-09-23 17:05:47', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1545, '退出日志', 1, '2020-09-23 17:09:31', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1546, '登录日志', 1, '2020-09-23 17:09:32', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1547, '登录日志', 1, '2020-09-23 17:21:10', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1548, '退出日志', 1, '2020-09-23 17:24:38', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1549, '登录日志', 1, '2020-09-23 17:24:39', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1550, '退出日志', 1, '2020-09-23 17:35:12', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1551, '登录日志', 1, '2020-09-23 17:35:13', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1552, '退出日志', 1, '2020-09-23 17:41:01', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1553, '登录日志', 1, '2020-09-23 17:41:02', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1554, '登录日志', 1, '2020-09-24 09:07:36', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1555, '登录日志', 1, '2020-09-24 09:38:00', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1556, '退出日志', 1, '2020-09-24 09:38:14', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1557, '登录日志', 1, '2020-09-24 09:38:15', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1558, '退出日志', 1, '2020-09-24 09:53:58', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1559, '登录日志', 1, '2020-09-24 09:53:59', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1560, '退出日志', 1, '2020-09-24 09:55:17', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1561, '登录日志', 1, '2020-09-24 09:55:18', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1562, '退出日志', 1, '2020-09-24 09:58:45', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1563, '登录日志', 1, '2020-09-24 09:58:46', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1564, '退出日志', 1, '2020-09-24 10:14:52', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1565, '登录日志', 1, '2020-09-24 10:14:53', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1566, '退出日志', 1, '2020-09-24 10:28:05', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1567, '登录日志', 1, '2020-09-24 10:28:06', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1568, '退出日志', 1, '2020-09-24 10:38:28', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1569, '登录日志', 1, '2020-09-24 10:38:29', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1570, '登录日志', 1, '2020-09-24 11:25:23', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1571, '登录日志', 1, '2020-09-24 12:47:27', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1572, '登录日志', 1, '2020-09-24 14:19:37', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1573, '登录日志', 1, '2020-09-24 14:43:58', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1574, '登录日志', 1, '2020-09-24 15:16:58', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1575, '登录日志', 1, '2020-09-24 15:18:26', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1576, '登录日志', 1, '2020-09-24 15:23:18', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1577, '登录日志', 1, '2020-09-25 10:13:25', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1578, '登录日志', 1, '2020-09-25 10:15:47', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1579, '登录日志', 1, '2020-09-25 10:16:26', '成功', NULL, '192.168.0.43');
+INSERT INTO `sys_login_log` VALUES (1580, '登录日志', 1, '2020-09-25 10:17:57', '成功', NULL, '192.168.0.43');
+INSERT INTO `sys_login_log` VALUES (1581, '登录日志', 1, '2020-09-25 10:24:17', '成功', NULL, '192.168.0.32');
+INSERT INTO `sys_login_log` VALUES (1582, '登录日志', 1, '2020-09-25 15:27:13', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1583, '退出日志', 1, '2020-09-25 15:27:30', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1584, '登录日志', 1, '2020-09-25 15:27:31', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1585, '登录日志', 1, '2020-09-25 15:32:45', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1586, '登录日志', 1, '2020-09-25 15:54:44', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1587, '登录日志', 1, '2020-09-25 15:55:33', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1588, '登录日志', 1, '2020-09-25 15:59:17', '成功', NULL, '0:0:0:0:0:0:0:1');
+INSERT INTO `sys_login_log` VALUES (1589, '登录日志', 1, '2020-09-25 16:04:37', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1590, '登录日志', 1, '2020-09-29 18:45:58', '成功', NULL, '192.168.0.43');
+INSERT INTO `sys_login_log` VALUES (1591, '登录日志', 1, '2020-10-16 14:42:40', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1592, '登录日志', 1, '2020-10-16 16:07:07', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1593, '登录日志', 1, '2020-10-16 16:09:09', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1594, '登录日志', 1, '2020-10-16 17:24:20', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1595, '登录日志', 1, '2020-10-19 10:23:40', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1596, '退出日志', 1, '2020-10-19 10:24:11', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1597, '登录日志', 1, '2020-10-19 10:31:03', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1598, '登录日志', 1, '2020-10-19 11:14:34', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1599, '登录日志', 1, '2020-10-19 11:20:41', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1600, '登录日志', 1, '2020-10-19 18:36:22', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1601, '登录日志', 1, '2020-10-21 16:05:03', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1602, '登录日志', 1, '2020-10-21 16:26:43', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1603, '登录日志', 1, '2020-10-21 17:07:27', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1604, '登录日志', 1, '2020-10-29 10:04:50', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1605, '登录日志', 1, '2020-10-29 11:17:31', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1606, '登录日志', 1, '2020-10-29 19:49:47', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1607, '登录日志', 1, '2020-11-03 14:09:16', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1608, '登录日志', 1, '2020-11-03 14:19:35', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1609, '登录日志', 1, '2020-11-03 15:05:45', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1610, '登录日志', 1, '2020-11-03 15:07:23', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1611, '登录日志', 1, '2020-11-03 15:18:17', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1612, '登录日志', 1, '2020-11-03 15:53:07', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1613, '登录日志', 1, '2020-11-03 16:08:10', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1614, '登录日志', 1, '2020-11-03 17:20:37', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1615, '登录日志', 1, '2020-11-03 17:40:05', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1616, '登录日志', 1, '2020-11-03 17:45:33', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1617, '登录日志', 1, '2020-11-03 17:48:59', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1618, '登录日志', 1, '2020-11-03 17:55:57', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1619, '登录日志', 1, '2020-11-03 18:03:04', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1620, '登录日志', 1, '2020-11-03 18:05:33', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1621, '登录日志', 1, '2020-11-04 09:00:07', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1622, '登录日志', 1, '2020-11-04 10:17:16', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1623, '登录日志', 1, '2020-11-04 10:19:33', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1624, '登录日志', 1, '2020-11-04 11:38:13', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1625, '登录日志', 1, '2020-11-04 11:51:58', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1626, '登录日志', 1, '2020-11-04 11:59:33', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1627, '登录日志', 1, '2020-11-04 12:40:48', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1628, '登录日志', 1, '2020-11-04 12:46:07', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1629, '登录日志', 1, '2020-11-04 13:59:53', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1630, '登录日志', 1, '2020-11-04 14:09:16', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1631, '登录日志', 1, '2020-11-04 14:49:40', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1632, '登录日志', 1, '2020-11-04 14:53:44', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1633, '登录日志', 1, '2020-11-04 15:51:03', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1634, '登录日志', 1, '2020-11-04 17:09:40', '成功', NULL, '127.0.0.1');
+INSERT INTO `sys_login_log` VALUES (1635, '登录日志', 1, '2020-11-04 17:10:58', '成功', NULL, '127.0.0.1');
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单编号',
+  `pcode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单父编号',
+  `pcodes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '当前菜单的所有父菜单编号',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
+  `icon` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单图标',
+  `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'url地址',
+  `num` int(65) NULL DEFAULT NULL COMMENT '菜单排序号',
+  `levels` int(65) NULL DEFAULT NULL COMMENT '菜单层级',
+  `ismenu` int(11) NULL DEFAULT NULL COMMENT '是否是菜单(1:是  0:不是)',
+  `tips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `status` int(65) NULL DEFAULT NULL COMMENT '菜单状态 :  1:启用   0:不启用',
+  `isopen` int(11) NULL DEFAULT NULL COMMENT '是否打开:    1:打开   0:不打开',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1309014874136809484 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES (1, 'code', '0', '[0],', '代码生成', 'fa-code', '/code', 1, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (2, 'indexManage', '0', '[0],', '首页', 'fa-bars', '/blackboard', 2, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (100, 'system', '0', '[0],', '系统管理', 'fa-bars', '#', 100, 1, 1, NULL, 1, 1);
+INSERT INTO `sys_menu` VALUES (101, 'mgr', 'system', '[0],[system],', '平台管理员', '', '/mgr', 101, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (102, 'mgr_list', 'mgr', '[0],[system],[mgr],', '用户列表', '', '/mgr/list', 102, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (103, 'mgr_add', 'mgr', '[0],[system],[mgr],', '添加用户', NULL, '/mgr/add', 103, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (104, 'mgr_edit', 'mgr', '[0],[system],[mgr],', '修改用户', NULL, '/mgr/edit', 104, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (105, 'mgr_delete', 'mgr', '[0],[system],[mgr],', '删除用户', NULL, '/mgr/delete', 105, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (106, 'mgr_reset', 'mgr', '[0],[system],[mgr],', '重置密码', NULL, '/mgr/reset', 106, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (107, 'mgr_freeze', 'mgr', '[0],[system],[mgr],', '冻结用户', NULL, '/mgr/freeze', 107, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (108, 'mgr_unfreeze', 'mgr', '[0],[system],[mgr],', '解除冻结用户', NULL, '/mgr/unfreeze', 108, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (109, 'mgr_setRole', 'mgr', '[0],[system],[mgr],', '分配角色', NULL, '/mgr/setRole', 109, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (110, 'to_assign_role', 'mgr', '[0],[system],[mgr],', '分配角色跳转', '', '/mgr/role_assign', 110, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (111, 'to_user_edit', 'mgr', '[0],[system],[mgr],', '编辑用户跳转', '', '/mgr/user_edit', 111, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (120, 'role', 'system', '[0],[system],', '角色管理', NULL, '/role', 120, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (121, 'role_list', 'role', '[0],[system],[role],', '角色列表', '', '/role/list', 121, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (122, 'role_add', 'role', '[0],[system],[role],', '添加角色', NULL, '/role/add', 122, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (123, 'role_edit', 'role', '[0],[system],[role],', '修改角色', NULL, '/role/edit', 123, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (124, 'role_remove', 'role', '[0],[system],[role],', '删除角色', NULL, '/role/remove', 124, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (125, 'role_setAuthority', 'role', '[0],[system],[role],', '配置权限', NULL, '/role/setAuthority', 125, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (126, 'to_role_edit', 'role', '[0],[system],[role],', '修改角色跳转', '', '/role/role_edit', 126, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (127, 'to_role_assign', 'role', '[0],[system],[role],', '角色分配跳转', '', '/role/role_assign', 127, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (130, 'menu', 'system', '[0],[system],', '菜单管理', NULL, '/menu', 130, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (131, 'menu_list', 'menu', '[0],[system],[menu],', '菜单列表', '', '/menu/list', 131, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (132, 'menu_add', 'menu', '[0],[system],[menu],', '添加菜单', NULL, '/menu/add', 132, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (133, 'menu_edit', 'menu', '[0],[system],[menu],', '修改菜单', NULL, '/menu/edit', 133, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (134, 'menu_remove', 'menu', '[0],[system],[menu],', '删除菜单', NULL, '/menu/remove', 134, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (135, 'to_menu_edit', 'menu', '[0],[system],[menu],', '菜单编辑跳转', '', '/menu/menu_edit', 135, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (140, 'dept', 'system', '[0],[system],', '部门管理', NULL, '/dept', 140, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (141, 'dept_list', 'dept', '[0],[system],[dept],', '部门列表', '', '/dept/list', 141, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (142, 'dept_add', 'dept', '[0],[system],[dept],', '添加部门', NULL, '/dept/add', 142, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (143, 'dept_update', 'dept', '[0],[system],[dept],', '修改部门', NULL, '/dept/update', 143, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (144, 'dept_delete', 'dept', '[0],[system],[dept],', '删除部门', NULL, '/dept/delete', 144, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (145, 'dept_detail', 'dept', '[0],[system],[dept],', '部门详情', '', '/dept/detail', 145, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (146, 'to_dept_update', 'dept', '[0],[system],[dept],', '修改部门跳转', '', '/dept/dept_update', 146, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (200, 'loginLog', 'system', '[0],[system],', '登录日志', NULL, '/loginLog', 200, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (201, 'login_log_list', 'loginLog', '[0],[system],[loginLog],', '登录日志列表', '', '/loginLog/list', 201, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (202, 'del_login_log', 'loginLog', '[0],[system],[loginLog],', '清空登录日志', '', '/loginLog/delLoginLog', 202, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (210, 'log', 'system', '[0],[system],', '业务日志', NULL, '/log', 210, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (211, 'log_list', 'log', '[0],[system],[log],', '日志列表', '', '/log/list', 211, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (212, 'log_detail', 'log', '[0],[system],[log],', '日志详情', '', '/log/detail', 212, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (213, 'log_clean', 'log', '[0],[system],[log],', '清空日志', NULL, '/log/delLog', 213, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (220, 'druid', 'system', '[0],[system],', '监控管理', NULL, '/druid', 220, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (230, 'dict', 'system', '[0],[system],', '字典管理', NULL, '/dict', 230, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (231, 'dict_list', 'dict', '[0],[system],[dict],', '字典列表', '', '/dict/list', 231, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (232, 'dict_add', 'dict', '[0],[system],[dict],', '添加字典', NULL, '/dict/add', 232, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (233, 'dict_update', 'dict', '[0],[system],[dict],', '修改字典', NULL, '/dict/update', 233, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (234, 'dict_delete', 'dict', '[0],[system],[dict],', '删除字典', NULL, '/dict/delete', 234, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (235, 'dict_detail', 'dict', '[0],[system],[dict],', '字典详情', '', '/dict/detail', 235, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (236, 'to_dict_edit', 'dict', '[0],[system],[dict],', '修改菜单跳转', '', '/dict/dict_edit', 236, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (240, 'notice', 'system', '[0],[system],', '通知管理', NULL, '/notice', 240, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (242, 'notice_add', 'notice', '[0],[system],[notice],', '添加通知', NULL, '/notice/add', 242, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (243, 'notice_update', 'notice', '[0],[system],[notice],', '修改通知', NULL, '/notice/update', 243, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (244, 'notice_delete', 'notice', '[0],[system],[notice],', '删除通知', NULL, '/notice/delete', 244, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (245, 'userManage', '0', '[0],', '用户管理', 'fa-bars', '#', 300, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1267362239285878786, 'tUser', 'userManage', '[0],[userManage],', '用户管理', '', '/tUser', 301, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878787, 'tUser_list', 'tUser', '[0],[userManage],[tUser],', '用户管理列表', '', '/tUser/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878788, 'tUser_userDetail', 'tUser', '[0],[userManage],[tUser],', '用户详情', '', '/tUser/userDetail', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878789, 'tUser_updateBalance', 'tUser', '[0],[userManage],[tUser],', '修改余额', '', '/tUser/updateBalance', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878790, 'tUser_updatePassword', 'tUser', '[0],[userManage],[tUser],', '修改密码', '', '/tUser/updatePassword', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878791, 'tUser_freezeUser', 'tUser', '[0],[userManage],[tUser],', '冻结', '', '/tUser/freezeUser', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878792, 'tUser_trawUser', 'tUser', '[0],[userManage],[tUser],', '解冻', '', '/tUser/trawUser', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267362239285878793, 'basisManage', '0', '[0],', '基础信息管理', 'fa-bars', '#', 302, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1267362239285878794, 'agreementManage', 'basisManage', '[0],[basisManage],', '协议管理', 'fa-bars', '#', 303, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1267391018611814401, 'tAgreement', 'agreementManage', '[0],[basisManage],[agreementManage],', '用户端协议管理', '', '/tAgreement', 304, 3, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267398696432078850, 'tAgreementDriver', 'agreementManage', '[0],[basisManage],[agreementManage],', '司机端协议管理', '', '/tAgreement/driver', 305, 3, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267625625340907521, 'tAgreementOrder', 'basisManage', '[0],[basisManage],', '取消订单说明', '', '/tAgreement/order', 306, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267627733750448129, 'tAgreementUser', 'basisManage', '[0],[basisManage],', '用户指南设置', '', '/tAgreement/user', 307, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267628529682546690, 'tAgreementLaw', 'basisManage', '[0],[basisManage],', '法律法规设置', '', '/tAgreement/law', 308, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267628757521334273, 'tAgreementMe', 'basisManage', '[0],[basisManage],', '关于我们设置', '', '/tAgreement/me', 309, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267628989072080897, 'tAgreementRecharge', 'basisManage', '[0],[basisManage],', '充值领券规则设置', '', '/tAgreement/recharge', 310, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000001, 'tAdvertisement', 'basisManage', '[0],[basisManage],', '广告设置', '', '/tAdvertisement', 315, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000002, 'tAdvertisement_list', 'tAdvertisement', '[0],[basisManage],[tAdvertisement],', '广告设置列表', '', '/tAdvertisement/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000003, 'tAdvertisement_add', 'tAdvertisement', '[0],[basisManage],[tAdvertisement],', '添加', '', '/tAdvertisement/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000004, 'tAdvertisement_update', 'tAdvertisement', '[0],[basisManage],[tAdvertisement],', '编辑', '', '/tAdvertisement/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000005, 'tAdvertisement_delete', 'tAdvertisement', '[0],[basisManage],[tAdvertisement],', '删除', '', '/tAdvertisement/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000006, 'tAdvertisement_up', 'tAdvertisement', '[0],[basisManage],[tAdvertisement],', '上线', '', '/tAdvertisement/up', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000007, 'tAdvertisement_down', 'tAdvertisement', '[0],[basisManage],[tAdvertisement],', '下线', '', '/tAdvertisement/down', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267631028544000008, 'cityManage', '0', '[0],', '开通城市管理', 'fa-bars', '#', 312, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1267662351509766146, 'tOpenCity', 'cityManage', '[0],[cityManage],', '城市管理', '', '/tOpenCity', 313, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267662351509766147, 'tOpenCity_list', 'tOpenCity', '[0],[cityManage],[tOpenCity],', '城市管理列表', '', '/tOpenCity/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267662351509766148, 'tOpenCity_add', 'tOpenCity', '[0],[cityManage],[tOpenCity],', '添加', '', '/tOpenCity/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267662351509766149, 'tOpenCity_update', 'tOpenCity', '[0],[cityManage],[tOpenCity],', '编辑', '', '/tOpenCity/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267662351509766150, 'tOpenCity_delete', 'tOpenCity', '[0],[cityManage],[tOpenCity],', '删除', '', '/tOpenCity/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1267662351509766151, 'driverManage', '0', '[0],', '司机管理', 'fa-bars', '#', 314, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1268476453249400834, 'tDriver', 'driverManage', '[0],[driverManage],', '司机审核列表', '', '/tDriver', 315, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268476453249400835, 'tDriver_list', 'tDriver', '[0],[driverManage],[tDriver],', '司机审核列表', '', '/tDriver/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268476453249400836, 'tDriver_add', 'tDriver', '[0],[driverManage],[tDriver],', '立即审核', '', '/tDriver/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268476453249400837, 'tDriver_update', 'tDriver', '[0],[driverManage],[tDriver],', '查看详情', '', '/tDriver/look', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268476453249400838, 'tDriver_delete', 'tDriver', '[0],[driverManage],[tDriver],', '删除', '', '/tDriver/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254402, 'tDriver1', 'driverManage', '[0],[driverManage],', '司机列表', '', '/tDriver/yesDriver', 317, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254403, 'tDriver_list', 'tDriver1', '[0],[driverManage],[tDriver1],', '司机列表', '', '/tDriver/listYesDriver', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254404, 'tDriver_add', 'tDriver1', '[0],[driverManage],[tDriver1],', '添加司机', '', '/tDriver/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254405, 'tDriver_update', 'tDriver1', '[0],[driverManage],[tDriver1],', '编辑司机', '', '/tDriver/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254406, 'tDriver_updateLine', 'tDriver1', '[0],[driverManage],[tDriver1],', '修改关联线路', '', '/tDriver/updateLine', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254407, 'tDriver_freeze', 'tDriver1', '[0],[driverManage],[tDriver1],', '冻结司机', '', '/tDriver/freeze', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254408, 'tDriver_thaw', 'tDriver1', '[0],[driverManage],[tDriver1],', '解冻司机', '', '/tDriver/thaw', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254409, 'tDriver_training', 'tDriver1', '[0],[driverManage],[tDriver1],', '添加培训记录', '', '/tDriver/training', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254410, 'tDriver_illegal', 'tDriver1', '[0],[driverManage],[tDriver1],', '添加违章记录', '', '/tDriver/illegal', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254411, 'tDriver_import', 'tDriver1', '[0],[driverManage],[tDriver1],', '导入司机', '', '/tDriver/import', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254412, 'tDriver_export', 'tDriver1', '[0],[driverManage],[tDriver1],', '导出司机', '', '/tDriver/export', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254413, 'tDriver_changeCar', 'tDriver1', '[0],[driverManage],[tDriver1],', '更换/绑定车辆', '', '/tDriver/changeCar', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268503736945254414, 'carManage', '0', '[0],', '车辆管理', 'fa-bars', '#', 318, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1268782708379693057, 'tCarBrand', 'carManage', '[0],[carManage],', '车辆品牌管理', '', '/tCarBrand', 319, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268782708379693058, 'tCarBrand_list', 'tCarBrand', '[0],[driverManage],[tCarBrand],', '车辆品牌管理列表', '', '/tCarBrand/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268782708379693059, 'tCarBrand_add', 'tCarBrand', '[0],[driverManage],[tCarBrand],', '添加', '', '/tCarBrand/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268782708379693060, 'tCarBrand_update', 'tCarBrand', '[0],[driverManage],[tCarBrand],', '编辑', '', '/tCarBrand/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268782708379693061, 'tCarBrand_delete', 'tCarBrand', '[0],[driverManage],[tCarBrand],', '删除', '', '/tCarBrand/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268792536825081857, 'tCarModel', 'carManage', '[0],[carManage],', '车辆类型管理', '', '/tCarModel', 320, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268792536825081858, 'tCarModel_list', 'tCarModel', '[0],[carManage],[tCarModel],', '车辆类型管理列表', '', '/tCarModel/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268792536825081859, 'tCarModel_add', 'tCarModel', '[0],[carManage],[tCarModel],', '添加', '', '/tCarModel/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268792536825081860, 'tCarModel_update', 'tCarModel', '[0],[carManage],[tCarModel],', '编辑', '', '/tCarModel/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268792536825081861, 'tCarModel_delete', 'tCarModel', '[0],[carManage],[tCarModel],', '删除', '', '/tCarModel/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258119962626, 'tCar', 'carManage', '[0],[carManage],', '车辆管理', '', '/tCar', 321, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351233, 'tCar_list', 'tCar', '[0],[carManage],[tCar],', '车辆管理列表', '', '/tCar/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351234, 'tCar_add', 'tCar', '[0],[carManage],[tCar],', '添加', '', '/tCar/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351235, 'tCar_update', 'tCar', '[0],[carManage],[tCar],', '编辑', '', '/tCar/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351236, 'tCar_delete', 'tCar', '[0],[carManage],[tCar],', '删除', '', '/tCar/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351237, 'tCar_inCar', 'tCar', '[0],[carManage],[tCar],', '导入', '', '/tCar/inCar', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351238, 'tCar_outCar', 'tCar', '[0],[carManage],[tCar],', '导出', '', '/tCar/outCar', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1268836258128351239, 'pointsCompanyManage', '0', '[0],', '分公司管理', 'fa-bars', '#', 322, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1269075485671837698, 'tCompany', 'pointsCompanyManage', '[0],[pointsCompanyManage],', '分公司管理', '', '/tCompany', 323, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269075485671837699, 'tCompany_list', 'tCompany', '[0],[pointsCompanyManage],[tCompany],', '分公司管理列表', '', '/tCompany/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269075485671837700, 'tCompany_add', 'tCompany', '[0],[pointsCompanyManage],[tCompany],', '添加', '', '/tCompany/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269075485671837701, 'tCompany_update', 'tCompany', '[0],[pointsCompanyManage],[tCompany],', '编辑', '', '/tCompany/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269075485671837702, 'tCompany_delete', 'tCompany', '[0],[pointsCompanyManage],[tCompany],', '删除', '', '/tCompany/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269075485671837703, 'tCompany_detail', 'tCompany', '[0],[pointsCompanyManage],[tCompany],', '查看详情', '', '/tCompany/detail', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269075485671837704, 'franchiseeManage', '0', '[0],', '加盟商管理', 'fa-bars', '#', 323, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1269187383113371650, 'tCompanyFranchisee', 'franchiseeManage', '[0],[franchiseeManage],', '加盟商管理', '', '/tCompany/franchisee', 324, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269187383113371651, 'tCompany_listFranchisee', 'tCompanyFranchisee', '[0],[franchiseeManage],[tCompanyFranchisee],', '加盟商管理列表', '', '/tCompany/listFranchisee', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269187383113371652, 'tCompany_addFranchisee', 'tCompanyFranchisee', '[0],[franchiseeManage],[tCompanyFranchisee],', '添加', '', '/tCompany/addFranchisee', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269187383113371653, 'tCompany_updateFranchisee', 'tCompanyFranchisee', '[0],[franchiseeManage],[tCompanyFranchisee],', '编辑', '', '/tCompany/updateFranchisee', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269187383113371654, 'tCompany_deleteFranchisee', 'tCompanyFranchisee', '[0],[franchiseeManage],[tCompanyFranchisee],', '删除', '', '/tCompany/deleteFranchisee', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269187383113371655, 'tCompany_detailFranchisee', 'tCompanyFranchisee', '[0],[franchiseeManage],[tCompanyFranchisee],', '查看详情', '', '/tCompany/detailFranchisee', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269187383113371656, 'travelManage', '0', '[0],', '出行订单管理', 'fa-bars', '#', 325, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1269817907586584577, 'tOrderTaxi', 'travelManage', '[0],[travelManage],', '出租车订单', '', '/tOrderTaxi', 2, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269817907586584578, 'tOrderTaxi_list', 'tOrderTaxi', '[0],[travelManage],[tOrderTaxi],', '出租车订单列表', '', '/tOrderTaxi/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269817907586584579, 'tOrderTaxi_detail', 'tOrderTaxi', '[0],[travelManage],[tOrderTaxi],', '订单详情', '', '/tOrderTaxi/detail', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269817907586584580, 'tOrderTaxi_cancel', 'tOrderTaxi', '[0],[travelManage],[tOrderTaxi],', '取消订单', '', '/tOrderTaxi/cancel', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269817907586584581, 'tOrderTaxi_trajectory', 'tOrderTaxi', '[0],[travelManage],[tOrderTaxi],', '订单轨迹', '', '/tOrderTaxi/trajectory', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269817907586584582, 'tOrderTaxi_delete', 'tOrderTaxi', '[0],[travelManage],[tOrderTaxi],', '删除记录', '', '/tOrderTaxi/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1269817907586584583, 'authManage', '0', '[0],', '实名认证管理', 'fa-bars', '#', 327, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270155331579760641, 'tVerified', 'authManage', '[0],[authManage],', '实名认证列表', '', '/tVerified', 328, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270155331579760642, 'tVerified_list', 'tVerified', '[0],[authManage],[tVerified],', '实名认证列表', '', '/tVerified/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270155331579760645, 'tVerified_delete', 'tVerified', '[0],[authManage],[tVerified],', '删除记录', '', '/tVerified/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270155331579760646, 'withdrawalManage', '0', '[0],', '提现管理', 'fa-bars', '#', 329, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270166469340102658, 'tPubWithdrawal', 'withdrawalManage', '[0],[withdrawalManage],', '提现列表', '', '/tPubWithdrawal', 330, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270166469340102659, 'tPubWithdrawal_list', 'tPubWithdrawal', '[0],[withdrawalManage],[tPubWithdrawal],', '提现列表', '', '/tPubWithdrawal/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270166469340102660, 'tPubWithdrawal_immediately', 'tPubWithdrawal', '[0],[withdrawalManage],[tPubWithdrawal],', '立即处理', '', '/tPubWithdrawal/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270166469340102661, 'invoiceManage', '0', '[0],', '开发票管理', 'fa-bars', '#', 331, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270187720196505602, 'tInvoice', 'invoiceManage', '[0],[invoiceManage],', '开发票列表', '', '/tInvoice', 332, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270187720196505603, 'tInvoice_list', 'tInvoice', '[0],[invoiceManage],[tInvoice],', '开发票列表', '', '/tInvoice/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270187720196505604, 'tInvoice_add', 'tInvoice', '[0],[invoiceManage],[tInvoice],', '重新开票', '', '/tInvoice/again', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270187720196505606, 'tInvoice_delete', 'tInvoice', '[0],[invoiceManage],[tInvoice],', '删除记录', '', '/tInvoice/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270187720196505607, 'evaluateManage', '0', '[0],', '评价管理', 'fa-bars', '#', 333, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270200095003930626, 'tOrderEvaluate', 'evaluateManage', '[0],[evaluateManage],', '评价列表', '', '/tOrderEvaluate', 334, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270230075494756354, 'tSysReformist', 'systemSetManage', '[0],[systemSetManage],', '系统设置', 'fa-bars', '/tSysReformist', 336, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270230075494756355, 'complaintManage', '0', '[0],', '投诉管理', 'fa-bars', '#', 336, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270287371570556930, 'tComplaint', 'complaintManage', '[0],[complaintManage],', '投诉列表', '', '/tComplaint', 337, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270287371570556931, 'tComplaint_list', 'tComplaint', '[0],[complaintManage],[tComplaint],', '投诉列表', '', '/tComplaint/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270287371570556932, 'tComplaint_immediately', 'tComplaint', '[0],[complaintManage],[tComplaint],', '立即处理', '', '/tComplaint/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270287371570556934, 'tComplaint_delete', 'tComplaint', '[0],[complaintManage],[tComplaint],', '删除记录', '', '/tComplaint/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270287371570556935, 'systemSetManage', '0', '[0],', '系统设置', 'fa-bars', '#', 335, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270287371570556936, 'wordManage', '0', '[0],', '敏感词管理', 'fa-bars', '#', 337, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270321112590364674, 'tSysSensitiveWords', 'wordManage', '[0],[wordManage],', '敏感词管理', '', '/tSysSensitiveWords', 338, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270321112590364675, 'tSysSensitiveWords_list', 'tSysSensitiveWords', '[0],[wordManage],[tSysSensitiveWords],', '敏感词管理列表', '', '/tSysSensitiveWords/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270321112590364676, 'tSysSensitiveWords_add', 'tSysSensitiveWords', '[0],[wordManage],[tSysSensitiveWords],', '添加', '', '/tSysSensitiveWords/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270321112590364678, 'tSysSensitiveWords_delete', 'tSysSensitiveWords', '[0],[wordManage],[tSysSensitiveWords],', '删除', '', '/tSysSensitiveWords/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270321112590364679, 'feedbackManage', '0', '[0],', '反馈管理', 'fa-bars', '#', 339, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270542445643317250, 'tFeedback', 'feedbackManage', '[0],[feedbackManage],', '司机反馈管理', '', '/tFeedback', 340, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270542445643317251, 'tFeedback_list', 'tFeedback', '[0],[feedbackManage],[tFeedback],', '司机反馈管理列表', '', '/tFeedback/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270542445643317252, 'tFeedback_immediately', 'tFeedback', '[0],[feedbackManage],[tFeedback],', '立即处理', '', '/tFeedback/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270542855032553473, 'tFeedback_userFeedback', 'feedbackManage', '[0],[feedbackManage],', '用户反馈管理', '', '/tFeedback/userFeedback', 341, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270542855032553474, 'tFeedback_listUser', 'tFeedback_userFeedback', '[0],[feedbackManage],[tFeedback_userFeedback],', '用户反馈管理列表', '', '/tFeedback/listUser', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270542855032553475, 'tFeedback_immediatelyUser', 'tFeedback_userFeedback', '[0],[feedbackManage],[tFeedback_userFeedback],', '立即处理', '', '/tFeedback/immediatelyUser', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270542855032553476, 'noticeManage', '0', '[0],', '公告管理', 'fa-bars', '#', 342, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270617046482214913, 'tNotices', 'noticeManage', '[0],[noticeManage],', '滚动消息设置', '', '/tNotices', 343, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270617046482214914, 'tNotices_list', 'tNotices', '[0],[noticeManage],[tNotices],', '滚动消息设置列表', '', '/tNotices/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270617046482214915, 'tNotices_add', 'tNotices', '[0],[noticeManage],[tNotices],', '添加', '', '/tNotices/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270617046482214916, 'tNotices_update', 'tNotices', '[0],[noticeManage],[tNotices],', '编辑', '', '/tNotices/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270617046482214917, 'tNotices_delete', 'tNotices', '[0],[noticeManage],[tNotices],', '删除', '', '/tNotices/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824834, 'tNoticesSystem', 'noticeManage', '[0],[noticeManage],', '系统公告设置', '', '/tNotices/system', 344, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824835, 'tNotices_listSystem', 'tNoticesSystem', '[0],[noticeManage],[tNoticesSystem],', '系统公告设置列表', '', '/tNotices/listSystem', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824836, 'tNotices_addSystem', 'tNoticesSystem', '[0],[noticeManage],[tNoticesSystem],', '添加', '', '/tNotices/addSystem', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824837, 'tNotices_updateSystem', 'tNoticesSystem', '[0],[noticeManage],[tNoticesSystem],', '编辑', '', '/tNotices/updateSystem', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824838, 'tNotices_deleteSystem', 'tNoticesSystem', '[0],[noticeManage],[tNoticesSystem],', '删除', '', '/tNotices/deleteSystem', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824839, 'tNotices_sendSystem', 'tNoticesSystem', '[0],[noticeManage],[tNoticesSystem],', '发布', '', '/tNotices/sendSystem', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270626371560824840, 'versionManage', '0', '[0],', '版本管理', 'fa-bars', '#', 345, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270667884395245569, 'tVersionManagement', 'versionManage', '[0],[versionManage],', '版本管理', '', '/tVersionManagement', 346, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270667884395245570, 'tVersionManagement_list', 'tVersionManagement', '[0],[versionManage],[tVersionManagement],', '版本管理列表', '', '/tVersionManagement/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270667884395245571, 'tVersionManagement_add', 'tVersionManagement', '[0],[versionManage],[tVersionManagement],', '添加', '', '/tVersionManagement/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270667884395245573, 'tVersionManagement_delete', 'tVersionManagement', '[0],[versionManage],[tVersionManagement],', '删除', '', '/tVersionManagement/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1270667884395245574, 'codeManage', '0', '[0],', '短信记录', 'fa-bars', '#', 347, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1270682932433928193, 'tSmsrecord', 'codeManage', '[0],[codeManage],', '短信记录', '', '/tSmsrecord', 99, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1271615006909194246, 'tOrderTaxi_changeOrder', 'tOrderTaxi', '[0],[tOrderTaxi],', '改派订单', '', '/tOrderTaxi/changeOrder', 99, 2, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1271615006909194247, 'sysRedPacketRecord', '#', '[0],[#],', '红包管理', 'fa-bars', '/sysRedPacketRecord', 101, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194248, 'sysRedPacketRecord_add', 'sysRedPacketRecord', '[0],[sysRedPacketRecord],', '添加', 'fa-bars', '/sysRedPacketRecord/add', 102, 2, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194249, 'sysCouponRecord', '#', '[0],[#],', '优惠券管理', 'fa-bars', '/sysCouponRecord', 102, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194250, 'sysCouponRecord_add', 'sysCouponRecord', '[0],[sysCouponRecord],', '添加', 'fa-bars', '/sysCouponRecord/add', 103, 2, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194251, '#', '0', '[0],', '活动管理', 'fa-bars', '#', 348, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194252, 'sysCouponActivity', '#', '[0],[#],', '赠送活动管理', 'fa-bars', '/sysCouponActivity', 3, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194253, 'sysCouponActivity_add', 'sysCouponActivity', '[0],[#],[sysCouponActivity],', '添加', 'fa-bars', '/sysCouponActivity/add', 1, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194254, 'sysCouponActivity_delete', 'sysCouponActivity', '[0],[#],[sysCouponActivity],', '删除', 'fa-bars', '/sysCouponActivity/delete', 2, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194255, 'sysCouponActivity_userCouponRecord', 'sysCouponActivity', '[0],[#],[sysCouponActivity],', '领取记录', 'fa-bars', '/sysCouponActivity/userCouponRecord', 3, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194256, 'sysCouponActivity_immediately', 'sysCouponActivity', '[0],[#],[sysCouponActivity],', '审核', 'fa-bars', '/sysCouponActivity/immediately', 4, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194257, 'sysCouponActivity_update', 'sysCouponActivity', '[0],[#],[sysCouponActivity],', '编辑', 'fa-bars', '/sysCouponActivity/update', 5, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194258, 'driverActivity', '#', '[0],[#],', '司机活动管理', 'fa-bars', '/driverActivity', 2, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194259, 'driverActivity_add', 'driverActivity', '[0],[#],[driverActivity],', '添加', 'fa-bars', '/driverActivity/add', 1, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194260, 'driverActivity_update', 'driverActivity', '[0],[#],[driverActivity],', '编辑', 'fa-bars', '/driverActivity/update', 2, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194261, 'driverActivity_updateStatus', 'driverActivity', '[0],[#],[driverActivity],', '启动/暂停', 'fa-bars', '/driverActivity/updateStatus', 3, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194262, 'driverActivity_detail', 'driverActivity', '[0],[#],[driverActivity],', '详情', 'fa-bars', '/driverActivity/detail', 4, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194263, 'driverActivity_receiveRecord', 'driverActivity', '[0],[#],[driverActivity],', '领取统计', 'fa-bars', '/driverActivity/receiveRecord', 5, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194264, 'driverActivity_immediately', 'driverActivity', '[0],[#],[driverActivity],', '审核', 'fa-bars', '/driverActivity/immediately', 6, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194266, 'userActivity', '#', '[0],[#],', '用户活动管理', 'fa-bars', '/userActivity', 3, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194267, 'userActivity_add', 'userActivity', '[0],[#],[userActivity],', '添加', 'fa-bars', '/userActivity/add', 1, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194268, 'userActivity_update', 'userActivity', '[0],[#],[userActivity],', '编辑', 'fa-bars', '/userActivity/update', 2, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194269, 'userActivity_updateStatus', 'userActivity', '[0],[#],[userActivity],', '启动/暂停', 'fa-bars', '/userActivity/updateStatus', 3, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194270, 'userActivity_detail', 'userActivity', '[0],[#],[userActivity],', '详情', 'fa-bars', '/userActivity/detail', 4, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194271, 'userActivity_receiveRecord', 'userActivity', '[0],[#],[userActivity],', '领取记录', 'fa-bars', '/userActivity/receiveRecord', 5, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1271615006909194272, 'userActivity_immediately', 'userActivity', '[0],[#],[userActivity],', '审核', 'fa-bars', '/userActivity/immediately', 6, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1275629819595452417, 'tProblem', 'feedbackManage', '[0],[feedbackManage],', '用户留言管理', '', '/tProblem', 342, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1275629819595452418, 'tProblem_list', 'tProblem', '[0],[feedbackManage],[tProblem],', '用户留言管理列表', '', '/tProblem/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1275629819595452419, 'tProblem_immediately', 'tProblem', '[0],[feedbackManage],[tProblem],', '立即处理', '', '/tProblem/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1277087450839248898, 'tAgreement', 'basisManage', '[0],[basisManage],', '司机注册协议设置', '', '/tAgreement/driverRegister', 311, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1277087450839248899, 'tAgreement', 'basisManage', '[0],[basisManage],', '改派说明设置', '', '/tAgreement/instructions', 312, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1277087450839248900, 'deleteDriver', 'tDriver1', '[0],[driverManage],[tDriver1],', '删除司机', 'fa-bars', '/tDriver/deleteDriver', 99, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1282644332165259270, 'tUser_inUser', 'tUser', '[0],[userManage],[tUser],', '导入', '', '/tUser/inUser', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1282644332165259271, 'tUser_outUser', 'tUser', '[0],[userManage],[tUser],', '导出', '', '/tUser/outUser', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1282644332165259272, 'adminUpdate', 'system', '[0],[system],', '企业信息', 'fa-bars', '/tCompany/admin_update', 241, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1282644332165259273, 'corssHtml', 'basisManage', '[0],[basisManage],', '跨城出行乘车须知', 'fa-bars', '/tAgreement/corssHtml', 313, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308685861421875202, 'tOrderPrivateCar', 'travelManage', '[0],[travelManage],', '专车订单', '', '/tOrderPrivateCar', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308685861421875203, 'tOrderPrivateCar_list', 'tOrderPrivateCar', '[0],[travelManage],[tOrderPrivateCar],', '专车订单列表', '', '/tOrderPrivateCar/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308685861421875204, 'tOrderPrivateCar_orderDetail', 'tOrderPrivateCar', '[0],[travelManage],[tOrderPrivateCar],', '订单详情', '', '/tOrderPrivateCar/orderDetail', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308685861421875205, 'tOrderPrivateCar_cancelOrder', 'tOrderPrivateCar', '[0],[travelManage],[tOrderPrivateCar],', '取消订单', '', '/tOrderPrivateCar/cancelOrder', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308685861421875206, 'tOrderPrivateCar_orderTrack', 'tOrderPrivateCar', '[0],[travelManage],[tOrderPrivateCar],', '订单轨迹', '', '/tOrderPrivateCar/orderTrack', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308685861421875207, 'tOrderPrivateCar_deleteOrder', 'tOrderPrivateCar', '[0],[travelManage],[tOrderPrivateCar],', '删除记录', '', '/tOrderPrivateCar/deleteOrder', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812929, 'tOrderCrossCity', 'travelManage', '[0],[travelManage],', '跨城出行订单', '', '/tOrderCrossCity', 3, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812930, 'tOrderCrossCity_list', 'tOrderCrossCity', '[0],[travelManage],[tOrderCrossCity],', '跨城出行订单列表', '', '/tOrderCrossCity/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812931, 'tOrderCrossCity_detail', 'tOrderCrossCity', '[0],[travelManage],[tOrderCrossCity],', '订单详情', '', '/tOrderCrossCity/detail', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812932, 'tOrderCrossCity_cancel', 'tOrderCrossCity', '[0],[travelManage],[tOrderCrossCity],', '取消订单', '', '/tOrderCrossCity/cancel', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812933, 'tOrderCrossCity_track', 'tOrderCrossCity', '[0],[travelManage],[tOrderCrossCity],', '订单轨迹', '', '/tOrderCrossCity/track', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812934, 'tOrderCrossCity_delete', 'tOrderCrossCity', '[0],[travelManage],[tOrderCrossCity],', '删除记录', '', '/tOrderCrossCity/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308686944210812935, 'changeManage', '0', '[0],', '改派管理', 'fa-bars', '#', 350, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308690277738774529, 'tReassign', 'changeManage', '[0],[changeManage],', '专车改派管理', '', '/tReassign', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308690277738774530, 'tReassign_list', 'tReassign', '[0],[changeManage],[tReassign],', '专车改派管理列表', '', '/tReassign/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308690277738774531, 'tReassign_refused', 'tReassign', '[0],[changeManage],[tReassign],', '拒绝改派', '', '/tReassign/refused', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308690277738774532, 'tReassign_update', 'tReassign', '[0],[changeManage],[tReassign],', '立即改派', '', '/tReassign/reassignment', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308690277738774533, 'tReassign_delete', 'tReassign', '[0],[changeManage],[tReassign],', '取消订单', '', '/tReassign/cancel', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308693386556923905, 'tReassignCross', 'changeManage', '[0],[changeManage],', '跨城改派管理', '', '/tReassign/cross', 2, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308693386556923906, 'tReassign_listCross', 'tReassignCross', '[0],[changeManage],[tReassignCross],', '跨城改派管理列表', '', '/tReassign/listCross', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308693386556923907, 'tReassign_refusedCross', 'tReassignCross', '[0],[changeManage],[tReassignCross],', '拒绝改派', '', '/tReassign/refusedCross', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308693386556923908, 'tReassign_reassignmentCross', 'tReassignCross', '[0],[changeManage],[tReassignCross],', '立即改派', '', '/tReassign/reassignmentCross', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308693386556923909, 'tReassign_cancelCross', 'tReassignCross', '[0],[changeManage],[tReassignCross],', '取消订单', '', '/tReassign/cancelCross', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308693386556923910, 'lineManage', '0', '[0],', '跨城线路管理', 'fa-bars', '#', 351, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308694555895324673, 'tSite', 'lineManage', '[0],[lineManage],', '跨城站点管理', '', '/tSite', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308694555895324674, 'tSite_list', 'tSite', '[0],[lineManage],[tSite],', '跨城站点管理列表', '', '/tSite/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308694555895324675, 'tSite_add', 'tSite', '[0],[lineManage],[tSite],', '添加', '', '/tSite/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308694555895324676, 'tSite_update', 'tSite', '[0],[lineManage],[tSite],', '编辑', '', '/tSite/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308694555895324677, 'tSite_delete', 'tSite', '[0],[lineManage],[tSite],', '删除', '', '/tSite/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308694555895324678, 'tSite_freeze', 'tSite', '[0],[lineManage],[tSite],', '冻结', '', '/tSite/freeze', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308694555895324679, 'tSite_thaw', 'tSite', '[0],[lineManage],[tSite],', '解冻', '', '/tSite/thaw', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417793, 'tLine', 'lineManage', '[0],[lineManage],', '跨城线路管理', '', '/tLine', 2, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417794, 'tLine_list', 'tLine', '[0],[lineManage],[tLine],', '跨城线路管理列表', '', '/tLine/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417795, 'tLine_add', 'tLine', '[0],[lineManage],[tLine],', '添加', '', '/tLine/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417796, 'tLine_update', 'tLine', '[0],[lineManage],[tLine],', '编辑', '', '/tLine/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417797, 'tLine_delete', 'tLine', '[0],[lineManage],[tLine],', '删除', '', '/tLine/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417798, 'tLine_freeze', 'tLine', '[0],[lineManage],[tLine],', '冻结', '', '/tLine/freeze', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417799, 'tLine_thaw', 'tLine', '[0],[lineManage],[tLine],', '解冻', '', '/tLine/thaw', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417800, 'tLine_addCompany', 'tLine', '[0],[lineManage],[tLine],', '分配企业', '', '/tLine/addCompany', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308698188288417801, 'carModelSet', '0', '[0],', '车型设置', 'fa-bars', '#', 352, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308701049940402178, 'tServerCarmodel', 'carModelSet', '[0],[carModelSet],', '专车车型设置', '', '/tServerCarmodel', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308701049940402179, 'tServerCarmodel_list', 'tServerCarmodel', '[0],[carModelSet],[tServerCarmodel],', '专车车型设置列表', '', '/tServerCarmodel/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308701049940402180, 'tServerCarmodel_add', 'tServerCarmodel', '[0],[carModelSet],[tServerCarmodel],', '添加', '', '/tServerCarmodel/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308701049940402181, 'tServerCarmodel_no', 'tServerCarmodel', '[0],[carModelSet],[tServerCarmodel],', '禁用', '', '/tServerCarmodel/no', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308701049940402182, 'tServerCarmodel_yes', 'tServerCarmodel', '[0],[carModelSet],[tServerCarmodel],', '启用', '', '/tServerCarmodel/yes', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308702304670638081, 'tServerCarmodelAcrossCity', 'carModelSet', '[0],[carModelSet],', '跨城车型设置', '', '/tServerCarmodel/acrossCity', 2, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308702304670638082, 'tServerCarmodel_listAcrossCity', 'tServerCarmodelAcrossCity', '[0],[carModelSet],[tServerCarmodelAcrossCity],', '跨城车型设置列表', '', '/tServerCarmodel/listAcrossCity', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308702304670638083, 'tServerCarmodel_addAcrossCity', 'tServerCarmodelAcrossCity', '[0],[carModelSet],[tServerCarmodelAcrossCity],', '添加', '', '/tServerCarmodel/addAcrossCity', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308702304670638084, 'tServerCarmodel_noAcrossCity', 'tServerCarmodelAcrossCity', '[0],[carModelSet],[tServerCarmodelAcrossCity],', '禁用', '', '/tServerCarmodel/noAcrossCity', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308702304670638085, 'tServerCarmodel_yesAcrossCity', 'tServerCarmodelAcrossCity', '[0],[carModelSet],[tServerCarmodelAcrossCity],', '启用', '', '/tServerCarmodel/yesAcrossCity', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308939095893929985, 'tServerCarmodelCharter', 'carModelSet', '[0],[carModelSet],', '包车车型设置', '', '/tServerCarmodel/charter', 3, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308939095893929986, 'tServerCarmodel_listCharter', 'tServerCarmodelCharter', '[0],[carModelSet],[tServerCarmodelCharter],', '包车车型设置列表', '', '/tServerCarmodel/listCharter', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308939095893929987, 'tServerCarmodel_addCharter', 'tServerCarmodelCharter', '[0],[carModelSet],[tServerCarmodelCharter],', '添加', '', '/tServerCarmodel/addCharter', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308939095893929988, 'tServerCarmodel_noCharter', 'tServerCarmodelCharter', '[0],[carModelSet],[tServerCarmodelCharter],', '启用', '', '/tServerCarmodel/noCharter', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308939095893929989, 'tServerCarmodel_yesCharter', 'tServerCarmodelCharter', '[0],[carModelSet],[tServerCarmodelCharter],', '禁用', '', '/tServerCarmodel/yesCharter', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308939095893929990, 'priceSet', '0', '[0],', '价格设置', 'fa-bars', '#', 353, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308947296710344706, 'tSystemPrice', 'priceSet', '[0],[priceSet],', '专车价格设置', '', '/tSystemPrice/special', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344707, 'tSystemPrice_listSpecial', 'tSystemPrice', '[0],[priceSet],[tSystemPrice],', '专车价格设置列表', '', '/tSystemPrice/listSpecial', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344708, 'tSystemPrice_addSpecial', 'tSystemPrice', '[0],[priceSet],[tSystemPrice],', '添加', '', '/tSystemPrice/addSpecial', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344709, 'tSystemPrice_updateSpecial', 'tSystemPrice', '[0],[priceSet],[tSystemPrice],', '修改', '', '/tSystemPrice/updateSpecial', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344710, 'tSystemPrice_deleteSpecial', 'tSystemPrice', '[0],[priceSet],[tSystemPrice],', '删除', '', '/tSystemPrice/deleteSpecial', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344711, 'tSystemPrice_freezeSpecial', 'tSystemPrice', '[0],[priceSet],[tSystemPrice],', '冻结', '', '/tSystemPrice/freezeSpecial', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344712, 'tSystemPrice_thawSpecial', 'tSystemPrice', '[0],[priceSet],[tSystemPrice],', '解冻', '', '/tSystemPrice/thawSpecial', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308947296710344713, 'small', 'priceSet', '[0],[priceSet],', '小件物流价格设置', 'fa-bars', '/tSystemPrice/small', 2, 2, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308947296710344714, 'dispatchManage', '0', '[0],', '调度管理', 'fa-bars', '#', 354, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308952578060500993, 'tDispatch', 'dispatchManage', '[0],[dispatchManage],', '调度管理', '', '/tDispatch', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060500994, 'tDispatch_list', 'tDispatch', '[0],[dispatchManage],[tDispatch],', '调度管理列表', '', '/tDispatch/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060500995, 'tDispatch_add', 'tDispatch', '[0],[dispatchManage],[tDispatch],', '添加', '', '/tDispatch/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060500996, 'tDispatch_update', 'tDispatch', '[0],[dispatchManage],[tDispatch],', '编辑', '', '/tDispatch/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060500997, 'tDispatch_delete', 'tDispatch', '[0],[dispatchManage],[tDispatch],', '删除', '', '/tDispatch/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060500998, 'tDispatch_freeze', 'tDispatch', '[0],[dispatchManage],[tDispatch],', '冻结', '', '/tDispatch/freeze', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060500999, 'tDispatch_thaw', 'tDispatch', '[0],[dispatchManage],[tDispatch],', '解冻', '', '/tDispatch/thaw', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308952578060501000, 'goodsManage', '0', '[0],', '积分商品管理', 'fa-bars', '#', 355, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308956024717230081, 'tIntegralGoods', 'goodsManage', '[0],[goodsManage],', '商品管理', '', '/tIntegralGoods', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230082, 'tIntegralGoods_list', 'tIntegralGoods', '[0],[goodsManage],[tIntegralGoods],', '商品管理列表', '', '/tIntegralGoods/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230083, 'tIntegralGoods_add', 'tIntegralGoods', '[0],[goodsManage],[tIntegralGoods],', '添加', '', '/tIntegralGoods/add', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230084, 'tIntegralGoods_update', 'tIntegralGoods', '[0],[goodsManage],[tIntegralGoods],', '编辑', '', '/tIntegralGoods/update', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230085, 'tIntegralGoods_delete', 'tIntegralGoods', '[0],[goodsManage],[tIntegralGoods],', '删除', '', '/tIntegralGoods/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230086, 'tIntegralGoods_up', 'tIntegralGoods', '[0],[goodsManage],[tIntegralGoods],', '上架', '', '/tIntegralGoods/up', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230087, 'tIntegralGoods_down', 'tIntegralGoods', '[0],[goodsManage],[tIntegralGoods],', '下架', '', '/tIntegralGoods/down', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308956024717230088, 'changeOrderManage', '0', '[0],', '兑换订单管理', 'fa-bars', '#', 356, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308958374009815041, 'tIntegralOrder', 'changeOrderManage', '[0],[changeOrderManage],', '积分兑换订单', '', '/tIntegralOrder', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308958374009815042, 'tIntegralOrder_list', 'tIntegralOrder', '[0],[changeOrderManage],[tIntegralOrder],', '积分兑换订单列表', '', '/tIntegralOrder/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308958374009815043, 'tIntegralOrder_immediately', 'tIntegralOrder', '[0],[changeOrderManage],[tIntegralOrder],', '立即处理', '', '/tIntegralOrder/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308958374009815044, 'tIntegralOrder_delete', 'tIntegralOrder', '[0],[changeOrderManage],[tIntegralOrder],', '删除记录', '', '/tIntegralOrder/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308958374009815045, 'travelCharterManage', '0', '[0],', '旅游包车管理', 'fa-bars', '#', 357, 1, 1, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1308966481553309697, 'tOrderCharteredCar', 'travelCharterManage', '[0],[travelCharterManage],', '旅游包车订单', '', '/tOrderCharteredCar', 1, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308966481561698306, 'tOrderCharteredCar_list', 'tOrderCharteredCar', '[0],[travelCharterManage],[tOrderCharteredCar],', '旅游包车订单列表', '', '/tOrderCharteredCar/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308966481561698307, 'tOrderCharteredCar_immediately', 'tOrderCharteredCar', '[0],[travelCharterManage],[tOrderCharteredCar],', '立即处理', '', '/tOrderCharteredCar/immediately', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1308966481561698308, 'tOrderCharteredCar_delete', 'tOrderCharteredCar', '[0],[travelCharterManage],[tOrderCharteredCar],', '删除记录', '', '/tOrderCharteredCar/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1309014874136809474, 'tOrderLogistics', 'travelManage', '[0],[travelManage],', '小件物流订单', '', '/tOrderLogistics', 4, 2, 1, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1309014874136809475, 'tOrderLogistics_list', 'tOrderLogistics', '[0],[travelManage],[tOrderLogistics],', '小件物流订单列表', '', '/tOrderLogistics/list', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1309014874136809476, 'tOrderLogistics_detail', 'tOrderLogistics', '[0],[travelManage],[tOrderLogistics],', '订单详情', '', '/tOrderLogistics/detail', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1309014874136809477, 'tOrderLogistics_cancel', 'tOrderLogistics', '[0],[travelManage],[tOrderLogistics],', '取消订单', '', '/tOrderLogistics/cancel', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1309014874136809479, 'tOrderLogistics_delete', 'tOrderLogistics', '[0],[travelManage],[tOrderLogistics],', '删除记录', '', '/tOrderLogistics/delete', 99, 3, 0, NULL, 1, 0);
+INSERT INTO `sys_menu` VALUES (1309014874136809480, 'carInsurance', 'tCar', '[0],[carManage],[tCar],', '车辆保险', 'fa-bars', '/tCar/carInsurance', 7, 3, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1309014874136809481, 'openAddCarInsurance', 'carInsurance', '[0],[carManage],[tCar],[carInsurance],', '添加车险', 'fa-bars', '/CarInsurance/openAddCarInsurance', 1, 4, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1309014874136809482, 'openCarInsuranceDetail', 'carInsurance', '[0],[carManage],[tCar],[carInsurance],', '修改车险', 'fa-bars', '/CarInsurance/openCarInsuranceDetail', 2, 4, 0, NULL, 1, NULL);
+INSERT INTO `sys_menu` VALUES (1309014874136809483, 'deleteCarInsurance', 'carInsurance', '[0],[carManage],[tCar],[carInsurance],', '删除车险', 'fa-bars', '/CarInsurance/delete', 3, 4, 0, NULL, 1, NULL);
+
+-- ----------------------------
+-- Table structure for sys_notice
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_notice`;
+CREATE TABLE `sys_notice`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+  `type` int(11) NULL DEFAULT NULL COMMENT '类型',
+  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容',
+  `createtime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `creater` int(11) NULL DEFAULT NULL COMMENT '创建人',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_notice
+-- ----------------------------
+INSERT INTO `sys_notice` VALUES (6, '世界', 10, '欢迎使用game管理系统', '2017-01-11 08:53:20', 1);
+INSERT INTO `sys_notice` VALUES (8, '你好', NULL, '你好', '2017-05-10 19:28:57', 1);
+
+-- ----------------------------
+-- Table structure for sys_operation_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_operation_log`;
+CREATE TABLE `sys_operation_log`  (
+  `id` int(65) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `logtype` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志类型',
+  `logname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志名称',
+  `userid` int(65) NULL DEFAULT NULL COMMENT '用户id',
+  `classname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类名称',
+  `method` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '方法名称',
+  `createtime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `succeed` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否成功',
+  `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '备注',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 446 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '操作日志' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_operation_log
+-- ----------------------------
+INSERT INTO `sys_operation_log` VALUES (319, '业务日志', '添加管理员', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'add', '2020-08-20 13:41:50', '成功', '账号=广西云森');
+INSERT INTO `sys_operation_log` VALUES (320, '业务日志', '修改管理员', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'edit', '2020-08-20 13:42:25', '成功', '账号=广西云森;;;字段名称:null,旧值:b972154e82b3852147aa226bc2d821cb,新值:');
+INSERT INTO `sys_operation_log` VALUES (321, '业务日志', '分配角色', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'setRole', '2020-08-20 13:44:23', '成功', '账号=广西云森,角色名称集合=超级管理员');
+INSERT INTO `sys_operation_log` VALUES (322, '业务日志', '添加管理员', 36, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'add', '2020-08-20 13:48:24', '成功', '账号=JSB01');
+INSERT INTO `sys_operation_log` VALUES (323, '业务日志', '分配角色', 36, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'setRole', '2020-08-20 13:48:38', '成功', '账号=JSB01,角色名称集合=技术部');
+INSERT INTO `sys_operation_log` VALUES (324, '业务日志', '配置权限', 36, 'com.stylefeng.guns.modular.system.controller.RoleController', 'setAuthority', '2020-08-20 13:49:21', '成功', '角色名称=技术部,资源名称=首页,系统管理,登录日志,登录日志列表,清空登录日志,业务日志,日志列表,日志详情,清空日志,监控管理,字典管理,字典列表,添加字典,修改字典,删除字典,字典详情,修改菜单跳转,通知管理,添加通知,修改通知,删除通知,用户管理');
+INSERT INTO `sys_operation_log` VALUES (325, '业务日志', '添加管理员', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'add', '2020-08-20 13:53:18', '成功', '账号=JSB00');
+INSERT INTO `sys_operation_log` VALUES (326, '业务日志', '分配角色', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'setRole', '2020-08-20 13:53:24', '成功', '账号=JSB00,角色名称集合=超级管理员');
+INSERT INTO `sys_operation_log` VALUES (327, '异常日志', '', 1, NULL, NULL, '2020-08-20 14:40:44', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (328, '异常日志', '', 1, NULL, NULL, '2020-08-20 14:47:59', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (329, '异常日志', '', 1, NULL, NULL, '2020-08-20 14:58:24', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (330, '异常日志', '', 1, NULL, NULL, '2020-08-20 15:06:22', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (331, '异常日志', '', 1, NULL, NULL, '2020-08-20 15:15:54', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (332, '异常日志', '', 1, NULL, NULL, '2020-08-21 11:18:20', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (333, '异常日志', '', 1, NULL, NULL, '2020-08-21 15:56:10', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (334, '异常日志', '', 1, NULL, NULL, '2020-08-21 16:31:08', '失败', 'org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type \'java.lang.String\' to required type \'java.lang.Integer\'; nested exception is java.lang.NumberFormatException: For input string: \"undefined\"\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:131)\n	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:124)\n	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:131)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\nCaused by: java.lang.NumberFormatException: For input string: \"undefined\"\n	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n	at java.lang.Integer.parseInt(Integer.java:580)\n	at java.lang.Integer.valueOf(Integer.java:766)\n	at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)\n	at org.springframework.beans.propertyeditors.CustomNumberEditor.setAsText(CustomNumberEditor.java:115)\n	at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:466)\n	at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:439)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:192)\n	at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:99)\n	at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:73)\n	at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:52)\n	at org.springframework.validation.DataBinder.convertIfNecessary(DataBinder.java:692)\n	at org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver.resolveArgument(AbstractNamedValueMethodArgumentResolver.java:123)\n	... 79 more\n');
+INSERT INTO `sys_operation_log` VALUES (335, '异常日志', '', 1, NULL, NULL, '2020-08-24 11:04:30', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\n	at com.stylefeng.guns.modular.system.controller.HomeController.getDriverPosition(HomeController.java:253)\n	at com.stylefeng.guns.modular.system.controller.HomeControllerTTFastClassBySpringCGLIBTTb982ab9b.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor185.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.HomeControllerTTEnhancerBySpringCGLIBTTc8902852.getDriverPosition(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (336, '异常日志', '', 1, NULL, NULL, '2020-08-24 14:12:14', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\n	at com.stylefeng.guns.modular.system.controller.HomeController.getDriverPosition(HomeController.java:253)\n	at com.stylefeng.guns.modular.system.controller.HomeControllerTTFastClassBySpringCGLIBTTb982ab9b.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor185.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.HomeControllerTTEnhancerBySpringCGLIBTTc8902852.getDriverPosition(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (337, '业务日志', '添加角色', 1, 'com.stylefeng.guns.modular.system.controller.RoleController', 'add', '2020-08-27 17:03:07', '成功', '角色名称=运维');
+INSERT INTO `sys_operation_log` VALUES (338, '业务日志', '修改角色', 1, 'com.stylefeng.guns.modular.system.controller.RoleController', 'edit', '2020-08-27 17:03:23', '成功', '角色名称=运维;;;');
+INSERT INTO `sys_operation_log` VALUES (339, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.RoleController', 'setAuthority', '2020-08-27 17:04:34', '成功', '角色名称=运维,资源名称=用户管理');
+INSERT INTO `sys_operation_log` VALUES (340, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.RoleController', 'setAuthority', '2020-08-27 17:04:35', '成功', '角色名称=运维,资源名称=用户管理');
+INSERT INTO `sys_operation_log` VALUES (341, '业务日志', '添加管理员', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'add', '2020-08-27 17:05:32', '成功', '账号=YYB01');
+INSERT INTO `sys_operation_log` VALUES (342, '业务日志', '分配角色', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'setRole', '2020-08-27 17:11:08', '成功', '账号=YYB01,角色名称集合=运维');
+INSERT INTO `sys_operation_log` VALUES (343, '业务日志', '修改管理员', 39, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'edit', '2020-08-29 10:10:58', '成功', '账号=YYB01;;;字段名称:头像,旧值:,新值:https://newok.oss-cn-shenzhen.aliyuncs.com/img/96c1768426a24cc2825f84edfbef5b20.jpg;;;字段名称:null,旧值:0cf8fe5850aa7ba5b16eaec80313c1e6,新值:');
+INSERT INTO `sys_operation_log` VALUES (344, '业务日志', '修改管理员', 39, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'edit', '2020-08-29 10:11:08', '成功', '账号=YYB01;;;字段名称:头像,旧值:,新值:https://newok.oss-cn-shenzhen.aliyuncs.com/img/96c1768426a24cc2825f84edfbef5b20.jpg;;;字段名称:null,旧值:0cf8fe5850aa7ba5b16eaec80313c1e6,新值:');
+INSERT INTO `sys_operation_log` VALUES (345, '业务日志', '修改管理员', 39, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'edit', '2020-08-29 10:11:50', '成功', '账号=YYB01;;;字段名称:头像,旧值:https://newok.oss-cn-shenzhen.aliyuncs.com/img/96c1768426a24cc2825f84edfbef5b20.jpg,新值:https://newok.oss-cn-shenzhen.aliyuncs.com/img/4dbe3e5898bf4286a806ab56b93f9d52.jpg;;;字段名称:null,旧值:0cf8fe5850aa7ba5b16eaec80313c1e6,新值:');
+INSERT INTO `sys_operation_log` VALUES (346, '业务日志', '添加管理员', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'add', '2020-08-29 10:30:40', '成功', '账号=JSB03');
+INSERT INTO `sys_operation_log` VALUES (347, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.RoleController', 'setAuthority', '2020-08-29 10:31:07', '成功', '角色名称=运维,资源名称=用户管理');
+INSERT INTO `sys_operation_log` VALUES (348, '业务日志', '分配角色', 1, 'com.stylefeng.guns.modular.system.controller.UserMgrController', 'setRole', '2020-08-29 10:38:10', '成功', '账号=YYB01,角色名称集合=技术部');
+INSERT INTO `sys_operation_log` VALUES (349, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:53:49', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (350, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:53:58', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (351, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:54:04', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (352, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:58:06', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (353, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:58:19', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (354, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:59:03', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (355, '异常日志', '', 39, NULL, NULL, '2020-08-29 10:59:14', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (356, '异常日志', '', 37, NULL, NULL, '2020-08-29 11:02:33', '失败', 'java.lang.NullPointerException\n	at com.stylefeng.guns.modular.system.controller.TDriverController.tDriverUpdate(TDriverController.java:160)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTFastClassBySpringCGLIBTT907088b8.invoke(<generated>)\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\n	at com.stylefeng.guns.core.intercept.SessionHolderInterceptor.sessionKit(SessionHolderInterceptor.java:29)\n	at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\n	at com.stylefeng.guns.modular.system.controller.TDriverControllerTTEnhancerBySpringCGLIBTTbb1018b4.tDriverUpdate(<generated>)\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n	at java.lang.reflect.Method.invoke(Method.java:483)\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:130)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.accessT000(ErrorPageFilter.java:66)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilterT1.doFilterInternal(ErrorPageFilter.java:105)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:123)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)\n	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:868)\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1455)\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\n	at java.lang.Thread.run(Thread.java:745)\n');
+INSERT INTO `sys_operation_log` VALUES (357, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-23 16:24:21', '成功', '菜单名称=企业信息');
+INSERT INTO `sys_operation_log` VALUES (358, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 16:24:29', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (359, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-23 16:27:17', '成功', '菜单名称=跨城出行乘车须知');
+INSERT INTO `sys_operation_log` VALUES (360, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 16:29:23', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (361, '业务日志', '修改菜单', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'edit', '2020-09-23 16:29:49', '成功', '菜单名称=广告设置;;;字段名称:菜单排序号,旧值:313,新值:315');
+INSERT INTO `sys_operation_log` VALUES (362, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 16:34:55', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (363, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 16:38:51', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (364, '异常日志', '', 1, NULL, NULL, '2020-09-23 16:38:59', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n### The error may exist in com/stylefeng/guns/modular/system/dao/TLineMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT  id AS id,`name`,shiftInterval,rakeRate,`state`,insertTime,insertUserId  FROM t_line         where not FIND_IN_SET(state,\'3\')\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.selectList(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.selectList(ServiceImpl.java:394)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT1d16790c.selectList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TOrderCrossCityController.index(TOrderCrossCityController.java:60)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TOrderCrossCityControllerTTFastClassBySpringCGLIBTT6abbb4e.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TOrderCrossCityControllerTTEnhancerBySpringCGLIBTTa9138ce8.index(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy202.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy199.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)\r\n	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (365, '异常日志', '', 1, NULL, NULL, '2020-09-23 16:40:46', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n### The error may exist in com/stylefeng/guns/modular/system/dao/TLineMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT  id AS id,`name`,shiftInterval,rakeRate,`state`,insertTime,insertUserId  FROM t_line         where not FIND_IN_SET(state,\'3\')\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.selectList(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.selectList(ServiceImpl.java:394)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT1d16790c.selectList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TOrderCrossCityController.index(TOrderCrossCityController.java:60)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TOrderCrossCityControllerTTFastClassBySpringCGLIBTT6abbb4e.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TOrderCrossCityControllerTTEnhancerBySpringCGLIBTTa9138ce8.index(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy202.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor107.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy199.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)\r\n	at sun.reflect.GeneratedMethodAccessor189.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (366, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-23 16:50:18', '成功', '菜单名称=改派管理');
+INSERT INTO `sys_operation_log` VALUES (367, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 16:52:12', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (368, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:00:21', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignController.selectDriver(TReassignController.java:164)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignControllerTTFastClassBySpringCGLIBTT5501db93.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignControllerTTEnhancerBySpringCGLIBTTf9eea40c.selectDriver(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (369, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:02:10', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignController.selectDriver(TReassignController.java:164)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignControllerTTFastClassBySpringCGLIBTT5501db93.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignControllerTTEnhancerBySpringCGLIBTTf9eea40c.selectDriver(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (370, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 17:05:43', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (371, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-23 17:07:20', '成功', '菜单名称=跨城线路管理');
+INSERT INTO `sys_operation_log` VALUES (372, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 17:09:29', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (373, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:09:34', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TSiteMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TSiteMapper.getSiteList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT uu.`name` as insertUser,IFNULL(ls.num,0) as lineNum,ss.* FROM t_site as ss         LEFT JOIN sys_user as uu on uu.id = ss.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,siteId FROM t_line_site GROUP BY siteId) as ls on ls.siteId = ss.id) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy169.getSiteList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImpl.getSiteList(TSiteServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTFastClassBySpringCGLIBTT9bd16b5d.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTEnhancerBySpringCGLIBTTd0f81126.getSiteList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.list(TSiteController.java:123)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (374, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:11:44', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TSiteMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_site   ( `name`,  province,  provinceCode,  city,  cityCode,      `state`,  insertTime,  insertUserId )  VALUES   ( ?,  ?,  ?,  ?,  ?,      ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy169.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTEnhancerBySpringCGLIBTTd0f81126.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.add(TSiteController.java:137)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'insertUserId\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 98 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (375, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:12:32', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLocationMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_location   ( siteId,  `name`,  `type`,  province,  provinceCode,  city,  cityCode,  district,  districtCode,    `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,    ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy180.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLocationServiceImplTTEnhancerBySpringCGLIBTT223e525c.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.addLocation(TSiteController.java:178)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.add(TSiteController.java:140)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'name\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (376, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:13:35', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLocationMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_location   ( siteId,  `name`,  `type`,  province,  provinceCode,  city,  cityCode,  district,  districtCode,    `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,    ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy180.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLocationServiceImplTTEnhancerBySpringCGLIBTT223e525c.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.addLocation(TSiteController.java:178)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.add(TSiteController.java:140)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (377, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:14:13', '失败', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database.  Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLocationMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_location   ( siteId,  `name`,  `type`,  province,  provinceCode,  city,  cityCode,  district,  districtCode,    `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,  ?,    ?,  ?,  ? )\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; ]; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy180.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLocationServiceImplTTEnhancerBySpringCGLIBTT223e525c.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.addLocation(TSiteController.java:178)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.add(TSiteController.java:140)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (378, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:14:23', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TSiteMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TSiteMapper.getSiteList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT uu.`name` as insertUser,IFNULL(ls.num,0) as lineNum,ss.* FROM t_site as ss         LEFT JOIN sys_user as uu on uu.id = ss.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,siteId FROM t_line_site GROUP BY siteId) as ls on ls.siteId = ss.id) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy169.getSiteList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImpl.getSiteList(TSiteServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTFastClassBySpringCGLIBTT9bd16b5d.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTEnhancerBySpringCGLIBTTd0f81126.getSiteList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.list(TSiteController.java:123)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (379, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:14:26', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TSiteMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TSiteMapper.getSiteList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT uu.`name` as insertUser,IFNULL(ls.num,0) as lineNum,ss.* FROM t_site as ss         LEFT JOIN sys_user as uu on uu.id = ss.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,siteId FROM t_line_site GROUP BY siteId) as ls on ls.siteId = ss.id) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy169.getSiteList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImpl.getSiteList(TSiteServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTFastClassBySpringCGLIBTT9bd16b5d.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTEnhancerBySpringCGLIBTTd0f81126.getSiteList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.list(TSiteController.java:123)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (380, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:15:11', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TSiteMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TSiteMapper.getSiteList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT uu.`name` as insertUser,IFNULL(ls.num,0) as lineNum,ss.* FROM t_site as ss         LEFT JOIN sys_user as uu on uu.id = ss.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,siteId FROM t_line_site GROUP BY siteId) as ls on ls.siteId = ss.id) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy169.getSiteList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImpl.getSiteList(TSiteServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTFastClassBySpringCGLIBTT9bd16b5d.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TSiteServiceImplTTEnhancerBySpringCGLIBTTd0f81126.getSiteList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.list(TSiteController.java:123)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT2781131b.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_site\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (381, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 17:24:36', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (382, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:24:41', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TLineMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineMapper.getLineList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT model.modelStr,IFNULL(ls.num,0) as shiftNum,su.`name` as insertUser,IFNULL(lc.num,0) as companyNum,ll.* FROM t_line as ll         LEFT JOIN (         SELECT GROUP_CONCAT(sc.`name` SEPARATOR \'、\') as modelStr,lp.lineId FROM t_line_price as lp         LEFT JOIN t_server_carmodel as sc on sc.id = lp.serverCarModelId         where sc.type = 2 and lp.state != 3 GROUP BY lp.lineId) as model on model.lineId = ll.id         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_shift where state != 3 GROUP BY lineId) as ls on ls.lineId = ll.id         LEFT JOIN sys_user as su on su.id = ll.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_company GROUP BY lineId) as lc on lc.lineId = ll.id         ) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.getLineList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImpl.getLineList(TLineServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTFastClassBySpringCGLIBTT8fbf5c90.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT5c7cbc9f.getLineList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.list(TLineController.java:147)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (383, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-23 17:28:38', '成功', '菜单名称=车型设置');
+INSERT INTO `sys_operation_log` VALUES (384, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 17:35:11', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (385, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-23 17:41:00', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (386, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:44:54', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TLineMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineMapper.getLineList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT model.modelStr,IFNULL(ls.num,0) as shiftNum,su.`name` as insertUser,IFNULL(lc.num,0) as companyNum,ll.* FROM t_line as ll         LEFT JOIN (         SELECT GROUP_CONCAT(sc.`name` SEPARATOR \'、\') as modelStr,lp.lineId FROM t_line_price as lp         LEFT JOIN t_server_carmodel as sc on sc.id = lp.serverCarModelId         where sc.type = 2 and lp.state != 3 GROUP BY lp.lineId) as model on model.lineId = ll.id         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_shift where state != 3 GROUP BY lineId) as ls on ls.lineId = ll.id         LEFT JOIN sys_user as su on su.id = ll.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_company GROUP BY lineId) as lc on lc.lineId = ll.id         ) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.getLineList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImpl.getLineList(TLineServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTFastClassBySpringCGLIBTT8fbf5c90.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT5c7cbc9f.getLineList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.list(TLineController.java:147)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.GeneratedMethodAccessor312.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (387, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:46:06', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TLineMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineMapper.getLineList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT model.modelStr,IFNULL(ls.num,0) as shiftNum,su.`name` as insertUser,IFNULL(lc.num,0) as companyNum,ll.* FROM t_line as ll         LEFT JOIN (         SELECT GROUP_CONCAT(sc.`name` SEPARATOR \'、\') as modelStr,lp.lineId FROM t_line_price as lp         LEFT JOIN t_server_carmodel as sc on sc.id = lp.serverCarModelId         where sc.type = 2 and lp.state != 3 GROUP BY lp.lineId) as model on model.lineId = ll.id         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_shift where state != 3 GROUP BY lineId) as ls on ls.lineId = ll.id         LEFT JOIN sys_user as su on su.id = ll.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_company GROUP BY lineId) as lc on lc.lineId = ll.id         ) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.getLineList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImpl.getLineList(TLineServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTFastClassBySpringCGLIBTT8fbf5c90.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT5c7cbc9f.getLineList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.list(TLineController.java:147)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.GeneratedMethodAccessor312.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (388, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:46:56', '失败', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database.  Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line   ( `name`,  shiftInterval,  rakeRate,  `state`,  insertTime,  insertUserId )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; ]; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT5c7cbc9f.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:161)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 98 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (389, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:47:20', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'contentStr\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLinePriceMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_price   ( lineId,  serverCarModelId,  `type`,  content,  contentStr,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'contentStr\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'contentStr\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy171.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLinePriceServiceImplTTEnhancerBySpringCGLIBTT9e9f8422.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addPrice(TLineController.java:232)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:176)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'contentStr\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (390, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:48:09', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLinePriceMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_price   ( lineId,  serverCarModelId,  `type`,  content,  contentStr,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy171.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLinePriceServiceImplTTEnhancerBySpringCGLIBTT9e9f8422.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addPrice(TLineController.java:232)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:176)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (391, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:48:20', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLinePriceMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_price   ( lineId,  serverCarModelId,  `type`,  content,  contentStr,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy171.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLinePriceServiceImplTTEnhancerBySpringCGLIBTT9e9f8422.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addPrice(TLineController.java:232)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:176)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (392, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:49:05', '失败', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database.  Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLinePriceMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_price   ( lineId,  serverCarModelId,  `type`,  content,  contentStr,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; ]; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy171.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLinePriceServiceImplTTEnhancerBySpringCGLIBTT9e9f8422.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addPrice(TLineController.java:232)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:176)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (393, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:49:17', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineShiftMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_shift   ( lineId,  startTime,  endTime,  carNum,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy172.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineShiftServiceImplTTEnhancerBySpringCGLIBTTfe0b59f7.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addShift(TLineController.java:209)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:179)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (394, '异常日志', '', 1, NULL, NULL, '2020-09-23 17:49:53', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineShiftMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_shift   ( lineId,  startTime,  endTime,  carNum,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy172.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineShiftServiceImplTTEnhancerBySpringCGLIBTTfe0b59f7.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addShift(TLineController.java:209)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:179)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTTd96c9482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (395, '异常日志', '', 1, NULL, NULL, '2020-09-24 09:07:41', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TLineMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineMapper.getLineList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT model.modelStr,IFNULL(ls.num,0) as shiftNum,su.`name` as insertUser,IFNULL(lc.num,0) as companyNum,ll.* FROM t_line as ll         LEFT JOIN (         SELECT GROUP_CONCAT(sc.`name` SEPARATOR \'、\') as modelStr,lp.lineId FROM t_line_price as lp         LEFT JOIN t_server_carmodel as sc on sc.id = lp.serverCarModelId         where sc.type = 2 and lp.state != 3 GROUP BY lp.lineId) as model on model.lineId = ll.id         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_shift where state != 3 GROUP BY lineId) as ls on ls.lineId = ll.id         LEFT JOIN sys_user as su on su.id = ll.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_company GROUP BY lineId) as lc on lc.lineId = ll.id         ) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.getLineList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImpl.getLineList(TLineServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTFastClassBySpringCGLIBTT8fbf5c90.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT1ada8168.getLineList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.list(TLineController.java:147)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTT2f1e3754.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (396, '异常日志', '', 1, NULL, NULL, '2020-09-24 09:09:37', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n### The error may exist in file [E:\\workspace\\OKTravel\\ManagementOKTravel\\guns-admin\\target\\classes\\com\\stylefeng\\guns\\modular\\system\\dao\\mapping\\TLineMapper.xml]\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineMapper.getLineList-Inline\r\n### The error occurred while setting parameters\r\n### SQL: SELECT * FROM (SELECT model.modelStr,IFNULL(ls.num,0) as shiftNum,su.`name` as insertUser,IFNULL(lc.num,0) as companyNum,ll.* FROM t_line as ll         LEFT JOIN (         SELECT GROUP_CONCAT(sc.`name` SEPARATOR \'、\') as modelStr,lp.lineId FROM t_line_price as lp         LEFT JOIN t_server_carmodel as sc on sc.id = lp.serverCarModelId         where sc.type = 2 and lp.state != 3 GROUP BY lp.lineId) as model on model.lineId = ll.id         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_shift where state != 3 GROUP BY lineId) as ls on ls.lineId = ll.id         LEFT JOIN sys_user as su on su.id = ll.insertUserId         LEFT JOIN (SELECT COUNT(id) as num,lineId FROM t_line_company GROUP BY lineId) as lc on lc.lineId = ll.id         ) as o          WHERE o.state != 3          order by o.id desc\r\n### Cause: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.selectList(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:238)\r\n	at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:137)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy168.getLineList(Unknown Source)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImpl.getLineList(TLineServiceImpl.java:26)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTFastClassBySpringCGLIBTT8fbf5c90.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineServiceImplTTEnhancerBySpringCGLIBTT1ada8168.getLineList(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.list(TLineController.java:147)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTT2f1e3754.list(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Table \'oktravel.t_line_company\' doesn\'t exist\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor102.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy200.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 94 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (397, '异常日志', '', 1, NULL, NULL, '2020-09-24 09:15:11', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error updating database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TLineShiftMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_line_shift   ( lineId,  startTime,  endTime,  carNum,  `state`,  insertTime,  addTime )  VALUES   ( ?,  ?,  ?,  ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy172.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TLineShiftServiceImplTTEnhancerBySpringCGLIBTTbc691ec0.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.addShift(TLineController.java:209)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineController.add(TLineController.java:179)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTFastClassBySpringCGLIBTTd5a682a5.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TLineControllerTTEnhancerBySpringCGLIBTT2f1e3754.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'addTime\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy203.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy201.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy200.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (398, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 09:38:12', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (399, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-24 09:49:40', '成功', '菜单名称=价格设置');
+INSERT INTO `sys_operation_log` VALUES (400, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 09:53:52', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (401, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-24 09:58:35', '成功', '菜单名称=小件物流价格设置');
+INSERT INTO `sys_operation_log` VALUES (402, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 09:58:43', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (403, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-24 10:10:14', '成功', '菜单名称=调度管理');
+INSERT INTO `sys_operation_log` VALUES (404, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 10:14:49', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (405, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-24 10:21:17', '成功', '菜单名称=积分商品管理');
+INSERT INTO `sys_operation_log` VALUES (406, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 10:28:04', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (407, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-24 10:35:00', '成功', '菜单名称=积分兑换订单管理');
+INSERT INTO `sys_operation_log` VALUES (408, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 10:38:26', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (409, '异常日志', '', 1, NULL, NULL, '2020-09-24 10:45:31', '失败', 'com.stylefeng.guns.core.exception.GunsException: 菜单编号重复,不能添加\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuController.add(MenuController.java:143)\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuControllerTTFastClassBySpringCGLIBTTb722ce7a.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n	at com.stylefeng.guns.core.aop.LogAop.recordSysLog(LogAop.java:45)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)\r\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n	at com.stylefeng.guns.core.aop.PermissionAop.doPermission(PermissionAop.java:62)\r\n	at sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuControllerTTEnhancerBySpringCGLIBTTe5ed6482.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (410, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-09-24 10:45:54', '成功', '菜单名称=旅游包车管理');
+INSERT INTO `sys_operation_log` VALUES (411, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 11:09:33', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (412, '异常日志', '', 1, NULL, NULL, '2020-09-24 11:29:43', '失败', 'com.stylefeng.guns.core.exception.GunsException: 菜单编号重复,不能添加\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuController.add(MenuController.java:143)\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuControllerTTFastClassBySpringCGLIBTTb722ce7a.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n	at com.stylefeng.guns.core.aop.LogAop.recordSysLog(LogAop.java:45)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)\r\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n	at com.stylefeng.guns.core.aop.PermissionAop.doPermission(PermissionAop.java:62)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuControllerTTEnhancerBySpringCGLIBTTb3b30dff.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (413, '异常日志', '', 1, NULL, NULL, '2020-09-24 11:29:49', '失败', 'com.stylefeng.guns.core.exception.GunsException: 菜单编号重复,不能添加\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuController.add(MenuController.java:143)\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuControllerTTFastClassBySpringCGLIBTTb722ce7a.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n	at com.stylefeng.guns.core.aop.LogAop.recordSysLog(LogAop.java:45)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)\r\n	at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:89)\r\n	at com.stylefeng.guns.core.aop.PermissionAop.doPermission(PermissionAop.java:62)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)\r\n	at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)\r\n	at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:174)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.system.MenuControllerTTEnhancerBySpringCGLIBTTb3b30dff.add(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (414, '异常日志', '', 1, NULL, NULL, '2020-09-24 11:42:10', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getDriverPosition(HomeController.java:253)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (415, '异常日志', '', 1, NULL, NULL, '2020-09-24 11:42:10', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getDriverPosition(HomeController.java:253)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (416, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-09-24 14:23:27', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (417, '异常日志', '', 1, NULL, NULL, '2020-09-25 10:13:27', '失败', 'java.lang.NullPointerException\r\n	at java.util.Calendar.setTime(Calendar.java:1770)\r\n	at org.apache.commons.lang3.time.FastDatePrinter.format(FastDatePrinter.java:472)\r\n	at org.apache.commons.lang3.time.FastDateFormat.format(FastDateFormat.java:439)\r\n	at org.apache.commons.lang3.time.DateFormatUtils.format(DateFormatUtils.java:388)\r\n	at org.apache.commons.lang3.time.DateFormatUtils.format(DateFormatUtils.java:272)\r\n	at com.stylefeng.guns.modular.system.util.DateUtil.format(DateUtil.java:48)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getSumData(HomeController.java:259)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (418, '异常日志', '', 1, NULL, NULL, '2020-09-25 10:14:01', '失败', 'java.lang.NullPointerException\r\n	at java.util.Calendar.setTime(Calendar.java:1770)\r\n	at org.apache.commons.lang3.time.FastDatePrinter.format(FastDatePrinter.java:472)\r\n	at org.apache.commons.lang3.time.FastDateFormat.format(FastDateFormat.java:439)\r\n	at org.apache.commons.lang3.time.DateFormatUtils.format(DateFormatUtils.java:388)\r\n	at org.apache.commons.lang3.time.DateFormatUtils.format(DateFormatUtils.java:272)\r\n	at com.stylefeng.guns.modular.system.util.DateUtil.format(DateUtil.java:48)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getSumData(HomeController.java:259)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (419, '异常日志', '', 1, NULL, NULL, '2020-09-25 16:01:44', '失败', 'org.springframework.dao.DataIntegrityViolationException: \r\n### Error updating database.  Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n### The error may involve com.stylefeng.guns.modular.system.dao.TDriverLineMapper.insert-Inline\r\n### The error occurred while setting parameters\r\n### SQL: INSERT INTO t_driver_line   ( driverId,  lineId,  createTime,  addTime )  VALUES   ( ?,  ?,  ?,  ? )\r\n### Cause: java.sql.SQLException: Field \'id\' doesn\'t have a default value\n; ]; Field \'id\' doesn\'t have a default value; nested exception is java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:246)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy98.insert(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:278)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:58)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy135.insert(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.insert(ServiceImpl.java:98)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)\r\n	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.service.impl.TDriverLineServiceImplTTEnhancerBySpringCGLIBTTc2a2a4c5.insert(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.general.TDriverController.addLine(TDriverController.java:456)\r\n	at com.stylefeng.guns.modular.system.controller.general.TDriverController.update(TDriverController.java:557)\r\n	at com.stylefeng.guns.modular.system.controller.general.TDriverControllerTTFastClassBySpringCGLIBTT2cba6932.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.general.TDriverControllerTTEnhancerBySpringCGLIBTTba42c636.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:617)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLException: Field \'id\' doesn\'t have a default value\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy205.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:46)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)\r\n	at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy203.update(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy203.update(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)\r\n	at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n	at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n	at com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor.intercept(OptimisticLockerInterceptor.java:71)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n	at com.sun.proxy.TProxy202.update(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 99 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (420, '异常日志', '', 1, NULL, NULL, '2020-10-16 18:08:34', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignController.selectDriver(TReassignController.java:164)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignControllerTTFastClassBySpringCGLIBTT5501db93.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TReassignControllerTTEnhancerBySpringCGLIBTT1aaa354c.selectDriver(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (421, '异常日志', '', 1, NULL, NULL, '2020-10-21 16:27:15', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:232)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT61ec324b.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (422, '异常日志', '', 1, NULL, NULL, '2020-10-29 11:24:16', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getSumData(HomeController.java:136)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (423, '异常日志', '', 1, NULL, NULL, '2020-11-03 14:11:30', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getSumData(HomeController.java:136)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (424, '异常日志', '', 1, NULL, NULL, '2020-11-03 14:22:28', '失败', 'java.lang.StringIndexOutOfBoundsException: String index out of range: -1\r\n	at java.lang.String.substring(String.java:1967)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.addLocation(TSiteController.java:196)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:246)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT403e7b81.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (425, '异常日志', '', 1, NULL, NULL, '2020-11-03 14:23:18', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:234)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT403e7b81.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (426, '异常日志', '', 1, NULL, NULL, '2020-11-03 14:28:32', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:234)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT403e7b81.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (427, '异常日志', '', 1, NULL, NULL, '2020-11-03 14:29:27', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:234)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT403e7b81.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (428, '异常日志', '', 1, NULL, NULL, '2020-11-03 15:37:24', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:235)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT9ff2fa07.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (429, '异常日志', '', 1, NULL, NULL, '2020-11-03 15:38:23', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:235)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT9ff2fa07.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (430, '异常日志', '', 1, NULL, NULL, '2020-11-03 15:42:44', '失败', 'java.lang.StringIndexOutOfBoundsException: String index out of range: -1\r\n	at java.lang.String.substring(String.java:1967)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.addLocation(TSiteController.java:197)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:247)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT9ff2fa07.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (431, '异常日志', '', 1, NULL, NULL, '2020-11-03 15:55:59', '失败', 'java.lang.StringIndexOutOfBoundsException: String index out of range: -1\r\n	at java.lang.String.substring(String.java:1967)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.addLocation(TSiteController.java:198)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:252)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT62047b81.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (432, '异常日志', '', 1, NULL, NULL, '2020-11-03 16:16:56', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:236)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT6db2d57a.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (433, '异常日志', '', 1, NULL, NULL, '2020-11-03 16:23:37', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:236)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT6db2d57a.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (434, '异常日志', '', 1, NULL, NULL, '2020-11-03 16:24:00', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:236)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT6db2d57a.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (435, '异常日志', '', 1, NULL, NULL, '2020-11-03 16:25:10', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteController.update(TSiteController.java:236)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTFastClassBySpringCGLIBTT30e0e638.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.specialTrain.TSiteControllerTTEnhancerBySpringCGLIBTT6db2d57a.update(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (436, '异常日志', '', 1, NULL, NULL, '2020-11-03 17:56:07', '失败', 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Unknown column \'plateColor\' in \'field list\'\r\n### The error may exist in com/stylefeng/guns/modular/system/dao/TCarMapper.java (best guess)\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT id AS id,isPlatCar,companyId,franchiseeId,carColor,carModelId,carBrandId,carLicensePlate,plateColor,carPhoto,vehicleType,ownerName,engineId,VIN,certifyDateA,fuelType,engineDisplace,certificate,transAgency,transArea,transDateStart,transDateStop,certifyDateB,fixState,nextFixDate,checkState,feePrintId,GPSBrand,GPSModel,GPSIMEI,GPSInstallDate,registerDate,commercialType,drivingLicenseNumber,drivingLicensePhoto,annualInspectionTime,commercialInsuranceTime,insertTime,`state`,addType,addObjectId FROM t_car WHERE id=?\r\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \'plateColor\' in \'field list\'\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \'plateColor\' in \'field list\'\r\n	at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:234)\r\n	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)\r\n	at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)\r\n	at com.sun.proxy.TProxy99.selectOne(Unknown Source)\r\n	at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:166)\r\n	at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:83)\r\n	at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)\r\n	at com.sun.proxy.TProxy122.selectById(Unknown Source)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImpl.selectById(ServiceImpl.java:359)\r\n	at com.baomidou.mybatisplus.service.impl.ServiceImplTTFastClassBySpringCGLIBTT3e2398a4.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)\r\n	at com.stylefeng.guns.modular.system.service.impl.TCarServiceImplTTEnhancerBySpringCGLIBTT52c03d3.selectById(<generated>)\r\n	at com.stylefeng.guns.modular.system.controller.general.TCarController.tCarUpdate(TCarController.java:146)\r\n	at com.stylefeng.guns.modular.system.controller.general.TCarControllerTTFastClassBySpringCGLIBTT86e0d602.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.general.TCarControllerTTEnhancerBySpringCGLIBTT3edf2910.tCarUpdate(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: Unknown column \'plateColor\' in \'field list\'\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:118)\r\n	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95)\r\n	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:960)\r\n	at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:388)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3409)\r\n	at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.wall.WallFilter.preparedStatement_execute(WallFilter.java:619)\r\n	at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3407)\r\n	at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n	at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:498)\r\n	at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n	at com.sun.proxy.TProxy210.execute(Unknown Source)\r\n	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)\r\n	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy208.query(Unknown Source)\r\n	at sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy208.query(Unknown Source)\r\n	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)\r\n	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)\r\n	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)\r\n	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)\r\n	at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n	at com.sun.proxy.TProxy207.query(Unknown Source)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)\r\n	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.mybatis.spring.SqlSessionTemplateTSqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)\r\n	... 93 more\r\n');
+INSERT INTO `sys_operation_log` VALUES (437, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-11-04 09:03:18', '成功', '菜单名称=车辆保险');
+INSERT INTO `sys_operation_log` VALUES (438, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-11-04 09:03:50', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (439, '业务日志', '修改菜单', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'edit', '2020-11-04 09:08:13', '成功', '菜单名称=车辆保险;;;字段名称:菜单编号,旧值:vehicleInsurance,新值:carInsurance;;;字段名称:url地址,旧值:/tCar/vehicleInsurance,新值:/tCar/carInsurance');
+INSERT INTO `sys_operation_log` VALUES (440, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-11-04 10:21:56', '成功', '菜单名称=添加车险');
+INSERT INTO `sys_operation_log` VALUES (441, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-11-04 10:22:19', '成功', '菜单名称=修改车险');
+INSERT INTO `sys_operation_log` VALUES (442, '业务日志', '菜单新增', 1, 'com.stylefeng.guns.modular.system.controller.system.MenuController', 'add', '2020-11-04 10:22:52', '成功', '菜单名称=删除车险');
+INSERT INTO `sys_operation_log` VALUES (443, '业务日志', '配置权限', 1, 'com.stylefeng.guns.modular.system.controller.system.RoleController', 'setAuthority', '2020-11-04 10:23:05', '成功', '角色名称=超级管理员,资源名称=代码生成,首页,系统管理,平台管理员,用户列表,添加用户,修改用户,删除用户,重置密码,冻结用户,解除冻结用户,分配角色,分配角色跳转,编辑用户跳转,角色管理,角色列表,添加角色,修改角色,删除角色,配置权限,修改角色跳转,角色分配跳转,菜单管理,菜单列表,添加菜单,修改菜单,删除菜单,菜单编辑跳转,部门管理,部门列表,添加部门,修改部门,删除部门,部门详情,修改部门跳转,用户管理');
+INSERT INTO `sys_operation_log` VALUES (444, '异常日志', '', 1, NULL, NULL, '2020-11-04 10:23:26', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.util.RedisUtil.getValue(RedisUtil.java:82)\r\n	at com.stylefeng.guns.modular.system.controller.general.HomeController.getSumData(HomeController.java:136)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+INSERT INTO `sys_operation_log` VALUES (445, '异常日志', '', 1, NULL, NULL, '2020-11-04 11:54:37', '失败', 'java.lang.NullPointerException\r\n	at com.stylefeng.guns.modular.system.controller.general.TCarController.tCarUpdate(TCarController.java:163)\r\n	at com.stylefeng.guns.modular.system.controller.general.TCarControllerTTFastClassBySpringCGLIBTT86e0d602.invoke(<generated>)\r\n	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)\r\n	at org.springframework.aop.framework.CglibAopProxyTCglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:747)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n	at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)\r\n	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)\r\n	at org.springframework.aop.framework.CglibAopProxyTDynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689)\r\n	at com.stylefeng.guns.modular.system.controller.general.TCarControllerTTEnhancerBySpringCGLIBTTfd67bd12.tCarUpdate(<generated>)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n	at java.lang.reflect.Method.invoke(Method.java:498)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:209)\r\n	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)\r\n	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:877)\r\n	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:783)\r\n	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:991)\r\n	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)\r\n	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)\r\n	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)\r\n	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)\r\n	at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)\r\n	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilterT1.call(AbstractShiroFilter.java:365)\r\n	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)\r\n	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)\r\n	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)\r\n	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)\r\n	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.stylefeng.guns.core.xss.XssFilter.doFilter(XssFilter.java:31)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)\r\n	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)\r\n	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)\r\n	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)\r\n	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)\r\n	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)\r\n	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)\r\n	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)\r\n	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)\r\n	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)\r\n	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)\r\n	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)\r\n	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)\r\n	at org.apache.coyote.AbstractProtocolTConnectionHandler.process(AbstractProtocol.java:800)\r\n	at org.apache.tomcat.util.net.NioEndpointTSocketProcessor.doRun(NioEndpoint.java:1471)\r\n	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n	at java.util.concurrent.ThreadPoolExecutorTWorker.run(ThreadPoolExecutor.java:624)\r\n	at org.apache.tomcat.util.threads.TaskThreadTWrappingRunnable.run(TaskThread.java:61)\r\n	at java.lang.Thread.run(Thread.java:748)\r\n');
+
+-- ----------------------------
+-- Table structure for sys_relation
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_relation`;
+CREATE TABLE `sys_relation`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `menuid` bigint(11) NULL DEFAULT NULL COMMENT '菜单id',
+  `roleid` int(11) NULL DEFAULT NULL COMMENT '角色id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 25000 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色和菜单关联表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_relation
+-- ----------------------------
+INSERT INTO `sys_relation` VALUES (18869, 245, 2);
+INSERT INTO `sys_relation` VALUES (18870, 1267362239285878786, 2);
+INSERT INTO `sys_relation` VALUES (18871, 1267362239285878787, 2);
+INSERT INTO `sys_relation` VALUES (18872, 1267362239285878788, 2);
+INSERT INTO `sys_relation` VALUES (18873, 1267362239285878789, 2);
+INSERT INTO `sys_relation` VALUES (18874, 1267362239285878790, 2);
+INSERT INTO `sys_relation` VALUES (18875, 1267362239285878791, 2);
+INSERT INTO `sys_relation` VALUES (18876, 1267362239285878792, 2);
+INSERT INTO `sys_relation` VALUES (18877, 1267662351509766151, 2);
+INSERT INTO `sys_relation` VALUES (18878, 1268503736945254402, 2);
+INSERT INTO `sys_relation` VALUES (18879, 1268503736945254403, 2);
+INSERT INTO `sys_relation` VALUES (18880, 1268503736945254404, 2);
+INSERT INTO `sys_relation` VALUES (18881, 1268503736945254405, 2);
+INSERT INTO `sys_relation` VALUES (18882, 1268503736945254406, 2);
+INSERT INTO `sys_relation` VALUES (18883, 1268503736945254407, 2);
+INSERT INTO `sys_relation` VALUES (18884, 1268503736945254408, 2);
+INSERT INTO `sys_relation` VALUES (18885, 1268503736945254409, 2);
+INSERT INTO `sys_relation` VALUES (18886, 1268503736945254410, 2);
+INSERT INTO `sys_relation` VALUES (18887, 1268503736945254411, 2);
+INSERT INTO `sys_relation` VALUES (18888, 1268503736945254412, 2);
+INSERT INTO `sys_relation` VALUES (18889, 1268503736945254413, 2);
+INSERT INTO `sys_relation` VALUES (18890, 1277087450839248900, 2);
+INSERT INTO `sys_relation` VALUES (18891, 1268503736945254414, 2);
+INSERT INTO `sys_relation` VALUES (18892, 1268836258119962626, 2);
+INSERT INTO `sys_relation` VALUES (18893, 1268836258128351233, 2);
+INSERT INTO `sys_relation` VALUES (18894, 1268836258128351234, 2);
+INSERT INTO `sys_relation` VALUES (18895, 1268836258128351235, 2);
+INSERT INTO `sys_relation` VALUES (18896, 1268836258128351236, 2);
+INSERT INTO `sys_relation` VALUES (18897, 1268836258128351237, 2);
+INSERT INTO `sys_relation` VALUES (18898, 1268836258128351238, 2);
+INSERT INTO `sys_relation` VALUES (18899, 1269075485671837704, 2);
+INSERT INTO `sys_relation` VALUES (18900, 1269187383113371650, 2);
+INSERT INTO `sys_relation` VALUES (18901, 1269187383113371651, 2);
+INSERT INTO `sys_relation` VALUES (18902, 1269187383113371652, 2);
+INSERT INTO `sys_relation` VALUES (18903, 1269187383113371653, 2);
+INSERT INTO `sys_relation` VALUES (18904, 1269187383113371654, 2);
+INSERT INTO `sys_relation` VALUES (18905, 1269187383113371655, 2);
+INSERT INTO `sys_relation` VALUES (18906, 1269187383113371656, 2);
+INSERT INTO `sys_relation` VALUES (18907, 1269817907586584577, 2);
+INSERT INTO `sys_relation` VALUES (18908, 1269817907586584578, 2);
+INSERT INTO `sys_relation` VALUES (18909, 1269817907586584579, 2);
+INSERT INTO `sys_relation` VALUES (18910, 1269817907586584580, 2);
+INSERT INTO `sys_relation` VALUES (18911, 1269817907586584581, 2);
+INSERT INTO `sys_relation` VALUES (18912, 1269817907586584582, 2);
+INSERT INTO `sys_relation` VALUES (18913, 1271615006909194246, 2);
+INSERT INTO `sys_relation` VALUES (18914, 1270187720196505607, 2);
+INSERT INTO `sys_relation` VALUES (18915, 1270200095003930626, 2);
+INSERT INTO `sys_relation` VALUES (18916, 1270230075494756355, 2);
+INSERT INTO `sys_relation` VALUES (18917, 1270287371570556930, 2);
+INSERT INTO `sys_relation` VALUES (18918, 1270287371570556931, 2);
+INSERT INTO `sys_relation` VALUES (18919, 1270287371570556932, 2);
+INSERT INTO `sys_relation` VALUES (18920, 1270287371570556934, 2);
+INSERT INTO `sys_relation` VALUES (18921, 1270287371570556935, 2);
+INSERT INTO `sys_relation` VALUES (18922, 1270230075494756354, 2);
+INSERT INTO `sys_relation` VALUES (18923, 1270321112590364679, 2);
+INSERT INTO `sys_relation` VALUES (18924, 1270542445643317250, 2);
+INSERT INTO `sys_relation` VALUES (18925, 1270542445643317251, 2);
+INSERT INTO `sys_relation` VALUES (18926, 1270542445643317252, 2);
+INSERT INTO `sys_relation` VALUES (18927, 1270542855032553473, 2);
+INSERT INTO `sys_relation` VALUES (18928, 1270542855032553474, 2);
+INSERT INTO `sys_relation` VALUES (18929, 1270542855032553475, 2);
+INSERT INTO `sys_relation` VALUES (18930, 1275629819595452417, 2);
+INSERT INTO `sys_relation` VALUES (18931, 1275629819595452418, 2);
+INSERT INTO `sys_relation` VALUES (18932, 1275629819595452419, 2);
+INSERT INTO `sys_relation` VALUES (18933, 1271615006909194251, 2);
+INSERT INTO `sys_relation` VALUES (18934, 1271615006909194247, 2);
+INSERT INTO `sys_relation` VALUES (18935, 1271615006909194248, 2);
+INSERT INTO `sys_relation` VALUES (18936, 1271615006909194249, 2);
+INSERT INTO `sys_relation` VALUES (18937, 1271615006909194250, 2);
+INSERT INTO `sys_relation` VALUES (18938, 1271615006909194252, 2);
+INSERT INTO `sys_relation` VALUES (18939, 1271615006909194253, 2);
+INSERT INTO `sys_relation` VALUES (18940, 1271615006909194254, 2);
+INSERT INTO `sys_relation` VALUES (18941, 1271615006909194255, 2);
+INSERT INTO `sys_relation` VALUES (18942, 1271615006909194257, 2);
+INSERT INTO `sys_relation` VALUES (18943, 1271615006909194258, 2);
+INSERT INTO `sys_relation` VALUES (18944, 1271615006909194259, 2);
+INSERT INTO `sys_relation` VALUES (18945, 1271615006909194260, 2);
+INSERT INTO `sys_relation` VALUES (18946, 1271615006909194261, 2);
+INSERT INTO `sys_relation` VALUES (18947, 1271615006909194262, 2);
+INSERT INTO `sys_relation` VALUES (18948, 1271615006909194263, 2);
+INSERT INTO `sys_relation` VALUES (18949, 1271615006909194266, 2);
+INSERT INTO `sys_relation` VALUES (18950, 1271615006909194267, 2);
+INSERT INTO `sys_relation` VALUES (18951, 1271615006909194268, 2);
+INSERT INTO `sys_relation` VALUES (18952, 1271615006909194269, 2);
+INSERT INTO `sys_relation` VALUES (18953, 1271615006909194270, 2);
+INSERT INTO `sys_relation` VALUES (18954, 1271615006909194271, 2);
+INSERT INTO `sys_relation` VALUES (18955, 245, 3);
+INSERT INTO `sys_relation` VALUES (18956, 1267362239285878786, 3);
+INSERT INTO `sys_relation` VALUES (18957, 1267362239285878787, 3);
+INSERT INTO `sys_relation` VALUES (18958, 1267362239285878788, 3);
+INSERT INTO `sys_relation` VALUES (18959, 1267362239285878789, 3);
+INSERT INTO `sys_relation` VALUES (18960, 1267362239285878790, 3);
+INSERT INTO `sys_relation` VALUES (18961, 1267362239285878791, 3);
+INSERT INTO `sys_relation` VALUES (18962, 1267362239285878792, 3);
+INSERT INTO `sys_relation` VALUES (18963, 1267662351509766151, 3);
+INSERT INTO `sys_relation` VALUES (18964, 1268503736945254402, 3);
+INSERT INTO `sys_relation` VALUES (18965, 1268503736945254403, 3);
+INSERT INTO `sys_relation` VALUES (18966, 1268503736945254404, 3);
+INSERT INTO `sys_relation` VALUES (18967, 1268503736945254405, 3);
+INSERT INTO `sys_relation` VALUES (18968, 1268503736945254406, 3);
+INSERT INTO `sys_relation` VALUES (18969, 1268503736945254407, 3);
+INSERT INTO `sys_relation` VALUES (18970, 1268503736945254408, 3);
+INSERT INTO `sys_relation` VALUES (18971, 1268503736945254409, 3);
+INSERT INTO `sys_relation` VALUES (18972, 1268503736945254410, 3);
+INSERT INTO `sys_relation` VALUES (18973, 1268503736945254411, 3);
+INSERT INTO `sys_relation` VALUES (18974, 1268503736945254412, 3);
+INSERT INTO `sys_relation` VALUES (18975, 1268503736945254413, 3);
+INSERT INTO `sys_relation` VALUES (18976, 1268503736945254414, 3);
+INSERT INTO `sys_relation` VALUES (18977, 1268836258119962626, 3);
+INSERT INTO `sys_relation` VALUES (18978, 1268836258128351233, 3);
+INSERT INTO `sys_relation` VALUES (18979, 1268836258128351234, 3);
+INSERT INTO `sys_relation` VALUES (18980, 1268836258128351235, 3);
+INSERT INTO `sys_relation` VALUES (18981, 1268836258128351236, 3);
+INSERT INTO `sys_relation` VALUES (18982, 1268836258128351237, 3);
+INSERT INTO `sys_relation` VALUES (18983, 1268836258128351238, 3);
+INSERT INTO `sys_relation` VALUES (18984, 1269187383113371656, 3);
+INSERT INTO `sys_relation` VALUES (18985, 1269817907586584577, 3);
+INSERT INTO `sys_relation` VALUES (18986, 1269817907586584578, 3);
+INSERT INTO `sys_relation` VALUES (18987, 1269817907586584579, 3);
+INSERT INTO `sys_relation` VALUES (18988, 1269817907586584580, 3);
+INSERT INTO `sys_relation` VALUES (18989, 1269817907586584581, 3);
+INSERT INTO `sys_relation` VALUES (18990, 1269817907586584582, 3);
+INSERT INTO `sys_relation` VALUES (18991, 1271615006909194246, 3);
+INSERT INTO `sys_relation` VALUES (18992, 1270187720196505607, 3);
+INSERT INTO `sys_relation` VALUES (18993, 1270200095003930626, 3);
+INSERT INTO `sys_relation` VALUES (18994, 1270230075494756355, 3);
+INSERT INTO `sys_relation` VALUES (18995, 1270287371570556930, 3);
+INSERT INTO `sys_relation` VALUES (18996, 1270287371570556931, 3);
+INSERT INTO `sys_relation` VALUES (18997, 1270287371570556932, 3);
+INSERT INTO `sys_relation` VALUES (18998, 1270287371570556934, 3);
+INSERT INTO `sys_relation` VALUES (18999, 1270287371570556935, 3);
+INSERT INTO `sys_relation` VALUES (19000, 1270230075494756354, 3);
+INSERT INTO `sys_relation` VALUES (19001, 1270321112590364679, 3);
+INSERT INTO `sys_relation` VALUES (19002, 1270542445643317250, 3);
+INSERT INTO `sys_relation` VALUES (19003, 1270542445643317251, 3);
+INSERT INTO `sys_relation` VALUES (19004, 1270542445643317252, 3);
+INSERT INTO `sys_relation` VALUES (19005, 1270542855032553473, 3);
+INSERT INTO `sys_relation` VALUES (19006, 1270542855032553474, 3);
+INSERT INTO `sys_relation` VALUES (19007, 1270542855032553475, 3);
+INSERT INTO `sys_relation` VALUES (19008, 1275629819595452417, 3);
+INSERT INTO `sys_relation` VALUES (19009, 1275629819595452418, 3);
+INSERT INTO `sys_relation` VALUES (19010, 1275629819595452419, 3);
+INSERT INTO `sys_relation` VALUES (19011, 1271615006909194251, 3);
+INSERT INTO `sys_relation` VALUES (19012, 1271615006909194247, 3);
+INSERT INTO `sys_relation` VALUES (19013, 1271615006909194248, 3);
+INSERT INTO `sys_relation` VALUES (19014, 1271615006909194249, 3);
+INSERT INTO `sys_relation` VALUES (19015, 1271615006909194250, 3);
+INSERT INTO `sys_relation` VALUES (19016, 1271615006909194252, 3);
+INSERT INTO `sys_relation` VALUES (19017, 1271615006909194253, 3);
+INSERT INTO `sys_relation` VALUES (19018, 1271615006909194254, 3);
+INSERT INTO `sys_relation` VALUES (19019, 1271615006909194255, 3);
+INSERT INTO `sys_relation` VALUES (19020, 1271615006909194257, 3);
+INSERT INTO `sys_relation` VALUES (19021, 1271615006909194258, 3);
+INSERT INTO `sys_relation` VALUES (19022, 1271615006909194259, 3);
+INSERT INTO `sys_relation` VALUES (19023, 1271615006909194260, 3);
+INSERT INTO `sys_relation` VALUES (19024, 1271615006909194261, 3);
+INSERT INTO `sys_relation` VALUES (19025, 1271615006909194262, 3);
+INSERT INTO `sys_relation` VALUES (19026, 1271615006909194263, 3);
+INSERT INTO `sys_relation` VALUES (19027, 1271615006909194266, 3);
+INSERT INTO `sys_relation` VALUES (19028, 1271615006909194267, 3);
+INSERT INTO `sys_relation` VALUES (19029, 1271615006909194268, 3);
+INSERT INTO `sys_relation` VALUES (19030, 1271615006909194269, 3);
+INSERT INTO `sys_relation` VALUES (19031, 1271615006909194270, 3);
+INSERT INTO `sys_relation` VALUES (19032, 1271615006909194271, 3);
+INSERT INTO `sys_relation` VALUES (19033, 1271615006909194272, 3);
+INSERT INTO `sys_relation` VALUES (19243, 2, 4);
+INSERT INTO `sys_relation` VALUES (19244, 100, 4);
+INSERT INTO `sys_relation` VALUES (19245, 200, 4);
+INSERT INTO `sys_relation` VALUES (19246, 201, 4);
+INSERT INTO `sys_relation` VALUES (19247, 202, 4);
+INSERT INTO `sys_relation` VALUES (19248, 210, 4);
+INSERT INTO `sys_relation` VALUES (19249, 211, 4);
+INSERT INTO `sys_relation` VALUES (19250, 212, 4);
+INSERT INTO `sys_relation` VALUES (19251, 213, 4);
+INSERT INTO `sys_relation` VALUES (19252, 220, 4);
+INSERT INTO `sys_relation` VALUES (19253, 230, 4);
+INSERT INTO `sys_relation` VALUES (19254, 231, 4);
+INSERT INTO `sys_relation` VALUES (19255, 232, 4);
+INSERT INTO `sys_relation` VALUES (19256, 233, 4);
+INSERT INTO `sys_relation` VALUES (19257, 234, 4);
+INSERT INTO `sys_relation` VALUES (19258, 235, 4);
+INSERT INTO `sys_relation` VALUES (19259, 236, 4);
+INSERT INTO `sys_relation` VALUES (19260, 240, 4);
+INSERT INTO `sys_relation` VALUES (19261, 242, 4);
+INSERT INTO `sys_relation` VALUES (19262, 243, 4);
+INSERT INTO `sys_relation` VALUES (19263, 244, 4);
+INSERT INTO `sys_relation` VALUES (19264, 245, 4);
+INSERT INTO `sys_relation` VALUES (19265, 1267362239285878786, 4);
+INSERT INTO `sys_relation` VALUES (19266, 1267362239285878787, 4);
+INSERT INTO `sys_relation` VALUES (19267, 1267362239285878788, 4);
+INSERT INTO `sys_relation` VALUES (19268, 1267362239285878789, 4);
+INSERT INTO `sys_relation` VALUES (19269, 1267362239285878790, 4);
+INSERT INTO `sys_relation` VALUES (19270, 1267362239285878791, 4);
+INSERT INTO `sys_relation` VALUES (19271, 1267362239285878792, 4);
+INSERT INTO `sys_relation` VALUES (19272, 1267362239285878793, 4);
+INSERT INTO `sys_relation` VALUES (19273, 1267362239285878794, 4);
+INSERT INTO `sys_relation` VALUES (19274, 1267391018611814401, 4);
+INSERT INTO `sys_relation` VALUES (19275, 1267398696432078850, 4);
+INSERT INTO `sys_relation` VALUES (19276, 1267625625340907521, 4);
+INSERT INTO `sys_relation` VALUES (19277, 1267627733750448129, 4);
+INSERT INTO `sys_relation` VALUES (19278, 1267628529682546690, 4);
+INSERT INTO `sys_relation` VALUES (19279, 1267628757521334273, 4);
+INSERT INTO `sys_relation` VALUES (19280, 1267628989072080897, 4);
+INSERT INTO `sys_relation` VALUES (19281, 1267631028544000001, 4);
+INSERT INTO `sys_relation` VALUES (19282, 1267631028544000002, 4);
+INSERT INTO `sys_relation` VALUES (19283, 1267631028544000003, 4);
+INSERT INTO `sys_relation` VALUES (19284, 1267631028544000004, 4);
+INSERT INTO `sys_relation` VALUES (19285, 1267631028544000005, 4);
+INSERT INTO `sys_relation` VALUES (19286, 1267631028544000006, 4);
+INSERT INTO `sys_relation` VALUES (19287, 1267631028544000007, 4);
+INSERT INTO `sys_relation` VALUES (19288, 1277087450839248898, 4);
+INSERT INTO `sys_relation` VALUES (19289, 1277087450839248899, 4);
+INSERT INTO `sys_relation` VALUES (19290, 1267631028544000008, 4);
+INSERT INTO `sys_relation` VALUES (19291, 1267662351509766146, 4);
+INSERT INTO `sys_relation` VALUES (19292, 1267662351509766147, 4);
+INSERT INTO `sys_relation` VALUES (19293, 1267662351509766148, 4);
+INSERT INTO `sys_relation` VALUES (19294, 1267662351509766149, 4);
+INSERT INTO `sys_relation` VALUES (19295, 1267662351509766150, 4);
+INSERT INTO `sys_relation` VALUES (19296, 1267662351509766151, 4);
+INSERT INTO `sys_relation` VALUES (19297, 1268476453249400834, 4);
+INSERT INTO `sys_relation` VALUES (19298, 1268476453249400835, 4);
+INSERT INTO `sys_relation` VALUES (19299, 1268476453249400836, 4);
+INSERT INTO `sys_relation` VALUES (19300, 1268476453249400837, 4);
+INSERT INTO `sys_relation` VALUES (19301, 1268476453249400838, 4);
+INSERT INTO `sys_relation` VALUES (19302, 1268503736945254402, 4);
+INSERT INTO `sys_relation` VALUES (19303, 1268503736945254403, 4);
+INSERT INTO `sys_relation` VALUES (19304, 1268503736945254404, 4);
+INSERT INTO `sys_relation` VALUES (19305, 1268503736945254405, 4);
+INSERT INTO `sys_relation` VALUES (19306, 1268503736945254406, 4);
+INSERT INTO `sys_relation` VALUES (19307, 1268503736945254407, 4);
+INSERT INTO `sys_relation` VALUES (19308, 1268503736945254408, 4);
+INSERT INTO `sys_relation` VALUES (19309, 1268503736945254409, 4);
+INSERT INTO `sys_relation` VALUES (19310, 1268503736945254410, 4);
+INSERT INTO `sys_relation` VALUES (19311, 1268503736945254411, 4);
+INSERT INTO `sys_relation` VALUES (19312, 1268503736945254412, 4);
+INSERT INTO `sys_relation` VALUES (19313, 1268503736945254413, 4);
+INSERT INTO `sys_relation` VALUES (19314, 1268503736945254414, 4);
+INSERT INTO `sys_relation` VALUES (19315, 1268782708379693057, 4);
+INSERT INTO `sys_relation` VALUES (19316, 1268782708379693058, 4);
+INSERT INTO `sys_relation` VALUES (19317, 1268782708379693059, 4);
+INSERT INTO `sys_relation` VALUES (19318, 1268782708379693060, 4);
+INSERT INTO `sys_relation` VALUES (19319, 1268782708379693061, 4);
+INSERT INTO `sys_relation` VALUES (19320, 1268792536825081857, 4);
+INSERT INTO `sys_relation` VALUES (19321, 1268792536825081858, 4);
+INSERT INTO `sys_relation` VALUES (19322, 1268792536825081859, 4);
+INSERT INTO `sys_relation` VALUES (19323, 1268792536825081860, 4);
+INSERT INTO `sys_relation` VALUES (19324, 1268792536825081861, 4);
+INSERT INTO `sys_relation` VALUES (19325, 1268836258119962626, 4);
+INSERT INTO `sys_relation` VALUES (19326, 1268836258128351233, 4);
+INSERT INTO `sys_relation` VALUES (19327, 1268836258128351234, 4);
+INSERT INTO `sys_relation` VALUES (19328, 1268836258128351235, 4);
+INSERT INTO `sys_relation` VALUES (19329, 1268836258128351236, 4);
+INSERT INTO `sys_relation` VALUES (19330, 1268836258128351237, 4);
+INSERT INTO `sys_relation` VALUES (19331, 1268836258128351238, 4);
+INSERT INTO `sys_relation` VALUES (19332, 1268836258128351239, 4);
+INSERT INTO `sys_relation` VALUES (19333, 1269075485671837698, 4);
+INSERT INTO `sys_relation` VALUES (19334, 1269075485671837699, 4);
+INSERT INTO `sys_relation` VALUES (19335, 1269075485671837700, 4);
+INSERT INTO `sys_relation` VALUES (19336, 1269075485671837701, 4);
+INSERT INTO `sys_relation` VALUES (19337, 1269075485671837702, 4);
+INSERT INTO `sys_relation` VALUES (19338, 1269075485671837703, 4);
+INSERT INTO `sys_relation` VALUES (19339, 1269075485671837704, 4);
+INSERT INTO `sys_relation` VALUES (19340, 1269187383113371650, 4);
+INSERT INTO `sys_relation` VALUES (19341, 1269187383113371651, 4);
+INSERT INTO `sys_relation` VALUES (19342, 1269187383113371652, 4);
+INSERT INTO `sys_relation` VALUES (19343, 1269187383113371653, 4);
+INSERT INTO `sys_relation` VALUES (19344, 1269187383113371654, 4);
+INSERT INTO `sys_relation` VALUES (19345, 1269187383113371655, 4);
+INSERT INTO `sys_relation` VALUES (19346, 1269187383113371656, 4);
+INSERT INTO `sys_relation` VALUES (19347, 1269817907586584577, 4);
+INSERT INTO `sys_relation` VALUES (19348, 1269817907586584578, 4);
+INSERT INTO `sys_relation` VALUES (19349, 1269817907586584579, 4);
+INSERT INTO `sys_relation` VALUES (19350, 1269817907586584580, 4);
+INSERT INTO `sys_relation` VALUES (19351, 1269817907586584581, 4);
+INSERT INTO `sys_relation` VALUES (19352, 1269817907586584582, 4);
+INSERT INTO `sys_relation` VALUES (19353, 1271615006909194246, 4);
+INSERT INTO `sys_relation` VALUES (19354, 1269817907586584583, 4);
+INSERT INTO `sys_relation` VALUES (19355, 1270155331579760641, 4);
+INSERT INTO `sys_relation` VALUES (19356, 1270155331579760642, 4);
+INSERT INTO `sys_relation` VALUES (19357, 1270155331579760645, 4);
+INSERT INTO `sys_relation` VALUES (19358, 1270155331579760646, 4);
+INSERT INTO `sys_relation` VALUES (19359, 1270166469340102658, 4);
+INSERT INTO `sys_relation` VALUES (19360, 1270166469340102659, 4);
+INSERT INTO `sys_relation` VALUES (19361, 1270166469340102660, 4);
+INSERT INTO `sys_relation` VALUES (19362, 1270166469340102661, 4);
+INSERT INTO `sys_relation` VALUES (19363, 1270187720196505602, 4);
+INSERT INTO `sys_relation` VALUES (19364, 1270187720196505603, 4);
+INSERT INTO `sys_relation` VALUES (19365, 1270187720196505604, 4);
+INSERT INTO `sys_relation` VALUES (19366, 1270187720196505606, 4);
+INSERT INTO `sys_relation` VALUES (19367, 1270187720196505607, 4);
+INSERT INTO `sys_relation` VALUES (19368, 1270200095003930626, 4);
+INSERT INTO `sys_relation` VALUES (19369, 1270230075494756355, 4);
+INSERT INTO `sys_relation` VALUES (19370, 1270287371570556930, 4);
+INSERT INTO `sys_relation` VALUES (19371, 1270287371570556931, 4);
+INSERT INTO `sys_relation` VALUES (19372, 1270287371570556932, 4);
+INSERT INTO `sys_relation` VALUES (19373, 1270287371570556934, 4);
+INSERT INTO `sys_relation` VALUES (19374, 1270287371570556935, 4);
+INSERT INTO `sys_relation` VALUES (19375, 1270230075494756354, 4);
+INSERT INTO `sys_relation` VALUES (19376, 1270287371570556936, 4);
+INSERT INTO `sys_relation` VALUES (19377, 1270321112590364674, 4);
+INSERT INTO `sys_relation` VALUES (19378, 1270321112590364675, 4);
+INSERT INTO `sys_relation` VALUES (19379, 1270321112590364676, 4);
+INSERT INTO `sys_relation` VALUES (19380, 1270321112590364678, 4);
+INSERT INTO `sys_relation` VALUES (19381, 1270321112590364679, 4);
+INSERT INTO `sys_relation` VALUES (19382, 1270542445643317250, 4);
+INSERT INTO `sys_relation` VALUES (19383, 1270542445643317251, 4);
+INSERT INTO `sys_relation` VALUES (19384, 1270542445643317252, 4);
+INSERT INTO `sys_relation` VALUES (19385, 1270542855032553473, 4);
+INSERT INTO `sys_relation` VALUES (19386, 1270542855032553474, 4);
+INSERT INTO `sys_relation` VALUES (19387, 1270542855032553475, 4);
+INSERT INTO `sys_relation` VALUES (19388, 1275629819595452417, 4);
+INSERT INTO `sys_relation` VALUES (19389, 1275629819595452418, 4);
+INSERT INTO `sys_relation` VALUES (19390, 1275629819595452419, 4);
+INSERT INTO `sys_relation` VALUES (19391, 1270542855032553476, 4);
+INSERT INTO `sys_relation` VALUES (19392, 1270617046482214913, 4);
+INSERT INTO `sys_relation` VALUES (19393, 1270617046482214914, 4);
+INSERT INTO `sys_relation` VALUES (19394, 1270617046482214915, 4);
+INSERT INTO `sys_relation` VALUES (19395, 1270617046482214916, 4);
+INSERT INTO `sys_relation` VALUES (19396, 1270617046482214917, 4);
+INSERT INTO `sys_relation` VALUES (19397, 1270626371560824834, 4);
+INSERT INTO `sys_relation` VALUES (19398, 1270626371560824835, 4);
+INSERT INTO `sys_relation` VALUES (19399, 1270626371560824836, 4);
+INSERT INTO `sys_relation` VALUES (19400, 1270626371560824837, 4);
+INSERT INTO `sys_relation` VALUES (19401, 1270626371560824838, 4);
+INSERT INTO `sys_relation` VALUES (19402, 1270626371560824839, 4);
+INSERT INTO `sys_relation` VALUES (19403, 1270626371560824840, 4);
+INSERT INTO `sys_relation` VALUES (19404, 1270667884395245569, 4);
+INSERT INTO `sys_relation` VALUES (19405, 1270667884395245570, 4);
+INSERT INTO `sys_relation` VALUES (19406, 1270667884395245571, 4);
+INSERT INTO `sys_relation` VALUES (19407, 1270667884395245573, 4);
+INSERT INTO `sys_relation` VALUES (19408, 1270667884395245574, 4);
+INSERT INTO `sys_relation` VALUES (19409, 1270682932433928193, 4);
+INSERT INTO `sys_relation` VALUES (19410, 1271615006909194251, 4);
+INSERT INTO `sys_relation` VALUES (19411, 1271615006909194247, 4);
+INSERT INTO `sys_relation` VALUES (19412, 1271615006909194248, 4);
+INSERT INTO `sys_relation` VALUES (19413, 1271615006909194249, 4);
+INSERT INTO `sys_relation` VALUES (19414, 1271615006909194250, 4);
+INSERT INTO `sys_relation` VALUES (19415, 1271615006909194252, 4);
+INSERT INTO `sys_relation` VALUES (19416, 1271615006909194253, 4);
+INSERT INTO `sys_relation` VALUES (19417, 1271615006909194254, 4);
+INSERT INTO `sys_relation` VALUES (19418, 1271615006909194255, 4);
+INSERT INTO `sys_relation` VALUES (19419, 1271615006909194256, 4);
+INSERT INTO `sys_relation` VALUES (19420, 1271615006909194257, 4);
+INSERT INTO `sys_relation` VALUES (19421, 1271615006909194258, 4);
+INSERT INTO `sys_relation` VALUES (19422, 1271615006909194259, 4);
+INSERT INTO `sys_relation` VALUES (19423, 1271615006909194260, 4);
+INSERT INTO `sys_relation` VALUES (19424, 1271615006909194261, 4);
+INSERT INTO `sys_relation` VALUES (19425, 1271615006909194262, 4);
+INSERT INTO `sys_relation` VALUES (19426, 1271615006909194263, 4);
+INSERT INTO `sys_relation` VALUES (19427, 1271615006909194264, 4);
+INSERT INTO `sys_relation` VALUES (19428, 1271615006909194266, 4);
+INSERT INTO `sys_relation` VALUES (19429, 1271615006909194267, 4);
+INSERT INTO `sys_relation` VALUES (19430, 1271615006909194268, 4);
+INSERT INTO `sys_relation` VALUES (19431, 1271615006909194269, 4);
+INSERT INTO `sys_relation` VALUES (19432, 1271615006909194270, 4);
+INSERT INTO `sys_relation` VALUES (19433, 1271615006909194271, 4);
+INSERT INTO `sys_relation` VALUES (19434, 1271615006909194272, 4);
+INSERT INTO `sys_relation` VALUES (19637, 245, 5);
+INSERT INTO `sys_relation` VALUES (19638, 1267362239285878786, 5);
+INSERT INTO `sys_relation` VALUES (19639, 1267362239285878787, 5);
+INSERT INTO `sys_relation` VALUES (19640, 1267362239285878788, 5);
+INSERT INTO `sys_relation` VALUES (19641, 1267362239285878789, 5);
+INSERT INTO `sys_relation` VALUES (19642, 1267362239285878790, 5);
+INSERT INTO `sys_relation` VALUES (19643, 1267362239285878791, 5);
+INSERT INTO `sys_relation` VALUES (19644, 1267362239285878792, 5);
+INSERT INTO `sys_relation` VALUES (19645, 1282644332165259270, 5);
+INSERT INTO `sys_relation` VALUES (19646, 1282644332165259271, 5);
+INSERT INTO `sys_relation` VALUES (19647, 1267631028544000008, 5);
+INSERT INTO `sys_relation` VALUES (19648, 1267662351509766146, 5);
+INSERT INTO `sys_relation` VALUES (19649, 1267662351509766147, 5);
+INSERT INTO `sys_relation` VALUES (19650, 1267662351509766148, 5);
+INSERT INTO `sys_relation` VALUES (19651, 1267662351509766149, 5);
+INSERT INTO `sys_relation` VALUES (19652, 1267662351509766150, 5);
+INSERT INTO `sys_relation` VALUES (19653, 1267662351509766151, 5);
+INSERT INTO `sys_relation` VALUES (19654, 1268476453249400834, 5);
+INSERT INTO `sys_relation` VALUES (19655, 1268476453249400835, 5);
+INSERT INTO `sys_relation` VALUES (19656, 1268476453249400836, 5);
+INSERT INTO `sys_relation` VALUES (19657, 1268476453249400837, 5);
+INSERT INTO `sys_relation` VALUES (19658, 1268476453249400838, 5);
+INSERT INTO `sys_relation` VALUES (19659, 1268503736945254402, 5);
+INSERT INTO `sys_relation` VALUES (19660, 1268503736945254403, 5);
+INSERT INTO `sys_relation` VALUES (19661, 1268503736945254404, 5);
+INSERT INTO `sys_relation` VALUES (19662, 1268503736945254405, 5);
+INSERT INTO `sys_relation` VALUES (19663, 1268503736945254406, 5);
+INSERT INTO `sys_relation` VALUES (19664, 1268503736945254407, 5);
+INSERT INTO `sys_relation` VALUES (19665, 1268503736945254408, 5);
+INSERT INTO `sys_relation` VALUES (19666, 1268503736945254409, 5);
+INSERT INTO `sys_relation` VALUES (19667, 1268503736945254410, 5);
+INSERT INTO `sys_relation` VALUES (19668, 1268503736945254411, 5);
+INSERT INTO `sys_relation` VALUES (19669, 1268503736945254412, 5);
+INSERT INTO `sys_relation` VALUES (19670, 1268503736945254413, 5);
+INSERT INTO `sys_relation` VALUES (19671, 1277087450839248900, 5);
+INSERT INTO `sys_relation` VALUES (19672, 1268836258128351239, 5);
+INSERT INTO `sys_relation` VALUES (19673, 1269075485671837698, 5);
+INSERT INTO `sys_relation` VALUES (19674, 1269075485671837699, 5);
+INSERT INTO `sys_relation` VALUES (19675, 1269075485671837700, 5);
+INSERT INTO `sys_relation` VALUES (19676, 1269075485671837701, 5);
+INSERT INTO `sys_relation` VALUES (19677, 1269075485671837702, 5);
+INSERT INTO `sys_relation` VALUES (19678, 1269075485671837703, 5);
+INSERT INTO `sys_relation` VALUES (19679, 1269075485671837704, 5);
+INSERT INTO `sys_relation` VALUES (19680, 1269187383113371650, 5);
+INSERT INTO `sys_relation` VALUES (19681, 1269187383113371651, 5);
+INSERT INTO `sys_relation` VALUES (19682, 1269187383113371652, 5);
+INSERT INTO `sys_relation` VALUES (19683, 1269187383113371653, 5);
+INSERT INTO `sys_relation` VALUES (19684, 1269187383113371654, 5);
+INSERT INTO `sys_relation` VALUES (19685, 1269187383113371655, 5);
+INSERT INTO `sys_relation` VALUES (19686, 1269187383113371656, 5);
+INSERT INTO `sys_relation` VALUES (19687, 1269817907586584577, 5);
+INSERT INTO `sys_relation` VALUES (19688, 1269817907586584578, 5);
+INSERT INTO `sys_relation` VALUES (19689, 1269817907586584579, 5);
+INSERT INTO `sys_relation` VALUES (19690, 1269817907586584580, 5);
+INSERT INTO `sys_relation` VALUES (19691, 1269817907586584581, 5);
+INSERT INTO `sys_relation` VALUES (19692, 1269817907586584582, 5);
+INSERT INTO `sys_relation` VALUES (19693, 1271615006909194246, 5);
+INSERT INTO `sys_relation` VALUES (19694, 1269817907586584583, 5);
+INSERT INTO `sys_relation` VALUES (19695, 1270155331579760641, 5);
+INSERT INTO `sys_relation` VALUES (19696, 1270155331579760642, 5);
+INSERT INTO `sys_relation` VALUES (19697, 1270155331579760645, 5);
+INSERT INTO `sys_relation` VALUES (19698, 1270187720196505607, 5);
+INSERT INTO `sys_relation` VALUES (19699, 1270200095003930626, 5);
+INSERT INTO `sys_relation` VALUES (19700, 1270230075494756355, 5);
+INSERT INTO `sys_relation` VALUES (19701, 1270287371570556930, 5);
+INSERT INTO `sys_relation` VALUES (19702, 1270287371570556931, 5);
+INSERT INTO `sys_relation` VALUES (19703, 1270287371570556932, 5);
+INSERT INTO `sys_relation` VALUES (19704, 1270287371570556934, 5);
+INSERT INTO `sys_relation` VALUES (19705, 1270287371570556936, 5);
+INSERT INTO `sys_relation` VALUES (19706, 1270321112590364674, 5);
+INSERT INTO `sys_relation` VALUES (19707, 1270321112590364675, 5);
+INSERT INTO `sys_relation` VALUES (19708, 1270321112590364676, 5);
+INSERT INTO `sys_relation` VALUES (19709, 1270321112590364678, 5);
+INSERT INTO `sys_relation` VALUES (19710, 1270321112590364679, 5);
+INSERT INTO `sys_relation` VALUES (19711, 1270542445643317250, 5);
+INSERT INTO `sys_relation` VALUES (19712, 1270542445643317251, 5);
+INSERT INTO `sys_relation` VALUES (19713, 1270542445643317252, 5);
+INSERT INTO `sys_relation` VALUES (19714, 1270542855032553473, 5);
+INSERT INTO `sys_relation` VALUES (19715, 1270542855032553474, 5);
+INSERT INTO `sys_relation` VALUES (19716, 1270542855032553475, 5);
+INSERT INTO `sys_relation` VALUES (19717, 1275629819595452417, 5);
+INSERT INTO `sys_relation` VALUES (19718, 1275629819595452418, 5);
+INSERT INTO `sys_relation` VALUES (19719, 1275629819595452419, 5);
+INSERT INTO `sys_relation` VALUES (19720, 1270542855032553476, 5);
+INSERT INTO `sys_relation` VALUES (19721, 1270617046482214913, 5);
+INSERT INTO `sys_relation` VALUES (19722, 1270617046482214914, 5);
+INSERT INTO `sys_relation` VALUES (19723, 1270617046482214915, 5);
+INSERT INTO `sys_relation` VALUES (19724, 1270617046482214916, 5);
+INSERT INTO `sys_relation` VALUES (19725, 1270617046482214917, 5);
+INSERT INTO `sys_relation` VALUES (19726, 1270626371560824834, 5);
+INSERT INTO `sys_relation` VALUES (19727, 1270626371560824835, 5);
+INSERT INTO `sys_relation` VALUES (19728, 1270626371560824836, 5);
+INSERT INTO `sys_relation` VALUES (19729, 1270626371560824837, 5);
+INSERT INTO `sys_relation` VALUES (19730, 1270626371560824838, 5);
+INSERT INTO `sys_relation` VALUES (19731, 1270626371560824839, 5);
+INSERT INTO `sys_relation` VALUES (19732, 1271615006909194251, 5);
+INSERT INTO `sys_relation` VALUES (19733, 1271615006909194247, 5);
+INSERT INTO `sys_relation` VALUES (19734, 1271615006909194248, 5);
+INSERT INTO `sys_relation` VALUES (19735, 1271615006909194249, 5);
+INSERT INTO `sys_relation` VALUES (19736, 1271615006909194250, 5);
+INSERT INTO `sys_relation` VALUES (19737, 1271615006909194252, 5);
+INSERT INTO `sys_relation` VALUES (19738, 1271615006909194253, 5);
+INSERT INTO `sys_relation` VALUES (19739, 1271615006909194254, 5);
+INSERT INTO `sys_relation` VALUES (19740, 1271615006909194255, 5);
+INSERT INTO `sys_relation` VALUES (19741, 1271615006909194256, 5);
+INSERT INTO `sys_relation` VALUES (19742, 1271615006909194257, 5);
+INSERT INTO `sys_relation` VALUES (19743, 1271615006909194258, 5);
+INSERT INTO `sys_relation` VALUES (19744, 1271615006909194259, 5);
+INSERT INTO `sys_relation` VALUES (19745, 1271615006909194260, 5);
+INSERT INTO `sys_relation` VALUES (19746, 1271615006909194261, 5);
+INSERT INTO `sys_relation` VALUES (19747, 1271615006909194262, 5);
+INSERT INTO `sys_relation` VALUES (19748, 1271615006909194263, 5);
+INSERT INTO `sys_relation` VALUES (19749, 1271615006909194264, 5);
+INSERT INTO `sys_relation` VALUES (19750, 1271615006909194266, 5);
+INSERT INTO `sys_relation` VALUES (19751, 1271615006909194267, 5);
+INSERT INTO `sys_relation` VALUES (19752, 1271615006909194268, 5);
+INSERT INTO `sys_relation` VALUES (19753, 1271615006909194269, 5);
+INSERT INTO `sys_relation` VALUES (19754, 1271615006909194270, 5);
+INSERT INTO `sys_relation` VALUES (19755, 1271615006909194271, 5);
+INSERT INTO `sys_relation` VALUES (19756, 1271615006909194272, 5);
+INSERT INTO `sys_relation` VALUES (24690, 1, 1);
+INSERT INTO `sys_relation` VALUES (24691, 2, 1);
+INSERT INTO `sys_relation` VALUES (24692, 100, 1);
+INSERT INTO `sys_relation` VALUES (24693, 101, 1);
+INSERT INTO `sys_relation` VALUES (24694, 102, 1);
+INSERT INTO `sys_relation` VALUES (24695, 103, 1);
+INSERT INTO `sys_relation` VALUES (24696, 104, 1);
+INSERT INTO `sys_relation` VALUES (24697, 105, 1);
+INSERT INTO `sys_relation` VALUES (24698, 106, 1);
+INSERT INTO `sys_relation` VALUES (24699, 107, 1);
+INSERT INTO `sys_relation` VALUES (24700, 108, 1);
+INSERT INTO `sys_relation` VALUES (24701, 109, 1);
+INSERT INTO `sys_relation` VALUES (24702, 110, 1);
+INSERT INTO `sys_relation` VALUES (24703, 111, 1);
+INSERT INTO `sys_relation` VALUES (24704, 120, 1);
+INSERT INTO `sys_relation` VALUES (24705, 121, 1);
+INSERT INTO `sys_relation` VALUES (24706, 122, 1);
+INSERT INTO `sys_relation` VALUES (24707, 123, 1);
+INSERT INTO `sys_relation` VALUES (24708, 124, 1);
+INSERT INTO `sys_relation` VALUES (24709, 125, 1);
+INSERT INTO `sys_relation` VALUES (24710, 126, 1);
+INSERT INTO `sys_relation` VALUES (24711, 127, 1);
+INSERT INTO `sys_relation` VALUES (24712, 130, 1);
+INSERT INTO `sys_relation` VALUES (24713, 131, 1);
+INSERT INTO `sys_relation` VALUES (24714, 132, 1);
+INSERT INTO `sys_relation` VALUES (24715, 133, 1);
+INSERT INTO `sys_relation` VALUES (24716, 134, 1);
+INSERT INTO `sys_relation` VALUES (24717, 135, 1);
+INSERT INTO `sys_relation` VALUES (24718, 140, 1);
+INSERT INTO `sys_relation` VALUES (24719, 141, 1);
+INSERT INTO `sys_relation` VALUES (24720, 142, 1);
+INSERT INTO `sys_relation` VALUES (24721, 143, 1);
+INSERT INTO `sys_relation` VALUES (24722, 144, 1);
+INSERT INTO `sys_relation` VALUES (24723, 145, 1);
+INSERT INTO `sys_relation` VALUES (24724, 146, 1);
+INSERT INTO `sys_relation` VALUES (24725, 1282644332165259272, 1);
+INSERT INTO `sys_relation` VALUES (24726, 245, 1);
+INSERT INTO `sys_relation` VALUES (24727, 1267362239285878786, 1);
+INSERT INTO `sys_relation` VALUES (24728, 1267362239285878787, 1);
+INSERT INTO `sys_relation` VALUES (24729, 1267362239285878788, 1);
+INSERT INTO `sys_relation` VALUES (24730, 1267362239285878789, 1);
+INSERT INTO `sys_relation` VALUES (24731, 1267362239285878790, 1);
+INSERT INTO `sys_relation` VALUES (24732, 1267362239285878791, 1);
+INSERT INTO `sys_relation` VALUES (24733, 1267362239285878792, 1);
+INSERT INTO `sys_relation` VALUES (24734, 1282644332165259270, 1);
+INSERT INTO `sys_relation` VALUES (24735, 1282644332165259271, 1);
+INSERT INTO `sys_relation` VALUES (24736, 1267362239285878793, 1);
+INSERT INTO `sys_relation` VALUES (24737, 1267362239285878794, 1);
+INSERT INTO `sys_relation` VALUES (24738, 1267391018611814401, 1);
+INSERT INTO `sys_relation` VALUES (24739, 1267398696432078850, 1);
+INSERT INTO `sys_relation` VALUES (24740, 1267625625340907521, 1);
+INSERT INTO `sys_relation` VALUES (24741, 1267627733750448129, 1);
+INSERT INTO `sys_relation` VALUES (24742, 1267628529682546690, 1);
+INSERT INTO `sys_relation` VALUES (24743, 1267628757521334273, 1);
+INSERT INTO `sys_relation` VALUES (24744, 1267628989072080897, 1);
+INSERT INTO `sys_relation` VALUES (24745, 1267631028544000001, 1);
+INSERT INTO `sys_relation` VALUES (24746, 1267631028544000002, 1);
+INSERT INTO `sys_relation` VALUES (24747, 1267631028544000003, 1);
+INSERT INTO `sys_relation` VALUES (24748, 1267631028544000004, 1);
+INSERT INTO `sys_relation` VALUES (24749, 1267631028544000005, 1);
+INSERT INTO `sys_relation` VALUES (24750, 1267631028544000006, 1);
+INSERT INTO `sys_relation` VALUES (24751, 1267631028544000007, 1);
+INSERT INTO `sys_relation` VALUES (24752, 1277087450839248898, 1);
+INSERT INTO `sys_relation` VALUES (24753, 1277087450839248899, 1);
+INSERT INTO `sys_relation` VALUES (24754, 1282644332165259273, 1);
+INSERT INTO `sys_relation` VALUES (24755, 1267631028544000008, 1);
+INSERT INTO `sys_relation` VALUES (24756, 1267662351509766146, 1);
+INSERT INTO `sys_relation` VALUES (24757, 1267662351509766147, 1);
+INSERT INTO `sys_relation` VALUES (24758, 1267662351509766148, 1);
+INSERT INTO `sys_relation` VALUES (24759, 1267662351509766149, 1);
+INSERT INTO `sys_relation` VALUES (24760, 1267662351509766150, 1);
+INSERT INTO `sys_relation` VALUES (24761, 1267662351509766151, 1);
+INSERT INTO `sys_relation` VALUES (24762, 1268476453249400834, 1);
+INSERT INTO `sys_relation` VALUES (24763, 1268476453249400835, 1);
+INSERT INTO `sys_relation` VALUES (24764, 1268476453249400836, 1);
+INSERT INTO `sys_relation` VALUES (24765, 1268476453249400837, 1);
+INSERT INTO `sys_relation` VALUES (24766, 1268476453249400838, 1);
+INSERT INTO `sys_relation` VALUES (24767, 1268503736945254402, 1);
+INSERT INTO `sys_relation` VALUES (24768, 1268503736945254403, 1);
+INSERT INTO `sys_relation` VALUES (24769, 1268503736945254404, 1);
+INSERT INTO `sys_relation` VALUES (24770, 1268503736945254405, 1);
+INSERT INTO `sys_relation` VALUES (24771, 1268503736945254406, 1);
+INSERT INTO `sys_relation` VALUES (24772, 1268503736945254407, 1);
+INSERT INTO `sys_relation` VALUES (24773, 1268503736945254408, 1);
+INSERT INTO `sys_relation` VALUES (24774, 1268503736945254409, 1);
+INSERT INTO `sys_relation` VALUES (24775, 1268503736945254410, 1);
+INSERT INTO `sys_relation` VALUES (24776, 1268503736945254411, 1);
+INSERT INTO `sys_relation` VALUES (24777, 1268503736945254412, 1);
+INSERT INTO `sys_relation` VALUES (24778, 1268503736945254413, 1);
+INSERT INTO `sys_relation` VALUES (24779, 1277087450839248900, 1);
+INSERT INTO `sys_relation` VALUES (24780, 1268503736945254414, 1);
+INSERT INTO `sys_relation` VALUES (24781, 1268782708379693057, 1);
+INSERT INTO `sys_relation` VALUES (24782, 1268782708379693058, 1);
+INSERT INTO `sys_relation` VALUES (24783, 1268782708379693059, 1);
+INSERT INTO `sys_relation` VALUES (24784, 1268782708379693060, 1);
+INSERT INTO `sys_relation` VALUES (24785, 1268782708379693061, 1);
+INSERT INTO `sys_relation` VALUES (24786, 1268792536825081857, 1);
+INSERT INTO `sys_relation` VALUES (24787, 1268792536825081858, 1);
+INSERT INTO `sys_relation` VALUES (24788, 1268792536825081859, 1);
+INSERT INTO `sys_relation` VALUES (24789, 1268792536825081860, 1);
+INSERT INTO `sys_relation` VALUES (24790, 1268792536825081861, 1);
+INSERT INTO `sys_relation` VALUES (24791, 1268836258119962626, 1);
+INSERT INTO `sys_relation` VALUES (24792, 1268836258128351233, 1);
+INSERT INTO `sys_relation` VALUES (24793, 1268836258128351234, 1);
+INSERT INTO `sys_relation` VALUES (24794, 1268836258128351235, 1);
+INSERT INTO `sys_relation` VALUES (24795, 1268836258128351236, 1);
+INSERT INTO `sys_relation` VALUES (24796, 1268836258128351237, 1);
+INSERT INTO `sys_relation` VALUES (24797, 1268836258128351238, 1);
+INSERT INTO `sys_relation` VALUES (24798, 1309014874136809480, 1);
+INSERT INTO `sys_relation` VALUES (24799, 1309014874136809481, 1);
+INSERT INTO `sys_relation` VALUES (24800, 1309014874136809482, 1);
+INSERT INTO `sys_relation` VALUES (24801, 1309014874136809483, 1);
+INSERT INTO `sys_relation` VALUES (24802, 1268836258128351239, 1);
+INSERT INTO `sys_relation` VALUES (24803, 1269075485671837698, 1);
+INSERT INTO `sys_relation` VALUES (24804, 1269075485671837699, 1);
+INSERT INTO `sys_relation` VALUES (24805, 1269075485671837700, 1);
+INSERT INTO `sys_relation` VALUES (24806, 1269075485671837701, 1);
+INSERT INTO `sys_relation` VALUES (24807, 1269075485671837702, 1);
+INSERT INTO `sys_relation` VALUES (24808, 1269075485671837703, 1);
+INSERT INTO `sys_relation` VALUES (24809, 1269075485671837704, 1);
+INSERT INTO `sys_relation` VALUES (24810, 1269187383113371650, 1);
+INSERT INTO `sys_relation` VALUES (24811, 1269187383113371651, 1);
+INSERT INTO `sys_relation` VALUES (24812, 1269187383113371652, 1);
+INSERT INTO `sys_relation` VALUES (24813, 1269187383113371653, 1);
+INSERT INTO `sys_relation` VALUES (24814, 1269187383113371654, 1);
+INSERT INTO `sys_relation` VALUES (24815, 1269187383113371655, 1);
+INSERT INTO `sys_relation` VALUES (24816, 1269187383113371656, 1);
+INSERT INTO `sys_relation` VALUES (24817, 1269817907586584577, 1);
+INSERT INTO `sys_relation` VALUES (24818, 1269817907586584578, 1);
+INSERT INTO `sys_relation` VALUES (24819, 1269817907586584579, 1);
+INSERT INTO `sys_relation` VALUES (24820, 1269817907586584580, 1);
+INSERT INTO `sys_relation` VALUES (24821, 1269817907586584581, 1);
+INSERT INTO `sys_relation` VALUES (24822, 1269817907586584582, 1);
+INSERT INTO `sys_relation` VALUES (24823, 1271615006909194246, 1);
+INSERT INTO `sys_relation` VALUES (24824, 1308685861421875202, 1);
+INSERT INTO `sys_relation` VALUES (24825, 1308685861421875203, 1);
+INSERT INTO `sys_relation` VALUES (24826, 1308685861421875204, 1);
+INSERT INTO `sys_relation` VALUES (24827, 1308685861421875205, 1);
+INSERT INTO `sys_relation` VALUES (24828, 1308685861421875206, 1);
+INSERT INTO `sys_relation` VALUES (24829, 1308685861421875207, 1);
+INSERT INTO `sys_relation` VALUES (24830, 1308686944210812929, 1);
+INSERT INTO `sys_relation` VALUES (24831, 1308686944210812930, 1);
+INSERT INTO `sys_relation` VALUES (24832, 1308686944210812931, 1);
+INSERT INTO `sys_relation` VALUES (24833, 1308686944210812932, 1);
+INSERT INTO `sys_relation` VALUES (24834, 1308686944210812933, 1);
+INSERT INTO `sys_relation` VALUES (24835, 1308686944210812934, 1);
+INSERT INTO `sys_relation` VALUES (24836, 1309014874136809474, 1);
+INSERT INTO `sys_relation` VALUES (24837, 1309014874136809475, 1);
+INSERT INTO `sys_relation` VALUES (24838, 1309014874136809476, 1);
+INSERT INTO `sys_relation` VALUES (24839, 1309014874136809477, 1);
+INSERT INTO `sys_relation` VALUES (24840, 1309014874136809479, 1);
+INSERT INTO `sys_relation` VALUES (24841, 1269817907586584583, 1);
+INSERT INTO `sys_relation` VALUES (24842, 1270155331579760641, 1);
+INSERT INTO `sys_relation` VALUES (24843, 1270155331579760642, 1);
+INSERT INTO `sys_relation` VALUES (24844, 1270155331579760645, 1);
+INSERT INTO `sys_relation` VALUES (24845, 1270155331579760646, 1);
+INSERT INTO `sys_relation` VALUES (24846, 1270166469340102658, 1);
+INSERT INTO `sys_relation` VALUES (24847, 1270166469340102659, 1);
+INSERT INTO `sys_relation` VALUES (24848, 1270166469340102660, 1);
+INSERT INTO `sys_relation` VALUES (24849, 1270166469340102661, 1);
+INSERT INTO `sys_relation` VALUES (24850, 1270187720196505602, 1);
+INSERT INTO `sys_relation` VALUES (24851, 1270187720196505603, 1);
+INSERT INTO `sys_relation` VALUES (24852, 1270187720196505604, 1);
+INSERT INTO `sys_relation` VALUES (24853, 1270187720196505606, 1);
+INSERT INTO `sys_relation` VALUES (24854, 1270187720196505607, 1);
+INSERT INTO `sys_relation` VALUES (24855, 1270200095003930626, 1);
+INSERT INTO `sys_relation` VALUES (24856, 1270230075494756355, 1);
+INSERT INTO `sys_relation` VALUES (24857, 1270287371570556930, 1);
+INSERT INTO `sys_relation` VALUES (24858, 1270287371570556931, 1);
+INSERT INTO `sys_relation` VALUES (24859, 1270287371570556932, 1);
+INSERT INTO `sys_relation` VALUES (24860, 1270287371570556934, 1);
+INSERT INTO `sys_relation` VALUES (24861, 1270287371570556935, 1);
+INSERT INTO `sys_relation` VALUES (24862, 1270230075494756354, 1);
+INSERT INTO `sys_relation` VALUES (24863, 1270287371570556936, 1);
+INSERT INTO `sys_relation` VALUES (24864, 1270321112590364674, 1);
+INSERT INTO `sys_relation` VALUES (24865, 1270321112590364675, 1);
+INSERT INTO `sys_relation` VALUES (24866, 1270321112590364676, 1);
+INSERT INTO `sys_relation` VALUES (24867, 1270321112590364678, 1);
+INSERT INTO `sys_relation` VALUES (24868, 1270321112590364679, 1);
+INSERT INTO `sys_relation` VALUES (24869, 1270542445643317250, 1);
+INSERT INTO `sys_relation` VALUES (24870, 1270542445643317251, 1);
+INSERT INTO `sys_relation` VALUES (24871, 1270542445643317252, 1);
+INSERT INTO `sys_relation` VALUES (24872, 1270542855032553473, 1);
+INSERT INTO `sys_relation` VALUES (24873, 1270542855032553474, 1);
+INSERT INTO `sys_relation` VALUES (24874, 1270542855032553475, 1);
+INSERT INTO `sys_relation` VALUES (24875, 1275629819595452417, 1);
+INSERT INTO `sys_relation` VALUES (24876, 1275629819595452418, 1);
+INSERT INTO `sys_relation` VALUES (24877, 1275629819595452419, 1);
+INSERT INTO `sys_relation` VALUES (24878, 1270542855032553476, 1);
+INSERT INTO `sys_relation` VALUES (24879, 1270617046482214913, 1);
+INSERT INTO `sys_relation` VALUES (24880, 1270617046482214914, 1);
+INSERT INTO `sys_relation` VALUES (24881, 1270617046482214915, 1);
+INSERT INTO `sys_relation` VALUES (24882, 1270617046482214916, 1);
+INSERT INTO `sys_relation` VALUES (24883, 1270617046482214917, 1);
+INSERT INTO `sys_relation` VALUES (24884, 1270626371560824834, 1);
+INSERT INTO `sys_relation` VALUES (24885, 1270626371560824835, 1);
+INSERT INTO `sys_relation` VALUES (24886, 1270626371560824836, 1);
+INSERT INTO `sys_relation` VALUES (24887, 1270626371560824837, 1);
+INSERT INTO `sys_relation` VALUES (24888, 1270626371560824838, 1);
+INSERT INTO `sys_relation` VALUES (24889, 1270626371560824839, 1);
+INSERT INTO `sys_relation` VALUES (24890, 1270626371560824840, 1);
+INSERT INTO `sys_relation` VALUES (24891, 1270667884395245569, 1);
+INSERT INTO `sys_relation` VALUES (24892, 1270667884395245570, 1);
+INSERT INTO `sys_relation` VALUES (24893, 1270667884395245571, 1);
+INSERT INTO `sys_relation` VALUES (24894, 1270667884395245573, 1);
+INSERT INTO `sys_relation` VALUES (24895, 1270667884395245574, 1);
+INSERT INTO `sys_relation` VALUES (24896, 1270682932433928193, 1);
+INSERT INTO `sys_relation` VALUES (24897, 1271615006909194251, 1);
+INSERT INTO `sys_relation` VALUES (24898, 1271615006909194247, 1);
+INSERT INTO `sys_relation` VALUES (24899, 1271615006909194248, 1);
+INSERT INTO `sys_relation` VALUES (24900, 1271615006909194249, 1);
+INSERT INTO `sys_relation` VALUES (24901, 1271615006909194250, 1);
+INSERT INTO `sys_relation` VALUES (24902, 1271615006909194252, 1);
+INSERT INTO `sys_relation` VALUES (24903, 1271615006909194253, 1);
+INSERT INTO `sys_relation` VALUES (24904, 1271615006909194254, 1);
+INSERT INTO `sys_relation` VALUES (24905, 1271615006909194255, 1);
+INSERT INTO `sys_relation` VALUES (24906, 1271615006909194256, 1);
+INSERT INTO `sys_relation` VALUES (24907, 1271615006909194257, 1);
+INSERT INTO `sys_relation` VALUES (24908, 1271615006909194258, 1);
+INSERT INTO `sys_relation` VALUES (24909, 1271615006909194259, 1);
+INSERT INTO `sys_relation` VALUES (24910, 1271615006909194260, 1);
+INSERT INTO `sys_relation` VALUES (24911, 1271615006909194261, 1);
+INSERT INTO `sys_relation` VALUES (24912, 1271615006909194262, 1);
+INSERT INTO `sys_relation` VALUES (24913, 1271615006909194263, 1);
+INSERT INTO `sys_relation` VALUES (24914, 1271615006909194264, 1);
+INSERT INTO `sys_relation` VALUES (24915, 1271615006909194266, 1);
+INSERT INTO `sys_relation` VALUES (24916, 1271615006909194267, 1);
+INSERT INTO `sys_relation` VALUES (24917, 1271615006909194268, 1);
+INSERT INTO `sys_relation` VALUES (24918, 1271615006909194269, 1);
+INSERT INTO `sys_relation` VALUES (24919, 1271615006909194270, 1);
+INSERT INTO `sys_relation` VALUES (24920, 1271615006909194271, 1);
+INSERT INTO `sys_relation` VALUES (24921, 1271615006909194272, 1);
+INSERT INTO `sys_relation` VALUES (24922, 1308686944210812935, 1);
+INSERT INTO `sys_relation` VALUES (24923, 1308690277738774529, 1);
+INSERT INTO `sys_relation` VALUES (24924, 1308690277738774530, 1);
+INSERT INTO `sys_relation` VALUES (24925, 1308690277738774531, 1);
+INSERT INTO `sys_relation` VALUES (24926, 1308690277738774532, 1);
+INSERT INTO `sys_relation` VALUES (24927, 1308690277738774533, 1);
+INSERT INTO `sys_relation` VALUES (24928, 1308693386556923905, 1);
+INSERT INTO `sys_relation` VALUES (24929, 1308693386556923906, 1);
+INSERT INTO `sys_relation` VALUES (24930, 1308693386556923907, 1);
+INSERT INTO `sys_relation` VALUES (24931, 1308693386556923908, 1);
+INSERT INTO `sys_relation` VALUES (24932, 1308693386556923909, 1);
+INSERT INTO `sys_relation` VALUES (24933, 1308693386556923910, 1);
+INSERT INTO `sys_relation` VALUES (24934, 1308694555895324673, 1);
+INSERT INTO `sys_relation` VALUES (24935, 1308694555895324674, 1);
+INSERT INTO `sys_relation` VALUES (24936, 1308694555895324675, 1);
+INSERT INTO `sys_relation` VALUES (24937, 1308694555895324676, 1);
+INSERT INTO `sys_relation` VALUES (24938, 1308694555895324677, 1);
+INSERT INTO `sys_relation` VALUES (24939, 1308694555895324678, 1);
+INSERT INTO `sys_relation` VALUES (24940, 1308694555895324679, 1);
+INSERT INTO `sys_relation` VALUES (24941, 1308698188288417793, 1);
+INSERT INTO `sys_relation` VALUES (24942, 1308698188288417794, 1);
+INSERT INTO `sys_relation` VALUES (24943, 1308698188288417795, 1);
+INSERT INTO `sys_relation` VALUES (24944, 1308698188288417796, 1);
+INSERT INTO `sys_relation` VALUES (24945, 1308698188288417797, 1);
+INSERT INTO `sys_relation` VALUES (24946, 1308698188288417798, 1);
+INSERT INTO `sys_relation` VALUES (24947, 1308698188288417799, 1);
+INSERT INTO `sys_relation` VALUES (24948, 1308698188288417800, 1);
+INSERT INTO `sys_relation` VALUES (24949, 1308698188288417801, 1);
+INSERT INTO `sys_relation` VALUES (24950, 1308701049940402178, 1);
+INSERT INTO `sys_relation` VALUES (24951, 1308701049940402179, 1);
+INSERT INTO `sys_relation` VALUES (24952, 1308701049940402180, 1);
+INSERT INTO `sys_relation` VALUES (24953, 1308701049940402181, 1);
+INSERT INTO `sys_relation` VALUES (24954, 1308701049940402182, 1);
+INSERT INTO `sys_relation` VALUES (24955, 1308702304670638081, 1);
+INSERT INTO `sys_relation` VALUES (24956, 1308702304670638082, 1);
+INSERT INTO `sys_relation` VALUES (24957, 1308702304670638083, 1);
+INSERT INTO `sys_relation` VALUES (24958, 1308702304670638084, 1);
+INSERT INTO `sys_relation` VALUES (24959, 1308702304670638085, 1);
+INSERT INTO `sys_relation` VALUES (24960, 1308939095893929985, 1);
+INSERT INTO `sys_relation` VALUES (24961, 1308939095893929986, 1);
+INSERT INTO `sys_relation` VALUES (24962, 1308939095893929987, 1);
+INSERT INTO `sys_relation` VALUES (24963, 1308939095893929988, 1);
+INSERT INTO `sys_relation` VALUES (24964, 1308939095893929989, 1);
+INSERT INTO `sys_relation` VALUES (24965, 1308939095893929990, 1);
+INSERT INTO `sys_relation` VALUES (24966, 1308947296710344706, 1);
+INSERT INTO `sys_relation` VALUES (24967, 1308947296710344707, 1);
+INSERT INTO `sys_relation` VALUES (24968, 1308947296710344708, 1);
+INSERT INTO `sys_relation` VALUES (24969, 1308947296710344709, 1);
+INSERT INTO `sys_relation` VALUES (24970, 1308947296710344710, 1);
+INSERT INTO `sys_relation` VALUES (24971, 1308947296710344711, 1);
+INSERT INTO `sys_relation` VALUES (24972, 1308947296710344712, 1);
+INSERT INTO `sys_relation` VALUES (24973, 1308947296710344713, 1);
+INSERT INTO `sys_relation` VALUES (24974, 1308947296710344714, 1);
+INSERT INTO `sys_relation` VALUES (24975, 1308952578060500993, 1);
+INSERT INTO `sys_relation` VALUES (24976, 1308952578060500994, 1);
+INSERT INTO `sys_relation` VALUES (24977, 1308952578060500995, 1);
+INSERT INTO `sys_relation` VALUES (24978, 1308952578060500996, 1);
+INSERT INTO `sys_relation` VALUES (24979, 1308952578060500997, 1);
+INSERT INTO `sys_relation` VALUES (24980, 1308952578060500998, 1);
+INSERT INTO `sys_relation` VALUES (24981, 1308952578060500999, 1);
+INSERT INTO `sys_relation` VALUES (24982, 1308952578060501000, 1);
+INSERT INTO `sys_relation` VALUES (24983, 1308956024717230081, 1);
+INSERT INTO `sys_relation` VALUES (24984, 1308956024717230082, 1);
+INSERT INTO `sys_relation` VALUES (24985, 1308956024717230083, 1);
+INSERT INTO `sys_relation` VALUES (24986, 1308956024717230084, 1);
+INSERT INTO `sys_relation` VALUES (24987, 1308956024717230085, 1);
+INSERT INTO `sys_relation` VALUES (24988, 1308956024717230086, 1);
+INSERT INTO `sys_relation` VALUES (24989, 1308956024717230087, 1);
+INSERT INTO `sys_relation` VALUES (24990, 1308956024717230088, 1);
+INSERT INTO `sys_relation` VALUES (24991, 1308958374009815041, 1);
+INSERT INTO `sys_relation` VALUES (24992, 1308958374009815042, 1);
+INSERT INTO `sys_relation` VALUES (24993, 1308958374009815043, 1);
+INSERT INTO `sys_relation` VALUES (24994, 1308958374009815044, 1);
+INSERT INTO `sys_relation` VALUES (24995, 1308958374009815045, 1);
+INSERT INTO `sys_relation` VALUES (24996, 1308966481553309697, 1);
+INSERT INTO `sys_relation` VALUES (24997, 1308966481561698306, 1);
+INSERT INTO `sys_relation` VALUES (24998, 1308966481561698307, 1);
+INSERT INTO `sys_relation` VALUES (24999, 1308966481561698308, 1);
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `num` int(11) NULL DEFAULT NULL COMMENT '序号',
+  `pid` int(11) NULL DEFAULT NULL COMMENT '父角色id',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名称',
+  `deptid` int(11) NULL DEFAULT NULL COMMENT '部门名称',
+  `tips` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提示',
+  `version` int(11) NULL DEFAULT NULL COMMENT '保留字段(暂时没用)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES (1, 1, 0, '超级管理员', 24, 'administrator', 1);
+INSERT INTO `sys_role` VALUES (2, 1, 1, '分公司', 25, 'company', NULL);
+INSERT INTO `sys_role` VALUES (3, 1, 2, '加盟商', 26, 'franchisee', NULL);
+INSERT INTO `sys_role` VALUES (4, 1, 1, '技术部', 27, '技术', NULL);
+INSERT INTO `sys_role` VALUES (5, NULL, 4, '运维', 27, '运维专员', NULL);
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
+  `account` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
+  `password` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+  `salt` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'md5密码盐',
+  `name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名字',
+  `birthday` datetime(0) NULL DEFAULT NULL COMMENT '生日',
+  `sex` int(11) NULL DEFAULT NULL COMMENT '性别(1:男 2:女)',
+  `email` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电子邮件',
+  `phone` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话',
+  `roleid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id',
+  `deptid` int(11) NULL DEFAULT NULL COMMENT '部门id',
+  `status` int(11) NULL DEFAULT NULL COMMENT '状态(1:启用  2:冻结  3:删除)',
+  `createtime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `version` int(11) NULL DEFAULT NULL COMMENT '保留字段',
+  `roleType` int(11) NULL DEFAULT 1 COMMENT '角色类型 1=平台 2=分公司 3=加盟商',
+  `objectId` int(11) NULL DEFAULT 1 COMMENT '对象ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '管理员表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+INSERT INTO `sys_user` VALUES (1, 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/11f7b120741d400ea0b95093e8611cf7.png', 'admin', 'ecfadcde9305f8891bcfe5a1e28c253e', '8pgby', '云森科技公司', '2017-05-05 00:00:00', 2, 'sn93@qq.com', '18200000000', '1', 0, 1, '2016-01-29 08:49:53', 25, 1, 1);
+INSERT INTO `sys_user` VALUES (36, '', '广西云森', 'b972154e82b3852147aa226bc2d821cb', 'ccmfa', '翁康昌', '2020-08-20 00:00:00', 1, '', '0772-3236699', '1', 27, 1, '2020-08-20 13:41:50', NULL, 1, 1);
+INSERT INTO `sys_user` VALUES (37, '', 'JSB01', 'd09b4f07a4adeeb288439eb624741e50', 'xhqv8', '何佳媛', '2020-08-20 00:00:00', 2, '', '0772-3236699', '4', 27, 1, '2020-08-20 13:48:24', NULL, 1, 1);
+INSERT INTO `sys_user` VALUES (38, '', 'JSB00', 'c2d1fafc878b26b33ce44114fd156129', 'nok2v', '李汉兴', '2020-08-20 00:00:00', 1, '', '0772-3236699', '1', 24, 1, '2020-08-20 13:53:18', NULL, 1, 1);
+INSERT INTO `sys_user` VALUES (39, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4dbe3e5898bf4286a806ab56b93f9d52.jpg', 'YYB01', '0cf8fe5850aa7ba5b16eaec80313c1e6', '6yn2t', '曾君逸', '2020-08-27 00:00:00', 2, '', '', '4', 27, 1, '2020-08-27 17:05:32', NULL, 1, 1);
+INSERT INTO `sys_user` VALUES (40, '', 'JSB03', 'fdc86b7d93218028d2a98dccf4d3832a', 'h85ds', '翁康昌', '2020-08-20 00:00:00', 1, '', '0772-3236699', NULL, 24, 1, '2020-08-29 10:30:40', NULL, 1, 1);
+INSERT INTO `sys_user` VALUES (41, NULL, '17623778642', 'c1d67b08a8dca2bb98acd53825344425', 'mq1xa', '崇州分公司', NULL, 1, NULL, NULL, '2', 25, 1, '2020-09-24 10:16:22', NULL, 2, 2);
+INSERT INTO `sys_user` VALUES (42, NULL, '17623778643', '02e71057cd7772fa04ab5054e8c7b3ab', 'nsqw4', '崇州加盟商', NULL, 1, NULL, NULL, '3', 26, 1, '2020-09-24 10:18:53', NULL, 3, 3);
+
+-- ----------------------------
+-- Table structure for t_advertisement
+-- ----------------------------
+DROP TABLE IF EXISTS `t_advertisement`;
+CREATE TABLE `t_advertisement`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
+  `imgUrl` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '图片路径',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型(1=弹窗,2=首页底部)',
+  `isJump` smallint(1) NULL DEFAULT NULL COMMENT '是否跳转(1=是,2=否)',
+  `jumpType` smallint(1) NULL DEFAULT NULL COMMENT '跳转类型(1=外部,2=内部)',
+  `jumpUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '跳转路径',
+  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '文本编辑器内容',
+  `flag` int(1) NULL DEFAULT 1 COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL,
+  `insertUser` int(11) NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  `state` int(2) NULL DEFAULT 1 COMMENT '状态  1=已上线  2=已下线',
+  `provinceId` int(11) NULL DEFAULT NULL COMMENT '所属省ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '广告' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_advertisement
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_agreement
+-- ----------------------------
+DROP TABLE IF EXISTS `t_agreement`;
+CREATE TABLE `t_agreement`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `useType` int(1) NULL DEFAULT NULL COMMENT '1=用户,2=司机',
+  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '协议内容',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置,9=司机注册协议,10=改派说明,11=跨城出行乘车须知)',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL,
+  `insertUser` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '平台协议' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_agreement
+-- ----------------------------
+INSERT INTO `t_agreement` VALUES (1, 1, '<p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: 宋体;\">&nbsp; 保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向非本公司关联企业的第三方提供单个用户的注册数据及用户在使用网络服务时存储在</span>OK<span style=\"font-family: 宋体;\">出行平台的非公开内容,但下列情况除外:</span></span></p><p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: 宋体;\">1.事先获得用户的明确授权;</span></span></p><p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: 宋体;\">2.根据有关的法律法规要求;</span></span></p><p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: 宋体;\">3.按照相关政府主管部门的要求;</span></span></p><p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: 宋体;\">4.为维护社会公众的利益;</span></span></p><p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\"><span style=\"font-family: 宋体;\">5.为维护本公司的合法权益。</span></span></p><p style=\"white-space: normal;\"><span style=\"font-family: Calibri;\">&nbsp; &nbsp; &nbsp;OK<span style=\"font-family: 宋体;\">出行平台可能会与第三方合作向用户提供相关的网络服务,或与关联企业合作提供服务;在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册数据等提供给该第三方。</span></span><span style=\"font-family: Calibri;\">&nbsp;&nbsp;</span><span style=\"font-family: 宋体;\">在不透露单个用户隐私数据的前提下,本公司有权对整个用户数据库进行分析并在合法范围内对用户数据库进行商业上的利用。</span><span style=\"font-family: Calibri;\">OK</span><span style=\"font-family: 宋体;\">出行平台公布的法律声明及隐私政策是本协议的有效组成部分,且您同意我公司不定时的更新隐私政策并接受更新后的隐私政策</span></p><p><br/></p>', 1, '1', '2020-08-24 17:24:16', NULL, '2020-08-27 10:03:55', 1);
+INSERT INTO `t_agreement` VALUES (2, 1, '<p><span style=\";font-family:Calibri;font-size:16px\">1.1 <span style=\"font-family:宋体\">本《</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行用户协议》(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">本协议</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)是您(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">您</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">用户</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)与广西云森科技有限公司(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">本公司</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或者</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">我们</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)之间关于您注册并使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台(包括但不限于通过</span><span style=\"font-family:Calibri\">PC</span><span style=\"font-family:宋体\">版或移动智能终端等版本)以及您通过</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台获得相关信息、建议及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或服务使等相关事宜所订立的协议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.2 <span style=\"font-family:宋体\">请您认真阅读本协议,并充分理解本协议各条款的内容。</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台发布的法律声明及隐私政策、计费标准、平台规则等其他规定均属于本协议的补充协议,与本协议不可分割且具有同等法律效力。您在使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供的服务之前,必须同意接受本协议。当您按照注册页面提示填写信息、提交文件、阅读并同意本协议且完成注册程序后,即表示您已充分阅读、理解并接受本协议的全部内容。如您不同意接受本协议或其中任何条款约定,您应立即停止注册程序。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.3 <span style=\"font-family:宋体\">您明确同意,</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台有权根据法律法规的变化及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或运营需要,不时对前述协议和条款进行修改并公布在</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台,该等协议和条款一经公布,立即生效,</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台无需另行通知。应主动不时查阅</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的公示,若不同意</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的修改,应立即停止使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台。若继续使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的服务,则视为接受</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台对前述协议和条款的修改。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.4 OK<span style=\"font-family:宋体\">出行平台是广西云森科技有限公司拥有合法权益的,为使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台出租车服务的司机和乘客提供相关信息技术服务的网络平台。您应认真阅读、充分理解本协议中各条款,特别涉及免除或者限制本公司责任的免责条款,对您的权利限制的条款、约定争议解决方式、司法管辖、法律适用的条款。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.5 <span style=\"font-family:宋体\">请您审慎阅读并充分理解本协议的内容以及</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台公布的所有相关协议、规则等文件。如您不具有完全民事行为能力,请您在法定监护人的陪同下阅读。注册成为</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台用户以及使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供的出租车服务即视为接受前述文件以及</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台对前述文件的不时修改、删减及增加。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2. <span style=\"font-family:宋体\">服务内容</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.1 OK<span style=\"font-family:宋体\">出行平台向您提供出租车服务供应商的相关信息,包括但不限于驾驶员信息、车辆信息等,并同时向出租车服务供应商提供您的用车需求,以便促成您与出租车服务供应商之间达成出租车服务协议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.2 <span style=\"font-family:宋体\">为避免误解,特澄清如下:</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供的并不是出租车服务,而是为您和出租车服务供应商之间提供信息及技术支持,协助您与出租车服务供应商之间达成出租车服务协议的网络信息技术平台。</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台不对出租车服务过程中产生的纠纷或争议承担责任,也不对任何一方使用出租车服务过程中可能遭受的损失承担责任,双方应自行解决相关事宜。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.3 <span style=\"font-family:宋体\">对于您使用出租车服务供应商提供的服务所支付的费用,将由出租车服务供应商向您提供相应的发票。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.4 <span style=\"font-family:宋体\">您可以免费下载和使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的程序和服务。我们保留日后就程序和</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或服务向您收费的权利。如果我们决定收取此类费用,我们将向您发送通知,并允许您选择继续履行或终止本协议。如果您拒绝支付相关费用,则我们有权不向您提供该等收费服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.5 <span style=\"font-family:宋体\">您同意并确认,本公司仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人计算机、手机、其他与接入互联网或移动网有关的装置)及第三方收取的相关费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由您自行负担。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">3. <span style=\"font-family:宋体\">知识产权声明</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.1 OK<span style=\"font-family:宋体\">出行平台的一切知识产权(包括但不限于版权、商标权、专利权、商业秘密),以及相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图表、色彩、接口设计、版面框架、有关数据、印刷材料、或电子文件等均受中华人民共和国著作权法、商标法、专利法、反不正当竞争法和相应的国际条约以及其他知识产权法律法规的保护,除涉及第三方授权的软件或技术外,本公司享有上述知识产权。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.2 <span style=\"font-family:宋体\">未经本公司书面同意,用户不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何三方实施、利用、转让上述知识产权,本公司保留追究上述未经许可行为的权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">4. <span style=\"font-family:宋体\">服务变更、中断或终止</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.1 <span style=\"font-family:宋体\">用户理解,本公司需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,且互联网连接能力受到全球网路稳定性、技术状态、使用者所在地与使用的网路、电力供应、政府管制、计算机病毒、黑客攻击等既存不确定性的限制,如因此类情况而造成服务中断,本公司无需为此承担任何责任,且除特殊情况外应当事先进行通告。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.2 <span style=\"font-family:宋体\">如发生下列任何一种情形,本公司有权随时中断或终止向您提供本协议项下的全部或部分网络服务而无需对您或任何第三方承担任何责任:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您提供的个人资料不真实;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您违反本协议中规定的使用规则;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您在使用收费网络服务时未按规定向本公司支付相应的服务费;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您的行为违反法律法规或者政府规定。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.3 <span style=\"font-family:宋体\">用户注册的账户或使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的行为、方式如存在违反法律法规或国家政策要求,或侵犯任何第三方合法权益的情况,本公司有权禁止用户继续使用该账户或停止用户继续使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台,或依据相关法律或政府命令,将相关信息提供给政府、法院或检察机关。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5. <span style=\"font-family:宋体\">使用规则</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.1 <span style=\"font-family:宋体\">用户注册成功后,本公司将给予每个用户一个用户账号,该账号归本公司所有,用户完成申请注册手续后,获得账号的使用权。账号使用权仅属于初始申请注册人,禁止任何形式的让与,包括但不限于赠与、借用、租用、转让或售卖。用户承担账号与密码的保管责任,并就其账号及密码项下之一切活动(不论是否由用户本人所为或得用户本人授权而为)负全部责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.2 <span style=\"font-family:宋体\">用户不应将其账号、密码转让或出借予他人使用。如用户发现其账号遭他人非法使用,应立即通知本公司。因黑客行为或用户的保管疏忽导致账号、密码遭他人非法使用所发生的一切责任,均应由用户本人承担,本公司不承担任何责任。若因此造成本公司责任,用户同意赔偿本公司的损失。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.3 <span style=\"font-family:宋体\">用户同意本公司有权在提供网络服务过程中以各种方式投放各种商业性广告或其他任何类型的商业信息,并且,用户同意接受本公司通过电子邮件或其他方式向用户发送商品促销或其他相关商业信息。用户同意本公司无须对前述广告或促销讯息的内容负责,用户应自行审慎判断内容的正确性与商品或服务质量。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.4 <span style=\"font-family:宋体\">用户在使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台服务过程中,必须遵循以下原则:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">遵守中国有关的法律和法规;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">遵守所有与网络服务有关的网络协议、规定和程序;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得为任何非法目的而使用网络服务系统;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得以任何形式使用</span>OK<span style=\"font-family:宋体\">出行平台服务侵犯本公司的商业利益,包括并不限于发布非经本公司许可的商业广告;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得利用</span>OK<span style=\"font-family:宋体\">出行平台网络服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得利用本产品提供的网络服务上传、展示或传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息数据;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得利用</span>OK<span style=\"font-family:宋体\">出行平台服务系统进行任何不利于本公司的行为。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.5 <span style=\"font-family:宋体\">本公司针对某些特定的</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台网络服务的使用通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)作出的任何声明、通知、警示等内容视为本协议的一部分,用户如使用该网络服务,视为用户知悉并同意该等声明、通知、警示的内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.6 <span style=\"font-family:宋体\">本公司有权对用户使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台网络服务(包括但不限于免费或付费服务)的情况进行审查和监督</span><span style=\"font-family:Calibri\">(</span><span style=\"font-family:宋体\">包括但不限于对用户存储在本公司的内容进行审核</span><span style=\"font-family:Calibri\">)</span><span style=\"font-family:宋体\">,如用户在使用网络服务时违反任何上述规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用户使用网络服务的权利)以减轻用户不当行为造成的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.7 <span style=\"font-family:宋体\">用户作为乘客使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台时,应提供真实准确的出行信息,若用户多次无故爽约,我们有权在符合</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台规则的情况下,向用户收取爽约金,并有权在用户完成支付爽约金之前,暂停用户使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台全部或部分服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6. <span style=\"font-family:宋体\">授权及许可</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.1 <span style=\"font-family:宋体\">在您遵守本协议的前提下,我们授予您有限的、非排他性的、不可转让的如下许可:以将一份应用程序副本下载并安装到您拥有或控制的单台移动设备上,并仅出于您自己的个人用途运行此应用程序副本。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.2 <span style=\"font-family:宋体\">您不得:(</span><span style=\"font-family:Calibri\">1</span><span style=\"font-family:宋体\">)以任何方式许可、再许可、出售、转售、转让、分配、分发服务或应用程序,或以其他方式进行商业开发或提供给任何第三方;(</span><span style=\"font-family:Calibri\">2</span><span style=\"font-family:宋体\">)修改服务或应用程序,或者据此创建衍生产品;(</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">)创建指向服务的互联网</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">链接</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">,或在任何其他服务器或基于无线或互联网的设备上</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">设计</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">镜像</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">任何应用程序;(</span><span style=\"font-family:Calibri\">4</span><span style=\"font-family:宋体\">)反向工程或访问应用程序设计或构建竞争产品或服务、使用类似于服务或应用程序的设想或图形来设计或构建产品,或抄袭服务或应用程序的任何设想、特点、功能或图形,或(</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">)启动自动程序或脚本,每秒发送多个服务器请求或过度加重服务或应用程序负担或妨碍其工作和</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或性能的程序。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.3 <span style=\"font-family:宋体\">此外,您不得:(</span><span style=\"font-family:Calibri\">1</span><span style=\"font-family:宋体\">)发送垃圾邮件或者以其他形式违反适用法律的重复或不受欢迎的邮件;(</span><span style=\"font-family:Calibri\">2</span><span style=\"font-family:宋体\">)发送或存储侵权、淫秽、威胁、诽谤或者其他非法或侵权资料,包括危害儿童或触犯第三方隐私权的资料;(</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">)发送或存储包含软件病毒、蠕虫、木马或其他有害的计算机代码、文件、脚本、代理或程序的资料;(</span><span style=\"font-family:Calibri\">4</span><span style=\"font-family:宋体\">)阻挠或扰乱网站、应用程序、服务或其所含数据的完整性或性能;(</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">)尝试未经授权地访问网站、应用程序、服务或其相关系统或网络。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.4 <span style=\"font-family:宋体\">在法律允许的最大范围内,我们将有权调查并起诉任何上述违法违规行为。我们可参与并协助执法部门起诉违反本协议的用户。如果我们认为任何内容违反本协议或以其他方式危害网站、</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或其中的服务或应用程序,我们保留在不另行通知的情况下随时删除或禁用对这些內容的访问权限的权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7. <span style=\"font-family:宋体\">隐私保护</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.1 <span style=\"font-family:宋体\">保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向非本公司关联企业的第三方提供单个用户的注册数据及用户在使用网络服务时存储在</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的非公开内容,但下列情况除外:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">事先获得用户的明确授权;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">根据有关的法律法规要求;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">按照相关政府主管部门的要求;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">为维护社会公众的利益;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">为维护本公司的合法权益。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.2 OK<span style=\"font-family:宋体\">出行平台可能会与第三方合作向用户提供相关的网络服务,或与关联企业合作提供服务;在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册数据等提供给该第三方。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.3 <span style=\"font-family:宋体\">在不透露单个用户隐私数据的前提下,本公司有权对整个用户数据库进行分析并在合法范围内对用户数据库进行商业上的利用。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.4 OK<span style=\"font-family:宋体\">出行平台公布的法律声明及隐私政策是本协议的有效组成部分,且您同意我公司不定时的更新隐私政策并接受更新后的隐私政策。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8. <span style=\"font-family:宋体\">免责声明</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.1 <span style=\"font-family:宋体\">用户明确同意其使用本公司网络服务所存在的风险将完全由其自己承担;因其使用本公司网络服务而产生的一切后果也由其自己承担,本公司对用户不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.2 <span style=\"font-family:宋体\">本公司对网络服务不作任何类型的担保,包括但不限于网络服务的及时性、安全性、准确性,对在任何情况下因使用或不能使用本网络服务所产生的直接、间接、偶然、特殊及后续的损害及风险,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.3 <span style=\"font-family:宋体\">用户同意,对于本公司向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本公司无需承担任何责任:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司向用户免费提供的各项网络服务;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司向用户赠送的任何产品或者服务;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司向用户附赠的各种产品或者服务(包括但不限於第</span>6.3<span style=\"font-family:宋体\">条的各项内容)。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.4 <span style=\"font-family:宋体\">用户同意,</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台所提供的功能受制于我国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何通过</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台服务直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关资料作为证据。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.5 <span style=\"font-family:宋体\">用户理解安全驾驶的重要性,且保证在任何可能引起安全隐患的情况下均不得使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台,并同意一切因使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台服务而导致的安全隐患和因此产生的纠纷和交通事故,均应由司机用户承担责任,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关资料作为证据。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.6 <span style=\"font-family:宋体\">用户同意并理解</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供本协议所列的服务,但无须对用户使用服务相关行为所造成的损失负担任何责任,例如乘客于乘车时丢失物品、司机因乘客个人行为造成车辆污损(如乘客在车上翻溅食物饮料、呕吐等)、或因司机或乘客对于运载时间估计错误所造成的损失(无论是否有先告知司机、乘客或本公司均同)。用户间应自行解决上述事项所发生的争议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.7 <span style=\"font-family:宋体\">我们使用第三方电子支付服务供应商(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">电子支付服务商</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">),将您的第三方电子支付账户关联到您在</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的个人帐户。处理您使用服务相关的付款时,除了受到本协议的约束之外,还要受电子支付服务商及信用卡</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">借记卡发卡行的条款和政策的约束。我们对于电子支付服务商或银行发生的错误不承担责任。我们将获取与您使用服务相关的特定交易明细。在使用这些信息时我们将严格遵守相关法律法规和公司的各项政策。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">9. <span style=\"font-family:宋体\">赔偿</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.1 <span style=\"font-family:宋体\">您接受本协议并使用滴滴信息平台中的各应用程序及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或服务,即表示您同意:对于因以下事项产生的或与以下事项相关的任何及所有索赔、费用、赔偿、损失、债务和开销(包括法律费和诉讼费),您应该予以赔偿,使其免受损失。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您触犯或违反本协议中的任何条款或任何适用的法律法规(无论此处是否提及);</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您触犯任何第三方的任何权利,包括通过应用程序安排的租车</span>/<span style=\"font-family:宋体\">驾驶服务提供商;或</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您使用或滥用应用程序或服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.2 <span style=\"font-family:宋体\">您通过</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台与出租车服务供应商达成的出租车服务协议,系由出租车服务供应商履行并承担相关责任。对于您享受出租车服务过程中产生的任何的责任,均由出租车服务供应商承担。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">10. <span style=\"font-family:宋体\">协议修改</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">10.1 <span style=\"font-family:宋体\">本公司有权随时修改本协议的任何条款,一旦本协议的内容发生变动,本公司将会直接在本公司网站上公布修改之后的协议内容,该公布行为视为本公司已经通知用户修改内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">10.2 <span style=\"font-family:宋体\">如果不同意本公司对本协议相关条款所做的修改,用户应当停止使用网络服务。如果用户继续使用网络服务,则视为用户接受本公司对本协议相关条款所做的修改。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">11. <span style=\"font-family:宋体\">通知送达</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">11.1 <span style=\"font-family:宋体\">本协议项下本公司对于用户所有的通知均可通过网页公告、电子邮件、手机短信或常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">11.2 <span style=\"font-family:宋体\">用户对于本公司的通知应当通过本公司对外正式公布的通信地址、传真号码、电子邮件地址等联系信息进行送达。该等通知以本公司实际收到日为送达日。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">12. <span style=\"font-family:宋体\">法律管辖</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">12.1 <span style=\"font-family:宋体\">本协议的订立、执行和解释及争议的解决均应适用中国法律并受中国法院管辖。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">12.2 <span style=\"font-family:宋体\">如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向本公司所在地的人民法院提起诉讼</span></span></p><p><br/></p>', 2, '1', '2020-08-24 17:24:59', NULL, '2020-08-27 10:00:40', 1);
+INSERT INTO `t_agreement` VALUES (3, 1, '<p><span style=\";font-family:Calibri;font-size:16px\">1.1 <span style=\"font-family:宋体\">本《</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行用户协议》(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">本协议</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)是您(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">您</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">用户</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)与广西云森科技有限公司(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">本公司</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或者</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">我们</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)之间关于您注册并使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台(包括但不限于通过</span><span style=\"font-family:Calibri\">PC</span><span style=\"font-family:宋体\">版或移动智能终端等版本)以及您通过</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台获得相关信息、建议及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或服务使等相关事宜所订立的协议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.2 <span style=\"font-family:宋体\">请您认真阅读本协议,并充分理解本协议各条款的内容。</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台发布的法律声明及隐私政策、计费标准、平台规则等其他规定均属于本协议的补充协议,与本协议不可分割且具有同等法律效力。您在使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供的服务之前,必须同意接受本协议。当您按照注册页面提示填写信息、提交文件、阅读并同意本协议且完成注册程序后,即表示您已充分阅读、理解并接受本协议的全部内容。如您不同意接受本协议或其中任何条款约定,您应立即停止注册程序。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.3 <span style=\"font-family:宋体\">您明确同意,</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台有权根据法律法规的变化及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或运营需要,不时对前述协议和条款进行修改并公布在</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台,该等协议和条款一经公布,立即生效,</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台无需另行通知。应主动不时查阅</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的公示,若不同意</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的修改,应立即停止使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台。若继续使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的服务,则视为接受</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台对前述协议和条款的修改。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.4 OK<span style=\"font-family:宋体\">出行平台是广西云森科技有限公司拥有合法权益的,为使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台出租车服务的司机和乘客提供相关信息技术服务的网络平台。您应认真阅读、充分理解本协议中各条款,特别涉及免除或者限制本公司责任的免责条款,对您的权利限制的条款、约定争议解决方式、司法管辖、法律适用的条款。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.5 <span style=\"font-family:宋体\">请您审慎阅读并充分理解本协议的内容以及</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台公布的所有相关协议、规则等文件。如您不具有完全民事行为能力,请您在法定监护人的陪同下阅读。注册成为</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台用户以及使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供的出租车服务即视为接受前述文件以及</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台对前述文件的不时修改、删减及增加。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2. <span style=\"font-family:宋体\">服务内容</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.1 OK<span style=\"font-family:宋体\">出行平台向您提供出租车服务供应商的相关信息,包括但不限于驾驶员信息、车辆信息等,并同时向出租车服务供应商提供您的用车需求,以便促成您与出租车服务供应商之间达成出租车服务协议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.2 <span style=\"font-family:宋体\">为避免误解,特澄清如下:</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供的并不是出租车服务,而是为您和出租车服务供应商之间提供信息及技术支持,协助您与出租车服务供应商之间达成出租车服务协议的网络信息技术平台。</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台不对出租车服务过程中产生的纠纷或争议承担责任,也不对任何一方使用出租车服务过程中可能遭受的损失承担责任,双方应自行解决相关事宜。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.3 <span style=\"font-family:宋体\">对于您使用出租车服务供应商提供的服务所支付的费用,将由出租车服务供应商向您提供相应的发票。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.4 <span style=\"font-family:宋体\">您可以免费下载和使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的程序和服务。我们保留日后就程序和</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或服务向您收费的权利。如果我们决定收取此类费用,我们将向您发送通知,并允许您选择继续履行或终止本协议。如果您拒绝支付相关费用,则我们有权不向您提供该等收费服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.5 <span style=\"font-family:宋体\">您同意并确认,本公司仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人计算机、手机、其他与接入互联网或移动网有关的装置)及第三方收取的相关费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由您自行负担。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">3. <span style=\"font-family:宋体\">知识产权声明</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.1 OK<span style=\"font-family:宋体\">出行平台的一切知识产权(包括但不限于版权、商标权、专利权、商业秘密),以及相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图表、色彩、接口设计、版面框架、有关数据、印刷材料、或电子文件等均受中华人民共和国著作权法、商标法、专利法、反不正当竞争法和相应的国际条约以及其他知识产权法律法规的保护,除涉及第三方授权的软件或技术外,本公司享有上述知识产权。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.2 <span style=\"font-family:宋体\">未经本公司书面同意,用户不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何三方实施、利用、转让上述知识产权,本公司保留追究上述未经许可行为的权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">4. <span style=\"font-family:宋体\">服务变更、中断或终止</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.1 <span style=\"font-family:宋体\">用户理解,本公司需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,且互联网连接能力受到全球网路稳定性、技术状态、使用者所在地与使用的网路、电力供应、政府管制、计算机病毒、黑客攻击等既存不确定性的限制,如因此类情况而造成服务中断,本公司无需为此承担任何责任,且除特殊情况外应当事先进行通告。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.2 <span style=\"font-family:宋体\">如发生下列任何一种情形,本公司有权随时中断或终止向您提供本协议项下的全部或部分网络服务而无需对您或任何第三方承担任何责任:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您提供的个人资料不真实;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您违反本协议中规定的使用规则;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您在使用收费网络服务时未按规定向本公司支付相应的服务费;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您的行为违反法律法规或者政府规定。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.3 <span style=\"font-family:宋体\">用户注册的账户或使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的行为、方式如存在违反法律法规或国家政策要求,或侵犯任何第三方合法权益的情况,本公司有权禁止用户继续使用该账户或停止用户继续使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台,或依据相关法律或政府命令,将相关信息提供给政府、法院或检察机关。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5. <span style=\"font-family:宋体\">使用规则</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.1 <span style=\"font-family:宋体\">用户注册成功后,本公司将给予每个用户一个用户账号,该账号归本公司所有,用户完成申请注册手续后,获得账号的使用权。账号使用权仅属于初始申请注册人,禁止任何形式的让与,包括但不限于赠与、借用、租用、转让或售卖。用户承担账号与密码的保管责任,并就其账号及密码项下之一切活动(不论是否由用户本人所为或得用户本人授权而为)负全部责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.2 <span style=\"font-family:宋体\">用户不应将其账号、密码转让或出借予他人使用。如用户发现其账号遭他人非法使用,应立即通知本公司。因黑客行为或用户的保管疏忽导致账号、密码遭他人非法使用所发生的一切责任,均应由用户本人承担,本公司不承担任何责任。若因此造成本公司责任,用户同意赔偿本公司的损失。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.3 <span style=\"font-family:宋体\">用户同意本公司有权在提供网络服务过程中以各种方式投放各种商业性广告或其他任何类型的商业信息,并且,用户同意接受本公司通过电子邮件或其他方式向用户发送商品促销或其他相关商业信息。用户同意本公司无须对前述广告或促销讯息的内容负责,用户应自行审慎判断内容的正确性与商品或服务质量。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.4 <span style=\"font-family:宋体\">用户在使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台服务过程中,必须遵循以下原则:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">遵守中国有关的法律和法规;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">遵守所有与网络服务有关的网络协议、规定和程序;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得为任何非法目的而使用网络服务系统;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得以任何形式使用</span>OK<span style=\"font-family:宋体\">出行平台服务侵犯本公司的商业利益,包括并不限于发布非经本公司许可的商业广告;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得利用</span>OK<span style=\"font-family:宋体\">出行平台网络服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得利用本产品提供的网络服务上传、展示或传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息数据;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">不得利用</span>OK<span style=\"font-family:宋体\">出行平台服务系统进行任何不利于本公司的行为。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.5 <span style=\"font-family:宋体\">本公司针对某些特定的</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台网络服务的使用通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)作出的任何声明、通知、警示等内容视为本协议的一部分,用户如使用该网络服务,视为用户知悉并同意该等声明、通知、警示的内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.6 <span style=\"font-family:宋体\">本公司有权对用户使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台网络服务(包括但不限于免费或付费服务)的情况进行审查和监督</span><span style=\"font-family:Calibri\">(</span><span style=\"font-family:宋体\">包括但不限于对用户存储在本公司的内容进行审核</span><span style=\"font-family:Calibri\">)</span><span style=\"font-family:宋体\">,如用户在使用网络服务时违反任何上述规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用户使用网络服务的权利)以减轻用户不当行为造成的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.7 <span style=\"font-family:宋体\">用户作为乘客使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台时,应提供真实准确的出行信息,若用户多次无故爽约,我们有权在符合</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台规则的情况下,向用户收取爽约金,并有权在用户完成支付爽约金之前,暂停用户使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台全部或部分服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6. <span style=\"font-family:宋体\">授权及许可</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.1 <span style=\"font-family:宋体\">在您遵守本协议的前提下,我们授予您有限的、非排他性的、不可转让的如下许可:以将一份应用程序副本下载并安装到您拥有或控制的单台移动设备上,并仅出于您自己的个人用途运行此应用程序副本。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.2 <span style=\"font-family:宋体\">您不得:(</span><span style=\"font-family:Calibri\">1</span><span style=\"font-family:宋体\">)以任何方式许可、再许可、出售、转售、转让、分配、分发服务或应用程序,或以其他方式进行商业开发或提供给任何第三方;(</span><span style=\"font-family:Calibri\">2</span><span style=\"font-family:宋体\">)修改服务或应用程序,或者据此创建衍生产品;(</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">)创建指向服务的互联网</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">链接</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">,或在任何其他服务器或基于无线或互联网的设备上</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">设计</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">镜像</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">任何应用程序;(</span><span style=\"font-family:Calibri\">4</span><span style=\"font-family:宋体\">)反向工程或访问应用程序设计或构建竞争产品或服务、使用类似于服务或应用程序的设想或图形来设计或构建产品,或抄袭服务或应用程序的任何设想、特点、功能或图形,或(</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">)启动自动程序或脚本,每秒发送多个服务器请求或过度加重服务或应用程序负担或妨碍其工作和</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或性能的程序。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.3 <span style=\"font-family:宋体\">此外,您不得:(</span><span style=\"font-family:Calibri\">1</span><span style=\"font-family:宋体\">)发送垃圾邮件或者以其他形式违反适用法律的重复或不受欢迎的邮件;(</span><span style=\"font-family:Calibri\">2</span><span style=\"font-family:宋体\">)发送或存储侵权、淫秽、威胁、诽谤或者其他非法或侵权资料,包括危害儿童或触犯第三方隐私权的资料;(</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">)发送或存储包含软件病毒、蠕虫、木马或其他有害的计算机代码、文件、脚本、代理或程序的资料;(</span><span style=\"font-family:Calibri\">4</span><span style=\"font-family:宋体\">)阻挠或扰乱网站、应用程序、服务或其所含数据的完整性或性能;(</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">)尝试未经授权地访问网站、应用程序、服务或其相关系统或网络。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.4 <span style=\"font-family:宋体\">在法律允许的最大范围内,我们将有权调查并起诉任何上述违法违规行为。我们可参与并协助执法部门起诉违反本协议的用户。如果我们认为任何内容违反本协议或以其他方式危害网站、</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或其中的服务或应用程序,我们保留在不另行通知的情况下随时删除或禁用对这些內容的访问权限的权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7. <span style=\"font-family:宋体\">隐私保护</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.1 <span style=\"font-family:宋体\">保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向非本公司关联企业的第三方提供单个用户的注册数据及用户在使用网络服务时存储在</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的非公开内容,但下列情况除外:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">事先获得用户的明确授权;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">根据有关的法律法规要求;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">按照相关政府主管部门的要求;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">为维护社会公众的利益;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">为维护本公司的合法权益。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.2 OK<span style=\"font-family:宋体\">出行平台可能会与第三方合作向用户提供相关的网络服务,或与关联企业合作提供服务;在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册数据等提供给该第三方。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.3 <span style=\"font-family:宋体\">在不透露单个用户隐私数据的前提下,本公司有权对整个用户数据库进行分析并在合法范围内对用户数据库进行商业上的利用。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.4 OK<span style=\"font-family:宋体\">出行平台公布的法律声明及隐私政策是本协议的有效组成部分,且您同意我公司不定时的更新隐私政策并接受更新后的隐私政策。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8. <span style=\"font-family:宋体\">免责声明</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.1 <span style=\"font-family:宋体\">用户明确同意其使用本公司网络服务所存在的风险将完全由其自己承担;因其使用本公司网络服务而产生的一切后果也由其自己承担,本公司对用户不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.2 <span style=\"font-family:宋体\">本公司对网络服务不作任何类型的担保,包括但不限于网络服务的及时性、安全性、准确性,对在任何情况下因使用或不能使用本网络服务所产生的直接、间接、偶然、特殊及后续的损害及风险,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.3 <span style=\"font-family:宋体\">用户同意,对于本公司向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本公司无需承担任何责任:</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司向用户免费提供的各项网络服务;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司向用户赠送的任何产品或者服务;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司向用户附赠的各种产品或者服务(包括但不限於第</span>6.3<span style=\"font-family:宋体\">条的各项内容)。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.4 <span style=\"font-family:宋体\">用户同意,</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台所提供的功能受制于我国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何通过</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台服务直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关资料作为证据。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.5 <span style=\"font-family:宋体\">用户理解安全驾驶的重要性,且保证在任何可能引起安全隐患的情况下均不得使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台,并同意一切因使用</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台服务而导致的安全隐患和因此产生的纠纷和交通事故,均应由司机用户承担责任,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关资料作为证据。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.6 <span style=\"font-family:宋体\">用户同意并理解</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台提供本协议所列的服务,但无须对用户使用服务相关行为所造成的损失负担任何责任,例如乘客于乘车时丢失物品、司机因乘客个人行为造成车辆污损(如乘客在车上翻溅食物饮料、呕吐等)、或因司机或乘客对于运载时间估计错误所造成的损失(无论是否有先告知司机、乘客或本公司均同)。用户间应自行解决上述事项所发生的争议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.7 <span style=\"font-family:宋体\">我们使用第三方电子支付服务供应商(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">电子支付服务商</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">),将您的第三方电子支付账户关联到您在</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台的个人帐户。处理您使用服务相关的付款时,除了受到本协议的约束之外,还要受电子支付服务商及信用卡</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">借记卡发卡行的条款和政策的约束。我们对于电子支付服务商或银行发生的错误不承担责任。我们将获取与您使用服务相关的特定交易明细。在使用这些信息时我们将严格遵守相关法律法规和公司的各项政策。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">9. <span style=\"font-family:宋体\">赔偿</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.1 <span style=\"font-family:宋体\">您接受本协议并使用滴滴信息平台中的各应用程序及</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">或服务,即表示您同意:对于因以下事项产生的或与以下事项相关的任何及所有索赔、费用、赔偿、损失、债务和开销(包括法律费和诉讼费),您应该予以赔偿,使其免受损失。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您触犯或违反本协议中的任何条款或任何适用的法律法规(无论此处是否提及);</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您触犯任何第三方的任何权利,包括通过应用程序安排的租车</span>/<span style=\"font-family:宋体\">驾驶服务提供商;或</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">您使用或滥用应用程序或服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.2 <span style=\"font-family:宋体\">您通过</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行平台与出租车服务供应商达成的出租车服务协议,系由出租车服务供应商履行并承担相关责任。对于您享受出租车服务过程中产生的任何的责任,均由出租车服务供应商承担。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">10. <span style=\"font-family:宋体\">协议修改</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">10.1 <span style=\"font-family:宋体\">本公司有权随时修改本协议的任何条款,一旦本协议的内容发生变动,本公司将会直接在本公司网站上公布修改之后的协议内容,该公布行为视为本公司已经通知用户修改内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">10.2 <span style=\"font-family:宋体\">如果不同意本公司对本协议相关条款所做的修改,用户应当停止使用网络服务。如果用户继续使用网络服务,则视为用户接受本公司对本协议相关条款所做的修改。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">11. <span style=\"font-family:宋体\">通知送达</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">11.1 <span style=\"font-family:宋体\">本协议项下本公司对于用户所有的通知均可通过网页公告、电子邮件、手机短信或常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">11.2 <span style=\"font-family:宋体\">用户对于本公司的通知应当通过本公司对外正式公布的通信地址、传真号码、电子邮件地址等联系信息进行送达。该等通知以本公司实际收到日为送达日。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">12. <span style=\"font-family:宋体\">法律管辖</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">12.1 <span style=\"font-family:宋体\">本协议的订立、执行和解释及争议的解决均应适用中国法律并受中国法院管辖。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp;</span></p><p><span style=\";font-family:Calibri;font-size:16px\">12.2 <span style=\"font-family:宋体\">如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向本公司所在地的人民法院提起诉讼</span></span></p><p><br/></p>', 6, '1', '2020-08-24 17:25:25', NULL, '2020-08-27 10:00:33', 1);
+INSERT INTO `t_agreement` VALUES (4, 2, '<p><span style=\"font-family: 宋体;\">&nbsp; 保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在</span><span style=\"font-family: Calibri;\">“OK</span><span style=\"font-family: 宋体;\">出行</span><span style=\"font-family: Calibri;\">”</span><span style=\"font-family: 宋体;\">的非公开内容,但下列情况除外:</span><span style=\"font-family: Calibri;\">&nbsp;</span><br/></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">1.事先获得用户的明确授权;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">2.根据有关的法律法规要求;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">3.按照相关政府主管部门的要求;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">4.为维护社会公众的利益;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">5.为维护本公司的合法权益。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">&nbsp; “OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册资料等提供给该第三方。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">&nbsp; 在不透露单个用户隐私资料的前提下,本公司有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司</span></span><a href=\"http://www.kuaidadi.com/yszc_declaration.htm\"><span style=\"text-decoration:underline;\"><span style=\"font-family: &#39;Times New Roman&#39;;color: rgb(0, 0, 255)\"><span style=\"font-family:宋体\">《</span>OK<span style=\"font-family:宋体\">出行对外隐私政策》</span></span></span></a><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">作为本协议的有效组成部分,且您默许我公司不定时的更新隐私政策并接受。</span></span></p><p><br/></p>', 1, '1', '2020-08-24 17:26:25', NULL, '2020-08-27 10:03:17', 1);
+INSERT INTO `t_agreement` VALUES (5, 2, '<p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本《软件许可及服务协议》(以下简称《协议》)是服务使用人(以下简称</span>“<span style=\"font-family:宋体\">用户</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)与广西云森科技有限公司(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">本公司</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或者</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">我们</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)之间关于用户下载、安装、使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件( 包括但不限于</span><span style=\"font-family:Calibri\">PC</span><span style=\"font-family:宋体\">版及移动电话、</span><span style=\"font-family:Calibri\">PDA</span><span style=\"font-family:宋体\">版等各种无线手持终端版本的</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件);注册、使用、管理</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行帐号;以及使用本公司提供的相关服务所订立的协议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\">“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件由广西云森科技有限公司研发,并同意按照本协议的规定及其不时发布的操作规则提供基于互联网以及移动网的相关服务(以下称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">网络服务</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">) 。为获得网络服务,用户应认真阅读、充分理解本《协议》中各条款,特别涉及免除或者限制本公司责任的免责条款,对用户的权利限制的条款、约定争议解决方式、司法管辖、法律适用的条款。请您审慎阅读并选择勾选接受或不接受本《协议》(无民事行为能力人、限制民事行为能力人应在法定监护人陪同下阅读)。除非您接受本《协议》所有条款,否则您无权下载、安装或使用本软件及其相关服务。您的下载、安装、使用、帐号获取和登录等行为将视为对本《协议》的接受,并同意接受本《协议》各项条款的约束。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户注册成功后,本公司将给予每个用户一个用户帐号,该帐号归本公司所有,用户完成申请注册手续后,获得帐号的使用权。帐号使用权仅属于初始申请注册人,禁止赠与、借用、租用、转让或售卖。用户承担帐号与密码的保管责任,并就其帐号及密码项下之一切活动负全部责任。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">2.<span style=\"font-family:宋体\">知识产权声明</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">2.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件是由本公司开发。</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件的一切版权、商标权、专利权、商业秘密等知识产权,以及相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图表、色彩、界面设计、版面框架、有关数据、印刷材料、或电子文档等均受中华人民共和国著作权法、商标法、专利法、反不正当竞争法和相应的国际条约以及其他知识产权法律法规的保护,除涉及第三方授权的软件或技术外,本公司享有上述知识产权。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">未经本公司书面同意,用户不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何三方实施、利用、转让上述知识产权,本公司保留追究上述未经许可行为的权利。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">3.<span style=\"font-family:宋体\">授权范围</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">3.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户可以为非商业目的在单一台终端设备上安装、使用、显示、运行</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件。用户不得为商业运营目的安装、使用、运行</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件,不可以对本软件或者本软件运行过程中释放到任何计算机终端内存中的数据及本软件运行过程中客户端与服务器端的交互数据进行复制、更改、修改、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经授权的第三方工具</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">服务接入本软件和相关系统。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户不得未经本公司书面许可,将</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件安装在未经本公司明示许可的其他终端设备上,包括但不限于机顶盒、无线上网机、游戏机、电视机等。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">保留权利:未明示授权的其他一切权利仍归本公司所有,用户使用其他权利时须另外取得本公司的书面同意。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">4.<span style=\"font-family:宋体\">服务内容</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">4.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\">OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务的具体内容由本公司根据实际情况提供,主要包括乘客和司机用户的注册登录、乘客发布打车、司机接收订单、司机抢单、实时聊天、订单完成后评价及举报投诉、查询打车和载客的历史记录等。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\">OK<span style=\"font-family:宋体\">出行提供的部分网络服务为收费的网络服务,用户使用收费网络服务需要向本公司支付一定的费用。对于收费的网络服务,我们会尽量在用户使用之前给予用户明确的提示,只有用户根据提示确认其愿意支付相关费用,用户才能使用该等收费网络服务。如用户拒绝支付相关费用,则本公司有权不向用户提供该等收费网络服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户理解,本公司仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、其他与接入互联网或移动网有关的装置)及第三方收取的相关费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由用户自行负担。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">5.<span style=\"font-family:宋体\">服务变更、中断或终止</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">5.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">鉴于网络服务的特殊性,用户同意本公司有权随时变更、中断或终止部分或全部的网络服务(包括收费网络服务及免费网络服务)。如变更、中断或终止的网络服务属于免费网络服务,本公司无需通知用户,也无需对任何用户或任何第三方承担任何责任;如变更、中断或终止的网络服务属于收费网络服务,本公司应当在变更、中断或终止之前事先通知用户,并应向受影响的用户提供等值的替代性的收费网络服务,如用户不愿意接受替代性的收费网络服务,就该用户已经向本公司支付的服务费,本公司应当按照该用户实际使用相应收费网络服务的情况扣除相应服务费之后将剩余的服务费退还给该用户。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户理解,本公司需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,如因此类情况而造成收费网络服务在合理时间内的中断,本公司无需为此承担任何责任,且除特殊情况外应当事先进行通告。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如发生下列任何一种情形,本公司有权随时中断或终止向用户提供本协议项下的网络服务【该网络服务包括但不限于收费及免费网络服务(其中包括基于广告模式的免费网络服务)】而无需对用户或任何第三方承担任何责任:</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">5.3.1<span style=\"font-family:宋体\">用户提供的个人资料不真实;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">5.3.2<span style=\"font-family:宋体\">用户违反本协议中规定的使用规则;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">5.3.3<span style=\"font-family:宋体\">用户在使用收费网络服务时未按规定向本公司支付相应的服务费;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如用户注册的免费网络服务的帐号在任何连续</span>90<span style=\"font-family:宋体\">日内未实际使用,或者用户注册的收费网络服务的帐号在其订购的收费网络服务的服务期满之后连续</span><span style=\"font-family:Calibri\">180</span><span style=\"font-family:宋体\">日内未实际使用,则本公司有权删除该帐号并停止为该用户提供相关的网络服务。在执行账号删除之前,本公司会向该用户发送通知。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户注册的免费帐号昵称和姓名如存在违反法律法规或国家政策要求,或侵犯任何第三方合法权益的情况,本公司有权禁止用户继续使用该帐号、昵称。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">6.<span style=\"font-family:宋体\">使用规则</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">6.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户在申请使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务时,必须向本公司提供准确、真实的个人相关资料,且需要通过人工认证方能开始使用软件。如个人资料有任何变动,必须及时更新。更新后,本公司有权暂停该司机用户的使用权,同时需要人工再次认证方能继续使用软件。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户不应将其帐号、密码转让或出借予他人使用。如用户发现其帐号遭他人非法使用,应立即通知本公司。因黑客行为或用户的保管疏忽导致帐号、密码遭他人非法使用,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户同意本公司有权在提供网络服务过程中以各种方式投放各种商业性广告或其他任何类型的商业信息,并且,用户同意接受本公司通过电子邮件或其他方式向用户发送商品促销或其他相关商业信息。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户在使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务过程中,必须遵循以下原则:</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.1<span style=\"font-family:宋体\">遵守中国有关的法律和法规;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.2<span style=\"font-family:宋体\">遵守所有与网络服务有关的网络协议、规定和程序;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.3<span style=\"font-family:宋体\">不得为任何非法目的而使用网络服务系统;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.4<span style=\"font-family:宋体\">不得以任何形式使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务侵犯本公司的商业利益,包括并不限于发布非经本公司许可的商业广告;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.5<span style=\"font-family:宋体\">不得利用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.6<span style=\"font-family:宋体\">不得利用本产品提供的网络服务上传、展示或传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息资料;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.7<span style=\"font-family:宋体\">不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.8<span style=\"font-family:宋体\">不得利用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务系统进行任何不利于本公司的行为。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司针对某些特定的</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务的使用通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)作出的任何声明、通知、警示等内容视为本协议的一部分,用户如使用该网络服务,视为用户同意该等声明、通知、警示的内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司有权对用户使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务【该网络服务包括但不限于收费及免费网络服务(其中包括基于广告模式的免费网络服务)】的情况进行审查和监督</span><span style=\"font-family:Calibri\">(</span><span style=\"font-family:宋体\">包括但不限于对用户存储在本公司的内容进行审核</span><span style=\"font-family:Calibri\">)</span><span style=\"font-family:宋体\">,如用户在使用网络服务时违反任何上述规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用户使用网络服务的权利)以减轻用户不当行为造成的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">7.“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Times New Roman\">”</span><span style=\"font-family:宋体\">管理规定</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">7.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户注册</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">账号,注册内容、抢单的各种信息,应当为信息的真实性负责。同时用户应当使用真实身份信息,不得以虚假、冒用的居民身份信息、企业注册信息、组织机构代码信息进行注册。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户使用本软件期间,需保证本软件每周中至少有</span>5<span style=\"font-family:宋体\">天保持</span><span style=\"font-family:Calibri\">10</span><span style=\"font-family:宋体\">小时的在线时间。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户使用本软件期间,需确保每月成功抢单</span>20<span style=\"font-family:宋体\">单。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户使用本软件期间,需诚信经营,不允许出现放鸽子行为</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户在使用本软件期间,以不真实订单、违规刷单(以本公司软件后台的记录为准)骗取本公司奖励</span>,<span style=\"font-family:宋体\">本公司有权从司机用户的注册账户中扣除等额于不真实订单、违规刷单骗取的金额并有权对司机用户进行处罚。司机用户以不真实订单、违规刷单骗取本公司奖励情节严重的本公司将保留追究法律责任的权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.6</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">乘客提供证据证明其支付错误,并经本公司与司机用户沟通确认后,本公司可以协助司机用户直接从其账户中将乘客错付的车费返还给乘客。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.7</span></p><p><span style=\";font-family:Calibri;font-size:16px\">“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">将建立健全用户信息安全管理制度、落实技术安全防控措施。本公司将对用户使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务过程中涉及的用户隐私内容加以保护。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">8.<span style=\"font-family:宋体\">隐私保护</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">8.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">的非公开内容,但下列情况除外:</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.1<span style=\"font-family:宋体\">事先获得用户的明确授权;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.2<span style=\"font-family:宋体\">根据有关的法律法规要求;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.3<span style=\"font-family:宋体\">按照相关政府主管部门的要求;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.4<span style=\"font-family:宋体\">为维护社会公众的利益;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.5<span style=\"font-family:宋体\">为维护本公司的合法权益。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\">“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册资料等提供给该第三方。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">在不透露单个用户隐私资料的前提下,本公司有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司</span></span><a href=\"http://www.kuaidadi.com/yszc_declaration.htm\"><span style=\"text-decoration:underline;\"><span style=\"font-family: &#39;Times New Roman&#39;;color: rgb(0, 0, 255)\"><span style=\"font-family:宋体\">《</span>OK<span style=\"font-family:宋体\">出行对外隐私政策》</span></span></span></a><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">作为本协议的有效组成部分,且您默许我公司不定时的更新隐私政策并接受。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">9.<span style=\"font-family:宋体\">免责声明</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">9.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户明确同意其使用本公司网络服务所存在的风险将完全由其自己承担;因其使用本公司网络服务而产生的一切后果也由其自己承担,本公司对用户不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司对网络服务不作任何类型的担保,包括但不限于网络服务的及时性、安全性、准确性,对在任何情况下因使用或不能使用本网络服务所产生的直接、间接、偶然、特殊及后续的损害及风险,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">对于不可抗力、计算机病毒、黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何网络、技术、通信线路等原因造成的服务中断或不能满足用户要求的风险,由用户自行承担,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户同意,对于本公司向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本公司无需承担任何责任:</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">9.4.1<span style=\"font-family:宋体\">本公司向用户免费提供的各项网络服务;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">9.4.2<span style=\"font-family:宋体\">本公司向用户赠送的任何产品或者服务;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">9.4.3<span style=\"font-family:宋体\">本公司向收费网络服务用户附赠的各种产品或者服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户(特别是司机用户)同意,</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">所提供的功能受制于我国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何通过</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关数据作为证据。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.6</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户(特别是司机用户)理解安全驾驶的重要性,且保证在任何可能引起安全隐患的情况下均不得使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">,并同意一切因使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务而导致的安全隐患和因此产生的纠纷和交通事故,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关数据作为证据。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">10.<span style=\"font-family:宋体\">违约赔偿</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">10.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如因本公司违反有关法律、法规或本协议项下的任何条款而给用户造成损失,本公司同意承担由此造成的损害赔偿责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">10.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户同意保障和维护本公司及其他用户的利益,如因用户违反有关法律、法规或本协议项下的任何条款而给本公司或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">11.<span style=\"font-family:宋体\">协议修改</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">11.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司有权随时修改本协议的任何条款,一旦本协议的内容发生变动,本公司将会直接在本公司网站上公布修改之后的协议内容,该公布行为视为本公司已经通知用户修改内容。同时本公司也可通过其他适当方式向用户提示修改内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">11.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如果不同意本公司对本协议相关条款所做的修改,用户应当停止使用网络服务。如果用户继续使用网络服务,则视为用户接受本公司对本协议相关条款所做的修改。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">12.<span style=\"font-family:宋体\">通知送达</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">12.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议项下本公司对于用户所有的通知均可通过网页公告、电子邮件、手机短信或常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">12.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户对于本公司的通知应当通过本公司对外正式公布的通信地址、传真号码、电子邮件地址等联系信息进行送达。该等通知以本公司实际收到日为送达日。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">13.<span style=\"font-family:宋体\">法律管辖</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">13.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议的订立、执行和解释及争议的解决均应适用中国法律并受中国法院管辖。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">13.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向本公司所在地的人民法院提起诉讼。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">14.<span style=\"font-family:宋体\">其他规定</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">14.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议构成双方对本协议之约定事项及其他有关事宜的完整协议,除本协议规定的之外,未赋予本协议各方其他权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">14.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,本协议的其余条款仍应有效并且有约束力。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">14.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议中的标题仅为方便而设,在解释本协议时应被忽略。</span></span></p><p><br/></p>', 2, '1', '2020-08-24 17:26:28', NULL, '2020-08-27 10:01:59', 1);
+INSERT INTO `t_agreement` VALUES (6, 2, '<p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本《软件许可及服务协议》(以下简称《协议》)是服务使用人(以下简称</span>“<span style=\"font-family:宋体\">用户</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)与广西云森科技有限公司(以下简称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">本公司</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">或者</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">我们</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">)之间关于用户下载、安装、使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件( 包括但不限于</span><span style=\"font-family:Calibri\">PC</span><span style=\"font-family:宋体\">版及移动电话、</span><span style=\"font-family:Calibri\">PDA</span><span style=\"font-family:宋体\">版等各种无线手持终端版本的</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件);注册、使用、管理</span><span style=\"font-family:Calibri\">OK</span><span style=\"font-family:宋体\">出行帐号;以及使用本公司提供的相关服务所订立的协议。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\">“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件由广西云森科技有限公司研发,并同意按照本协议的规定及其不时发布的操作规则提供基于互联网以及移动网的相关服务(以下称</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">网络服务</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">) 。为获得网络服务,用户应认真阅读、充分理解本《协议》中各条款,特别涉及免除或者限制本公司责任的免责条款,对用户的权利限制的条款、约定争议解决方式、司法管辖、法律适用的条款。请您审慎阅读并选择勾选接受或不接受本《协议》(无民事行为能力人、限制民事行为能力人应在法定监护人陪同下阅读)。除非您接受本《协议》所有条款,否则您无权下载、安装或使用本软件及其相关服务。您的下载、安装、使用、帐号获取和登录等行为将视为对本《协议》的接受,并同意接受本《协议》各项条款的约束。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">1.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户注册成功后,本公司将给予每个用户一个用户帐号,该帐号归本公司所有,用户完成申请注册手续后,获得帐号的使用权。帐号使用权仅属于初始申请注册人,禁止赠与、借用、租用、转让或售卖。用户承担帐号与密码的保管责任,并就其帐号及密码项下之一切活动负全部责任。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">2.<span style=\"font-family:宋体\">知识产权声明</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">2.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件是由本公司开发。</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件的一切版权、商标权、专利权、商业秘密等知识产权,以及相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图表、色彩、界面设计、版面框架、有关数据、印刷材料、或电子文档等均受中华人民共和国著作权法、商标法、专利法、反不正当竞争法和相应的国际条约以及其他知识产权法律法规的保护,除涉及第三方授权的软件或技术外,本公司享有上述知识产权。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">2.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">未经本公司书面同意,用户不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何三方实施、利用、转让上述知识产权,本公司保留追究上述未经许可行为的权利。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">3.<span style=\"font-family:宋体\">授权范围</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">3.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户可以为非商业目的在单一台终端设备上安装、使用、显示、运行</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件。用户不得为商业运营目的安装、使用、运行</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件,不可以对本软件或者本软件运行过程中释放到任何计算机终端内存中的数据及本软件运行过程中客户端与服务器端的交互数据进行复制、更改、修改、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经授权的第三方工具</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">服务接入本软件和相关系统。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户不得未经本公司书面许可,将</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">软件安装在未经本公司明示许可的其他终端设备上,包括但不限于机顶盒、无线上网机、游戏机、电视机等。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">3.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">保留权利:未明示授权的其他一切权利仍归本公司所有,用户使用其他权利时须另外取得本公司的书面同意。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">4.<span style=\"font-family:宋体\">服务内容</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">4.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\">OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务的具体内容由本公司根据实际情况提供,主要包括乘客和司机用户的注册登录、乘客发布打车、司机接收订单、司机抢单、实时聊天、订单完成后评价及举报投诉、查询打车和载客的历史记录等。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\">OK<span style=\"font-family:宋体\">出行提供的部分网络服务为收费的网络服务,用户使用收费网络服务需要向本公司支付一定的费用。对于收费的网络服务,我们会尽量在用户使用之前给予用户明确的提示,只有用户根据提示确认其愿意支付相关费用,用户才能使用该等收费网络服务。如用户拒绝支付相关费用,则本公司有权不向用户提供该等收费网络服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">4.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户理解,本公司仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、其他与接入互联网或移动网有关的装置)及第三方收取的相关费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由用户自行负担。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">5.<span style=\"font-family:宋体\">服务变更、中断或终止</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">5.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">鉴于网络服务的特殊性,用户同意本公司有权随时变更、中断或终止部分或全部的网络服务(包括收费网络服务及免费网络服务)。如变更、中断或终止的网络服务属于免费网络服务,本公司无需通知用户,也无需对任何用户或任何第三方承担任何责任;如变更、中断或终止的网络服务属于收费网络服务,本公司应当在变更、中断或终止之前事先通知用户,并应向受影响的用户提供等值的替代性的收费网络服务,如用户不愿意接受替代性的收费网络服务,就该用户已经向本公司支付的服务费,本公司应当按照该用户实际使用相应收费网络服务的情况扣除相应服务费之后将剩余的服务费退还给该用户。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户理解,本公司需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,如因此类情况而造成收费网络服务在合理时间内的中断,本公司无需为此承担任何责任,且除特殊情况外应当事先进行通告。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如发生下列任何一种情形,本公司有权随时中断或终止向用户提供本协议项下的网络服务【该网络服务包括但不限于收费及免费网络服务(其中包括基于广告模式的免费网络服务)】而无需对用户或任何第三方承担任何责任:</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">5.3.1<span style=\"font-family:宋体\">用户提供的个人资料不真实;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">5.3.2<span style=\"font-family:宋体\">用户违反本协议中规定的使用规则;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">5.3.3<span style=\"font-family:宋体\">用户在使用收费网络服务时未按规定向本公司支付相应的服务费;</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如用户注册的免费网络服务的帐号在任何连续</span>90<span style=\"font-family:宋体\">日内未实际使用,或者用户注册的收费网络服务的帐号在其订购的收费网络服务的服务期满之后连续</span><span style=\"font-family:Calibri\">180</span><span style=\"font-family:宋体\">日内未实际使用,则本公司有权删除该帐号并停止为该用户提供相关的网络服务。在执行账号删除之前,本公司会向该用户发送通知。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">5.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户注册的免费帐号昵称和姓名如存在违反法律法规或国家政策要求,或侵犯任何第三方合法权益的情况,本公司有权禁止用户继续使用该帐号、昵称。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">6.<span style=\"font-family:宋体\">使用规则</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">6.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户在申请使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务时,必须向本公司提供准确、真实的个人相关资料,且需要通过人工认证方能开始使用软件。如个人资料有任何变动,必须及时更新。更新后,本公司有权暂停该司机用户的使用权,同时需要人工再次认证方能继续使用软件。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户不应将其帐号、密码转让或出借予他人使用。如用户发现其帐号遭他人非法使用,应立即通知本公司。因黑客行为或用户的保管疏忽导致帐号、密码遭他人非法使用,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户同意本公司有权在提供网络服务过程中以各种方式投放各种商业性广告或其他任何类型的商业信息,并且,用户同意接受本公司通过电子邮件或其他方式向用户发送商品促销或其他相关商业信息。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户在使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务过程中,必须遵循以下原则:</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.1<span style=\"font-family:宋体\">遵守中国有关的法律和法规;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.2<span style=\"font-family:宋体\">遵守所有与网络服务有关的网络协议、规定和程序;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.3<span style=\"font-family:宋体\">不得为任何非法目的而使用网络服务系统;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.4<span style=\"font-family:宋体\">不得以任何形式使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务侵犯本公司的商业利益,包括并不限于发布非经本公司许可的商业广告;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.5<span style=\"font-family:宋体\">不得利用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.6<span style=\"font-family:宋体\">不得利用本产品提供的网络服务上传、展示或传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息资料;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.7<span style=\"font-family:宋体\">不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">6.4.8<span style=\"font-family:宋体\">不得利用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务系统进行任何不利于本公司的行为。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司针对某些特定的</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务的使用通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)作出的任何声明、通知、警示等内容视为本协议的一部分,用户如使用该网络服务,视为用户同意该等声明、通知、警示的内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">6.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司有权对用户使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务【该网络服务包括但不限于收费及免费网络服务(其中包括基于广告模式的免费网络服务)】的情况进行审查和监督</span><span style=\"font-family:Calibri\">(</span><span style=\"font-family:宋体\">包括但不限于对用户存储在本公司的内容进行审核</span><span style=\"font-family:Calibri\">)</span><span style=\"font-family:宋体\">,如用户在使用网络服务时违反任何上述规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用户使用网络服务的权利)以减轻用户不当行为造成的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">7.“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Times New Roman\">”</span><span style=\"font-family:宋体\">管理规定</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">7.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户注册</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">账号,注册内容、抢单的各种信息,应当为信息的真实性负责。同时用户应当使用真实身份信息,不得以虚假、冒用的居民身份信息、企业注册信息、组织机构代码信息进行注册。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户使用本软件期间,需保证本软件每周中至少有</span>5<span style=\"font-family:宋体\">天保持</span><span style=\"font-family:Calibri\">10</span><span style=\"font-family:宋体\">小时的在线时间。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户使用本软件期间,需确保每月成功抢单</span>20<span style=\"font-family:宋体\">单。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户使用本软件期间,需诚信经营,不允许出现放鸽子行为</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">司机用户在使用本软件期间,以不真实订单、违规刷单(以本公司软件后台的记录为准)骗取本公司奖励</span>,<span style=\"font-family:宋体\">本公司有权从司机用户的注册账户中扣除等额于不真实订单、违规刷单骗取的金额并有权对司机用户进行处罚。司机用户以不真实订单、违规刷单骗取本公司奖励情节严重的本公司将保留追究法律责任的权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.6</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">乘客提供证据证明其支付错误,并经本公司与司机用户沟通确认后,本公司可以协助司机用户直接从其账户中将乘客错付的车费返还给乘客。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">7.7</span></p><p><span style=\";font-family:Calibri;font-size:16px\">“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">将建立健全用户信息安全管理制度、落实技术安全防控措施。本公司将对用户使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网络服务过程中涉及的用户隐私内容加以保护。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">8.<span style=\"font-family:宋体\">隐私保护</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">8.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">的非公开内容,但下列情况除外:</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.1<span style=\"font-family:宋体\">事先获得用户的明确授权;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.2<span style=\"font-family:宋体\">根据有关的法律法规要求;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.3<span style=\"font-family:宋体\">按照相关政府主管部门的要求;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.4<span style=\"font-family:宋体\">为维护社会公众的利益;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">8.1.5<span style=\"font-family:宋体\">为维护本公司的合法权益。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\">“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册资料等提供给该第三方。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">8.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">在不透露单个用户隐私资料的前提下,本公司有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司</span></span><a href=\"http://www.kuaidadi.com/yszc_declaration.htm\"><span style=\"text-decoration:underline;\"><span style=\"font-family: &#39;Times New Roman&#39;;color: rgb(0, 0, 255)\"><span style=\"font-family:宋体\">《</span>OK<span style=\"font-family:宋体\">出行对外隐私政策》</span></span></span></a><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">作为本协议的有效组成部分,且您默许我公司不定时的更新隐私政策并接受。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">9.<span style=\"font-family:宋体\">免责声明</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">9.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户明确同意其使用本公司网络服务所存在的风险将完全由其自己承担;因其使用本公司网络服务而产生的一切后果也由其自己承担,本公司对用户不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司对网络服务不作任何类型的担保,包括但不限于网络服务的及时性、安全性、准确性,对在任何情况下因使用或不能使用本网络服务所产生的直接、间接、偶然、特殊及后续的损害及风险,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">对于不可抗力、计算机病毒、黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何网络、技术、通信线路等原因造成的服务中断或不能满足用户要求的风险,由用户自行承担,本公司不承担任何责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.4</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户同意,对于本公司向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本公司无需承担任何责任:</span>&nbsp;</span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">9.4.1<span style=\"font-family:宋体\">本公司向用户免费提供的各项网络服务;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">9.4.2<span style=\"font-family:宋体\">本公司向用户赠送的任何产品或者服务;</span><span style=\"font-family:Calibri\">&nbsp;</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">9.4.3<span style=\"font-family:宋体\">本公司向收费网络服务用户附赠的各种产品或者服务。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.5</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户(特别是司机用户)同意,</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">所提供的功能受制于我国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何通过</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关数据作为证据。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">9.6</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户(特别是司机用户)理解安全驾驶的重要性,且保证在任何可能引起安全隐患的情况下均不得使用</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">,并同意一切因使用</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">服务而导致的安全隐患和因此产生的纠纷和交通事故,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关数据作为证据。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">10.<span style=\"font-family:宋体\">违约赔偿</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">10.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如因本公司违反有关法律、法规或本协议项下的任何条款而给用户造成损失,本公司同意承担由此造成的损害赔偿责任。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">10.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户同意保障和维护本公司及其他用户的利益,如因用户违反有关法律、法规或本协议项下的任何条款而给本公司或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">11.<span style=\"font-family:宋体\">协议修改</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">11.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本公司有权随时修改本协议的任何条款,一旦本协议的内容发生变动,本公司将会直接在本公司网站上公布修改之后的协议内容,该公布行为视为本公司已经通知用户修改内容。同时本公司也可通过其他适当方式向用户提示修改内容。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">11.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如果不同意本公司对本协议相关条款所做的修改,用户应当停止使用网络服务。如果用户继续使用网络服务,则视为用户接受本公司对本协议相关条款所做的修改。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">12.<span style=\"font-family:宋体\">通知送达</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">12.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议项下本公司对于用户所有的通知均可通过网页公告、电子邮件、手机短信或常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">12.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">用户对于本公司的通知应当通过本公司对外正式公布的通信地址、传真号码、电子邮件地址等联系信息进行送达。该等通知以本公司实际收到日为送达日。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">13.<span style=\"font-family:宋体\">法律管辖</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">13.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议的订立、执行和解释及争议的解决均应适用中国法律并受中国法院管辖。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">13.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向本公司所在地的人民法院提起诉讼。</span></span></p><h2><strong><span style=\"font-family: &#39;Times New Roman&#39;\">14.<span style=\"font-family:宋体\">其他规定</span></span></strong></h2><p><span style=\";font-family:Calibri;font-size:16px\">14.1</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议构成双方对本协议之约定事项及其他有关事宜的完整协议,除本协议规定的之外,未赋予本协议各方其他权利。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">14.2</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,本协议的其余条款仍应有效并且有约束力。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\">14.3</span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">本协议中的标题仅为方便而设,在解释本协议时应被忽略。</span></span></p><p><br/></p>', 6, '1', '2020-08-24 17:26:31', NULL, '2020-08-27 10:01:47', 1);
+INSERT INTO `t_agreement` VALUES (7, NULL, '<p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">取消订单:成交后超</span>3<span style=\"font-family:宋体\">分钟,司机已到达上车地点;处罚</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">元,最高</span><span style=\"font-family:Calibri\">10</span><span style=\"font-family:宋体\">元。</span></span></p><p><br/></p>', 7, '1', '2020-08-24 17:29:14', NULL, '2020-08-27 10:04:51', 1);
+INSERT INTO `t_agreement` VALUES (8, NULL, '<p><span style=\";font-family:Calibri;font-size:16px\">1<span style=\"font-family:宋体\">、</span><span style=\"font-family:Calibri\">&nbsp;&nbsp; &nbsp;</span><span style=\"font-family:宋体\">永久封禁:</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">&nbsp; &nbsp; &nbsp; 1.1&nbsp;&nbsp; &nbsp;<span style=\"font-family:宋体\">拒付车费:订单完成后,拒绝支付</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">少付订单费用;永久停用。</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">&nbsp; &nbsp; &nbsp; 1.2&nbsp;&nbsp; &nbsp;<span style=\"font-family:宋体\">扰乱平台:非真实性出发地</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">目的地(无效字符、广告、测试、攻击性</span><span style=\"font-family:Calibri\">/</span><span style=\"font-family:宋体\">非攻击性语音文字等),出发地与目的地相同或相近等叫车行为;永久停用。</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">&nbsp; &nbsp; &nbsp; 1.3&nbsp;&nbsp; &nbsp;<span style=\"font-family:宋体\">虚假交易:无用车需求或已约到车,以获得订单、积分、奖励或帮助司机获取相关利益的叫车行为;永久停用。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">2<span style=\"font-family:宋体\">、</span><span style=\"font-family:Calibri\">&nbsp;&nbsp; &nbsp;</span><span style=\"font-family:宋体\">停用:</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">&nbsp; &nbsp; &nbsp; 2.1<span style=\"font-family:宋体\">恶意差评:订单完成后,为达到一已私利,故意给司机差评行为;禁用</span><span style=\"font-family:Calibri\">7</span><span style=\"font-family:宋体\">天。</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">&nbsp; &nbsp; &nbsp; 2.2<span style=\"font-family:宋体\">爽约:</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">实时订单</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">接单后,</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">预约订单</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">出发时间前,未与司机协商一致单方面取消订单行为;近十次订单中,</span><span style=\"font-family:Calibri\">1</span><span style=\"font-family:宋体\">次提醒,</span><span style=\"font-family:Calibri\">2</span><span style=\"font-family:宋体\">次禁用</span><span style=\"font-family:Calibri\">1</span><span style=\"font-family:宋体\">天,</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">次禁用</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">天,</span><span style=\"font-family:Calibri\">4</span><span style=\"font-family:宋体\">次禁用</span><span style=\"font-family:Calibri\">30</span><span style=\"font-family:宋体\">天,</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">次永久禁用。</span></span><span style=\";font-family:Calibri;font-size:16px\"><br/></span><span style=\";font-family:Calibri;font-size:16px\">&nbsp; &nbsp; &nbsp; 2.3<span style=\"font-family:宋体\">:谎报地点</span><span style=\"font-family:Calibri\">&nbsp;&nbsp; &nbsp;</span><span style=\"font-family:宋体\">乘客上车地点或下车地点与订单中的出发地与目的地不一致且相距较远、未与司机协商一致单方面更改路线行为;禁用</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">天至永久停用。</span></span></p><p><span style=\";font-family:Calibri;font-size:14px\"><br/></span><span style=\";font-family:Calibri;font-size:14px\">3<span style=\"font-family:宋体\">、罚款:</span></span><span style=\";font-family:Calibri;font-size:14px\"><br/></span><span style=\";font-family:Calibri;font-size:14px\">&nbsp; &nbsp; &nbsp; &nbsp; 3.1<span style=\"font-family:宋体\">:取消订单:成交后超</span><span style=\"font-family:Calibri\">3</span><span style=\"font-family:宋体\">分钟,司机已到达上车地点;处罚</span><span style=\"font-family:Calibri\">5</span><span style=\"font-family:宋体\">元,最高</span><span style=\"font-family:Calibri\">10</span><span style=\"font-family:宋体\">元。</span></span></p><p><br/></p>', 3, '1', '2020-08-24 17:29:14', NULL, '2020-08-27 10:05:06', 1);
+INSERT INTO `t_agreement` VALUES (9, NULL, '法律条款', 4, '1', '2020-08-24 17:29:14', NULL, NULL, NULL);
+INSERT INTO `t_agreement` VALUES (10, NULL, '<p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">&nbsp; &nbsp;广西云森科技公司成立于</span>2015<span style=\"font-family:宋体\">年</span><span style=\"font-family:Calibri\">9</span><span style=\"font-family:宋体\">月</span><span style=\"font-family:Calibri\">18</span><span style=\"font-family:宋体\">日,注册资本</span><span style=\"font-family:Calibri\">1000</span><span style=\"font-family:宋体\">万元,总部位于柳州市航银路</span><span style=\"font-family:Calibri\">8</span><span style=\"font-family:宋体\">号。公司由翁氏八达物流发起设立。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">公司聚集了一批互联网精英及物流界资深专家,为响应国家提出的互联网</span>+<span style=\"font-family:宋体\">高效物流战略,解决城市配送最后一公里问题,公司自主研发一套并具有自主知识产权的</span><span style=\"font-family:Calibri\">“OK</span><span style=\"font-family:宋体\">快送配送平台</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">,旨在整合利用社会碎片化资源,以众包服务模式为广大商家、老百姓提供</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">高效、经济、简便</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">的互联网物流服务,平台具有独创的智能路线规划、可视化追踪技术、自动语音报告及无需人工干预的自动化交易功能。</span></span></p><p><span style=\";font-family:Calibri;font-size:16px\"><span style=\"font-family:宋体\">公司同时研发了</span>“OK<span style=\"font-family:宋体\">出行</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">网约车平台,按 </span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">给您一个移动的家</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">理念打造,坚持</span><span style=\"font-family:Calibri\">“</span><span style=\"font-family:宋体\">安全、经济、便捷、舒适</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">的经营方针为大众提供更好的出行服务。系统可实现一键约车、便捷支付、一键求助、全程监控等功能,方便老年人出行同时提供更多安全保障。</span></span></p><p><span style=\";font-family:Calibri;font-size:14px\"><span style=\"font-family:宋体\">公司目前</span>“<span style=\"font-family:宋体\">立足广西,面向全国</span><span style=\"font-family:Calibri\">”</span><span style=\"font-family:宋体\">,充分发挥自身行业优势,加上互联网</span><span style=\"font-family:Calibri\">+</span><span style=\"font-family:宋体\">不可逆的潮流,用新模式、新思维改造传统产业,未来三年公司业务将遍布全国,计划投资将达三个亿,五年内实现上市目标</span></span></p><p><br/></p>', 5, '1', '2020-08-24 17:29:14', NULL, '2020-08-31 10:24:43', 1);
+INSERT INTO `t_agreement` VALUES (11, NULL, '充值领券规则设置', 8, '1', '2020-08-24 17:29:14', NULL, NULL, NULL);
+INSERT INTO `t_agreement` VALUES (12, NULL, '.特别提示1.1本《软件许可及服务协议》(以下简称《协议》)是服务使用人(以下简称“用户”)与广西云森科技有限公司(以下简称“本公司”或者“我们”)之间关于用户下载、安装、使用“OK出行”软件( 包括但不限于PC版及移动电话、PDA版等各种无线手持终端版本的“OK出行”软件);注册、使用、管理OK出行帐号;以及使用本公司提供的相关服务所订立的协议。1.2“OK出行”软件由广西云森科技有限公司研发,并同意按照本协议的规定及其不时发布的操作规则提供基于互联网以及移动网的相关服务(以下称“网络服务”) 。为获得网络服务,用户应认真阅读、充分理解本《协议》中各条款,特别涉及免除或者限制本公司责任的免责条款,对用户的权利限制的条款、约定争议解决方式、司法管辖、法律适用的条款。请您审慎阅读并选择勾选接受或不接受本《协议》(无民事行为能力人、限制民事行为能力人应在法定监护人陪同下阅读)。除非您接受本《协议》所有条款,否则您无权下载、安装或使用本软件及其相关服务。您的下载、安装、使用、帐号获取和登录等行为将视为对本《协议》的接受,并同意接受本《协议》各项条款的约束。1.3用户注册成功后,本公司将给予每个用户一个用户帐号,该帐号归本公司所有,用户完成申请注册手续后,获得帐号的使用权。帐号使用权仅属于初始申请注册人,禁止赠与、借用、租用、转让或售卖。用户承担帐号与密码的保管责任,并就其帐号及密码项下之一切活动负全部责任。2.知识产权声明2.1本“OK出行”软件是由本公司开发。“OK出行”软件的一切版权、商标权、专利权、商业秘密等知识产权,以及相关的所有信息内容,包括但不限于:文字表述及其组合、图标、图饰、图表、色彩、界面设计、版面框架、有关数据、印刷材料、或电子文档等均受中华人民共和国著作权法、商标法、专利法、反不正当竞争法和相应的国际条约以及其他知识产权法律法规的保护,除涉及第三方授权的软件或技术外,本公司享有上述知识产权。2.2未经本公司书面同意,用户不得为任何营利性或非营利性的目的自行实施、利用、转让或许可任何三方实施、利用、转让上述知识产权,本公司保留追究上述未经许可行为的权利。3.授权范围3.1用户可以为非商业目的在单一台终端设备上安装、使用、显示、运行“OK出行”软件。用户不得为商业运营目的安装、使用、运行“OK出行”软件,不可以对本软件或者本软件运行过程中释放到任何计算机终端内存中的数据及本软件运行过程中客户端与服务器端的交互数据进行复制、更改、修改、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经授权的第三方工具/服务接入本软件和相关系统。3.2用户不得未经本公司书面许可,将“OK出行”软件安装在未经本公司明示许可的其他终端设备上,包括但不限于机顶盒、无线上网机、游戏机、电视机等。3.3保留权利:未明示授权的其他一切权利仍归本公司所有,用户使用其他权利时须另外取得本公司的书面同意。4.服务内容4.1OK出行”服务的具体内容由本公司根据实际情况提供,主要包括乘客和司机用户的注册登录、乘客发布打车、司机接收订单、司机抢单、实时聊天、订单完成后评价及举报投诉、查询打车和载客的历史记录等。4.2OK出行提供的部分网络服务为收费的网络服务,用户使用收费网络服务需要向本公司支付一定的费用。对于收费的网络服务,我们会尽量在用户使用之前给予用户明确的提示,只有用户根据提示确认其愿意支付相关费用,用户才能使用该等收费网络服务。如用户拒绝支付相关费用,则本公司有权不向用户提供该等收费网络服务。4.3用户理解,本公司仅提供相关的网络服务,除此之外与相关网络服务有关的设备(如个人电脑、手机、其他与接入互联网或移动网有关的装置)及第三方收取的相关费用(如为接入互联网而支付的电话费及上网费、为使用移动网而支付的手机费)均应由用户自行负担。5.服务变更、中断或终止5.1鉴于网络服务的特殊性,用户同意本公司有权随时变更、中断或终止部分或全部的网络服务(包括收费网络服务及免费网络服务)。如变更、中断或终止的网络服务属于免费网络服务,本公司无需通知用户,也无需对任何用户或任何第三方承担任何责任;如变更、中断或终止的网络服务属于收费网络服务,本公司应当在变更、中断或终止之前事先通知用户,并应向受影响的用户提供等值的替代性的收费网络服务,如用户不愿意接受替代性的收费网络服务,就该用户已经向本公司支付的服务费,本公司应当按照该用户实际使用相应收费网络服务的情况扣除相应服务费之后将剩余的服务费退还给该用户。5.2用户理解,本公司需要定期或不定期地对提供网络服务的平台(如互联网网站、移动网络等)或相关的设备进行检修或者维护,如因此类情况而造成收费网络服务在合理时间内的中断,本公司无需为此承担任何责任,且除特殊情况外应当事先进行通告。5.3如发生下列任何一种情形,本公司有权随时中断或终止向用户提供本协议项下的网络服务【该网络服务包括但不限于收费及免费网络服务(其中包括基于广告模式的免费网络服务)】而无需对用户或任何第三方承担任何责任: 5.3.1用户提供的个人资料不真实; 5.3.2用户违反本协议中规定的使用规则; 5.3.3用户在使用收费网络服务时未按规定向本公司支付相应的服务费;5.4如用户注册的免费网络服务的帐号在任何连续90日内未实际使用,或者用户注册的收费网络服务的帐号在其订购的收费网络服务的服务期满之后连续180日内未实际使用,则本公司有权删除该帐号并停止为该用户提供相关的网络服务。在执行账号删除之前,本公司会向该用户发送通知。5.5用户注册的免费帐号昵称和姓名如存在违反法律法规或国家政策要求,或侵犯任何第三方合法权益的情况,本公司有权禁止用户继续使用该帐号、昵称。6.使用规则6.1司机用户在申请使用“OK出行”网络服务时,必须向本公司提供准确、真实的个人相关资料,且需要通过人工认证方能开始使用软件。如个人资料有任何变动,必须及时更新。更新后,本公司有权暂停该司机用户的使用权,同时需要人工再次认证方能继续使用软件。6.2用户不应将其帐号、密码转让或出借予他人使用。如用户发现其帐号遭他人非法使用,应立即通知本公司。因黑客行为或用户的保管疏忽导致帐号、密码遭他人非法使用,本公司不承担任何责任。6.3用户同意本公司有权在提供网络服务过程中以各种方式投放各种商业性广告或其他任何类型的商业信息,并且,用户同意接受本公司通过电子邮件或其他方式向用户发送商品促销或其他相关商业信息。6.4用户在使用“OK出行”服务过程中,必须遵循以下原则: 6.4.1遵守中国有关的法律和法规; 6.4.2遵守所有与网络服务有关的网络协议、规定和程序; 6.4.3不得为任何非法目的而使用网络服务系统; 6.4.4不得以任何形式使用“OK出行”服务侵犯本公司的商业利益,包括并不限于发布非经本公司许可的商业广告; 6.4.5不得利用“OK出行”网络服务系统进行任何可能对互联网或移动网正常运转造成不利影响的行为 6.4.6不得利用本产品提供的网络服务上传、展示或传播任何虚假的、骚扰性的、中伤他人的、辱骂性的、恐吓性的、庸俗淫秽的或其他任何非法的信息资料; 6.4.7不得侵犯其他任何第三方的专利权、著作权、商标权、名誉权或其他任何合法权益; 6.4.8不得利用“OK出行”服务系统进行任何不利于本公司的行为。本公司针对某些特定的“OK出行”网络服务的使用通过各种方式(包括但不限于网页公告、电子邮件、短信提醒等)作出的任何声明、通知、警示等内容视为本协议的一部分,用户如使用该网络服务,视为用户同意该等声明、通知、警示的内容。6.5本公司有权对用户使用“OK出行”网络服务【该网络服务包括但不限于收费及免费网络服务(其中包括基于广告模式的免费网络服务)】的情况进行审查和监督(包括但不限于对用户存储在本公司的内容进行审核),如用户在使用网络服务时违反任何上述规定,本公司有权要求用户改正或直接采取一切必要的措施(包括但不限于更改或删除用户张贴的内容等、暂停或终止用户使用网络服务的权利)以减轻用户不当行为造成的影响。因用户自身行为需向第三人承担责任的,由用户自行承担,与本公司无关。7.“OK出行”管理规定7.1用户注册“OK出行”账号,注册内容、抢单的各种信息,应当为信息的真实性负责。同时用户应当使用真实身份信息,不得以虚假、冒用的居民身份信息、企业注册信息、组织机构代码信息进行注册。7.2司机用户使用本软件期间,需保证本软件每周中至少有5天保持10小时的在线时间。7.3司机用户使用本软件期间,需确保每月成功抢单20单。7.4司机用户使用本软件期间,需诚信经营,不允许出现放鸽子行为7.5司机用户在使用本软件期间,以不真实订单、违规刷单(以本公司软件后台的记录为准)骗取本公司奖励,本公司有权从司机用户的注册账户中扣除等额于不真实订单、违规刷单骗取的金额并有权对司机用户进行处罚。司机用户以不真实订单、违规刷单骗取本公司奖励情节严重的本公司将保留追究法律责任的权利。7.6乘客提供证据证明其支付错误,并经本公司与司机用户沟通确认后,本公司可以协助司机用户直接从其账户中将乘客错付的车费返还给乘客。7.7“OK出行”将建立健全用户信息安全管理制度、落实技术安全防控措施。本公司将对用户使用“OK出行”网络服务过程中涉及的用户隐私内容加以保护。8.隐私保护8.1保护用户隐私是本公司的一项基本政策,本公司保证不对外公开或向第三方提供单个用户的注册资料及用户在使用网络服务时存储在“OK出行”的非公开内容,但下列情况除外: 8.1.1事先获得用户的明确授权; 8.1.2根据有关的法律法规要求; 8.1.3按照相关政府主管部门的要求; 8.1.4为维护社会公众的利益; 8.1.5为维护本公司的合法权益。8.2“OK出行”可能会与第三方合作向用户提供相关的网络服务,在此情况下,如该第三方同意承担与本公司同等的保护用户隐私的责任,则本公司有权将用户的注册资料等提供给该第三方。8.3在不透露单个用户隐私资料的前提下,本公司有权对整个用户数据库进行分析并对用户数据库进行商业上的利用。 本公司《OK出行对外隐私政策》作为本协议的有效组成部分,且您默许我公司不定时的更新隐私政策并接受。9.免责声明9.1用户明确同意其使用本公司网络服务所存在的风险将完全由其自己承担;因其使用本公司网络服务而产生的一切后果也由其自己承担,本公司对用户不承担任何责任。9.2本公司对网络服务不作任何类型的担保,包括但不限于网络服务的及时性、安全性、准确性,对在任何情况下因使用或不能使用本网络服务所产生的直接、间接、偶然、特殊及后续的损害及风险,本公司不承担任何责任。9.3对于不可抗力、计算机病毒、黑客攻击、系统不稳定、用户所在位置、用户关机以及其他任何网络、技术、通信线路等原因造成的服务中断或不能满足用户要求的风险,由用户自行承担,本公司不承担任何责任。9.4用户同意,对于本公司向用户提供的下列产品或者服务的质量缺陷本身及其引发的任何损失,本公司无需承担任何责任: 9.4.1本公司向用户免费提供的各项网络服务; 9.4.2本公司向用户赠送的任何产品或者服务; 9.4.3本公司向收费网络服务用户附赠的各种产品或者服务。9.5用户(特别是司机用户)同意,“OK出行”所提供的功能受制于我国的交通法律法规和管理条例,即与本产品的功能和条例发生冲突时,应以各地的交通法律法规和管理条例为最高准则。任何通过“OK出行”服务直接或间接违反当地交通法律法规和管理条例的行为,该后果应由用户承担。如有举证需要,本公司可以向有关部门提供相关数据作为证据。9.6用户(特别是司机用户)理解安全驾驶的重要性,且保证在任何可能引起安全隐患的情况下均不得使用“OK出行”,并同意一切因使用“OK出行”服务而导致的安全隐患和因此产生的纠纷和交通事故,本公司概不负责赔偿。如有举证需要,本公司可以向有关部门提供相关数据作为证据。10.违约赔偿10.1如因本公司违反有关法律、法规或本协议项下的任何条款而给用户造成损失,本公司同意承担由此造成的损害赔偿责任。10.2用户同意保障和维护本公司及其他用户的利益,如因用户违反有关法律、法规或本协议项下的任何条款而给本公司或任何其他第三人造成损失,用户同意承担由此造成的损害赔偿责任。11.协议修改11.1本公司有权随时修改本协议的任何条款,一旦本协议的内容发生变动,本公司将会直接在本公司网站上公布修改之后的协议内容,该公布行为视为本公司已经通知用户修改内容。同时本公司也可通过其他适当方式向用户提示修改内容。11.2如果不同意本公司对本协议相关条款所做的修改,用户应当停止使用网络服务。如果用户继续使用网络服务,则视为用户接受本公司对本协议相关条款所做的修改。12.通知送达12.1本协议项下本公司对于用户所有的通知均可通过网页公告、电子邮件、手机短信或常规的信件传送等方式进行;该等通知于发送之日视为已送达收件人。12.2用户对于本公司的通知应当通过本公司对外正式公布的通信地址、传真号码、电子邮件地址等联系信息进行送达。该等通知以本公司实际收到日为送达日。13.法律管辖13.1本协议的订立、执行和解释及争议的解决均应适用中国法律并受中国法院管辖。13.2如双方就本协议内容或其执行发生任何争议,双方应尽量友好协商解决;协商不成时,任何一方均可向本公司所在地的人民法院提起诉讼。14.其他规定14.1本协议构成双方对本协议之约定事项及其他有关事宜的完整协议,除本协议规定的之外,未赋予本协议各方其他权利。14.2如本协议中的任何条款无论因何种原因完全或部分无效或不具有执行力,本协议的其余条款仍应有效并且有约束力。14.3本协议中的标题仅为方便而设,在解释本协议时应被忽略。', 9, '1', '2020-08-24 17:29:14', NULL, '2020-08-27 10:06:50', 1);
+INSERT INTO `t_agreement` VALUES (13, NULL, '改派说明', 10, '1', '2020-08-24 17:29:14', NULL, NULL, NULL);
+INSERT INTO `t_agreement` VALUES (14, NULL, '<p>跨城出行乘车须知111</p>', 11, '1', '2020-09-23 16:30:14', NULL, '2020-09-23 16:30:36', 1);
+
+-- ----------------------------
+-- Table structure for t_bank_card
+-- ----------------------------
+DROP TABLE IF EXISTS `t_bank_card`;
+CREATE TABLE `t_bank_card`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `bank` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '所属银行全称',
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '开户人姓名',
+  `code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '银行卡号',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '银行卡' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_bank_card
+-- ----------------------------
+INSERT INTO `t_bank_card` VALUES (1, '中国工商银行', '快去', '49991619164648464946491', 906, '2020-08-20 18:58:38');
+INSERT INTO `t_bank_card` VALUES (2, '中国工商银行', '覃兰柳', '6222032105004726694', 830, '2020-09-05 18:06:11');
+INSERT INTO `t_bank_card` VALUES (3, '中国工商银行', '郭正文', '6222032105002075441', 140, '2020-09-10 14:30:22');
+
+-- ----------------------------
+-- Table structure for t_car
+-- ----------------------------
+DROP TABLE IF EXISTS `t_car`;
+CREATE TABLE `t_car`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `isPlatCar` smallint(1) NULL DEFAULT NULL COMMENT '是否是平台车辆(1=是,2=否)',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `franchiseeId` int(11) NULL DEFAULT NULL COMMENT '加盟商id',
+  `carColor` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆颜色',
+  `carModelId` int(11) NULL DEFAULT NULL COMMENT '车型id',
+  `carBrandId` int(11) NULL DEFAULT NULL COMMENT '车辆品牌ID',
+  `carLicensePlate` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车牌号',
+  `carPhoto` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆照片',
+  `drivingLicenseNumber` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '行驶证号',
+  `drivingLicensePhoto` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '行驶证照片',
+  `annualInspectionTime` datetime(0) NULL DEFAULT NULL COMMENT '年检到期时间',
+  `insurancePhoto` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '保险照片',
+  `commercialInsuranceTime` datetime(0) NULL DEFAULT NULL COMMENT '商业保险到期时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `state` smallint(1) NULL DEFAULT 1 COMMENT '状态(1=正常,2=删除)',
+  `addType` int(11) NULL DEFAULT 1 COMMENT '司机来源方式 1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加',
+  `addObjectId` int(11) NULL DEFAULT NULL COMMENT '添加司机的分公司/加盟商ID',
+  `plateColor` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车牌颜色',
+  `vehicleType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆类型',
+  `ownerName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆所有人',
+  `engineId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发送机号',
+  `VIN` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆VIN码',
+  `certifyDateA` datetime(0) NULL DEFAULT NULL COMMENT '车辆注册日期',
+  `fuelType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆燃料类型',
+  `engineDisplace` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发动机排量',
+  `certificate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '运输证字号',
+  `transAgency` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆运输证发证机构',
+  `transArea` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆经营区域',
+  `transDateStart` datetime(0) NULL DEFAULT NULL COMMENT '车辆运输证有效期起',
+  `transDateStop` datetime(0) NULL DEFAULT NULL COMMENT '车辆运输证有效期止',
+  `certifyDateB` datetime(0) NULL DEFAULT NULL COMMENT '车辆初次登记日期',
+  `fixState` int(1) NULL DEFAULT NULL COMMENT '车辆维修状态(0:未检修,1:已检修,2:未知)',
+  `nextFixDate` datetime(0) NULL DEFAULT NULL COMMENT '车辆下次年检时间',
+  `checkState` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '车辆年度审核状态',
+  `feePrintId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '发票打印设备序列号',
+  `GPSBrand` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '卫星定位装置品牌',
+  `GPSModel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '卫星定位装置型号',
+  `GPSIMEI` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '卫星定位装置IMEI号',
+  `GPSInstallDate` datetime(0) NULL DEFAULT NULL COMMENT '卫星定位装置安装时间',
+  `registerDate` datetime(0) NULL DEFAULT NULL COMMENT '车辆报备日期',
+  `commercialType` int(1) NULL DEFAULT NULL COMMENT '服务类型(1:网络预约出租车,2:巡游出租汽车,3:私人小客车合乘)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 950 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_car
+-- ----------------------------
+INSERT INTO `t_car` VALUES (493, 1, 1, 0, '黄色', 9, 9, '桂BD56071', NULL, '450200785952', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (494, 1, 1, 0, '黄色', 9, 9, '桂BD56153', NULL, '450200785996', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (495, 1, 1, 0, '黄色', 9, 9, '桂BD56192', NULL, '450200785962', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (496, 1, 1, 0, '黄色', 9, 9, '桂BD56307', NULL, '450200785975', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (497, 1, 1, 0, '黄色', 9, 9, '桂BD56311', NULL, '450200785900', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (498, 1, 1, 0, '黄色', 9, 9, '桂BD56313', NULL, '450200786044', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (499, 1, 1, 0, '黄色', 9, 9, '桂BD56325', NULL, '450200785922', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (500, 1, 1, 0, '黄色', 9, 9, '桂BD56503', NULL, '450200786042', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (501, 1, 1, 0, '黄色', 9, 9, '桂BD56550', NULL, '450200786004', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (502, 1, 1, 0, '黄色', 9, 9, '桂BD56630', NULL, '450200785940', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (503, 1, 1, 0, '黄色', 9, 9, '桂BD56671', NULL, '450200785993', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (504, 1, 1, 0, '黄色', 9, 9, '桂BD56807', NULL, '450200785971', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (505, 1, 1, 0, '黄色', 9, 9, '桂BD56835', NULL, '450200785863', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (506, 1, 1, 0, '黄色', 9, 9, '桂BD56868', NULL, '450200786335', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (507, 1, 1, 0, '黄色', 9, 9, '桂BD56901', NULL, '450200785999', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (508, 1, 1, 0, '黄色', 9, 9, '桂BD56907', NULL, '450200785948', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (509, 1, 1, 0, '黄色', 9, 9, '桂BD56930', NULL, '450200785964', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (510, 1, 1, 0, '黄色', 9, 9, '桂BD57390', NULL, '450200785883', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (511, 1, 1, 0, '黄色', 9, 9, '桂BD57605', NULL, '450200785805', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (512, 1, 1, 0, '黄色', 9, 9, '桂BD57635', NULL, '450200785973', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (513, 1, 1, 0, '黄色', 9, 9, '桂BD58002', NULL, '450200786331', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (514, 1, 1, 0, '黄色', 9, 9, '桂BD58010', NULL, '450200785918', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (515, 1, 1, 0, '黄色', 9, 9, '桂BD58013', NULL, '450200785813', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (516, 1, 1, 0, '黄色', 9, 9, '桂BD58015', NULL, '450200785754', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (517, 1, 1, 0, '黄色', 9, 9, '桂BD58020', NULL, '450200785765', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (518, 1, 1, 0, '黄色', 9, 9, '桂BD58029', NULL, '450200785815', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (519, 1, 1, 0, '黄色', 9, 9, '桂BD58032', NULL, '450200785920', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (520, 1, 1, 0, '黄色', 9, 9, '桂BD58037', NULL, '450200785925', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (521, 1, 1, 0, '黄色', 9, 9, '桂BD58050', NULL, '450200785886', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (522, 1, 1, 0, '黄色', 9, 9, '桂BD58057', NULL, '450200785764', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (523, 1, 1, 0, '黄色', 9, 9, '桂BD58075', NULL, '450200785799', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (524, 1, 1, 0, '黄色', 9, 9, '桂BD58103', NULL, '450200785762', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (525, 1, 1, 0, '黄色', 9, 9, '桂BD58122', NULL, '450200785904', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (526, 1, 1, 0, '黄色', 9, 9, '桂BD58125', NULL, '450200785821', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (527, 1, 1, 0, '黄色', 9, 9, '桂BD58157', NULL, '450200785812', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (528, 1, 1, 0, '黄色', 9, 9, '桂BD58171', NULL, '450200785839', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (529, 1, 1, 0, '黄色', 9, 9, '桂BD58173', NULL, '450200785756', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (530, 1, 1, 0, '黄色', 9, 9, '桂BD58176', NULL, '450200786338', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (531, 1, 1, 0, '黄色', 9, 9, '桂BD58511', NULL, '450200785879', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (532, 1, 1, 0, '黄色', 9, 9, '桂BD58512', NULL, '450200785809', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (533, 1, 1, 0, '黄色', 9, 9, '桂BD58530', NULL, '450200785792', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (534, 1, 1, 0, '黄色', 9, 9, '桂BD58552', NULL, '450200785807', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (535, 1, 1, 0, '黄色', 9, 9, '桂BD58568', NULL, '450200785887', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (536, 1, 1, 0, '黄色', 9, 9, '桂BD58575', NULL, '450200785761', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (537, 1, 1, 0, '黄色', 9, 9, '桂BD58610', NULL, '450200785906', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (538, 1, 1, 0, '黄色', 9, 9, '桂BD58612', NULL, '450200785787', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (539, 1, 1, 0, '黄色', 9, 9, '桂BD58621', NULL, '450200785760', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (540, 1, 1, 0, '黄色', 9, 9, '桂BD58627', NULL, '450200785783', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (541, 1, 1, 0, '黄色', 9, 9, '桂BD58637', NULL, '450200785890', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (542, 1, 1, 0, '黄色', 9, 9, '桂BD58652', NULL, '450200785753', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (543, 1, 1, 0, '黄色', 9, 9, '桂BD58671', NULL, '450200785758', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (544, 1, 1, 0, '黄色', 9, 9, '桂BD58675', NULL, '450200785773', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (545, 1, 1, 0, '黄色', 9, 9, '桂BD58691', NULL, '450200785979', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (546, 1, 1, 0, '黄色', 9, 9, '桂BD58693', NULL, '450200785824', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (547, 1, 1, 0, '黄色', 9, 9, '桂BD58753', NULL, '450200785774', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (548, 1, 1, 0, '黄色', 9, 9, '桂BD58900', NULL, '450200785752', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (549, 1, 1, 0, '黄色', 9, 9, '桂BD58903', NULL, '450200785801', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (550, 1, 1, 0, '黄色', 9, 9, '桂BD58915', NULL, '450200785766', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (551, 1, 1, 0, '黄色', 9, 9, '桂BD58923', NULL, '450200785843', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (552, 1, 1, 0, '黄色', 9, 9, '桂BD58951', NULL, '450200785795', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (553, 1, 1, 0, '黄色', 9, 9, '桂BD58957', NULL, '450200785825', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (554, 1, 1, 0, '黄色', 9, 9, '桂BD58962', NULL, '450200785816', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (555, 1, 1, 0, '黄色', 9, 9, '桂BD58971', NULL, '450200785794', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (556, 1, 1, 0, '黄色', 9, 9, '桂BD59003', NULL, '450200785818', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (557, 1, 1, 0, '黄色', 9, 9, '桂BD59012', NULL, '450200786008', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (558, 1, 1, 0, '黄色', 9, 9, '桂BD59013', NULL, '450200785955', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (559, 1, 1, 0, '黄色', 9, 9, '桂BD59038', NULL, '450200785862', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (560, 1, 1, 0, '黄色', 9, 9, '桂BD59062', NULL, '450200785833', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (561, 1, 1, 0, '黄色', 9, 9, '桂BD59071', NULL, '450200785848', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (562, 1, 1, 0, '黄色', 9, 9, '桂BD59092', NULL, '450200785895', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:35', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (563, 1, 1, 0, '黄色', 9, 9, '桂BD59093', NULL, '450200785914', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (564, 1, 1, 0, '黄色', 9, 9, '桂BD59102', NULL, '450200785856', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (565, 1, 1, 0, '黄色', 9, 9, '桂BD59132', NULL, '450200785846', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (566, 1, 1, 0, '黄色', 9, 9, '桂BD59137', NULL, '450200785923', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (567, 1, 1, 0, '黄色', 9, 9, '桂BD59153', NULL, '450200785868', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (568, 1, 1, 0, '黄色', 9, 9, '桂BD59157', NULL, '450200785869', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (569, 1, 1, 0, '黄色', 9, 9, '桂BD59162', NULL, '450200785826', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (570, 1, 1, 0, '黄色', 9, 9, '桂BD59230', NULL, '450200785768', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (571, 1, 1, 0, '黄色', 9, 9, '桂BD59271', NULL, '450200785876', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (572, 1, 1, 0, '黄色', 9, 9, '桂BD59302', NULL, '450200785831', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (573, 1, 1, 0, '黄色', 9, 9, '桂BD59323', NULL, '450200785859', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (574, 1, 1, 0, '黄色', 9, 9, '桂BD59325', NULL, '450200785829', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (575, 1, 1, 0, '黄色', 9, 9, '桂BD59351', NULL, '450200785977', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (576, 1, 1, 0, '黄色', 9, 9, '桂BD59382', NULL, '450200785944', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (577, 1, 1, 0, '黄色', 9, 9, '桂BD59517', NULL, '450200785804', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (578, 1, 1, 0, '黄色', 9, 9, '桂BD59521', NULL, '450200785836', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (579, 1, 1, 0, '黄色', 9, 9, '桂BD59523', NULL, '450200785850', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (580, 1, 1, 0, '黄色', 9, 9, '桂BD59562', NULL, '450200785957', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (581, 1, 1, 0, '黄色', 9, 9, '桂BD59572', NULL, '450200785840', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (582, 1, 1, 0, '黄色', 9, 9, '桂BD59573', NULL, '450200785981', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (583, 1, 1, 0, '黄色', 9, 9, '桂BD59637', NULL, '450200785844', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (584, 1, 1, 0, '黄色', 9, 9, '桂BD59670', NULL, '450200785915', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (585, 1, 1, 0, '黄色', 9, 9, '桂BD59673', NULL, '450200785990', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (586, 1, 1, 0, '黄色', 9, 9, '桂BD59701', NULL, '450200785910', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (587, 1, 1, 0, '黄色', 9, 9, '桂BD59712', NULL, '450200785800', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (588, 1, 1, 0, '黄色', 9, 9, '桂BD59713', NULL, '450200785875', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (589, 1, 1, 0, '黄色', 9, 9, '桂BD59752', NULL, '450200785959', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (590, 1, 1, 0, '黄色', 9, 9, '桂BD59763', NULL, '450200785852', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (591, 1, 1, 0, '黄色', 9, 9, '桂BD59792', NULL, '450200785873', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (592, 1, 1, 0, '黄色', 9, 9, '桂BD69572', NULL, '450200785786', NULL, '2020-12-28 00:00:00', NULL, '2020-12-26 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (593, 1, 1, 0, '黄色', 9, 9, '桂BD70178', NULL, '450200850092', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (594, 1, 1, 0, '黄色', 9, 9, '桂BD72222', NULL, '450200850052', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (595, 1, 1, 0, '黄色', 9, 9, '桂BD77137', NULL, '450200850094', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (596, 1, 1, 0, '黄色', 9, 9, '桂BD79791', NULL, '450200849783', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (597, 1, 1, 0, '黄色', 9, 9, '桂BD80075', NULL, '450200850024', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (598, 1, 1, 0, '黄色', 9, 9, '桂BD80109', NULL, '450200850079', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (599, 1, 1, 0, '黄色', 9, 9, '桂BD80157', NULL, '450200850037', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (600, 1, 1, 0, '黄色', 9, 9, '桂BD80256', NULL, '450200850029', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (601, 1, 1, 0, '黄色', 9, 9, '桂BD80306', NULL, '450200850089', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (602, 1, 1, 0, '黄色', 9, 9, '桂BD80625', NULL, '450200850147', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (603, 1, 1, 0, '黄色', 9, 9, '桂BD80750', NULL, '450200850095', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (604, 1, 1, 0, '黄色', 9, 9, '桂BD80837', NULL, '450200850048', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (605, 1, 1, 0, '黄色', 9, 9, '桂BD81002', NULL, '450200850097', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (606, 1, 1, 0, '黄色', 9, 9, '桂BD81551', NULL, '450200850064', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (607, 1, 1, 0, '黄色', 9, 9, '桂BD82020', NULL, '450200850050', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (608, 1, 1, 0, '黄色', 9, 9, '桂BD82203', NULL, '450200850070', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (609, 1, 1, 0, '黄色', 9, 9, '桂BD82223', NULL, '450200849722', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (610, 1, 1, 0, '黄色', 9, 9, '桂BD82272', NULL, '450200849790', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (611, 1, 1, 0, '黄色', 9, 9, '桂BD82358', NULL, '450200850044', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (612, 1, 1, 0, '黄色', 9, 9, '桂BD82605', NULL, '450200849838', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (613, 1, 1, 0, '黄色', 9, 9, '桂BD82669', NULL, '450200849992', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (614, 1, 1, 0, '黄色', 9, 9, '桂BD82676', NULL, '450200850034', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (615, 1, 1, 0, '黄色', 9, 9, '桂BD82862', NULL, '450200849744', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (616, 1, 1, 0, '黄色', 9, 9, '桂BD82872', NULL, '450200850080', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (617, 1, 1, 0, '黄色', 9, 9, '桂BD82927', NULL, '450200850031', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (618, 1, 1, 0, '黄色', 9, 9, '桂BD83015', NULL, '450200849993', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (619, 1, 1, 0, '黄色', 9, 9, '桂BD83032', NULL, '450200849850', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (620, 1, 1, 0, '黄色', 9, 9, '桂BD83060', NULL, '450200849997', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (621, 1, 1, 0, '黄色', 9, 9, '桂BD83225', NULL, '450200849832', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (622, 1, 1, 0, '黄色', 9, 9, '桂BD83283', NULL, '450200849847', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (623, 1, 1, 0, '黄色', 9, 9, '桂BD83305', NULL, '450200850058', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (624, 1, 1, 0, '黄色', 9, 9, '桂BD83325', NULL, '450200849856', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (625, 1, 1, 0, '黄色', 9, 9, '桂BD83375', NULL, '450200850087', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (626, 1, 1, 0, '黄色', 9, 9, '桂BD83613', NULL, '450200849954', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (627, 1, 1, 0, '黄色', 9, 9, '桂BD83903', NULL, '450200849835', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (628, 1, 1, 0, '黄色', 9, 9, '桂BD85017', NULL, '450200849724', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (629, 1, 1, 0, '黄色', 9, 9, '桂BD85031', NULL, '450200849738', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (630, 1, 1, 0, '黄色', 9, 9, '桂BD85092', NULL, '450200849762', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (631, 1, 1, 0, '黄色', 9, 9, '桂BD85108', NULL, '450200849760', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (632, 1, 1, 0, '黄色', 9, 9, '桂BD85139', NULL, '450200849741', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (633, 1, 1, 0, '黄色', 9, 9, '桂BD85231', NULL, '450200849462', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (634, 1, 1, 0, '黄色', 9, 9, '桂BD85253', NULL, '450200849661', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (635, 1, 1, 0, '黄色', 9, 9, '桂BD85291', NULL, '450200849680', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (636, 1, 1, 0, '黄色', 9, 9, '桂BD85305', NULL, '450200849649', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:36', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (637, 1, 1, 0, '黄色', 9, 9, '桂BD85372', NULL, '450200849443', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (638, 1, 1, 0, '黄色', 9, 9, '桂BD85382', NULL, '450200849756', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (639, 1, 1, 0, '黄色', 9, 9, '桂BD85387', NULL, '450200849666', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (640, 1, 1, 0, '黄色', 9, 9, '桂BD85395', NULL, '450200849789', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (641, 1, 1, 0, '黄色', 9, 9, '桂BD85532', NULL, '450200849660', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (642, 1, 1, 0, '黄色', 9, 9, '桂BD85536', NULL, '450200849776', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (643, 1, 1, 0, '黄色', 9, 9, '桂BD85562', NULL, '450200849440', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (644, 1, 1, 0, '黄色', 9, 9, '桂BD85569', NULL, '450200849639', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (645, 1, 1, 0, '黄色', 9, 9, '桂BD85632', NULL, '450200849441', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (646, 1, 1, 0, '黄色', 9, 9, '桂BD85653', NULL, '450200849988', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (647, 1, 1, 0, '黄色', 9, 9, '桂BD85663', NULL, '450200849426', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (648, 1, 1, 0, '黄色', 9, 9, '桂BD85668', NULL, '450200849887', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (649, 1, 1, 0, '黄色', 9, 9, '桂BD85709', NULL, '450200849432', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (650, 1, 1, 0, '黄色', 9, 9, '桂BD85710', NULL, '450200849542', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (651, 1, 1, 0, '黄色', 9, 9, '桂BD85716', NULL, '450200849852', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (652, 1, 1, 0, '黄色', 9, 9, '桂BD85720', NULL, '450200849682', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (653, 1, 1, 0, '黄色', 9, 9, '桂BD85723', NULL, '450200849662', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (654, 1, 1, 0, '黄色', 9, 9, '桂BD85735', NULL, '450200849708', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (655, 1, 1, 0, '黄色', 9, 9, '桂BD85739', NULL, '450200849471', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (656, 1, 1, 0, '黄色', 9, 9, '桂BD85750', NULL, '450200849670', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (657, 1, 1, 0, '黄色', 9, 9, '桂BD85761', NULL, '450200849491', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (658, 1, 1, 0, '黄色', 9, 9, '桂BD85793', NULL, '450200849775', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (659, 1, 1, 0, '黄色', 9, 9, '桂BD85795', NULL, '450200849493', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (660, 1, 1, 0, '黄色', 9, 9, '桂BD85811', NULL, '450200849508', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (661, 1, 1, 0, '黄色', 9, 9, '桂BD85870', NULL, '450200849633', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (662, 1, 1, 0, '黄色', 9, 9, '桂BD85901', NULL, '450200849632', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (663, 1, 1, 0, '黄色', 9, 9, '桂BD85931', NULL, '450200849642', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (664, 1, 1, 0, '黄色', 9, 9, '桂BD86021', NULL, '450200849742', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (665, 1, 1, 0, '黄色', 9, 9, '桂BD86025', NULL, '450200849470', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (666, 1, 1, 0, '黄色', 9, 9, '桂BD86051', NULL, '450200849550', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (667, 1, 1, 0, '黄色', 9, 9, '桂BD86075', NULL, '450200849438', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (668, 1, 1, 0, '黄色', 9, 9, '桂BD86096', NULL, '450200850093', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (669, 1, 1, 0, '黄色', 9, 9, '桂BD86137', NULL, '450200849646', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (670, 1, 1, 0, '黄色', 9, 9, '桂BD86173', NULL, '450200849442', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (671, 1, 1, 0, '黄色', 9, 9, '桂BD86213', NULL, '450200849636', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (672, 1, 1, 0, '黄色', 9, 9, '桂BD86230', NULL, '450200849431', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (673, 1, 1, 0, '黄色', 9, 9, '桂BD86275', NULL, '450200849425', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (674, 1, 1, 0, '黄色', 9, 9, '桂BD86328', NULL, '450200849505', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (675, 1, 1, 0, '黄色', 9, 9, '桂BD86351', NULL, '450200849545', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (676, 1, 1, 0, '黄色', 9, 9, '桂BD86381', NULL, '450200849543', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (677, 1, 1, 0, '黄色', 9, 9, '桂BD86503', NULL, '450200849469', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (678, 1, 1, 0, '黄色', 9, 9, '桂BD86539', NULL, '450200849467', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (679, 1, 1, 0, '黄色', 9, 9, '桂BD86553', NULL, '450200849717', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (680, 1, 1, 0, '黄色', 9, 9, '桂BD86612', NULL, '450200850053', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (681, 1, 1, 0, '黄色', 9, 9, '桂BD86733', NULL, '450200849424', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (682, 1, 1, 0, '黄色', 9, 9, '桂BD86735', NULL, '450200849495', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (683, 1, 1, 0, '黄色', 9, 9, '桂BD86771', NULL, '450200849433', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (684, 1, 1, 0, '黄色', 9, 9, '桂BD86791', NULL, '450200849435', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (685, 1, 1, 0, '黄色', 9, 9, '桂BD86878', NULL, '450200849496', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (686, 1, 1, 0, '黄色', 9, 9, '桂BD86970', NULL, '450200849956', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (687, 1, 1, 0, '黄色', 9, 9, '桂BD87062', NULL, '450200849474', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (688, 1, 1, 0, '黄色', 9, 9, '桂BD87122', NULL, '450200850091', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (689, 1, 1, 0, '黄色', 9, 9, '桂BD87691', NULL, '450200849435', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (690, 1, 1, 0, '黄色', 9, 9, '桂BD87753', NULL, '450200850040', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (691, 1, 1, 0, '黄色', 9, 9, '桂BD88030', NULL, '450200849893', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (692, 1, 1, 0, '黄色', 9, 9, '桂BD88132', NULL, '450200849939', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (693, 1, 1, 0, '黄色', 9, 9, '桂BD88285', NULL, '450200849758', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (694, 1, 1, 0, '黄色', 9, 9, '桂BD88299', NULL, '450200850026', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (695, 1, 1, 0, '黄色', 9, 9, '桂BD88320', NULL, '450200849933', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (696, 1, 1, 0, '黄色', 9, 9, '桂BD88593', NULL, '450200849985', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (697, 1, 1, 0, '黄色', 9, 9, '桂BD88668', NULL, '450200850233', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (698, 1, 1, 0, '黄色', 9, 9, '桂BD88703', NULL, '450200849679', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (699, 1, 1, 0, '黄色', 9, 9, '桂BD88790', NULL, '450200850063', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (700, 1, 1, 0, '黄色', 9, 9, '桂BD88861', NULL, '450200849911', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (701, 1, 1, 0, '黄色', 9, 9, '桂BD88937', NULL, '450200849552', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (702, 1, 1, 0, '黄色', 9, 9, '桂BD89015', NULL, '450200849843', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (703, 1, 1, 0, '黄色', 9, 9, '桂BD89038', NULL, '450200849989', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (704, 1, 1, 0, '黄色', 9, 9, '桂BD89077', NULL, '450200849793', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (705, 1, 1, 0, '黄色', 9, 9, '桂BD89112', NULL, '450200849710', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (706, 1, 1, 0, '黄色', 9, 9, '桂BD89152', NULL, '450200849686', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (707, 1, 1, 0, '黄色', 9, 9, '桂BD89205', NULL, '450200849854', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (708, 1, 1, 0, '黄色', 9, 9, '桂BD89231', NULL, '450200849685', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:37', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (709, 1, 1, 0, '黄色', 9, 9, '桂BD89232', NULL, '450200849712', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (710, 1, 1, 0, '黄色', 9, 9, '桂BD89325', NULL, '450200849665', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (711, 1, 1, 0, '黄色', 9, 9, '桂BD89331', NULL, '450200849780', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (712, 1, 1, 0, '黄色', 9, 9, '桂BD89353', NULL, '450200849990', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (713, 1, 1, 0, '黄色', 9, 9, '桂BD89365', NULL, '450200849669', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (714, 1, 1, 0, '黄色', 9, 9, '桂BD89507', NULL, '450200849664', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (715, 1, 1, 0, '黄色', 9, 9, '桂BD89510', NULL, '450200849719', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (716, 1, 1, 0, '黄色', 9, 9, '桂BD89523', NULL, '450200849718', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (717, 1, 1, 0, '黄色', 9, 9, '桂BD89529', NULL, '450200849684', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (718, 1, 1, 0, '黄色', 9, 9, '桂BD89581', NULL, '450200849676', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (719, 1, 1, 0, '黄色', 9, 9, '桂BD89637', NULL, '450200849430', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (720, 1, 1, 0, '黄色', 9, 9, '桂BD89651', NULL, '450200849773', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (721, 1, 1, 0, '黄色', 9, 9, '桂BD89673', NULL, '450200849792', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (722, 1, 1, 0, '黄色', 9, 9, '桂BD89721', NULL, '450200849671', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (723, 1, 1, 0, '黄色', 9, 9, '桂BD89735', NULL, '450200849840', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (724, 1, 1, 0, '黄色', 9, 9, '桂BD89853', NULL, '450200849501', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (725, 1, 1, 0, '黄色', 9, 9, '桂BD89865', NULL, '450200849498', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (726, 1, 1, 0, '黄色', 9, 9, '桂BD90300', NULL, '450200849859', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (727, 1, 1, 0, '黄色', 9, 9, '桂BD90809', NULL, '450200850059', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (728, 1, 1, 0, '黄色', 9, 9, '桂BD95052', NULL, '450200849927', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (729, 1, 1, 0, '黄色', 9, 9, '桂BD95099', NULL, '450200849915', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (730, 1, 1, 0, '黄色', 9, 9, '桂BD95232', NULL, '450200849894', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (731, 1, 1, 0, '黄色', 9, 9, '桂BD95262', NULL, '450200850236', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (732, 1, 1, 0, '黄色', 9, 9, '桂BD95339', NULL, '450200849675', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (733, 1, 1, 0, '黄色', 9, 9, '桂BD95390', NULL, '450200849902', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (734, 1, 1, 0, '黄色', 9, 9, '桂BD95573', NULL, '450200850223', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (735, 1, 1, 0, '黄色', 9, 9, '桂BD95652', NULL, '450200850240', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (736, 1, 1, 0, '黄色', 9, 9, '桂BD95671', NULL, '450200849904', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (737, 1, 1, 0, '黄色', 9, 9, '桂BD95838', NULL, '450200849720', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (738, 1, 1, 0, '黄色', 9, 9, '桂BD95927', NULL, '450200849925', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (739, 1, 1, 0, '黄色', 9, 9, '桂BD95989', NULL, '450200850090', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (740, 1, 1, 0, '黄色', 9, 9, '桂BD96012', NULL, '450200849906', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (741, 1, 1, 0, '黄色', 9, 9, '桂BD96013', NULL, '450200850245', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (742, 1, 1, 0, '黄色', 9, 9, '桂BD96020', NULL, '450200849886', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (743, 1, 1, 0, '黄色', 9, 9, '桂BD96023', NULL, '450200849796', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (744, 1, 1, 0, '黄色', 9, 9, '桂BD96135', NULL, '450200849899', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (745, 1, 1, 0, '黄色', 9, 9, '桂BD96153', NULL, '450200849870', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (746, 1, 1, 0, '黄色', 9, 9, '桂BD96161', NULL, '450200849753', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (747, 1, 1, 0, '黄色', 9, 9, '桂BD96171', NULL, '450200850218', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (748, 1, 1, 0, '黄色', 9, 9, '桂BD96252', NULL, '450200849897', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (749, 1, 1, 0, '黄色', 9, 9, '桂BD96275', NULL, '450200849924', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (750, 1, 1, 0, '黄色', 9, 9, '桂BD96353', NULL, '450200850150', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (751, 1, 1, 0, '黄色', 9, 9, '桂BD96382', NULL, '450200849763', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (752, 1, 1, 0, '黄色', 9, 9, '桂BD96393', NULL, '450200850003', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (753, 1, 1, 0, '黄色', 9, 9, '桂BD96530', NULL, '450200849830', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (754, 1, 1, 0, '黄色', 9, 9, '桂BD96539', NULL, '450200849890', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (755, 1, 1, 0, '黄色', 9, 9, '桂BD96662', NULL, '450200849672', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (756, 1, 1, 0, '黄色', 9, 9, '桂BD96710', NULL, '450200849884', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (757, 1, 1, 0, '黄色', 9, 9, '桂BD96712', NULL, '450200849885', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (758, 1, 1, 0, '黄色', 9, 9, '桂BD96731', NULL, '450200850226', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (759, 1, 1, 0, '黄色', 9, 9, '桂BD96910', NULL, '450200849896', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (760, 1, 1, 0, '黄色', 9, 9, '桂BD97095', NULL, '450200850244', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (761, 1, 1, 0, '黄色', 9, 9, '桂BD97163', NULL, '450200849963', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (762, 1, 1, 0, '黄色', 9, 9, '桂BD97222', NULL, '450200849958', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (763, 1, 1, 0, '黄色', 9, 9, '桂BD97382', NULL, '450200850228', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (764, 1, 1, 0, '黄色', 9, 9, '桂BD97505', NULL, '450200849938', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (765, 1, 1, 0, '黄色', 9, 9, '桂BD98015', NULL, '450200850232', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (766, 1, 1, 0, '黄色', 9, 9, '桂BD98037', NULL, '450200849745', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (767, 1, 1, 0, '黄色', 9, 9, '桂BD98051', NULL, '450200849748', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (768, 1, 1, 0, '黄色', 9, 9, '桂BD98107', NULL, '450200849998', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (769, 1, 1, 0, '黄色', 9, 9, '桂BD98172', NULL, '450200849961', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (770, 1, 1, 0, '黄色', 9, 9, '桂BD98175', NULL, '450200849777', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (771, 1, 1, 0, '黄色', 9, 9, '桂BD98201', NULL, '450200849714', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (772, 1, 1, 0, '黄色', 9, 9, '桂BD98253', NULL, '450200849959', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (773, 1, 1, 0, '黄色', 9, 9, '桂BD98301', NULL, '450200849858', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (774, 1, 1, 0, '黄色', 9, 9, '桂BD98507', NULL, '450200849713', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (775, 1, 1, 0, '黄色', 9, 9, '桂BD98567', NULL, '450200849737', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (776, 1, 1, 0, '黄色', 9, 9, '桂BD98637', NULL, '450200849786', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (777, 1, 1, 0, '黄色', 9, 9, '桂BD98737', NULL, '450200849644', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:38', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (778, 1, 1, 0, '黄色', 9, 9, '桂BD98755', NULL, '450200850246', NULL, '2021-06-17 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (779, 1, 1, 0, '黄色', 9, 9, '桂BD98813', NULL, '450200849940', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (780, 1, 1, 0, '黄色', 9, 9, '桂BD99110', NULL, '450200850045', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (781, 1, 1, 0, '黄色', 9, 9, '桂BD99129', NULL, '450200850062', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (782, 1, 1, 0, '黄色', 9, 9, '桂BD99152', NULL, '450200849867', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (783, 1, 1, 0, '黄色', 9, 9, '桂BD99273', NULL, '450200849932', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (784, 1, 1, 0, '黄色', 9, 9, '桂BD99295', NULL, '450200849999', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (785, 1, 1, 0, '黄色', 9, 9, '桂BD99350', NULL, '450200849751', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (786, 1, 1, 0, '黄色', 9, 9, '桂BD99362', NULL, '450200850000', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (787, 1, 1, 0, '黄色', 9, 9, '桂BD99609', NULL, '450200849964', NULL, '2021-06-15 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (788, 1, 1, 0, '黄色', 9, 9, '桂BD99723', NULL, '450200849930', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (789, 1, 1, 0, '黄色', 9, 9, '桂BD99795', NULL, '450200849555', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (790, 1, 1, 0, '黄色', 9, 9, '桂BD99880', NULL, '450200849503', NULL, '2021-06-13 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (791, 1, 1, 0, '黄色', 9, 9, '桂BD99909', NULL, '450200850145', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (792, 1, 1, 0, '黄色', 9, 9, '桂BD99998', NULL, '450200850017', NULL, '2021-06-14 00:00:00', NULL, '2021-06-24 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (793, 1, 1, 0, '黄色', 9, 9, '桂BD75511', NULL, '450200925785', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (794, 1, 1, 0, '黄色', 9, 9, '桂BD76121', NULL, '450200925653', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (795, 1, 1, 0, '黄色', 9, 9, '桂BD77819', NULL, '450200925630', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (796, 1, 1, 0, '黄色', 9, 9, '桂BD85589', NULL, '450200925819', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (797, 1, 1, 0, '黄色', 9, 9, '桂BD87065', NULL, '450200925851', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (798, 1, 1, 0, '黄色', 9, 9, '桂BD87233', NULL, '450200925815', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (799, 1, 1, 0, '黄色', 9, 9, '桂BD87682', NULL, '450200925615', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (800, 1, 1, 0, '黄色', 9, 9, '桂BD88128', NULL, '450200925645', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (801, 1, 1, 0, '黄色', 9, 9, '桂BD89153', NULL, '450200925824', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (802, 1, 1, 0, '黄色', 9, 9, '桂BD92075', NULL, '450200927927', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (803, 1, 1, 0, '黄色', 9, 9, '桂BD92667', NULL, '450200927302', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (804, 1, 1, 0, '黄色', 9, 9, '桂BD92736', NULL, '450200927576', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (805, 1, 1, 0, '黄色', 9, 9, '桂BD92780', NULL, '450200927778', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (806, 1, 1, 0, '黄色', 9, 9, '桂BD92870', NULL, '450200927734', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (807, 1, 1, 0, '黄色', 9, 9, '桂BD92930', NULL, '450200927323', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (808, 1, 1, 0, '黄色', 9, 9, '桂BD93080', NULL, '450200927251', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (809, 1, 1, 0, '黄色', 9, 9, '桂BD93152', NULL, '450200927721', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (810, 1, 1, 0, '黄色', 9, 9, '桂BD93190', NULL, '450200927944', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (811, 1, 1, 0, '黄色', 9, 9, '桂BD93237', NULL, '450200927971', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (812, 1, 1, 0, '黄色', 9, 9, '桂BD93265', NULL, '450200927683', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (813, 1, 1, 0, '黄色', 9, 9, '桂BD93285', NULL, '450200927816', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (814, 1, 1, 0, '黄色', 9, 9, '桂BD93360', NULL, '450200927723', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (815, 1, 1, 0, '黄色', 9, 9, '桂BD93551', NULL, '450200927148', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (816, 1, 1, 0, '黄色', 9, 9, '桂BD93571', NULL, '450200927932', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (817, 1, 1, 0, '黄色', 9, 9, '桂BD93581', NULL, '450200927817', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (818, 1, 1, 0, '黄色', 9, 9, '桂BD93637', NULL, '450200927641', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (819, 1, 1, 0, '黄色', 9, 9, '桂BD93723', NULL, '450200927579', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (820, 1, 1, 0, '黄色', 9, 9, '桂BD93827', NULL, '450200927408', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (821, 1, 1, 0, '黄色', 9, 9, '桂BD93832', NULL, '450200927214', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (822, 1, 1, 0, '黄色', 9, 9, '桂BD93851', NULL, '450200927695', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (823, 1, 1, 0, '黄色', 9, 9, '桂BD93856', NULL, '450200927278', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (824, 1, 1, 0, '黄色', 9, 9, '桂BD93915', NULL, '450200927181', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (825, 1, 1, 0, '黄色', 9, 9, '桂BD93921', NULL, '450200927957', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (826, 1, 1, 0, '黄色', 9, 9, '桂BD95082', NULL, '450200927980', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (827, 1, 1, 0, '黄色', 9, 9, '桂BD95207', NULL, '450200927211', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (828, 1, 1, 0, '黄色', 9, 9, '桂BD95217', NULL, '450200927600', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (829, 1, 1, 0, '黄色', 9, 9, '桂BD95265', NULL, '450200927937', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (830, 1, 1, 0, '黄色', 9, 9, '桂BD95293', NULL, '450200927731', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (831, 1, 1, 0, '黄色', 9, 9, '桂BD95301', NULL, '450200927598', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (832, 1, 1, 0, '黄色', 9, 9, '桂BD95302', NULL, '450200927606', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (833, 1, 1, 0, '黄色', 9, 9, '桂BD95307', NULL, '450200925875', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (834, 1, 1, 0, '黄色', 9, 9, '桂BD95312', NULL, '450200927412', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (835, 1, 1, 0, '黄色', 9, 9, '桂BD95317', NULL, '450200927226', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (836, 1, 1, 0, '黄色', 9, 9, '桂BD95370', NULL, '450200928008', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (837, 1, 1, 0, '黄色', 9, 9, '桂BD95537', NULL, '450200927590', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (838, 1, 1, 0, '黄色', 9, 9, '桂BD95606', NULL, '450200927940', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (839, 1, 1, 0, '黄色', 9, 9, '桂BD95633', NULL, '450200926364', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (840, 1, 1, 0, '黄色', 9, 9, '桂BD95673', NULL, '450200927700', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (841, 1, 1, 0, '黄色', 9, 9, '桂BD95705', NULL, '450200927795', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (842, 1, 1, 0, '黄色', 9, 9, '桂BD95723', NULL, '450200926733', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (843, 1, 1, 0, '黄色', 9, 9, '桂BD95803', NULL, '450200927335', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (844, 1, 1, 0, '黄色', 9, 9, '桂BD95805', NULL, '450200927791', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (845, 1, 1, 0, '黄色', 9, 9, '桂BD96032', NULL, '450200927305', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (846, 1, 1, 0, '黄色', 9, 9, '桂BD96057', NULL, '450200927286', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (847, 1, 1, 0, '黄色', 9, 9, '桂BD96075', NULL, '450200927121', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (848, 1, 1, 0, '黄色', 9, 9, '桂BD96105', NULL, '450200927173', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (849, 1, 1, 0, '黄色', 9, 9, '桂BD96107', NULL, '450200927450', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (850, 1, 1, 0, '黄色', 9, 9, '桂BD96132', NULL, '450200927037', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (851, 1, 1, 0, '黄色', 9, 9, '桂BD96137', NULL, '450200927202', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (852, 1, 1, 0, '黄色', 9, 9, '桂BD96175', NULL, '450200928006', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (853, 1, 1, 0, '黄色', 9, 9, '桂BD96251', NULL, '450200926371', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:39', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (854, 1, 1, 0, '黄色', 9, 9, '桂BD96255', NULL, '450200927043', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (855, 1, 1, 0, '黄色', 9, 9, '桂BD96265', NULL, '450200925686', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (856, 1, 1, 0, '黄色', 9, 9, '桂BD96271', NULL, '450200926741', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (857, 1, 1, 0, '黄色', 9, 9, '桂BD96285', NULL, '450200927098', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (858, 1, 1, 0, '黄色', 9, 9, '桂BD96291', NULL, '450200927947', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (859, 1, 1, 0, '黄色', 9, 9, '桂BD96301', NULL, '450200927137', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (860, 1, 1, 0, '黄色', 9, 9, '桂BD96302', NULL, '450200927073', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (861, 1, 1, 0, '黄色', 9, 9, '桂BD96305', NULL, '450200927205', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (862, 1, 1, 0, '黄色', 9, 9, '桂BD96310', NULL, '450200927440', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (863, 1, 1, 0, '黄色', 9, 9, '桂BD96312', NULL, '450200926723', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (864, 1, 1, 0, '黄色', 9, 9, '桂BD96317', NULL, '450200927123', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (865, 1, 1, 0, '黄色', 9, 9, '桂BD96325', NULL, '450200925921', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (866, 1, 1, 0, '黄色', 9, 9, '桂BD96327', NULL, '450200926417', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (867, 1, 1, 0, '黄色', 9, 9, '桂BD96362', NULL, '450200925876', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (868, 1, 1, 0, '黄色', 9, 9, '桂BD96367', NULL, '450200927585', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (869, 1, 1, 0, '黄色', 9, 9, '桂BD96501', NULL, '450200927261', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (870, 1, 1, 0, '黄色', 9, 9, '桂BD96507', NULL, '450200927639', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (871, 1, 1, 0, '黄色', 9, 9, '桂BD96513', NULL, '450200927108', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (872, 1, 1, 0, '黄色', 9, 9, '桂BD96562', NULL, '450200925907', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (873, 1, 1, 0, '黄色', 9, 9, '桂BD96568', NULL, '450200925784', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (874, 1, 1, 0, '黄色', 9, 9, '桂BD96570', NULL, '450200927254', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (875, 1, 1, 0, '黄色', 9, 9, '桂BD96575', NULL, '450200927821', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (876, 1, 1, 0, '黄色', 9, 9, '桂BD96591', NULL, '450200926311', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (877, 1, 1, 0, '黄色', 9, 9, '桂BD96651', NULL, '450200927975', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (878, 1, 1, 0, '黄色', 9, 9, '桂BD96670', NULL, '450200926759', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (879, 1, 1, 0, '黄色', 9, 9, '桂BD96715', NULL, '450200927656', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (880, 1, 1, 0, '黄色', 9, 9, '桂BD96720', NULL, '450200927044', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (881, 1, 1, 0, '黄色', 9, 9, '桂BD96721', NULL, '450200927149', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (882, 1, 1, 0, '黄色', 9, 9, '桂BD96722', NULL, '450200926381', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (883, 1, 1, 0, '黄色', 9, 9, '桂BD96723', NULL, '450200927397', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (884, 1, 1, 0, '黄色', 9, 9, '桂BD96730', NULL, '450200925852', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (885, 1, 1, 0, '黄色', 9, 9, '桂BD96752', NULL, '450200926725', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (886, 1, 1, 0, '黄色', 9, 9, '桂BD96802', NULL, '450200927678', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (887, 1, 1, 0, '黄色', 9, 9, '桂BD96812', NULL, '450200925698', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (888, 1, 1, 0, '黄色', 9, 9, '桂BD96831', NULL, '450200927789', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (889, 1, 1, 0, '黄色', 9, 9, '桂BD96913', NULL, '450200927574', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (890, 1, 1, 0, '黄色', 9, 9, '桂BD96923', NULL, '450200926423', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (891, 1, 1, 0, '黄色', 9, 9, '桂BD96973', NULL, '450200928001', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (892, 1, 1, 0, '黄色', 9, 9, '桂BD97052', NULL, '450200927405', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (893, 1, 1, 0, '黄色', 9, 9, '桂BD97053', NULL, '450200927766', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (894, 1, 1, 0, '黄色', 9, 9, '桂BD97073', NULL, '450200927076', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (895, 1, 1, 0, '黄色', 9, 9, '桂BD97125', NULL, '450200927128', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (896, 1, 1, 0, '黄色', 9, 9, '桂BD97156', NULL, '450200927227', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (897, 1, 1, 0, '黄色', 9, 9, '桂BD97172', NULL, '450200927155', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (898, 1, 1, 0, '黄色', 9, 9, '桂BD97205', NULL, '450200927651', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (899, 1, 1, 0, '黄色', 9, 9, '桂BD97206', NULL, '450200927039', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (900, 1, 1, 0, '黄色', 9, 9, '桂BD97232', NULL, '450200925891', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (901, 1, 1, 0, '黄色', 9, 9, '桂BD97251', NULL, '450200927095', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (902, 1, 1, 0, '黄色', 9, 9, '桂BD97253', NULL, '450200925806', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (903, 1, 1, 0, '黄色', 9, 9, '桂BD97261', NULL, '450200927341', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (904, 1, 1, 0, '黄色', 9, 9, '桂BD97263', NULL, '450200927443', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (905, 1, 1, 0, '黄色', 9, 9, '桂BD97267', NULL, '450200927594', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (906, 1, 1, 0, '黄色', 9, 9, '桂BD97275', NULL, '450200927437', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (907, 1, 1, 0, '黄色', 9, 9, '桂BD97305', NULL, '450200927930', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (908, 1, 1, 0, '黄色', 9, 9, '桂BD97327', NULL, '450200926793', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (909, 1, 1, 0, '黄色', 9, 9, '桂BD97351', NULL, '450200927162', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (910, 1, 1, 0, '黄色', 9, 9, '桂BD97539', NULL, '450200927394', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (911, 1, 1, 0, '黄色', 9, 9, '桂BD97562', NULL, '450200927167', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (912, 1, 1, 0, '黄色', 9, 9, '桂BD97563', NULL, '450200928144', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (913, 1, 1, 0, '黄色', 9, 9, '桂BD97590', NULL, '450200927351', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (914, 1, 1, 0, '黄色', 9, 9, '桂BD97605', NULL, '450200927144', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (915, 1, 1, 0, '黄色', 9, 9, '桂BD97613', NULL, '450200927272', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (916, 1, 1, 0, '黄色', 9, 9, '桂BD97637', NULL, '450200925929', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (917, 1, 1, 0, '黄色', 9, 9, '桂BD97657', NULL, '450200927280', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (918, 1, 1, 0, '黄色', 9, 9, '桂BD97671', NULL, '450200927316', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (919, 1, 1, 0, '黄色', 9, 9, '桂BD97673', NULL, '450200927800', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (920, 1, 1, 0, '黄色', 9, 9, '桂BD97683', NULL, '450200926790', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (921, 1, 1, 0, '黄色', 9, 9, '桂BD97863', NULL, '450200927439', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (922, 1, 1, 0, '黄色', 9, 9, '桂BD97893', NULL, '450200926392', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (923, 1, 1, 0, '黄色', 9, 9, '桂BD97930', NULL, '450200926316', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (924, 1, 1, 0, '黄色', 9, 9, '桂BD97938', NULL, '450200927089', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (925, 1, 1, 0, '黄色', 9, 9, '桂BD97951', NULL, '450200925889', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (926, 1, 1, 0, '黄色', 9, 9, '桂BD98032', NULL, '450200925794', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:40', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (927, 1, 1, 0, '黄色', 9, 9, '桂BD98057', NULL, '450200926766', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (928, 1, 1, 0, '黄色', 9, 9, '桂BD98062', NULL, '450200926717', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (929, 1, 1, 0, '黄色', 9, 9, '桂BD98137', NULL, '450200926368', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (930, 1, 1, 0, '黄色', 9, 9, '桂BD98231', NULL, '450200927083', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (931, 1, 1, 0, '黄色', 9, 9, '桂BD98236', NULL, '450200927441', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (932, 1, 1, 0, '黄色', 9, 9, '桂BD98271', NULL, '450200927259', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (933, 1, 1, 0, '黄色', 9, 9, '桂BD98317', NULL, '450200927130', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (934, 1, 1, 0, '黄色', 9, 9, '桂BD98351', NULL, '450200926403', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (935, 1, 1, 0, '黄色', 9, 9, '桂BD98357', NULL, '450200925810', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (936, 1, 1, 0, '黄色', 9, 9, '桂BD98371', NULL, '450200926794', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (937, 1, 1, 0, '黄色', 9, 9, '桂BD98512', NULL, '450200925857', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (938, 1, 1, 0, '黄色', 9, 9, '桂BD98603', NULL, '450200927946', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (939, 1, 1, 0, '黄色', 9, 9, '桂BD98611', NULL, '450200925787', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (940, 1, 1, 0, '黄色', 9, 9, '桂BD98921', NULL, '450200925724', NULL, '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (941, 1, 1, 0, '黄色', 9, 9, '桂BD99206', '', '450200925899', '', '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (942, 1, 1, 0, '黄色', 9, 9, '桂BD99531', '', '450200925924', '', '2021-01-09 00:00:00', NULL, '2021-01-14 00:00:00', '2020-08-17 10:56:41', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (943, 1, 1, 0, '黄色', 9, 9, '川A12345', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/3803fbf3398d4f4cb8a95745ca44174a.jpg', '14522', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/902efee8bea54223a4cb37c778972a06.jpg', '2021-08-17 00:00:00', NULL, '2021-08-17 00:00:00', '2020-08-17 19:04:13', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (944, 1, 1, 0, '银色', 9, 9, '皖A1234', 'http://newok.oss-cn-shenzhen.aliyuncs.com/edfaa839-765e-4171-b5a1-527aa95dd544', NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/cbabfdf8-4dcf-4259-b99e-0f0f443c3651', '2017-08-18 09:03:04', 'http://newok.oss-cn-shenzhen.aliyuncs.com/dd98d8e2-0889-4046-a24f-247e2404de35', NULL, '2020-08-18 09:03:29', 1, 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (945, 1, 1, 0, '白色', 9, 9, '川A12211', '', '123456444', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/0d97ec2b4db24bbf8872438235ef0c3e.png', '2022-08-19 00:00:00', NULL, '2022-08-19 00:00:00', '2020-08-19 17:05:44', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (946, 1, 1, 0, '橙色', 9, 9, '顶班', '', '123456', '', '2021-08-20 00:00:00', NULL, '2021-08-20 00:00:00', '2020-08-20 17:53:00', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (947, 1, 1, 0, '橙色', 9, 9, '桂BD59132', '', '123456', '', '2021-01-01 00:00:00', NULL, '2021-01-01 00:00:00', '2020-08-23 16:53:14', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (948, 1, 1, 0, '橙色', 9, 9, '桂BD85536', '', '123456', '', '2021-01-01 00:00:00', NULL, '2021-01-01 00:00:00', '2020-08-23 16:54:05', 1, 2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_car` VALUES (949, 1, 1, 0, '橙色', 9, 9, '桂BD87691', '', '123456', '', '2021-01-01 00:00:00', NULL, '2021-01-23 00:00:00', '2020-08-23 16:54:59', 1, 2, NULL, '橘色', '经济型', '木贝', '1212211212', '124214ghgn', '2020-11-03 00:00:00', '汽油', '0.5', '21312', '运输局', '高新区', '2020-11-03 00:00:00', '2020-12-12 00:00:00', '2020-11-03 00:00:00', 1, '2020-12-12 00:00:00', '通过', '21312312', '高德', 'V1', '21SD12AS', '2020-11-03 00:00:00', '2020-11-03 00:00:00', 1);
+
+-- ----------------------------
+-- Table structure for t_car_brand
+-- ----------------------------
+DROP TABLE IF EXISTS `t_car_brand`;
+CREATE TABLE `t_car_brand`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
+  `imgUrl` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '图片',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `state` smallint(1) NULL DEFAULT 1 COMMENT '状态(1=正常,2=删除)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆品牌' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_car_brand
+-- ----------------------------
+INSERT INTO `t_car_brand` VALUES (9, '东风', '', '', '2020-08-17 11:30:54', 1);
+
+-- ----------------------------
+-- Table structure for t_car_insurance
+-- ----------------------------
+DROP TABLE IF EXISTS `t_car_insurance`;
+CREATE TABLE `t_car_insurance`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `carId` int(11) NULL DEFAULT NULL COMMENT '车辆id',
+  `insurCom` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '保险公司名称',
+  `insurNum` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '保险号',
+  `insurType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '保险类型',
+  `insurCount` double(11, 2) NULL DEFAULT NULL COMMENT '保险金额',
+  `insurEff` date NULL DEFAULT NULL COMMENT '保险生效日期',
+  `insurExp` date NULL DEFAULT NULL COMMENT '保险到期时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '车辆保险' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_car_insurance
+-- ----------------------------
+INSERT INTO `t_car_insurance` VALUES (2, 949, '太平洋', 'T000001', '商业保险', 100.00, '2020-11-01', '2020-12-12');
+
+-- ----------------------------
+-- Table structure for t_car_model
+-- ----------------------------
+DROP TABLE IF EXISTS `t_car_model`;
+CREATE TABLE `t_car_model`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '名称',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `state` smallint(1) NULL DEFAULT 1 COMMENT '状态(1=正常,2=删除)',
+  `seat` int(11) NULL DEFAULT NULL COMMENT '座位数',
+  `brandId` int(11) NULL DEFAULT NULL COMMENT '品牌id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆车型' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_car_model
+-- ----------------------------
+INSERT INTO `t_car_model` VALUES (9, '出租车', '', '2020-08-17 11:31:06', 1, 4, 9);
+
+-- ----------------------------
+-- Table structure for t_car_service
+-- ----------------------------
+DROP TABLE IF EXISTS `t_car_service`;
+CREATE TABLE `t_car_service`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `carId` int(11) NULL DEFAULT NULL COMMENT '车辆id',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `serverCarModelId` int(11) NULL DEFAULT NULL COMMENT '服务车型id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2397 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '车辆经营业务' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_car_service
+-- ----------------------------
+INSERT INTO `t_car_service` VALUES (126, 43, 2, NULL);
+INSERT INTO `t_car_service` VALUES (127, 43, 4, NULL);
+INSERT INTO `t_car_service` VALUES (128, 43, 6, NULL);
+INSERT INTO `t_car_service` VALUES (129, 44, 2, NULL);
+INSERT INTO `t_car_service` VALUES (130, 44, 4, NULL);
+INSERT INTO `t_car_service` VALUES (131, 44, 6, NULL);
+INSERT INTO `t_car_service` VALUES (132, 45, 2, NULL);
+INSERT INTO `t_car_service` VALUES (133, 45, 4, NULL);
+INSERT INTO `t_car_service` VALUES (134, 45, 6, NULL);
+INSERT INTO `t_car_service` VALUES (135, 46, 2, NULL);
+INSERT INTO `t_car_service` VALUES (136, 46, 4, NULL);
+INSERT INTO `t_car_service` VALUES (137, 46, 6, NULL);
+INSERT INTO `t_car_service` VALUES (138, 47, 2, NULL);
+INSERT INTO `t_car_service` VALUES (139, 47, 4, NULL);
+INSERT INTO `t_car_service` VALUES (140, 47, 6, NULL);
+INSERT INTO `t_car_service` VALUES (141, 48, 2, NULL);
+INSERT INTO `t_car_service` VALUES (142, 48, 4, NULL);
+INSERT INTO `t_car_service` VALUES (143, 48, 6, NULL);
+INSERT INTO `t_car_service` VALUES (144, 49, 2, NULL);
+INSERT INTO `t_car_service` VALUES (145, 49, 4, NULL);
+INSERT INTO `t_car_service` VALUES (146, 49, 6, NULL);
+INSERT INTO `t_car_service` VALUES (147, 50, 2, NULL);
+INSERT INTO `t_car_service` VALUES (148, 50, 4, NULL);
+INSERT INTO `t_car_service` VALUES (149, 50, 6, NULL);
+INSERT INTO `t_car_service` VALUES (150, 51, 2, NULL);
+INSERT INTO `t_car_service` VALUES (151, 51, 4, NULL);
+INSERT INTO `t_car_service` VALUES (152, 51, 6, NULL);
+INSERT INTO `t_car_service` VALUES (153, 52, 2, NULL);
+INSERT INTO `t_car_service` VALUES (154, 52, 4, NULL);
+INSERT INTO `t_car_service` VALUES (155, 52, 6, NULL);
+INSERT INTO `t_car_service` VALUES (156, 53, 2, NULL);
+INSERT INTO `t_car_service` VALUES (157, 53, 4, NULL);
+INSERT INTO `t_car_service` VALUES (158, 53, 6, NULL);
+INSERT INTO `t_car_service` VALUES (159, 54, 2, NULL);
+INSERT INTO `t_car_service` VALUES (160, 54, 4, NULL);
+INSERT INTO `t_car_service` VALUES (161, 54, 6, NULL);
+INSERT INTO `t_car_service` VALUES (162, 55, 2, NULL);
+INSERT INTO `t_car_service` VALUES (163, 55, 4, NULL);
+INSERT INTO `t_car_service` VALUES (164, 55, 6, NULL);
+INSERT INTO `t_car_service` VALUES (165, 56, 2, NULL);
+INSERT INTO `t_car_service` VALUES (166, 56, 4, NULL);
+INSERT INTO `t_car_service` VALUES (167, 56, 6, NULL);
+INSERT INTO `t_car_service` VALUES (168, 57, 2, NULL);
+INSERT INTO `t_car_service` VALUES (169, 57, 4, NULL);
+INSERT INTO `t_car_service` VALUES (170, 57, 6, NULL);
+INSERT INTO `t_car_service` VALUES (171, 58, 2, NULL);
+INSERT INTO `t_car_service` VALUES (172, 58, 4, NULL);
+INSERT INTO `t_car_service` VALUES (173, 58, 6, NULL);
+INSERT INTO `t_car_service` VALUES (174, 59, 2, NULL);
+INSERT INTO `t_car_service` VALUES (175, 59, 4, NULL);
+INSERT INTO `t_car_service` VALUES (176, 59, 6, NULL);
+INSERT INTO `t_car_service` VALUES (177, 60, 2, NULL);
+INSERT INTO `t_car_service` VALUES (178, 60, 4, NULL);
+INSERT INTO `t_car_service` VALUES (179, 60, 6, NULL);
+INSERT INTO `t_car_service` VALUES (180, 61, 2, NULL);
+INSERT INTO `t_car_service` VALUES (181, 61, 4, NULL);
+INSERT INTO `t_car_service` VALUES (182, 61, 6, NULL);
+INSERT INTO `t_car_service` VALUES (183, 62, 2, NULL);
+INSERT INTO `t_car_service` VALUES (184, 62, 4, NULL);
+INSERT INTO `t_car_service` VALUES (185, 62, 6, NULL);
+INSERT INTO `t_car_service` VALUES (186, 63, 2, NULL);
+INSERT INTO `t_car_service` VALUES (187, 63, 4, NULL);
+INSERT INTO `t_car_service` VALUES (188, 63, 6, NULL);
+INSERT INTO `t_car_service` VALUES (189, 64, 2, NULL);
+INSERT INTO `t_car_service` VALUES (190, 64, 4, NULL);
+INSERT INTO `t_car_service` VALUES (191, 64, 6, NULL);
+INSERT INTO `t_car_service` VALUES (192, 65, 2, NULL);
+INSERT INTO `t_car_service` VALUES (193, 65, 4, NULL);
+INSERT INTO `t_car_service` VALUES (194, 65, 6, NULL);
+INSERT INTO `t_car_service` VALUES (195, 66, 2, NULL);
+INSERT INTO `t_car_service` VALUES (196, 66, 4, NULL);
+INSERT INTO `t_car_service` VALUES (197, 66, 6, NULL);
+INSERT INTO `t_car_service` VALUES (198, 67, 2, NULL);
+INSERT INTO `t_car_service` VALUES (199, 67, 4, NULL);
+INSERT INTO `t_car_service` VALUES (200, 67, 6, NULL);
+INSERT INTO `t_car_service` VALUES (201, 68, 2, NULL);
+INSERT INTO `t_car_service` VALUES (202, 68, 4, NULL);
+INSERT INTO `t_car_service` VALUES (203, 68, 6, NULL);
+INSERT INTO `t_car_service` VALUES (204, 69, 2, NULL);
+INSERT INTO `t_car_service` VALUES (205, 69, 4, NULL);
+INSERT INTO `t_car_service` VALUES (206, 69, 6, NULL);
+INSERT INTO `t_car_service` VALUES (207, 70, 2, NULL);
+INSERT INTO `t_car_service` VALUES (208, 70, 4, NULL);
+INSERT INTO `t_car_service` VALUES (209, 70, 6, NULL);
+INSERT INTO `t_car_service` VALUES (210, 71, 2, NULL);
+INSERT INTO `t_car_service` VALUES (211, 71, 4, NULL);
+INSERT INTO `t_car_service` VALUES (212, 71, 6, NULL);
+INSERT INTO `t_car_service` VALUES (213, 72, 2, NULL);
+INSERT INTO `t_car_service` VALUES (214, 72, 4, NULL);
+INSERT INTO `t_car_service` VALUES (215, 72, 6, NULL);
+INSERT INTO `t_car_service` VALUES (216, 73, 2, NULL);
+INSERT INTO `t_car_service` VALUES (217, 73, 4, NULL);
+INSERT INTO `t_car_service` VALUES (218, 73, 6, NULL);
+INSERT INTO `t_car_service` VALUES (219, 74, 2, NULL);
+INSERT INTO `t_car_service` VALUES (220, 74, 4, NULL);
+INSERT INTO `t_car_service` VALUES (221, 74, 6, NULL);
+INSERT INTO `t_car_service` VALUES (222, 75, 2, NULL);
+INSERT INTO `t_car_service` VALUES (223, 75, 4, NULL);
+INSERT INTO `t_car_service` VALUES (224, 75, 6, NULL);
+INSERT INTO `t_car_service` VALUES (225, 76, 2, NULL);
+INSERT INTO `t_car_service` VALUES (226, 76, 4, NULL);
+INSERT INTO `t_car_service` VALUES (227, 76, 6, NULL);
+INSERT INTO `t_car_service` VALUES (228, 77, 2, NULL);
+INSERT INTO `t_car_service` VALUES (229, 77, 4, NULL);
+INSERT INTO `t_car_service` VALUES (230, 77, 6, NULL);
+INSERT INTO `t_car_service` VALUES (231, 78, 2, NULL);
+INSERT INTO `t_car_service` VALUES (232, 78, 4, NULL);
+INSERT INTO `t_car_service` VALUES (233, 78, 6, NULL);
+INSERT INTO `t_car_service` VALUES (234, 79, 2, NULL);
+INSERT INTO `t_car_service` VALUES (235, 79, 4, NULL);
+INSERT INTO `t_car_service` VALUES (236, 79, 6, NULL);
+INSERT INTO `t_car_service` VALUES (237, 80, 2, NULL);
+INSERT INTO `t_car_service` VALUES (238, 80, 4, NULL);
+INSERT INTO `t_car_service` VALUES (239, 80, 6, NULL);
+INSERT INTO `t_car_service` VALUES (240, 81, 2, NULL);
+INSERT INTO `t_car_service` VALUES (241, 81, 4, NULL);
+INSERT INTO `t_car_service` VALUES (242, 81, 6, NULL);
+INSERT INTO `t_car_service` VALUES (243, 82, 2, NULL);
+INSERT INTO `t_car_service` VALUES (244, 82, 4, NULL);
+INSERT INTO `t_car_service` VALUES (245, 82, 6, NULL);
+INSERT INTO `t_car_service` VALUES (246, 83, 2, NULL);
+INSERT INTO `t_car_service` VALUES (247, 83, 4, NULL);
+INSERT INTO `t_car_service` VALUES (248, 83, 6, NULL);
+INSERT INTO `t_car_service` VALUES (249, 84, 2, NULL);
+INSERT INTO `t_car_service` VALUES (250, 84, 4, NULL);
+INSERT INTO `t_car_service` VALUES (251, 84, 6, NULL);
+INSERT INTO `t_car_service` VALUES (252, 85, 2, NULL);
+INSERT INTO `t_car_service` VALUES (253, 85, 4, NULL);
+INSERT INTO `t_car_service` VALUES (254, 85, 6, NULL);
+INSERT INTO `t_car_service` VALUES (255, 86, 2, NULL);
+INSERT INTO `t_car_service` VALUES (256, 86, 4, NULL);
+INSERT INTO `t_car_service` VALUES (257, 86, 6, NULL);
+INSERT INTO `t_car_service` VALUES (258, 87, 2, NULL);
+INSERT INTO `t_car_service` VALUES (259, 87, 4, NULL);
+INSERT INTO `t_car_service` VALUES (260, 87, 6, NULL);
+INSERT INTO `t_car_service` VALUES (261, 88, 2, NULL);
+INSERT INTO `t_car_service` VALUES (262, 88, 4, NULL);
+INSERT INTO `t_car_service` VALUES (263, 88, 6, NULL);
+INSERT INTO `t_car_service` VALUES (264, 89, 2, NULL);
+INSERT INTO `t_car_service` VALUES (265, 89, 4, NULL);
+INSERT INTO `t_car_service` VALUES (266, 89, 6, NULL);
+INSERT INTO `t_car_service` VALUES (267, 90, 2, NULL);
+INSERT INTO `t_car_service` VALUES (268, 90, 4, NULL);
+INSERT INTO `t_car_service` VALUES (269, 90, 6, NULL);
+INSERT INTO `t_car_service` VALUES (270, 91, 2, NULL);
+INSERT INTO `t_car_service` VALUES (271, 91, 4, NULL);
+INSERT INTO `t_car_service` VALUES (272, 91, 6, NULL);
+INSERT INTO `t_car_service` VALUES (273, 92, 2, NULL);
+INSERT INTO `t_car_service` VALUES (274, 92, 4, NULL);
+INSERT INTO `t_car_service` VALUES (275, 92, 6, NULL);
+INSERT INTO `t_car_service` VALUES (276, 93, 2, NULL);
+INSERT INTO `t_car_service` VALUES (277, 93, 4, NULL);
+INSERT INTO `t_car_service` VALUES (278, 93, 6, NULL);
+INSERT INTO `t_car_service` VALUES (279, 94, 2, NULL);
+INSERT INTO `t_car_service` VALUES (280, 94, 4, NULL);
+INSERT INTO `t_car_service` VALUES (281, 94, 6, NULL);
+INSERT INTO `t_car_service` VALUES (282, 95, 2, NULL);
+INSERT INTO `t_car_service` VALUES (283, 95, 4, NULL);
+INSERT INTO `t_car_service` VALUES (284, 95, 6, NULL);
+INSERT INTO `t_car_service` VALUES (285, 96, 2, NULL);
+INSERT INTO `t_car_service` VALUES (286, 96, 4, NULL);
+INSERT INTO `t_car_service` VALUES (287, 96, 6, NULL);
+INSERT INTO `t_car_service` VALUES (288, 97, 2, NULL);
+INSERT INTO `t_car_service` VALUES (289, 97, 4, NULL);
+INSERT INTO `t_car_service` VALUES (290, 97, 6, NULL);
+INSERT INTO `t_car_service` VALUES (291, 98, 2, NULL);
+INSERT INTO `t_car_service` VALUES (292, 98, 4, NULL);
+INSERT INTO `t_car_service` VALUES (293, 98, 6, NULL);
+INSERT INTO `t_car_service` VALUES (294, 99, 2, NULL);
+INSERT INTO `t_car_service` VALUES (295, 99, 4, NULL);
+INSERT INTO `t_car_service` VALUES (296, 99, 6, NULL);
+INSERT INTO `t_car_service` VALUES (297, 100, 2, NULL);
+INSERT INTO `t_car_service` VALUES (298, 100, 4, NULL);
+INSERT INTO `t_car_service` VALUES (299, 100, 6, NULL);
+INSERT INTO `t_car_service` VALUES (300, 101, 2, NULL);
+INSERT INTO `t_car_service` VALUES (301, 101, 4, NULL);
+INSERT INTO `t_car_service` VALUES (302, 101, 6, NULL);
+INSERT INTO `t_car_service` VALUES (303, 102, 2, NULL);
+INSERT INTO `t_car_service` VALUES (304, 102, 4, NULL);
+INSERT INTO `t_car_service` VALUES (305, 102, 6, NULL);
+INSERT INTO `t_car_service` VALUES (306, 103, 2, NULL);
+INSERT INTO `t_car_service` VALUES (307, 103, 4, NULL);
+INSERT INTO `t_car_service` VALUES (308, 103, 6, NULL);
+INSERT INTO `t_car_service` VALUES (309, 104, 2, NULL);
+INSERT INTO `t_car_service` VALUES (310, 104, 4, NULL);
+INSERT INTO `t_car_service` VALUES (311, 104, 6, NULL);
+INSERT INTO `t_car_service` VALUES (312, 105, 2, NULL);
+INSERT INTO `t_car_service` VALUES (313, 105, 4, NULL);
+INSERT INTO `t_car_service` VALUES (314, 105, 6, NULL);
+INSERT INTO `t_car_service` VALUES (315, 106, 2, NULL);
+INSERT INTO `t_car_service` VALUES (316, 106, 4, NULL);
+INSERT INTO `t_car_service` VALUES (317, 106, 6, NULL);
+INSERT INTO `t_car_service` VALUES (318, 107, 2, NULL);
+INSERT INTO `t_car_service` VALUES (319, 107, 4, NULL);
+INSERT INTO `t_car_service` VALUES (320, 107, 6, NULL);
+INSERT INTO `t_car_service` VALUES (321, 108, 2, NULL);
+INSERT INTO `t_car_service` VALUES (322, 108, 4, NULL);
+INSERT INTO `t_car_service` VALUES (323, 108, 6, NULL);
+INSERT INTO `t_car_service` VALUES (324, 109, 2, NULL);
+INSERT INTO `t_car_service` VALUES (325, 109, 4, NULL);
+INSERT INTO `t_car_service` VALUES (326, 109, 6, NULL);
+INSERT INTO `t_car_service` VALUES (327, 110, 2, NULL);
+INSERT INTO `t_car_service` VALUES (328, 110, 4, NULL);
+INSERT INTO `t_car_service` VALUES (329, 110, 6, NULL);
+INSERT INTO `t_car_service` VALUES (330, 111, 2, NULL);
+INSERT INTO `t_car_service` VALUES (331, 111, 4, NULL);
+INSERT INTO `t_car_service` VALUES (332, 111, 6, NULL);
+INSERT INTO `t_car_service` VALUES (333, 112, 2, NULL);
+INSERT INTO `t_car_service` VALUES (334, 112, 4, NULL);
+INSERT INTO `t_car_service` VALUES (335, 112, 6, NULL);
+INSERT INTO `t_car_service` VALUES (336, 113, 2, NULL);
+INSERT INTO `t_car_service` VALUES (337, 113, 4, NULL);
+INSERT INTO `t_car_service` VALUES (338, 113, 6, NULL);
+INSERT INTO `t_car_service` VALUES (339, 114, 2, NULL);
+INSERT INTO `t_car_service` VALUES (340, 114, 4, NULL);
+INSERT INTO `t_car_service` VALUES (341, 114, 6, NULL);
+INSERT INTO `t_car_service` VALUES (342, 115, 2, NULL);
+INSERT INTO `t_car_service` VALUES (343, 115, 4, NULL);
+INSERT INTO `t_car_service` VALUES (344, 115, 6, NULL);
+INSERT INTO `t_car_service` VALUES (345, 116, 2, NULL);
+INSERT INTO `t_car_service` VALUES (346, 116, 4, NULL);
+INSERT INTO `t_car_service` VALUES (347, 116, 6, NULL);
+INSERT INTO `t_car_service` VALUES (348, 117, 2, NULL);
+INSERT INTO `t_car_service` VALUES (349, 117, 4, NULL);
+INSERT INTO `t_car_service` VALUES (350, 117, 6, NULL);
+INSERT INTO `t_car_service` VALUES (351, 118, 2, NULL);
+INSERT INTO `t_car_service` VALUES (352, 118, 4, NULL);
+INSERT INTO `t_car_service` VALUES (353, 118, 6, NULL);
+INSERT INTO `t_car_service` VALUES (354, 119, 2, NULL);
+INSERT INTO `t_car_service` VALUES (355, 119, 4, NULL);
+INSERT INTO `t_car_service` VALUES (356, 119, 6, NULL);
+INSERT INTO `t_car_service` VALUES (357, 120, 2, NULL);
+INSERT INTO `t_car_service` VALUES (358, 120, 4, NULL);
+INSERT INTO `t_car_service` VALUES (359, 120, 6, NULL);
+INSERT INTO `t_car_service` VALUES (360, 121, 2, NULL);
+INSERT INTO `t_car_service` VALUES (361, 121, 4, NULL);
+INSERT INTO `t_car_service` VALUES (362, 121, 6, NULL);
+INSERT INTO `t_car_service` VALUES (363, 122, 2, NULL);
+INSERT INTO `t_car_service` VALUES (364, 122, 4, NULL);
+INSERT INTO `t_car_service` VALUES (365, 122, 6, NULL);
+INSERT INTO `t_car_service` VALUES (366, 123, 2, NULL);
+INSERT INTO `t_car_service` VALUES (367, 123, 4, NULL);
+INSERT INTO `t_car_service` VALUES (368, 123, 6, NULL);
+INSERT INTO `t_car_service` VALUES (369, 124, 2, NULL);
+INSERT INTO `t_car_service` VALUES (370, 124, 4, NULL);
+INSERT INTO `t_car_service` VALUES (371, 124, 6, NULL);
+INSERT INTO `t_car_service` VALUES (372, 125, 2, NULL);
+INSERT INTO `t_car_service` VALUES (373, 125, 4, NULL);
+INSERT INTO `t_car_service` VALUES (374, 125, 6, NULL);
+INSERT INTO `t_car_service` VALUES (375, 126, 2, NULL);
+INSERT INTO `t_car_service` VALUES (376, 126, 4, NULL);
+INSERT INTO `t_car_service` VALUES (377, 126, 6, NULL);
+INSERT INTO `t_car_service` VALUES (378, 127, 2, NULL);
+INSERT INTO `t_car_service` VALUES (379, 127, 4, NULL);
+INSERT INTO `t_car_service` VALUES (380, 127, 6, NULL);
+INSERT INTO `t_car_service` VALUES (381, 128, 2, NULL);
+INSERT INTO `t_car_service` VALUES (382, 128, 4, NULL);
+INSERT INTO `t_car_service` VALUES (383, 128, 6, NULL);
+INSERT INTO `t_car_service` VALUES (384, 129, 2, NULL);
+INSERT INTO `t_car_service` VALUES (385, 129, 4, NULL);
+INSERT INTO `t_car_service` VALUES (386, 129, 6, NULL);
+INSERT INTO `t_car_service` VALUES (387, 130, 2, NULL);
+INSERT INTO `t_car_service` VALUES (388, 130, 4, NULL);
+INSERT INTO `t_car_service` VALUES (389, 130, 6, NULL);
+INSERT INTO `t_car_service` VALUES (390, 131, 2, NULL);
+INSERT INTO `t_car_service` VALUES (391, 131, 4, NULL);
+INSERT INTO `t_car_service` VALUES (392, 131, 6, NULL);
+INSERT INTO `t_car_service` VALUES (393, 132, 2, NULL);
+INSERT INTO `t_car_service` VALUES (394, 132, 4, NULL);
+INSERT INTO `t_car_service` VALUES (395, 132, 6, NULL);
+INSERT INTO `t_car_service` VALUES (396, 133, 2, NULL);
+INSERT INTO `t_car_service` VALUES (397, 133, 4, NULL);
+INSERT INTO `t_car_service` VALUES (398, 133, 6, NULL);
+INSERT INTO `t_car_service` VALUES (399, 134, 2, NULL);
+INSERT INTO `t_car_service` VALUES (400, 134, 4, NULL);
+INSERT INTO `t_car_service` VALUES (401, 134, 6, NULL);
+INSERT INTO `t_car_service` VALUES (402, 135, 2, NULL);
+INSERT INTO `t_car_service` VALUES (403, 135, 4, NULL);
+INSERT INTO `t_car_service` VALUES (404, 135, 6, NULL);
+INSERT INTO `t_car_service` VALUES (405, 136, 2, NULL);
+INSERT INTO `t_car_service` VALUES (406, 136, 4, NULL);
+INSERT INTO `t_car_service` VALUES (407, 136, 6, NULL);
+INSERT INTO `t_car_service` VALUES (408, 137, 2, NULL);
+INSERT INTO `t_car_service` VALUES (409, 137, 4, NULL);
+INSERT INTO `t_car_service` VALUES (410, 137, 6, NULL);
+INSERT INTO `t_car_service` VALUES (411, 138, 2, NULL);
+INSERT INTO `t_car_service` VALUES (412, 138, 4, NULL);
+INSERT INTO `t_car_service` VALUES (413, 138, 6, NULL);
+INSERT INTO `t_car_service` VALUES (414, 139, 2, NULL);
+INSERT INTO `t_car_service` VALUES (415, 139, 4, NULL);
+INSERT INTO `t_car_service` VALUES (416, 139, 6, NULL);
+INSERT INTO `t_car_service` VALUES (417, 140, 2, NULL);
+INSERT INTO `t_car_service` VALUES (418, 140, 4, NULL);
+INSERT INTO `t_car_service` VALUES (419, 140, 6, NULL);
+INSERT INTO `t_car_service` VALUES (420, 141, 2, NULL);
+INSERT INTO `t_car_service` VALUES (421, 141, 4, NULL);
+INSERT INTO `t_car_service` VALUES (422, 141, 6, NULL);
+INSERT INTO `t_car_service` VALUES (423, 142, 2, NULL);
+INSERT INTO `t_car_service` VALUES (424, 142, 4, NULL);
+INSERT INTO `t_car_service` VALUES (425, 142, 6, NULL);
+INSERT INTO `t_car_service` VALUES (426, 143, 2, NULL);
+INSERT INTO `t_car_service` VALUES (427, 143, 4, NULL);
+INSERT INTO `t_car_service` VALUES (428, 143, 6, NULL);
+INSERT INTO `t_car_service` VALUES (429, 144, 2, NULL);
+INSERT INTO `t_car_service` VALUES (430, 144, 4, NULL);
+INSERT INTO `t_car_service` VALUES (431, 144, 6, NULL);
+INSERT INTO `t_car_service` VALUES (432, 145, 2, NULL);
+INSERT INTO `t_car_service` VALUES (433, 145, 4, NULL);
+INSERT INTO `t_car_service` VALUES (434, 145, 6, NULL);
+INSERT INTO `t_car_service` VALUES (435, 146, 2, NULL);
+INSERT INTO `t_car_service` VALUES (436, 146, 4, NULL);
+INSERT INTO `t_car_service` VALUES (437, 146, 6, NULL);
+INSERT INTO `t_car_service` VALUES (438, 147, 2, NULL);
+INSERT INTO `t_car_service` VALUES (439, 147, 4, NULL);
+INSERT INTO `t_car_service` VALUES (440, 147, 6, NULL);
+INSERT INTO `t_car_service` VALUES (441, 148, 2, NULL);
+INSERT INTO `t_car_service` VALUES (442, 148, 4, NULL);
+INSERT INTO `t_car_service` VALUES (443, 148, 6, NULL);
+INSERT INTO `t_car_service` VALUES (444, 149, 2, NULL);
+INSERT INTO `t_car_service` VALUES (445, 149, 4, NULL);
+INSERT INTO `t_car_service` VALUES (446, 149, 6, NULL);
+INSERT INTO `t_car_service` VALUES (447, 150, 2, NULL);
+INSERT INTO `t_car_service` VALUES (448, 150, 4, NULL);
+INSERT INTO `t_car_service` VALUES (449, 150, 6, NULL);
+INSERT INTO `t_car_service` VALUES (450, 151, 2, NULL);
+INSERT INTO `t_car_service` VALUES (451, 151, 4, NULL);
+INSERT INTO `t_car_service` VALUES (452, 151, 6, NULL);
+INSERT INTO `t_car_service` VALUES (453, 152, 2, NULL);
+INSERT INTO `t_car_service` VALUES (454, 152, 4, NULL);
+INSERT INTO `t_car_service` VALUES (455, 152, 6, NULL);
+INSERT INTO `t_car_service` VALUES (456, 153, 2, NULL);
+INSERT INTO `t_car_service` VALUES (457, 153, 4, NULL);
+INSERT INTO `t_car_service` VALUES (458, 153, 6, NULL);
+INSERT INTO `t_car_service` VALUES (459, 154, 2, NULL);
+INSERT INTO `t_car_service` VALUES (460, 154, 4, NULL);
+INSERT INTO `t_car_service` VALUES (461, 154, 6, NULL);
+INSERT INTO `t_car_service` VALUES (462, 155, 2, NULL);
+INSERT INTO `t_car_service` VALUES (463, 155, 4, NULL);
+INSERT INTO `t_car_service` VALUES (464, 155, 6, NULL);
+INSERT INTO `t_car_service` VALUES (465, 156, 2, NULL);
+INSERT INTO `t_car_service` VALUES (466, 156, 4, NULL);
+INSERT INTO `t_car_service` VALUES (467, 156, 6, NULL);
+INSERT INTO `t_car_service` VALUES (468, 157, 2, NULL);
+INSERT INTO `t_car_service` VALUES (469, 157, 4, NULL);
+INSERT INTO `t_car_service` VALUES (470, 157, 6, NULL);
+INSERT INTO `t_car_service` VALUES (471, 158, 2, NULL);
+INSERT INTO `t_car_service` VALUES (472, 158, 4, NULL);
+INSERT INTO `t_car_service` VALUES (473, 158, 6, NULL);
+INSERT INTO `t_car_service` VALUES (474, 159, 2, NULL);
+INSERT INTO `t_car_service` VALUES (475, 159, 4, NULL);
+INSERT INTO `t_car_service` VALUES (476, 159, 6, NULL);
+INSERT INTO `t_car_service` VALUES (477, 160, 2, NULL);
+INSERT INTO `t_car_service` VALUES (478, 160, 4, NULL);
+INSERT INTO `t_car_service` VALUES (479, 160, 6, NULL);
+INSERT INTO `t_car_service` VALUES (480, 161, 2, NULL);
+INSERT INTO `t_car_service` VALUES (481, 161, 4, NULL);
+INSERT INTO `t_car_service` VALUES (482, 161, 6, NULL);
+INSERT INTO `t_car_service` VALUES (483, 162, 2, NULL);
+INSERT INTO `t_car_service` VALUES (484, 162, 4, NULL);
+INSERT INTO `t_car_service` VALUES (485, 162, 6, NULL);
+INSERT INTO `t_car_service` VALUES (486, 163, 2, NULL);
+INSERT INTO `t_car_service` VALUES (487, 163, 4, NULL);
+INSERT INTO `t_car_service` VALUES (488, 163, 6, NULL);
+INSERT INTO `t_car_service` VALUES (489, 164, 2, NULL);
+INSERT INTO `t_car_service` VALUES (490, 164, 4, NULL);
+INSERT INTO `t_car_service` VALUES (491, 164, 6, NULL);
+INSERT INTO `t_car_service` VALUES (492, 165, 2, NULL);
+INSERT INTO `t_car_service` VALUES (493, 165, 4, NULL);
+INSERT INTO `t_car_service` VALUES (494, 165, 6, NULL);
+INSERT INTO `t_car_service` VALUES (495, 166, 2, NULL);
+INSERT INTO `t_car_service` VALUES (496, 166, 4, NULL);
+INSERT INTO `t_car_service` VALUES (497, 166, 6, NULL);
+INSERT INTO `t_car_service` VALUES (498, 167, 2, NULL);
+INSERT INTO `t_car_service` VALUES (499, 167, 4, NULL);
+INSERT INTO `t_car_service` VALUES (500, 167, 6, NULL);
+INSERT INTO `t_car_service` VALUES (501, 168, 2, NULL);
+INSERT INTO `t_car_service` VALUES (502, 168, 4, NULL);
+INSERT INTO `t_car_service` VALUES (503, 168, 6, NULL);
+INSERT INTO `t_car_service` VALUES (504, 169, 2, NULL);
+INSERT INTO `t_car_service` VALUES (505, 169, 4, NULL);
+INSERT INTO `t_car_service` VALUES (506, 169, 6, NULL);
+INSERT INTO `t_car_service` VALUES (507, 170, 2, NULL);
+INSERT INTO `t_car_service` VALUES (508, 170, 4, NULL);
+INSERT INTO `t_car_service` VALUES (509, 170, 6, NULL);
+INSERT INTO `t_car_service` VALUES (510, 171, 2, NULL);
+INSERT INTO `t_car_service` VALUES (511, 171, 4, NULL);
+INSERT INTO `t_car_service` VALUES (512, 171, 6, NULL);
+INSERT INTO `t_car_service` VALUES (513, 172, 2, NULL);
+INSERT INTO `t_car_service` VALUES (514, 172, 4, NULL);
+INSERT INTO `t_car_service` VALUES (515, 172, 6, NULL);
+INSERT INTO `t_car_service` VALUES (516, 173, 2, NULL);
+INSERT INTO `t_car_service` VALUES (517, 173, 4, NULL);
+INSERT INTO `t_car_service` VALUES (518, 173, 6, NULL);
+INSERT INTO `t_car_service` VALUES (519, 174, 2, NULL);
+INSERT INTO `t_car_service` VALUES (520, 174, 4, NULL);
+INSERT INTO `t_car_service` VALUES (521, 174, 6, NULL);
+INSERT INTO `t_car_service` VALUES (522, 175, 2, NULL);
+INSERT INTO `t_car_service` VALUES (523, 175, 4, NULL);
+INSERT INTO `t_car_service` VALUES (524, 175, 6, NULL);
+INSERT INTO `t_car_service` VALUES (525, 176, 2, NULL);
+INSERT INTO `t_car_service` VALUES (526, 176, 4, NULL);
+INSERT INTO `t_car_service` VALUES (527, 176, 6, NULL);
+INSERT INTO `t_car_service` VALUES (528, 177, 2, NULL);
+INSERT INTO `t_car_service` VALUES (529, 177, 4, NULL);
+INSERT INTO `t_car_service` VALUES (530, 177, 6, NULL);
+INSERT INTO `t_car_service` VALUES (531, 178, 2, NULL);
+INSERT INTO `t_car_service` VALUES (532, 178, 4, NULL);
+INSERT INTO `t_car_service` VALUES (533, 178, 6, NULL);
+INSERT INTO `t_car_service` VALUES (534, 179, 2, NULL);
+INSERT INTO `t_car_service` VALUES (535, 179, 4, NULL);
+INSERT INTO `t_car_service` VALUES (536, 179, 6, NULL);
+INSERT INTO `t_car_service` VALUES (537, 180, 2, NULL);
+INSERT INTO `t_car_service` VALUES (538, 180, 4, NULL);
+INSERT INTO `t_car_service` VALUES (539, 180, 6, NULL);
+INSERT INTO `t_car_service` VALUES (540, 181, 2, NULL);
+INSERT INTO `t_car_service` VALUES (541, 181, 4, NULL);
+INSERT INTO `t_car_service` VALUES (542, 181, 6, NULL);
+INSERT INTO `t_car_service` VALUES (543, 182, 2, NULL);
+INSERT INTO `t_car_service` VALUES (544, 182, 4, NULL);
+INSERT INTO `t_car_service` VALUES (545, 182, 6, NULL);
+INSERT INTO `t_car_service` VALUES (546, 183, 2, NULL);
+INSERT INTO `t_car_service` VALUES (547, 183, 4, NULL);
+INSERT INTO `t_car_service` VALUES (548, 183, 6, NULL);
+INSERT INTO `t_car_service` VALUES (549, 184, 2, NULL);
+INSERT INTO `t_car_service` VALUES (550, 184, 4, NULL);
+INSERT INTO `t_car_service` VALUES (551, 184, 6, NULL);
+INSERT INTO `t_car_service` VALUES (552, 185, 2, NULL);
+INSERT INTO `t_car_service` VALUES (553, 185, 4, NULL);
+INSERT INTO `t_car_service` VALUES (554, 185, 6, NULL);
+INSERT INTO `t_car_service` VALUES (555, 186, 2, NULL);
+INSERT INTO `t_car_service` VALUES (556, 186, 4, NULL);
+INSERT INTO `t_car_service` VALUES (557, 186, 6, NULL);
+INSERT INTO `t_car_service` VALUES (558, 187, 2, NULL);
+INSERT INTO `t_car_service` VALUES (559, 187, 4, NULL);
+INSERT INTO `t_car_service` VALUES (560, 187, 6, NULL);
+INSERT INTO `t_car_service` VALUES (561, 188, 2, NULL);
+INSERT INTO `t_car_service` VALUES (562, 188, 4, NULL);
+INSERT INTO `t_car_service` VALUES (563, 188, 6, NULL);
+INSERT INTO `t_car_service` VALUES (564, 189, 2, NULL);
+INSERT INTO `t_car_service` VALUES (565, 189, 4, NULL);
+INSERT INTO `t_car_service` VALUES (566, 189, 6, NULL);
+INSERT INTO `t_car_service` VALUES (567, 190, 2, NULL);
+INSERT INTO `t_car_service` VALUES (568, 190, 4, NULL);
+INSERT INTO `t_car_service` VALUES (569, 190, 6, NULL);
+INSERT INTO `t_car_service` VALUES (570, 191, 2, NULL);
+INSERT INTO `t_car_service` VALUES (571, 191, 4, NULL);
+INSERT INTO `t_car_service` VALUES (572, 191, 6, NULL);
+INSERT INTO `t_car_service` VALUES (573, 192, 2, NULL);
+INSERT INTO `t_car_service` VALUES (574, 192, 4, NULL);
+INSERT INTO `t_car_service` VALUES (575, 192, 6, NULL);
+INSERT INTO `t_car_service` VALUES (576, 193, 2, NULL);
+INSERT INTO `t_car_service` VALUES (577, 193, 4, NULL);
+INSERT INTO `t_car_service` VALUES (578, 193, 6, NULL);
+INSERT INTO `t_car_service` VALUES (579, 194, 2, NULL);
+INSERT INTO `t_car_service` VALUES (580, 194, 4, NULL);
+INSERT INTO `t_car_service` VALUES (581, 194, 6, NULL);
+INSERT INTO `t_car_service` VALUES (582, 195, 2, NULL);
+INSERT INTO `t_car_service` VALUES (583, 195, 4, NULL);
+INSERT INTO `t_car_service` VALUES (584, 195, 6, NULL);
+INSERT INTO `t_car_service` VALUES (585, 196, 2, NULL);
+INSERT INTO `t_car_service` VALUES (586, 196, 4, NULL);
+INSERT INTO `t_car_service` VALUES (587, 196, 6, NULL);
+INSERT INTO `t_car_service` VALUES (588, 197, 2, NULL);
+INSERT INTO `t_car_service` VALUES (589, 197, 4, NULL);
+INSERT INTO `t_car_service` VALUES (590, 197, 6, NULL);
+INSERT INTO `t_car_service` VALUES (591, 198, 2, NULL);
+INSERT INTO `t_car_service` VALUES (592, 198, 4, NULL);
+INSERT INTO `t_car_service` VALUES (593, 198, 6, NULL);
+INSERT INTO `t_car_service` VALUES (594, 199, 2, NULL);
+INSERT INTO `t_car_service` VALUES (595, 199, 4, NULL);
+INSERT INTO `t_car_service` VALUES (596, 199, 6, NULL);
+INSERT INTO `t_car_service` VALUES (597, 200, 2, NULL);
+INSERT INTO `t_car_service` VALUES (598, 200, 4, NULL);
+INSERT INTO `t_car_service` VALUES (599, 200, 6, NULL);
+INSERT INTO `t_car_service` VALUES (600, 201, 2, NULL);
+INSERT INTO `t_car_service` VALUES (601, 201, 4, NULL);
+INSERT INTO `t_car_service` VALUES (602, 201, 6, NULL);
+INSERT INTO `t_car_service` VALUES (603, 202, 2, NULL);
+INSERT INTO `t_car_service` VALUES (604, 202, 4, NULL);
+INSERT INTO `t_car_service` VALUES (605, 202, 6, NULL);
+INSERT INTO `t_car_service` VALUES (606, 203, 2, NULL);
+INSERT INTO `t_car_service` VALUES (607, 203, 4, NULL);
+INSERT INTO `t_car_service` VALUES (608, 203, 6, NULL);
+INSERT INTO `t_car_service` VALUES (609, 204, 2, NULL);
+INSERT INTO `t_car_service` VALUES (610, 204, 4, NULL);
+INSERT INTO `t_car_service` VALUES (611, 204, 6, NULL);
+INSERT INTO `t_car_service` VALUES (612, 205, 2, NULL);
+INSERT INTO `t_car_service` VALUES (613, 205, 4, NULL);
+INSERT INTO `t_car_service` VALUES (614, 205, 6, NULL);
+INSERT INTO `t_car_service` VALUES (615, 206, 2, NULL);
+INSERT INTO `t_car_service` VALUES (616, 206, 4, NULL);
+INSERT INTO `t_car_service` VALUES (617, 206, 6, NULL);
+INSERT INTO `t_car_service` VALUES (618, 207, 2, NULL);
+INSERT INTO `t_car_service` VALUES (619, 207, 4, NULL);
+INSERT INTO `t_car_service` VALUES (620, 207, 6, NULL);
+INSERT INTO `t_car_service` VALUES (621, 208, 2, NULL);
+INSERT INTO `t_car_service` VALUES (622, 208, 4, NULL);
+INSERT INTO `t_car_service` VALUES (623, 208, 6, NULL);
+INSERT INTO `t_car_service` VALUES (624, 209, 2, NULL);
+INSERT INTO `t_car_service` VALUES (625, 209, 4, NULL);
+INSERT INTO `t_car_service` VALUES (626, 209, 6, NULL);
+INSERT INTO `t_car_service` VALUES (627, 210, 2, NULL);
+INSERT INTO `t_car_service` VALUES (628, 210, 4, NULL);
+INSERT INTO `t_car_service` VALUES (629, 210, 6, NULL);
+INSERT INTO `t_car_service` VALUES (630, 211, 2, NULL);
+INSERT INTO `t_car_service` VALUES (631, 211, 4, NULL);
+INSERT INTO `t_car_service` VALUES (632, 211, 6, NULL);
+INSERT INTO `t_car_service` VALUES (633, 212, 2, NULL);
+INSERT INTO `t_car_service` VALUES (634, 212, 4, NULL);
+INSERT INTO `t_car_service` VALUES (635, 212, 6, NULL);
+INSERT INTO `t_car_service` VALUES (636, 213, 2, NULL);
+INSERT INTO `t_car_service` VALUES (637, 213, 4, NULL);
+INSERT INTO `t_car_service` VALUES (638, 213, 6, NULL);
+INSERT INTO `t_car_service` VALUES (639, 214, 2, NULL);
+INSERT INTO `t_car_service` VALUES (640, 214, 4, NULL);
+INSERT INTO `t_car_service` VALUES (641, 214, 6, NULL);
+INSERT INTO `t_car_service` VALUES (642, 215, 2, NULL);
+INSERT INTO `t_car_service` VALUES (643, 215, 4, NULL);
+INSERT INTO `t_car_service` VALUES (644, 215, 6, NULL);
+INSERT INTO `t_car_service` VALUES (645, 216, 2, NULL);
+INSERT INTO `t_car_service` VALUES (646, 216, 4, NULL);
+INSERT INTO `t_car_service` VALUES (647, 216, 6, NULL);
+INSERT INTO `t_car_service` VALUES (648, 217, 2, NULL);
+INSERT INTO `t_car_service` VALUES (649, 217, 4, NULL);
+INSERT INTO `t_car_service` VALUES (650, 217, 6, NULL);
+INSERT INTO `t_car_service` VALUES (651, 218, 2, NULL);
+INSERT INTO `t_car_service` VALUES (652, 218, 4, NULL);
+INSERT INTO `t_car_service` VALUES (653, 218, 6, NULL);
+INSERT INTO `t_car_service` VALUES (654, 219, 2, NULL);
+INSERT INTO `t_car_service` VALUES (655, 219, 4, NULL);
+INSERT INTO `t_car_service` VALUES (656, 219, 6, NULL);
+INSERT INTO `t_car_service` VALUES (657, 220, 2, NULL);
+INSERT INTO `t_car_service` VALUES (658, 220, 4, NULL);
+INSERT INTO `t_car_service` VALUES (659, 220, 6, NULL);
+INSERT INTO `t_car_service` VALUES (660, 221, 2, NULL);
+INSERT INTO `t_car_service` VALUES (661, 221, 4, NULL);
+INSERT INTO `t_car_service` VALUES (662, 221, 6, NULL);
+INSERT INTO `t_car_service` VALUES (663, 222, 2, NULL);
+INSERT INTO `t_car_service` VALUES (664, 222, 4, NULL);
+INSERT INTO `t_car_service` VALUES (665, 222, 6, NULL);
+INSERT INTO `t_car_service` VALUES (666, 223, 2, NULL);
+INSERT INTO `t_car_service` VALUES (667, 223, 4, NULL);
+INSERT INTO `t_car_service` VALUES (668, 223, 6, NULL);
+INSERT INTO `t_car_service` VALUES (669, 224, 2, NULL);
+INSERT INTO `t_car_service` VALUES (670, 224, 4, NULL);
+INSERT INTO `t_car_service` VALUES (671, 224, 6, NULL);
+INSERT INTO `t_car_service` VALUES (672, 225, 2, NULL);
+INSERT INTO `t_car_service` VALUES (673, 225, 4, NULL);
+INSERT INTO `t_car_service` VALUES (674, 225, 6, NULL);
+INSERT INTO `t_car_service` VALUES (675, 226, 2, NULL);
+INSERT INTO `t_car_service` VALUES (676, 226, 4, NULL);
+INSERT INTO `t_car_service` VALUES (677, 226, 6, NULL);
+INSERT INTO `t_car_service` VALUES (678, 227, 2, NULL);
+INSERT INTO `t_car_service` VALUES (679, 227, 4, NULL);
+INSERT INTO `t_car_service` VALUES (680, 227, 6, NULL);
+INSERT INTO `t_car_service` VALUES (681, 228, 2, NULL);
+INSERT INTO `t_car_service` VALUES (682, 228, 4, NULL);
+INSERT INTO `t_car_service` VALUES (683, 228, 6, NULL);
+INSERT INTO `t_car_service` VALUES (684, 229, 2, NULL);
+INSERT INTO `t_car_service` VALUES (685, 229, 4, NULL);
+INSERT INTO `t_car_service` VALUES (686, 229, 6, NULL);
+INSERT INTO `t_car_service` VALUES (687, 230, 2, NULL);
+INSERT INTO `t_car_service` VALUES (688, 230, 4, NULL);
+INSERT INTO `t_car_service` VALUES (689, 230, 6, NULL);
+INSERT INTO `t_car_service` VALUES (690, 231, 2, NULL);
+INSERT INTO `t_car_service` VALUES (691, 231, 4, NULL);
+INSERT INTO `t_car_service` VALUES (692, 231, 6, NULL);
+INSERT INTO `t_car_service` VALUES (693, 232, 2, NULL);
+INSERT INTO `t_car_service` VALUES (694, 232, 4, NULL);
+INSERT INTO `t_car_service` VALUES (695, 232, 6, NULL);
+INSERT INTO `t_car_service` VALUES (696, 233, 2, NULL);
+INSERT INTO `t_car_service` VALUES (697, 233, 4, NULL);
+INSERT INTO `t_car_service` VALUES (698, 233, 6, NULL);
+INSERT INTO `t_car_service` VALUES (699, 234, 2, NULL);
+INSERT INTO `t_car_service` VALUES (700, 234, 4, NULL);
+INSERT INTO `t_car_service` VALUES (701, 234, 6, NULL);
+INSERT INTO `t_car_service` VALUES (702, 235, 2, NULL);
+INSERT INTO `t_car_service` VALUES (703, 235, 4, NULL);
+INSERT INTO `t_car_service` VALUES (704, 235, 6, NULL);
+INSERT INTO `t_car_service` VALUES (705, 236, 2, NULL);
+INSERT INTO `t_car_service` VALUES (706, 236, 4, NULL);
+INSERT INTO `t_car_service` VALUES (707, 236, 6, NULL);
+INSERT INTO `t_car_service` VALUES (708, 237, 2, NULL);
+INSERT INTO `t_car_service` VALUES (709, 237, 4, NULL);
+INSERT INTO `t_car_service` VALUES (710, 237, 6, NULL);
+INSERT INTO `t_car_service` VALUES (711, 238, 2, NULL);
+INSERT INTO `t_car_service` VALUES (712, 238, 4, NULL);
+INSERT INTO `t_car_service` VALUES (713, 238, 6, NULL);
+INSERT INTO `t_car_service` VALUES (714, 239, 2, NULL);
+INSERT INTO `t_car_service` VALUES (715, 239, 4, NULL);
+INSERT INTO `t_car_service` VALUES (716, 239, 6, NULL);
+INSERT INTO `t_car_service` VALUES (717, 240, 2, NULL);
+INSERT INTO `t_car_service` VALUES (718, 240, 4, NULL);
+INSERT INTO `t_car_service` VALUES (719, 240, 6, NULL);
+INSERT INTO `t_car_service` VALUES (720, 241, 2, NULL);
+INSERT INTO `t_car_service` VALUES (721, 241, 4, NULL);
+INSERT INTO `t_car_service` VALUES (722, 241, 6, NULL);
+INSERT INTO `t_car_service` VALUES (723, 242, 2, NULL);
+INSERT INTO `t_car_service` VALUES (724, 242, 4, NULL);
+INSERT INTO `t_car_service` VALUES (725, 242, 6, NULL);
+INSERT INTO `t_car_service` VALUES (726, 243, 2, NULL);
+INSERT INTO `t_car_service` VALUES (727, 243, 4, NULL);
+INSERT INTO `t_car_service` VALUES (728, 243, 6, NULL);
+INSERT INTO `t_car_service` VALUES (729, 244, 2, NULL);
+INSERT INTO `t_car_service` VALUES (730, 244, 4, NULL);
+INSERT INTO `t_car_service` VALUES (731, 244, 6, NULL);
+INSERT INTO `t_car_service` VALUES (732, 245, 2, NULL);
+INSERT INTO `t_car_service` VALUES (733, 245, 4, NULL);
+INSERT INTO `t_car_service` VALUES (734, 245, 6, NULL);
+INSERT INTO `t_car_service` VALUES (735, 246, 2, NULL);
+INSERT INTO `t_car_service` VALUES (736, 246, 4, NULL);
+INSERT INTO `t_car_service` VALUES (737, 246, 6, NULL);
+INSERT INTO `t_car_service` VALUES (738, 247, 2, NULL);
+INSERT INTO `t_car_service` VALUES (739, 247, 4, NULL);
+INSERT INTO `t_car_service` VALUES (740, 247, 6, NULL);
+INSERT INTO `t_car_service` VALUES (741, 248, 2, NULL);
+INSERT INTO `t_car_service` VALUES (742, 248, 4, NULL);
+INSERT INTO `t_car_service` VALUES (743, 248, 6, NULL);
+INSERT INTO `t_car_service` VALUES (744, 249, 2, NULL);
+INSERT INTO `t_car_service` VALUES (745, 249, 4, NULL);
+INSERT INTO `t_car_service` VALUES (746, 249, 6, NULL);
+INSERT INTO `t_car_service` VALUES (747, 250, 2, NULL);
+INSERT INTO `t_car_service` VALUES (748, 250, 4, NULL);
+INSERT INTO `t_car_service` VALUES (749, 250, 6, NULL);
+INSERT INTO `t_car_service` VALUES (750, 251, 2, NULL);
+INSERT INTO `t_car_service` VALUES (751, 251, 4, NULL);
+INSERT INTO `t_car_service` VALUES (752, 251, 6, NULL);
+INSERT INTO `t_car_service` VALUES (753, 252, 2, NULL);
+INSERT INTO `t_car_service` VALUES (754, 252, 4, NULL);
+INSERT INTO `t_car_service` VALUES (755, 252, 6, NULL);
+INSERT INTO `t_car_service` VALUES (756, 253, 2, NULL);
+INSERT INTO `t_car_service` VALUES (757, 253, 4, NULL);
+INSERT INTO `t_car_service` VALUES (758, 253, 6, NULL);
+INSERT INTO `t_car_service` VALUES (759, 254, 2, NULL);
+INSERT INTO `t_car_service` VALUES (760, 254, 4, NULL);
+INSERT INTO `t_car_service` VALUES (761, 254, 6, NULL);
+INSERT INTO `t_car_service` VALUES (762, 255, 2, NULL);
+INSERT INTO `t_car_service` VALUES (763, 255, 4, NULL);
+INSERT INTO `t_car_service` VALUES (764, 255, 6, NULL);
+INSERT INTO `t_car_service` VALUES (765, 256, 2, NULL);
+INSERT INTO `t_car_service` VALUES (766, 256, 4, NULL);
+INSERT INTO `t_car_service` VALUES (767, 256, 6, NULL);
+INSERT INTO `t_car_service` VALUES (768, 257, 2, NULL);
+INSERT INTO `t_car_service` VALUES (769, 257, 4, NULL);
+INSERT INTO `t_car_service` VALUES (770, 257, 6, NULL);
+INSERT INTO `t_car_service` VALUES (771, 258, 2, NULL);
+INSERT INTO `t_car_service` VALUES (772, 258, 4, NULL);
+INSERT INTO `t_car_service` VALUES (773, 258, 6, NULL);
+INSERT INTO `t_car_service` VALUES (774, 259, 2, NULL);
+INSERT INTO `t_car_service` VALUES (775, 259, 4, NULL);
+INSERT INTO `t_car_service` VALUES (776, 259, 6, NULL);
+INSERT INTO `t_car_service` VALUES (777, 260, 2, NULL);
+INSERT INTO `t_car_service` VALUES (778, 260, 4, NULL);
+INSERT INTO `t_car_service` VALUES (779, 260, 6, NULL);
+INSERT INTO `t_car_service` VALUES (780, 261, 2, NULL);
+INSERT INTO `t_car_service` VALUES (781, 261, 4, NULL);
+INSERT INTO `t_car_service` VALUES (782, 261, 6, NULL);
+INSERT INTO `t_car_service` VALUES (783, 262, 2, NULL);
+INSERT INTO `t_car_service` VALUES (784, 262, 4, NULL);
+INSERT INTO `t_car_service` VALUES (785, 262, 6, NULL);
+INSERT INTO `t_car_service` VALUES (786, 263, 2, NULL);
+INSERT INTO `t_car_service` VALUES (787, 263, 4, NULL);
+INSERT INTO `t_car_service` VALUES (788, 263, 6, NULL);
+INSERT INTO `t_car_service` VALUES (789, 264, 2, NULL);
+INSERT INTO `t_car_service` VALUES (790, 264, 4, NULL);
+INSERT INTO `t_car_service` VALUES (791, 264, 6, NULL);
+INSERT INTO `t_car_service` VALUES (792, 265, 2, NULL);
+INSERT INTO `t_car_service` VALUES (793, 265, 4, NULL);
+INSERT INTO `t_car_service` VALUES (794, 265, 6, NULL);
+INSERT INTO `t_car_service` VALUES (795, 266, 2, NULL);
+INSERT INTO `t_car_service` VALUES (796, 266, 4, NULL);
+INSERT INTO `t_car_service` VALUES (797, 266, 6, NULL);
+INSERT INTO `t_car_service` VALUES (798, 267, 2, NULL);
+INSERT INTO `t_car_service` VALUES (799, 267, 4, NULL);
+INSERT INTO `t_car_service` VALUES (800, 267, 6, NULL);
+INSERT INTO `t_car_service` VALUES (801, 268, 2, NULL);
+INSERT INTO `t_car_service` VALUES (802, 268, 4, NULL);
+INSERT INTO `t_car_service` VALUES (803, 268, 6, NULL);
+INSERT INTO `t_car_service` VALUES (804, 269, 2, NULL);
+INSERT INTO `t_car_service` VALUES (805, 269, 4, NULL);
+INSERT INTO `t_car_service` VALUES (806, 269, 6, NULL);
+INSERT INTO `t_car_service` VALUES (807, 270, 2, NULL);
+INSERT INTO `t_car_service` VALUES (808, 270, 4, NULL);
+INSERT INTO `t_car_service` VALUES (809, 270, 6, NULL);
+INSERT INTO `t_car_service` VALUES (810, 271, 2, NULL);
+INSERT INTO `t_car_service` VALUES (811, 271, 4, NULL);
+INSERT INTO `t_car_service` VALUES (812, 271, 6, NULL);
+INSERT INTO `t_car_service` VALUES (813, 272, 2, NULL);
+INSERT INTO `t_car_service` VALUES (814, 272, 4, NULL);
+INSERT INTO `t_car_service` VALUES (815, 272, 6, NULL);
+INSERT INTO `t_car_service` VALUES (816, 273, 2, NULL);
+INSERT INTO `t_car_service` VALUES (817, 273, 4, NULL);
+INSERT INTO `t_car_service` VALUES (818, 273, 6, NULL);
+INSERT INTO `t_car_service` VALUES (819, 274, 2, NULL);
+INSERT INTO `t_car_service` VALUES (820, 274, 4, NULL);
+INSERT INTO `t_car_service` VALUES (821, 274, 6, NULL);
+INSERT INTO `t_car_service` VALUES (822, 275, 2, NULL);
+INSERT INTO `t_car_service` VALUES (823, 275, 4, NULL);
+INSERT INTO `t_car_service` VALUES (824, 275, 6, NULL);
+INSERT INTO `t_car_service` VALUES (825, 276, 2, NULL);
+INSERT INTO `t_car_service` VALUES (826, 276, 4, NULL);
+INSERT INTO `t_car_service` VALUES (827, 276, 6, NULL);
+INSERT INTO `t_car_service` VALUES (828, 277, 2, NULL);
+INSERT INTO `t_car_service` VALUES (829, 277, 4, NULL);
+INSERT INTO `t_car_service` VALUES (830, 277, 6, NULL);
+INSERT INTO `t_car_service` VALUES (831, 278, 2, NULL);
+INSERT INTO `t_car_service` VALUES (832, 278, 4, NULL);
+INSERT INTO `t_car_service` VALUES (833, 278, 6, NULL);
+INSERT INTO `t_car_service` VALUES (834, 279, 2, NULL);
+INSERT INTO `t_car_service` VALUES (835, 279, 4, NULL);
+INSERT INTO `t_car_service` VALUES (836, 279, 6, NULL);
+INSERT INTO `t_car_service` VALUES (837, 280, 2, NULL);
+INSERT INTO `t_car_service` VALUES (838, 280, 4, NULL);
+INSERT INTO `t_car_service` VALUES (839, 280, 6, NULL);
+INSERT INTO `t_car_service` VALUES (840, 281, 2, NULL);
+INSERT INTO `t_car_service` VALUES (841, 281, 4, NULL);
+INSERT INTO `t_car_service` VALUES (842, 281, 6, NULL);
+INSERT INTO `t_car_service` VALUES (843, 282, 2, NULL);
+INSERT INTO `t_car_service` VALUES (844, 282, 4, NULL);
+INSERT INTO `t_car_service` VALUES (845, 282, 6, NULL);
+INSERT INTO `t_car_service` VALUES (846, 283, 2, NULL);
+INSERT INTO `t_car_service` VALUES (847, 283, 4, NULL);
+INSERT INTO `t_car_service` VALUES (848, 283, 6, NULL);
+INSERT INTO `t_car_service` VALUES (849, 284, 2, NULL);
+INSERT INTO `t_car_service` VALUES (850, 284, 4, NULL);
+INSERT INTO `t_car_service` VALUES (851, 284, 6, NULL);
+INSERT INTO `t_car_service` VALUES (852, 285, 2, NULL);
+INSERT INTO `t_car_service` VALUES (853, 285, 4, NULL);
+INSERT INTO `t_car_service` VALUES (854, 285, 6, NULL);
+INSERT INTO `t_car_service` VALUES (855, 286, 2, NULL);
+INSERT INTO `t_car_service` VALUES (856, 286, 4, NULL);
+INSERT INTO `t_car_service` VALUES (857, 286, 6, NULL);
+INSERT INTO `t_car_service` VALUES (858, 287, 2, NULL);
+INSERT INTO `t_car_service` VALUES (859, 287, 4, NULL);
+INSERT INTO `t_car_service` VALUES (860, 287, 6, NULL);
+INSERT INTO `t_car_service` VALUES (861, 288, 2, NULL);
+INSERT INTO `t_car_service` VALUES (862, 288, 4, NULL);
+INSERT INTO `t_car_service` VALUES (863, 288, 6, NULL);
+INSERT INTO `t_car_service` VALUES (864, 289, 2, NULL);
+INSERT INTO `t_car_service` VALUES (865, 289, 4, NULL);
+INSERT INTO `t_car_service` VALUES (866, 289, 6, NULL);
+INSERT INTO `t_car_service` VALUES (867, 290, 2, NULL);
+INSERT INTO `t_car_service` VALUES (868, 290, 4, NULL);
+INSERT INTO `t_car_service` VALUES (869, 290, 6, NULL);
+INSERT INTO `t_car_service` VALUES (870, 291, 2, NULL);
+INSERT INTO `t_car_service` VALUES (871, 291, 4, NULL);
+INSERT INTO `t_car_service` VALUES (872, 291, 6, NULL);
+INSERT INTO `t_car_service` VALUES (873, 292, 2, NULL);
+INSERT INTO `t_car_service` VALUES (874, 292, 4, NULL);
+INSERT INTO `t_car_service` VALUES (875, 292, 6, NULL);
+INSERT INTO `t_car_service` VALUES (876, 293, 2, NULL);
+INSERT INTO `t_car_service` VALUES (877, 293, 4, NULL);
+INSERT INTO `t_car_service` VALUES (878, 293, 6, NULL);
+INSERT INTO `t_car_service` VALUES (879, 294, 2, NULL);
+INSERT INTO `t_car_service` VALUES (880, 294, 4, NULL);
+INSERT INTO `t_car_service` VALUES (881, 294, 6, NULL);
+INSERT INTO `t_car_service` VALUES (882, 295, 2, NULL);
+INSERT INTO `t_car_service` VALUES (883, 295, 4, NULL);
+INSERT INTO `t_car_service` VALUES (884, 295, 6, NULL);
+INSERT INTO `t_car_service` VALUES (885, 296, 2, NULL);
+INSERT INTO `t_car_service` VALUES (886, 296, 4, NULL);
+INSERT INTO `t_car_service` VALUES (887, 296, 6, NULL);
+INSERT INTO `t_car_service` VALUES (888, 297, 2, NULL);
+INSERT INTO `t_car_service` VALUES (889, 297, 4, NULL);
+INSERT INTO `t_car_service` VALUES (890, 297, 6, NULL);
+INSERT INTO `t_car_service` VALUES (891, 298, 2, NULL);
+INSERT INTO `t_car_service` VALUES (892, 298, 4, NULL);
+INSERT INTO `t_car_service` VALUES (893, 298, 6, NULL);
+INSERT INTO `t_car_service` VALUES (894, 299, 2, NULL);
+INSERT INTO `t_car_service` VALUES (895, 299, 4, NULL);
+INSERT INTO `t_car_service` VALUES (896, 299, 6, NULL);
+INSERT INTO `t_car_service` VALUES (897, 300, 2, NULL);
+INSERT INTO `t_car_service` VALUES (898, 300, 4, NULL);
+INSERT INTO `t_car_service` VALUES (899, 300, 6, NULL);
+INSERT INTO `t_car_service` VALUES (900, 301, 2, NULL);
+INSERT INTO `t_car_service` VALUES (901, 301, 4, NULL);
+INSERT INTO `t_car_service` VALUES (902, 301, 6, NULL);
+INSERT INTO `t_car_service` VALUES (903, 302, 2, NULL);
+INSERT INTO `t_car_service` VALUES (904, 302, 4, NULL);
+INSERT INTO `t_car_service` VALUES (905, 302, 6, NULL);
+INSERT INTO `t_car_service` VALUES (906, 303, 2, NULL);
+INSERT INTO `t_car_service` VALUES (907, 303, 4, NULL);
+INSERT INTO `t_car_service` VALUES (908, 303, 6, NULL);
+INSERT INTO `t_car_service` VALUES (909, 304, 2, NULL);
+INSERT INTO `t_car_service` VALUES (910, 304, 4, NULL);
+INSERT INTO `t_car_service` VALUES (911, 304, 6, NULL);
+INSERT INTO `t_car_service` VALUES (912, 305, 2, NULL);
+INSERT INTO `t_car_service` VALUES (913, 305, 4, NULL);
+INSERT INTO `t_car_service` VALUES (914, 305, 6, NULL);
+INSERT INTO `t_car_service` VALUES (915, 306, 2, NULL);
+INSERT INTO `t_car_service` VALUES (916, 306, 4, NULL);
+INSERT INTO `t_car_service` VALUES (917, 306, 6, NULL);
+INSERT INTO `t_car_service` VALUES (918, 307, 2, NULL);
+INSERT INTO `t_car_service` VALUES (919, 307, 4, NULL);
+INSERT INTO `t_car_service` VALUES (920, 307, 6, NULL);
+INSERT INTO `t_car_service` VALUES (921, 308, 2, NULL);
+INSERT INTO `t_car_service` VALUES (922, 308, 4, NULL);
+INSERT INTO `t_car_service` VALUES (923, 308, 6, NULL);
+INSERT INTO `t_car_service` VALUES (924, 309, 2, NULL);
+INSERT INTO `t_car_service` VALUES (925, 309, 4, NULL);
+INSERT INTO `t_car_service` VALUES (926, 309, 6, NULL);
+INSERT INTO `t_car_service` VALUES (927, 310, 2, NULL);
+INSERT INTO `t_car_service` VALUES (928, 310, 4, NULL);
+INSERT INTO `t_car_service` VALUES (929, 310, 6, NULL);
+INSERT INTO `t_car_service` VALUES (930, 311, 2, NULL);
+INSERT INTO `t_car_service` VALUES (931, 311, 4, NULL);
+INSERT INTO `t_car_service` VALUES (932, 311, 6, NULL);
+INSERT INTO `t_car_service` VALUES (933, 312, 2, NULL);
+INSERT INTO `t_car_service` VALUES (934, 312, 4, NULL);
+INSERT INTO `t_car_service` VALUES (935, 312, 6, NULL);
+INSERT INTO `t_car_service` VALUES (936, 313, 2, NULL);
+INSERT INTO `t_car_service` VALUES (937, 313, 4, NULL);
+INSERT INTO `t_car_service` VALUES (938, 313, 6, NULL);
+INSERT INTO `t_car_service` VALUES (939, 314, 2, NULL);
+INSERT INTO `t_car_service` VALUES (940, 314, 4, NULL);
+INSERT INTO `t_car_service` VALUES (941, 314, 6, NULL);
+INSERT INTO `t_car_service` VALUES (942, 315, 2, NULL);
+INSERT INTO `t_car_service` VALUES (943, 315, 4, NULL);
+INSERT INTO `t_car_service` VALUES (944, 315, 6, NULL);
+INSERT INTO `t_car_service` VALUES (945, 316, 2, NULL);
+INSERT INTO `t_car_service` VALUES (946, 316, 4, NULL);
+INSERT INTO `t_car_service` VALUES (947, 316, 6, NULL);
+INSERT INTO `t_car_service` VALUES (948, 317, 2, NULL);
+INSERT INTO `t_car_service` VALUES (949, 317, 4, NULL);
+INSERT INTO `t_car_service` VALUES (950, 317, 6, NULL);
+INSERT INTO `t_car_service` VALUES (951, 318, 2, NULL);
+INSERT INTO `t_car_service` VALUES (952, 318, 4, NULL);
+INSERT INTO `t_car_service` VALUES (953, 318, 6, NULL);
+INSERT INTO `t_car_service` VALUES (954, 319, 2, NULL);
+INSERT INTO `t_car_service` VALUES (955, 319, 4, NULL);
+INSERT INTO `t_car_service` VALUES (956, 319, 6, NULL);
+INSERT INTO `t_car_service` VALUES (957, 320, 2, NULL);
+INSERT INTO `t_car_service` VALUES (958, 320, 4, NULL);
+INSERT INTO `t_car_service` VALUES (959, 320, 6, NULL);
+INSERT INTO `t_car_service` VALUES (960, 321, 2, NULL);
+INSERT INTO `t_car_service` VALUES (961, 321, 4, NULL);
+INSERT INTO `t_car_service` VALUES (962, 321, 6, NULL);
+INSERT INTO `t_car_service` VALUES (963, 322, 2, NULL);
+INSERT INTO `t_car_service` VALUES (964, 322, 4, NULL);
+INSERT INTO `t_car_service` VALUES (965, 322, 6, NULL);
+INSERT INTO `t_car_service` VALUES (966, 323, 2, NULL);
+INSERT INTO `t_car_service` VALUES (967, 323, 4, NULL);
+INSERT INTO `t_car_service` VALUES (968, 323, 6, NULL);
+INSERT INTO `t_car_service` VALUES (969, 324, 2, NULL);
+INSERT INTO `t_car_service` VALUES (970, 324, 4, NULL);
+INSERT INTO `t_car_service` VALUES (971, 324, 6, NULL);
+INSERT INTO `t_car_service` VALUES (972, 325, 2, NULL);
+INSERT INTO `t_car_service` VALUES (973, 325, 4, NULL);
+INSERT INTO `t_car_service` VALUES (974, 325, 6, NULL);
+INSERT INTO `t_car_service` VALUES (975, 326, 2, NULL);
+INSERT INTO `t_car_service` VALUES (976, 326, 4, NULL);
+INSERT INTO `t_car_service` VALUES (977, 326, 6, NULL);
+INSERT INTO `t_car_service` VALUES (978, 327, 2, NULL);
+INSERT INTO `t_car_service` VALUES (979, 327, 4, NULL);
+INSERT INTO `t_car_service` VALUES (980, 327, 6, NULL);
+INSERT INTO `t_car_service` VALUES (981, 328, 2, NULL);
+INSERT INTO `t_car_service` VALUES (982, 328, 4, NULL);
+INSERT INTO `t_car_service` VALUES (983, 328, 6, NULL);
+INSERT INTO `t_car_service` VALUES (984, 329, 2, NULL);
+INSERT INTO `t_car_service` VALUES (985, 329, 4, NULL);
+INSERT INTO `t_car_service` VALUES (986, 329, 6, NULL);
+INSERT INTO `t_car_service` VALUES (987, 330, 2, NULL);
+INSERT INTO `t_car_service` VALUES (988, 330, 4, NULL);
+INSERT INTO `t_car_service` VALUES (989, 330, 6, NULL);
+INSERT INTO `t_car_service` VALUES (990, 331, 2, NULL);
+INSERT INTO `t_car_service` VALUES (991, 331, 4, NULL);
+INSERT INTO `t_car_service` VALUES (992, 331, 6, NULL);
+INSERT INTO `t_car_service` VALUES (993, 332, 2, NULL);
+INSERT INTO `t_car_service` VALUES (994, 332, 4, NULL);
+INSERT INTO `t_car_service` VALUES (995, 332, 6, NULL);
+INSERT INTO `t_car_service` VALUES (996, 333, 2, NULL);
+INSERT INTO `t_car_service` VALUES (997, 333, 4, NULL);
+INSERT INTO `t_car_service` VALUES (998, 333, 6, NULL);
+INSERT INTO `t_car_service` VALUES (999, 334, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1000, 334, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1001, 334, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1002, 335, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1003, 335, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1004, 335, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1005, 336, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1006, 336, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1007, 336, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1008, 337, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1009, 337, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1010, 337, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1011, 338, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1012, 338, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1013, 338, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1014, 339, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1015, 339, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1016, 339, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1017, 340, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1018, 340, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1019, 340, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1020, 341, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1021, 341, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1022, 341, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1023, 342, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1024, 342, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1025, 342, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1026, 343, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1027, 343, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1028, 343, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1029, 344, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1030, 344, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1031, 344, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1032, 345, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1033, 345, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1034, 345, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1035, 346, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1036, 346, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1037, 346, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1038, 347, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1039, 347, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1040, 347, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1041, 348, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1042, 348, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1043, 348, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1044, 349, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1045, 349, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1046, 349, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1047, 350, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1048, 350, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1049, 350, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1050, 351, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1051, 351, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1052, 351, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1053, 352, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1054, 352, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1055, 352, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1056, 353, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1057, 353, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1058, 353, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1059, 354, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1060, 354, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1061, 354, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1062, 355, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1063, 355, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1064, 355, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1065, 356, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1066, 356, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1067, 356, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1068, 357, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1069, 357, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1070, 357, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1071, 358, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1072, 358, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1073, 358, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1074, 359, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1075, 359, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1076, 359, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1077, 360, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1078, 360, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1079, 360, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1080, 361, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1081, 361, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1082, 361, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1083, 362, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1084, 362, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1085, 362, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1086, 363, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1087, 363, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1088, 363, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1089, 364, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1090, 364, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1091, 364, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1092, 365, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1093, 365, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1094, 365, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1095, 366, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1096, 366, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1097, 366, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1098, 367, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1099, 367, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1100, 367, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1101, 368, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1102, 368, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1103, 368, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1104, 369, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1105, 369, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1106, 369, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1107, 370, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1108, 370, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1109, 370, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1110, 371, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1111, 371, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1112, 371, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1113, 372, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1114, 372, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1115, 372, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1116, 373, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1117, 373, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1118, 373, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1119, 374, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1120, 374, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1121, 374, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1122, 375, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1123, 375, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1124, 375, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1125, 376, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1126, 376, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1127, 376, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1128, 377, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1129, 377, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1130, 377, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1131, 378, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1132, 378, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1133, 378, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1134, 379, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1135, 379, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1136, 379, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1137, 380, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1138, 380, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1139, 380, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1140, 381, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1141, 381, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1142, 381, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1143, 382, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1144, 382, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1145, 382, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1146, 383, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1147, 383, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1148, 383, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1149, 384, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1150, 384, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1151, 384, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1152, 385, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1153, 385, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1154, 385, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1155, 386, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1156, 386, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1157, 386, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1158, 387, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1159, 387, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1160, 387, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1161, 388, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1162, 388, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1163, 388, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1164, 389, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1165, 389, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1166, 389, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1167, 390, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1168, 390, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1169, 390, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1170, 391, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1171, 391, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1172, 391, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1173, 392, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1174, 392, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1175, 392, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1176, 393, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1177, 393, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1178, 393, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1179, 394, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1180, 394, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1181, 394, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1182, 395, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1183, 395, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1184, 395, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1185, 396, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1186, 396, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1187, 396, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1188, 397, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1189, 397, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1190, 397, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1191, 398, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1192, 398, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1193, 398, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1194, 399, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1195, 399, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1196, 399, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1197, 400, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1198, 400, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1199, 400, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1200, 401, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1201, 401, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1202, 401, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1203, 402, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1204, 402, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1205, 402, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1206, 403, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1207, 403, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1208, 403, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1209, 404, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1210, 404, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1211, 404, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1212, 405, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1213, 405, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1214, 405, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1215, 406, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1216, 406, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1217, 406, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1218, 407, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1219, 407, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1220, 407, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1221, 408, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1222, 408, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1223, 408, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1224, 409, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1225, 409, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1226, 409, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1227, 410, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1228, 410, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1229, 410, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1230, 411, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1231, 411, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1232, 411, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1233, 412, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1234, 412, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1235, 412, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1236, 413, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1237, 413, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1238, 413, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1239, 414, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1240, 414, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1241, 414, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1242, 415, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1243, 415, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1244, 415, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1245, 416, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1246, 416, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1247, 416, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1248, 417, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1249, 417, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1250, 417, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1251, 418, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1252, 418, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1253, 418, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1254, 419, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1255, 419, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1256, 419, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1257, 420, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1258, 420, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1259, 420, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1260, 421, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1261, 421, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1262, 421, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1263, 422, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1264, 422, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1265, 422, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1266, 423, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1267, 423, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1268, 423, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1269, 424, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1270, 424, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1271, 424, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1272, 425, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1273, 425, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1274, 425, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1275, 426, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1276, 426, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1277, 426, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1278, 427, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1279, 427, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1280, 427, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1281, 428, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1282, 428, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1283, 428, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1284, 429, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1285, 429, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1286, 429, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1287, 430, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1288, 430, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1289, 430, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1290, 431, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1291, 431, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1292, 431, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1293, 432, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1294, 432, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1295, 432, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1296, 433, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1297, 433, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1298, 433, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1299, 434, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1300, 434, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1301, 434, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1302, 435, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1303, 435, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1304, 435, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1305, 436, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1306, 436, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1307, 436, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1308, 437, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1309, 437, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1310, 437, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1311, 438, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1312, 438, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1313, 438, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1314, 439, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1315, 439, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1316, 439, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1317, 440, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1318, 440, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1319, 440, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1320, 441, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1321, 441, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1322, 441, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1323, 442, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1324, 442, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1325, 442, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1326, 443, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1327, 443, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1328, 443, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1329, 444, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1330, 444, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1331, 444, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1332, 445, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1333, 445, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1334, 445, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1335, 446, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1336, 446, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1337, 446, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1338, 447, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1339, 447, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1340, 447, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1341, 448, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1342, 448, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1343, 448, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1344, 449, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1345, 449, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1346, 449, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1347, 450, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1348, 450, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1349, 450, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1350, 451, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1351, 451, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1352, 451, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1353, 452, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1354, 452, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1355, 452, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1356, 453, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1357, 453, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1358, 453, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1359, 454, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1360, 454, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1361, 454, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1362, 455, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1363, 455, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1364, 455, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1365, 456, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1366, 456, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1367, 456, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1368, 457, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1369, 457, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1370, 457, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1371, 458, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1372, 458, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1373, 458, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1374, 459, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1375, 459, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1376, 459, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1377, 460, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1378, 460, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1379, 460, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1380, 461, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1381, 461, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1382, 461, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1383, 462, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1384, 462, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1385, 462, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1386, 463, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1387, 463, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1388, 463, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1389, 464, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1390, 464, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1391, 464, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1392, 465, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1393, 465, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1394, 465, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1395, 466, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1396, 466, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1397, 466, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1398, 467, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1399, 467, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1400, 467, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1401, 468, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1402, 468, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1403, 468, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1404, 469, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1405, 469, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1406, 469, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1407, 470, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1408, 470, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1409, 470, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1410, 471, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1411, 471, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1412, 471, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1413, 472, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1414, 472, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1415, 472, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1416, 473, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1417, 473, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1418, 473, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1419, 474, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1420, 474, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1421, 474, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1422, 475, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1423, 475, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1424, 475, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1425, 476, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1426, 476, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1427, 476, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1428, 477, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1429, 477, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1430, 477, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1431, 478, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1432, 478, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1433, 478, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1434, 479, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1435, 479, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1436, 479, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1437, 480, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1438, 480, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1439, 480, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1440, 481, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1441, 481, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1442, 481, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1443, 482, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1444, 482, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1445, 482, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1446, 483, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1447, 483, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1448, 483, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1449, 484, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1450, 484, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1451, 484, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1452, 485, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1453, 485, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1454, 485, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1455, 486, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1456, 486, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1457, 486, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1458, 487, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1459, 487, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1460, 487, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1461, 488, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1462, 488, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1463, 488, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1464, 489, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1465, 489, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1466, 489, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1467, 490, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1468, 490, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1469, 490, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1470, 491, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1471, 491, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1472, 491, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1473, 492, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1474, 492, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1475, 492, 6, NULL);
+INSERT INTO `t_car_service` VALUES (1476, 493, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1477, 493, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1478, 494, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1479, 494, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1480, 495, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1481, 495, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1482, 496, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1483, 496, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1484, 497, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1485, 497, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1486, 498, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1487, 498, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1488, 499, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1489, 499, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1490, 500, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1491, 500, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1492, 501, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1493, 501, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1494, 502, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1495, 502, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1496, 503, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1497, 503, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1498, 504, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1499, 504, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1500, 505, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1501, 505, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1502, 506, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1503, 506, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1504, 507, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1505, 507, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1506, 508, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1507, 508, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1508, 509, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1509, 509, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1510, 510, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1511, 510, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1512, 511, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1513, 511, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1514, 512, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1515, 512, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1516, 513, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1517, 513, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1518, 514, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1519, 514, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1520, 515, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1521, 515, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1522, 516, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1523, 516, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1524, 517, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1525, 517, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1526, 518, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1527, 518, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1528, 519, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1529, 519, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1530, 520, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1531, 520, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1532, 521, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1533, 521, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1534, 522, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1535, 522, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1536, 523, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1537, 523, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1538, 524, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1539, 524, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1540, 525, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1541, 525, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1542, 526, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1543, 526, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1544, 527, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1545, 527, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1546, 528, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1547, 528, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1548, 529, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1549, 529, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1550, 530, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1551, 530, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1552, 531, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1553, 531, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1554, 532, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1555, 532, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1556, 533, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1557, 533, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1558, 534, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1559, 534, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1560, 535, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1561, 535, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1562, 536, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1563, 536, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1564, 537, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1565, 537, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1566, 538, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1567, 538, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1568, 539, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1569, 539, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1570, 540, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1571, 540, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1572, 541, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1573, 541, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1574, 542, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1575, 542, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1576, 543, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1577, 543, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1578, 544, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1579, 544, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1580, 545, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1581, 545, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1582, 546, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1583, 546, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1584, 547, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1585, 547, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1586, 548, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1587, 548, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1588, 549, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1589, 549, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1590, 550, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1591, 550, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1592, 551, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1593, 551, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1594, 552, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1595, 552, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1596, 553, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1597, 553, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1598, 554, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1599, 554, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1600, 555, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1601, 555, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1602, 556, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1603, 556, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1604, 557, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1605, 557, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1606, 558, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1607, 558, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1608, 559, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1609, 559, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1610, 560, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1611, 560, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1612, 561, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1613, 561, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1614, 562, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1615, 562, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1616, 563, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1617, 563, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1618, 564, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1619, 564, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1620, 565, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1621, 565, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1622, 566, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1623, 566, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1624, 567, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1625, 567, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1626, 568, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1627, 568, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1628, 569, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1629, 569, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1630, 570, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1631, 570, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1632, 571, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1633, 571, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1634, 572, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1635, 572, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1636, 573, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1637, 573, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1638, 574, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1639, 574, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1640, 575, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1641, 575, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1642, 576, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1643, 576, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1644, 577, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1645, 577, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1646, 578, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1647, 578, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1648, 579, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1649, 579, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1650, 580, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1651, 580, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1652, 581, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1653, 581, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1654, 582, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1655, 582, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1656, 583, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1657, 583, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1658, 584, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1659, 584, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1660, 585, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1661, 585, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1662, 586, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1663, 586, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1664, 587, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1665, 587, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1666, 588, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1667, 588, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1668, 589, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1669, 589, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1670, 590, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1671, 590, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1672, 591, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1673, 591, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1674, 592, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1675, 592, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1676, 593, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1677, 593, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1678, 594, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1679, 594, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1680, 595, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1681, 595, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1682, 596, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1683, 596, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1684, 597, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1685, 597, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1686, 598, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1687, 598, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1688, 599, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1689, 599, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1690, 600, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1691, 600, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1692, 601, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1693, 601, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1694, 602, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1695, 602, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1696, 603, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1697, 603, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1698, 604, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1699, 604, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1700, 605, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1701, 605, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1702, 606, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1703, 606, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1704, 607, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1705, 607, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1706, 608, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1707, 608, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1708, 609, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1709, 609, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1710, 610, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1711, 610, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1712, 611, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1713, 611, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1714, 612, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1715, 612, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1716, 613, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1717, 613, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1718, 614, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1719, 614, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1720, 615, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1721, 615, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1722, 616, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1723, 616, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1724, 617, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1725, 617, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1726, 618, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1727, 618, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1728, 619, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1729, 619, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1730, 620, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1731, 620, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1732, 621, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1733, 621, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1734, 622, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1735, 622, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1736, 623, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1737, 623, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1738, 624, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1739, 624, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1740, 625, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1741, 625, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1742, 626, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1743, 626, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1744, 627, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1745, 627, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1746, 628, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1747, 628, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1748, 629, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1749, 629, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1750, 630, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1751, 630, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1752, 631, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1753, 631, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1754, 632, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1755, 632, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1756, 633, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1757, 633, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1758, 634, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1759, 634, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1760, 635, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1761, 635, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1762, 636, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1763, 636, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1764, 637, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1765, 637, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1766, 638, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1767, 638, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1768, 639, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1769, 639, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1770, 640, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1771, 640, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1772, 641, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1773, 641, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1774, 642, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1775, 642, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1776, 643, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1777, 643, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1778, 644, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1779, 644, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1780, 645, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1781, 645, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1782, 646, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1783, 646, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1784, 647, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1785, 647, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1786, 648, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1787, 648, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1788, 649, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1789, 649, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1790, 650, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1791, 650, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1792, 651, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1793, 651, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1794, 652, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1795, 652, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1796, 653, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1797, 653, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1798, 654, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1799, 654, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1800, 655, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1801, 655, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1802, 656, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1803, 656, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1804, 657, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1805, 657, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1806, 658, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1807, 658, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1808, 659, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1809, 659, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1810, 660, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1811, 660, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1812, 661, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1813, 661, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1814, 662, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1815, 662, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1816, 663, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1817, 663, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1818, 664, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1819, 664, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1820, 665, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1821, 665, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1822, 666, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1823, 666, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1824, 667, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1825, 667, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1826, 668, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1827, 668, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1828, 669, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1829, 669, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1830, 670, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1831, 670, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1832, 671, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1833, 671, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1834, 672, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1835, 672, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1836, 673, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1837, 673, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1838, 674, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1839, 674, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1840, 675, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1841, 675, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1842, 676, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1843, 676, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1844, 677, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1845, 677, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1846, 678, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1847, 678, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1848, 679, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1849, 679, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1850, 680, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1851, 680, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1852, 681, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1853, 681, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1854, 682, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1855, 682, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1856, 683, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1857, 683, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1858, 684, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1859, 684, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1860, 685, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1861, 685, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1862, 686, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1863, 686, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1864, 687, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1865, 687, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1866, 688, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1867, 688, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1868, 689, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1869, 689, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1870, 690, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1871, 690, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1872, 691, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1873, 691, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1874, 692, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1875, 692, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1876, 693, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1877, 693, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1878, 694, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1879, 694, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1880, 695, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1881, 695, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1882, 696, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1883, 696, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1884, 697, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1885, 697, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1886, 698, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1887, 698, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1888, 699, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1889, 699, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1890, 700, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1891, 700, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1892, 701, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1893, 701, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1894, 702, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1895, 702, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1896, 703, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1897, 703, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1898, 704, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1899, 704, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1900, 705, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1901, 705, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1902, 706, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1903, 706, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1904, 707, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1905, 707, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1906, 708, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1907, 708, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1908, 709, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1909, 709, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1910, 710, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1911, 710, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1912, 711, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1913, 711, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1914, 712, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1915, 712, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1916, 713, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1917, 713, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1918, 714, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1919, 714, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1920, 715, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1921, 715, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1922, 716, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1923, 716, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1924, 717, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1925, 717, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1926, 718, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1927, 718, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1928, 719, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1929, 719, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1930, 720, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1931, 720, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1932, 721, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1933, 721, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1934, 722, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1935, 722, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1936, 723, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1937, 723, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1938, 724, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1939, 724, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1940, 725, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1941, 725, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1942, 726, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1943, 726, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1944, 727, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1945, 727, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1946, 728, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1947, 728, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1948, 729, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1949, 729, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1950, 730, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1951, 730, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1952, 731, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1953, 731, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1954, 732, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1955, 732, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1956, 733, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1957, 733, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1958, 734, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1959, 734, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1960, 735, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1961, 735, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1962, 736, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1963, 736, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1964, 737, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1965, 737, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1966, 738, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1967, 738, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1968, 739, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1969, 739, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1970, 740, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1971, 740, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1972, 741, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1973, 741, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1974, 742, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1975, 742, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1976, 743, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1977, 743, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1978, 744, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1979, 744, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1980, 745, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1981, 745, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1982, 746, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1983, 746, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1984, 747, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1985, 747, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1986, 748, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1987, 748, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1988, 749, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1989, 749, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1990, 750, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1991, 750, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1992, 751, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1993, 751, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1994, 752, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1995, 752, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1996, 753, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1997, 753, 4, NULL);
+INSERT INTO `t_car_service` VALUES (1998, 754, 2, NULL);
+INSERT INTO `t_car_service` VALUES (1999, 754, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2000, 755, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2001, 755, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2002, 756, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2003, 756, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2004, 757, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2005, 757, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2006, 758, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2007, 758, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2008, 759, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2009, 759, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2010, 760, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2011, 760, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2012, 761, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2013, 761, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2014, 762, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2015, 762, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2016, 763, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2017, 763, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2018, 764, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2019, 764, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2020, 765, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2021, 765, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2022, 766, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2023, 766, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2024, 767, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2025, 767, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2026, 768, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2027, 768, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2028, 769, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2029, 769, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2030, 770, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2031, 770, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2032, 771, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2033, 771, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2034, 772, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2035, 772, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2036, 773, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2037, 773, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2038, 774, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2039, 774, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2040, 775, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2041, 775, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2042, 776, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2043, 776, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2044, 777, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2045, 777, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2046, 778, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2047, 778, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2048, 779, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2049, 779, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2050, 780, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2051, 780, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2052, 781, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2053, 781, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2054, 782, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2055, 782, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2056, 783, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2057, 783, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2058, 784, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2059, 784, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2060, 785, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2061, 785, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2062, 786, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2063, 786, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2064, 787, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2065, 787, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2066, 788, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2067, 788, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2068, 789, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2069, 789, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2070, 790, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2071, 790, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2072, 791, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2073, 791, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2074, 792, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2075, 792, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2076, 793, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2077, 793, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2078, 794, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2079, 794, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2080, 795, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2081, 795, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2082, 796, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2083, 796, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2084, 797, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2085, 797, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2086, 798, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2087, 798, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2088, 799, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2089, 799, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2090, 800, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2091, 800, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2092, 801, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2093, 801, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2094, 802, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2095, 802, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2096, 803, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2097, 803, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2098, 804, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2099, 804, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2100, 805, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2101, 805, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2102, 806, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2103, 806, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2104, 807, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2105, 807, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2106, 808, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2107, 808, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2108, 809, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2109, 809, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2110, 810, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2111, 810, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2112, 811, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2113, 811, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2114, 812, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2115, 812, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2116, 813, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2117, 813, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2118, 814, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2119, 814, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2120, 815, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2121, 815, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2122, 816, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2123, 816, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2124, 817, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2125, 817, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2126, 818, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2127, 818, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2128, 819, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2129, 819, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2130, 820, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2131, 820, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2132, 821, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2133, 821, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2134, 822, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2135, 822, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2136, 823, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2137, 823, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2138, 824, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2139, 824, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2140, 825, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2141, 825, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2142, 826, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2143, 826, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2144, 827, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2145, 827, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2146, 828, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2147, 828, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2148, 829, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2149, 829, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2150, 830, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2151, 830, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2152, 831, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2153, 831, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2154, 832, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2155, 832, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2156, 833, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2157, 833, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2158, 834, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2159, 834, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2160, 835, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2161, 835, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2162, 836, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2163, 836, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2164, 837, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2165, 837, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2166, 838, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2167, 838, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2168, 839, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2169, 839, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2170, 840, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2171, 840, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2172, 841, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2173, 841, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2174, 842, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2175, 842, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2176, 843, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2177, 843, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2178, 844, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2179, 844, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2180, 845, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2181, 845, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2182, 846, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2183, 846, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2184, 847, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2185, 847, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2186, 848, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2187, 848, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2188, 849, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2189, 849, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2190, 850, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2191, 850, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2192, 851, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2193, 851, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2194, 852, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2195, 852, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2196, 853, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2197, 853, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2198, 854, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2199, 854, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2200, 855, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2201, 855, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2202, 856, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2203, 856, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2204, 857, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2205, 857, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2206, 858, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2207, 858, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2208, 859, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2209, 859, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2210, 860, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2211, 860, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2212, 861, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2213, 861, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2214, 862, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2215, 862, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2216, 863, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2217, 863, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2218, 864, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2219, 864, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2220, 865, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2221, 865, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2222, 866, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2223, 866, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2224, 867, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2225, 867, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2226, 868, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2227, 868, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2228, 869, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2229, 869, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2230, 870, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2231, 870, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2232, 871, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2233, 871, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2234, 872, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2235, 872, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2236, 873, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2237, 873, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2238, 874, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2239, 874, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2240, 875, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2241, 875, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2242, 876, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2243, 876, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2244, 877, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2245, 877, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2246, 878, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2247, 878, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2248, 879, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2249, 879, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2250, 880, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2251, 880, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2252, 881, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2253, 881, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2254, 882, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2255, 882, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2256, 883, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2257, 883, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2258, 884, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2259, 884, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2260, 885, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2261, 885, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2262, 886, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2263, 886, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2264, 887, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2265, 887, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2266, 888, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2267, 888, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2268, 889, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2269, 889, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2270, 890, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2271, 890, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2272, 891, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2273, 891, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2274, 892, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2275, 892, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2276, 893, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2277, 893, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2278, 894, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2279, 894, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2280, 895, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2281, 895, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2282, 896, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2283, 896, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2284, 897, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2285, 897, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2286, 898, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2287, 898, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2288, 899, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2289, 899, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2290, 900, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2291, 900, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2292, 901, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2293, 901, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2294, 902, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2295, 902, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2296, 903, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2297, 903, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2298, 904, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2299, 904, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2300, 905, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2301, 905, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2302, 906, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2303, 906, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2304, 907, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2305, 907, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2306, 908, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2307, 908, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2308, 909, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2309, 909, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2310, 910, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2311, 910, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2312, 911, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2313, 911, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2314, 912, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2315, 912, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2316, 913, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2317, 913, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2318, 914, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2319, 914, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2320, 915, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2321, 915, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2322, 916, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2323, 916, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2324, 917, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2325, 917, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2326, 918, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2327, 918, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2328, 919, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2329, 919, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2330, 920, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2331, 920, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2332, 921, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2333, 921, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2334, 922, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2335, 922, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2336, 923, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2337, 923, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2338, 924, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2339, 924, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2340, 925, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2341, 925, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2342, 926, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2343, 926, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2344, 927, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2345, 927, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2346, 928, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2347, 928, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2348, 929, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2349, 929, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2350, 930, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2351, 930, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2352, 931, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2353, 931, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2354, 932, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2355, 932, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2356, 933, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2357, 933, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2358, 934, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2359, 934, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2360, 935, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2361, 935, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2362, 936, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2363, 936, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2364, 937, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2365, 937, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2366, 938, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2367, 938, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2368, 939, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2369, 939, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2370, 940, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2371, 940, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2376, 942, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2377, 942, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2378, 941, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2379, 941, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2382, 945, 1, 1);
+INSERT INTO `t_car_service` VALUES (2383, 945, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2384, 946, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2385, 947, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2386, 948, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2388, 944, 1, 1);
+INSERT INTO `t_car_service` VALUES (2389, 944, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2390, 944, 3, NULL);
+INSERT INTO `t_car_service` VALUES (2392, 943, 1, 1);
+INSERT INTO `t_car_service` VALUES (2393, 943, 2, NULL);
+INSERT INTO `t_car_service` VALUES (2394, 943, 3, 4);
+INSERT INTO `t_car_service` VALUES (2395, 943, 4, NULL);
+INSERT INTO `t_car_service` VALUES (2396, 949, 2, NULL);
+
+-- ----------------------------
+-- Table structure for t_client_token
+-- ----------------------------
+DROP TABLE IF EXISTS `t_client_token`;
+CREATE TABLE `t_client_token`  (
+  `id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `appid` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用id',
+  `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用密钥',
+  `token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `expire` bigint(20) UNSIGNED NULL DEFAULT NULL,
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `accessTokenJson` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业微信/微信,token json包体',
+  `corpid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业微信产品id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口token验证' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_client_token
+-- ----------------------------
+INSERT INTO `t_client_token` VALUES ('1', 'RN2Eq-4cAg2NciY3', '0bce9fdb2b36b62281dd0e18cf80a5b6ce96a5d444adf8541300ac66', '83534bb4291aa03a54af0a103b9621a4f6f6e9f56e81d860eab1f4281b602234', 1541070242, '企业微信鉴权接口token', NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_company
+-- ----------------------------
+DROP TABLE IF EXISTS `t_company`;
+CREATE TABLE `t_company`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `isSpe` smallint(1) NULL DEFAULT NULL COMMENT '是否经营专车(1=是,2=否)',
+  `isTaxi` smallint(1) NULL DEFAULT NULL COMMENT '是否经营出租车(1=是,2=否)',
+  `isCross` smallint(1) NULL DEFAULT NULL COMMENT '是否经营跨城(1=是,2=否)',
+  `isCrossLogistics` smallint(1) NULL DEFAULT NULL COMMENT '是否经营跨城物流(1=是,2=否)',
+  `isSameLogistics` smallint(1) NULL DEFAULT NULL COMMENT '是否经营同城物流(1=是,2=否)',
+  `isCharter` smallint(1) NULL DEFAULT NULL COMMENT '是否经营包车(1=是,2=否)',
+  `isSpeFixedOrProportional` smallint(1) NULL DEFAULT NULL COMMENT '专车提成方式(1=比例,2=固定)',
+  `isTaxiFixedOrProportional` smallint(1) NULL DEFAULT NULL COMMENT '出租车提成方式(1=比例,2=固定)',
+  `isCrossLogisticsFixedOrProportional` smallint(1) NULL DEFAULT NULL COMMENT '跨城物流提成方式(1=比例,2=固定)',
+  `isSameLogisticsFixedOrProportional` smallint(1) NULL DEFAULT NULL COMMENT '同城物流提成方式(1=比例,2=固定)',
+  `speMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '专车提成数值',
+  `taxiMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '出租车提成数值',
+  `crossLogisticsMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '跨城物流提成数值',
+  `sameLogisticsMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '同城物流',
+  `isNeedFerry` smallint(1) NULL DEFAULT NULL COMMENT '是否需要摆渡车(1=是,2=否)',
+  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '企业名称',
+  `type` int(2) NOT NULL COMMENT '企业类型(1:平台,2:分公司,3:加盟商)',
+  `superiorId` int(11) NULL DEFAULT NULL COMMENT '上级企业id',
+  `principalName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责人姓名',
+  `principalPhone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '负责人电话',
+  `adminName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '管理员姓名',
+  `adminPhone` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '管理员电话',
+  `urgentPhoen` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '紧急联系电话',
+  `setupTime` date NULL DEFAULT NULL COMMENT '服务机构设立日期',
+  `identifier` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '统一社会信用代码',
+  `addressCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '注册地行政区划分代码',
+  `businessScope` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '经营范围',
+  `contactAddress` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '通信地址',
+  `documentAddress` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '行政文书送达地址',
+  `economicType` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '经营业户经济类型',
+  `regCapital` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '注册资本',
+  `legalName` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '法人代表姓名',
+  `legalId` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '法人代表身份证号',
+  `legalPhone` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '法人代表电话',
+  `legalPhotoUrl` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '法人代表身份证扫描件文件地址',
+  `licensingAgency` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '经营许可证发证机构',
+  `licenseTime` date NULL DEFAULT NULL COMMENT '经营许可证初次发证日期',
+  `licenseStartTime` date NULL DEFAULT NULL COMMENT '经营许可证有效期起',
+  `licenseEndTime` date NULL DEFAULT NULL COMMENT '经营许可证有效期止',
+  `licenseNumber` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '网络预约车经营许可证号',
+  `carNum` int(11) NULL DEFAULT NULL COMMENT '注册网络预约车辆数',
+  `driverNum` int(11) NULL DEFAULT NULL COMMENT '注册网络预约车驾驶员数量',
+  `mac` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '登录MAC地址(多个以逗号分隔)',
+  `state` int(2) NULL DEFAULT 0 COMMENT '当前状态(0:正常,1:禁用)',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '操作标识(1:新增,2:修改,3:删除)',
+  `upload` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '上传标识(1:未上传,2:已上传)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `detailAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '具体地址',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分公司代码',
+  `scopeCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '分公司区划代码',
+  `serviceScope` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '经营区域',
+  `idCardPositive` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证正面',
+  `idCardReverse` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证反面',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公司信息表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_company
+-- ----------------------------
+INSERT INTO `t_company` VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0.00, 0.00, 0.00, 0.00, 1, '云森科技公司', 1, NULL, '', '', '', '', '', NULL, '', '', '', '', '', '', '', '', '', '', NULL, '', NULL, NULL, NULL, '', NULL, NULL, NULL, 0, '1', NULL, NULL, '', '', '', '', '', '');
+INSERT INTO `t_company` VALUES (2, 1, 1, 1, 2, 1, 1, 1, 1, NULL, 1, 10.00, 10.00, NULL, 10.00, 1, '崇州分公司', 2, NULL, '', '', '', '', '', NULL, '', '', '', '', '', '', '', '', '', '', NULL, '', NULL, NULL, NULL, '', NULL, NULL, '', 0, '1', NULL, '2020-09-24 10:16:22', 'admin', '', '', '', '', '');
+INSERT INTO `t_company` VALUES (3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10.00, 10.00, 10.00, 10.00, 1, '崇州加盟商', 3, 2, '吴小梅', '17623778643', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '1', NULL, '2020-09-24 10:18:53', '四川崇州', NULL, NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_company_city
+-- ----------------------------
+DROP TABLE IF EXISTS `t_company_city`;
+CREATE TABLE `t_company_city`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `provinceCode` int(20) NULL DEFAULT NULL COMMENT '省Code',
+  `cityCode` int(11) NULL DEFAULT NULL COMMENT '市Code',
+  `areaCode` int(11) NULL DEFAULT NULL COMMENT '区Code',
+  `state` int(1) NULL DEFAULT 1 COMMENT '1=正常,2=删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '公司经营地区' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_company_city
+-- ----------------------------
+INSERT INTO `t_company_city` VALUES (24, 1, 450000, 450200, NULL, 1);
+INSERT INTO `t_company_city` VALUES (26, 1, 510000, 510100, NULL, 1);
+INSERT INTO `t_company_city` VALUES (27, 2, 510000, 510100, 510184, 1);
+
+-- ----------------------------
+-- Table structure for t_complaint
+-- ----------------------------
+DROP TABLE IF EXISTS `t_complaint`;
+CREATE TABLE `t_complaint`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `userId` int(11) NOT NULL COMMENT '用户Id',
+  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL COMMENT '投诉原因',
+  `driverId` bigint(20) NOT NULL COMMENT '被投诉人Id',
+  `description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+  `isHandle` smallint(1) NOT NULL DEFAULT 0 COMMENT '是否处理(0:未处理,1:已处理)',
+  `insert_time` datetime(0) NULL DEFAULT NULL COMMENT '投诉时间',
+  `handleResult` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '处理结果',
+  `handleUserId` int(11) NULL DEFAULT NULL COMMENT '处理人id',
+  `handleTime` datetime(0) NULL DEFAULT NULL COMMENT '处理时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '投诉管理' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_complaint
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_dispatch
+-- ----------------------------
+DROP TABLE IF EXISTS `t_dispatch`;
+CREATE TABLE `t_dispatch`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '调度名称',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '所属分公司ID',
+  `franchiseeId` int(11) NULL DEFAULT NULL COMMENT '加盟商ID',
+  `phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '联系电话',
+  `account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '登录账号',
+  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '登录密码  加密方式:MD5  加盐:WL:x9#',
+  `insertUserId` int(11) NULL DEFAULT NULL COMMENT '添加用户ID',
+  `insertUserRole` int(1) NULL DEFAULT NULL COMMENT '添加用户角色',
+  `state` int(1) NULL DEFAULT 1 COMMENT '状态 1=正常 2=冻结 3=删除',
+  `pushOrder` int(1) NULL DEFAULT 1 COMMENT '推单配置(1=接收,2=不接受)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '调度管理' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_dispatch
+-- ----------------------------
+INSERT INTO `t_dispatch` VALUES (1, '2020-09-24 10:19:14', '崇州调度公司', 2, 3, '17623778642', '17623778642', '53b4d372bba36db69f397257d55523b7', 1, 1, 1, NULL);
+INSERT INTO `t_dispatch` VALUES (2, '2020-10-19 11:21:23', '删除', 1, NULL, '15828353127', '15828353127', 'ed8a9821ceb968264baad57df9204100', 1, 1, 1, 1);
+
+-- ----------------------------
+-- Table structure for t_driver
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver`;
+CREATE TABLE `t_driver`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `account` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '登录账号',
+  `jobNumber` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '工号',
+  `phone` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手机号',
+  `password` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
+  `withdrawPassword` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '提现密码',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '姓名',
+  `sex` smallint(1) NULL DEFAULT NULL COMMENT '性别(1=男,2=女)',
+  `idCard` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证号',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `franchiseeId` int(11) NULL DEFAULT NULL COMMENT '加盟商ID',
+  `headImgUrl` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像照片',
+  `faceImgUrl` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '人脸识别照片',
+  `idCardImgUrl1` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证正面照片',
+  `idCardImgUrl2` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证背面照片',
+  `placeOfEmployment` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '网约车司机注册地行政区域',
+  `birthday` date NULL DEFAULT NULL COMMENT '生日',
+  `bankCardNumber` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '银行卡号',
+  `driverNationality` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '国籍',
+  `driverNation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '民族',
+  `driverMaritalStatus` int(1) NULL DEFAULT NULL COMMENT '婚姻状况(1:未婚,2:已婚,3:离异)',
+  `driverLanguageLevel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '外语能力',
+  `driverEducation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '学历',
+  `driverCensus` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '户口登记机关名称',
+  `driverAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '户口地址或常住地址',
+  `driverContactAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '通信地址',
+  `driverContactAddress_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '通信地址(带分隔符)',
+  `licenseCode` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '机动车驾驶证号',
+  `licenselImgUrl` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '机动车驾驶证照片路径',
+  `driverAge` int(5) NULL DEFAULT NULL COMMENT '驾龄',
+  `driveCard` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '驾驶证号',
+  `driveCardImgUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '驾驶证照片',
+  `driverType` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '准驾车型',
+  `getDriverLicenseDate` date NULL DEFAULT NULL COMMENT '初次领取驾驶证日期',
+  `driverLicenseOn` date NULL DEFAULT NULL COMMENT '驾驶证有效期限起',
+  `driverLicenseOff` date NULL DEFAULT NULL COMMENT '驾驶证有效期限止',
+  `taxiDriver` int(1) NULL DEFAULT NULL COMMENT '是否巡游出租车驾驶员(0:否,1:是)',
+  `taxiAptitudeCard` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '出租车资格证号',
+  `networkCarlssueImg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '网约车资格证照片',
+  `networkCarlssueOrganization` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '网络预约出租车驾驶员证发证机构',
+  `networkCarlssueDate` date NULL DEFAULT NULL COMMENT '资格证发证日期',
+  `getNetworkCarProofDate` date NULL DEFAULT NULL COMMENT '初次认领资格证日期',
+  `networkCarProofOn` date NULL DEFAULT NULL COMMENT '资格证有效起始日期',
+  `networkCarProofOff` date NULL DEFAULT NULL COMMENT '资格证有效截至日期',
+  `registerDate` date NULL DEFAULT NULL COMMENT '报备日期',
+  `fullTimeDriver` int(1) NULL DEFAULT NULL COMMENT '是否专职驾驶员(0:否,1:是)',
+  `inDriverBlacklist` int(1) NULL DEFAULT NULL COMMENT '是否在驾驶员黑名单内(0:否,1:是)',
+  `commercialType` int(1) NULL DEFAULT NULL COMMENT '服务类型(1:网络预约出租汽车,2:巡游出租汽车,3:私人小客车合乘)',
+  `contractCompany` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '驾驶员合同签署公司',
+  `contractOn` date NULL DEFAULT NULL COMMENT '合同有效期起',
+  `contractOff` date NULL DEFAULT NULL COMMENT '合同有效期止',
+  `emergencyContact` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '紧急联系人',
+  `emergencyContactPhone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '紧急联系电话',
+  `emergencyContactAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '紧急联系地址',
+  `placeOfPractice` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '从业地(带分隔符)',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `isPlatCar` smallint(1) NULL DEFAULT NULL COMMENT '是否是平台车辆(1=是,2=否)',
+  `carId` int(11) NULL DEFAULT NULL COMMENT '司机管理车辆id',
+  `authState` smallint(1) NULL DEFAULT NULL COMMENT '状态(1=待审核,2=正常,3=冻结,4=拒绝)',
+  `state` smallint(1) NULL DEFAULT 1 COMMENT '司机状态(1=离线,2=空闲,3=服务中)',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `insertUser` int(11) NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  `addType` int(2) NULL DEFAULT 1 COMMENT '司机来源方式 1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加',
+  `addObjectId` int(11) NULL DEFAULT NULL COMMENT '添加司机的分公司/加盟商ID',
+  `balance` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '余额',
+  `activityMoney` double(10, 2) NULL DEFAULT NULL COMMENT '活动总收入',
+  `laveActivityMoney` double(10, 2) NULL DEFAULT NULL COMMENT '剩余活动收入',
+  `businessMoney` double(10, 2) NULL DEFAULT NULL COMMENT '业务总收入',
+  `laveBusinessMoney` double(10, 2) NULL DEFAULT NULL COMMENT '业务剩余收入',
+  `appletsOpenId` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '小程序openid',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 967 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '司机表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_driver
+-- ----------------------------
+INSERT INTO `t_driver` VALUES (1, '13877227088', '000000000926', '13877227088', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱华明', 1, '362135197305165932', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb37a26d8a854837bbd4b583bfa7b1a2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b60195d89100406891fdb88f875b1378.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '362135197305165932', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d0a636f47cd54070b41e8b80ad67dd1c.jpg', NULL, NULL, NULL, NULL, NULL, '362135197305165932', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:24:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (2, '18978010536', '000000000301', '18978010536', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴东升', 1, '450205198912220018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1099fc02166f4bbd8e9547275e8a8fb5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/964827cc8ed445d79ff2a43fa36fb4b4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳北区胜利小区六村10栋3单元102室', NULL, NULL, NULL, NULL, 10, '450205198912220018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2fc3bad9cd164b538b6a96aed4873b4b.jpg', NULL, NULL, NULL, NULL, NULL, '450205198912220018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 747, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:23:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (3, '18897720920', '000000000302', '18897720920', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈巍', 1, '450203198410241019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c519d67e63c4c0d9d2ecd1bd1bb2dd2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e1b717172b246d89376442c65e298f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '鱼峰区岩村路一巷50号6栋701室', NULL, NULL, NULL, NULL, 10, '450203198410241019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8aa3f98442c04a1e92b7f1e8e4e5911d.jpg', NULL, NULL, NULL, NULL, NULL, '450203198410241019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 781, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:22:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (4, '15077287288', '000000000303', '15077287288', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈勇', 1, '450202197810140611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ea24acbe0b642ecb6e5872bdba0170f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a271322bf774a72ad831357c76e4a6d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197810140611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b95162c08bb54873bceb684fab438a4c.jpg', NULL, NULL, NULL, NULL, NULL, '450202197810140611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:21:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (5, '13607826352', '000000000304', '13607826352', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '磨雷敏', 1, '450204198603051031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec9602cfe573455f9b0463e80d665234.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/826ae3497d5c400b91b774e181448c20.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198603051031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f43e95d19308476283a1048f7a210d0f.jpg', NULL, NULL, NULL, NULL, NULL, '450204198603051031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '退车推出', 1, NULL, 3, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:21:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (6, '18977205749', '000000000306', '18977205749', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王斌', 1, '450203197411030315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1ef58aed7084e0ab265f0f7f84361a5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a25fc4ad5bd34e8d9df5d7c64e1da6b3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197411030315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2154c96e8a8844ae84ca13cb60432005.jpg', NULL, NULL, NULL, NULL, NULL, '450203197411030315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 628, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:20:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (7, '13977232388', '000000000307', '13977232388', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎明', 1, '450203198303190033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2b2addb3b27144b088c1bd262ef81e7c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb8fbecdc51c410db6e25166bf97d9f4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198303190033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/40043f7f12924fb9a67113b570496277.jpg', NULL, NULL, NULL, NULL, NULL, '450203198303190033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:19:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (8, '13481262013', '000000000308', '13481262013', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾祥斌', 1, '450221197304211914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6df5f897a1b2483ca581ddf10bdfb61f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25c88400610b4ccdb208fa30ffb03e9e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江区进德镇三千村桥头屯', NULL, NULL, NULL, NULL, 10, '450221197304211914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da9b0002e1e3433380e1e8b8db3f38c5.JPG', NULL, NULL, NULL, NULL, NULL, '450221197304211914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 670, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-31 17:07:32', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (9, '13627827728', '000000000309', '13627827728', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁志忠', 1, '450221198211242919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/28324d6bf2ac4404a04b5bfac12f4356.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a496d86c0c5486e9f627aaa91899db5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198211242919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c62196754d8646d69c8bd9d5bd5a9b5b.jpg', NULL, NULL, NULL, NULL, NULL, '450221198211242919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 697, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:18:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (10, '15224591915', '000000000310', '15224591915', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李德弘', 1, '450204197211240314', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f9ef833f7bc4ad8ba20eaa67dd51e70.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/193a63a1d7424d5b8b58f4b0064a9e31.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区航银路16号9栋21号', NULL, NULL, NULL, NULL, 10, '450204197211240314', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7b5d68f5272b4fce85805866e05d8932.jpg', NULL, NULL, NULL, NULL, NULL, '450204197211240314', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 606, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:17:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (11, '18507727489', '000000000311', '18507727489', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周兴明', 1, '452223198503223036', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99c873b93b074fc896083f12a63cef96.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/15875f4b277242ca8abd7ab361e348b7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198503223036', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b93d48db991e477ab34047c3b391ae06.jpg', NULL, NULL, NULL, NULL, NULL, '452223198503223036', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 748, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:16:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (12, '18977283305', '000000000312', '18977283305', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李明', 1, '450205197512291031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3eb96d98e43b48e3afd4f2564e2cc526.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39b8f3c751e24979b407ede3beb8c7d6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区马厂村盘龙屯23号', NULL, NULL, NULL, NULL, 10, '450205197512291031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a90adb0f11ed400589283b272b92b170.jpg', NULL, NULL, NULL, NULL, NULL, '450205197512291031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 727, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:16:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (13, '13377076726', '000000000313', '13377076726', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃志勇', 1, '452224197404080510', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7868a7db06264ba2b8f587eaa0cdc516.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba85544d43504516b5c5070b92034630.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江区穿山镇柳石路46号兴汇南国际', NULL, NULL, NULL, NULL, 10, '452224197404080510', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/725ec12ce2b84b6db599425806d2c112.jpg', NULL, NULL, NULL, NULL, NULL, '452224197404080510', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:15:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (14, '18077212001', '000000000314', '18077212001', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭海青', 1, '452728198304062750', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f8a8fecda2744f19b9499189aebb5e1f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a28e1371e0284d99a79c4b555fd7c0dc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452728198304062750', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8a3247a8e674ca492d66dbbb20a94ff.jpg', NULL, NULL, NULL, NULL, NULL, '452728198304062750', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:14:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (15, '18978001248', '000000000315', '18978001248', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃家利', 1, '450221199109081973', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb87184284cf4727b788216eed5e2538.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a4d10db64df450e8ffa80cc25453216.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199109081973', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/757c06d4e12c4cbb8ee5970c06bb7639.jpg', NULL, NULL, NULL, NULL, NULL, '450221199109081973', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 750, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:13:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (16, '18775147128', '000000000316', '18775147128', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何义', 1, '452229197602135115', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/981d515e89824e88a1aac70621815ad3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1b12232dc1404fd8a1c5c49cb0cd3899.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229197602135115', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a5b6fbd874e4dcfb86aa8dd259ba2bb.jpg', NULL, NULL, NULL, NULL, NULL, '452229197602135115', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:12:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (17, '13178507853', '000000000200', '13178507853', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡鼎华', 1, '450221198909014918', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/acbd24407d2e47ba8fe79f364ee5a2f8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/243243bd701c44aeb8dbe82804fb76f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江县土博镇土博街157号', NULL, NULL, NULL, NULL, 10, '450221198909014918', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9e49b41afaf492b82a3213bb05f4bbf.jpg', NULL, NULL, NULL, NULL, NULL, '450221198909014918', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 601, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:12:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (18, '15878269905', '000000000336', '15878269905', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘胜华', 1, '452223198610244051', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f1bd0677d74416e9b2e7f0914017e8d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0a4cdd68a524d7b810cf7969c4c6291.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198610244051', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f25b1f177d864da28f02d2940c6bb4bf.jpg', NULL, NULL, NULL, NULL, NULL, '452223198610244051', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 640, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:11:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (19, '18897823133', '000000000196', '18897823133', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '万先玲', 2, '510231198101195524', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26a0cd64b88b44568d7f5e84f9319ec5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1adbbac88dd54449a9f29bbd820debc1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '510231198101195524', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/149b0c4e40e9434f9185bf2e321fac92.jpg', NULL, NULL, NULL, NULL, NULL, '510231198101195524', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 761, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:10:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (20, '15077220402', '000000000317', '15077220402', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃东旭', 1, '450202196203090638', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d9614ff89074537a5f56cb2257139dd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d9b8f2d42f95441784fea94a6946615a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '城中区中山西路64号2单元102室', NULL, NULL, NULL, NULL, 10, '450202196203090638', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd63647360714d368320b107e8a4d873.jpg', NULL, NULL, NULL, NULL, NULL, '450202196203090638', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 720, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:09:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (21, '15723923252', '000000000318', '15723923252', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '荣健敏', 1, '450203197204121011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0d00f235f2346228bba4e5c7a0d8c6e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c118ffd0079435fafc47319753ed151.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳北区长风路1号之一9栋1单元102室', NULL, NULL, NULL, NULL, 10, '450203197204121011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a154e8bb8ae472cbf9e4d688cca4f22.jpg', NULL, NULL, NULL, NULL, NULL, '450203197204121011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 720, 2, 1, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:08:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (22, '18177268035', '000000000319', '18177268035', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '伍义强', 1, '450205197307020718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ca3bee0755f6400e9d47c726bed42c05.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b5674b9f25334f0cb74471aec8bf6a3e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市锦绣路7号7-1-3号', NULL, NULL, NULL, NULL, 10, '450205197307020718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f63dde95318f4ba7853a116f0908b2a4.jpg', NULL, NULL, NULL, NULL, NULL, '450205197307020718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 651, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:08:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (23, '18978085255', '000000000320', '18978085255', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄绍金', 1, '452231197503070012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/95b2fb9a9027461c8adcf1c3c4c720d1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/15afbd1033a94fc8afc0107125acaf53.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '跃进路100号之一二和兴园2栋2单元1603', NULL, NULL, NULL, NULL, 10, '452231197503070012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de70b4fbf66b4d24a3a4f7a003ccf5ef.jpg', NULL, NULL, NULL, NULL, NULL, '452231197503070012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 693, 2, 1, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:07:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (24, '17878270058', '000000000321', '17878270058', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦建文', 1, '45222719780828261X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/138c8594799947daac9d9c9f8439f959.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59b47ec23be04a62800a651e0ebc8b9f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222719780828261X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9ca06de11bb84666a6ffc769409a05f0.jpg', NULL, NULL, NULL, NULL, NULL, '45222719780828261X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 726, 2, 2, '1', '2020-08-17 17:53:14', 1, '2020-08-25 15:06:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (25, '17878266336', '000000000322', '17878266336', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄俊', 1, '450222198602190315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/845db6b963b049518c2f466fa6ecc630.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dfdf0b2bda734c0ea238f2daae43808e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198602190315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ab6fdba620c640fe8230f6da19b7db58.jpg', NULL, NULL, NULL, NULL, NULL, '450222198602190315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 782, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:05:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (26, '13299600721', '000000000323', '13299600721', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢柳亮', 1, '450222198708170355', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39f1d82bb5be4243bedb07a59ac99e20.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25fb8958299d43808f120c7e6f9d22dd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳城县东泉镇螺田村民委螺田屯3队14号', NULL, NULL, NULL, NULL, 10, '450222198708170355', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0079b3e8651f41aea98bec590dedd0f9.jpg', NULL, NULL, NULL, NULL, NULL, '450222198708170355', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 782, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:05:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (27, '18277200260', '000000000324', '18277200260', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邱翔', 1, '452224198709133518', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e9c1a04e6114c299fa788748df25ac2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a613aaa293454bd392031cc2c1f95553.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224198709133518', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efe31b39791a47d5a1c20cc0a8aea6cf.jpg', NULL, NULL, NULL, NULL, NULL, '452224198709133518', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:04:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (28, '18177281177', '000000000325', '18177281177', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈超恒', 1, '450204198610151436', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9e1fd3ae93e34160ac6175559ce4559b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0aeb0553c855440f9327866efbe0695c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198610151436', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b487e3f0bb44da98505efec0fb65928.jpg', NULL, NULL, NULL, NULL, NULL, '450204198610151436', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:03:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (29, '13481260636', '000000000326', '13481260636', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '叶桥芳', 1, '45222619831218693X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/703ae7f143e24a29b86ecae20c893bad.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5833461a7e994659b2b204a6f7ad7d01.jpg', 'http://newok.oss-cn-shenzhen.aliyuncs.com/f8bcebff-86fd-4b26-9c5f-9d41d93dbc79', 'http://newok.oss-cn-shenzhen.aliyuncs.com/d6883515-e573-4975-a59b-a51bab65b234', '450203', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区柳州市鱼峰区', '广西壮族自治区柳州市鱼峰区', '广西壮族自治区,柳州市,鱼峰区', NULL, NULL, 8, '45222619831218693X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/523a2ebcb277401fbbd125141526175f.JPG', NULL, '2012-01-16', NULL, NULL, NULL, '45222619831218693X', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,鱼峰区', NULL, 1, 621, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-08-31 16:02:54', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (30, '18076711588', '000000000221', '18076711588', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃韦奋', 1, '450221199402253412', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a2c17e06d8b4a54bff8a9e1335fd156.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e6726e56c27d4dd69523fe4c111d9e29.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199402253412', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9adb700502f34331ad23699c9fe8cfa0.jpg', NULL, NULL, NULL, NULL, NULL, '450221199402253412', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:01:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (31, '17776300339', '000000000327', '17776300339', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '玉明', 1, '450203198410051338', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/adabc46fc04749a8a37326ccfc1105ee.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/423f9792faed475e937709d1e664dea7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '鱼峰区屏山大道270号401室', NULL, NULL, NULL, NULL, 10, '450203198410051338', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e400e44c9f194fd5a338332055456f65.jpg', NULL, NULL, NULL, NULL, NULL, '450203198410051338', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 628, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:01:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (32, '17776309725', '000000000328', '17776309725', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邱文生', 1, '452226198601015133', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/295c4cf44a23443a947b834e26bd8350.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d88f1d7bcbd46e39b535fa63f7add8c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198601015133', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e6ef602036cd40c6a8062cb30e879a23.jpg', NULL, NULL, NULL, NULL, NULL, '452226198601015133', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 15:00:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (33, '18867002589', '000000000329', '18867002589', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '游治华', 1, '450203197312191017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce4a247285c9447fbb26e239a8bb0466.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4613495e34974cdfba1789dfb29b095b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197312191017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/accb70721b6741589e295771688c3860.jpg', NULL, NULL, NULL, NULL, NULL, '450203197312191017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 643, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:59:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (34, '18978023240', '000000000330', '18978023240', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '余喆', 1, '450203198001260016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbf21324ca4542f4b019c4feb0185760.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f00f4075f4d24798abbd568f39fd87b5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳北区八一路15号', NULL, NULL, NULL, NULL, 10, '450203198001260016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e6fc3a84c7124081a9f071ea7ada1b61.jpg', NULL, NULL, NULL, NULL, NULL, '450203198001260016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 745, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:58:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (35, '18978043945', '000000000331', '18978043945', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李勇军', 1, '452223197610227011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5d28bbbe37d4a838809cc23493dc399.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eaf8b40f63b84611b6179c6d575e0891.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市六座村民委六座屯137号', NULL, NULL, NULL, NULL, 10, '452223197610227011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/105685b852d249c7b07bdd5cec48a92d.jpg', NULL, NULL, NULL, NULL, NULL, '452223197610227011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 625, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:57:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (36, '18878225152', '000000000332', '18878225152', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘辉', 1, '452223197812164012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e7b8ce33e55457aa8ae0c8e0897becf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9bbfe9865f5c4abc928a700201cec9bc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197812164012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a9e87c4589d0432283c623ee141efcda.jpg', NULL, NULL, NULL, NULL, NULL, '452223197812164012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 640, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:57:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (37, '17807720148', '000000000335', '17807720148', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦瑞苗', 1, '450221198206082914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2a7287698a634693ae9d751a8bc4cb5b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de0a7b045be1497db261a00452749fee.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198206082914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d1764863385403fbcc21cbdbc4f42f0.jpg', NULL, NULL, NULL, NULL, NULL, '450221198206082914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 787, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:56:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (38, '13457230345', '000000000159', '13457230345', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦建勇', 1, '450205197708120015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44641abf87644662aa5134fcf8dcdcfe.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/79e908f90de44bb3ae3b6fb5dd26d0ec.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197708120015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a52a7b779bd24ee5aedcfa978922a116.jpg', NULL, NULL, NULL, NULL, NULL, '450205197708120015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 745, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:55:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (39, '13377070131', '000000000999', '13377070131', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢丽全', 1, '450222198810162634', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff8ab94eca404e8587dc8b877adbd727.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/53cf4b26e0dd4da4b2b0982f11a3d0e4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198810162634', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b8cd194c777940fe9a565d84452a11ef.jpg', NULL, NULL, NULL, NULL, NULL, '450222198810162634', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:54:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (40, '13557501966', '000000000338', '13557501966', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦瑞金', 1, '45022119840506003X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4d5b52e4e1146a9964e9c077dbf2712.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5e9e9e6fc1a4204ba71300604307be7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119840506003X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f00716ffd2e4dcbbb5de4a13be84afd.jpg', NULL, NULL, NULL, NULL, NULL, '45022119840506003X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 787, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:54:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (41, '18376218045', '000000000339', '18376218045', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄东平', 1, '450802198810032618', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e68fac98d6c448cba01b8bf9d3916512.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d8111861d0fa4692a560ddbce24c9dc7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450802198810032618', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78aea9b847ad4982bada915c3d8eeef4.jpg', NULL, NULL, NULL, NULL, NULL, '450802198810032618', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:53:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (42, '13978009221', '000000000350', '13978009221', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈宏勋', 1, '450204197811201431', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/db64c129d4b04123ac2c9f024eaf4a5c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/68b1a3f0d3cc4df69d236bf44b18ed69.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197811201431', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb561eae3817439f9b319aa9372c2ec3.jpg', NULL, NULL, NULL, NULL, NULL, '450204197811201431', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:52:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (43, '15807728825', '000000000352', '15807728825', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾勇', 1, '450203197705200333', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa1c9b0d7c3c4e26b6a38d9f67d5c2be.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ddd64e64ef364cffba3808348942f923.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197705200333', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5abf3978a2fb48e9884d0d6c9e07f22f.jpg', NULL, NULL, NULL, NULL, NULL, '450203197705200333', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 728, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:51:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (44, '13877271922', '000000000351', '13877271922', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张银海', 1, '450203197409280315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1747f1b658eb43e18ae3ca19751f23b7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/94d85c2bdf284268b2cde1c85c050ce3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197409280315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1dbc944db081460693719d69879579f4.jpg', NULL, NULL, NULL, NULL, NULL, '450203197409280315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 728, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:51:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (45, '18172156853', '000000000353', '18172156853', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖才利', 1, '452227199305291214', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0074e8b76a2b43ddb3ff85bfe59a8745.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cda8dc4de82d40aa9fee8c9c2a72ce5c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227199305291214', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a242ebe18c3b48c5a28bd5a2066057d6.jpg', NULL, NULL, NULL, NULL, NULL, '452227199305291214', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:50:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (46, '15278882095', '000000000195', '15278882095', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢永忠', 1, '450221197610206416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0696502ce024e81aca4b523468e1242.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b2190d599b4f4452a7caa5011465ade1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197610206416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b9fda04a429641ecb4a0d56da197cc10.jpg', NULL, NULL, NULL, NULL, NULL, '450221197610206416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:49:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (47, '13978032071', '000000000202', '13978032071', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈建福', 1, '452224196501173538', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2e2d9d16a144da8bc3ce9192ad0cc63.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f982bdf365984f9eb68291f92ef2dead.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224196501173538', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/950f89592d3e4d078802cb580a19dfc5.jpg', NULL, NULL, NULL, NULL, NULL, '452224196501173538', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:48:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (48, '13877227161', '000000000071', '13877227161', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吕征', 1, '450222197806020356', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dc49e43fc5b245799c922e331564434e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6b471abf532a4d7bad25e5f3a4255fb7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197806020356', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6d53512bddc4579969dd564946a306f.jpg', NULL, NULL, NULL, NULL, NULL, '450222197806020356', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:48:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (49, '18172148996', '000000000208', '18172148996', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎中毅', 1, '450205198107120436', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/545aba6781764462bdfaeef7a738b52c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8f83d7aeb374b33b6fa35f17e1e67eb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198107120436', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ff3aac0eb3b4a36beb1da3b26567de3.jpg', NULL, NULL, NULL, NULL, NULL, '450205198107120436', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:47:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (50, '18587527617', '000000000219', '18587527617', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '盘成新', 1, '452229197110071434', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/21bd1838957b4e1aaaa6465bc8e53bf5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc1d455219bf4955ad0602646325a867.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229197110071434', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/470b96c9544442c2976cbf87cb6e2730.jpg', NULL, NULL, NULL, NULL, NULL, '452229197110071434', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:46:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (51, '15907720676', '000000000217', '15907720676', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '彭伟', 1, '450211196206241610', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa6ecc0ac68d46d5bb79baa3c5ce2e3a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ffe12563589a47d283349c9f5f9dcd7e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211196206241610', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8368459655b64d2cb7ad7f5c603c6011.jpg', NULL, NULL, NULL, NULL, NULL, '450211196206241610', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:46:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (52, '13377231977', '000000000222', '13377231977', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何小弟', 1, '450203197508130312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d1beeb7c913745c3bc4513efc4b0169c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d12566324cb419b9c593f5dffad8b0f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197508130312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a7324897cc6a4839913c4aaadf89999a.jpg', NULL, NULL, NULL, NULL, NULL, '450203197508130312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:45:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (53, '18378008805', '000000000086', '18378008805', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙建光', 1, '452229198103221419', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e3f5c6b9e3c44e59970ac61fbdb6038.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/83c172254ee7452aa2de6fb5055ce2f8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198103221419', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/74a3b598b3784b6fab04ffd97c3cce73.jpg', NULL, NULL, NULL, NULL, NULL, '452229198103221419', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 737, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:44:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (54, '13388441979', '000000000355', '13788441979', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李日大', 1, '450221197804031418', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ef0b30ee87e5411b868f1b7769f6d191.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/98f013d7c7334176b56ee5a6d1aa6079.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县穿山镇仁安村官塘屯17号之二', NULL, NULL, NULL, NULL, 10, '450221197804031418', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a8790ba37db144b99b0abbee0a41ee1e.jpg', NULL, NULL, NULL, NULL, NULL, '450221197804031418', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 704, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-09-04 16:58:29', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (55, '18077200389', '000000000356', '18077200389', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '明现光', 1, '452224197412091519', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/511d3d46c7d04970a6ac70dfcd3918d4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5994f3c317ab4228a941c539e5491cd3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224197412091519', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/64301a008149479c93d4b387dc342194.jpg', NULL, NULL, NULL, NULL, NULL, '452224197412091519', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:39:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (56, '17776306481', '000000000357', '17776306481', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁剑飞', 1, '450204198109080013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afdef870a8ca49ee888f92ab25ff64e9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a0c6b38f0cb4e069f2e5129fca044cc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区柳邕路70号', NULL, NULL, NULL, NULL, 10, '450204198109080013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7baf6230d1ad47cc8517a7354b2715ff.jpg', NULL, NULL, NULL, NULL, NULL, '450204198109080013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 714, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:38:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (57, '13877208976', '000000000359', '13877208976', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱汝瑞', 1, '450221196706240617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f204cc9a7584ad898b502f464713503.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6dd33a44c626438aa5cdb39598bca074.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196706240617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/83e27b5fdc2b4777a69c697642606d29.jpg', NULL, NULL, NULL, NULL, NULL, '450221196706240617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:37:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (58, '13877234190', '000000000360', '13877234190', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦波柱', 1, '450205197701100775', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b35ef1d0779647c0a17e4c5afa94d0b5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fddc020c655b459dba8f4ac51315df67.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197701100775', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/262e7d77504c4ba798226eb999a7b027.jpg', NULL, NULL, NULL, NULL, NULL, '450205197701100775', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 699, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:37:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (59, '13877218053', '000000000361', '13877218053', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郑开彦', 1, '450203197610081334', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b31447cf624454789aa97ab0599fd02.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7bea501dfd4448a795365076be4c314a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区屏山大道289号3栋2单元302室', NULL, NULL, NULL, NULL, 10, '450203197610081334', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/19379b76efc94c50bd506dee443b87a1.jpg', NULL, NULL, NULL, NULL, NULL, '450203197610081334', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 770, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-09-04 17:59:35', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (60, '13317727318', '000000000362', '13317727318', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵勇胜', 1, '452229198208240050', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2596b23296cd41b2880e34a4bb9c4d6c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/72a1b324001f4c3f9521a4972aea9228.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198208240050', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/104f611b10c540bd95960b1def35ae55.jpg', NULL, NULL, NULL, NULL, NULL, '452229198208240050', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 771, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:35:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (61, '18878222172', '000000000363', '18878222172', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '温传', 1, '452223198606235013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ce0225d0ea0419b96367edb03410d9b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/00a2adb0eea44263afd4add75d82fa5d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198606235013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/77766fcdc2bf417a93915363f2ff8f95.jpg', NULL, NULL, NULL, NULL, NULL, '452223198606235013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 767, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:34:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (62, '15278865190', '000000000365', '15278865190', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '庞天玉', 1, '450923198710140379', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e452a31b18ab47dbb0a3d3f714a1f83d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb3d6c88527a4b928e99bf17e105d297.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450923198710140379', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c8472e091a248eea71a9e38af4731fe.jpg', NULL, NULL, NULL, NULL, NULL, '450923198710140379', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 629, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:34:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (63, '13877207145', '000000000366', '13877207145', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄斌', 1, '450205197711111312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c63cc3a48814f929b65e4bff19f2add.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/532e5e2fde3f4033957b3129b9e88db2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197711111312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1c4d72450f7d4c10aa07e2b3cfd26ad6.jpg', NULL, NULL, NULL, NULL, NULL, '450205197711111312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 785, 2, 1, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:33:28', 1, 2, 1, 0.00, NULL, NULL, 0.00, 0.00, NULL);
+INSERT INTO `t_driver` VALUES (64, '15177223170', '000000000367', '15177223170', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王吉', 1, '450222199212162911', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/136e6e6398f349fbae9fab2c7b2e41ba.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b6f8559a70d4fb28b3619b01777897e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199212162911', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/804ccf720094402da6bbbbc96011cfb2.jpg', NULL, NULL, NULL, NULL, NULL, '450222199212162911', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:32:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (65, '13788225084', '000000000368', '13788225084', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄绍益', 1, '450205197702210714', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/84dadc99fc8a491fb39e26879fdcba93.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5662d95fe3204da885b1eeed63fb9a3f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197702210714', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/09c1b414d2534addab9a21bb2b204a5f.jpg', NULL, NULL, NULL, NULL, NULL, '450205197702210714', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 629, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:31:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (66, '13659620791', '000000000369', '13659620791', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄联情', 1, '45022119830427141X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/476f245d15a34c58982207c2c50fc005.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a9e95a42b8244728997906db91301a76.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119830427141X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d3dfac2219b54ed3b3993a7ddb39d3f9.jpg', NULL, NULL, NULL, NULL, NULL, '45022119830427141X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:31:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (67, '18172128727', '000000000370', '18172128727', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '兰兴荣', 1, '450203197310160751', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a80f7d47166f4c16ba7bc463609fb71b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/addc6d0a5dd2445b8ae09ed6dfb6a6ab.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197310160751', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc38a55e15094c559ba1ba506d672761.jpg', NULL, NULL, NULL, NULL, NULL, '450203197310160751', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:30:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (68, '18076700505', '000000000371', '18076700505', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邱宏', 1, '450202197710140032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe14d69f7f804ca0a7d33e955fc34dc4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44f30632e19e42c6b5b1c45526433fa4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197710140032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/462cc158c12243aebd0b47f985bdb183.jpg', NULL, NULL, NULL, NULL, NULL, '450202197710140032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 604, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:29:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (69, '13667729495', '000000000372', '13667729495', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘威强', 1, '450803198701025810', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/91fa43494538493080faac336b94df3e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e857499c20a74d45b5cf27ccd38688fb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450803198701025810', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/514db8740f5543e4b7b391d3d3619590.jpg', NULL, NULL, NULL, NULL, NULL, '450803198701025810', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:28:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (70, '18707727008', '000000000373', '18707727008', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林剑', 1, '450203198910090739', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e6872ced0b340d29593c672cd2b21c4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3148a7c3676b435d9e773378dda23f14.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198910090739', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e345f6fa7df447bfb055ef4391e57fbc.jpg', NULL, NULL, NULL, NULL, NULL, '450203198910090739', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 714, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:27:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (71, '18276724035', '000000000375', '18276724035', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭家其', 1, '450211197712220876', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e0f258dd351946b287f7f0c49c0b4da7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92c41626f2c040d684eacbf2bbaa804b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197712220876', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/077b21266f154da2a10b6284c1a9ef39.jpg', NULL, NULL, NULL, NULL, NULL, '450211197712220876', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 627, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:26:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (72, '13707823572', '000000000376', '13707823572', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周龙兵', 1, '450211198911090810', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/699bfa152f454103879f603373ccb4f1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1da39662fb504d4da5c996f2bfc05f80.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198911090810', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1656ae81b9c1406eb3ba55fb162deeb1.jpg', NULL, NULL, NULL, NULL, NULL, '450211198911090810', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:26:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (73, '18276286866', '000000000377', '18276286866', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谷丰', 1, '450205198206210736', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7db067957cd8413d9b24ab2c4880af1c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7de55a280e5b43f1a86477072c92422a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳北区', NULL, NULL, NULL, NULL, 10, '450205198206210736', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0416f9d28154e2a80de12585e0afdb2.jpg', NULL, NULL, NULL, NULL, NULL, '450205198206210736', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 642, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-23 17:00:34', 1, 2, 1, 12.64, NULL, NULL, 12.64, 12.64, NULL);
+INSERT INTO `t_driver` VALUES (74, '17878271752', '000000000156', '17878271752', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '甘超武', 1, '450205197403261319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dda86a48a6da4ccdaa85e5803325c1e0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d41e67cb3e9a4b48a3286c7d0acaf70b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197403261319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/75d4fb5343224c3d8864eb0744561875.jpg', NULL, NULL, NULL, NULL, NULL, '450205197403261319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:25:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (75, '18178266604', '000000000379', '18178266604', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧毅', 1, '450202198211290313', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3eaa7f187de49bc9496b4ff33460171.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4307a3a437e444018cc53dd59351fc77.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202198211290313', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99b20ae88f584e559542d3f196a571a1.jpg', NULL, NULL, NULL, NULL, NULL, '450202198211290313', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 692, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:24:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (76, '13657827061', '000000000380', '13657827061', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢波', 1, '452223198811250511', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9871c8dc0851458aa721b30ae88591b7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b45401ebe69b4cc7a20d9b8adfbd855d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市屏山大道屏山小区17栋二单元1-1', NULL, NULL, NULL, NULL, 10, '452223198811250511', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c131afd710d34d238b04993f0f771ac3.jpg', NULL, NULL, NULL, NULL, NULL, '452223198811250511', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 663, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:23:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (77, '13978070588', '000000000199', '13978070588', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁新华', 1, '452723197904050837', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c7d99f21eca34d1d90b2281558bae650.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c99379f258c440a1964ee99b7bdca734.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723197904050837', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d610218661d4e39af3787a8d7d30124.jpg', NULL, NULL, NULL, NULL, NULL, '452723197904050837', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 691, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:22:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (78, '13977214692', '000000000381', '13977214692', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林杰', 1, '450981198709140914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4469d9b9768d4b11a46244ee0828ee39.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e284eed957fb4987b08c0832e38b4f4c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450981198709140914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5fe5025edb24440082995b695977920a.jpg', NULL, NULL, NULL, NULL, NULL, '450981198709140914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 744, 2, 2, '1', '2020-08-17 17:53:15', 1, '2020-08-25 14:20:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (79, '18877238534', '000000000382', '18877238534', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃柳', 1, '45020319750310131X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de3d2396091d44cd9ca6ed2da19c9837.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7183c99360fa49fbbc5acde356206ac4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020319750310131X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2bb95b9968e54b39a381564c71aecf55.jpg', NULL, NULL, NULL, NULL, NULL, '45020319750310131X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:19:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (80, '18276808765', '000000000385', '18276808765', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨毅', 1, '452229197506141814', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b568df3c42724e87b197dd0cfe915de5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/519a13224ea84631b7a6865ccf0e10aa.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229197506141814', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b2806f11e132413c95d19b8a0950d630.jpg', NULL, NULL, NULL, NULL, NULL, '452229197506141814', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 729, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:18:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (81, '18077254156', '000000000386', '18077254156', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝超二', 1, '450221197304084919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba7778500aa04810bf996d1eb0d0743f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1e1d7f44b574328bbe8b7eb5557329a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197304084919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/568d8aaf05da4fb69364abd942341f57.jpg', NULL, NULL, NULL, NULL, NULL, '450221197304084919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 751, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:17:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (82, '13768662253', '000000000387', '13768662253', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃文斌', 1, '45022119741202143X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d1a8358946a64bb0b99bf3b3d80607a6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d9d56667ff1f47a6b4549c2dc7081bc0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119741202143X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4242913517a4a77bbaeb422e749aca9.jpg', NULL, NULL, NULL, NULL, NULL, '45022119741202143X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 604, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:16:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (83, '13978028038', '000000000388', '13978028038', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '彭柳雄', 1, '450203198404041010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c11ff722f5ed4f3d8d281be550e6b767.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9626da6732124293b6fbb44a06a593fd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198404041010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/47ce56e3828541aab879b0d2c3ae127a.jpg', NULL, NULL, NULL, NULL, NULL, '450203198404041010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 595, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:14:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (84, '18978091774', '000000000389', '18978091774', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦启寒', 1, '450205197908170017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b2ee6b035064b6d9eb5ac51da7aa8e0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d6c6912f38dd4a938b22d9b4de4d49f7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197908170017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5b9ee5320929427c885387c249a593e7.jpg', NULL, NULL, NULL, NULL, NULL, '450205197908170017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 692, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:13:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (85, '18677291938', '000000000390', '18677291938', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '窦建强', 1, '452223199312080057', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3dfb80a5f2554bf3a6a6fa205294a322.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/376e4e19763244ca88f3875908975446.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223199312080057', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e88b514ac16b4532bd1bae5154041d0c.jpg', NULL, NULL, NULL, NULL, NULL, '452223199312080057', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:12:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (86, '18897825126', '000000000391', '18897825126', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周少强', 1, '450200197109031359', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cbc7b1a85ab746638d3c6fcbfd0011cb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a64b9313ab2c4d73822976ea3fb75ac2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450200197109031359', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f082bf282e048239566c6925bb97365.jpg', NULL, NULL, NULL, NULL, NULL, '450200197109031359', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:11:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (87, '13669427667', '000000000392', '13669427667', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢绍文', 1, '450205196811301055', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/949c8938ecab4a16a22dd8b55a0d0048.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/775f2d27f7e3473b878a083144bab575.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196811301055', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c9dfce9e3ef44728b8fabeec3b6024ff.jpg', NULL, NULL, NULL, NULL, NULL, '450205196811301055', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:11:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (88, '18277205020', '000000000393', '18277205020', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃杰忠', 1, '450202197006200337', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce476789c9e945a8a1e84587aba90e41.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f77352f6011a448fb2137ff383e534d6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197006200337', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7583a6bc465c4a8487ae03dd20a2457e.jpg', NULL, NULL, NULL, NULL, NULL, '450202197006200337', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 594, 2, 1, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:10:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (89, '15177743772', '000000000395', '15177743772', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '叶锦', 1, '452226199010155753', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/46d805356f8447ce814a89dcbe1e4d42.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5657f9576ef4c5192b39830f94c210e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226199010155753', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2bf653fab2f74a528a07f227ad184f5c.jpg', NULL, NULL, NULL, NULL, NULL, '452226199010155753', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:09:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (90, '18177299598', '000000000396', '18177299598', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '叶其旺', 1, '452226197710185751', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e18cc88a6154cb6973014c3fa9826f1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4bf8f29b547646cbba6f9e750f0e924f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197710185751', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/915a2662ab9f4737883cbe88e2c91848.jpg', NULL, NULL, NULL, NULL, NULL, '452226197710185751', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:08:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (91, '18177280826', '000000000397', '18177280826', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁金会', 1, '450221198305262910', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f68a5744dc6b495ca9f4bf3a1295f002.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d67330b37964605b066ec6796d93e1e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳邕路259号天悦华府', NULL, NULL, NULL, NULL, 10, '450221198305262910', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/76c880a5bc254576b0f221149124587e.jpg', NULL, NULL, NULL, NULL, NULL, '450221198305262910', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 653, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:07:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (92, '13877276793', '000000000398', '13877276793', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '劳长远', 1, '45070319780506729X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c584e81026d7458fa922310e29cc37c2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b591b9994589453bbc8b0db3e97f28c5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市东环大道金盛广场6栋4002室', NULL, NULL, NULL, NULL, 10, '45070319780506729X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f8123aa9a89f45cf96779783ae1d56b3.jpg', NULL, NULL, NULL, NULL, NULL, '45070319780506729X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 593, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:07:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (93, '18978008003', '000000000399', '18978008003', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴克', 1, '450222197805100311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9df4b8a6c46a40f6ab682079e7c85b47.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25e5950dd9ed4de89d2a3a4dc39c09c8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197805100311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f2c5abea507141bea9b752be06f0d54a.jpg', NULL, NULL, NULL, NULL, NULL, '450222197805100311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:06:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (94, '13877273322', '000000000400', '13877273322', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒙文才', 1, '452226198307081295', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec57859b5caa451db44dd2500de8124e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f6105647e734b63bc2e6e44fb68f519.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '鱼峰区驾鹤路接到天山路13号', NULL, NULL, NULL, NULL, 10, '452226198307081295', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dd6867248be9444fa8120e1e7bab5ca7.jpg', NULL, NULL, NULL, NULL, NULL, '452226198307081295', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 703, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:05:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (95, '13978034480', '000000000401', '13978034480', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄崇发', 1, '450221197203101951', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01c810b1293e484a85224f215a6f10e3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0077cbbf7624b0b9e7c77bd71127f35.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197203101951', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/503579caf9c64612a5edecbd3c7166ad.jpg', NULL, NULL, NULL, NULL, NULL, '450221197203101951', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:04:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (96, '15977211808', '000000000402', '15977211808', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎志辉', 1, '45222619700520155X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb23b51ea0f34c70bccae2d91bf282d0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42dff306d8f942309fb6b51eb8083c39.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市拉堡镇建都综合区建南二街', NULL, NULL, NULL, NULL, 10, '45222619700520155X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7f1ec20066a34fa09a3c04f8bc7d67c1.jpg', NULL, NULL, NULL, NULL, NULL, '45222619700520155X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 617, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-09-08 12:08:40', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (97, '13878270466', '000000000403', '13878270466', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '钟庆丰', 1, '450221197210291917', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9ae67d696d96443b9e5b8f30d8757e3c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8ec9b72f90c4c97a3e55225afb58678.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197210291917', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/08a53aad6e51403399954ede50ec67be.jpg', NULL, NULL, NULL, NULL, NULL, '450221197210291917', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:03:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (98, '13788675352', '000000000405', '13788675352', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦传仕', 1, '452226198511166632', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3655a1fda7cb4aaa96b51581af47de38.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f9c74fea4eda49189619d5dae2a54c0f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198511166632', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9dacf0d6067c4cb482de3e91e51bb4de.jpg', NULL, NULL, NULL, NULL, NULL, '452226198511166632', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:02:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (99, '15676293825', '000000000406', '15676293825', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘远志', 1, '45020419840330003X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/71bc1cca6d944107b9ae2031508f2781.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/958ef22528194146bf80e2ecbfe1bba2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020419840330003X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/504e622ff1db4abc888cbb8bd749bb0a.jpg', NULL, NULL, NULL, NULL, NULL, '45020419840330003X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:01:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (100, '13877265116', '000000000407', '13877265116', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄庆', 1, '450203197906281351', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/228f152678df4a9fae2c0201be2886d1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48715c207d2d41c0adf3dc3649ef5516.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197906281351', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1d78aea1ecb24a69bfeec751a60b6d4f.jpg', NULL, NULL, NULL, NULL, NULL, '450203197906281351', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:01:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (101, '15677222877', '000000000251', '15677222877', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃海练', 1, '450221198612133916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8627cebaa48d46f0acacfdc244778770.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dc7a389d8056457aa9818dbcee882563.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198612133916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/06aeaf565d494ba581e36f1b0a3150a0.jpg', NULL, NULL, NULL, NULL, NULL, '450221198612133916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 14:00:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (102, '15807728306', '000000000408', '15807728306', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '石有收', 1, '452225196811102993', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/357337bcb23e4e0fb1568c6e0e90729e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd47b9807ff7491ebcfb054be3a0fa2d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225196811102993', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c58d22196de04848b9dc319a57bc0a3d.jpg', NULL, NULL, NULL, NULL, NULL, '452225196811102993', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 728, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:59:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (103, '13558225282', '000000000409', '13558225282', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李常进', 1, '452226197109116616', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4b42d8c67e4f4544a52db346dfd59813.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f91cb72f9fb4b9586cd7c39101cb86a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197109116616', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2b9f3ab848e04781829dc5befbaf9c1a.jpg', NULL, NULL, NULL, NULL, NULL, '452226197109116616', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 626, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:58:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (104, '18178287078', '000000000410', '18178287078', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏锦祥', 1, '452524197910112550', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8c23af7fa624a508ecefca127c1c9b8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ea62885e0184d40b5b8866741804069.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452524197910112550', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c9a871a5ea749a8a97f2e4bf840d916.jpg', NULL, NULL, NULL, NULL, NULL, '452524197910112550', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:57:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (105, '13977227336', '000000000411', '13977227336', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '雷旭智', 1, '45020419730722145X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbd17939576f4ebc9106ce1cfad2fcbf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d08f6e0b9cce45a187455a2982a9885a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020419730722145X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/224710443cf842fda6ee756bcbc5886a.jpg', NULL, NULL, NULL, NULL, NULL, '45020419730722145X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:57:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (106, '13788221953', '000000000412', '13788221953', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨保新', 1, '450222197507012911', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/45486366f75b4d2ab3b601246d6e2747.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c9b56877a5d4ebb81b2c82f5dcb30c5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197507012911', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/be6e630ee0f5497e91f4e1bdb7868d7b.jpg', NULL, NULL, NULL, NULL, NULL, '450222197507012911', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:56:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (107, '13788624251', '000000000501', '13788624251', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '孙以才', 1, '452223197605131031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9732cf70b8ed47e399654c2416e9cc04.png', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/79735ebe301f4d8a98e43ea9e3536a92.png', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197605131031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7ece87b602fc4a99ba57f29f95fdcfd4.png', NULL, NULL, NULL, NULL, NULL, '452223197605131031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 716, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:55:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (108, '18477261342', '000000000502', '18477261342', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李业', 1, '450222197905101610', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/77b3db03e4674327aadedb1c65287af5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96b4feec6b534702b27c94ccaee516cb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197905101610', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/86d83b54bf664da1a89bb4f5f85c741e.jpg', NULL, NULL, NULL, NULL, NULL, '450222197905101610', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 716, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:53:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (109, '15077216360', '000000000503', '15077216360', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁义成', 1, '450221199104090950', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4b6ab5a3041546948cb255b3107203b6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6e5cdb765664404ba50b3d322cc46165.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199104090950', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c268d5403da4083ac9c23187e8d021f.jpg', NULL, NULL, NULL, NULL, NULL, '450221199104090950', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:54:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (110, '18277205537', '000000000507', '18277205537', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄知林', 1, '452224198401120016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c0ba8f1585d486b9706f58d5d00b025.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8a2b0d53ca414ac8ab6603be383cb119.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市鱼峰区柳石路139号2栋1单元502室', NULL, NULL, NULL, NULL, 10, '452224198401120016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/690f7a5937d04e79aae9d3cd727295fe.jpg', NULL, NULL, NULL, NULL, NULL, '452224198401120016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 709, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:53:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (111, '13877289291', '000000000508', '13877289291', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赖志勇', 1, '450204197510150036', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea45067f8e4646c99f80ed05c6b552c9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f9a74ebdcc1a41b99f2983e7e7d8fc60.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197510150036', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6085d49db6b44a0998c82088cbc1b50b.jpg', NULL, NULL, NULL, NULL, NULL, '450204197510150036', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:52:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (112, '18176713745', '000000000509', '18176713745', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦初勇', 1, '450221197701160313', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d7dfe17613746fcb64c56c86e55ae4f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/241f61c4a1e14ad9920f0603d59d1001.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197701160313', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7bc45e7026b48e0bc462b7801569f49.jpg', NULL, NULL, NULL, NULL, NULL, '450221197701160313', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:50:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (113, '13807721125', '000000000510', '13807721125', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈小飞', 1, '450205198205221337', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8b80becc9f64409bba8fa455a2e74ac8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2ba8fabe3f6145e2a970bff65abd94f2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198205221337', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3e16021b45a4fdbb57a4866a4203ea0.jpg', NULL, NULL, NULL, NULL, NULL, '450205198205221337', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 622, 2, 1, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:50:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (114, '13669666469', '000000000511', '13669666469', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃江林', 1, '452702198210261878', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c60994698d04dd98c29858b167d76f4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/06f79ca183104090bc4d41743d6b79f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452702198210261878', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/250e7b89875142b8a4f1344d9703c15d.jpg', NULL, NULL, NULL, NULL, NULL, '452702198210261878', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:49:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (115, '13977222804', '000000000512', '13977222804', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '方民', 1, '450203196606100016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd7133fab9184f4c9c3d086519d5a76c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b3cbf1fd5c714692b8194ca3a916846e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203196606100016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/17369fbf891943be8c6b994256440e9c.jpg', NULL, NULL, NULL, NULL, NULL, '450203196606100016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 633, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:48:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (116, '18707720052', '000000000513', '18707720052', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '叶柳强', 1, '450222198805281911', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f31bc9eb11b74702b488d054896797ae.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48872a8d9e5e415e9363682f7ebfa3b2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198805281911', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ba16fe766bf41efa4b76c6d2bbd935a.jpg', NULL, NULL, NULL, NULL, NULL, '450222198805281911', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 634, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:47:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (117, '13877251806', '000000000515', '13877251806', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蔡俊平', 1, '450205196711111035', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7b5a4bb6f744da9b726c88d0dfe0667.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac9b368cc36c4c89963e0a50fae4621a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区白沙路5号33栋4单元302', NULL, NULL, NULL, NULL, 10, '450205196711111035', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/05b19f5bd2634df7ab104869fa459d21.jpg', NULL, NULL, NULL, NULL, NULL, '450205196711111035', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 733, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-09-08 11:57:39', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (118, '13978224769', '000000000157', '13978224769', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫国欢', 1, '450221196804201435', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/81db6fdb65634513bd21c07054e2baf2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff69db1aae3445d597e98a5b27226c0a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196804201435', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf2a01cbb585414eab781d03421d54ae.jpg', NULL, NULL, NULL, NULL, NULL, '450221196804201435', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:46:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (119, '13152550050', '000000000150', '13152550050', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦柳东', 1, '450221198010144538', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a9a90814549d4171a8b7d22ebeeea5c9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f39cacf23ea4454bbae0e86ad2348cee.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江县三都镇里贡村根见屯', NULL, NULL, NULL, NULL, 10, '450221198010144538', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d75dac18bc5143b69586284f08b5d091.jpg', NULL, NULL, NULL, NULL, NULL, '450221198010144538', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 648, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:44:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (120, '13788023503', '000000000516', '13788023503', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏黎明', 1, '450203198308181312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c1579619c3443a78dd962f21a218e66.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b890c99a5c6543a7a2f878a72ccf33b7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区航二路17号7栋2单元201室', NULL, NULL, NULL, NULL, 10, '450203198308181312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e53be5c969044f894b9f92f9c96cc91.jpg', NULL, NULL, NULL, NULL, NULL, '450203198308181312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 710, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:43:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (121, '15278884286', '000000000518', '15278884286', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李火玉', 1, '450322196807154031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0bf0f4e9a7b942ec944e83222e0b7365.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ad71f7d2e3e431ebf2536e70c433e70.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450322196807154031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a7f72a1c0614a65bb17d5514245253a.jpg', NULL, NULL, NULL, NULL, NULL, '450322196807154031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 671, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:41:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (122, '18775181800', '000000000519', '18775181800', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蔡洪发', 1, '500230199007065295', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b67ac21f32394e23872b6878940eea66.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f9afd7cf1b1b4bb4a02d0e49b37a4eff.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '500230199007065295', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/06aebdb14cb34674bd5a28c57906aeaf.jpg', NULL, NULL, NULL, NULL, NULL, '500230199007065295', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 703, 2, 1, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:40:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (123, '18378028798', '000000000521', '18378028798', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘友胜', 1, '45222419720315101X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1cc72d3d94f4db1aa483b02a743e02d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/03d282281b9f4c22a950cff4c69b3418.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222419720315101X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c40a3eed85a7432fb59a884a8f9b205e.jpg', NULL, NULL, NULL, NULL, NULL, '45222419720315101X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 646, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:39:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (124, '18775285306', '000000000522', '18775285306', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝习', 1, '450211198612251637', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/176e920d05694bf185e544b8d6867e9e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8a7e5c98ab954e739085c09fcfaa98f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198612251637', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8af8d9918b64421aaeb278f9c652a12.jpg', NULL, NULL, NULL, NULL, NULL, '450211198612251637', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 13:39:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (125, '13647821492', '000000000525', '13647821492', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '屈杰书', 1, '452123197209125216', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8ac7d619c33f47a093fb1a10b6cdaa09.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99a4fb6805044426ab3467d0b4821e8a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452123197209125216', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c11db9adc99a4e5894d35a19f722453d.jpg', NULL, NULL, NULL, NULL, NULL, '452123197209125216', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 754, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:50:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (126, '15278811512', '000000000526', '15278811512', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊志坚', 1, '450205197209081031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf1bc7a60d1a43559d6d1239e7cb7f77.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8da408dc41ab42d0a7114a0724493c3f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区北雀路西三巷66号集体户', NULL, NULL, NULL, NULL, 10, '450205197209081031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cfc7542ab5c044c887ae1ae6ef82ddbe.jpg', NULL, NULL, NULL, NULL, NULL, '450205197209081031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 746, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:49:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (127, '13633067447', '000000000527', '13633067447', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈健全', 1, '452224198205172054', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82f367c2bb394e5793076aa26b8c627b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8a4f31e180eb4da28c25cf9d360b1518.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '来宾市象州县运江镇新运村民委陈家村19号', NULL, NULL, NULL, NULL, 10, '452224198205172054', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e7b7b1cf3d3d4433a868c673fe695b19.jpg', NULL, NULL, NULL, NULL, NULL, '452224198205172054', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 623, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:48:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (128, '13633066264', '000000000211', '13633066264', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄凛', 1, '450204197306241432', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/97b2728ac2114b38abe3c1d858012de9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/484524079dfa4549990d9c2c33584d96.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区柳太路8号17栋2单', NULL, NULL, NULL, NULL, 10, '450204197306241432', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c9cf2cab3d445b4945f1089e6360404.jpg', NULL, NULL, NULL, NULL, NULL, '450204197306241432', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 614, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:47:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (129, '19167200709', '000000000529', '19167200709', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊美龙', 1, '450221198410202952', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/135ea1b2fbe04303864ca64078283ccf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/22e86bd90e3544dea8532b9e9f61e071.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198410202952', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/77d42bc695c3429cadd23c705f6c8f52.jpg', NULL, NULL, NULL, NULL, NULL, '450221198410202952', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-27 15:12:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (130, '13633097988', '000000000531', '13633097988', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦小宁', 1, '450222198410052938', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34d97fbd82c44b84b98ebc4542a3acc0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/968ed7b6362d4d80aed8272fd3fbbc38.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳城县大埔镇勤俭村民委邱歪屯40号', NULL, NULL, NULL, NULL, 10, '450222198410052938', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da66ddba2edc45d8a18b0e8530e90b5a.jpg', NULL, NULL, NULL, NULL, NULL, '450222198410052938', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 608, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:45:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (131, '15877252701', '000000000532', '15877252701', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭振力', 1, '452225198401074212', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/35eb86f7dd3e4af3a03e4e4cb93c792c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bdc7af236a254cbfa849d7f71647d2f8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225198401074212', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f84f25a1e94e4efcbb926f617c02d655.jpg', NULL, NULL, NULL, NULL, NULL, '452225198401074212', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:44:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (132, '13597221984', '000000000535', '13597221984', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁谋广', 1, '450222198302011792', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/46e3a302c8b74ea09bf1ef46ef71f2d5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c3b20b68a654def89840b6fa62839c7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198302011792', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/55c6bdfcf3ff410e80cc11249c7e9ae9.jpg', NULL, NULL, NULL, NULL, NULL, '450222198302011792', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 679, 2, 1, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:44:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (133, '18178288685', '000000000536', '18178288685', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗竣', 1, '452231197910010551', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/936e621c6938411d9684cfff7d78d3e7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b1df68ac4a14d68a978f1210a51dfc6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231197910010551', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cad14abf915d4787adc9119180cf67a5.jpg', NULL, NULL, NULL, NULL, NULL, '452231197910010551', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 625, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:43:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (134, '13978095379', '000000000537', '13978095379', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '余秀全', 1, '450205197109030712', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2934cbbce34d4ef2815137f229ae1d97.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/770061650dde4990ad4f734ae0056a74.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197109030712', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e54745a6c318427c99362f29aa98a81b.jpg', NULL, NULL, NULL, NULL, NULL, '450205197109030712', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 776, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:42:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (135, '15077229438', '000000000538', '15077229438', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄广忠', 1, '450222196408190611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/767734588eb74111b8fc0ac1fe756cce.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4962d754f7864c17aa731fea0307f702.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222196408190611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d52f815ca72a4250b5e0e28f62da1e69.jpg', NULL, NULL, NULL, NULL, NULL, '450222196408190611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 776, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:42:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (136, '18276209228', '000000000539', '18276209228', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴旺超', 1, '450222199406202619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5763259d688f466d8be2816e340b31ed.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b422d11f72747188366c134c9ff8095.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199406202619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6bd6c69d401240b18ccd6db2b57dd7e6.jpg', NULL, NULL, NULL, NULL, NULL, '450222199406202619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 592, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:41:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (137, '13788489526', '000000000550', '13788489526', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧节强', 1, '452223198111273034', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01302fd7b48c45c29b178ae653ab6506.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5963b584b3cb4057af45cc2ca4eba3b6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县江口乡六合村长洞屯60号之一', NULL, NULL, NULL, NULL, 10, '452223198111273034', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02775bd9a2b64813b92381937b356dc5.jpg', NULL, NULL, NULL, NULL, NULL, '452223198111273034', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 724, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:40:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (138, '15278897559', '000000000551', '15278897559', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李兴宇', 1, '452229198210052657', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7905eebc26445d29f5e34fd5981bf0e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/116cfc0b926f4507a4ed5ab2c00b5353.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市融水苗族自治县安陲乡洒溪村上泗溪村上泗溪屯29号', NULL, NULL, NULL, NULL, 10, '452229198210052657', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e34415a5ee34481bba638cc283fa6b5c.jpg', NULL, NULL, NULL, NULL, NULL, '452229198210052657', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 650, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:40:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (139, '13558225017', '000000000552', '13558225017', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈广玉', 1, '450922198710132356', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f61433b166c344cab3e729b011d90fd7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99839a2574f147929b8eebe8ae830c98.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450922198710132356', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f1bd01fc727a42c891235c8566a76b4c.jpg', NULL, NULL, NULL, NULL, NULL, '450922198710132356', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 766, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:33:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (140, '13617809852', '000000000553', '13617809852', '77e12b2c8b27138a2d4dd0ccd98ee4b3', '860c4ea065486a90ff03d2da808eb623', '郭正文', 1, '450204198011040415', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d17a48b58ad04e86a1b301670940fde4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dd3aa0bc54f495c9a091f37d5dff2d3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区雅儒路东四巷145号', NULL, NULL, NULL, NULL, 10, '450204198011040415', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d18229adc263450b9dc3509eeb4ccd65.jpg', NULL, NULL, NULL, NULL, NULL, '450204198011040415', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 649, 2, 2, '1', '2020-08-17 17:53:16', 1, '2020-08-25 11:32:19', 1, 2, 1, 10.32, NULL, NULL, 10.32, 10.32, NULL);
+INSERT INTO `t_driver` VALUES (141, '15577209990', '000000000555', '15577209990', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '徐海波', 1, '452201197209251236', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/86e81348382f4503a04cf497d0a5446d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba32933489414e68a8cbf553a9f5bc79.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区白云路11号4栋2单元101室', NULL, NULL, NULL, NULL, 10, '452201197209251236', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad17e8285cb44d5e9bafb7cc21b4ca5a.jpg', NULL, NULL, NULL, NULL, NULL, '452201197209251236', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 558, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-09-04 17:28:55', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (142, '15777275907', '000000000556', '15777275907', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗贤侠', 1, '45223119870717001X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d6227ea5f40497c85a3f6e27b8acd42.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9de04e0a2e46468bb094e7bf09d80513.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45223119870717001X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/845683be127746919331649c625a6f39.jpg', NULL, NULL, NULL, NULL, NULL, '45223119870717001X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 657, 2, 1, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:30:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (143, '13707721490', '000000000557', '13707721490', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘明诗', 1, '450211198301101914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5eb6bacc9b41475e9dffcd6779c72f72.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c9c592ec35e401a9366aee55330bc48.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区太阳村长龙村琉璃二屯32号', NULL, NULL, NULL, NULL, 10, '450211198301101914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/37069c2d07a24fb39fe1b4ac6e137f93.jpg', NULL, NULL, NULL, NULL, NULL, '450211198301101914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 757, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:29:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (144, '18579943801', '000000000559', '18579943801', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄崇德', 1, '450205196706100710', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/766bcffaddfb4295b51ce64e665e1967.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/090264de4db641c9b704a4c456a19fb1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196706100710', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d55dd0879e5e4e1f95a242e55ec87b0b.jpg', NULL, NULL, NULL, NULL, NULL, '450205196706100710', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:29:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (145, '13558226632', '000000000560', '13558226632', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '范秀成', 1, '150103196809021012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c1d47fcbea76466f81650e1f049c1114.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c71db1462a654de8bbfe87f509a0ea2d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '150103196809021012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a2b9d91fe32e4ff6ab8d08d278f37fc3.jpg', NULL, NULL, NULL, NULL, NULL, '150103196809021012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 754, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:28:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (146, '18778282940', '000000000561', '18778282940', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦礼祯', 1, '452223198507084010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2d904b18ba464697a011b9885390ba09.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb114c6531be4cedb1024d557cd782bb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198507084010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/995ba5cd73bd4e86bf638d8c3e41064e.jpg', NULL, NULL, NULL, NULL, NULL, '452223198507084010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:27:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (147, '13633089934', '000000000562', '13633089934', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄雷', 1, '452226198703045114', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5dd9791081f545b4bbac69ea2a2ca601.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1ab609879bc04671bb841f9dfd21bb40.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198703045114', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/507d24bf069d4b208b47e0888b8a1a0d.jpg', NULL, NULL, NULL, NULL, NULL, '452226198703045114', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:27:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (148, '13217724224', '000000000563', '13217724224', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒙现振', 1, '450211197410052512', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2703eb57bbf74a2a9a91028e2795f43b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/edc4d9c609444aeeab652c20bbfcb5f4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197410052512', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/247cd02fde424a1bb19469afe7620304.jpg', NULL, NULL, NULL, NULL, NULL, '450211197410052512', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:26:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (149, '18078208244', '000000000566', '18078208244', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吕光波', 1, '450211198502070018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd73d4b5b5e34a0aac7b618b04f6979b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/006b87596dbd442fad8d77a00a946f7b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198502070018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d758077560c54ecaae64a1d486b242e8.jpg', NULL, NULL, NULL, NULL, NULL, '450211198502070018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:25:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (150, '18076707739', '000000000567', '18076707739', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁勇', 1, '452229198007044539', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0aa7cdd651e24cf0b3beb238345da87c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bef79066ffd8421ab916c8dd06f757df.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198007044539', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/488ba3e7abf0424ea0eee6ecc2e47673.jpg', NULL, NULL, NULL, NULL, NULL, '452229198007044539', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:25:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (151, '13737252424', '000000000569', '13737252424', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴健秋', 1, '45020519891028101X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f1d412bf97f740e0a03534d28d23fa7e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb0068de44254d82803cc3881d9aa9c4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020519891028101X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8146de0b9cd345a1aa3d6ccc3f18ec3b.jpg', NULL, NULL, NULL, NULL, NULL, '45020519891028101X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:24:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (152, '15978218753', '000000000570', '15978218753', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦爱俏', 1, '45022119891002243X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a40581ccdb44d85baddbef3c2b6b6e9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ced3a3ccd223460ca636e0728dac1a85.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119891002243X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec021654da1948d086cd5540b9f2f5e1.jpg', NULL, NULL, NULL, NULL, NULL, '45022119891002243X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:23:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (153, '13377202230', '000000000571', '13377202230', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖佳靖', 1, '450205198803121010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1d240a59726046fabc96bc73b2a0a224.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26a208442f044ee9a8f08696e46a768a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198803121010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42eff055576d4d8083113904aa26c951.jpg', NULL, NULL, NULL, NULL, NULL, '450205198803121010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:18:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (154, '18977294464', '000000000572', '18977294464', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃锋', 1, '450221199311255711', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5b8eed954c8248b0b53f08dca72284dd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/73413699e20042ceb9431ef207ceda30.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里高镇里高东街119号', NULL, NULL, NULL, NULL, 10, '450221199311255711', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1364f4efd6784152ad4534a5d8804e5f.jpg', NULL, NULL, NULL, NULL, NULL, '450221199311255711', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 701, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:17:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (155, '15507728036', '000000000575', '15507728036', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾庆辉', 1, '450105197809040078', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0f0d14f8332a44aa96bac2dfd0b4461d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bee6245ec1b34e9ea198bbc1f0ea79df.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450105197809040078', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/924aa09fa9d94373a637598d6fc9819a.jpg', NULL, NULL, NULL, NULL, NULL, '450105197809040078', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:16:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (156, '13807722779', '000000000576', '13807722779', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘煜', 1, '45020419700318141X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a02d949724e74cfa99758876c16f9240.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a8bfd1d627bc414880df32f19456d80b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区和平路文化区11栋4单元101号', NULL, NULL, NULL, NULL, 10, '45020419700318141X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3dc3ed4ecdc4d28834dd83efaf889da.jpg', NULL, NULL, NULL, NULL, NULL, '45020419700318141X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 732, 2, 1, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:14:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (157, '13597228578', '000000000577', '13597228578', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖军强', 1, '450222197404022412', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/147d328093f94761a36099f9da0c9132.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/642c90e8ba8b4c07a17b80e991e2488e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县冲脉镇冲脉街80号', NULL, NULL, NULL, NULL, 10, '450222197404022412', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7d0111652914f00a5e1e6f4dfbee896.jpg', NULL, NULL, NULL, NULL, NULL, '450222197404022412', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 676, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:13:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (158, '15577725997', '000000000578', '15577725997', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦晓霖', 1, '450221199407070017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92affb6c38664b18a5bd9328c4c7cb87.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/17356e0dd38b4782960ec92f3b29d536.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇柳堡路492号', NULL, NULL, NULL, NULL, 10, '450221199407070017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f83297b16f44c859d1f3b3e194718f6.jpg', NULL, NULL, NULL, NULL, NULL, '450221199407070017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 711, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:12:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (159, '13552385138', '000000000579', '13552385138', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘家龙', 1, '452225198612240014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/35da7fc6b57f4a1c8da91ed5a2e44d63.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d5d9fbbaba44df0b851762fbe14df1f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225198612240014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e07a0bfd2c7344d08e97d0222a64aff0.jpg', NULL, NULL, NULL, NULL, NULL, '452225198612240014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:11:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (160, '13907726341', '000000000580', '13907726341', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦立', 1, '450203197809211319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5533b6ab21ca4e72882faa32eb15e370.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d4f532236ba4f729aa9c80fd755d417.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区柳江路2栋', NULL, NULL, NULL, NULL, 10, '450203197809211319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/52661d988afe476e9129bfa2ba214b05.jpg', NULL, NULL, NULL, NULL, NULL, '450203197809211319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 631, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-09-04 18:19:37', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (161, '13788129156', '000000000581', '13788129156', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李大权', 1, '452223196905090513', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f29e7dda5b44ea1a578e4c8bd239dff.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5e3c5ac36a044473bcfa87e09cf236c6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航二路17号10栋3单元101室', NULL, NULL, NULL, NULL, 10, '452223196905090513', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1e1de04c35604039ba27697fbddd856b.jpg', NULL, NULL, NULL, NULL, NULL, '452223196905090513', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 610, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:09:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (162, '13558421611', '000000000582', '13558421611', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李纯', 1, '450204198607070010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/15c9996b09824c6782e8997318abdde8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a38ca6cc54014a14ab1dcd76c852a11d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198607070010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/43d605ba8c7f4609b4567f8bbd0ee117.jpg', NULL, NULL, NULL, NULL, NULL, '450204198607070010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:08:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (163, '13907728015', '000000000583', '13907728015', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '钟良', 1, '450203197304220332', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d1bb05b270da46ad968ebf376a90b8a4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad9f9cfa15f742aea3d38928dace7a8a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区屏山大道320号1单元201室', NULL, NULL, NULL, NULL, 10, '450203197304220332', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6633f80f24e472db77ac89ce681da3e.jpg', NULL, NULL, NULL, NULL, NULL, '450203197304220332', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 695, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:07:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (164, '18877288403', '000000000585', '18877288403', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖海', 1, '452226197412161217', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34fa92e8227b45bb8fec8af87b34574c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c7c3e06ba90498f9e14219af3e02950.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西来宾市兴宾区三五乡碑口村', NULL, NULL, NULL, NULL, 10, '452226197412161217', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/14e4e9f3c25b49939122ce997f4a92f3.jpg', NULL, NULL, NULL, NULL, NULL, '452226197412161217', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:06:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (165, '13877249142', '000000000586', '13877249142', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '劳长恩', 1, '452802196612187216', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/79cd0294881c426daf076211112ab7a0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3bce9024e9364860b1ff6a5b447815da.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452802196612187216', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c90ccb0535164842a1da9c92ae662283.jpg', NULL, NULL, NULL, NULL, NULL, '452802196612187216', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 593, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:06:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (166, '15778240212', '000000000587', '15778240212', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧学寨', 1, '452723196802050831', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/780d2f43717341b4841a12bbe689320d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/07c2bea7a9c649539be816dc99107344.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723196802050831', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/566e07b581794af296049912a29fd029.jpg', NULL, NULL, NULL, NULL, NULL, '452723196802050831', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 739, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:05:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (167, '13877298560', '000000000191', '13877298560', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '乔德波', 1, '450203197908180730', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/655f84145a984fdcad173ca3713b3c32.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6636ffea9fd40dca7f87301ba17cd26.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区箭盘路东一巷36号15巷1单元402室', NULL, NULL, NULL, NULL, 10, '450203197908180730', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4e93099f620d454694465dbbe6f4b4c6.jpg', NULL, NULL, NULL, NULL, NULL, '450203197908180730', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 596, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 11:00:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (168, '18775229929', '000000000589', '18775229929', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈超宁', 1, '450821199111024014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e3f40a6258e45d0bbe73fe054778ac0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/655eb87026fb4583a7fe172054264a8c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区蝴蝶山路11号白云小区五村15栋1单元802', NULL, NULL, NULL, NULL, 10, '450821199111024014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/aa5dd4c2a7444158aa0f0d0036e2f7db.jpg', NULL, NULL, NULL, NULL, NULL, '450821199111024014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 635, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:59:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (169, '18978004565', '000000000590', '18978004565', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周靖荃', 1, '450221198803183916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3817bd1464214024a884e5b60253c0b0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1fbebb35355e45ea9fcedad5a4dd3cc6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县洛满镇顶建村外江屯20号', NULL, NULL, NULL, NULL, 10, '450221198803183916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85acf8bd72cf4289aa110d7cc8d05cca.jpg', NULL, NULL, NULL, NULL, NULL, '450221198803183916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 701, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:58:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (170, '18977286389', '000000000591', '18977286389', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '海熹', 1, '450205198112150429', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/36da0fefc9a14b9d8be458aa4dd9c7be.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d14a767c4fe4d91b722f79f7d37c89b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198112150429', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d22d9a3764f649e3897cc7366c7ca5e4.jpg', NULL, NULL, NULL, NULL, NULL, '450205198112150429', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 631, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:58:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (171, '18977231901', '000000000592', '18977231901', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李大鹏', 1, '452223196608020519', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8ac96baf5ea84525a02100f81d0e9216.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54f3ba0b62774964aafb49ad2bd82dcb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县黄冕乡石门村闷水屯25号', NULL, NULL, NULL, NULL, 10, '452223196608020519', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b9bee1eb9dfb45bbaf969e43ceebeb96.jpg', NULL, NULL, NULL, NULL, NULL, '452223196608020519', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 661, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:57:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (172, '18978023513', '000000000593', '18978023513', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈日贵', 1, '450211198211300098', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/334b9f890811417694ec837cd4f795a7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8024b9cbef91435a8eaa13c1a40be54f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198211300098', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/802b6fed42464cf2bb2d7a1e1e3b942c.jpg', NULL, NULL, NULL, NULL, NULL, '450211198211300098', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:56:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (173, '18775129181', '000000000596', '18775129181', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄坚', 1, '450211197801200519', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7b793f7ee8704430b5492c2e26160b09.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/762f8f2ea9104d8c839851b9dd0d7faf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197801200519', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1d1049c14dc24bf6824a58514e4b2613.jpg', NULL, NULL, NULL, NULL, NULL, '450211197801200519', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:56:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (174, '18607825493', '000000000240', '18607825493', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢会儒', 1, '452225198109193919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad439fec091945ad951ab09fc4f458bf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/230e85e60ef6458a9a747b48a6e26cc6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225198109193919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d3da7fec8bd34ceeb71a0994f2beec7c.jpg', NULL, NULL, NULL, NULL, NULL, '452225198109193919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:55:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (175, '18777218989', '000000000597', '18777218989', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵建军', 1, '450205196510290719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4387c153f0e04bd4bcf364a440b36262.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/271e7180867548459980d05c0d882fc7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196510290719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85a3d88041a34924b21e305ba04fae3f.jpg', NULL, NULL, NULL, NULL, NULL, '450205196510290719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:54:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (176, '13647803683', '000000000598', '13647803683', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李仁正', 1, '452226196710096316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de825e0b0551484d8971523b54b52378.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d090fac42c244244af145df64851f1c0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226196710096316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a9698f1a30c418e94bd1ed39fd44668.jpg', NULL, NULL, NULL, NULL, NULL, '452226196710096316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 708, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:53:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (177, '18172127852', '000000000599', '18172127852', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张绍杰', 1, '450205198305021017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f39bd34f0f414766bc1d2c051ee26ef5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e46b2ef1d2454f6fab9da012f1dee89e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198305021017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/93a193f8676a4a59b77c30ffe888efb3.jpg', NULL, NULL, NULL, NULL, NULL, '450205198305021017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:53:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (178, '13977284772', '000000000600', '13977284772', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李绍安', 1, '452224198411085090', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d54e8b235aec4919b3b92b541f381b6c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c7d991de6dcf4b368a74adb1fc6a9583.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224198411085090', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d09adb90046649ab9a2e5dce2afcefa5.jpg', NULL, NULL, NULL, NULL, NULL, '452224198411085090', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:52:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (179, '18177511619', '000000000601', '17807727908', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄文添', 1, '450921198809211613', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/91ad0939c0a04553a8bd0576de584c61.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/21c81568754a4927bc0684f9660e2361.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航北路9号民鑫小区6栋1单元201室', NULL, NULL, NULL, NULL, 10, '450921198809211613', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bbe709c0dd6c4968a988b66797afee0d.jpg', NULL, NULL, NULL, NULL, NULL, '450921198809211613', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 645, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-09-04 16:59:33', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (180, '13407890975', '000000000602', '13407890975', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄俊', 1, '450203198907111316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/58a802b0340b48a586aed3d917ebb36e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96b779380d994209a86c5ee3d3376d45.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区荣军路226号1栋215室', NULL, NULL, NULL, NULL, 10, '450203198907111316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e1bfcd1342f49a49ed737b41585758b.jpg', NULL, NULL, NULL, NULL, NULL, '450203198907111316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 773, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-09-04 16:39:29', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (181, '15577266887', '000000000616', '15577266887', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林尽荣', 1, '450204196210140317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a26027b61adc441eb3d1e334d986fd4b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b2c773da391246c2bc4ce63b9cfe249a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市河南新村东区130号', NULL, NULL, NULL, NULL, 10, '450204196210140317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e0707c954aa4839b3c9f30e3bf571bf.jpg', NULL, NULL, NULL, NULL, NULL, '450204196210140317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 685, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:49:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (182, '13877200994', '000000000617', '13877200994', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝同文', 1, '450204196809160613', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/97c97da5bf6646fd8c40c08b0504bcf7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c98ca07b2624eacbb289337602a4705.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196809160613', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f340b8723a94ca69043ba7750b54da5.jpg', NULL, NULL, NULL, NULL, NULL, '450204196809160613', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:48:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (183, '18178806692', '000000000603', '18178806692', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '兰建欢', 1, '45270219810209411X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3e7b3f4c20294ab18914acfb17ed2682.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/399cd02bd75b47e9bed8ac2ca1a52fb5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区长风路1号26栋1单元103室', NULL, NULL, NULL, NULL, 10, '45270219810209411X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/17d7e91add9340ddab418ce6fa9f416d.jpg', NULL, NULL, NULL, NULL, NULL, '45270219810209411X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 603, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:47:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (184, '13977215950', '000000000605', '13977215950', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭生', 1, '450221198704023415', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/06c1eec24a8d492ca7243f49ec14908d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2fc4f9a451dd438c83cfe5d08f86987e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198704023415', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b47c8e077ef2415dba0d62529de00e08.jpg', NULL, NULL, NULL, NULL, NULL, '450221198704023415', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 751, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:46:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (185, '18078202823', '000000000613', '18078202823', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧兆文', 1, '452524196310154752', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5b0f47a70554f479b9f081319551fc4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/569da1391fa34f52bc42d400b1a93dd6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452524196310154752', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd12e311a738490486f1cd5f82190d2b.jpg', NULL, NULL, NULL, NULL, NULL, '452524196310154752', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 715, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:45:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (186, '13728624884', '000000000606', '13728624884', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吕文锋', 1, '450222197712110019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ad45a95e0c5458d9d9cf2e2d0d9cc49.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7eccd176738b456a9aa0d4e4c9e7c2c3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197712110019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0531ff76bc842a1bdba32bf4b99163b.jpg', NULL, NULL, NULL, NULL, NULL, '450222197712110019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 611, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:45:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (187, '13788485983', '000000000608', '13788485983', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王永庆', 1, '372523197908072119', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d35709a7cf2a40008fc94bd6c4d8a23b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/971d9c1430774ce6b310347c0b68970e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '372523197908072119', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3437fa32165141dbafe484153223484d.jpg', NULL, NULL, NULL, NULL, NULL, '372523197908072119', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 664, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:44:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (188, '13768571850', '000000000615', '13768571850', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁柏林', 1, '452228197210101518', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/61f0d89125924d8691419c1174a392d3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/255897757f5a440fb25be868949f8593.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西三江县良口乡良口河北街11号之二', NULL, NULL, NULL, NULL, 10, '452228197210101518', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f5c8dd9db8a4119b7f85a3f76fc67cb.jpg', NULL, NULL, NULL, NULL, NULL, '452228197210101518', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 768, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:43:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (189, '15677020081', '000000000609', '15677020081', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '兰田菜', 1, '450222198104103418', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa505c16768f4292bd30e204287d15f7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb842d126d1d4b10aa25effdba629fb8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县马山乡肯洛村民委保社屯29号', NULL, NULL, NULL, NULL, 10, '450222198104103418', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d0ea3f25f5343578d95b6db409d7546.jpg', NULL, NULL, NULL, NULL, NULL, '450222198104103418', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 623, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:42:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (190, '18477281688', '000000000611', '18477281688', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦忠纯', 1, '450221198504140916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f9520408bb043ae889037a06a9909a7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff7497eed71d4479a4608db29ad8aa45.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198504140916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5191ab0ebc4944f596c42d1bb4716a1b.jpg', NULL, NULL, NULL, NULL, NULL, '450221198504140916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:42:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (191, '17776325366', '000000000612', '17776325366', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘昌荣', 1, '450204197907311416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9246496a6ed24cc09e7948428be18dbb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a7adfb64b83e4f3b9fcfc12ac63b8bcc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197907311416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4cb983802f4477791896c0e4fef0ce3.jpg', NULL, NULL, NULL, NULL, NULL, '450204197907311416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 516, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:41:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (192, '17774853148', '000000000618', '17774853148', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '马占峰', 1, '450204197905081418', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0a6ff1479584ca18b65665bafaac0f1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ecadfc54413b4bb5bf56c544f7127527.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区太阳村镇磨滩村11号', NULL, NULL, NULL, NULL, 10, '450204197905081418', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad2f8003f35e423c8d6429f014fe2be9.jpg', NULL, NULL, NULL, NULL, NULL, '450204197905081418', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 654, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:40:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (193, '18172140108', '000000000619', '18172140108', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃毅', 1, '452223197407137010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f54707672f474b80baddd7e11f8b3856.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d35f77ab79a74ff3a25ebb334daabbc1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197407137010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e342a985427b4e12862fdc9a8b26bca4.jpg', NULL, NULL, NULL, NULL, NULL, '452223197407137010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:40:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (194, '15877274994', '000000000620', '15877274994', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃海鹏', 1, '450211198905091614', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d0e217ad131e41dbb25485a8da0261af.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3454fd09d7854fab8e7e0d996baa6dc7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198905091614', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c22104aac5514a9a84fad090bc6e5dda.jpg', NULL, NULL, NULL, NULL, NULL, '450211198905091614', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:39:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (195, '18897828160', '000000000621', '18897828160', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何建谋', 1, '452223198306096517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d6fbf59b8ac94932b775781cd532bb5e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/53289e78c9284a4aa9ec9ddfd1522c6a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198306096517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0f6be363df764accbd0ce38f6c2958bf.jpg', NULL, NULL, NULL, NULL, NULL, '452223198306096517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:38:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (196, '13507727899', '000000000623', '13507727899', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫峥嵘', 1, '450202197612230034', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c6c08ee62af544129d59c4eeba7b704c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec3e5e94d22b4e52b11601b333ae31a8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197612230034', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e06e5652f8e44a04bf15156a3d1dc36c.jpg', NULL, NULL, NULL, NULL, NULL, '450202197612230034', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 600, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:37:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (197, '13737294345', '000000000273', '13737294345', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄常兴', 1, '45222319840812403X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b02e74170ef54d0584b5325607696910.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3ac8a7375eed4f938a8469af015a220e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222319840812403X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/16bc9db98b6349ce9ceb7dfa2909699c.jpg', NULL, NULL, NULL, NULL, NULL, '45222319840812403X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 784, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:37:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (198, '13977259519', '000000000626', '13977259519', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李懿', 1, '45222319840219351X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f97b29df415549f1822fde32402df0d3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/444eda74f51942fbbe7f28e42e642693.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222319840219351X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a01a5b3edfc948da97b4e9f6146f7884.jpg', NULL, NULL, NULL, NULL, NULL, '45222319840219351X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 784, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:36:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (199, '13297796672', '000000000627', '13297796672', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张超朋', 1, '452523198303014113', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48fecbfacb374fedb4e5ec776a8326f9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa733638df084e7da54f774cfc9343ba.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西桂平市罗秀镇网生存关塘屯76号', NULL, NULL, NULL, NULL, 10, '452523198303014113', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0744dcd370f8462b9850ec28d3c259ad.jpg', NULL, NULL, NULL, NULL, NULL, '452523198303014113', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 893, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:35:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (200, '15977286383', '000000000628', '15977286383', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '余旭明', 1, '452224199101082016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25ab9c0db1be4c11979905fe9db30291.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e9d6b41522f4d3da2009aacf44ef3dc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市白云路136号冠亚御龙湾16栋1单元501号', NULL, NULL, NULL, NULL, 10, '452224199101082016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96dd4c7decf94a4790e185b8774fe330.jpg', NULL, NULL, NULL, NULL, NULL, '452224199101082016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 718, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:34:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (201, '13768863677', '000000000630', '13768863677', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '田长生', 1, '450204196109131416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6e6aa7f4ba194bc5a929f942b59e7359.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d9c46a0a6374ca2b789323ed2fcc9cf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196109131416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5778baf6672b4702951020ef22beb55d.jpg', NULL, NULL, NULL, NULL, NULL, '450204196109131416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:17', 1, '2020-08-25 10:34:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (202, '13633045767', '000000000558', '13633045767', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁正新', 1, '450205197006260718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d0f35b7d4f5243cf886d352f0597d8ef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d98b807038734f2f87208502ef91f09e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197006260718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d73761ddbdd94774b918d76f7319934a.jpg', NULL, NULL, NULL, NULL, NULL, '450205197006260718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:32:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (203, '13737292558', '000000000631', '13737292558', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周国坤', 1, '452225197102100017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c63de33afd124174849550b66fddfba0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dde6448e31864410982f6fbf55f030b0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西武宣县鞍山路南一巷53号', NULL, NULL, NULL, NULL, 10, '452225197102100017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0756d2d4aade4973856e6053585654e0.JPG', NULL, NULL, NULL, NULL, NULL, '452225197102100017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 719, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-31 16:07:44', 39, 2, 1, 18.72, NULL, NULL, 18.72, 18.72, NULL);
+INSERT INTO `t_driver` VALUES (204, '18978225597', '000000000632', '18978225597', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '巫连军', 1, '45222519690905001X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c232eb934ed9492185b3be996d05e304.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0b279a6f9084483d999876b8209d4822.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222519690905001X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da0dad292a3b4d12a1bc222d9f0e2eb9.jpg', NULL, NULL, NULL, NULL, NULL, '45222519690905001X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 792, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:30:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (205, '18178268722', '000000000633', '18178268722', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄巧', 2, '45021119810128084X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/75fbaa92b9314af990d0fceab4bb3d01.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d853e9b284034208a6577543245a9551.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区长塘镇香兰村志诚屯二组20号', NULL, NULL, NULL, NULL, 10, '45021119810128084X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1c2ccac6715848619309a5fe00dfd2fc.jpg', NULL, NULL, NULL, NULL, NULL, '450211198101280848', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 764, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-09-08 14:26:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (206, '13633023075', '000000000635', '13633023075', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '江海', 1, '450222198203262916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6aeec515fda642aca55909ef06778531.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/899dce0fdb124577903aa267dd4e3174.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳城县大埔镇洛崖居委山咀屯77号', NULL, NULL, NULL, NULL, 10, '450222198203262916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9993bbfcf3ed4636bba40ece54c7fc96.jpg', NULL, NULL, NULL, NULL, NULL, '450222198203262916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 764, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:28:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (207, '13633033222', '000000000636', '13633033222', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '兰志漫', 2, '452231197409294028', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d5848822bec49e6aa3fe31fb361254f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/07e8b5622b0441bc97da3ddf0adb30e6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江县拉堡镇农贸柳堡路685号', NULL, NULL, NULL, NULL, 10, '452231197409294028', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4b0bb8d2ad4e4bf1812478b5f2ed903d.jpg', NULL, NULL, NULL, NULL, NULL, '452231197409294028', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 612, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:27:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (208, '18277210089', '000000000637', '18277210089', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '原保强', 1, '45020319710225071X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c99bac0422f8429591339f7a23562fd8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8347600aa0744a968a3db9116c3ba10e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020319710225071X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a99da0bc720447038deb210c5e5dbcbe.jpg', NULL, NULL, NULL, NULL, NULL, '45020319710225071X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 612, 2, 1, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:26:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (209, '15678053362', '000000000638', '15678053362', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '麻荣河', 1, '452127198111254212', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3728ee01b069435bae5d97dc04808122.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ae5f9d6f92f465e9a4b53b4b0145e91.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区拉堡镇塘头村下屯106号3单元702室', NULL, NULL, NULL, NULL, 10, '452127198111254212', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e87ac49d12d14373baece8c12ee0842e.jpg', NULL, NULL, NULL, NULL, NULL, '452127198111254212', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 647, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:25:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (210, '15077225086', '000000000639', '15077225086', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张泽露', 1, '450211197012061317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/016b2b27820540f783ef6d4e8f449c23.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/119a09f008ac49468d5fddbeeb7a9b02.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197012061317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f2fd3c2137fe4bbfadefaa7976bc2c5d.jpg', NULL, NULL, NULL, NULL, NULL, '450211197012061317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:24:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (211, '15007825042', '000000000650', '15007825042', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '姚小文', 1, '452226197906036977', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e63cc935dfde472f9d00b7211e1aadba.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a74a0dfba57045338ea476af2e78b192.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197906036977', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/61ef625867de4bfcad034fc7af42cefa.jpg', NULL, NULL, NULL, NULL, NULL, '452226197906036977', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 667, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:23:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (212, '18978067206', '000000000652', '18978067206', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄柳军', 1, '450203196912050010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/473af3359a724c8f9070e49aff87c8c4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c32240a156e410d9df77aeb384f2430.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203196912050010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/175ce26481a8453abf6ac99db65eb44c.jpg', NULL, NULL, NULL, NULL, NULL, '450203196912050010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:22:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (213, '13788725855', '000000000277', '13788725855', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周斌', 1, '450803199006026656', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a26c8cd4176842978d55fd888d53415f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8ea97cc1507e46d0bbb4b359004c16d4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450803199006026656', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff51f9c335fd44019017f6effc1eef29.jpg', NULL, NULL, NULL, NULL, NULL, '450803199006026656', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 790, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:20:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (214, '18775285778', '000000000655', '18775285778', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '许华义', 1, '450205197006151052', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/33b50e9abb2947d2aa8a031d6a66e610.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5b9831ff0a864d97b5ae22cd2ec0bc41.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197006151052', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/95f6957fb04a4fb0a30e3a6f5ee19d05.jpg', NULL, NULL, NULL, NULL, NULL, '450205197006151052', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:19:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (215, '15777278144', '000000000656', '15777278144', 'd98892031f5ce1d61c6660300c8c2b19', NULL, '邓东伦', 1, '450202198112220010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6fa54e5342da4281a79734a674c31406.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/db9fb7528f08476ead2ed3c3ef31ba57.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区曙光东路224号604室', NULL, NULL, NULL, NULL, 10, '450202198112220010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88c4beacb4b84606ade2545e1c1becfb.jpg', NULL, NULL, NULL, NULL, NULL, '450202198112220010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 705, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:18:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (216, '18877288801', '000000000657', '18877288801', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃运', 1, '450203198710121035', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a7252ca38b9844ed8eb4a48844121a02.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5fc1fa1002494903abeb32450a8cf46f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198710121035', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c83fdf3b8f0547aeadfd8f222620f20b.jpg', NULL, NULL, NULL, NULL, NULL, '450203198710121035', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:15:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (217, '19977205230', '000000000658', '19977205230', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郑忠武', 1, '45022119860724091X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb4f241b42074b6f90ab62f579f4d5c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99e6744abe0941558a4c0b12c2946e26.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里雍镇立冲村苦练屯108号', NULL, NULL, NULL, NULL, 10, '45022119860724091X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe09ae4facea40e9844ef99ae16cf715.jpg', NULL, NULL, NULL, NULL, NULL, '45022119860724091X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 682, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:13:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (218, '17776447446', '000000000659', '17776447446', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦杰', 1, '450202198601190617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/47075472dcfb47c7b7a78034d477d313.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c12617da2854837a73d1c69027dccab.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202198601190617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82b4b5e98e65402aac5a1b3c6fecae7c.jpg', NULL, NULL, NULL, NULL, NULL, '450202198601190617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 752, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:11:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (219, '13607809015', '000000000660', '13607809015', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃官', 1, '450221199308275711', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c31ece5126434be782869e453c5995c8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6fdfa42a97744f51896122e87c5f3ea7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里高镇板六村中团屯69号', NULL, NULL, NULL, NULL, 10, '450221199308275711', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26cc65e34f2f49bab14240faa1f5b402.jpg', NULL, NULL, NULL, NULL, NULL, '450221199308275711', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 641, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:09:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (220, '13557720781', '000000000661', '13557720781', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '石磊', 1, '452229196812242619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a379a9d36e64f4aaac954b8b9ca6420.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/38cc336deb72463e9b102b5f1bf82f44.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229196812242619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e517e1c308dd43abb5cc6254251cad8e.jpg', NULL, NULL, NULL, NULL, NULL, '452229196812242619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:08:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (221, '18172128696', '000000000662', '18172128696', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '彭胜义', 1, '452226197708193912', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/18a07776459a4885bbf9bf2c5f052493.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e5d5d85b1b9468f8f165bb653539906.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路71号之一北祥新居30栋3单元202室', NULL, NULL, NULL, NULL, 10, '452226197708193912', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c12b6a780274c6dbf9ad5f4ee4f9a3a.jpg', NULL, NULL, NULL, NULL, NULL, '452226197708193912', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 672, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:06:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (222, '17774856114', '000000000297', '17774856114', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '袁虎', 1, '450204197710300617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec1891c7ef3b4fa18b89037f59fadd06.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c241c60f2b04dfdb7a72d7f66f83bd2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197710300617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/55be96184b5349adbed076e677ac410a.jpg', NULL, NULL, NULL, NULL, NULL, '450204197710300617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 594, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:04:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (223, '13481201878', '000000000663', '13481201878', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃祖隆', 1, '450221196910115717', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f11cba3762942f19295638d6c3df347.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/773357039ede44109157519b74729d86.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196910115717', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/83aea1da8b3448a8848827c92aea38f5.jpg', NULL, NULL, NULL, NULL, NULL, '450221196910115717', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 641, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:03:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (224, '18775188378', '000000000666', '18775188378', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴国青', 1, '450222199605102696', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/28d5432bd5ca48a5b2f5e2a7b36ae527.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6cc4398a47b54fecb854cb6e7d556135.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199605102696', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8767bcb82e174305acf3d6d839f095ef.jpg', NULL, NULL, NULL, NULL, NULL, '450222199605102696', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:02:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (225, '18177282229', '000000000667', '18177282229', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周超伟', 1, '450211197111111113', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4dcd105b221c4a2b8eda5d763c0e4035.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e37a6f6f3ada469e85a3217bc1cc3f36.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区柳江造纸厂18栋2单元501号', NULL, NULL, NULL, NULL, 10, '450211197111111113', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/af1e0a3220944f5d966a7dad730805f2.jpg', NULL, NULL, NULL, NULL, NULL, '450211197111111113', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 722, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:01:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (226, '13659663308', '000000000668', '13659663308', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郭远明', 1, '452223197107254039', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f055546bd1a74948ae94c90659a42f69.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea23f7f862fb453091ecf158cfc48cb5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区古亭大道485号', NULL, NULL, NULL, NULL, 10, '452223197107254039', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c3d669ace954ca9b7828316f3792535.jpg', NULL, NULL, NULL, NULL, NULL, '452223197107254039', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 722, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 10:00:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (227, '18178206884', '000000000670', '18178206884', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁立渊', 1, '450221198507015731', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f260eac3ca964ad89f4e153e3b2396fc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1516ad9a5f14a5f9477c116640836b8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里高镇盘龙村', NULL, NULL, NULL, NULL, 10, '450221198507015731', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b7c2288a243439db947909ad6b09382.jpg', NULL, NULL, NULL, NULL, NULL, '450221198507015731', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 678, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:59:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (228, '13377076913', '000000000671', '13377076913', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃正松', 1, '450221198205125716', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f7168e56d464b84a393f0d95536f604.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6dd5a2dcd8c140c6818f155c6e405c53.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里高镇盘龙村', NULL, NULL, NULL, NULL, 10, '450221198205125716', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/be0bf4ac792146398c9ba0226afa9477.jpg', NULL, NULL, NULL, NULL, NULL, '450221198205125716', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 678, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:57:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (229, '15224590026', '000000000673', '18807725182', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赖学标', 1, '450222197203030619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e107d1e058e94205a16602ce4823d9a6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/15346e09cb574862a3874b760c62f068.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县东泉镇凉亭村民委二村屯8队27号', NULL, NULL, NULL, NULL, 10, '450222197203030619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe06bdedaa764af881573795c85e4a3b.jpg', NULL, NULL, NULL, NULL, NULL, '450222197203030619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 551, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-09-01 13:17:28', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (230, '18176721668', '000000000675', '18176721668', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周福芳', 1, '450222199107281337', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c25aef031d3f470eb9b57c0a51eccb50.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6f1239cf83f4b758bcc4f848007bc63.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区香兰村三组73号', NULL, NULL, NULL, NULL, 10, '450222199107281337', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a995c47230f414caf402b5b93d0dc95.jpg', NULL, NULL, NULL, NULL, NULL, '450222199107281337', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 706, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:54:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (231, '17507727525', '000000000676', '17507727525', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘科', 1, '450222198911200310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3368d9ba6b8f4c49a0a6bbca713cfe85.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da0f5e6d01f849eb8f2c6e1cdf8b7659.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198911200310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8847f562d29d4fcdbae50a9b0c659820.jpg', NULL, NULL, NULL, NULL, NULL, '450222198911200310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:54:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (232, '13557622473', '000000000677', '13557622473', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃应机', 1, '450221198312152998', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd0265a5417b4776a852a90a986690c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3dd736bfb85b425cbf9d05156a17ebf8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198312152998', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/347610bcd6e44d42964ade38b9cd9bbc.jpg', NULL, NULL, NULL, NULL, NULL, '450221198312152998', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 684, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:53:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (233, '15077213772', '000000000678', '15077213772', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李大柳', 1, '452226199202191214', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c2283a57a42f4d97b0ce4f0a1722bc8d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3e3918f209a641e19eb85c4edad002f9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市拉堡镇基隆综合开发区东二巷1号1栋2-501', NULL, NULL, NULL, NULL, 10, '452226199202191214', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/966bcbdb2d5c4fdbab8ea05c15da5a71.jpg', NULL, NULL, NULL, NULL, NULL, '452226199202191214', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 615, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:52:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (234, '18177249499', '000000000679', '18177249499', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦文蒙', 1, '450221197004154911', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fab8080a87454a889a613b22cef5bb75.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2ab8192f26b84e838a185b951e5c94bf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县土博镇西朗村新村屯36号', NULL, NULL, NULL, NULL, 10, '450221197004154911', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a574552a4dad430d841fcb8233185729.jpg', NULL, NULL, NULL, NULL, NULL, '450221197004154911', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 615, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:51:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (235, '18978073773', '000000000680', '18978073773', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '金雄俊', 1, '450211197009160517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/342aa9a7e14945a8b1db1c48d720fb37.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54e404e32c0542cea08ae0fbf0436e9f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区沙塘镇沙滩街59号', NULL, NULL, NULL, NULL, 10, '450211197009160517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/28115c21b1104467ad6e5474a9174320.jpg', NULL, NULL, NULL, NULL, NULL, '450211197009160517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 502, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:49:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (236, '13377201010', '000000000681', '13377201010', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '彭晓磊', 1, '450205198411010717', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f091f45d7a542389c3b05c602e7d086.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b74f5d9328514f5aa37ec79ad4c5206d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198411010717', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f277e80c2d94cb8bcae37877f5305bd.jpg', NULL, NULL, NULL, NULL, NULL, '450205198411010717', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-25 09:48:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (237, '13377219325', '000000000682', '13377219325', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李学军', 1, '413021196806241339', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c6034a9c8a34a1bbaab6ec77ebd09e7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a62b00b3c4de42a1ada5e38f56858d2a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '413021196806241339', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/77ad4062c5784142a84629f998854787.jpg', NULL, NULL, NULL, NULL, NULL, '413021196806241339', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:28:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (238, '13633057553', '000000000683', '13633057553', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁雄伟', 1, '452223199408111030', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e435628373c4d4bacb0276964f0048a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/14129f63d4ef449d96d832c9e79a67ee.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223199408111030', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8889e966cc9946c99d31148053f8d978.jpg', NULL, NULL, NULL, NULL, NULL, '452223199408111030', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:27:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (239, '17776349295', '000000000685', '17776349295', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖冬冬', 1, '452223199101193019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/766bf9da639849e98c80b7d0fea83aa2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/aa0fb4b386064e61bf902a022c2e06e9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳邕路275号一区13栋3单元401室', NULL, NULL, NULL, NULL, 10, '452223199101193019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b59a6ef6fdf445ca32c24d215613cbd.jpg', NULL, NULL, NULL, NULL, NULL, '452223199101193019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 763, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:26:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (240, '13481265857', '000000000686', '13481265857', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴俊', 1, '450205197807020052', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3c4f4f01f07489881ead7ff615413e4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c2fcd8e8d3384031b4b7c3ae78efaec1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区河北新村一街一区54号', NULL, NULL, NULL, NULL, 10, '450205197807020052', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/864a9894b09d4e5a8b5218637e888f6e.jpg', NULL, NULL, NULL, NULL, NULL, '450205197807020052', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 730, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:25:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (241, '15007725443', '000000000687', '15007725443', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '樊俊余', 1, '45223119910714551X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59ea4b4d7cd74aacbda2c6f3afcb4896.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f92f94aa637548b1b4318ad4c9100597.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳太路二区30栋1单元102室', NULL, NULL, NULL, NULL, 10, '45223119910714551X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ca79d031b8d4326bdd95ef8a7d61db9.jpg', NULL, NULL, NULL, NULL, NULL, '45223119910714551X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 735, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:24:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (242, '13557629481', '000000000688', '13557629481', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '夏虎', 1, '450204198604011401', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7c87c11cdca435791511198d0ec4772.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c7512c47bba04400a01d63b591375a24.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区和平路文化区1栋7单元101室', NULL, NULL, NULL, NULL, 10, '450204198604011401', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f3ddebd353b2476d8d83ae2414093908.jpg', NULL, NULL, NULL, NULL, NULL, '450204198604011401', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 735, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:23:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (243, '18589966272', '000000000689', '18589966272', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧常胜', 1, '450222198610051315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2cb869a2618a48d1bd10cb2d0d1a82fe.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99bea254ec0e4a0398aeb49302d036ca.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198610051315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90c2e9bb901541c3a4419efdb9465179.jpg', NULL, NULL, NULL, NULL, NULL, '450222198610051315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 690, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:22:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (244, '18867027767', '000000000690', '18867027767', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦志纪', 1, '450221196506132451', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c182012083c5402e9390d5e7309a7f93.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a0ae61d0a1c462da64180693d109a29.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县百朋镇根林村新村屯', NULL, NULL, NULL, NULL, 10, '450221196506132451', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c25f7e5dc4c14f769bb5f36c0426d83b.jpg', NULL, NULL, NULL, NULL, NULL, '450221196506132451', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 753, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:21:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (245, '13597214918', '000000000691', '13597214918', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦应守', 1, '450221199209212416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/279b7e70bfda4213b88c906693e8a21f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4930769370c4088948cad5ebc3b64cf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199209212416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c6003c6c62bd4425a6d0f0cabdeaeaf6.jpg', NULL, NULL, NULL, NULL, NULL, '450221199209212416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 753, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:20:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (246, '13878216106', '000000000692', '13878216106', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢建伟', 1, '450222198107150332', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eee73c17438247129a5b58c977ece6ac.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ab108f56d3674cb1a8c501a110c17b0c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198107150332', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92d07393e7094d43abb80f4373260d15.jpg', NULL, NULL, NULL, NULL, NULL, '450222198107150332', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:19:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (247, '18589872986', '000000000693', '18589872986', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢黄国', 1, '450222197809160311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02b2010c7c5f4f4cbdfd26ad65a878e3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/46ab2f8be66e45f3a28946b164f1d63c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197809160311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54da6f94468f48a58e4204819cd2f5a9.jpg', NULL, NULL, NULL, NULL, NULL, '450222197809160311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:19:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (248, '15277282552', '000000000695', '15277282552', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林锦', 1, '452802196508027239', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d6cf21556d84b339d5134ef0950c280.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a35f4ed5cd9746fcbc7c2f4073c4c52e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452802196508027239', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb4b445f13a64dd9b2f187bf7cb50928.jpg', NULL, NULL, NULL, NULL, NULL, '452802196508027239', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:17:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (249, '13657825730', '000000000696', '13657825730', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄磊', 1, '450205198710161312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/89de03a63d2d4a4bb08c2c9dc73007c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/edd9cf3e2e9a488faa703e45140d6024.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路十七区74栋2单元201室', NULL, NULL, NULL, NULL, 10, '450205198710161312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c53f448c8c554ed5946e7016a5531472.jpg', NULL, NULL, NULL, NULL, NULL, '450205198710161312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 814, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:16:45', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (250, '15717725089', '000000000697', '15717725089', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邱尚峰', 1, '452424199009040316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e94cfff3d89e48ce947a79676f64d8b2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/08b867552dac4a1e82636861902c70d3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452424199009040316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce60f0ec437749008f927bf171a620d5.jpg', NULL, NULL, NULL, NULL, NULL, '452424199009040316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 660, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:14:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (251, '13977270353', '000000000698', '13977270353', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃芳园', 2, '452201198501221266', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afbf56aaeeb14c3cbdbc57e71288f6f8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c65cfa90b8c74a24beaccd6017fffa27.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452201198501221266', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/482e1a16f7974684b4de7c351fbef49e.jpg', NULL, NULL, NULL, NULL, NULL, '452201198501221266', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 778, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:10:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (252, '18978007643', '000000000699', '18978007643', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗蒙腾', 1, '450222198406101637', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ae8220bc96145f3a1257727c930fde6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9df322f3b0274a28afc19c867964efde.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198406101637', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d7b124f480e4034958692d727fef612.jpg', NULL, NULL, NULL, NULL, NULL, '450222198406101637', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:10:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (253, '15978235663', '000000000800', '15978235663', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁创传', 1, '452223198712135016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7baf61b5613045ddb4b945a98c5d0c88.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a39de158b6ab4d3e94a983351a270ca6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县四排乡和木村木料屯74号之一', NULL, NULL, NULL, NULL, 10, '452223198712135016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a472846b1cb245d2a6df41879ead2ef6.jpg', NULL, NULL, NULL, NULL, NULL, '452223198712135016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 767, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-09-04 17:33:49', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (254, '18176705349', '000000000801', '18176705349', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王磊', 1, '431321199606200155', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/69631bf59dde4b02addf274bcf9ef251.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85c344eb77a041eab80e0ee3da298313.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '431321199606200155', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/381f6d7de42c438fac27c931468e1685.jpg', NULL, NULL, NULL, NULL, NULL, '431321199606200155', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:08:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (255, '15078486995', '000000000802', '15078486995', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李军', 1, '450803199508156610', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/10f392defe9142f18576ccf872d66168.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2a35075d33924ae18d9032799482ce1e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450803199508156610', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a1bd8a5239d41af8f80b05dc0ec6670.jpg', NULL, NULL, NULL, NULL, NULL, '450803199508156610', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 583, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:07:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (256, '13978238279', '000000000803', '13978238279', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫柳明', 1, '450222196309150032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a4c52eae26e4947b1db5bfe453bf938.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e56fdd778cd4b9295586e02dbbffdc3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222196309150032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/89dc8d4a24ee43c19a98c41620671f79.jpg', NULL, NULL, NULL, NULL, NULL, '450222196309150032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 605, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:06:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (257, '13927279032', '000000000805', '13927279032', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭明波', 1, '452224199107023519', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01ccaceab75849efab62ccce8e154807.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/aeb2e0a060294eaf9c460ba6be927642.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224199107023519', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/05bc34fe46884ccfa2010702e831010c.jpg', NULL, NULL, NULL, NULL, NULL, '452224199107023519', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:06:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (258, '18078204266', '000000000806', '18078204266', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦晓能', 1, '450211198404290818', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8b9d6a97fb834aa1833912454d075f9e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ad280ad5da64e2797552b311da962a5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区洛埠镇振鹤街六巷10号', NULL, NULL, NULL, NULL, 10, '450211198404290818', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/577060f410ea453caa2e4962c9944023.jpg', NULL, NULL, NULL, NULL, NULL, '450211198404290818', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 731, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:05:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (259, '18176718660', '000000000807', '18176718660', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁统', 1, '450221198702222939', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/542e3e60e1c84e6b8822a3ba5320484f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ddd56c10bd0049b08d11ae5ce31ccac9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198702222939', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f4b6070910be4df187b2732203a58aa4.jpg', NULL, NULL, NULL, NULL, NULL, '450221198702222939', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:04:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (260, '13978000202', '000000000808', '13978000202', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦万', 1, '45022119910105193X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7ef9d69a7ea04edeb9197518696d52c7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d1e85f0a96494d28bd4e891b21bcf1b0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119910105193X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/536ee87656dc4211a52c4133d2d11af8.jpg', NULL, NULL, NULL, NULL, NULL, '45022119910105193X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 703, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:03:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (261, '13667728629', '000000000809', '13667728629', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '冯春平', 1, '450204196303041051', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d703efc08b5e4c76a1c64d8396db87b2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4fe79a4f87934fe9815b74be0d859508.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196303041051', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/826aeb6ab7754a81a8eee62e10a3eb75.jpg', NULL, NULL, NULL, NULL, NULL, '450204196303041051', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:02:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (262, '18178288866', '000000000098', '18178288866', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '齐小东', 1, '220282197601113210', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c58ddc1eee2f412d82d48d24a3338a28.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5cde1db30f784dfe8e00001d3e7f3970.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '220282197601113210', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd6563a0e62f4ea5a1c922ef30ba05c9.jpg', NULL, NULL, NULL, NULL, NULL, '220282197601113210', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:02:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (263, '19978244150', '000000000810', '19978244150', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨敏奎', 1, '452224198501252016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/527a9d433e4440cea63daed70f06c9dd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a1c4587a7034ca9adc9d29d4facc294.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224198501252016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/97a2d638814b419d942f7d0342e327c6.jpg', NULL, NULL, NULL, NULL, NULL, '452224198501252016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 575, 2, 2, '1', '2020-08-17 17:53:18', 1, '2020-08-24 17:00:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (264, '18878910025', '000000000811', '18878910025', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '荣飞雄', 1, '452228198311202013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48f2142ac3e54057a21edec685a01c30.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ae436b0828074662b06ff7465e565621.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452228198311202013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0bd7a866be7460fbd4ccab45a9562b5.jpg', NULL, NULL, NULL, NULL, NULL, '452228198311202013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 734, 2, 1, '1', '2020-08-17 17:53:18', 1, '2020-08-24 16:59:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (265, '19163855292', '000000000812', '19163855292', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '封波', 1, '452426196806270033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7df7fd3675d6495c96a0849317309e25.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6fba3d25c00d486b8b5201e6557bcba9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452426196806270033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/508ee17996c949b98f9ed4c71c8374a3.jpg', NULL, NULL, NULL, NULL, NULL, '452426196806270033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 686, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:51:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (266, '18276716772', '000000000815', '18276716772', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫亚良', 1, '450222197607030391', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e0fa11095be4e17a0a5d6de82856197.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ae5f068f5dfc4252a1c319b3b0e0d3fc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197607030391', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cc737b9f6a1d4e73b46a29ba05de361e.jpg', NULL, NULL, NULL, NULL, NULL, '450222197607030391', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 610, 2, 1, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:50:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (267, '17376110309', '000000000816', '17376110309', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '姚意', 1, '450221199212081533', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5842f67b704d46ac9895cec82c2b4e88.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f432c1a225184d1c9a8b22398113bccb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199212081533', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2bcd8324763414abf9d69333956ffb2.jpg', NULL, NULL, NULL, NULL, NULL, '450221199212081533', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 601, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:50:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (268, '13657822091', '000000000817', '13657822091', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李绍兴', 1, '452224198011105013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d2e00dc58a44f569a0f18f4610f78f6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cc7d75a6387745dcab108090c36ff7ab.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224198011105013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d985030607743ffbe69e86bbe0593a5.jpg', NULL, NULL, NULL, NULL, NULL, '452224198011105013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:49:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (269, '13481766308', '000000000818', '13481766308', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃耀斌', 1, '452227197412123719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac9e3481c45d42f9bf9cbf74ae6a05b2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39d223dc93d14a769f8b54b9a62699e1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197412123719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6f49c631ade420ba08ef2db80414f81.jpg', NULL, NULL, NULL, NULL, NULL, '452227197412123719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:48:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (270, '15078253225', '000000000819', '15078253225', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴之玉', 2, '45020419810529062X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2d60a2cea6c4e2487e0479674bd2f5b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2b7cc7d4847344408d309fbfbbe7560b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020419810529062X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/321981d880294397a3bff05bfdf2abcc.jpg', NULL, NULL, NULL, NULL, NULL, '45020419810529062X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 741, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:47:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (271, '13768892962', '000000000820', '13768892962', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何振斌', 1, '45222619701110721X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dea86223ec04409b99193dc114be079.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e6607af83c24a25b89766e2e3bc52c8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222619701110721X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da311fdc590c4db2a3d88003e3281561.jpg', NULL, NULL, NULL, NULL, NULL, '45222619701110721X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:46:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (272, '13737263356', '000000000821', '13737263356', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘泽庭', 1, '450205197704020711', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ed8fc9b882b246afaeafce2b7cded36a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d78191cf91ea4a69b8652159afda6036.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197704020711', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92d0cc2454a141fe871653ee0f9812e3.jpg', NULL, NULL, NULL, NULL, NULL, '450205197704020711', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 613, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:46:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (273, '18477213878', '000000000822', '18477213878', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊钧', 1, '450205197607240413', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d80178821e414d00a23f2f615e8b24a5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/16b75e2bcae74efca5a48ab44149ffd5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197607240413', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6894946c6dff4df8b4785e1adf48315c.jpg', NULL, NULL, NULL, NULL, NULL, '450205197607240413', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 613, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:45:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (274, '18172204846', '000000000823', '18172204846', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎庚儒', 1, '452225198201284215', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f4ff015abe14bc9af8469779db2aeef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9acda386ec3b4d61affe0cb33cef02d4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225198201284215', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34c3b6a4562c4085a3ce438cd4991e1f.jpg', NULL, NULL, NULL, NULL, NULL, '452225198201284215', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 602, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:44:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (275, '15278885066', '000000000825', '15278885066', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾志杰', 1, '450222199409263214', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e86245a70e8e482da847b3c98695057f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/46ea215939a048bd98820f377497053a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县寨隆镇更祥村民委黄垌屯212号', NULL, NULL, NULL, NULL, 10, '450222199409263214', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/19a799befc0540b2ad79d8d05a409577.jpg', NULL, NULL, NULL, NULL, NULL, '450222199409263214', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 896, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:43:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (276, '18172201870', '000000000179', '18172201870', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄海', 1, '450204198207171015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fdd1c89a5eaf4e2fabcff72fa62e85df.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b804596f08e5496b99c321dcb5c9878c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198207171015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e50988a066c24da7b5657f9840862ba9.jpg', NULL, NULL, NULL, NULL, NULL, '450204198207171015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 775, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:42:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (277, '13377020417', '000000000291', '13377020417', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦孝国', 1, '450204196712051410', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d6744484a70749ba969c3e9439dc5875.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/72895bfcf5f44a81aaf57285b82c2b72.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区和平路工程区3栋2单元101号', NULL, NULL, NULL, NULL, 10, '450204196712051410', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d12241c08e4434fa33882104ef13417.jpg', NULL, NULL, NULL, NULL, NULL, '450204196712051410', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 775, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:41:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (278, '13517725716', '000000000826', '13517725716', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦日所', 1, '452226197607236936', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/026461068c164249b159b87e3ec45b32.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c3d01be73614fee961e50ebc56f7937.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197607236936', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5af4ee10e4a149c99e456f2875d18659.jpg', NULL, NULL, NULL, NULL, NULL, '452226197607236936', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 765, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:40:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (279, '17777265257', '000000000830', '17777265257', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱小奇', 1, '450211198301060016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2934d28b890a4631a92c0c1c861c702b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48a3c8f2fe08442d9e467cf37a2d4fe3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198301060016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b63d0f34f6e84c8a9d67858f8f1872b2.jpg', NULL, NULL, NULL, NULL, NULL, '450211198301060016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:29:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (280, '13367621667', '000000000832', '13367621667', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李文棨', 1, '450202197606150038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/001227b7a7ec4389827861c262b85bd8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/460896096c6a45ad95834908445bc873.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197606150038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/33b15ff466544fdfa57ef9e829a455b7.jpg', NULL, NULL, NULL, NULL, NULL, '450202197606150038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:28:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (281, '13307726763', '000000000833', '13307726763', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭顺德', 1, '450203197812180330', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1fbb29d83c7a4a59a20c332e82073070.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f07f23c9d144ae1bad1c7aaccbcd2f0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197812180330', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e0fe13157a9641f296590a64fa27e5c1.jpg', NULL, NULL, NULL, NULL, NULL, '450203197812180330', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:27:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (282, '15177720997', '000000000834', '15177720997', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '戚桂松', 1, '45222319940820101X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe2bed3954c14b3e8127687b2f16f549.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42bc305f3f7d40cda867c3398458eee1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222319940820101X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2003a94ca9d1499dad8b61777cea8ded.jpg', NULL, NULL, NULL, NULL, NULL, '45222319940820101X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:26:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (283, '15778237685', '000000000835', '15778237685', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁富', 1, '452226198707255119', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0fc9976463f482e88712587f2bb2def.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5626190be124413bb6fcfcf2a5e4ee4f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198707255119', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/454b8851940144c1b7337cb134fb8e2f.jpg', NULL, NULL, NULL, NULL, NULL, '452226198707255119', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:24:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (284, '18677231811', '000000000836', '18677231811', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁鹏', 1, '45022119901008391X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/30f55e16b76b4fa6bbdd10b54ab559ec.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ffe39fc6d63e4e359be0fab8d13f7bd6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119901008391X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df327b88cadd41adbb88f71c2fd1a7c5.jpg', NULL, NULL, NULL, NULL, NULL, '45022119901008391X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:23:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (285, '13737269611', '000000000837', '13737269611', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '许云', 1, '450204196306190335', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc24e2c5518b4203b800ea61a66dd9f3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7f8f0f7c783d479c86533dca06494328.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196306190335', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96b3ce3861144421bbfa020f5355dfb9.jpg', NULL, NULL, NULL, NULL, NULL, '450204196306190335', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:22:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (286, '13978071273', '000000000854', '13978071273', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王建新', 1, '450203198111190311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/27bb890b81944724af70be7f51bd1a5a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ede9191b9af14d1992ea008337a81bc7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198111190311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88c98e3dff2642bbbb0a52ab78343374.jpg', NULL, NULL, NULL, NULL, NULL, '450203198111190311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:21:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (287, '13978066773', '000000000853', '13978066773', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄明德', 1, '450203197305040317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/45092219a6bf473d85839b7c47b02ff4.png', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/505629cce25f476f9c966e0a039a669f.png', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区天山路一区52号', NULL, NULL, NULL, NULL, 10, '450203197305040317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce850d04c1f94d6f9661c2d0e5bb3710.png', NULL, NULL, NULL, NULL, NULL, '450203197305040317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 593, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:20:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (288, '15077278438', '000000000840', '15077278438', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '方家遵', 1, '452226198805045115', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbe212a417cd4835ba49657430ca5c3f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbd07e51e0c440b497fd1aea88a819ec.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区柳邕路351号瑞福华庭2栋1003号', NULL, NULL, NULL, NULL, 10, '452226198805045115', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42fb89e8ca7947cc99d90a692f9ed164.jpg', NULL, NULL, NULL, NULL, NULL, '452226198805045115', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 780, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:19:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (289, '13377023252', '000000000841', '13377023252', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦任斌', 1, '45252319791104141X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54e3a8f32d9a43c5a9e07024b938e17b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9dd5b474e65840afb9eb91dc4f800602.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45252319791104141X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6e2e1421144344129b32e412a24ece01.jpg', NULL, NULL, NULL, NULL, NULL, '45252319791104141X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 780, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:18:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (290, '13788727252', '000000000842', '13788727252', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆立团', 1, '450221197011130934', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6b12050f25684e199ec8bd34f227145f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/091a8d270fbe48b595cbf2295c1367a4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里雍镇广实村有成屯106号', NULL, NULL, NULL, NULL, 10, '450221197011130934', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/266ef6b2185942b2acc51142462dd6db.jpg', NULL, NULL, NULL, NULL, NULL, '450221197011130934', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 772, 2, 1, '1', '2020-08-17 17:53:19', 1, '2020-09-08 11:33:10', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (291, '13084922994', '000000000843', '13084922994', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃锦洪', 1, '450202196303040611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/555ac54908e54bc1bc2fd75eade7ba37.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/be3e68b307c5492f96ae52d1f63d4195.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202196303040611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9e78a678fba845dd92c6183d8c98c35e.jpg', NULL, NULL, NULL, NULL, NULL, '450202196303040611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 785, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:16:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (292, '18277280448', '000000000844', '18277280448', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖燕莉', 2, '450211197607021920', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f725eb038ff4de3ac478259996ec01b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a790cc50091b484791e86f50d698a355.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区新云村龙屯83号', NULL, NULL, NULL, NULL, 10, '450211197607021920', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/441a1b38573848b48731314139e696b9.jpg', NULL, NULL, NULL, NULL, NULL, '450211197607021920', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 781, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:15:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (293, '13633095451', '000000000845', '13633095451', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄迪强', 1, '450203197803160012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/08a35beb47434e84b3e533185b925115.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2f1805a00b7b43708dab295e7a3a1a32.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区狮子山小区4栋2单元102室', NULL, NULL, NULL, NULL, 10, '450203197803160012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d590cf2e58040b3842df6c1878b6a86.jpg', NULL, NULL, NULL, NULL, NULL, '450203197803160012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 786, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:13:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (294, '18878404026', '000000000846', '18878404026', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃春炊', 1, '450221198509202434', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f0e15174b67b47848624abb9a68cd434.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cbb4f127984e4b7ebcec0a678f580fbf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198509202434', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0fae1c8bde5b4a1c862bf4c42fa99ee2.jpg', NULL, NULL, NULL, NULL, NULL, '450221198509202434', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:12:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (295, '18677242909', '000000000847', '18677242909', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃启幸', 1, '452226197010156431', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3240f7d2831f4b998fcddcbb97278169.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b795dc29c9d34331940200c54cd9862a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197010156431', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/36ed8e120a364234a89c77619c2f6b5e.jpg', NULL, NULL, NULL, NULL, NULL, '452226197010156431', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 673, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:11:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (296, '13877290407', '000000000848', '13877290407', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖勇鸿', 1, '450205197211300715', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2f3a842d84b448e5b300d7305a0428cc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f6383402a8ee49f697d1e3bd0ac34c2c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区城站路94号一区11栋4单元108室', NULL, NULL, NULL, NULL, 10, '450205197211300715', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9eae7923e62f4a1aa854fdcbbdc7bfe5.jpg', NULL, NULL, NULL, NULL, NULL, '450205197211300715', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 607, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:10:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (297, '18277215137', '000000000255', '18277215137', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭洁', 1, '450205198203060031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1e73da8578f4405397fd753191eda6a2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d8083d194f64f0a906ad5b420584ff1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区跃进路30号3栋1单元402室', NULL, NULL, NULL, NULL, 10, '450205198203060031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0cc305d2d537422d80eb4f351c2e4a51.jpg', NULL, NULL, NULL, NULL, NULL, '450205198203060031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 607, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:10:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (298, '15007722933', '000000000850', '15007722933', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林浩涛', 1, '445222198109304019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7af4c78306144476aca98434e494508b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/040e6f06485743edb378c26a78d96e8e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '445222198109304019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9e86ea810c74414fa7d1e16115ee0bf9.jpg', NULL, NULL, NULL, NULL, NULL, '445222198109304019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 511, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:09:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (299, '18977295529', '000000000852', '18977295529', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李荣军', 1, '452223198002106552', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/95a9eb1ae08b424cb9a0d1e8353e6840.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/35b8d1c69acb44e7ad018fe04f3ceec5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鹿寨县导江乡石排村勒西屯39号', NULL, NULL, NULL, NULL, 10, '452223198002106552', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/877ff7a47a1d4d5e96df73541af55593.jpg', NULL, NULL, NULL, NULL, NULL, '452223198002106552', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 741, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-09-08 12:13:59', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (300, '18877281185', '000000000855', '18877281185', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王亚', 1, '430521199008096677', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e912f865a3dd42fba212be34131024e0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/58a2fb968cd64468aaaec4e2b48d5c0d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '430521199008096677', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/76e38bbad8f746da9f60039d9b766f52.jpg', NULL, NULL, NULL, NULL, NULL, '430521199008096677', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:07:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (301, '18277201882', '000000000856', '18277201882', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁三平', 1, '45020419771006145X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f8d656c06c8a41a0a2bcf030bd75f226.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/732224c29ca941078d679965f2fcb2c6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区龙屯路6号1栋1单元302室', NULL, NULL, NULL, NULL, 10, '45020419771006145X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5feb97fa2b664b31a589b075a19753b7.jpg', NULL, NULL, NULL, NULL, NULL, '45020419771006145X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 616, 2, 1, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:06:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (302, '13877277912', '000000000857', '13877277912', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李斌', 1, '450205196807190719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f96692c4250c4426bae8cdaacc0ad233.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd2de92269af4b3d982961007f6575b4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196807190719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8bfdb305307c4369b146e591c84a3e50.jpg', NULL, NULL, NULL, NULL, NULL, '450205196807190719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 616, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:06:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (303, '13788124058', '000000000858', '13788124058', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张友杰', 1, '45020319761031031X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01628b0d72454d61baa50103605a3b70.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/aba44f4cf33343b0b6db4d40ec8c3cab.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020319761031031X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3245a35dc9774b9aab48b21bf9f0523b.jpg', NULL, NULL, NULL, NULL, NULL, '45020319761031031X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 616, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:05:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (304, '13407886005', '000000000859', '13407886005', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '董华', 1, '450204197803291019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bc501c4a93a04cb298fb6d0553f63518.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ffa310ebf12340f5967315a16dec493a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197803291019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5a7f1f4be144aa3b91f1d05e26b7bd5.jpg', NULL, NULL, NULL, NULL, NULL, '450204197803291019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 717, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:04:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (305, '13978047806', '000000000860', '13978047806', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃龙生', 1, '450203197106050336', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/051fe886955d4ea2879306a3b7f94232.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f20bffa076f943d4be61211610e336a9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区屏山大道24栋2单元603室', NULL, NULL, NULL, NULL, 10, '450203197106050336', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c79327104dca457e9de92250afe8097b.jpg', NULL, NULL, NULL, NULL, NULL, '450203197106050336', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 715, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:03:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (306, '13707725605', '000000000861', '13707725605', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘柳军', 1, '450203197112060338', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0deb277ee0d4f1e8424b83ccebce01a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d74819e645354181a61204f1c155d080.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197112060338', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cba88607e80044949fbabbe76ab2e854.jpg', NULL, NULL, NULL, NULL, NULL, '450203197112060338', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 740, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:02:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (307, '13617722209', '000000000862', '13617722209', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈日新', 1, '450821198603044113', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9eebc7af24eb43d29487bb7572255590.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/727c11da3c75421fb779b81a987b8818.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450821198603044113', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/68a3d6ed9c7f4ff7af3cd2a04a18a35a.jpg', NULL, NULL, NULL, NULL, NULL, '450821198603044113', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 503, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 16:00:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (308, '13978050573', '000000000005', '13978050573', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘桦', 1, '450203197804131010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85c024fdd78e499aaad0b883d504a396.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/aca439e2e13842eebe6f9a08d51ad567.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197804131010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1444a801cfb24de1a70aeaec9f101b19.jpg', NULL, NULL, NULL, NULL, NULL, '450203197804131010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:59:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (309, '13878299643', '000000000189', '13878299643', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖雪柳', 2, '452226198402106921', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/981388c3680849e2b0a957cad9f63248.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/365c89b759c740b499062facc075da08.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西来宾市兴宾区正龙乡东阳村民委东阳村18号', NULL, NULL, NULL, NULL, 10, '452226198402106921', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/516adc1d445748cfa9d1723b21f334fc.jpg', NULL, NULL, NULL, NULL, NULL, '452226198402106921', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 783, 2, 1, '1', '2020-08-17 17:53:19', 1, '2020-09-07 16:57:44', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (310, '19976074281', '000000000190', '19976074281', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖素珍', 2, '452226197904106986', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b2deaeeee47645af8ee82d737c6d90bc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3110679122ac40babafe089bb9edeffb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197904106986', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2f61472e417842ada7702f4d239f274f.jpg', NULL, NULL, NULL, NULL, NULL, '452226197904106986', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 561, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:57:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (311, '13978027035', '000000000863', '13978027035', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈森英', 2, '452426197808211525', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b958db626ec14789b7d72026a0012daa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9aab5233269f428fa5ca76d9a33094f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452426197808211525', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bbd77f0c5a0b453f8d754ac55da6311a.jpg', NULL, NULL, NULL, NULL, NULL, '452426197808211525', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 670, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:57:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (312, '13877287832', '000000000864', '13877287832', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁家瑜', 1, '450222198612140311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/643156b1c2054ed7883c7833b68f2435.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/76eac25c1303484b80b9062a351dd199.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳城县东泉镇供销社8号', NULL, NULL, NULL, NULL, 10, '450222198612140311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/30766537af82468f89ae794c172d5fbd.jpg', NULL, NULL, NULL, NULL, NULL, '450222198612140311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 755, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:56:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (313, '13633089513', '000000000865', '13633089513', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝汝凤', 2, '452231197809160061', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d924034ec09b4dbab3d05f6d38aea863.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/866e24f5474a41ddb4e34ddedd1a3a65.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231197809160061', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da96955deb0e423faa311e7986b6b60f.jpg', NULL, NULL, NULL, NULL, NULL, '452231197809160061', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 677, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:55:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (314, '13768940133', '000000000867', '13768940133', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝利江', 2, '450221197207280029', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1e7a388896014524a3d48e91c5cf2639.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e35c04bf083478b957d9902a09dbe17.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197207280029', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb54c97026d3416d8c4a5bc15cd82436.jpg', NULL, NULL, NULL, NULL, NULL, '450221197207280029', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:54:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (315, '15977283948', '000000000869', '15977283948', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗雄', 1, '450222198206071330', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f73320ebd6e450fba6813dc388cc0cd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbee03b894e94569ab9abec0330acad5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198206071330', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1304fcc70744ada85dc0a845b657ea0.jpg', NULL, NULL, NULL, NULL, NULL, '450222198206071330', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:53:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (316, '18377248152', '000000000870', '18377248152', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭广林', 1, '450222198807231336', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f664c04544784da6a2ab6a40d1574628.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7462acdc54664745bd413adb6c498418.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198807231336', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a07cd9c9b16242019cdbf81aee5fdb44.jpg', NULL, NULL, NULL, NULL, NULL, '450222198807231336', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:53:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (317, '15877276015', '000000000871', '15877276015', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李洪波', 1, '450204198808290618', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c322d34860834fc49e2cd9bcbbc69a37.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88815fe41b2a4f2e9206ea49c50540b4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区飞鹅路得利民区9栋5单元702室', NULL, NULL, NULL, NULL, 10, '450204198808290618', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/56f5a5bcbebf43959400b7cab1d2f07a.jpg', NULL, NULL, NULL, NULL, NULL, '450204198808290618', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 766, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:51:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (318, '13877218387', '000000000872', '13877218387', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '钟成勇', 1, '450205196210250432', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/60cd283933074053aefefc73851b2e78.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3af710fbfd9e4632852e22cb6f342bc7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196210250432', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90c79806b5bd4a358db46516aeba13e4.jpg', NULL, NULL, NULL, NULL, NULL, '450205196210250432', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:50:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (319, '13977262233', '000000000873', '13977262233', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张建威', 1, '450222197809120336', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54678a6f23224383a4444f748f640590.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/be1e0ed081ba44c6a0a279bcfb0a1518.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197809120336', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02a06d18624145c1b8ac7e05e185410a.jpg', NULL, NULL, NULL, NULL, NULL, '450222197809120336', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:50:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (320, '17777239377', '000000000875', '17777239377', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王锋', 1, '452502198902105859', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f5ddabd3c7294862888b5344fbabf5f7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a60b95b9836441abb942d9a282dccc89.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452502198902105859', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb2f09facf7b499aa23abbc42c81d25c.jpg', NULL, NULL, NULL, NULL, NULL, '452502198902105859', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:49:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (321, '19943091338', '000000000877', '19943091338', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖朝华', 1, '452225198611092136', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/80d262ffc11646af8a82d047dc299545.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54e35912da6c48dd94cbce5f3bb95bd7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区荣军路二区168号', NULL, NULL, NULL, NULL, 10, '452225198611092136', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d6ab050860ab4a9aa854982fea8e4756.jpg', NULL, NULL, NULL, NULL, NULL, '452225198611092136', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 702, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:46:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (322, '13387721492', '000000000879', '13387721492', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李庆', 1, '450204197110010616', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f30e7e52f584c10b9efe211d10534ff.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/11592d6b1b184748b47bed0b7c94ff5b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197110010616', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f77177df53d400783d8d41013ae2f31.jpg', NULL, NULL, NULL, NULL, NULL, '450204197110010616', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:45:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (323, '18977288371', '000000000880', '17377209381', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何春勇', 1, '450205198410160713', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d160135e9ca440f49c40617403ab26f3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6e706512bb5d4394919f2f802ce403f9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区红碑路14号2栋1单元802室', NULL, NULL, NULL, NULL, 10, '450205198410160713', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e6f21cc4ee24d66b58cfb912e4c3ca6.jpg', NULL, NULL, NULL, NULL, NULL, '450205198410160713', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 675, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-09-04 22:42:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (324, '13457235110', '000000000881', '13457235110', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦小彬', 1, '452231197501062035', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4814e83d812e463e96989857204f22af.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/558e3e135b494e24808da8c6722c65cf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区柳邕路360号13栋7单元302室', NULL, NULL, NULL, NULL, 10, '452231197501062035', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bbbe4e38d371426e819905349f6246fa.jpg', NULL, NULL, NULL, NULL, NULL, '452231197501062035', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 758, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-09-08 12:09:44', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (325, '18775108068', '000000000882', '18775108068', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林志雄', 1, '450211197109080012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/428141f24d25497bb1d9ab03289ffca7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/58fe47235fdd45d699636950ce3a3d60.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路129哈号集体户', NULL, NULL, NULL, NULL, 10, '450211197109080012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3bf19a64d18c45e4b1ed644e268e69bf.jpg', NULL, NULL, NULL, NULL, NULL, '450211197109080012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 659, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:42:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (326, '18178845540', '000000000883', '18178845540', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁金兑', 1, '450881198505034196', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f74acb12556b4625b816d55f19693961.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/491ad3c708e4470fb95c0d72f54fd602.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳城县东泉镇东中路184之二', NULL, NULL, NULL, NULL, 10, '450881198505034196', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/373a94b23b1b4eb5bb41bf6ef67bf2af.jpg', NULL, NULL, NULL, NULL, NULL, '450881198505034196', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 756, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:41:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (327, '15818380829', '000000000878', '15818380829', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆民', 1, '452702197402122093', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a24255e825040e3aba45edc051d1fc5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78819d77c005417ebfb61ec8aecc9a9d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452702197402122093', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d133d1eca3944fcad5c446820c35e36.jpg', NULL, NULL, NULL, NULL, NULL, '452702197402122093', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 756, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-08-24 15:39:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (328, '13481258732', '000000000885', '13481258732', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗十民', 1, '452224197705121056', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c9d98127b844022a9c922d03869076b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b11e2b8ff8ec4366b3ed86821c9a4f55.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区东环大道69号东华园5栋4单元201室', NULL, NULL, NULL, NULL, 10, '452224197705121056', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/19c2a2591ede4e448274f93affa24eff.jpg', NULL, NULL, NULL, NULL, NULL, '452224197705121056', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 630, 2, 2, '1', '2020-08-17 17:53:19', 1, '2020-09-04 18:10:06', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (329, '15607721515', '000000000886', '15607721515', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张传武', 1, '450204197610080311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3deafe5426ad4502b1e16c84548474e1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9c108b8104c4368beaaa9d4ffe58354.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区飞鹅路菜园屯34号之一', NULL, NULL, NULL, NULL, 10, '450204197610080311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff8ef3312e3147cf80aaac36d8fe3413.jpg', NULL, NULL, NULL, NULL, NULL, '450204197610080311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 665, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:38:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (330, '18177231070', '000000000887', '18177231070', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦玉峰', 1, '45021119781001163X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f0c3f659f7064fc3a365df37f7b9890c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8cbe1bcbb44f4310bccf5e10349b9af0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45021119781001163X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1b4bf0ab44a4d6c8bfd4151774f70ca.jpg', NULL, NULL, NULL, NULL, NULL, '45021119781001163X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:37:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (331, '18775116148', '000000000888', '18775116148', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵勇辉', 1, '452229197909120030', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/57bd171d3a56435aa7300815e352ebab.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/03bcd7f84e414555aec529b2f1f2cab9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航银路37号', NULL, NULL, NULL, NULL, 10, '452229197909120030', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ce8325770344172a9110c828294889a.jpg', NULL, NULL, NULL, NULL, NULL, '452229197909120030', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 771, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:36:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (332, '13324721332', '000000000889', '13324721332', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李永强', 1, '450204199501121419', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9760e368f5ae476fb28f608f1039d604.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd21ea537dca48498f68b89c3e80e026.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204199501121419', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f1b6db767eea43ff877dd913b12b9f21.jpg', NULL, NULL, NULL, NULL, NULL, '450204199501121419', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:34:45', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (333, '18277229859', '000000000890', '18277229859', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈宣永', 1, '452223197908010018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8e5a02b30c44c02b0171edefb864c5e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f87bb6b9f2e4e9b8a19914481889e90.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197908010018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c07e6881a60545fd8dbc66f6584cfe34.jpg', NULL, NULL, NULL, NULL, NULL, '452223197908010018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 791, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:34:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (334, '13481235182', '000000000891', '13481235182', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴龙炳', 1, '45272319771215085X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d4beb65d9a8e420db560057cd25bb7c6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99e38d9c9690410f9032b46ee07fc85b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路十七区4栋3单元601号', NULL, NULL, NULL, NULL, 10, '45272319771215085X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d35151b1e3b94603b26ae7dadeb86890.jpg', NULL, NULL, NULL, NULL, NULL, '45272319771215085X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 791, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-09-08 11:35:00', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (335, '15077208702', '000000000250', '15077208702', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何为代', 1, '452227196907143637', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a1364730fbd48049c6d40c8637a7d69.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b9135b11c8ff4845ab2025eecb1466b6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区潭中西路2424号东区19号803室', NULL, NULL, NULL, NULL, 10, '452227196907143637', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c89184c847147ac84bf0256324841c8.jpg', NULL, NULL, NULL, NULL, NULL, '452227196907143637', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 674, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:28:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (336, '15277247436', '000000000895', '15277247436', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢勇', 1, '450221199208294413', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/07aa71d8a3fb435b8898c43e0adad733.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25ba9334261d497db5604363852d84e9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199208294413', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/32f8dbe6d6514af3b78fb794b9915a04.jpg', NULL, NULL, NULL, NULL, NULL, '450221199208294413', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:27:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (337, '13507722193', '000000000896', '13507722193', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦立', 1, '450202196708050017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1ee5cfb096d340529cf6721d42b2aeeb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fcd4beca5d10483d9e7b9b1f9f9562f4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区八一路10号503', NULL, NULL, NULL, NULL, 10, '450202196708050017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ef888a72f4194fcc8f58c1d14c018add.jpg', NULL, NULL, NULL, NULL, NULL, '450202196708050017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 779, 2, 1, '1', '2020-08-17 17:53:20', 1, '2020-09-14 16:10:35', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (338, '17377245658', '000000000897', '17377245658', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃家辉', 1, '450222198810221913', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2f210f8dc8f04ed18f2d4bf08e5c130c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a7c841a75a644d58a5e6186ccca33326.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198810221913', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c032b8ab23cc4bc7ac1a9711d19bbf46.jpg', NULL, NULL, NULL, NULL, NULL, '450222198810221913', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 769, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:25:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (339, '13633098363', '000000000898', '13633098363', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦天生', 1, '450203198504111012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f6c1634bb06a47b3919a653bfba83943.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/91ed984bf06a4e92ae0e1bde3057f4e9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198504111012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3e5262ac087d4b4f9e21ae57bf9b54a3.jpg', NULL, NULL, NULL, NULL, NULL, '450203198504111012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:25:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (340, '13768869891', '000000000899', '13768869891', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏江', 1, '450204198209281410', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/22fab7ccfe814468a99567571d8b375f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9264119140af4e829e713a1f7daf565e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198209281410', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8286f19be56444118daeb5241e3fe4a9.jpg', NULL, NULL, NULL, NULL, NULL, '450204198209281410', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:24:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (341, '18775134069', '000000000900', '18775134069', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李兵', 1, '452223197710081531', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48fe1fcfdef94aac9629270bd9cda249.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9216984feef149638c2fc84dddb6751c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197710081531', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a3931aabf464add8098cccc0d4268ab.jpg', NULL, NULL, NULL, NULL, NULL, '452223197710081531', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 760, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:22:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (342, '17776444359', '000000000902', '17776444359', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁懂', 1, '450204197911081457', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb6ebede36d14ab99ffd573350eb3845.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a0011827ec24b1da06131608e74f078.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197911081457', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f826357d90eb45609234149c9107d866.jpg', NULL, NULL, NULL, NULL, NULL, '450204197911081457', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:22:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (343, '17736666671', '000000000903', '17736666671', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王韬', 1, '450205198808210418', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d29153b1cd894cdfa26c4f74f4b36168.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/56d96c7f7e0346618a168fc9c7b81420.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198808210418', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1d29160f4cdc4f2aa97177d630a439e9.jpg', NULL, NULL, NULL, NULL, NULL, '450205198808210418', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:21:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (344, '17877870109', '000000000904', '17877870109', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '玉秋华', 1, '450205198310200415', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f945a9ef1b0a4df0b452e55e4a4078ec.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/08e05035dfbb4b95849cd29146f738d8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198310200415', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbbd482649664807994eedb23ceafa70.jpg', NULL, NULL, NULL, NULL, NULL, '450205198310200415', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 783, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:20:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (345, '18207720080', '000000000905', '18207720080', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '方家振', 1, '450222199504090614', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/beb53d096a794de3bf2caeffebd2aef6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0ea84582fd44b0d82f3559d1da6ffe5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199504090614', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/abd04376a01d4342a43402bd566fe2bb.jpg', NULL, NULL, NULL, NULL, NULL, '450222199504090614', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:20:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (346, '19177298688', '000000000672', '19177298688', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃燚', 1, '450205197011200437', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04378d1eabbf4d7eb4195194bd9cdc70.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf21232d08a44249bdf0cc08bbee4fe2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197011200437', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/176da4614f9a445db1dbeff261f9bd91.jpg', NULL, NULL, NULL, NULL, NULL, '450205197011200437', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:19:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (347, '18077206652', '000000000907', '18077206652', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈志思', 1, '452226197710156651', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/29b21a2a8b4646868bed7c6427b2c0ef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bbcbf4b14fcf4a2aab76b6bfa82bdb87.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197710156651', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4f50ba1a0c74e44bc35538ffd502a5b.jpg', NULL, NULL, NULL, NULL, NULL, '452226197710156651', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:18:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (348, '15907729956', '000000000908', '15907729956', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '孔成', 1, '450204197606021458', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ac8284a719b48169382cf4a7dec5725.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5fc8c399de7a4e9ab3b1144cb308683a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197606021458', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b542587e31f4afe9d03fc1b8808aeaa.jpg', NULL, NULL, NULL, NULL, NULL, '450204197606021458', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 649, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:17:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (349, '15777288786', '000000000909', '15777288786', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎健斌', 1, '450202196609280319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/008d54249c1042b0ab2b42b1b2be7f9b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/959dba9ac96a468b89ea02b63a1073d3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区跃进路90号之一水榭花都3栋2单元602室', NULL, NULL, NULL, NULL, 10, '450202196609280319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e0ee8d07380647878480eb184948e0e6.jpg', NULL, NULL, NULL, NULL, NULL, '450202196609280319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 654, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:15:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (350, '13517809518', '000000000910', '13517809518', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄燕琼', 1, '452224197812312544', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f43e6d86ff3549c68e92661edc7f9666.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a82b0d9c126c4bbea6e24eb5dd5127cb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224197812312544', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6290c9e76b054b6ea6039f8e06fa41da.jpg', NULL, NULL, NULL, NULL, NULL, '452224197812312544', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:14:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (351, '13669623698', '000000000911', '13669623698', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周康员', 1, '452228197906076517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6bd550374cfe49d8aeb1fb95477234a2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1bc5fab2077c4b12b91c04481b5c4204.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西三江侗族自治县高基瑶族乡高基村下饭瓦屯20号之一', NULL, NULL, NULL, NULL, 10, '452228197906076517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc98413d64214c9abee796429e7b8cfe.jpg', NULL, NULL, NULL, NULL, NULL, '452228197906076517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 666, 2, 1, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:13:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (352, '13877281567', '000000000839', '13877281567', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢海潮', 1, '452523198011014154', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5605ad4b9fab4f6991c0fc116561e5a8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd0d7c9c409c41dcbc6cf447558748ee.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452523198011014154', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/30373495175b4bd688928a5e0abf931b.jpg', NULL, NULL, NULL, NULL, NULL, '452523198011014154', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:12:53', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (353, '18778272986', '000000000913', '18778272986', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃善波', 1, '450221197805230013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f4d9a07face2457f8522b05c0b46c506.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c712e8dbc7364976ba04ba20a3856edb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197805230013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0a6480b143f4673bcd30ff842877335.jpg', NULL, NULL, NULL, NULL, NULL, '450221197805230013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:11:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (354, '15278887383', '000000000915', '15278887383', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝赛阔', 1, '45223119750925551X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/996369e400bb413d87bdca5636306e75.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/acd498fdc08045998c788bd078e764c4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳江区基隆兴国路口', NULL, NULL, NULL, NULL, 10, '45223119750925551X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/747ce4f47c174f74a0b728fe1ddb151a.jpg', NULL, NULL, NULL, NULL, NULL, '45223119750925551X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 647, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:11:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (355, '18677237917', '000000000916', '18677237917', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郑建武', 1, '452601197302240330', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4314a1c67f8f4958806c516269f38b14.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e98312bfc0074ff09df1a6a56da793cf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452601197302240330', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01d53176d9c1429cb486bc084789443f.jpg', NULL, NULL, NULL, NULL, NULL, '452601197302240330', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:10:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (356, '13481901398', '000000000917', '13481901398', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃松', 1, '452622197706151416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f04afbb37ac049e785c1590be5978f88.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e45a0f011c33423487d05413b523f517.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452622197706151416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/141b17b4cc6740199620337e49014233.jpg', NULL, NULL, NULL, NULL, NULL, '452622197706151416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:09:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (357, '18648874671', '000000000918', '18648874671', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄龙', 1, '45021119880301161X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7a4c3c491c44a818f38bccf23bb85e5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/57f306699db94e53bbc1021ba20ca352.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航生路13号16栋1单元502室', NULL, NULL, NULL, NULL, 10, '45021119880301161X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4d7834c24704309b449077dee1f00ee.jpg', NULL, NULL, NULL, NULL, NULL, '45021119880301161X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 810, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:08:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (358, '18978091487', '000000000919', '18978091487', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张宗发', 1, '450222198711110310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f78c545ef9f44a9aa7adbffd15e167a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9dcae45571314e0b854bdc0e5fc0d853.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198711110310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1db7da890e4746a2969ceae639d5d548.jpg', NULL, NULL, NULL, NULL, NULL, '450222198711110310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 655, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:07:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (359, '13977298469', '000000000920', '13977298469', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周志良', 1, '452226197912010976', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ceeb95131fe84d749d783ac8b15f78d8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ad57b8dc8694e47acb507fe83e095f7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197912010976', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4504ac125df4d85ba913bb79e33f5e1.jpg', NULL, NULL, NULL, NULL, NULL, '452226197912010976', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 638, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:05:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (360, '13877252590', '000000000921', '13877252590', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃华议', 1, '452724198301240317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d0eecc697eae437e9f25ce9a9b3b1dd5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/32a360502626424991713d4358843eab.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西环江县大才乡暖和屯73号', NULL, NULL, NULL, NULL, 10, '452724198301240317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2a451ad318d7429e8a4dfa4898c2c497.jpg', NULL, NULL, NULL, NULL, NULL, '452724198301240317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 665, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:04:45', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (361, '13367629046', '000000000923', '13367629046', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '左邦华', 1, '360427199008202032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/485075e2f779475bbb9dff31260b324c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25353a963a3746c692ef7e97cbd45ede.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区太阳村镇山头村四角楼8号', NULL, NULL, NULL, NULL, 10, '360427199008202032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/acc8abc0eb724c4da07360c9b850e3b5.jpg', NULL, NULL, NULL, NULL, NULL, '360427199008202032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 609, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:03:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (362, '18078259779', '000000000924', '18078259779', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陶俊旭', 1, '45022119890905141X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5bc4b850c1374970984d859b2a83427f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90041e386dca4c978438659df42e56de.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119890905141X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0a4beb276ce4729943bd5773a795fcc.jpg', NULL, NULL, NULL, NULL, NULL, '45022119890905141X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 609, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 15:03:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (363, '17777276773', '000000000925', '17777276773', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃冠章', 1, '452228197811037515', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8b13205451e14b549e3564e424efab31.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42cb8f49b7c64e4fab53293008b7cceb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西三江县和平乡板六村寨六屯20号', NULL, NULL, NULL, NULL, 10, '452228197811037515', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df74f09d25e54733836e8c3692a19b1a.jpg', NULL, NULL, NULL, NULL, NULL, '452228197811037515', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 736, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:56:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (364, '17376102791', '000000000928', '17376102791', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '白恩玲', 2, '452225197108243326', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f4dd50cd9e1e40c58001d435751f15ae.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5644ad5ed0814f7daf86cf84eca02a5a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225197108243326', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/242b6e8d4161461a9ab253ddcd9c2263.jpg', NULL, NULL, NULL, NULL, NULL, '452225197108243326', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 792, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:56:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (365, '18078240552', '000000000929', '18078240552', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦气梅', 2, '450222197608051645', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a74a3cee35a44c20aed646ce3a4d5f96.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c6ee4fa252a14f8eb849d031af8329de.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县太平镇板料村民委门头屯4号', NULL, NULL, NULL, NULL, 10, '450222197608051645', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87d8b87241d041e2bdeb9699e483c257.jpg', NULL, NULL, NULL, NULL, NULL, '450222197608051645', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 662, 2, 1, '1', '2020-08-17 17:53:20', 1, '2020-09-08 11:52:32', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (366, '13737241575', '000000000930', '13737241575', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒙仕承', 1, '45022119871216391X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0b0ef6288ee5415ea98e0543dba34c6e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4190245bb1f34788ba172b827542ea0d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江县洛满镇露南村', NULL, NULL, NULL, NULL, 10, '45022119871216391X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39db1431ed164e99ae06da000601d70c.jpg', NULL, NULL, NULL, NULL, NULL, '45022119871216391X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 657, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-09-08 11:55:33', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (367, '15978233188', '000000000934', '15978233188', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖艺勇', 1, '452223198910053513', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0b2cc12cb7d4a1986312d3072d87a5d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f5d064bba4b5450aac39003061d44899.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198910053513', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02b6603d46d64401a09ac5a74869675c.jpg', NULL, NULL, NULL, NULL, NULL, '452223198910053513', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:52:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (368, '13633040044', '000000000935', '13633040044', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁明强', 1, '450211197510260837', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/41ca1fe568ac4535b9e57ed356c42bcb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c4d1ed8d7a44e269f1dea2f20141290.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197510260837', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e2ee48e5e02448a8fdc494f0b855297.jpg', NULL, NULL, NULL, NULL, NULL, '450211197510260837', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 727, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:51:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (369, '18776884997', '000000000936', '18776884997', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦开讲', 1, '450221198910052014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/050968ef5ec5413a9f25162180fcf013.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5120faadf114496c89b09f72d6f0453b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县进德镇进德街50号', NULL, NULL, NULL, NULL, 10, '450221198910052014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8779e762e12a4474948c4ba0ad2dff99.JPG', NULL, NULL, NULL, NULL, NULL, '450221198910052014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 683, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-31 15:54:13', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (370, '18178842795', '000000000937', '18178842795', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡善宝', 1, '452524198012253639', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48fcaa8d9cc4418f8502a4ad5194785e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25d9d2484323414facbb6769aa48fc53.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452524198012253639', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6a25e60cd7f4aef86a7e877ad7af042.jpg', NULL, NULL, NULL, NULL, NULL, '452524198012253639', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:49:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (371, '18172209890', '000000000289', '18172209890', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎建源', 1, '450205198808091316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8004d4b2ccc04d94a2fa3c01e4fa9135.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/266922e2bd594b77958e96ab862381ec.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198808091316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/105e1c5fb40b4206885d4822aca40d10.jpg', NULL, NULL, NULL, NULL, NULL, '450205198808091316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 597, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:45:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (372, '13877290800', '000000000123', '13877290800', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张俊', 1, '450203197805301018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ed5b25ee11cc43cf8a4606aa6e1798c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f7cf2243baf4f0c80b8f97fbbc9b7fe.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区箭盘路23号2栋1单元202室', NULL, NULL, NULL, NULL, 10, '450203197805301018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/455520dfb9b4403fbb6741253339c9cb.jpg', NULL, NULL, NULL, NULL, NULL, '450203197805301018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 557, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-09-08 11:36:52', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (373, '13557909205', '000000000938', '13557909205', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦立斌', 1, '450204197809211411', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d03685fdadd24ce6a87abfac39bd180f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/15c04533ef0941959dfb57f665d793f4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区潭中西路15号15栋3单元402室', NULL, NULL, NULL, NULL, 10, '450204197809211411', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f58a80aa8d24834b43f09d4a176f4ea.jpg', NULL, NULL, NULL, NULL, NULL, '450204197809211411', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 712, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:42:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (374, '13977218105', '000000000939', '13977218105', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘华欢', 1, '450204197911151013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9f437f298b8430c87d59114ca9f419a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7222fca698e54a9d89cd74cffbf11c3c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区革新路六区21栋3单元301室', NULL, NULL, NULL, NULL, 10, '450204197911151013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fade49da2a6742bfa146bf7f28059371.jpg', NULL, NULL, NULL, NULL, NULL, '450204197911151013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 616, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:41:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (375, '17877889321', '000000000109', '17877889321', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杜杰', 1, '450222199112070358', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9914df2e12884df5b52cabede7caabfd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c614919922b049689df9e25bd925d3c4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199112070358', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/faa63f969280408abb348b63832d6d29.jpg', NULL, NULL, NULL, NULL, NULL, '450222199112070358', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 520, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:40:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (376, '13317821221', '000000000087', '13317821221', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡游华', 1, '450221198806254919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3e61c302db164ab789fd2200b5546a2c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f1705fd6701245428d98634da79e1a72.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198806254919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb02158c053a4273865544bdd895875b.jpg', NULL, NULL, NULL, NULL, NULL, '450221198806254919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 517, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:40:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (377, '17376454660', '000000000080', '17376454660', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张会飞', 1, '450222198010020312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3db268acc53b460893ea0044daf5ead7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b78f7fe8a2ce48bda9e599680b4b08f9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198010020312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3bd4fa92c0414645a4c1271421bd8350.jpg', NULL, NULL, NULL, NULL, NULL, '450222198010020312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 510, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:36:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (378, '15077271242', '000000000076', '15077271242', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '江斌', 1, '450221197312200617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/24f1a9cc71d7405d987331f55453f631.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7fe6bee633d417bba70fd4c9bb85559.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197312200617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25c1f044a342469287bc9cd0d4145057.jpg', NULL, NULL, NULL, NULL, NULL, '450221197312200617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 563, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:35:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (379, '15677212881', '000000000136', '15677212881', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘林', 1, '452227197909133015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b025bfe3df524a55bdd8501a9d0ba819.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8b14935b665480eb46d7a2fd6b168d2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197909133015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/644f5de5f8e44d6ca5da90a7d5740ad8.jpg', NULL, NULL, NULL, NULL, NULL, '452227197909133015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 511, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:34:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (380, '13317886666', '000000000089', '13317886666', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '沈超', 1, '450202197808050019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/13ab22a868cb4fef83ee9d8071ff660b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4580517c0d99485aae5b409cb83f0eee.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区谷埠路27号', NULL, NULL, NULL, NULL, 10, '450202197808050019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e98a95c06c74a3f9821b3c3da0cfc57.jpg', NULL, NULL, NULL, NULL, NULL, '450202197808050019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 549, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:34:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (381, '18078200557', '000000000081', '18078200557', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁林波', 1, '450222198510082114', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b77a8894057c4baf91e573b3f4bfede6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9eb326e4911046708d1d85342b9aaae7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198510082114', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/91ffea5254664712afa4cd223836115c.jpg', NULL, NULL, NULL, NULL, NULL, '450222198510082114', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 576, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:33:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (382, '13878203288', '000000000940', '13878203288', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃雯', 2, '452227197306130085', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5636ca911bd4de1bbbf503c6d7c79f9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc2b643dc7c7400cb326f621b80b61b4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197306130085', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1ba28d6c69c9433e80e3d6c71efb6272.jpg', NULL, NULL, NULL, NULL, NULL, '452227197306130085', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:32:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (383, '18376287274', '000000000166', '18376287274', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邓冬明', 1, '450222198411171357', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/93593bcd056b4df5b2c330fc1c4258d2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4214e5b646bc45ffb4809af6ab356283.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198411171357', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/992d5daad6f24dc1a51ecfa6a18c869a.jpg', NULL, NULL, NULL, NULL, NULL, '450222198411171357', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 560, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:31:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (384, '18648876391', '000000000941', '18648876391', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴惠明', 1, '450222197304104015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fce51836d9c44145b68c209afb6c977d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/400ddffbf9da409cb780f6dac6aa2063.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197304104015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d961adf5136424cb6093941430c4382.jpg', NULL, NULL, NULL, NULL, NULL, '450222197304104015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:31:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (385, '18276813710', '000000000931', '18276813710', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝江根', 1, '452201198110010031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/995777e24f6d4dfdaba7172986684cdb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b13e9533536740e7839d9877cdd0bba0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452201198110010031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a16053ca6ece4a0d9aa2f8bfeef0efc7.jpg', NULL, NULL, NULL, NULL, NULL, '452201198110010031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 511, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:30:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (386, '13978266963', '000000000942', '13978266963', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '翁友平', 1, '452227197712201213', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5cc50c4e7f354f1f8d667fbc45aae92c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff92c17b2c584333afc05f388ffc549b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197712201213', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2382424f5eee4ce99dd9c3442a5d51bd.jpg', NULL, NULL, NULL, NULL, NULL, '452227197712201213', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:29:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (387, '15078508001', '000000000943', '15078508001', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾杰', 1, '450222198906160318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7fbf68bd1e0c4767909fe0cb9e06b05a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d741b4dbc9964afc87b1c7b94d03d3f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198906160318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7040a8915644e4297e8501d19151112.jpg', NULL, NULL, NULL, NULL, NULL, '450222198906160318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:24:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (388, '18276005437', '000000000231', '18276005437', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈勋胜', 1, '450922198802261999', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/21694660f0e049b68fe97a7afc079847.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c56078d3fb043f38640bab4a3804d0a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450922198802261999', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5b19dd87b644c7a9d4a627162537eb9.jpg', NULL, NULL, NULL, NULL, NULL, '450922198802261999', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:24:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (389, '13877523342', '000000000075', '13877523342', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏荣新', 1, '450922198808022550', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8df6a4cae5264246ba4a0ec3a95b02a5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3b10aa066e441d0ba67e4b24c564c26.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450922198808022550', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9652ae04321a49259d6a32812136cb5b.jpg', NULL, NULL, NULL, NULL, NULL, '450922198808022550', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:23:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (390, '13737280999', '000000000125', '13737280999', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张令喜', 1, '450222197403070316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82348e5de8b44fdfa649cc313eec9f3b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c90a77916bd4e93ad2e461709a57d51.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航银路37号1栋6单元462室', NULL, NULL, NULL, NULL, 10, '450222197403070316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f2c1521fdc5744a79d17b2e6cd3e561c.jpg', NULL, NULL, NULL, NULL, NULL, '450222197403070316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 551, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-09-04 18:23:37', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (391, '18076710265', '000000000944', '18076710265', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨平', 1, '450802197408182410', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/00cd8b2006c34ad48bc0a489808bdf6e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb3912156ccc425c9fe04bf1ed59d54a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450802197408182410', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f8f03c86d1424c04bf183d5208dabb9d.jpg', NULL, NULL, NULL, NULL, NULL, '450802197408182410', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 624, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:21:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (392, '13517809125', '000000000945', '13517809125', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李庆莲', 1, '450203197007030719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/155b814b11974abca51221148f4a8ec4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5489c0be0dc44d2aa6031d45d5c7d0e1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197007030719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fcc415b7f7cb4d44b3b17aea69affc49.jpg', NULL, NULL, NULL, NULL, NULL, '450203197007030719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:20:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (393, '13977230602', '000000000073', '13977230602', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒋维峻', 1, '450203197206170319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e418bb3753a4469b890ab331538974ca.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c3d14fa2ffe4217888879884d328c03.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197206170319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1b424e0943f1490c8a3d8adc6e8717d7.jpg', NULL, NULL, NULL, NULL, NULL, '450203197206170319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 558, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:20:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (394, '14797723928', '000000000155', '14797723928', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆杰', 1, '450105197907040039', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ca19b1ced6994204b9f151e02f12c044.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/494d824603624363ae8d75ddd33a4c54.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区海关路11号18栋3单元502房', NULL, NULL, NULL, NULL, 10, '450105197907040039', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a1c3765db3ed4d8ca3ebe080998513ae.jpg', NULL, NULL, NULL, NULL, NULL, '450105197907040039', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 573, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:19:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (395, '15877265658', '000000000228', '15877265658', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦克', 1, '450221198501046019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90813f4992b14507a2f5760baa3d92e3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8bba9f4b12004840becb71ca52cbc2ff.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县流山镇流塘村大桥屯42号', NULL, NULL, NULL, NULL, 10, '450221198501046019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7139589512b44740ba11d71201414777.jpg', NULL, NULL, NULL, NULL, NULL, '450221198501046019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 539, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:18:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (396, '18277213789', '000000000180', '18277213789', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '俞希飞', 1, '45222319730902301X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7429ec7c254e474c9e2fce7a79f82524.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c9b38a246c04074a2e580303fccfebb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222319730902301X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d97533e910e4856bc3dcfe8a91dac15.jpg', NULL, NULL, NULL, NULL, NULL, '45222319730902301X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:20', 1, '2020-08-24 14:17:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (397, '13457265122', '000000000056', '13457265122', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '江创耀', 1, '440527197611184816', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/67e07613921744af886f8e1b913e99fb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a949a9145c3e41139cacb6db61f9a86b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '440527197611184816', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3949493424e34c3f82a063d4013af972.jpg', NULL, NULL, NULL, NULL, NULL, '440527197611184816', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 540, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:16:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (398, '13788444008', '000000000093', '13788444008', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈小弟', 1, '450203198412240714', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c21243d4b75d4fb7b2478482785726bb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3da2036a501c42b38618b68c5b5e99cb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198412240714', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0e36cae978d41d2952e292b23f2328e.jpg', NULL, NULL, NULL, NULL, NULL, '450203198412240714', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:16:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (399, '13617722744', '000000000949', '13617722744', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '唐春荣', 1, '450203196809200017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da2af5edf4f84f43806399d22c2a9835.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce3adc87123b404a86c8ca69c4e21c89.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区胜利小区7号', NULL, NULL, NULL, NULL, 10, '450203196809200017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c369de41e8e34050be6fdb5510f8e3f2.jpg', NULL, NULL, NULL, NULL, NULL, '450203196809200017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 633, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:15:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (400, '15507728252', '000000000340', '15507728252', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊智超', 1, '450204198908160335', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e081ea9c33c74a78af26bc11149c3a7b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/41aa2a27a8ea497aa111c31eefe1a87e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区飞鹅路南一巷21号', NULL, NULL, NULL, NULL, 10, '450204198908160335', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dc5a90d824c24ea0a62f84ede7263889.jpg', NULL, NULL, NULL, NULL, NULL, '450204198908160335', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 786, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:14:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (401, '13877297682', '000000000950', '13877297682', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄其强', 1, '452524196610012617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4b323ba702e54360a99ed18b6a59e805.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efdd55267b2141c6bccd9863ac613876.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452524196610012617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99b95e412e264b8dadc8e4b4a144bac2.jpg', NULL, NULL, NULL, NULL, NULL, '452524196610012617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:13:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (402, '15577019819', '000000000838', '15577019819', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢德昆', 1, '45222619830511513X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bea47be3e2a543ffbf69158cc0df10f0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2f2e4f021cde4d58b14c0246aa34db2f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222619830511513X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d502971ea22a4a319527b258d312f565.jpg', NULL, NULL, NULL, NULL, NULL, '45222619830511513', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-27 15:08:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (403, '13297722418', '000000000032', '13297722418', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦顺开', 1, '45222419640709303X', 1, 0, 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/7c31c448f1ce4067b70daf03fc3ae171.jpg', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/9de52978aad94643b79d4039e8b70962.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区春苑路西一巷', NULL, NULL, NULL, NULL, 10, '45222419640709303X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2bef6d2c9fd24d17a87fd994bfe14028.jpg', NULL, NULL, NULL, NULL, NULL, '45222419640709303X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 569, 2, 1, '1', '2020-08-17 17:53:21', 1, '2020-09-08 12:19:00', 39, 2, 1, 9.60, NULL, NULL, 9.60, 9.60, NULL);
+INSERT INTO `t_driver` VALUES (404, '18577611959', '000000000951', '18577611959', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁海清', 1, '450221197506052915', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/66c58bd8f7994daa83db5d91bfa3cee0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1ee81fd1162c42b1bc8be9cf66720289.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197506052915', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ee17054d55794360be050dd4551130b1.jpg', NULL, NULL, NULL, NULL, NULL, '450221197506052915', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:09:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (405, '15877237329', '000000000952', '15877237329', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦晓静', 1, '450221196806284916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a7cadfcb0c94c5eb26f3c8620e9e858.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/73d008deacc3455691e68f80e60d97a3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196806284916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fccb59ed82c544deb1a2af5bc9a9f9df.jpg', NULL, NULL, NULL, NULL, NULL, '450221196806284916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:09:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (406, '13978032332', '000000000953', '13978032332', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张光雄', 1, '450222197410010311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a1d090fab5dc48179be85a0da4f3b0c3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d2838cc276014085957db38ba3289df7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197410010311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4b5db148a81c455ebaadd4f0d684e527.jpg', NULL, NULL, NULL, NULL, NULL, '450222197410010311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 655, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:08:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (407, '15077273110', '000000000955', '15077273110', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦林', 1, '452226198908085419', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7f1cc413f9f242309fcca2c7eacc8aa5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dafbb82b83a4ba7b26332abb7a18342.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198908085419', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c388ccdd40c49a4ab4fc2e32f05639f.jpg', NULL, NULL, NULL, NULL, NULL, '452226198908085419', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 790, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:07:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (408, '13558323302', '000000000956', '13558323302', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄永实', 1, '450203197203271018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dff83193db374a9e8cd7e78195340f8b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a591a0d0c014871a3cf49d108257a6a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197203271018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0de626cd26b4451d85c01b873cdd4a41.jpg', NULL, NULL, NULL, NULL, NULL, '450203197203271018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:06:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (409, '13317728341', '000000000051', '13317728341', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎雄', 1, '45020219690526003X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a995e35b2003436287a632a58109e1b9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/08bfed0373e74f899af234016e439a32.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区东台路东四巷147号', NULL, NULL, NULL, NULL, 10, '45020219690526003X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f24a7e7fe8024e528ec5c9d62b5217cc.jpg', NULL, NULL, NULL, NULL, NULL, '45020219690526003X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 524, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:05:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (410, '18897829788', '000000000014', '18897829788', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '招琦', 1, '450205197607050038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/866fca607c78490da339de0de4a9e29b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1a45ea534a34853af501235f0fadd06.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区三中路199号1单元701室', NULL, NULL, NULL, NULL, 10, '450205197607050038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/158b65be90524e5cb2cc104e32538e3f.jpg', NULL, NULL, NULL, NULL, NULL, '450205197607050038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 524, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:05:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (411, '18077224536', '000000000181', '18077224536', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈威', 1, '450205197206250717', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b5de6d0a4a9443428facc3490e113838.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82cc4f84e36a42bb89b1275c61992031.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197206250717', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b14c01879d1e49afb690727bd1f0e99c.jpg', NULL, NULL, NULL, NULL, NULL, '450205197206250717', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 513, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:04:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (412, '15289639117', '000000000192', '15289639117', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦进师', 1, '450221197902082454', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85c14b8a6e154edca4365a38849a868c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/549aea140d6841f1a07c8f32a7820462.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江县百朋镇百诺村拉肯屯', NULL, NULL, NULL, NULL, 10, '450221197902082454', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/525f4d584356460ab48d8a0548db4bd3.jpg', NULL, NULL, NULL, NULL, NULL, '450221197902082454', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 525, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:03:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (413, '13978023746', '000000000008', '13978023746', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁荣景', 1, '51032219640208203X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6509274453784ff291a366303e32b166.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9d6f52ad15e41afa8e40bd85c921141.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区西江路24号之二飞凤小苑5栋2单元202室', NULL, NULL, NULL, NULL, 10, '51032219640208203X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da4d0d9b294044ce9c5619c8b5436a50.jpg', NULL, NULL, NULL, NULL, NULL, '51032219640208203X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 555, 2, 1, '1', '2020-08-17 17:53:21', 1, '2020-09-05 17:26:05', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (414, '13078071078', '000000000216', '13078071078', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘毛生', 1, '430426196309092875', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3083862c3d45499590e67c2bdbc4fd00.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02ed519fe304402cbc38f74b98ff7ba1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '430426196309092875', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dfdc06929e8433789b684c61bf66aff.jpg', NULL, NULL, NULL, NULL, NULL, '430426196309092875', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:01:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (415, '18775135167', '000000000019', '18775135167', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '葛意意', 1, '45021119700817081X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59107757290e492d9d8f4b913744dffa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3a56ed3ea224b228156caad0cb1c246.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区长塘镇黄土村屯八队38号', NULL, NULL, NULL, NULL, 10, '45021119700817081X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fae09d8d2541413eb662bbe312108078.jpg', NULL, NULL, NULL, NULL, NULL, '45021119700817081X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 519, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-09-05 13:20:58', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (416, '13457222482', '000000000178', '13457222482', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦高云', 1, '450205196604241010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dc3dfc27c6b540428e601a68e5ae61f5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f9a2381f5a54114a2d6c94382d19051.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196604241010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd33fb41a62041c4a9996fb54d6ac544.jpg', NULL, NULL, NULL, NULL, NULL, '450205196604241010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 14:00:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (417, '15607729801', '000000000193', '15607729801', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄新杰', 1, '450204197501130615', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/79ce102cd57b404796822f76bebd1a95.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3087573f36414fe5b60bc183f5d20be4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197501130615', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78ab8210c11a481a923988d0b88a0c81.jpg', NULL, NULL, NULL, NULL, NULL, '450204197501130615', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:58:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (418, '15278889858', '000000000252', '15278889858', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄敏', 1, '45020419730322061X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0bfdfdcd255c4d1ab5eb933b4f2a2f47.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/227e8bbd443f4233b98aac1d47addafb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020419730322061X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd1ec1411a214ef3b1d2c338e7904bdd.jpg', NULL, NULL, NULL, NULL, NULL, '45020419730322061X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 675, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:58:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (419, '13977277844', '000000000703', '13977277844', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘海源', 1, '452226197708014216', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0adac14b92a46358637a7266194ebea.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7bc14832ade34a75beea727321969a8a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197708014216', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac6b2d2db78d4db09124f31af7326b47.jpg', NULL, NULL, NULL, NULL, NULL, '452226197708014216', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 584, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:54:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (420, '15278837898', '000000000296', '15278837898', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦安定', 1, '450221198302285738', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5bc3a1fe23f941ec9e70b294e7d1f2c4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/219607d6f7cb4ee08b73aa07e6726114.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里高镇果郎村三斗屯15号', NULL, NULL, NULL, NULL, 10, '450221198302285738', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f86fb84b9d942caa2c16d101f5134b4.jpg', NULL, NULL, NULL, NULL, NULL, '450221198302285738', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 589, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:53:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (421, '15506771231', '000000000914', '15506771231', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈鼎', 1, '450221197811140014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc4887cae9724e9bbd963f425a664456.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff4e70fa2b8745f8823c27e6a4ba0026.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县拉堡镇东二街83号', NULL, NULL, NULL, NULL, 10, '450221197811140014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/21960cfd428a4410a2f7dbf968da8bbd.jpg', NULL, NULL, NULL, NULL, NULL, '450221197811140014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 589, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:52:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (422, '15878232570', '000000000010', '15878232570', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗宋坚', 1, '452226198904014517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/43cd259a828d499e8c68086a4e948a1d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f1cb4ee7cf0841f28f23238bf8c7850f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇基隆综合区门头路105号', NULL, NULL, NULL, NULL, 10, '452226198904014517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/104499dfb8654091932b60b4e74a4271.jpg', NULL, NULL, NULL, NULL, NULL, '452226198904014517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 527, 2, 1, '1', '2020-08-17 17:53:21', 1, '2020-09-04 16:44:34', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (423, '15077217107', '000000000011', '15077217107', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗振决', 1, '452226199003034515', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/168db624624a4e0d9eb65e4044cfbdd7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d8dc642ebc945b08a22550499121fb3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226199003034515', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/114d44e185634b61a75c8b52da24f638.jpg', NULL, NULL, NULL, NULL, NULL, '452226199003034515', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 527, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:50:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (424, '13597222746', '000000000182', '13597222746', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦记', 1, '450221198702286019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f15c05d77d274f4db80bd6d70d41db37.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d5da3f3c0ee7475ca9bd0680560ce491.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县流山镇流塘村大桥屯42号', NULL, NULL, NULL, NULL, 10, '450221198702286019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/411840435f3347959fae254fe363ac99.jpg', NULL, NULL, NULL, NULL, NULL, '450221198702286019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 564, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:49:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (425, '13299605711', '000000000020', '13299605711', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗志恒', 1, '452502197509042033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6a8b47e54f84ae8a49f7281a4eae3a6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4fb285a8fd9d46f485bcd61d055e4a91.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452502197509042033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/134b185bb070410ebe96c155d4c30347.jpg', NULL, NULL, NULL, NULL, NULL, '452502197509042033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 522, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:48:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (426, '13977286035', '000000000108', '13977286035', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈建忠', 1, '350583197410236316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b777504b5c894236b1a8e8e1341ecf68.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c5bdaa3819d4302aafd2af7a5cfb044.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '350583197410236316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e13315ecbbd94176bf871b50776dfde7.jpg', NULL, NULL, NULL, NULL, NULL, '350583197410236316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 522, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:47:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (427, '13558328660', '000000000206', '13558328660', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘智洁', 1, '452229198904061814', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5dc2f472b6594aee9d015cee21f50d3e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4e4fcbbd0f39467b9c70c250e15b596e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西融水苗族自治县四荣乡江谭村上屯55号', NULL, NULL, NULL, NULL, 10, '452229198904061814', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2703e063e39f4023843f0e59fdc914d2.jpg', NULL, NULL, NULL, NULL, NULL, '452229198904061814', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 592, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:46:53', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (428, '13457176115', '000000000063', '13457176115', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆其龙', 1, '452123198610134316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6233fec0f1a74aeaa959b849fe005122.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac08838646534aee97026140bbb07562.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇建北一街163号', NULL, NULL, NULL, NULL, 10, '452123198610134316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f4539da05b1493da6fd6cddccc3b61f.jpg', NULL, NULL, NULL, NULL, NULL, '452123198610134316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 564, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:45:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (429, '13978220331', '000000000201', '13978220331', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆庆生', 1, '450205197310200437', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34aa4f46e1f44ecaaf0ec64957faa26e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7359ba7ba72a4cd3af89ffd1b7e9133d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197310200437', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3853202ade9946f3bd043100bde37038.jpg', NULL, NULL, NULL, NULL, NULL, '450205197310200437', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:45:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (430, '13597206798', '000000000276', '13597206798', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁历新', 2, '450221197510010048', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0b791c4352c44496a6be38bed085b8a0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9ea9c14fc1e14f7a83706024e4076942.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197510010048', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2361658a4a2a4f1798f1d3034db3eb6f.jpg', NULL, NULL, NULL, NULL, NULL, '450221197510010048', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:44:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (431, '13978064698', '000000000023', '13978064698', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '沈忠华', 1, '450204197701081416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/47259cfe31ae44bfb826b238fe4abed0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/03687a4420dc40efbc0aa37d65bea5c4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区柳石路57号9栋2单元502室', NULL, NULL, NULL, NULL, 10, '450204197701081416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f663cc5b07a14e0487d1457ccd62670c.jpg', NULL, NULL, NULL, NULL, NULL, '450204197701081416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 532, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:43:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (432, '18178209090', '000000000034', '18178209090', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘柳雄', 1, '450221198306012059', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/64d340c4809d4211a56217b7cfcf9049.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efd784d108454f7cb2b3c91a588c6ac7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198306012059', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c0b882954c44faeb9eeb38439bbf9c2.jpg', NULL, NULL, NULL, NULL, NULL, '450221198306012059', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 579, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 13:42:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (433, '18178206629', '000000000035', '18178206629', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾丽芳', 1, '450221198512151922', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f6ca01e908944d2c980372a077be8498.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f00138f6b4144e57866f309a195522a6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县进德镇三千村回龙屯80号', NULL, NULL, NULL, NULL, 10, '450221198512151922', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c5e1c94896041669b7742c20940da51.jpg', NULL, NULL, NULL, NULL, NULL, '450221198512151922', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 579, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 12:03:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (434, '18276859427', '000000000151', '18276859427', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾令春', 1, '450221198701241919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b63deea5339d462394abf043226ae5fa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5e05e80390cc4f4bbf5d69d075ca7f0e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县进德镇三千村回龙屯80号', NULL, NULL, NULL, NULL, 10, '450221198701241919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/aab039421b4244e296f0bdf38e734436.jpg', NULL, NULL, NULL, NULL, NULL, '450221198701241919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 579, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 12:02:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (435, '13597029266', '000000000135', '13597029266', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄志德', 1, '452528198102165910', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e69211cca684ef1b58bbfe9efd92c3e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ec37e18122544acb0b1f372398d6100.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航三路28号D区1栋1单元402室', NULL, NULL, NULL, NULL, 10, '452528198102165910', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a2344688c0ab4b4d8b8f006925df5789.jpg', NULL, NULL, NULL, NULL, NULL, '452528198102165910', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 742, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 12:01:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (436, '13667808982', '000000000137', '13667808982', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁帅', 1, '450221198510082951', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f99c4c964234835ab7d8b738d7f6149.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f8d651f907545d08d9df5d830051fce.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县成团镇龙山村', NULL, NULL, NULL, NULL, 10, '450221198510082951', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d518b9ca106d4173927df6dbe506658f.jpg', NULL, NULL, NULL, NULL, NULL, '450221198510082951', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 742, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 12:00:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (437, '13877232094', '000000000169', '13877232094', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄英隆', 1, '452723198909150858', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c447b042994047de9cab38f4bc880c55.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad8d1d636fbc44ab9ea98c90db2a99e5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723198909150858', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/24abcd31b3f3445f96b1eff577364199.jpg', NULL, NULL, NULL, NULL, NULL, '452723198909150858', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:59:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (438, '13978041116', '000000000239', '13978041116', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁荔华', 2, '452331197811250061', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f9f3ce8e07774386b36d3f5fb9707062.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/66fcc65270b449fab1bc02758a3d9619.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市鱼峰区古亭山大道98号冠亚国际星城景园12栋', NULL, NULL, NULL, NULL, 10, '452331197811250061', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/db4d294e6bba44639bac77a6d6086186.jpg', NULL, NULL, NULL, NULL, NULL, '452331197811250061', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 506, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:58:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (439, '13481900448', '000000000029', '13481900448', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '阳宗辰', 1, '45233119730820093X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90b5ff3cc4d84fb9b855b00764933a3b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8fbd750be9394924954bd5567823ab32.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市鱼峰区古亭山大道98号冠亚国际星城景园12栋', NULL, NULL, NULL, NULL, 10, '45233119730820093X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1c66595e598540dfbd2cf570aa19315b.jpg', NULL, NULL, NULL, NULL, NULL, '45233119730820093X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 506, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:57:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (440, '18577269816', '000000000946', '18577269816', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗信付', 1, '452231197908212517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/68ddce37af7b4e8ebfaa1dcc05cc8693.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/64023be385574fa3a3375a9738986b7f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231197908212517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04cbacb4f5f44782a4ca4223fd49aeaf.jpg', NULL, NULL, NULL, NULL, NULL, '452231197908212517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 502, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:56:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (441, '18378211598', '000000000958', '18378211598', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈武全', 1, '452224198012211010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c698af537cf42689983e63ea6b919f3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d8063b78ea1840ff9c57ca67ebada953.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224198012211010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efa165d626ad4157b8b4ef4e0cac8e49.jpg', NULL, NULL, NULL, NULL, NULL, '452224198012211010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 495, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:53:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (442, '18178280026', '000000000258', '18178280026', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦可健', 1, '452723198311172016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eed9135f19684db18dcf717ee6ede5fc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad2605513a354992a0badd245ed1a682.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723198311172016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f390d5e0817646f9bbeab866b20ee006.jpg', NULL, NULL, NULL, NULL, NULL, '452723198311172016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 515, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:52:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (443, '15677241883', '000000000701', '15677241883', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张庆光', 1, '450204197701171032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bc88e8722a484cec8afc1eb77afa024b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afc085525ef44001ba4966ad57840ddd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197701171032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f36a771f4da745f399119d5cdef4f5a5.jpg', NULL, NULL, NULL, NULL, NULL, '450204197701171032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 515, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:52:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (444, '18176303112', '000000000212', '18176303112', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦森', 1, '452231199307282033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1b03a50894c7414ebb567360de03e355.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/10674bb53e274890b4e5a7660e012b12.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231199307282033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ea57371926549cd8513f16c9ca8fc80.jpg', NULL, NULL, NULL, NULL, NULL, '452231199307282033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 618, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:51:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (445, '17772003267', '000000000167', '17772003267', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱壬峰', 1, '450222198202161312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/65b0c07ae3bd4951a887dd98aea10f07.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c40a082874b0453faf77b2bd9884b6b2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198202161312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ff2e60cef9645fc92a665a2b6fd0505.jpg', NULL, NULL, NULL, NULL, NULL, '450222198202161312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:50:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (446, '19807725800', '000000000954', '19807725800', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁壹东', 1, '452229198708082634', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b733c6ec54b14fbcadea201fefacd293.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ce327b977a6443dad9db1cedbc3cdd6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198708082634', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/81f17955cc534030a4990588374dc54c.jpg', NULL, NULL, NULL, NULL, NULL, '452229198708082634', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:49:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (447, '13307724987', '000000000111', '13307724987', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾勇', 1, '452223198207032518', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96bbedc0138e4756ad39c256ee54a48f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d347be5b708e473b865f7456f4f5cd09.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198207032518', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a4905e7d68d8409cac6ee654df70c37b.jpg', NULL, NULL, NULL, NULL, NULL, '452223198207032518', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 550, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:44:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (448, '15877279237', '000000000130', '15877279237', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨丽全', 1, '450924198606195333', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d8a2f4ca65b42a48f4d90850c9e025b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c6e3ca122b2645348a9f7f2feb32885b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450924198606195333', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9219894063e946f490ce4c1d010104b7.jpg', NULL, NULL, NULL, NULL, NULL, '450924198606195333', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 500, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:36:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (449, '15077202758', '000000000295', '15077202758', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝关岛', 1, '450221198202073412', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a9812973629b4621b1d664ebb95b0bac.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/86761672223f4c42a7a6349bed38e794.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198202073412', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d95f0815072e438d846c1794d40d6a31.jpg', NULL, NULL, NULL, NULL, NULL, '450221198202073412', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:36:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (450, '13977227373', '000000000112', '13977227373', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙捷', 1, '450202197710110079', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f795f1f409f459d8f38ebb13ae65bce.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c698bab3a0241c28088e3cf41591fb4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区滨江东路25栋1单元301室', NULL, NULL, NULL, NULL, 10, '450202197710110079', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d02d8491dd3403ab5c286b8592e2ab0.jpg', NULL, NULL, NULL, NULL, NULL, '450202197710110079', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 567, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:34:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (451, '17776326151', '000000000138', '17776326151', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蔡钊喆', 1, '450203197907090717', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d14fd631ac1e49b0bf949b6ffc19f88d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/09811e60854e4400aa028e1cc8b18f9a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区箭盘路36号2栋6室', NULL, NULL, NULL, NULL, 10, '450203197907090717', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/409a4d125ddc4d6ea55537fd4bc13128.jpg', NULL, NULL, NULL, NULL, NULL, '450203197907090717', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 500, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:33:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (452, '13617729083', '000000000275', '13617729083', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '石海山', 1, '452229197703150613', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/71d3d7cb90f44f808304ba6d7b317ffe.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26eb6fd191ac4d1e80aa0bbfa4d1a85b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229197703150613', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a54e80e3a5247fe9ea449a1b3534dbb.jpg', NULL, NULL, NULL, NULL, NULL, '452229197703150613', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 500, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:32:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (453, '13005930363', '000000000036', '13005930363', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄健龙', 1, '440224197211091199', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/97cc650c5b674ee6ab3d6c1db2209849.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ceae1bb0929d401da94333545a3e6928.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '440224197211091199', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e1268aabe654a2d96edbb65b7a60b73.jpg', NULL, NULL, NULL, NULL, NULL, '440224197211091199', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:31:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (454, '13377020985', '000000000037', '13377020985', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄家晓', 1, '450205197707050430', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96a47803c6954113b2bf93c660b99c6d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4489bfb4cf2c4ba5a223ddff4cd2bca9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197707050430', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4fe9266db89c4c91a86abc400e5283d1.jpg', NULL, NULL, NULL, NULL, NULL, '450205197707050430', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:30:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (455, '13707728618', '000000000067', '13707728618', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '钟金源', 1, '450204198907270313', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/84f226eb9f424724b56785213b613dce.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/819eab45645f4f47b62d35c442eb628c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区飞蛾路188号3栋2单元301室', NULL, NULL, NULL, NULL, 10, '450204198907270313', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f073ad5fa6fc4351b99b82a77a950d36.jpg', NULL, NULL, NULL, NULL, NULL, '450204198907270313', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 499, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-09-05 12:54:27', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (456, '13657804520', '000000000868', '13657804520', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄慧仙', 1, '450203197902110010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c82275153cb4be396eb1996881e4bf8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a19bbfef9134f76a9e16e3ad9c6fc8b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197902110010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0560f05ef04446598d24d0ec107663c8.jpg', NULL, NULL, NULL, NULL, NULL, '450203197902110010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 499, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:28:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (457, '13977233056', '000000000049', '13977233056', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '余森彰', 1, '452224197709221011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5689bc7813424a049b38dff15ac0c879.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d63faaa4ae7f4903ab36a8f09c1414c8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航五路2号12栋402室', NULL, NULL, NULL, NULL, 10, '452224197709221011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd0cf3da03f94dd993987dd4a0265ceb.jpg', NULL, NULL, NULL, NULL, NULL, '452224197709221011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 498, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:27:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (458, '13481268480', '000000000884', '13481268480', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃自卫', 1, '452223198511073058', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01456d820c5046bbbb42d8fdde94a1d2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0635742c9a02494ca8666af3348bb7ae.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198511073058', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f906cfb42274b0aba286e85facaf609.jpg', NULL, NULL, NULL, NULL, NULL, '452223198511073058', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:26:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (459, '13617721677', '000000000922', '13617721677', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李振蒙', 1, '452226197308156637', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/177ce70160124b5b89c095d7461b8299.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9477cd100eee44ff9a0a2be8c20b2b72.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区竹鹅村凉水屯21号之二', NULL, NULL, NULL, NULL, 10, '452226197308156637', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/271e45f8596e42fab1708dcb0d7957a9.jpg', NULL, NULL, NULL, NULL, NULL, '452226197308156637', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 498, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:20:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (460, '15077219556', '000000000957', '15077219556', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄先明', 1, '450222198804280319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/886c46c0cac243e7aac7589ea873c586.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a55a3a3fb3240e7bdd5a95e623b53c4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198804280319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fed38163543c4f7ba265b62088e20131.jpg', NULL, NULL, NULL, NULL, NULL, '450222198804280319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:19:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (461, '15277283384', '000000000126', '15277283384', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱猛', 1, '450211197709011651', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/03162e94665f40248d276da1281f12e4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a98f7883bb154f6abb5b34436c4a1ed0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197709011651', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f3faaf5920ef4aa190fc16af042ff816.jpg', NULL, NULL, NULL, NULL, NULL, '450211197709011651', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 514, 2, 2, '1', '2020-08-17 17:53:21', 1, '2020-08-24 11:09:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (462, '18078206913', '000000000161', '18078206913', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '劳江龙', 1, '452231197501170511', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/29ba0997e9684b2c935ca9419af7aa32.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dba395874c6140529fed79e3a953687d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231197501170511', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4c6a0309500c46ce8ce5057cebae0349.jpg', NULL, NULL, NULL, NULL, NULL, '452231197501170511', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 514, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 11:06:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (463, '17840558143', '000000000107', '17840558143', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄继维', 1, '452226197104055439', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/644e0010e6e04822934829610b4358f7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/464761c061ab4e31afeef0d1ea2fec4f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197104055439', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1506dfd3a6a44099986232d22bbebeff.jpg', NULL, NULL, NULL, NULL, NULL, '452226197104055439', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 11:05:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (464, '13377201633', '000000000959', '13377201633', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃庆仕', 1, '450221197912182432', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7b5ff8db477b48978579cd4407e314d4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0f5c5d71ffd14d6faa0eadaaf3f83bff.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197912182432', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d5292f497264417ba54be28d6cf3d791.jpg', NULL, NULL, NULL, NULL, NULL, '450221197912182432', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 525, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 11:03:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (465, '18978030338', '000000000028', '18978030338', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王维', 1, '450881198609202393', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3abe231d2f5c4c509165e717aa431fb6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/29f9303191144a0d94d46dfe744ca64d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区龙泉路2号鸿泰名庭16栋', NULL, NULL, NULL, NULL, 10, '450881198609202393', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99fd87497c64490a98514b07e25da130.jpg', NULL, NULL, NULL, NULL, NULL, '450881198609202393', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 535, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 11:02:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (466, '15347797936', '000000000152', '15347797936', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王晖', 1, '450881198304102498', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0f560a08155348de838f8095d0a98741.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/999c61b6e5da45409a26c491b092ee5c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450881198304102498', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3a2892de7cc941a4bcaccd530378c840.jpg', NULL, NULL, NULL, NULL, NULL, '450881198304102498', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 535, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:58:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (467, '13677801389', '000000000040', '13677801389', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝忠化', 1, '450221196312074935', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3aa8076f39344a5a910f41d68e4d3236.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6fdb743237d94274bec9a0dffbd0dac4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县土博镇屯兵村上社屯', NULL, NULL, NULL, NULL, 10, '450221196312074935', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/18b6fe3cbe0441fdb58f5c98ae0ba11c.jpg', NULL, NULL, NULL, NULL, NULL, '450221196312074935', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 512, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:57:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (468, '18377259163', '000000000236', '18377259163', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦荣', 1, '45022119930202441X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/829cf68d19b5436ebe6db4c5552c1fb0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/542a7639163044568f9bf00c4c62356f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县三都镇白见村里旺屯31号', NULL, NULL, NULL, NULL, 10, '45022119930202441X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1228ce81b9384dc38446f33a73845e24.jpg', NULL, NULL, NULL, NULL, NULL, '45022119930202441X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 512, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:56:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (469, '15777279084', '000000000168', '15777279084', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈康日', 1, '452231198004030539', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e7ce400206a74ef8a4354c085aa7cc75.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd34370e01644c66afc268c4aa62db60.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231198004030539', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3da68c44a0ac48fbb0e2fa78275431b3.jpg', NULL, NULL, NULL, NULL, NULL, '452231198004030539', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 507, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:54:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (470, '13878287731', '000000000026', '13878287731', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '古日忠', 1, '452223197212094014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/102aaf05699c4690a13e8e5595638009.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/684f5c00151b408eafad1e314f470a34.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县寨沙镇和平街', NULL, NULL, NULL, NULL, 10, '452223197212094014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ccb0e32f51cf450a8f845f5c76555a77.jpg', NULL, NULL, NULL, NULL, NULL, '452223197212094014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 588, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:53:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (471, '13687724554', '000000000341', '13687724554', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邱鸿棋', 1, '452223198107137013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d17d8c99e89b40468745a8eb9bb2ca20.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bf339f4cf3a44fc8a521601fbdde8cd4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198107137013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/11b79d0e372649088406d7908a2d80cb.jpg', NULL, NULL, NULL, NULL, NULL, '452223198107137013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:52:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (472, '13677720973', '000000000016', '13677720973', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李智华', 1, '450203197904030778', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1eb3e1f553db4096abc8a1fa6014f175.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e6370ec6a4d34d43a7f5034e5d03d38c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区箭盘村158号', NULL, NULL, NULL, NULL, 10, '450203197904030778', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/71c76d311a354eeaa0794b53bb362692.jpg', NULL, NULL, NULL, NULL, NULL, '450203197904030778', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 561, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:50:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (473, '18877223123', '000000000043', '18877223123', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吕梁亮', 1, '513001198703300030', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce9ae57c101c4daca8c519c72d88ed3e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/453ba1b5da554acfa9a6a9eb33372ec8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区胜利路9号六区3栋1单元2804室', NULL, NULL, NULL, NULL, 10, '513001198703300030', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fbb44caf5f284c3689c4063f4aea72c0.jpg', NULL, NULL, NULL, NULL, NULL, '513001198703300030', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 559, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:46:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (474, '13977291767', '000000000082', '13977291767', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吕文强', 1, '513001198109190051', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d974c0dc1108457b83f88b041bcc47c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8aefb67c87984ea19e2579272d5ec9be.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '513001198109190051', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3da436ec9e6c4dbfb529d018ea9f5a16.jpg', NULL, NULL, NULL, NULL, NULL, '513001198109190051', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 559, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:45:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (475, '13907725547', '000000000046', '13907725547', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李永杰', 1, '450205197702021016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a80f2e94a3d64fa48fc6f4d677d631b1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85532f0ef57b42e0a4a25b407dfb419c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路十五区31栋2单元401室', NULL, NULL, NULL, NULL, 10, '450205197702021016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c8d39203cd74d0798af32c41672f26c.jpg', NULL, NULL, NULL, NULL, NULL, '450205197702021016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 531, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:42:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (476, '13878283848', '000000000095', '13878283848', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张柯', 1, '450222197811080011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/76b2b39baed048e8b7797ebbb17cd01e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b7c9360563f94153ba04c459a57b575d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路45号之八15栋1单元102室', NULL, NULL, NULL, NULL, 10, '450222197811080011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/026c26021c9549379a208adcb97a03bf.jpg', NULL, NULL, NULL, NULL, NULL, '450222197811080011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 586, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:41:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (477, '13737271266', '000000000050', '13737271266', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦微', 2, '45020519740716134X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2630f649cbe64d1f80c82454911873fb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f424568d5434fb88c1f537aca2ebbc7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020519740716134X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2a73155eddec4ce48571d545f993720d.jpg', NULL, NULL, NULL, NULL, NULL, '45020519740716134X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:40:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (478, '13978031774', '000000000100', '13978031774', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈翠微', 2, '452122196812300022', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/98a7ee35a7c649c79ff0cfe1bae2f6f4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2298354cba714053bcc3b5d2d0ef9206.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452122196812300022', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6cc725ab49c24342a4b850c9ba8197df.jpg', NULL, NULL, NULL, NULL, NULL, '452122196812300022', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 521, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:39:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (479, '18897827293', '000000000101', '18897827293', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗雨良', 1, '45022219650901131X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/32a4372a05624733aff283aafc101e1e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/785971fda2dc4ba28754790afc3a8485.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022219650901131X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afa6007011e3493191fa93ba93973323.jpg', NULL, NULL, NULL, NULL, NULL, '45022219650901131X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:38:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (480, '18775101587', '000000000260', '18775101587', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈文连', 2, '450222196812070021', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ddd8135b68104c1b9fe167c273d0c8df.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3cc36555cc2446ac9e2277cacf75526a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222196812070021', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d84c8b1278f34bdf81f26776b149361d.jpg', NULL, NULL, NULL, NULL, NULL, '450222196812070021', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:37:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (481, '18276767799', '000000000025', '18276767799', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫陆强', 1, '450222198208152636', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8a757abac8854281b3fba411da673029.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eac63518d4db4b13bc358bd7ba5fc847.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198208152636', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/618a2dc5594b49129964eaf0d66bad3f.jpg', NULL, NULL, NULL, NULL, NULL, '450222198208152636', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 581, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:35:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (482, '13597023513', '000000000241', '13597023513', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '冯日明', 1, '450205196606191053', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/310a2177bc0946bc9892ed57028c31ac.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/96bbaa3499324abc939c034c6b21859e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196606191053', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f424a3d9eea438990fa616e6e7766db.jpg', NULL, NULL, NULL, NULL, NULL, '450205196606191053', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 581, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:34:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (483, '13607803517', '000000000018', '13607803517', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗水圣', 1, '362421197201034119', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/615b72fc4b4a48eb81f0faa1c4f59147.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a552892a4a74e228853f5df2d209314.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区湾塘路26号11栋2单元6011室', NULL, NULL, NULL, NULL, 10, '362421197201034119', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92818abeabb24d98b445b97d008b12b2.jpg', NULL, NULL, NULL, NULL, NULL, '362421197201034119', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 566, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:34:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (484, '18176712362', '000000000185', '18176712362', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '唐孟双', 1, '45022119730426571X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a07a237791cc428ab45a3fb59c42ce1c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3cda7d41890473aa09896f8b6341117.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119730426571X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7793b7d8bd704eb0997bc861ba033a71.jpg', NULL, NULL, NULL, NULL, NULL, '45022119730426571X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 529, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:32:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (485, '13647728787', '000000000960', '13647728787', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏韦钊', 1, '450204197610040037', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ccd4a2eb5108425abb733fd652eb9838.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6fbc90d3647b43479014a8dfcc374d74.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳邕路43号2栋602室', NULL, NULL, NULL, NULL, 10, '450204197610040037', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/20538ac03c8c4316948d202262734aee.jpg', NULL, NULL, NULL, NULL, NULL, '450204197610040037', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 723, 2, 1, '1', '2020-08-17 17:53:22', 1, '2020-09-08 11:50:19', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (486, '18978070490', '000000000961', '18978070490', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗广朝', 1, '452226197306072130', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f3fe9bf33c843218a247c47c7fede5f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78bdf945b7b54f4caa0c604c52df20f0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197306072130', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/086170fb0364467eaea2b73d038864cd.jpg', NULL, NULL, NULL, NULL, NULL, '452226197306072130', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 672, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:30:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (487, '13977273005', '000000000033', '13977273005', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杜玉山', 1, '452527196112094233', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d4098267d6c24e19ade384bf4a5aa276.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a60abd7edc54a858569c7d4592eff6f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452527196112094233', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a0c1deb1c9c4d91b145e553693db9db.JPG', NULL, NULL, NULL, NULL, NULL, '452527196112094233', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 520, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-31 15:32:16', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (488, '13877230505', '000000000001', '13877230505', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '冯钟玉', 1, '450881198410059470', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de60d2c951c24b4d8765181bdf50c9eb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/28dfe97bb6d24531a33100d168e1db56.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西桂平市寻旺乡河南村5-121号', NULL, NULL, NULL, NULL, 10, '450881198410059470', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7230bb4e59704ed8b8bfa3ade9e38e5b.jpg', NULL, NULL, NULL, NULL, NULL, '450881198410059470', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 547, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-09-04 18:14:34', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (489, '18577631373', '000000000002', '18577631373', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '耿卉', 2, '450205198910170723', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42f4fc2516c5495e8b4f2236fbd78b0a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a19f50a0385948dd803f222aaafdbf9c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区跃进路106号平房2栋101室', NULL, NULL, NULL, NULL, 10, '450205198910170723', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3433668ed29e4815aa2a795b3ec2f672.jpg', NULL, NULL, NULL, NULL, NULL, '450205198910170723', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 547, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:26:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (490, '13597100403', '000000000024', '13597100403', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王健武', 1, '452123197702033112', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6e5e053545e4b38a73fda318c2ecf4a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3654fdf45558401780174ee3029b067c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳邕路康华二区18栋2号', NULL, NULL, NULL, NULL, 10, '452123197702033112', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d6b9798881ab48be9c0bb2b670fead43.jpg', NULL, NULL, NULL, NULL, NULL, '452123197702033112', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 572, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-09-08 11:47:37', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (491, '13978055082', '000000000012', '13978055082', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王勇进', 1, '45022219830415165X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/06e790bdc01f4ba6ad451f7a3bbcc3f0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/25a21c1a53f549fd93c24b54260bb288.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县大埔镇白阳中路3号', NULL, NULL, NULL, NULL, 10, '45022219830415165X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3c8884c3ead4008bae3ee86e65a966e.jpg', NULL, NULL, NULL, NULL, NULL, '45022219830415165X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 533, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:25:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (492, '15177739809', '000000000057', '15177739809', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王勇前', 1, '450222198707300074', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8ce0e60b301f427e9e50cf8c1dcb4d10.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/35ec5099750b44c5b17020e609b83516.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198707300074', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9fe58de1390d49658f72ef849412c980.jpg', NULL, NULL, NULL, NULL, NULL, '450222198707300074', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 533, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:24:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (493, '18877220227', '000000000163', '18877220227', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘伟文', 1, '452227196606221216', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9862b8df21cb457bb932b7722ccb8cb5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4568c63777a14c9ea67de021263d56db.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227196606221216', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d4085c1274d418e877618add976e83b.jpg', NULL, NULL, NULL, NULL, NULL, '452227196606221216', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '退车退出', 1, NULL, 3, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:23:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (494, '18775203399', '000000000232', '18775203399', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖红德', 1, '452227196705200058', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cc9808c838ba4937be84f265b860ea44.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9294ff271b53444d8589d7a7b5c93086.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227196705200058', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/51b3330ca1784ffaaf0d76e8d933d92b.jpg', NULL, NULL, NULL, NULL, NULL, '452227196705200058', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '退车退出', 1, NULL, 3, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:22:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (495, '18607728617', '000000000015', '18607728617', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁雪', 1, '452201198012061257', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5cdbb8c74dd642da93ba86f599708e36.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/668f06d990f54237bf429dbf9c1c7fc1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳邕路291号6栋3单元302室', NULL, NULL, NULL, NULL, 10, '452201198012061257', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9763df67010148eab85cfca346719eaf.jpg', NULL, NULL, NULL, NULL, NULL, '452201198012061257', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 530, 2, 1, '1', '2020-08-17 17:53:22', 1, '2020-09-04 17:19:38', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (496, '13977255587', '000000000045', '13977255587', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁祖洪', 1, '452201197710221217', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3dd611a335324801a3fdaf7f2055ac63.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/22a76b03d91c47108ee54d68c280e945.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452201197710221217', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/33c477d581754dfd9d291789ac5a86c6.jpg', NULL, NULL, NULL, NULL, NULL, '452201197710221217', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 530, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-09-10 16:08:58', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (497, '13907720217', '000000000927', '13907720217', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖立勇', 1, '450203196801230318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8f1048ba7f846218beffd6100581e73.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9aa89e7bcb5b4f3facc8f997a5e11ec5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203196801230318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ea066cf6fb340dca354759cc44ad1f1.jpg', NULL, NULL, NULL, NULL, NULL, '450203196801230318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 530, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:19:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (498, '13627822938', '000000000038', '13627822938', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗伟', 1, '450221198210220910', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d06e7c887004fb1a126d0ed291a0dde.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ed45c81cf48c40828abe6d5afbe9a266.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江县里雍镇广实村大湾屯46号', NULL, NULL, NULL, NULL, 10, '450221198210220910', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0de03cf139f481d979d80b5b701430d.jpg', NULL, NULL, NULL, NULL, NULL, '450221198210220910', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 518, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:18:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (499, '15577222187', '000000000058', '15577222187', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦福建', 1, '450221198406130917', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c4f390ec8794c99a7df143a4af9a087.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f40553782114db195ebd96caeae356f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198406130917', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0b76e6242864105b68965ec90e41788.jpg', NULL, NULL, NULL, NULL, NULL, '450221198406130917', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 518, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:17:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (500, '15717725128', '000000000009', '15717725128', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '孙柳德', 1, '450205196503111313', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4b2200f0e5242c295fe81d30c714c87.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de907b7add554a7ba1b3c77ba2d1491f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196503111313', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5e82658ee0d5491581917b91af597c31.jpg', NULL, NULL, NULL, NULL, NULL, '450205196503111313', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 523, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:16:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (501, '19977220383', '000000000102', '19977220383', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '孙柳文', 1, '450205196804131318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f1873afdba146f6ab02b119ce28e43d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd577938391741309050cc6204ad2de4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区雀山路2区19栋505号', NULL, NULL, NULL, NULL, 10, '450205196804131318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e20b6341c06649149c3b218022fa70dd.jpg', NULL, NULL, NULL, NULL, NULL, '450205196804131318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 523, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:16:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (502, '13768029573', '000000000209', '13768029573', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李华锋', 1, '450222197702140011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/77905cc92a0f424a800f81519ffe87d7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/827ca0c5e6b84861b8111dc7e805ce80.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县大埔镇木桐村民委保大屯13号', NULL, NULL, NULL, NULL, 10, '450222197702140011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/376ae63b815f4f3da81a2eff59f7d58d.jpg', NULL, NULL, NULL, NULL, NULL, '450222197702140011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 504, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:15:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (503, '13768877997', '000000000702', '13768877997', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李华亮', 1, '450211198111250038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2be0dbb47f4446e39356ad453ac02e8b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/312549a9dd9044a2a61eac8b649ce6c5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区石碑坪镇大滩村小帽屯42号', NULL, NULL, NULL, NULL, 10, '450211198111250038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b3854272af844e2d8337e139944a6fbc.jpg', NULL, NULL, NULL, NULL, NULL, '450211198111250038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 504, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:12:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (504, '18978009997', '000000008888', '18978009997', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '楚竣文', 1, '450204199511211418', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4671dcc9c2b64393946cfc3b6b5314b9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e4c7542acc2642f88217501771d03254.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区磨滩路三区11栋2单元601室', NULL, NULL, NULL, NULL, 10, '450204199511211418', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1302c1a16724c1499230878ee5e037b.jpg', NULL, NULL, NULL, NULL, NULL, '450204199511211418', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 546, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:11:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (505, '13517725010', '000000006666', '13517725010', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何宝徐', 1, '452229198906045818', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/51f5341cab5e464db72fc5842081de07.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c207f5ccb7c4b21bc32a6b04e44fd85.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市融水县白云乡田里村贾田屯152号', NULL, NULL, NULL, NULL, 10, '452229198906045818', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4c3884328bad444fa7370a6148b2152e.jpg', NULL, NULL, NULL, NULL, NULL, '452229198906045818', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 574, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:02:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (506, '19943079870', '000000000230', '19943079870', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何长旋', 1, '452723199202240838', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a06a4cfd12ce45fc9a8e455de877eac4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3cdb1d0ddd44d31bfde8b88204715bc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区羊角山路西一区64号之一', NULL, NULL, NULL, NULL, 10, '452723199202240838', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bda0137306d042ddb325568e722486aa.jpg', NULL, NULL, NULL, NULL, NULL, '452723199202240838', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 574, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:01:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (507, '13558028009', '000000000287', '13558028009', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '荣正服', 1, '452229198511105839', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/414918f770d94c7c98e81fa2c3fc6288.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/038eee4ac4e44a9a9e55fa199b5bd972.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198511105839', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/89b2c52934a347a0a0b2f4fd8d820f6e.jpg', NULL, NULL, NULL, NULL, NULL, '452229198511105839', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 10:00:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (508, '13737251463', '000000000158', '13737251463', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王贵安', 1, '450204196312291431', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/89342e1feab840bf9bbcd459f06c6489.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1e38eba6e92542b783c3f5caad9159ce.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196312291431', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efbb042c646e4deb99b3e60650696c20.jpg', NULL, NULL, NULL, NULL, NULL, '450204196312291431', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 554, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:59:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (509, '18277210877', '000000000220', '18277210877', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周成敏', 1, '450202198111180635', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fcec254c3ddd43dabc29011ae4c15e79.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6108824d323d48269b3871b90a4f8f58.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区连塘路北四巷12号', NULL, NULL, NULL, NULL, 10, '450202198111180635', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2dac36077b6742029b01ae38734cfe84.jpg', NULL, NULL, NULL, NULL, NULL, '450202198111180635', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 554, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:58:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (510, '13557727961', '000000000132', '13557727961', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周祥人', 1, '45020319771002103X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c1a956fc8b6d4d289098fc4459735bfd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7fc0313cbc2d4a0ca04f35656ac127dc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020319771002103X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cee198707ba5420695104a379149ef9a.jpg', NULL, NULL, NULL, NULL, NULL, '45020319771002103X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 508, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:50:45', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (511, '18377252776', '000000000133', '18377252776', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙佩军', 1, '450203197809021013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/866e7f4e07524ad6871557798ddfd717.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/731fa71d44214f9b90b1e4badc63296c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197809021013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eee5f69a99f4495da24264c316339792.jpg', NULL, NULL, NULL, NULL, NULL, '450203197809021013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 508, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:49:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (512, '18978068483', '000000000027', '18978068483', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄清常', 1, '45021119721015221X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c81d5e472f8479e84c56104d432fdf2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/467a40ff61c24d2d82865232fa5035f7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航一路3号20栋2单元701室', NULL, NULL, NULL, NULL, 10, '45021119721015221X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4b50659aab4b48f9bc509f1d22218337.jpg', NULL, NULL, NULL, NULL, NULL, '45021119721015221X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 590, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:48:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (513, '13517720816', '000000000053', '13517720816', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙权', 1, '450222196305072137', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0cdc2aca36f4a13af2779c4bad75dbb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5e1991942b7489babc75d7c02c7349c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222196305072137', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/568cb144d29347d796d44e9c3e58f355.jpg', NULL, NULL, NULL, NULL, NULL, '450222196305072137', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:47:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (514, '13617804485', '000000000065', '13617804485', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫从生', 1, '452226197510090635', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b8414a43a6014135b7a3e69326d38a44.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c15f9a4d21bc486db94699777f04bdba.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西来宾市凤凰镇新隆村民委', NULL, NULL, NULL, NULL, 10, '452226197510090635', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/575f5aa422d54c4ca74359341bd8f6fb.jpg', NULL, NULL, NULL, NULL, NULL, '452226197510090635', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 580, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:46:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (515, '13207720077', '000000000110', '13207720077', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁建峰', 1, '450203197508201053', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/19237e3134484733bae3ae31f83e63e4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/abcecf8e9be640f5b6fbe2b905d87db3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197508201053', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b5338487166e4c409671f8f5192433fc.jpg', NULL, NULL, NULL, NULL, NULL, '450203197508201053', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:45:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (516, '18777249306', '000000000203', '18777249306', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李小芳', 2, '452424197807070027', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c64391c68164b53a7cc834f166ea915.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e27c663379b249e49549a41727253664.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452424197807070027', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eab116d494b84cb3813407c279de547a.jpg', NULL, NULL, NULL, NULL, NULL, '452424197807070027', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 580, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:44:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (517, '17396757484', '000000000160', '17396757484', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曹迪春', 1, '450205197404160034', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d780c01d0bbc45e2afcd21f900670c63.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3a11823463074fceaa20441f4ac1c3a1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区潭中东路16号', NULL, NULL, NULL, NULL, 10, '450205197404160034', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dd2201eb691414096b80406d22b6e6a.jpg', NULL, NULL, NULL, NULL, NULL, '450205197404160034', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 591, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:43:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (518, '13877258353', '000000000004', '13877258353', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈文', 1, '450203197911280732', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f8fd7a6fcc7433d96f655702c894b89.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/67df4af2dd6747f2ac435cf463b621e2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197911280732', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/076075e20c474af99809f2d772967145.jpg', NULL, NULL, NULL, NULL, NULL, '450203197911280732', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:42:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (519, '13507724280', '000000000090', '13507724280', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李继敏', 1, '450205197609240716', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0bba67bf4dad4ffeb5791e41888932a7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c87a5534c464962a1bd19400b52eca2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197609240716', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e9324faf1054d998b55dbff3eb18e40.jpg', NULL, NULL, NULL, NULL, NULL, '450205197609240716', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:41:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (520, '13788223299', '000000000279', '13788223299', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙友光', 1, '450222197008090819', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6053ce85e0ef4fc7b00c5b945e1b526a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a105c19374c4769b43c3385e1cf7e39.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197008090819', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb9aedaf34854f58ba5c75711628a348.jpg', NULL, NULL, NULL, NULL, NULL, '450222197008090819', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:40:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (521, '18177219689', '000000000105', '18177219689', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '闭志光', 1, '450204197605300033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dc25ba66b5104934a810e9799bbd72eb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a39259e7c8cf4ccc9aa733c09ae6c3f9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区城站路94号二区7栋4单元302室', NULL, NULL, NULL, NULL, 10, '450204197605300033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/770ea0fb63e244e8a33bae405c305f53.jpg', NULL, NULL, NULL, NULL, NULL, '450204197605300033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 542, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:40:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (522, '13297897978', '000000000106', '13297897978', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈万亿', 1, '450202197909230617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2616fcce711e4119870bf9dab783d1c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b158e95eaff149379f770da047a97340.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航惠路2号2栋3单元', NULL, NULL, NULL, NULL, 10, '450202197909230617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/91fe0221c07746a8927f17e210d57a38.jpg', NULL, NULL, NULL, NULL, NULL, '450202197909230617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 542, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:39:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (523, '13877296788', '000000000238', '13877296788', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁敏胜', 1, '452228198611055035', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/450c81285bdb4f7e9b0aa24de70d45c8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ad9778a575147e99b4ac5649e6c8984.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452228198611055035', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bcb3f9f311b1412c8727e93d188401bd.jpg', NULL, NULL, NULL, NULL, NULL, '452228198611055035', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:37:53', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (524, '13597066228', '000000000062', '13597066228', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫国斌', 1, '450222198811232614', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/56ddb8adaf0c4524b57099fbe4f563d2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/904c7b39c4884847808f0bd19447ac7e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198811232614', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c67fb3072bc41459b47bdf83249980b.jpg', NULL, NULL, NULL, NULL, NULL, '450222198811232614', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 544, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:37:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (525, '18877206461', '000000000119', '18877206461', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦志锋', 1, '45222919790920519X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f107d3ca3e94524bd1d24a7b03b4718.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/554e0ebaa1ec4e5dafa8b0f4fbc5ea0b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222919790920519X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba0de29091f94ef3913cb5932e4e5273.jpg', NULL, NULL, NULL, NULL, NULL, '45222919790920519X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 544, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:36:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (526, '15007722802', '000000000127', '15007722802', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄兆薇', 1, '450222198609071335', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7f48fbb495ac42d18d92fae68458465c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1398d198ccba4f22b265b0fac7102615.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198609071335', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d547b8d7db1348c68693375e5e8639ce.jpg', NULL, NULL, NULL, NULL, NULL, '450222198609071335', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:22', 1, '2020-08-24 09:35:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (527, '18078259178', '000000000933', '18078259178', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈联刚', 1, '45222719791029203X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a89c1f8113e647d5b2e16d5c8b5ddf9a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5990d5be7edd462c8f43dfa4ac55baca.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222719791029203X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a85d46ea95f4fd4b0e812a44e469eee.jpg', NULL, NULL, NULL, NULL, NULL, '45222719791029203X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-24 09:34:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (528, '15607725559', '000000000041', '15607725559', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邓伟光', 1, '450204196911020617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6b03cdee47e4598bf5bcc6e66e3a90c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a73d91086c3f4db6908848ad432166a0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区红桥路三区18号', NULL, NULL, NULL, NULL, 10, '450204196911020617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b2b78f307254473fb5599dc7ed612c8d.jpg', NULL, NULL, NULL, NULL, NULL, '450204196911020617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 578, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:25:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (529, '13707723851', '000000000042', '13707723851', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦鸥', 1, '450204197407070636', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e7ca9be2510d4b688ab4d3042e6480ca.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1e463d9b5334cb8a73df17b281c7c81.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197407070636', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc576d18370b4605ad996f2d138f520f.jpg', NULL, NULL, NULL, NULL, NULL, '450204197407070636', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 578, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:24:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (530, '13878255643', '000000000103', '13878255643', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈志伟', 1, '450204197311120619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd09f03df0474d9fb23335a749f9bc22.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b71b3a480c5c4a14aaa86c833562b211.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区鹅山路三区5栋3单元301室', NULL, NULL, NULL, NULL, 10, '450204197311120619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/23fe5c22dacb4436ace93763d5d6f28c.jpg', NULL, NULL, NULL, NULL, NULL, '450204197311120619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 578, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:23:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (531, '13507826943', '000000000077', '13507826943', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝力辉', 1, '450221197505194938', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26f3dd9212cc40579aedfb8444369119.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f13b69d082a44938b3e0d217d1b93a83.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县土博镇屯兵村上社屯55号', NULL, NULL, NULL, NULL, 10, '450221197505194938', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/371b2418ab584be99f47c079b62f06e4.jpg', NULL, NULL, NULL, NULL, NULL, '450221197505194938', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 512, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:18:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (532, '13633062354', '000000000165', '13633062354', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱柳宗', 1, '450221197806100931', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f2c5a06313c244b08bdd8ef4b9a081de.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/639d43f9f4e94388b63e1201ca23629d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197806100931', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d0104f40aa94046b57718676e9bb834.jpg', NULL, NULL, NULL, NULL, NULL, '450221197806100931', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:17:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (533, '13633067874', '000000000282', '13633067874', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒋莉婵', 2, '450204198204030321', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2b5045a5dc6d413fb2a198bf905c38d8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eafe94cee706479ab7b6596a7ef029d2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198204030321', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa80888cbeff4e508fa224dab3b08289.jpg', NULL, NULL, NULL, NULL, NULL, '450204198204030321', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:16:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (534, '15078272092', '000000000176', '15078272092', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '唐诚仁', 1, '452223197510171030', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/526b9859f4a3494f9c7d487fc52bd630.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c9f0022fb9e941e388bc006b25481677.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197510171030', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/901d0f6c6b304eb38f984af9894e779a.jpg', NULL, NULL, NULL, NULL, NULL, '452223197510171030', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:16:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (535, '15277207511', '000000000048', '15277207511', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦书智', 1, '452226198011166011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/902b164302b747a0aa4a6e9b08a15e7c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ee3ba934cfad4c2aa205efef768108bd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区石烂路6号栗园新居1栋906室', NULL, NULL, NULL, NULL, 10, '452226198011166011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12cd8de4d6fa473bb407301e24a8a60f.jpg', NULL, NULL, NULL, NULL, NULL, '452226198011166011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 543, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:15:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (536, '15289633286', '000000000173', '15289633286', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄梁伍', 1, '450221199207015419', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bfb4e64930444624bb669afb1bd2e917.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8d21821378d435f87f9b5ade949bee6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江县白沙乡大田村见前屯17号之二', NULL, NULL, NULL, NULL, 10, '450221199207015419', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a95f4f71502140a89e6d3d422356fc0e.jpg', NULL, NULL, NULL, NULL, NULL, '450221199207015419', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 541, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:14:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (537, '13737283401', '000000000963', '13737283401', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈海强', 1, '450221199309175413', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c0c313650664ab6ae75c09c0b68bef3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c3ce53e3ab1c4bdb99ce2b5d575b0710.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199309175413', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/36190d60a5c046f3bc2f57ec77156b40.jpg', NULL, NULL, NULL, NULL, NULL, '450221199309175413', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:13:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (538, '18877238197', '000000000030', '18877238197', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒋志跃', 1, '450203197004231013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ecf3d3b643da4eba853780fb6ce7e16d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f0de40c7dd45499e95eb0d6e3d9762e0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197004231013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/27fb75c647ae4dd2ae878aa99994bba5.jpg', NULL, NULL, NULL, NULL, NULL, '450203197004231013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 556, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:12:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (539, '13978007773', '000000000031', '13978007773', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '汤湘乾', 1, '450203197311080016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c15e5121a9f40589955184269782600.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da31620a5fc74de7887ce4948a87ca95.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197311080016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3cfa664d06564ddca39a3d7d9b78644a.jpg', NULL, NULL, NULL, NULL, NULL, '450203197311080016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 556, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:11:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (540, '13977280971', '000000000096', '13977280971', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖义忠', 1, '450205197308211356', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/affbd511b06f4a41805f569dc959aadc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/53200fa845054315b5241c32c7a3fb40.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197308211356', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b54d588ad5d54eb7ba0313c06f7245c2.jpg', NULL, NULL, NULL, NULL, NULL, '450205197308211356', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 545, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:10:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (541, '13977221832', '000000000128', '13977221832', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '纪勇', 1, '450205198007191018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7b3a95b3a494465b86f97adec10db46.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6eb15229a8d0469891b010ac90ad99e7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区南站路东一巷17号', NULL, NULL, NULL, NULL, 10, '450205198007191018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c19544914ee491fbfa7edfe67c94bd8.jpg', NULL, NULL, NULL, NULL, NULL, '450205198007191018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 509, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:09:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (542, '13657720220', '000000000261', '13657720220', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王正林', 1, '450204197011110611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/306395f392b54003a579f39b94d305d6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/49c9bf525e354db791a6646f3439b3d2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197011110611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99018769fe444fe8afa9edabecedccab.jpg', NULL, NULL, NULL, NULL, NULL, '450204197011110611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 509, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:09:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (543, '13737292148', '000000000948', '13737292148', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周毅', 1, '420106197606123253', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e52ac74121234357ba596d88c27b52ea.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/36407bce324740e1ba4dbcb69d1e54df.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '420106197606123253', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a26304bde1b1431aa8ddb36f0229a4ad.jpg', NULL, NULL, NULL, NULL, NULL, '420106197606123253', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:08:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (544, '13877228007', '000000000962', '13877228007', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李琦', 1, '450103198309232614', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a255f16b645e44389bee41c51de21b45.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2bfd987aee4d48f2b52887e64ee31b67.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区鹅山路九区1栋2单元201室', NULL, NULL, NULL, NULL, 10, '450103198309232614', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/788f321271d146b1b5f9b3d28370b15f.jpg', NULL, NULL, NULL, NULL, NULL, '450103198309232614', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 914, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-09-04 17:37:25', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (545, '15877285752', '000000000964', '15877285752', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢厚远', 1, '450211198301030511', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9095b33117024362bf45a1bf1eb09c83.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92539d39474a402c8d4623e3242547d7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198301030511', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/14a4e298cfde46a3aeae92f1193afe8a.jpg', NULL, NULL, NULL, NULL, NULL, '450211198301030511', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:05:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (546, '13977291363', '000000000017', '13977291363', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃晓程', 1, '450205198412030437', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/71804133040f4c9d9108ebad21eed9bc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/229e503f97d943e9b91a4cba2e0e16ca.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198412030437', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/40d68b2b8f484e089c349fcb0eb9f3d2.jpg', NULL, NULL, NULL, NULL, NULL, '450205198412030437', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:05:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (547, '18577293868', '000000000079', '18577293868', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭迪', 1, '450221197809283913', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a97fad90b6e4eb09915685c902f650a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f53f16e9f2e24e2da52f7b9424ddf628.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197809283913', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/984ad3de3fdb4c4f8b67a4dffb3dbea2.jpg', NULL, NULL, NULL, NULL, NULL, '450221197809283913', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 539, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:04:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (548, '13257788596', '000000000113', '13257788596', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '佘朝荣', 1, '450221198607162915', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/767345cbba52423d9bc61810906fe3c6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b863c7443e434e51b881d05ffe86b200.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198607162915', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9bae0b028ee24c99a41b822ac437e385.jpg', NULL, NULL, NULL, NULL, NULL, '450221198607162915', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:03:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (549, '15778289386', '000000000966', '15778289386', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦永兰', 1, '452226197309080312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/248dd546e718462ca8e9c1967c36c5cc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9bca3a39168846fda447caf0633f2a08.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇兴柳路392号鼓岭小苑3栋', NULL, NULL, NULL, NULL, 10, '452226197309080312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bf9d3859e8894b278753d413a4b7a60f.jpg', NULL, NULL, NULL, NULL, NULL, '452226197309080312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 684, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:02:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (550, '18077205270', '000000000039', '18077205270', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李靖', 1, '450205198606011314', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4e14f3a813054200ae7ac64cbd6c6317.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8449ee8e97c04e328989a6afc6f4e28a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路十七区72栋1单元601室', NULL, NULL, NULL, NULL, 10, '450205198606011314', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ed837e05d4d6495aa5885d868ba4a187.jpg', NULL, NULL, NULL, NULL, NULL, '450205198606011314', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 688, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:01:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (551, '18276222489', '000000000188', '18276222489', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦华松', 1, '450221198210256016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2614d232c264c4eaa4d2f2a16fe42bf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b3d563df3a2c43e68c53ccb149df32b4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198210256016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82d7df554f79489c8825b79c9b73159b.jpg', NULL, NULL, NULL, NULL, NULL, '450221198210256016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:01:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (552, '19943070689', '000000000967', '19943070689', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾开创', 1, '452227198509183632', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/50f28a34f2d84d3d83b3b172f0f22443.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f9e9ec6014a84953ae7b1bf29ee8ba8c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227198509183632', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7eaf21f92b484afea15fab3b0f9469e4.jpg', NULL, NULL, NULL, NULL, NULL, '452227198509183632', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 17:00:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (553, '13978091882', '000000000968', '13978091882', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫增赛', 1, '452231197001162531', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/47669964574b4ffdba926f7fc00fc1ed.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6130d70a4444969b272a815253eb23c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区城站路菜园屯东十巷5号', NULL, NULL, NULL, NULL, 10, '452231197001162531', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe50582518fa4a3288bb8819a0a416f9.jpg', NULL, NULL, NULL, NULL, NULL, '452231197001162531', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 677, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:59:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (554, '18577263970', '000000000969', '18577263970', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦作往', 1, '450221196705211937', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5332e164f61d4b3396db1292f4d22ab6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fffe35b2a6f744d7846eb52d01b35832.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196705211937', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e733615a1eb14d5091c20e665201a9cd.jpg', NULL, NULL, NULL, NULL, NULL, '450221196705211937', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 521, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:58:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (555, '15678069862', '000000000906', '15678069862', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '姚平', 1, '450204198202110619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e850cb150b7a4a58ac126185865fa614.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/13df114b20f447548ab7cc8b6c39e652.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198202110619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1e6531f0e0ea4a79a2ae0c35c8da3f1a.jpg', NULL, NULL, NULL, NULL, NULL, '450204198202110619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 526, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:57:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (556, '13978078883', '000000000970', '13978078883', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁浒', 1, '450202198205290018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9fe0bed2727e44969d7b8166f321d38f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/69275ba9effa4c96a420f85268a38021.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区湾塘路东一巷13号310室', NULL, NULL, NULL, NULL, 10, '450202198205290018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9ad167f31fa941a99608d92a5c5d2a4f.jpg', NULL, NULL, NULL, NULL, NULL, '450202198205290018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 659, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:57:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (557, '18775112231', '000000000971', '18775112231', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃宗业', 1, '452227198309102615', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e98e656d0fc54db5b03a8dbaa0fedfce.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f16382f7f715497c8e9486db11cf8847.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西融安县泗顶镇山贝村江坡屯25号', NULL, NULL, NULL, NULL, 10, '452227198309102615', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78845cbf91504a8492a39004ec02a5fb.jpg', NULL, NULL, NULL, NULL, NULL, '452227198309102615', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 622, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:56:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (558, '15077244889', '000000000972', '15077244889', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃泽坚', 1, '452225198108202932', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/332ef814ef8a426cb3d64c68267b9174.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/947784a440294542a96c16fa934c586d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区柳邕路351号华韵上城30栋5单元501室', NULL, NULL, NULL, NULL, 10, '452225198108202932', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/67c090e20d85437ea6a74d8ea47e59b2.jpg', NULL, NULL, NULL, NULL, NULL, '452225198108202932', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 544, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:55:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (559, '15907727420', '000000000007', '15907727420', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦桥生', 1, '452423197007290914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da63ee42f4d34a63b05bb2dc1c7f76fa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/159a14edd13448a3b0630234692a4178.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市屏山大道286号', NULL, NULL, NULL, NULL, 10, '452423197007290914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d85f770048134017b50bd86cffa05c15.jpg', NULL, NULL, NULL, NULL, NULL, '452423197007290914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 557, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:42:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (560, '13597208711', '000000000094', '13597208711', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃善高', 1, '450211197810110531', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6cbe38cd86ed450482a65f89cb99ceca.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d16f5310c58b4ecea4bfdb7a86be674e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县进德镇进德街112号之一', NULL, NULL, NULL, NULL, 10, '450211197810110531', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3af600a01b094b8a96b0c28e80933b37.jpg', NULL, NULL, NULL, NULL, NULL, '450211197810110531', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 517, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:41:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (561, '13617808890', '000000000099', '13617808890', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏杰', 1, '450205196501030755', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1bb2a6e3799e4b199b9e226531c51f03.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c386c9dd7fd64c70a5d123e3245b9321.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196501030755', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f1a807aebab14e77af64aba9c175e9e3.jpg', NULL, NULL, NULL, NULL, NULL, '450205196501030755', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:40:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (562, '15877203005', '000000000973', '15877203005', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何荣敏', 1, '450222199205303413', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f00569c410c45adab9651d1861c999d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/073813fb909148f8af4b56dd1f60423c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199205303413', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99c59786d67c472784e404e276b817b1.jpg', NULL, NULL, NULL, NULL, NULL, '450222199205303413', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:39:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (563, '13557308339', '000000000974', '13557308339', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王运林', 1, '450221197202041977', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/135c0d5f93cd4b63af9c3ea33d4cf9e5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ae1d3e4ce0eb494d81ad7bd482c9075c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197202041977', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1e2ee93d76c64601bf76d7ff98242672.jpg', NULL, NULL, NULL, NULL, NULL, '450221197202041977', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:39:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (564, '13097726591', '000000000975', '13097726591', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郑立新', 1, '450203197712210010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b9e31f6284424e7eabffa7acc6e92c73.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c66b15679084c39b5e1f03321f7cf6d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市晶远花苑3栋3单元102室', NULL, NULL, NULL, NULL, 10, '450203197712210010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48ec7914e8634110b734a032d325e23e.jpg', NULL, NULL, NULL, NULL, NULL, '450203197712210010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 621, 2, 1, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:38:14', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (565, '15207726188', '000000000976', '15207726188', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吕健国', 1, '450203198512230310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a9a322f17be400ea794062f3bff9a24.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a220fa648e534bfd8c680a73506ca1da.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198512230310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9412eff3c39c4191bb502931e8db0f82.jpg', NULL, NULL, NULL, NULL, NULL, '450203198512230310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 636, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:37:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (566, '15877279948', '000000000977', '15877279948', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄华庆', 1, '450211197309061959', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bf1d478d8b3f475d83b5e64084fcb6e7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f0d9ef914042497d849865fd7c592dc9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳邕路388号4栋2单元101室', NULL, NULL, NULL, NULL, 10, '450211197309061959', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b85c47bce2f5435690ac34bb66841db5.jpg', NULL, NULL, NULL, NULL, NULL, '450211197309061959', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 498, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:36:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (567, '18978072857', '000000000978', '18978072857', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵磊', 1, '450702198104068415', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/feba1fa3e1a544b9a965cdef77cec82d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb46faab191242039128d41caefd6614.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450702198104068415', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/97213db531f6420396a45f3fd8fdf5ff.jpg', NULL, NULL, NULL, NULL, NULL, '450702198104068415', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 639, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:35:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (568, '15347741859', '000000000980', '15347741859', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨礼学', 1, '452224198903032016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/382b8029ddc941beb87529496c479f6e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1bdafe46dff491ab7098491197532b5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区穿山镇柳石路386号2栋20室', NULL, NULL, NULL, NULL, 10, '452224198903032016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6da5686139ee4af3b3324c94f721b061.jpg', NULL, NULL, NULL, NULL, NULL, '452224198903032016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 759, 2, 2, '1', '2020-08-17 17:53:23', 1, '2020-08-21 16:34:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (569, '18978001651', '000000000981', '18978001651', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '姚仁松', 1, '450221196710175424', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/504a039a014b4ad5ba3baab071e7a571.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4634246e8fa248eeab5d471356055eea.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县白沙镇白沙村下德合屯33号', NULL, NULL, NULL, NULL, 10, '450221196710175424', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/00c150feacaa4a6fbe2420cecdce3fc9.jpg', NULL, NULL, NULL, NULL, NULL, '450221196710175424', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 759, 2, 2, '1', '2020-08-17 18:03:36', 1, '2020-08-21 16:33:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (570, '18077233448', '000000000982', '18077233448', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '袁福龙', 1, '450222198503150318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dce36562740c4f6184e6ebca84d1f173.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/89a801e58dcc4d2380e034bb4ac5c575.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县东泉镇尖石村民委下良屯15队14号', NULL, NULL, NULL, NULL, 10, '450222198503150318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a2c3f2ea9bf74fc495ee0c0559b9f900.jpg', NULL, NULL, NULL, NULL, NULL, '450222198503150318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 570, 2, 2, '1', '2020-08-17 18:03:36', 1, '2020-08-21 16:32:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (571, '18775108269', '000000000983', '18775108269', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李运强', 1, '450221199102282916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d65629d5055a4f1084ac149e235000a0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d5656c34903645988f25be9a9145dd09.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199102282916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12530cc264c5457f91bb12ae6a368454.jpg', NULL, NULL, NULL, NULL, NULL, '450221199102282916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:36', 1, '2020-08-21 16:31:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (572, '19877277706', '000000000986', '19877277706', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄文学', 1, '45022219870512031X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/823709b1942d444ea2b40525821eea42.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2cf73b2a725347beb7290c5bff6585e0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县东泉镇永安村民委雷塘屯7队3号', NULL, NULL, NULL, NULL, 10, '45022219870512031X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b821e284d14442e2b7610b31546d6815.jpg', NULL, NULL, NULL, NULL, NULL, '45022219870512031X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 928, 2, 2, '1', '2020-08-17 18:03:36', 1, '2020-08-21 16:30:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (573, '13557021787', '000000000984', '13557021787', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈国平', 1, '450205196308240435', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afb294ce449442748ea5686f7496da3f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c37ec951447242d398c7b13d9ebb5598.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区跃进路五区1栋1单元404室', NULL, NULL, NULL, NULL, 10, '450205196308240435', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ae51cf710cbc4679aa4a791d02f2140e.jpg', NULL, NULL, NULL, NULL, NULL, '450205196308240435', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 597, 2, 2, '1', '2020-08-17 18:03:36', 1, '2020-08-21 16:22:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (574, '18648866896', '000000000985', '18648866896', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何仁佳', 1, '450203197207090310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/704aea39a4a048349fc7ec82049bf1ef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4fc46d085c24e338d74ae03d534dd51.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197207090310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88bec98cdfef41c29368600a1f11fdd8.jpg', NULL, NULL, NULL, NULL, NULL, '450203197207090310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 680, 2, 2, '1', '2020-08-17 18:03:36', 1, '2020-08-21 16:21:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (575, '13457247534', '000000000987', '13457247534', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '施伟标', 1, '450204197009300336', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd61b5db2a9b4044ae327ca493d5fad8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d442eb0d0d4b4b89998c22f8159256d1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区飞鹅路53号西区1栋3单元802室', NULL, NULL, NULL, NULL, 10, '450204197009300336', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/74da4f86c9ee4ae5b2fad7ba4b80705f.jpg', NULL, NULL, NULL, NULL, NULL, '450204197009300336', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 680, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:20:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (576, '13597029387', '000000000988', '13597029387', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张文艺', 1, '452226197910015116', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/93faa5ed1bc04fbc8bc59b691f4a3ecd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d39bc9adaaf4aaea1e7a412c560fe85.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197910015116', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a49bf57d50644888aa8df29bf4d324e.jpg', NULL, NULL, NULL, NULL, NULL, '452226197910015116', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:19:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (577, '15677288336', '000000000021', '15677288336', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢光立', 1, '450222198509020338', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8731bc48b4f44a69bface994d8b16f8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/809d71ea0a1d4952877078104f452610.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198509020338', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87d77486574a4eadaa23b20c3e3b0f28.jpg', NULL, NULL, NULL, NULL, NULL, '450222198509020338', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:18:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (578, '18276866699', '000000000064', '18276866699', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭奇文', 1, '450222198604120337', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8fcc2df8e0b6487db7ef533aa587ce5e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c1e0578d6944a4ebd075881cda9be9a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198604120337', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3aad555ae2b441b198650ae5dbd3f59b.jpg', NULL, NULL, NULL, NULL, NULL, '450222198604120337', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:18:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (579, '13669669283', '000000000947', '13669669283', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁超明', 1, '450222199002072619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dfbe4ebbca954b7da1f36b2b639e924f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c7ee431fd084ee09517bf1985957b0c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199002072619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1ec83ba46f6a4dd789e24746392b68dd.jpg', NULL, NULL, NULL, NULL, NULL, '450222199002072619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:17:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (580, '18978055022', '000000000022', '18978055022', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢庆华', 1, '450222198503100310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26ca0f7e4e574a9da968b2968ce3ad61.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92554e0e3d4b4d6981176c0ddad0e322.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198503100310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ffb9df92e1b34c65a655f9487467dde1.jpg', NULL, NULL, NULL, NULL, NULL, '450222198503100310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:17:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (581, '15177222621', '000000000281', '15177222621', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢克克', 1, '450222198611160310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b7660b565af74a26a9db4de1eeae6100.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4bb4e64a62604c3f8acf8b0c24142620.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198611160310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c9531177dfd3402a85f1b8d5c0da0644.jpg', NULL, NULL, NULL, NULL, NULL, '450222198611160310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:16:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (582, '15877258153', '000000000989', '15877258153', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '冯沛荣', 1, '450121198802190617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d544924abe5d41f0828cbe1a5bb67abb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2bb8ab946fcd4d9f82139037a0d49dc8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳邕路二区8号之一华柳佳苑9栋2单元2602', NULL, NULL, NULL, NULL, 10, '450121198802190617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ade9b0a756534b438b8c25a1d2f99aea.jpg', NULL, NULL, NULL, NULL, NULL, '450121198802190617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 573, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:15:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (583, '19976169995', '000000000990', '19976169995', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒙柳', 1, '452226198208150953', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ee651456735f4a2a95f9506f22313037.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a1875e57f0774c29bc3ad26a6e1b4e71.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198208150953', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6cea304371d641ac8b9296e0339a4b6b.jpg', NULL, NULL, NULL, NULL, NULL, '452226198208150953', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:14:36', 1, 2, 1, 4.80, NULL, NULL, 4.80, 4.80, NULL);
+INSERT INTO `t_driver` VALUES (584, '13307824177', '000000000991', '13307824177', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏声楼', 1, '452226197905011233', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/50977fc63d1e412fa03d7255288fec3a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/51657e85e11c4b60ae4ed3f99a0f5729.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226197905011233', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff3124b2c50d4423b77a8da1bd78d554.jpg', NULL, NULL, NULL, NULL, NULL, '452226197905011233', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:13:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (585, '15676264710', '000000000992', '15676264710', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦武状', 1, '452226199503146038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e70fa18984f949fca377bc89c4770471.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/788637bd2f164450ac14b5ae959b8c2a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区大桥园艺场莲花大队一队26号之一', NULL, NULL, NULL, NULL, 10, '452226199503146038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/380ab303ae1944e99aa989dff985b3b8.jpg', NULL, NULL, NULL, NULL, NULL, '452226199503146038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 568, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-09-05 13:12:08', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (586, '13557024798', '000000000993', '13557024798', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张良', 1, '452226196610016358', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48c6649cd75046618f08b9b16e8435a8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1b7dc36477da4abb93c76646ceec2ef7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区竹鹅村委', NULL, NULL, NULL, NULL, 10, '452226196610016358', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff92ea1d2ac0438a8436e5da4e694188.jpg', NULL, NULL, NULL, NULL, NULL, '452226196610016358', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 667, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 16:12:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (587, '15807725069', '000000000995', '15807725069', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁宁', 1, '450221198411302939', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9ed8d7aacf9648a99effbbd9de6e2acf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9da74026990743cdbd74caa3d9d0b970.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198411302939', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df84aa19ec234b83855fb711bcda77da.jpg', NULL, NULL, NULL, NULL, NULL, '450221198411302939', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 697, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:57:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (588, '15877242946', '000000000996', '15877242946', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗泽锋', 1, '452223197103071534', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8991e39f1511421486d6400352b6fad0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/be681d833ce4455cb174c2c6c6ac601f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197103071534', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd41bbe759644cbaabc63cfcf6ea8b16.jpg', NULL, NULL, NULL, NULL, NULL, '452223197103071534', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 922, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:56:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (589, '15877267870', '000000000997', '15877267870', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘佐强', 1, '452224198012263515', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b9f9d3dc4f4143c1bd21d1c6bf8db353.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7bca4c631f0b45b58044a118d12f3acc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224198012263515', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d29c962040a4e74994cbc5019310c97.jpg', NULL, NULL, NULL, NULL, NULL, '452224198012263515', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 493, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:55:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (590, '13978073229', '000000009999', '13978073229', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '俸仕文', 1, '450203197211040017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12117ca37bfc40ec8fa449d402de9290.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/109b2af849424312a658cc44b463a6a9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197211040017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/881e0bbb409345d1b1361d9684fe79d9.jpg', NULL, NULL, NULL, NULL, NULL, '450203197211040017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 689, 2, 1, '1', '2020-08-17 18:03:37', 1, '2020-08-23 17:02:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (591, '18276719093', '000000000998', '18276719093', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李晶华', 1, '450222198910092610', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48f92e5ed89d4fdd8460e0b6156f487a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/201994baa5ae46a7b6c8361a1236a997.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198910092610', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ecb9918a35944da8af1278710345121a.jpg', NULL, NULL, NULL, NULL, NULL, '450222198910092610', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:54:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (592, '18177884217', '000000000003', '18177884217', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘方生', 1, '452702199308101199', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb99677f900c4049b405ba6a18f99e9e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b74383d65093442090130512b8158706.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452702199308101199', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c403d72076e4e71b6921b70dafb2078.jpg', NULL, NULL, NULL, NULL, NULL, '452702199308101199', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 632, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:53:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (593, '19994551085', '000000000006', '19994551085', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦正立', 1, '450206197512151430', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4cb1157309344be88958fedbf13a2a5f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/233798acd9a7464792f63bee3a322225.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450206197512151430', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7db2ef35b99543249c1e2eb4bd8dbe47.jpg', NULL, NULL, NULL, NULL, NULL, '450206197512151430', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:52:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (594, '13659667335', '000000000013', '13659667335', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈官武', 1, '452527197411142332', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/feaff956e0ad4b558deb6e81bba338ef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/69eb0f082e7b4f03b39c62550d7469e2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452527197411142332', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d4a1267f2e048b6a6355c4d8a77a9da.jpg', NULL, NULL, NULL, NULL, NULL, '452527197411142332', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:51:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (595, '18607725867', '000000000047', '18607725867', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卢华恩', 1, '450205197901041335', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/404fbfd835d84c73b96c3a40054457c4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f372c2b5bfb14accbcf02b18c1cc6c3e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197901041335', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4fc99f69f82c4303bfde1f8f4ee53772.jpg', NULL, NULL, NULL, NULL, NULL, '450205197901041335', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 577, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:51:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (596, '18178260558', '000000000052', '18178260558', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭棉贵', 1, '450203197705180036', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c5d0be8230d4a51a50586ebc45dc612.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2179383702824d53882a3799b4302baf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197705180036', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a7088fb8d5a41e79fa9cd7da8cdda69.jpg', NULL, NULL, NULL, NULL, NULL, '450203197705180036', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 647, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:50:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (597, '15677218160', '000000000054', '15677218160', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '关雪锋', 1, '450204197512120615', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82c8f04f92a549b5b2e2d67f1e38224d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42b1744e5b304c8294bf1b38da61f0d4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197512120615', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/accf4d32aa45455aa819884e4048070a.jpg', NULL, NULL, NULL, NULL, NULL, '450204197512120615', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 639, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:49:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (598, '18154760889', '000000000055', '18154760889', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '向长城', 1, '452228198502256532', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a19c991d34f40829fab55250c746010.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8baa1854697d43dda6d00ce021be511c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452228198502256532', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/33800b579a4c40a38a4ffe42ed91265f.jpg', NULL, NULL, NULL, NULL, NULL, '452228198502256532', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 666, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:47:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (599, '15877269549', '000000000060', '15877269549', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙华', 1, '450203197810131017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/94b3acde68ca46f19badd3162eac1530.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2a6c9abf25ad48cda687bba93dbacafa.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197810131017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88de5cbab8ef4b1e8db03753af0970b7.jpg', NULL, NULL, NULL, NULL, NULL, '450203197810131017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:47:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (600, '13978257195', '000000000061', '13978257195', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦国才', 1, '452226199306173619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/532e010b5b004387bc6de872aa9c88ab.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e991a63ce724aebbe35dbbb4fd4f276.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226199306173619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/182143b804eb43aebb09969b05aa189f.jpg', NULL, NULL, NULL, NULL, NULL, '452226199306173619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 700, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:46:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (601, '18775280945', '000000000066', '18775280945', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '金州', 1, '362202197410154053', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3e3e63794bf14d06b00d5ceaa44ab693.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d66a428c15494378b14a9a1cb3b1eeb9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '362202197410154053', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f861b3dec1d243d4b5ef794e2b0aca0e.jpg', NULL, NULL, NULL, NULL, NULL, '362202197410154053', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:41:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (602, '13507723452', '000000000068', '13507723452', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '宁忠捷', 1, '450204198107040018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/838055bacbc549a1ab4db8a3497d74f6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/77a7634d06924a9395fd238c8cd26531.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198107040018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dd866669a1db4c98aa49aa3abb320dc2.jpg', NULL, NULL, NULL, NULL, NULL, '450204198107040018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 499, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:40:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (603, '13152550587', '000000000069', '13152550587', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦召泽', 1, '450221198208262433', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b43f5eefaeac46c4bd3d1126207ac976.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2fc27a6e67d4106bde9469f01e6a9c4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198208262433', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1dbd2b29410c412db567e652f5d89c63.jpg', NULL, NULL, NULL, NULL, NULL, '450221198208262433', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 721, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:39:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (604, '13597202690', '000000000072', '13597202690', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢威', 1, '452223199310200510', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea7d660807a8442e85597a0ca4037ef6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c59cf4a8f4654f6ebdf0c328d90f5ba7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223199310200510', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44bd9e5836ba48a5a00ab419ed39c939.jpg', NULL, NULL, NULL, NULL, NULL, '452223199310200510', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 663, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:38:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (605, '13558129252', '000000000074', '13558129252', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦小华', 1, '450222198909101719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb6c9fe01edf46f292dec6606a16977b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12816d7946a346b19153389861ec0178.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳城县太平县山咀村民委山头屯49号', NULL, NULL, NULL, NULL, 10, '450222198909101719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/287e38ae4dd14213a7c4b44fd80a231a.jpg', NULL, NULL, NULL, NULL, NULL, '450222198909101719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 653, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-09-08 12:11:31', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (606, '18648870090', '000000000078', '18648870090', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨宏源', 1, '45020219770211001X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85afe54507c9466d8cb20f412d0cd7e8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/83b59f03f3ff43db8168b78dd02d22cb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020219770211001X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/41de63ce7b8d40afa29fef2d738b19d4.jpg', NULL, NULL, NULL, NULL, NULL, '45020219770211001X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 631, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:36:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (607, '18577627875', '000000000085', '18577627875', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦学艺', 1, '452223198509252516', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/436c44fd1496409ba07de7b4904012f7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c02477ac6024479a9bb9c46005aa1c5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198509252516', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/17e6fa475e9842df855ef8036738b4a5.jpg', NULL, NULL, NULL, NULL, NULL, '452223198509252516', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 630, 2, 1, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:36:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (608, '13978222836', '000000000084', '13978222836', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆永焦', 1, '450221196908162450', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82be98b499ed428784f83925080728bb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ecad6491962f4054a2104c048d3465f2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196908162450', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8a5996b327454028887565dc8a122de1.jpg', NULL, NULL, NULL, NULL, NULL, '450221196908162450', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 580, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:35:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (609, '18777223912', '000000000115', '18777223912', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫志坚', 1, '450202196912130014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e5472fd56a7a48d6bf77ff9ad031fdae.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1844c99f0de485f94fe7745ba4eee91.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区锦绣路3号13栋1单元302室', NULL, NULL, NULL, NULL, 10, '450202196912130014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd4f416304274a44b4ba12d46a095229.jpg', NULL, NULL, NULL, NULL, NULL, '450202196912130014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 637, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-09-08 12:15:18', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (610, '13321621500', '000000000088', '13321621500', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨杰', 1, '450203198301101033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/decfe502df80451e80cf2b92f491f1a0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/24bb80e7c2974e42b7debff32d6b7735.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198301101033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5bd2f143edf344ee9d3585d1c5a80d2a.jpg', NULL, NULL, NULL, NULL, NULL, '450203198301101033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:33:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (611, '15289638989', '000000000091', '15289638989', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗民进', 1, '452225198411094217', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f43a3eace0db4f6f96d2b9fc6db302b0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/83681ffee517481299d89c78df583780.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225198411094217', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f379438a77484093a4f3cbd5c74b1d30.jpg', NULL, NULL, NULL, NULL, NULL, '452225198411094217', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 543, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:32:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (612, '18074828109', '000000000092', '18074828109', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '石永锋', 1, '110108196510105451', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04bf21a2a3644865b2848ce0f2758b9b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a25d7b46b38e49319462dde5a6070e18.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '110108196510105451', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5fbdaf58f5f4402b879b77aba902a5b1.jpg', NULL, NULL, NULL, NULL, NULL, '110108196510105451', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:32:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (613, '17878286069', '000000000120', '17878286069', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦家周', 1, '45022119921020451X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0cdf8bc59f744a4cb0b03c368a79dc2a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85d639b36cca49cb8a4c13ab659f0b87.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022119921020451X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e105766fc8cc48e691ed3ef001789458.jpg', NULL, NULL, NULL, NULL, NULL, '45022119921020451X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 648, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:30:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (614, '13877279851', '000000000116', '13877279851', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄小亮', 1, '450204197004270617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/904f7f6be562419b8ad9fcf80b93aed2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f66b05a8eb8c4a3ca0789bb823178d3a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197004270617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8bdc4f621fe1483eb546d5bf308d6b2a.jpg', NULL, NULL, NULL, NULL, NULL, '450204197004270617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 713, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:30:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (615, '18877231424', '000000000121', '18877231424', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '华玉书', 1, '450204197005201031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/080ff12ffeb34afd9bca23e607b87942.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/65f4735632ec44a4adcfe2bc69273815.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197005201031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99330fe1297645c8bbb3f15a5fef0682.jpg', NULL, NULL, NULL, NULL, NULL, '450204197005201031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 713, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:28:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (616, '17772035569', '000000000122', '17772035569', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邓正军', 1, '452229198511203439', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/562ff6f9bb164bd48740701c1e0abfc5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe20e994117243459a35592c071e78b8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198511203439', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d4e609d49ecf4986ae16c1a50ed55ea6.jpg', NULL, NULL, NULL, NULL, NULL, '452229198511203439', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:28:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (617, '13788783889', '000000000131', '13788783889', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃海宽', 1, '450203197209180715', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/baf53ba692674db886b2d299a9f0085c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3694b0318d78488692ed06e7f53ea72c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197209180715', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dd02809adbd4e3e8027c99c20f5d85b.jpg', NULL, NULL, NULL, NULL, NULL, '450203197209180715', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:27:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (618, '14793900900', '000000000170', '14793900900', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃巍德', 1, '450211198507172216', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e58b149e28b04a1db3fd3c848ab7e01b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/941a63b1ecbb446ebad436e90ee6b5df.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198507172216', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7bdc9645b4245caa4c726575dd95774.jpg', NULL, NULL, NULL, NULL, NULL, '450211198507172216', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 757, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:26:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (619, '15877263641', '000000000171', '15877263641', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邓玉薇', 1, '452701196810180320', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3d3b5d75e77454c84edc756f4de2a8e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e7e9b8ad487d4616b752d34956f4064b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区永前路3号1栋3单元302室', NULL, NULL, NULL, NULL, 10, '452701196810180320', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b2622d50b9944ea8e59212f40d36b8e.jpg', NULL, NULL, NULL, NULL, NULL, '452701196810180320', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 873, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:25:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (620, '15678719882', '000000000172', '15678719882', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘军', 1, '450205196802281013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6b3764e8c07466a8bdf9f1af3686d08.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fcdd9d0c38e046cea153d3d7846c4557.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区前锋路二区73栋3单元301室', NULL, NULL, NULL, NULL, 10, '450205196802281013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/def5ffeb7a32404c8f288573f548cf2a.jpg', NULL, NULL, NULL, NULL, NULL, '450205196802281013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 939, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:24:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (621, '18077246889', '000000000175', '18077246889', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周玉成', 1, '450222199312221317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/129b1e848b274a75b05a5e8b0b5213eb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/27024aa777c74b4ab180a3b05cb253f1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199312221317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/268b4435c8034e05a742d8325c72f36b.jpg', NULL, NULL, NULL, NULL, NULL, '450222199312221317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 706, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:23:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (622, '15878237243', '000000000177', '15878237243', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '兰荣师', 1, '45022219911223341X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e4774ecf90ab425a9e1371631596a349.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f13ec2c91642412a95914250d1dc4633.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022219911223341X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/712a9311559140d998fea424d0091159.jpg', NULL, NULL, NULL, NULL, NULL, '45022219911223341X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:22:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (623, '13317727317', '000000000183', '13317727317', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '袁贵洪', 1, '450202198310070017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/41cccf68aa9149aa8a7aa33c0d1f0a59.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4cad6d93dcdb47e5b1957d02a1e9ca9a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202198310070017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1888e3a4feda4bb2be7ac33908c89a50.jpg', NULL, NULL, NULL, NULL, NULL, '450202198310070017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 549, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:21:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (624, '15717727119', '000000000186', '15717727119', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁祖靖', 1, '45020519890707073X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f42f8f1e1f44fc09457af9e33e103c1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88fb95d9c2634440a6c705274516c6cc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区胜利路4号集体户', NULL, NULL, NULL, NULL, 10, '45020519890707073X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/61a0d3a5617d4dc7af71e8410a7100e6.jpg', NULL, NULL, NULL, NULL, NULL, '45020519890707073X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 929, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:20:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (625, '18276807438', '000000000187', '18276807438', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈春平', 1, '452524196902114033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba15acb2b939435d8f00ab663e7f305f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9582f9b79dd45c08fea831fad51aabe.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452524196902114033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/36023237c3634a4aa2d8d5116bf4bce2.jpg', NULL, NULL, NULL, NULL, NULL, '452524196902114033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 635, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:19:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (626, '13558222468', '000000000197', '13558222468', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦在新', 1, '452223196510121021', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/813cd28d281b48be82402575aebdec7f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/541a44a6594b44379db6dd52191eccb6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县中渡镇马安村龙额屯8号', NULL, NULL, NULL, NULL, 10, '452223196510121021', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cfc767a59dbe44bf8c2cdc1cc7ca551f.jpg', NULL, NULL, NULL, NULL, NULL, '452223196510121021', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 902, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:18:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (627, '18978055499', '000000000198', '18978055499', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃方寿', 1, '450221198405102914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb74e24997c64121b77e5e6204ee297a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/539806c55b9248c3b9243c43a7cdf71b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区成团镇大荣村雅中屯195号', NULL, NULL, NULL, NULL, 10, '450221198405102914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6b45ba8eca74bd495a2e8f9b07696b7.jpg', NULL, NULL, NULL, NULL, NULL, '450221198405102914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 795, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:17:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (628, '13317623457', '000000000205', '13317623457', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘春', 1, '450521197303037850', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7368389c1b5e42ae871e0a5abc83ee30.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0bca951a815c447da0afdfa9e918d9f1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450521197303037850', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dfefd1b4bc6d4db480238b8933cf0055.jpg', NULL, NULL, NULL, NULL, NULL, '450521197303037850', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:16:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (629, '14795681282', '000000000210', '14795681282', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '兰伟', 1, '450204198106211014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c9c59616cbb74d629971cf86981a7ac8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fdb6062ebc044d6aad9894b892499b75.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198106211014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efdcf7e7847c413dbe8587159a63d9c7.jpg', NULL, NULL, NULL, NULL, NULL, '450204198106211014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 510, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:02:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (630, '18178298063', '000000000207', '18178298063', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗柳春', 2, '450205198109131323', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c1356e39f0948ae8a8fc5fedf5ff622.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/717ea0e1a9f0454dbde1f1bafe679171.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198109131323', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/920c620ca3a0440aa258cd8fe12b0239.jpg', NULL, NULL, NULL, NULL, NULL, '450205198109131323', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 597, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:01:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (631, '18172191071', '000000000213', '18172191071', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '禤小红', 1, '45021119791008131X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9deabca5806249249faa5d64028c5f92.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b06d897796c54c6c86f16ef74d4a43f9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45021119791008131X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd6fe7ba470743b39ff2f94cfbeb434b.jpg', NULL, NULL, NULL, NULL, NULL, '45021119791008131X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:01:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (632, '13657803342', '000000000215', '13657803342', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林和世', 1, '452127197803052772', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/128fb53da0a040c3b81f29d4f864a7dc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/091e4e0d103d40c49f0008f416bd5476.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区雅儒路西四巷6号8栋3单元801室', NULL, NULL, NULL, NULL, 10, '452127197803052772', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f9ef8717276400c96bec3c866bc8ed1.jpg', NULL, NULL, NULL, NULL, NULL, '452127197803052772', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 920, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 15:00:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (633, '13977227905', '000000000218', '13977227905', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李攀', 1, '452223198507073039', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a928fecdf60a4677879ac401e3b85a9e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6ee52e1888e454d83a116694b6618a4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198507073039', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2cae98a9037545cf96d8e8badd618c13.jpg', NULL, NULL, NULL, NULL, NULL, '452223198507073039', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 14:59:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (634, '19925122563', '000000000225', '19925122563', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭环宇', 1, '452227199410264234', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f8a41ff311484ca4a16947d86e2b6c1b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c85de18fa5014053b93859a28e6bbd18.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县拉堡镇柳堡路2号西21栋205室', NULL, NULL, NULL, NULL, 10, '452227199410264234', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2d8a817fb29b4bb4b45b265f142ddf80.jpg', NULL, NULL, NULL, NULL, NULL, '452227199410264234', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 711, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 14:58:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (635, '18178806676', '000000000226', '18178806676', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '毛庚召', 2, '452229198410241065', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1888e3b2b2848fb8b6fcb8341d1c55a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5fa0f7d284fe4238884c39a80d12dda2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198410241065', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd0d711081e3403fb4bff102d7eeff6b.jpg', NULL, NULL, NULL, NULL, NULL, '452229198410241065', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 603, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 14:57:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (636, '19167104873', '000000000118', '19167104873', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾祥建', 1, '450221197704061919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c638bbd658bf43eb802ef5daeb1a8a92.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e5f98882f6cf41bfb060d399cd3d0017.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197704061919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea2f7f5532924f1cbbb89f3af2761822.jpg', NULL, NULL, NULL, NULL, NULL, '450221197704061919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 670, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 14:56:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (637, '15577259422', '000000000227', '15577259422', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张月霞', 2, '450203197906280746', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/361417cf886849f3a10b6401c4b8978b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7cf6c5bd327648b89d4e11fd064a1d87.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197906280746', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92e69589208a4b5fb0e015df9ab5420a.jpg', NULL, NULL, NULL, NULL, NULL, '450203197906280746', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 594, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-31 16:06:58', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (638, '13367727789', '000000000229', '13367727789', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖春强', 1, '450211197004151953', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/27fb3b6c9ed94021a46f902c562d826d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/38563b7ceb7d467a8284533006313098.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197004151953', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b054eab13c6643cdbc7033b65c3481af.jpg', NULL, NULL, NULL, NULL, NULL, '450211197004151953', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:37', 1, '2020-08-21 14:54:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (639, '13377225908', '000000000262', '13377225908', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '卓年初', 1, '450203198701290718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f3725ccfaf242389d0218a400aead91.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c35af823bb214d339a85f320dcb4c98e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '鱼峰区柳东路222号5栋1-301', NULL, NULL, NULL, NULL, 10, '450203198701290718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb5a8cf95b994652b0a9fd277d3fcdb4.jpg', NULL, NULL, NULL, NULL, NULL, '450203198701290718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 524, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:52:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (640, '15678271528', '000000001003', '15678271528', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡志平', 1, '450222198604050316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59d3b2bf11f54c7e89fe83d1750cf312.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b40d8d2cdfea4a069b1509133cf7d785.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198604050316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/81b3066f612b426b95fec2e15f677887.jpg', NULL, NULL, NULL, NULL, NULL, '450222198604050316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 547, 2, 1, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:51:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (641, '15307729293', '000000001005', '15307729293', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张俊', 1, '450204197507290636', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f2e1dbb861e43288987bfc2e0110c5f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d4d36d24a35c4887a9e22f4596839104.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197507290636', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b5914d555a7451daf9f857f2a92ef06.jpg', NULL, NULL, NULL, NULL, NULL, '450204197507290636', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 721, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-24 14:47:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (642, '15177711211', '000000000233', '15177711211', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈峰', 1, '452227197601171613', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/838ef7eb1df74fe6800dbbe3cc01d5b9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7beec92dbb184ce2adbd834316cce277.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197601171613', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99c416e3d39a4a1598da5d83e5c4001a.jpg', NULL, NULL, NULL, NULL, NULL, '452227197601171613', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 926, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:49:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (643, '18877208759', '000000000253', '18877208759', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙启波', 1, '450203198610261014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a907b04abf714e378f20964d4af80920.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f7db2a7b346452ebe21a6e5b9d30f8e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区羊角山镇阳村和村六队59号', NULL, NULL, NULL, NULL, 10, '450203198610261014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d8883f0e769498194f4bad5cacdce41.jpg', NULL, NULL, NULL, NULL, NULL, '450203198610261014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 724, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-09-04 18:18:52', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (644, '19943064638', '000000000257', '19943064638', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '沈忠民', 1, '450204197009151414', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f6ffbcd44ac44d39c6b335fa769e558.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1a00694386f04a8c9e31a02684bc5c81.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197009151414', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2302866bb869418f85f82bd05eaac88d.jpg', NULL, NULL, NULL, NULL, NULL, '450204197009151414', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 538, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:45:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (645, '18307720739', '000000000337', '18307720739', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄军明', 1, '452723197611050219', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/427f1d28efc848479e970494fdc87e12.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5daa61fdb484d0abe493ac33b617834.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723197611050219', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12a22f87ed00438f9b62b117c94478f0.jpg', NULL, NULL, NULL, NULL, NULL, '452723197611050219', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '已经不做司机', 1, 528, 3, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:44:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (646, '13768945188', '000000000235', '13768945188', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁庆飞', 1, '450205197407091011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e5ac8172e79b4cd5a047275ecbdf9bce.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b8a87c949e334ae0838910bc61c210cd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197407091011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7f46fc7f95024090ac5335f1cdac5ac6.jpg', NULL, NULL, NULL, NULL, NULL, '450205197407091011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 746, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:43:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (647, '18077230209', '000000000259', '18077230209', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周柳娟', 1, '450221198411153929', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4427a7317acf425390a65006c6ada141.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/beba1fd2b33b4f55883c86bb78b485f6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198411153929', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/55b9277357df4245a8b55f5f11e99aa4.jpg', NULL, NULL, NULL, NULL, NULL, '450221198411153929', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:43:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (648, '18307727056', '000000000299', '18307727056', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林福荣', 1, '450205197009201318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c605754357a441409e7eda6a78d092cc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/28b11f00b5234a0c975d0e2176141c8f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197009201318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0aa083d6dda449a9259200e45019057.jpg', NULL, NULL, NULL, NULL, NULL, '450205197009201318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 513, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:42:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (649, '13768021338', '000000000266', '13768021338', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢柳生', 1, '450222198103082416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7aa129650c7847da97438dcda2399154.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a9a3e1f36c454b8786a2c39344696f79.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198103082416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a8ed722e6ac432bbac88ae545e3bb04.jpg', NULL, NULL, NULL, NULL, NULL, '450222198103082416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 676, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:41:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (650, '13087723515', '000000000267', '13087723515', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦文飞', 1, '450122198505025515', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f6e73442ecc448daccc3296f607ea52.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/218761ded5e1415185b2527445dfcb7b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450122198505025515', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f3ea55876181417094016c894c1afaa6.jpg', NULL, NULL, NULL, NULL, NULL, '450122198505025515', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 936, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:40:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (651, '18577205424', '000000000268', '18577205424', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁健', 1, '450205196609110757', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1bb00847dac47ea95d552d09a1195b9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/63774be7ad9c4a038232fb2f727bbf64.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196609110757', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/23de8c029b7f4eacbdef209e0a517d77.jpg', NULL, NULL, NULL, NULL, NULL, '450205196609110757', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:39:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (652, '18677294461', '000000000269', '18677294461', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周其黎', 1, '450204198004171437', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/00ee0280782d4a678f1206f9610563fa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6257ea3a00f4c10b60ea998a35ca0d2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198004171437', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f547d4f0859242719191568d7823b590.jpg', NULL, NULL, NULL, NULL, NULL, '450204198004171437', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 916, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:38:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (653, '18978075020', '000000000270', '18978075020', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘凯毅', 1, '45020419820115031X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d4c8255a7db245ba863c5882dde77c78.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b289662ea3e64ab6bb54df4dc8f40f13.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020419820115031X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a58c4435cbf64dff81a0cd21ac6efe25.jpg', NULL, NULL, NULL, NULL, NULL, '45020419820115031X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 595, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:36:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (654, '18867084270', '000000000271', '18867084270', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁国', 1, '450221198812212918', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/67e507f8ac2c44c29e2f9957b913752e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/45802ac318134c66b0aa9f0d790e2ad3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198812212918', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59cf62ff7a53460681d2ee04e6e8bb3b.jpg', NULL, NULL, NULL, NULL, NULL, '450221198812212918', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:35:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (655, '13078079770', '000000000415', '13078079770', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆雨港', 1, '452227199205142019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a603e74976149da8372c8076a66d4c0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e0b1b3cc3414ac19d3024d687fe63d3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227199205142019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/31003a22a8a64b7dacf3df23d6d6aaf4.jpg', NULL, NULL, NULL, NULL, NULL, '452227199205142019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 798, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:34:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (656, '13633085168', '000000000416', '13633085168', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆晓峰', 1, '450211199204190032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d62671e0aa824b0ea1a3e1345381a74a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5cdaf88f821046f192fbae4c6c80210e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211199204190032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f0d1b82cad834b0f8c118522d3c4f8f6.jpg', NULL, NULL, NULL, NULL, NULL, '450211199204190032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 798, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:33:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (657, '15224654426', '000000000893', '15224654426', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '宋秉雄', 1, '450222198101070315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8db942d744e54842aadefc490ec3f4d2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2ec525fe56c4407e8a0a0af8d4259551.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198101070315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9685c910f9754ba595a3e4a5bf754e71.jpg', NULL, NULL, NULL, NULL, NULL, '450222198101070315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 510, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:32:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (658, '18807727135', '000000000417', '18807727135', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱俊', 1, '452501197810070715', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cde022e57a4c4c2aa7dc09d5e14ae68d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9e9ef7200db245918a0b8bd106863210.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452501197810070715', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a08acad1823417b8341e810b51af127.jpg', NULL, NULL, NULL, NULL, NULL, '452501197810070715', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 761, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:31:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (659, '15278886975', '000000000622', '15278886975', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄行', 1, '450222199308050316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88800351549d41ae8416726061b63fa7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/743f40da054741348388c445bdfe66b2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199308050316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e91ae5b5c2e4e67977443d3e596603a.jpg', NULL, NULL, NULL, NULL, NULL, '450222199308050316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 826, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:30:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (660, '18177221425', '000000000629', '18177221425', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '安乐', 1, '450203198309061013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87e790a1071947a5aa9bf7eb1316e77f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/624c3edef8e2474e97557bbc4060049f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198309061013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2274ac17027e40ba98ca1b9ee135e0e6.jpg', NULL, NULL, NULL, NULL, NULL, '450203198309061013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 639, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:25:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (661, '13707729864', '000000000533', '13707729864', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦雨聪', 1, '450205198908010050', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5cfd4aceaed346b180c3238dcc2651b7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7d8cd8b0002a45d0874cbc8a1d743c39.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区八一路10号503室', NULL, NULL, NULL, NULL, 10, '450205198908010050', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f2dbd972c3224a52a3d10451e2895cee.jpg', NULL, NULL, NULL, NULL, NULL, '450205198908010050', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 779, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-09-08 12:06:52', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (662, '13517721757', '000000000700', '13517721757', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆耀程', 1, '452123199108244311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8ab54f44ede46e3a91149676cdf97c1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/529fca1ea67b4f64bd125157bfeea829.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452123199108244311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/95f39503635245649e7e082f5df5f2a6.jpg', NULL, NULL, NULL, NULL, NULL, '452123199108244311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:23:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (663, '15678794690', '000000000290', '15678794690', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘锡花', 1, '450205196707311018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0a0133c82bf462bacf602ac88d1b1c9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0aabeab50eea407ea7220ec439dcd3fd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196707311018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6b47169406e2446a878e026aefc0f725.jpg', NULL, NULL, NULL, NULL, NULL, '450205196707311018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:23:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (664, '13617803506', '000000000523', '13617803506', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何述坚', 1, '452723198111010856', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2cbb954783a94dc08178ae1f5b9d793e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f49ddcbb34424e36ad9304d3ce8f7dae.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723198111010856', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04790ce9ae0041d6aca8b344650fae06.jpg', NULL, NULL, NULL, NULL, NULL, '452723198111010856', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 584, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:22:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (665, '18277237437', '000000000517', '18277237437', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦冬', 1, '450203198912210036', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8481f2b1762d4b7082b49bf0303b70ca.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/969354798c6c48d692f798f4c226f7bd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198912210036', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/31204191dcd54149ac05cfba4bfbee98.jpg', NULL, NULL, NULL, NULL, NULL, '450203198912210036', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:21:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (666, '13768859525', '000000000813', '13768859525', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦春德', 1, '452227197601082610', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88f3165bcb2744fea92095fa9547a796.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2bb2d926d7f84806b7cf1636412f2577.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197601082610', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4155e08a02c148f5bf1308fdf13bcbc5.jpg', NULL, NULL, NULL, NULL, NULL, '452227197601082610', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 536, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:20:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (667, '13633072615', '000000000568', '13633072615', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭佳妮', 2, '450222199003311327', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3bddd2a21b04ee096849111fc37432f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/250c9cb2fc1a4cea83ca8c4fde3e5366.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222199003311327', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3e3edbbf60a4b8c806b3597d8c23547.jpg', NULL, NULL, NULL, NULL, NULL, '450222199003311327', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 747, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:19:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (668, '14793935949', '000000000272', '14793935949', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦可芬', 2, '452229197906180628', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/56770c223c2f44afb4a880096c38d417.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87d074aa31b141108a55db81c2a4da5a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229197906180628', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c93d72aa68d84705aafc6045e017d0b9.jpg', NULL, NULL, NULL, NULL, NULL, '452229197906180628', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:18:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (669, '18077215377', '000000000280', '18077215377', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林贵', 1, '450304198004110517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd648d3a721244e3a52cb7e314fa7ad6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/275d36d2f11a46daa9e0f30ffc01967e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450304198004110517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4cc856c4a19c4c4a920de0402a4b992f.jpg', NULL, NULL, NULL, NULL, NULL, '450304198004110517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:16:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (670, '18778926965', '000000000283', '18778926965', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陶引继', 1, '45022219791204131X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/830a3988541f4fd285ecc9120a9e6648.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df04ad00527f4ccdb45644f7ca00e2ab.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022219791204131X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92cd6722156a40b0b853150790abfe78.jpg', NULL, NULL, NULL, NULL, NULL, '45022219791204131X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 662, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:14:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (671, '13877223468', '000000000285', '13877223468', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘福超', 1, '452224197905134038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e6cbacf8d174725bb6471669a06ec01.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/98835375566c49c79d7c3a388e224564.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224197905134038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82358cd2ac4144bf80051bb6e5a8a4ad.jpg', NULL, NULL, NULL, NULL, NULL, '452224197905134038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 749, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:07:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (672, '19177228029', '000000000286', '19177228029', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄有排', 1, '450221197308040032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c4993f404d5400dac67f52cda62f7a2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d27332333af40738c4c2b2787310765.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197308040032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6e2595072e4a46c58c992fbf3601f0a1.jpg', NULL, NULL, NULL, NULL, NULL, '450221197308040032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 599, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:06:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (673, '18172202192', '000000000288', '18172202192', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁丽莉', 1, '452201198009121200', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2ca60ca3795b4ed3b89af49199d0afa3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/46a568fdf8e04aab844e930d87d15686.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452201198009121220', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9cf507c02a3141a182cceba4903a0000.jpg', NULL, NULL, NULL, NULL, NULL, '452201198009121220', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 530, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-27 15:11:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (674, '15278878283', '000000000292', '15278878283', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁增', 1, '452229198806200059', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f40288c9e4924303bcf953a3fe649524.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd1fdce83e764a8193ec4f4381bb0389.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198806200059', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a17380af1ccd47e6993adc27c92ae689.jpg', NULL, NULL, NULL, NULL, NULL, '452229198806200059', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 657, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 14:01:24', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (675, '13788697601', '000000000293', '13788697601', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王健奎', 1, '452123197808203132', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78966ff2887440428a5f942ed13cf1e9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6b1a12479f7d476baf2fdacb5a815d8e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航四路9号15栋3单元1503室', NULL, NULL, NULL, NULL, 10, '452123197808203132', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df92426c153e47cc802699c2a4ce4301.jpg', NULL, NULL, NULL, NULL, NULL, '452123197808203132', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 572, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-09-08 11:42:32', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (676, '13768946787', '000000000298', '13768946787', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒙雨源', 1, '450221197203194932', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d45c99a5e4b4ef9b9211f04308a8d45.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fca349775d6848ada26bd68e6e966f64.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197203194932', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/31c88c1d651f48a5847485ccbaecd134.jpg', NULL, NULL, NULL, NULL, NULL, '450221197203194932', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 13:59:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (677, '17344239811', '000000000651', '17344239811', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张孩', 1, '450221199010202018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2409d6f45a6d4aba9c9d6bb7a64e378e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99863090272942bfa593bb75db373f4b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199010202018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ff6f8e62ae948c1bebf459496a4a653.jpg', NULL, NULL, NULL, NULL, NULL, '450221199010202018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 652, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 13:58:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (678, '18877223736', '000000000669', '18877223736', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦亮', 1, '45022219800420211X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a8eb392487f74f80bfd2a2e41fbecb22.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9fe69cc76bb64e249eaf582c810266bf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022219800420211X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8ee6f619388c49f6963103170360dd7e.jpg', NULL, NULL, NULL, NULL, NULL, '45022219800420211X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 13:57:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (679, '15907822267', '000000000705', '15907822267', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄仕院', 1, '452626198912202990', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9832fa84a248481d9c142e19249d2fc6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c9a2c574b8994d0db17305417644a076.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西百色市靖西县吞盘乡必样村果北屯13号', NULL, NULL, NULL, NULL, 10, '452626198912202990', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cc793dd7b7ec45b0b2799b6faf56c9f8.jpg', NULL, NULL, NULL, NULL, NULL, '452626198912202990', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 816, 2, 1, '1', '2020-08-17 18:03:38', 1, '2020-09-04 17:24:55', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (680, '18978058721', '000000000706', '18978058721', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖招宁', 1, '45222519900205215X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1981a03f02e84a89ac1f6113fab285dc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9428d03316964c8e990e90a20d6a53d3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222519900205215X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/585d2bdf794e4608a0daa58fb16d2dd0.jpg', NULL, NULL, NULL, NULL, NULL, '45222519900205215X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:03:38', 1, '2020-08-21 13:56:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (681, '15077216767', '000000000708', '15077216767', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何飞林', 1, '450211197108071915', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f6e9147d365410fb2690142b48833a8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5e3cb0830ad949518c9149246b828056.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区河北新村一街三区10号之二2栋2单元102室', NULL, NULL, NULL, NULL, 10, '450211197108071915', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e693aa7cdfc547e7b6f7851ae519a52c.jpg', NULL, NULL, NULL, NULL, NULL, '450211197108071915', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 562, 2, 1, '1', '2020-08-17 18:36:45', 1, '2020-09-05 13:02:40', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (682, '15678775566', '000000000707', '15678775566', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陆娟', 2, '452225197309030060', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/750cd9c8dd6e4cba8932536cc776907a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f6dd3d837194292b814b6f635dae0c2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452225197309030060', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7fc3d797717841bc8ac6be039bed3d61.jpg', NULL, NULL, NULL, NULL, NULL, '452225197309030060', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 719, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:54:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (683, '15177744275', '000000000709', '15177744275', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁波', 1, '450205197307050714', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/19e118dde01a4a8b8f4d374b8a7f85e8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a065c289893848439a6de0212313fd61.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197307050714', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/565ce46aaec64f90aa2e30c64bd93c33.jpg', NULL, NULL, NULL, NULL, NULL, '450205197307050714', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 571, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:53:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (684, '18579920612', '000000000710', '18579920612', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张发强', 1, '432322196806175111', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dd08515638a84733b7cbb839d32d08c1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f57dc26f5c794476a8df61628ddb6ac6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '432322196806175111', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4c4d4f0d1b50453f83f3b1129388fb14.jpg', NULL, NULL, NULL, NULL, NULL, '432322196806175111', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 685, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:51:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (685, '13978017309', '000000000711', '13978017309', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '付仕典', 1, '450221197410201533', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ce1f6281e47479d864f3c1f2a66bef3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8f634aaa13249e4abd3f124c192a7cb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197410201533', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/910a9b1f618c41b4a86a5d2c05412cdb.jpg', NULL, NULL, NULL, NULL, NULL, '450221197410201533', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 541, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:49:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (686, '13877251473', '000000000278', '13877251473', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦秋银', 2, '450211198408100524', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/36008525d53a40499b1eea125a5087b7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bbfe604d71dd4ac18612868d029e4a23.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211198408100524', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d93cfcc3b37d4671a309d877f6f98034.jpg', NULL, NULL, NULL, NULL, NULL, '450211198408100524', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 721, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:48:22', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (687, '15877279015', '000000000712', '15877279015', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖柳生', 1, '452127198707060611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f17a83a5526d4badb47388f7bf4c73af.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f941c48ba52546fe8015bdebdd2b7bc3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452127198707060611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/540fee96042b4596a13b7f599503c284.jpg', NULL, NULL, NULL, NULL, NULL, '452127198707060611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 698, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:46:50', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (688, '17736660774', '000000000713', '17736660774', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王凯', 1, '450205197903150033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a818683e2f1a42a0a5bb337af1e200c8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9add27f5fa9445cdb74ac26df0df9c64.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区三中路89号13栋3单元502', NULL, NULL, NULL, NULL, 10, '450205197903150033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a71771a03f2417489a3f59b4f1e70d6.jpg', NULL, NULL, NULL, NULL, NULL, '450205197903150033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 674, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-09-05 12:58:11', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (689, '18076744288', '000000000715', '18076744288', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃健', 1, '452229199302211437', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/11cb3d6a2f9d41948cf512e9d48d347c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b35cf94ff6434270895f7162847107bf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229199302211437', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2cd11f30a7f444a908d49ad97d33674.jpg', NULL, NULL, NULL, NULL, NULL, '452229199302211437', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:45:16', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (690, '13078015693', '000000000716', '13078015693', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫仕玉', 1, '450221198808151438', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/defc47429537433480fac6a7c7e15828.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/71bb4302835b420494ce2f6006519231.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198808151438', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82d6cce5fb76417db0b9a865e4094222.jpg', NULL, NULL, NULL, NULL, NULL, '450221198808151438', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:44:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (691, '18778260893', '000000000717', '18778260893', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦显军', 1, '452227198302045013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2c31f99e572c40229e3fe7e4cac48d6b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d52558973ab64a949a6ceba21839a3df.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227198302045013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c7df33264a940b083b59eed74f1c6ee.jpg', NULL, NULL, NULL, NULL, NULL, '452227198302045013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 697, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:43:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (692, '17507725198', '000000000718', '17507725198', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何应望', 1, '450202197503070019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/07536a1e0fd5418b906675939a5fd6d4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0de013fbfc3a490288b61b9a4a5e68c3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197503070019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0673e2e825284d43b3425c239c613e5f.jpg', NULL, NULL, NULL, NULL, NULL, '450202197503070019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 687, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:41:53', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (693, '15677213696', '000000000719', '15677213696', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨海文', 1, '452502197301056372', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b90522601b73444581d8cf48b841ac8d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/790b3edef82d4d358c8ff9acb3941b72.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452502197301056372', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3e129dc2130248ae92897cd1340195f2.jpg', NULL, NULL, NULL, NULL, NULL, '452502197301056372', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 736, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:40:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (694, '18778920631', '000000000720', '18778920631', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李杨观', 1, '452231199012052513', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dd6ed5df248f43258efa53f051832e99.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42909edcb13e44bdbc3a613590c466c6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231199012052513', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a68c0ac76634a77891b8cf1a163fe14.jpg', NULL, NULL, NULL, NULL, NULL, '452231199012052513', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:39:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (695, '18607727109', '000000000722', '18607727109', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '严善勤', 1, '450202196905160338', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5fbeb273f8e7453c93a0b573c99a8187.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afe3e40f331b43d783ec6bc20ea3af52.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202196905160338', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ed6df9fe6fca483db3ba342473b5ba28.jpg', NULL, NULL, NULL, NULL, NULL, '450202196905160338', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 594, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:38:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (696, '13737232833', '000000000866', '13737232833', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦彬一', 1, '452224196706133038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fceb12ecfe064f389d91935b1124449e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99e1b2755d3a4116acc8aa55342cf613.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452224196706133038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/09a49fbf13df4eafbc8ccf012f61f39a.jpg', NULL, NULL, NULL, NULL, NULL, '452224196706133038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:38:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (697, '18077229505', '000000000723', '18077229505', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎有忠', 1, '452231197510162011', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/419fea30d242443c9cc3ad895e5cc1b4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/62306f78414f4d1eb8a1244c3103931e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231197510162011', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f19d91954a94052852aea7ead914bde.jpg', NULL, NULL, NULL, NULL, NULL, '452231197510162011', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 853, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:37:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (698, '13633035077', '000000000725', '13633035077', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '计佳明', 1, '450221198601254915', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e53f856a99354efa85eef3dc60af1406.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/369b4f3fae6f42cd8fed1f08aa0e545e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198601254915', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf6cf6aee0da4163b37b6a3fad69950f.jpg', NULL, NULL, NULL, NULL, NULL, '450221198601254915', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 13:36:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (699, '18607879291', '000000000726', '18607879291', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫息海', 1, '45022219711020267X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a4fba334c6a46a78f3b2142e0fdda27.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8e41b3e18bf47aab880ebecba679f7d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022219711020267X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/103c2e51cf2c4a1ca7585501bf09b7ce.jpg', NULL, NULL, NULL, NULL, NULL, '45022219711020267X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 548, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 11:44:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (700, '18207829136', '000000000727', '18207829136', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨锦坤', 1, '522723197512181211', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3ac53abaaf3f40469137768de7ae6bf6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/97301757661c46fba4bbebe34b5049cc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '522723197512181211', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/682f432c63214b08ac5ef092c127fd4a.jpg', NULL, NULL, NULL, NULL, NULL, '522723197512181211', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:45', 1, '2020-08-21 11:43:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (701, '15289630365', '000000000728', '15289630365', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陶志球', 1, '450222198411101658', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01762679c2f747d1ade75407e0d5ebbe.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3635d8444e75491396b8cdcda9d9b3b7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198411101658', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/adf1c054acd5437db47aa060fc314aa3.jpg', NULL, NULL, NULL, NULL, NULL, '450222198411101658', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 662, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:42:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (702, '18648854225', '000000000729', '18648854225', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '甘桂凤', 2, '450881198012225648', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b662e607da444068a9dfbf454a011ea2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/29bf34d021e34a58944ce70dfcbbd574.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450881198012225648', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/64aa90c28ccc4a4281bc12afd95986aa.jpg', NULL, NULL, NULL, NULL, NULL, '450881198012225648', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 608, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:41:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (703, '13481922338', '000000000730', '13481922338', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '巫勇', 1, '450222197507102415', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/61c60c037a6240eabc5e316d205c5028.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6cca471854ba4c67a769405153937b4a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197507102415', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0ce03b5b86a40949f6f28a7e9f78d9a.jpg', NULL, NULL, NULL, NULL, NULL, '450222197507102415', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 676, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:40:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (704, '15203478636', '000000000732', '15203478636', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵连友', 1, '142602197602133012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ff34b6365554077b26bc14be5bd61fd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd1c4889e4b444ff87db1aa511961412.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '142602197602133012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e5d19abd64945fab385ffa92def94b1.jpg', NULL, NULL, NULL, NULL, NULL, '142602197602133012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:39:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (705, '13669668996', '000000000733', '13669668996', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王刚', 1, '450204198204141013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1334a2f17f3042ca84e5232578654a61.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0d2e17b93dd147ed9274cf69753a7e50.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198204141013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/229e075f32734d6e842330d0dc2cc583.jpg', NULL, NULL, NULL, NULL, NULL, '450204198204141013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 783, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:38:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (706, '13307721813', '000000000734', '13307721813', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎海波', 1, '441900197702090033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4ec4c0b434b44547a12f50098ff3ca11.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/789d7c2f3b2e409ab92d65b18738981e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '441900197702090033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a45b25f9b894bdcaf8fe6f3bed5c06a.jpg', NULL, NULL, NULL, NULL, NULL, '441900197702090033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 496, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:37:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (707, '18977024153', '000000000735', '18977024153', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄福青', 1, '452231197507130537', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8ee3c790ea6640a3b20705f9cbe098a0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/38b59ed069f34757b6c786d419810233.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231197507130537', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6d1933afba34e6cae852662f1decd55.jpg', NULL, NULL, NULL, NULL, NULL, '452231197507130537', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:36:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (708, '13481909830', '000000000736', '13481909830', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘东苗', 1, '450221197810082414', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/adea5a8d84c04ebda4af49619d651f2b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f441d470b687484d9580bc6e18492bcf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197810082414', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b403c4434d934c08abe5d0392f7c42a8.jpg', NULL, NULL, NULL, NULL, NULL, '450221197810082414', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 774, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:34:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (709, '18477270169', '000000000737', '18477270169', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周旺龙', 1, '452227197304171617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d255adbafefe4921a065888f0b0970ae.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e63884ebe0f454b9cc9a2ea17a8095a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227197304171617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd1371ed4f8a4ce99c046ab931bb7ea1.jpg', NULL, NULL, NULL, NULL, NULL, '452227197304171617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:34:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (710, '18172194409', '000000000738', '18172194409', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦文常', 1, '450221198410102978', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5b8c3d4d6dac405487f6564a97b81ccd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0f458cb922784a12938ef0581014f49e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198410102978', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba2906ec6c9e4fa78a66ed89242a9fc8.jpg', NULL, NULL, NULL, NULL, NULL, '450221198410102978', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 742, 2, 1, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:33:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (711, '13877222978', '000000000739', '13877222978', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄健', 1, '45020519800911071X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7241a24012da4f92bf874e58a830c956.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7fc4b2a209a433a856ed63dec4e3157.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020519800911071X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8dd2edff3b974162a7d9edf4d7ee11c0.jpg', NULL, NULL, NULL, NULL, NULL, '45020519800911071X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 821, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:30:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (712, '17507728515', '000000000750', '17507728515', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蒋迎春', 1, '450202197308270015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/18f9458edb1347c196ab113978e0aac8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/954d46f8a72945e590b11dd5f8b53823.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450202197308270015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4aa44f44fbc84fff8873302bb60f1819.jpg', NULL, NULL, NULL, NULL, NULL, '450202197308270015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 681, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:29:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (713, '15078251536', '000000000751', '15078251536', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦嘉辉', 1, '452223197708082017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/80ef98b5e1f54765963fc4f9d97c8953.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ccaa547f12984be58dcdd69e87e3d9fd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197708082017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b89e0fde13c4435f9420d7388279f313.jpg', NULL, NULL, NULL, NULL, NULL, '452223197708082017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 505, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:27:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (714, '13788524357', '000000000418', '13788524357', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦志平', 1, '450204199510241412', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0199f1f373444a3e83ff11b8eaa22670.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78a7ba3332bc40e680b438d59d7b82fd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204199510241412', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8e703c65372847dfbd6670107cc1538c.jpg', NULL, NULL, NULL, NULL, NULL, '450204199510241412', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 658, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:26:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (715, '13877287679', '000000000419', '13877287679', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊成山', 1, '450221199109302975', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a1696e5cdc14686aa3bfd80ac571f9e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c718901cb914e31a985bf3b54166e61.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199109302975', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92bd24be429f4d1083bc29fb6d43ef7b.jpg', NULL, NULL, NULL, NULL, NULL, '450221199109302975', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 788, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:25:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (716, '18807725459', '000000000420', '18807725459', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周强', 1, '450211197204191319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf3d00550c4546fd866c6947a3b6bb95.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5948cd7def64d0484ae73801f471e28.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区高新南路10号17栋1单元401室', NULL, NULL, NULL, NULL, 10, '450211197204191319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0bc9f1e8f61f4437af5a9b4bf31d9d35.JPG', NULL, NULL, NULL, NULL, NULL, '450211197204191319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 743, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-31 16:12:00', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (717, '13877204008', '000000000752', '13877204008', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁伟', 1, '450204197310261030', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1dc9676ba7ce4e5bb66de8f46e1e6385.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9755ec300cf414b967c7a8ad04fa8d5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197310261030', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf5aab432657480295acafb128ef4990.jpg', NULL, NULL, NULL, NULL, NULL, '450204197310261030', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 683, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:20:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (718, '13977284932', '000000000753', '13977284932', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫作全', 1, '452124198406081815', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/804167ea92044fbfad7774ca392a3ac0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ae3b5c1407b644a993a69595e70aa403.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452124198406081815', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a1fc45242b8d48af9e634346e7c9085a.jpg', NULL, NULL, NULL, NULL, NULL, '452124198406081815', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:20:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (719, '18775167971', '000000000756', '18775167971', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴能文', 1, '450222197502170312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4d50eac05e649b0af90507c9fda9249.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e622c5f1dc24bc295b54103a49f7e8e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197502170312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2699b7421939483bb518ddf292507927.jpg', NULL, NULL, NULL, NULL, NULL, '450222197502170312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 882, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:19:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (720, '18878405665', '000000000757', '18878405665', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊成勇', 1, '450221197904202915', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2abdff56cf1f4b93a7056573c6d9b51a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/24c9118ff61342bab5b7907628c476b9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197904202915', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/feeebcdbf6ef463e8ce20f10a6f1d54f.jpg', NULL, NULL, NULL, NULL, NULL, '450221197904202915', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 808, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:18:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (721, '13978095995', '000000000760', '13978095995', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘毅', 1, '450203198502171310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0fe58a5a80224669961569bce23914bd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b01b3ad5f2c349928ccd8cf1a7829be6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198502171310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d9174744a5a24f7390b275b8b44b8a86.jpg', NULL, NULL, NULL, NULL, NULL, '450203198502171310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:15:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (722, '18172216248', '000000000721', '18172216248', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃建稳', 1, '450221198403202452', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb363cf1dcf34ef8bebc329c032b6c23.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e780195520c1410faf284413e627bd3b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198403202452', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a271b4e554a24c6b81176d38bbe1ecfd.jpg', NULL, NULL, NULL, NULL, NULL, '450221198403202452', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:14:10', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (723, '18076704224', '000000000761', '18076704224', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁天保', 1, '450881199708082336', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/064ad58cc30e485493d4c62d1b58d522.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec26c04d967346e2be89cbcb659c9180.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450881199708082336', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9bf539e3e82c4682af355fca5ec17731.jpg', NULL, NULL, NULL, NULL, NULL, '450881199708082336', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:13:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (724, '18977287644', '000000000762', '18977287644', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏展申', 1, '450981198406170016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8eb85ba0249845ce9bc39c5c7ba6a03f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/359e2e61545b4bc087f905dc565d74ae.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450981198406170016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4a8a37cd7e240659e3070cbfaec7a42.jpg', NULL, NULL, NULL, NULL, NULL, '450981198406170016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 921, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:12:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (725, '15077271175', '000000000763', '15077271175', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周靖宁', 1, '450221198607153939', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8767d387287040f79744cabebcbdab2a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5f2ca6d462f4afbb1dce28660010621.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198607153939', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/989ba71ead73403bb18ff28f64141b91.jpg', NULL, NULL, NULL, NULL, NULL, '450221198607153939', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 701, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:11:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (726, '18076741031', '000000000765', '18076741031', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦海金', 2, '45223119850622152X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d89a56e06ed147f49fde916036d9f492.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f7ac79c9a44484caccb4bec8cacef05.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45223119850622152X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5b800bae8e434437b706cc885199d0e7.jpg', NULL, NULL, NULL, NULL, NULL, '45223119850622152X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 789, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:10:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (727, '13617829311', '000000000766', '13617829311', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝华', 2, '452231198602112024', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e8d8dad8f8044acca69fd3a38e57e2ac.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7eca43c8326f4909a688e0b1f9464b39.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452231198602112024', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ee2a9195a4e140f48151a0c4881d9340.jpg', NULL, NULL, NULL, NULL, NULL, '452231198602112024', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 789, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:06:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (728, '18589879917', '000000000767', '18589879917', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李占余', 1, '450221199012301458', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b5eb8e5405a74d42bbacf461e2e78179.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f93b257c77544c880bf4e0e69be9257.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199012301458', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4da1b1c6842d42279b36849be29ca4cf.jpg', NULL, NULL, NULL, NULL, NULL, '450221199012301458', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:05:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (729, '19978269903', '000000000768', '19978269903', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何发林', 1, '452201196905150012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2645c2a310a14f2ab6006123071c798b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9958e3d6e8ad4b198378ab33505f3df5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452201196905150012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5494ee7be581477a94fab525735eddbd.jpg', NULL, NULL, NULL, NULL, NULL, '452201196905150012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 694, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:04:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (730, '13078019998', '000000000769', '13078019998', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦昌学', 1, '452229198906300110', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f51c02c770d4390b6934bc372b38d7b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c6e768b1cc6f49ac9ffa11393f47e8ac.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198906300110', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5b71837772e440b889ff1e44ae480b3f.jpg', NULL, NULL, NULL, NULL, NULL, '452229198906300110', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 834, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:03:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (731, '13877285689', '000000000770', '13877285689', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈明旋', 1, '452325198307221517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/62ffaef7462d4708951c75eb7a5bf0d1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/19f21638ae4343d39f20ecc327e9dafe.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452325198307221517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f5125a7f76d4060969880bd99acdf1e.jpg', NULL, NULL, NULL, NULL, NULL, '452325198307221517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 673, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:02:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (732, '13768898582', '000000000771', '13768898582', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗志华', 1, '45020519671030103X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9653484af9ea4e9eb2c8d847255d575b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c7c343d3cce24b01b99c63f86f596c59.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020519671030103X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7b21a45dc3e419ea2be90b250b0b20f.jpg', NULL, NULL, NULL, NULL, NULL, '45020519671030103X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 946, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 11:01:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (733, '13788482188', '000000000772', '13788482188', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭丹丹', 2, '450221197605103925', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd2ebc85ed5545d2a668402ab04caef7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e72a647185f4261a9354b6513e7e902.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197605103925', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8355e4c32f9445a69e5a60a19a57bbec.jpg', NULL, NULL, NULL, NULL, NULL, '450221197605103925', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 539, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:59:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (734, '13481206473', '000000000773', '13481206473', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃引强', 1, '450211197308102210', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2ce982e8e5f44491b32e3796403507fb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ecd213b99c745fabb476850eb04d3a7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197308102210', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad9ad7a1dbe94ab38cbe4b11f0c8e700.jpg', NULL, NULL, NULL, NULL, NULL, '450211197308102210', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:58:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (735, '13557721570', '000000000775', '13557721570', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢维', 1, '450211199205180012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04e6e2636bc84f47a013e75a0e980a42.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4cfb4441a3d14ab89bda193980f4e3d7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳北区', NULL, NULL, NULL, NULL, 10, '450211199205180012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c210bc4fdb24117a1bcce4c2ad7dcc7.jpg', NULL, NULL, NULL, NULL, NULL, '450211199205180012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-27 15:08:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (736, '18807724106', '000000000776', '18807724106', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈波', 1, '450211197112110518', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d5f6b5ad005a4b0ba0a546fd8962fcbd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12fd067431bc4e3ba1a6aed433158146.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197112110518', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac2f66b54cc144f3a61c0eb2c9a5854c.jpg', NULL, NULL, NULL, NULL, NULL, '450211197112110518', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 519, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:55:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (737, '15877239086', '000000000777', '15877239086', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '邓雄', 1, '450981198510070656', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fbaab83b89eb43b3acf43797ba2a5334.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/455c8023d85a4f18ad3fea74f857e0dd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450981198510070656', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f36fe172a804356b3e3ec09b48ec805.jpg', NULL, NULL, NULL, NULL, NULL, '450981198510070656', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 803, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:54:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (738, '13087727903', '000000000778', '13087727903', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦俊', 1, '450204199210311036', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f6a04e6b98ec467f87dd2566a2f90ddb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea09119d3954413485a2bd36419ce629.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204199210311036', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/348b227db9ab4da69325906c1f2995b6.jpg', NULL, NULL, NULL, NULL, NULL, '450204199210311036', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 619, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:53:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (739, '18077203353', '000000000779', '18077203353', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄生华', 1, '450203198806050016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a2961c5ff4a4e80a4b118d72568d660.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f2adf49fee14b95895ad4a23a7330af.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198806050016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3d3a83e343f4078a1d2466abad30d65.jpg', NULL, NULL, NULL, NULL, NULL, '450203198806050016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 707, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:52:53', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (740, '19978254124', '000000000780', '19978254124', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦建', 1, '450205198912140712', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d867e525064240a6852714054447ea0f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/327dc120d93a4678a88944fd92720505.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198912140712', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec10ce77b66c475cb92953641bbabfd1.jpg', NULL, NULL, NULL, NULL, NULL, '450205198912140712', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 582, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:51:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (741, '15877286714', '000000000781', '15877286714', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '姚罗涛', 1, '450221199004285419', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/246647b5309246fa8d6a3b4d29490313.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d254a4552c7f46aab90dc2c6ea149c31.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199004285419', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/229dd8c120964cd79cebaae0b02fd5d7.jpg', NULL, NULL, NULL, NULL, NULL, '450221199004285419', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 914, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:43:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (742, '18177261829', '000000000782', '18177261829', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙院明', 1, '452229198105031416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/74f70c274dd14844a2a6d1306efe57ac.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f4e929f97d3c404bba564134ee763d8b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198105031416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90af3ad6e61642f1a71d13b16ab258a8.jpg', NULL, NULL, NULL, NULL, NULL, '452229198105031416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 737, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:42:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (743, '13850315681', '000000000783', '13850315681', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张艳祥', 1, '450205198005160015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e34a7a2ae0c245df948479e6a1e4b443.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d816072456fd4dcbbb5be298311ba13c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198005160015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d7265a7ad0149b399f8e2773c36e71b.jpg', NULL, NULL, NULL, NULL, NULL, '450205198005160015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:42:07', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (744, '17736663141', '000000000785', '17736663141', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦志肯', 1, '450204197311150615', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/456bd17588a34826bc684fa54b7c8bff.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e12634ef8e354a939361b5cd1e37a503.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197311150615', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f32ba748a2674b3f832949c460a6eba2.jpg', NULL, NULL, NULL, NULL, NULL, '450204197311150615', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 810, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:41:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (745, '13397727759', '000000000786', '13397727759', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫振伟', 1, '450104197411261018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e5be3cd7fc444c8cac5d2fce225b13f6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e6196088ca834e63b5a9dc835cc4fea6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450104197411261018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea2d6f1c48294cf084610904d48ff27f.jpg', NULL, NULL, NULL, NULL, NULL, '450104197411261018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:40:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (746, '15877272678', '000000000788', '15877272678', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦安结', 1, '450221196709014930', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbe47e53349644138042032c89fc7347.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c38a03797b145dd9a4ab91adeb7404c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221196709014930', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8b3d8b0264d94377a3125e118a1d52ad.jpg', NULL, NULL, NULL, NULL, NULL, '450221196709014930', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 606, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:39:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (747, '13977275582', '000000000383', '13977275582', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周荣华', 1, '450211197704060016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f6c7b7d490840aeb96541439eb87518.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1db4c7ec4444fe6a9a29288a99b5e41.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197704060016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/17959d5905a54046903ce5e49ab8f7ee.jpg', NULL, NULL, NULL, NULL, NULL, '450211197704060016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 718, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:35:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (748, '13207729450', '000000000790', '13207729450', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡钊铭', 1, '450203197911071316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f75689bc27ec4909a38672929b09e87c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2ea17b1f38264b5094fcadff24d990b7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197911071316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fb4db33c4d2b4f999f4d28e1c45a49c4.jpg', NULL, NULL, NULL, NULL, NULL, '450203197911071316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 644, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:33:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (749, '15307823934', '000000000791', '15307823934', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭君', 1, '450204198509150316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/60f12a03652d4f14830ef34ab140ec0b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbd27f5a55314863bdd7e72e9e283534.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198509150316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/46e41f4b305542b3bfa19f753302c76e.jpg', NULL, NULL, NULL, NULL, NULL, '450204198509150316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 747, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:32:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (750, '18878216740', '000000000792', '18878216740', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '姚吉', 1, '450221199212081517', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/548ef83f7ee846a7875394880e9ae447.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/86f5393ca76c4f4ea437a4ca0891cd9b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199212081517', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/626bdb0b281742fb8c873692f2fcaca6.jpg', NULL, NULL, NULL, NULL, NULL, '450221199212081517', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:31:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (751, '13877293077', '000000000793', '13877293077', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃凯', 1, '450205197206140016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92485c76f4714a90b942a3c3b9b0ab9c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b59adffe9770438182c165d7912c76e3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197206140016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b31f7d33f7064510b2017375133709ee.jpg', NULL, NULL, NULL, NULL, NULL, '450205197206140016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:30:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (752, '18978056454', '000000000795', '18978056454', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦善醒', 1, '450222198306043417', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8747ff177e44b94b7c1ee55ae090fb5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4e5eeb3f2a624cc0af5bd53f8ec852e4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198306043417', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba639e3b107f4b40aea519b4694cf07f.jpg', NULL, NULL, NULL, NULL, NULL, '450222198306043417', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 796, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:29:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (753, '13630091092', '000000000797', '13630091092', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄太宗', 1, '450204196510040019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6aa0fa3778794732a228314bf5d8a1c2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/095ff48eadba4c638aebbdaf0ee63243.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196510040019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/522cdf04dc484840bbf2b54763cb325c.jpg', NULL, NULL, NULL, NULL, NULL, '450204196510040019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:28:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (754, '15077213553', '000000000796', '15077213553', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢春', 2, '450203197805050722', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/68900983e0ae4c9a94b82081d10729d5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6bcc2cca77334ceda1ab1c242b36f2bb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区西江路22号10栋18室', NULL, NULL, NULL, NULL, 10, '450203197805050722', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea288c10ff544e86aab8f1890744471b.jpg', NULL, NULL, NULL, NULL, NULL, '450203197805050722', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-09-08 11:54:02', 39, 2, 1, 7.60, NULL, NULL, 7.60, 7.60, NULL);
+INSERT INTO `t_driver` VALUES (755, '15577003600', '000000000798', '15577003600', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁运', 1, '450221199103142456', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9160164bcf5b41e59538bace78d7a400.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3bd515b86cc04aa7b66456bfefc37f56.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199103142456', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3cb7721a760749d3a588392ca5c0dc82.jpg', NULL, NULL, NULL, NULL, NULL, '450221199103142456', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:27:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (756, '19978202757', '000000000799', '19978202757', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾国荣', 1, '362423198504302018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/175711a851064dad92378798ce9b8a64.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3dc4c3d8cffc4376a8f2c97066f51566.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '362423198504302018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/50be62da93fc4151a9c1ed29cdf82e3c.jpg', NULL, NULL, NULL, NULL, NULL, '362423198504302018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:26:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (757, '13481775475', '000000001006', '13481775475', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄汉国', 1, '452229198105222618', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/005c3f94f5c94a978af3d855f0b9e4b7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/27788c56d10b48d9b689a305023d5d80.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198105222618', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8091a606c7794f0cb7995fbfa663a5e8.jpg', NULL, NULL, NULL, NULL, NULL, '452229198105222618', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 650, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:24:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (758, '15807723293', '000000001007', '15807723293', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙俊', 1, '450204198403140611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e174fbc651504b6b95e4d288e2158514.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e576d2f505a14c61a8356897fdb9e1e5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204198403140611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/42de665ce2f845d9a4c356c832139b9a.jpg', NULL, NULL, NULL, NULL, NULL, '450204198403140611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:23:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (759, '13607807701', '000000001009', '13607807701', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧仁怡', 1, '452723199601010810', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9ec43801908f433a8d31f8f6f5d65e13.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4f63c0837034b17b0901ef29a7a6f04.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452723199601010810', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ca412dd138374145baccc0f5c7e9118c.jpg', NULL, NULL, NULL, NULL, NULL, '452723199601010810', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 739, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:22:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (760, '18172111683', '000000001008', '18172111683', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '钟德才', 1, '450222198105290331', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/61d8300a45a5459aa011b598c3375f7f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f8c7679890e4b14937f661ba8d94f4d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198105290331', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b6e0553d2cd746dcb9a93540ad89860e.jpg', NULL, NULL, NULL, NULL, NULL, '450222198105290331', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 690, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:20:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (761, '13977231990', '000000001011', '13977231990', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁兵', 1, '450221199012302979', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/836f6c58221c40c2869deadcb985ddfe.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4de3e387d9a747e29f2b4a6b4f695f67.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221199012302979', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a2b4c86b7a1434c9a6e9fb0156db7d8.jpg', NULL, NULL, NULL, NULL, NULL, '450221199012302979', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 742, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:18:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (762, '19165744059', '000000001012', '19165744059', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵明磊', 1, '450204197908190695', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6c73605755c64300b138a158850e2151.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e47c8130f9684c4fb35cccb9dc2ec46a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197908190695', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54e3252c74e94a0188ce0951c5aa0074.jpg', NULL, NULL, NULL, NULL, NULL, '450204197908190695', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 769, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:17:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (763, '18076747773', '000000000827', '18076747773', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘海丰', 1, '45222619801107423X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d4f280a298ce4211be8ca04fceafbe72.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3aad3b78ca6b400dbb92e0037baec740.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45222619801107423X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a4ee5ecb578e4a229231e5bab7e7f442.jpg', NULL, NULL, NULL, NULL, NULL, '45222619801107423X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 584, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:16:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (764, '18978067712', '000000000828', '18978067712', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李敏', 1, '450203197904201311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/17b5eb36d704467aae80f39933dfbbf4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/58b18c64def14423b28566e5e46a5c4e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197904201311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/285d9627643143bba524f0fac1e75fbd.jpg', NULL, NULL, NULL, NULL, NULL, '450203197904201311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 760, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:15:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (765, '13877278731', '000000001015', '13877278731', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴超', 1, '450205198004111019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0230c1e81c904d55abf1c438c0139c86.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1792bdaf4c640bc88b8ecf174308398.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区前锋路10号7栋2单元502室', NULL, NULL, NULL, NULL, 10, '450205198004111019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fe426bb9d1434b43be61cceeca76818c.JPG', NULL, NULL, NULL, NULL, NULL, '450205198004111019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 782, 2, 1, '1', '2020-08-17 18:36:46', 1, '2020-08-31 15:59:43', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (766, '15078286229', '000000001016', '15078286229', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖阳勇', 1, '452223197911184019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d8effd7f8714978b74e2e3afd03a245.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/289021844eb74838bef9cb3393ad6d4c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223197911184019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/73c4181dbabd4af1bb0a1c1a73259882.jpg', NULL, NULL, NULL, NULL, NULL, '452223197911184019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 640, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:13:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (767, '17707722282', '000000001013', '17707722282', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦勇', 1, '450221198503210919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c747afcc8b664f6d8b70a63b1899a4a4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de44f9d3bc124a71b09d803de8c7a553.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198503210919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/252942354c1d49a69741e8a95a5f2c57.jpg', NULL, NULL, NULL, NULL, NULL, '450221198503210919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:12:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (768, '18807725581', '000000000117', '18807725581', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈辉', 1, '450222197801302135', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad8300b244d5458fba96be89cdda2587.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/09e7fb4e080a4741b4595b16992d0e9c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197801302135', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04d08f1ec29d4920b736135b9e5afda4.jpg', NULL, NULL, NULL, NULL, NULL, '450222197801302135', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:46', 1, '2020-08-21 10:11:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (769, '17776344736', '000000000097', '17776344736', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝柳玉', 1, '452124199312102413', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/43116bfeaec843e0b4cf24a2fd647ddc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/255801a499034395ae42748f96d7c0a9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452124199312102413', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dcf5d06940c543ceb3c4a709211a5733.jpg', NULL, NULL, NULL, NULL, NULL, '452124199312102413', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 911, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:57:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (770, '18177297664', '000000000333', '18177297664', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '宁福才', 1, '450924198907186692', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/166d601fff674869afe2ca8c2f12db81.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b23b7cdf53f469c9b34ac6dba2d6ec7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450924198907186692', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f04d3f60c6f14ceca6e718c4ffecd7e8.jpg', NULL, NULL, NULL, NULL, NULL, '450924198907186692', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:56:31', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (771, '18577620881', '000000000358', '18577620881', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴德发', 1, '450202197303100914', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a4e4d57e847d4c1d909f75dc4cbe8450.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a925bd2277f44d9099203d1327a47255.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市国泰花苑9栋', NULL, NULL, NULL, NULL, 10, '450202197303100914', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/935d067ef68d47188f0a47532661d21b.jpg', NULL, NULL, NULL, NULL, NULL, '450202197303100914', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 680, 2, 1, '1', '2020-08-17 18:36:47', 1, '2020-09-08 12:17:40', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (772, '18978092289', '000000000421', '18978092289', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴威', 1, '451321199512042014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a66363af6154c938d360139091d238c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/202ee766d96b4a2f8a35417d19122be0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '451321199512042014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c9cab30a441d481abdcc8d9a69b37d90.jpg', NULL, NULL, NULL, NULL, NULL, '451321199512042014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:54:54', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (773, '18276880979', '000000000422', '18276880979', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦刚平', 1, '452227198208100274', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4abae87c2fe4c09be36549df4b30e4f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/404226b7e1ea4770914b93c8635f1216.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227198208100274', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9eadbcaef26d4e7aa5a6ccd6dcd03799.jpg', NULL, NULL, NULL, NULL, NULL, '452227198208100274', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:54:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (774, '18377286287', '000000000423', '18377286287', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '江柳军', 1, '450205197708130010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3c9b31621784361a83d6b595b22908c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d33f4d381f44f5a8246190fa9510e06.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197708130010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/65252e2e10b54ad6809ccc2103d6b40b.jpg', NULL, NULL, NULL, NULL, NULL, '450205197708130010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 775, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:53:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (775, '13877239031', '000000000424', '13877239031', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖绍利', 1, '45080319910702553X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2421e4ed5d6d46918cb696d444aae112.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4fe7859627094511915f0443acab0676.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45080319910702553X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cc80e16b172d4c4ab77be7157c62f1ba.jpg', NULL, NULL, NULL, NULL, NULL, '45080319910702553X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 763, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:52:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (776, '13788449292', '000000000425', '13788449292', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦罗剑', 1, '452231199306052519', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a64421e87ab4e788a8dddf73db6afef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d7a617fba30489b87d91c5f24fbc350.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区柳邕路351号华韵上城44栋3单元1804室', NULL, NULL, NULL, NULL, 10, '452231199306052519', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/086710c4f1a841ce8b6c90cebc5e7269.jpg', NULL, NULL, NULL, NULL, NULL, '452231199306052519', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 619, 2, 1, '1', '2020-08-17 18:36:47', 1, '2020-09-04 18:32:40', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (777, '18877276698', '000000000426', '18877276698', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴泉', 1, '450211199108051614', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eee19d14d4114b32a9b756665c200c89.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0f21deb14faf440ca8a756d1f8188fe2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211199108051614', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/753300eb6dfb460b9b0890d30a85daa9.jpg', NULL, NULL, NULL, NULL, NULL, '450211199108051614', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 763, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:49:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (778, '13737283393', '000000000829', '13737283393', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃万命', 1, '450221198103252933', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f7c7e38d9ce74ea684c30bcbfa1fbb8c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac151b9a405a479abfad2188104c7d46.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198103252933', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff493743d559434abe33c00931cd97b2.jpg', NULL, NULL, NULL, NULL, NULL, '450221198103252933', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 624, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:48:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (779, '17776446598', '000000000427', '17776446598', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '凌朝放', 1, '452132198004183616', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ed2dfd6495614791a9acf7ee2201f4ec.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/27c5d849dda54af0b2532dac6c23298c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452132198004183616', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e20915c8ff18496e869ee1d38eba34da.jpg', NULL, NULL, NULL, NULL, NULL, '452132198004183616', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 718, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:46:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (780, '13397727753', '000000000428', '13397727753', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何俊', 1, '45020519800930133X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9efc81d33cc044fd95e0fdea4b3bfa46.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/49efafa9479b4d2dadf73e69d7baeb22.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45020519800930133X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eb9aeab73d6c4187a68a1764fe2c0f46.jpg', NULL, NULL, NULL, NULL, NULL, '45020519800930133X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 669, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:46:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (781, '15577261562', '000000000429', '15577261562', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '杨高', 1, '450205198609151312', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9cd87b3c3a0c40c9872b17c2fe874218.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b71500cd51c945c181386b9f34930539.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205198609151312', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d2bf06e885ef4fda98d022ed006145a1.jpg', NULL, NULL, NULL, NULL, NULL, '450205198609151312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:45:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (782, '13977294432', '000000000430', '13977294432', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭胆', 1, '452226199411260618', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a6fc65097a7c4c859a7205450f1624f1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da861f7c55fe4866b583f0512b79bdfa.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226199411260618', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ce0d9a082ac1454dbbd017495a6361e3.jpg', NULL, NULL, NULL, NULL, NULL, '452226199411260618', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:44:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (783, '18977291474', '000000000059', '18977291474', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏丕剑', 1, '452223198708053018', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ae0e352babc14c1a94afbca910a46795.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82a2465926bb4111951f66ecf1be823f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198708053018', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/80e8ca340bf846cc9f9416a84f1f1241.jpg', NULL, NULL, NULL, NULL, NULL, '452223198708053018', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 724, 2, 1, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:42:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (784, '13978026228', '000000000413', '13978026228', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '雷文', 1, '450204196812130319', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/149cc4714aa24f60b8dfb95989ae3984.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df5b1091307c47c0a61627a0b0ee3258.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204196812130319', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9bbd9a72b46e453ab8d38fcd13c4c8ef.jpg', NULL, NULL, NULL, NULL, NULL, '450204196812130319', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:41:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (785, '13788440590', '000000000242', '13788440590', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃克', 1, '452702199112241210', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44e44d46818d40acb72c0641f1046d40.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd4b7302026f482799dc40946a8466b6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452702199112241210', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f676df054de748d5a0bc7a9b35832372.jpg', NULL, NULL, NULL, NULL, NULL, '452702199112241210', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 632, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:39:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (786, '18276867387', '000000000140', '18276867387', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈罗松', 1, '450222198308220317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/441f02dee3c34c6388da5fe9a3c10528.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b4ca1bbf6c44c9ca3cc9052b1f0e4b8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222198308220317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02bcbca45e844c49836ff99dc4bb29ba.jpg', NULL, NULL, NULL, NULL, NULL, '450222198308220317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 570, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:38:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (787, '13978054948', '000000000139', '13978054948', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王凤玲', 1, '450205197503120441', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1c340acbc0348bbbf528430baea5e08.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/30491f9e910d4a96b097061f0043b0a0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197503120441', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/afe87e99fbf64d86ab74f56aa653792e.jpg', NULL, NULL, NULL, NULL, NULL, '450205197503120441', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 531, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:35:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (788, '18007727182', '000000000104', '18007727182', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦佳', 1, '450203198505140739', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9482e91c947546d198c190ff0f52ba7a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ce07fb61d164bf4926006f8826273f8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203198505140739', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/57954f30b322470c8d07f2e9978c4ed4.jpg', NULL, NULL, NULL, NULL, NULL, '450203198505140739', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 643, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:34:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (789, '13321625088', '000000000223', '13321625088', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '袁龙', 1, '450204197708120633', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb29071036f844c98555a97c6c88d3d0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a18a20cdd0049ad89257a3088e376c7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450204197708120633', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a843326325624eba9bf96b36ec6aeaad.jpg', NULL, NULL, NULL, NULL, NULL, '450204197708120633', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 649, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:33:35', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (790, '19167205737', '000000000114', '19167205737', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖学年', 1, '450221199410051917', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9da71baf146a4ae4947688b38bd52550.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/025070ce30564f7c80614e04e8dbf08d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县拉堡镇柳堡路777号柳堡小苑2栋3单元702室', NULL, NULL, NULL, NULL, 10, '450221199410051917', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/94b4cfe3ff6f4bca8f468f37293abd08.jpg', NULL, NULL, NULL, NULL, NULL, '450221199410051917', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 750, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-09-08 11:39:33', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (791, '13877238672', '000000000265', '13877238672', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赵晓峰', 1, '452227196403300010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/52241874328c4db485dc5815fc0093bb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c67c183805b4734a849c2ca3b161a50.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227196403300010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd41ef7bc8d248a0a0476e0850f0504f.jpg', NULL, NULL, NULL, NULL, NULL, '452227196403300010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 493, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:30:04', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (792, '13978094046', '000000001017', '13978094046', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢聪', 2, '452227198410260263', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4549d0d7e71644e781d8e2a01d528890.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/844f99327c684d3d9e14a3b51f07b459.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227198410260263', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ced45baf1d534d3b86e695c9b9e0153e.jpg', NULL, NULL, NULL, NULL, NULL, '452227198410260263', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:29:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (793, '13597229427', '000000001018', '13597229427', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李云强', 1, '450203196510060718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/937eb941e377488f9ae5b4431d7f4245.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b701b1b865445418856f7ad9138fcc6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203196510060718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b3ac2c4fb52a4c1bb472b12c6e170b95.jpg', NULL, NULL, NULL, NULL, NULL, '450203196510060718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 630, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:27:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (794, '18077238166', '000000001019', '18077238166', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘嘉麟', 1, '452223199502154010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2359675be50d401084f3cb5d11d1088f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/480a7810b13b4635a43bffd9a896048d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223199502154010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5417fb9585a446fb9c1ea01b11e3b049.jpg', NULL, NULL, NULL, NULL, NULL, '452223199502154010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 784, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:26:41', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (795, '15278892316', '000000000124', '15278892316', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '孔凡辉', 1, '45022219850407031X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fad9f07cec964dd9a010bf3e6dc2dbab.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/034c5c305e024988a600abd5ed611169.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '45022219850407031X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3de79bedfe534452869dcbca9f4829b8.jpg', NULL, NULL, NULL, NULL, NULL, '45022219850407031X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:25:42', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (796, '18978051629', '000000000134', '18978051629', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃敏', 1, '452227198804053638', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b986f03f333248edbb5467c75c7143d4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7cba9c8743e445b28f9f2d6b63995df9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452227198804053638', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f9f9665ba92b4fadab4c47ba7b75fcf6.jpg', NULL, NULL, NULL, NULL, NULL, '452227198804053638', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 890, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:24:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (797, '15177726533', '000000000153', '15177726533', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦加稳', 1, '450221198801162417', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c5ec16b6423e41bb91e1eb5972499667.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6feaf417b443429c9c9a963de9643bb6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221198801162417', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4222153d3a174080969706b8c43c5d76.jpg', NULL, NULL, NULL, NULL, NULL, '450221198801162417', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:20:45', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (798, '15677280128', '000000001021', '15677280128', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '余茂磊', 1, '342422198202141116', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/62291020f0c2419891cf1ba0220d3537.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a2e0d0c805e24a9686345d85800b8dd6.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '342422198202141116', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba016a2348d8428ea03aa833b3fae083.jpg', NULL, NULL, NULL, NULL, NULL, '342422198202141116', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:23:59', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (799, '13633088198', '000000000162', '13633088198', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴丽兵', 1, '452229198905110075', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d743d5c2aa1455c87b49b883721eb31.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0d4cc1e93b464c829d46fbe26c352781.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229198905110075', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34f7b0d304aa419dbc7947cf484e5cbb.jpg', NULL, NULL, NULL, NULL, NULL, '452229198905110075', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:18:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (800, '13877215533', '000000000154', '13877215533', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '温晓政', 1, '450203197610180316', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b62ac4b0579247b7a2e5bd6d2808e532.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a8865c1c2b314ed08fd0f34778d4b457.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197610180316', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a78b154daf824e1c95db5d232d19f7fa.jpg', NULL, NULL, NULL, NULL, NULL, '450203197610180316', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 559, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:23:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (801, '13877273515', '000000000070', '13877273515', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄海生', 1, '450211197910280810', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/18b0b3f60c064f329e7b2cf35cd99d9e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e1d5c8159389446fbe35357982fc2192.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450211197910280810', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/54eb7a0c05de4f2384d155ac14f205c1.jpg', NULL, NULL, NULL, NULL, NULL, '450211197910280810', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 637, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:23:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (802, '13517807454', '000000001022', '13517807454', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '贾明锋', 1, '452229197912042619', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c292825de8394e9485cd718e795c64ab.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2be61bb9e221443b9fce6b3070611792.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452229197912042619', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dd8369d5d7074e95ba4dcfcce1afea5e.jpg', NULL, NULL, NULL, NULL, NULL, '452229197912042619', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 650, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:22:43', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (803, '15347723859', '000000000141', '15347723859', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃建祖', 1, '452226199002155710', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/edff26d0f35e41289df2d8f0eee31b58.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/941a2b64327e40aeb97e2887fcb9a153.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226199002155710', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ce1734c609b412ca391555409516926.jpg', NULL, NULL, NULL, NULL, NULL, '452226199002155710', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:22:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (804, '19142885829', '000000001023', '19142885829', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林柳才', 1, '450203197509120351', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d77207be4e834e11aea65b401f3ca38d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b86d3cd9e4f0486980b813ddf129d2dc.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450203197509120351', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/db52f6982a914795aeabd3a09be4736a.jpg', NULL, NULL, NULL, NULL, NULL, '450203197509120351', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 725, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:21:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (805, '17776051910', '000000001025', '17776051910', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈剑', 1, '450330199306262310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7190308af8084249a1490e99114f8361.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb11ea3cca334560823542168636709a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450330199306262310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbd41df39bba433db58b49c68b4f74b8.jpg', NULL, NULL, NULL, NULL, NULL, '450330199306262310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 669, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:21:58', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (806, '15877227710', '000000001026', '15877227710', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郭聪', 1, '452223198606114051', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/587390984751452faae61fc027497cd3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0fccfb074a694b7ab5f3cf551297dfec.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452223198606114051', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bb9dd35ac670468c980207944739a036.jpg', NULL, NULL, NULL, NULL, NULL, '452223198606114051', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 781, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:12:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (807, '15007728681', '4502001649', '15007728681', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡柳芳', 2, '45020319750714072X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/72eb870d10c24e5bbb7067280747de76.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e2c41e6d1e964f94bbef595d239b43be.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区胜利小区六村9栋2单元302号', NULL, NULL, NULL, NULL, 10, '45020319750714072X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/acb92b0a1af04b2eaca436913aeabb10.jpg', NULL, NULL, NULL, NULL, NULL, '45020319750714072X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 867, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-09-04 18:09:29', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (808, '13978065571', '4502004270', '13978065571', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李家文', 1, '450205196803190017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/965ee3318111411d869c366dffcda560.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44e98504b4d04b6eb21ee75518f5f296.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205196803190017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/af25713f1f6b4281a334417278114075.jpg', NULL, NULL, NULL, NULL, NULL, '450205196803190017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 867, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:10:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (809, '18775135681', '4502006157', '18775135681', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗仕许', 1, '450221197711261433', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e4393e627fc47d386149b6e61674395.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd5bc2a8c8ef4db192141cb9064b2576.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450221197711261433', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3fff66c2a4004968b132e3e36c8328a8.jpg', NULL, NULL, NULL, NULL, NULL, '450221197711261433', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 887, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:09:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (810, '18677208918', '4522261985', '18677208918', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦春豪', 1, '452226198507216318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3fc01d35b0b04d7cac322a0672d59ae1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b404c411777849c8830b552a7dfdfd03.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '452226198507216318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1710b648d90b42f2b8881105ef2b769a.jpg', NULL, NULL, NULL, NULL, NULL, '452226198507216318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 887, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:08:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (811, '13707809224', '4502005798', '13707809224', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖春生', 1, '450205197303070013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3b41833034941ea8a552f020f2e2357.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b41dc462df3d493093fe472b76a76af5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450205197303070013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b79004dc6e6146538f47f224098a46a9.jpg', NULL, NULL, NULL, NULL, NULL, '450205197303070013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 856, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:07:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (812, '13599721603', '4502004525', '13599721603', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫治勤', 1, '450222197612292636', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2aa0ee4b7cb24d3795a42e08f6629916.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f839038f495472ba878442b5f483819.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 10, '450222197612292636', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e37c4f2f2d7544f5b5b4a40c3c09adc9.jpg', NULL, NULL, NULL, NULL, NULL, '450222197612292636', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 885, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:05:45', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (813, '15877255830', '4502004925', '15877255830', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '张劲', 1, '450204198406011014', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c2dde246e4c04155a5b7a0e0ad84dac9.png', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/21f49bb72a0442578090016d175d5d50.png', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区革新路七区9栋1单元501室', NULL, NULL, NULL, NULL, 10, '450204198406011014', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/80be593cbd3347d6857590d81d46468b.png', NULL, NULL, NULL, NULL, NULL, '450204198406011014', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 833, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:04:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (814, '13877218046', '4502004920', '13877218046', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '袁千山', 1, '45020419871019031X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a26966bb84d8434f87f8c4e0c379bfe7.png', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/adc04e5146684761a9abf4baf77b5665.png', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区柳邕路275号一区14栋1单元101室', NULL, NULL, NULL, NULL, 10, '45020419871019031X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0559c1917b349fdaf2424d743729d47.png', NULL, NULL, NULL, NULL, NULL, '45020419871019031X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 876, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:03:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (815, '19142828013', '4502005016', '19142828013', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈斌', 1, '450204196710301017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ad6e78fae99544769403e871c99c19a1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8f36e251cc114ee6be7b5a2446efa21c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区红岩路三区1栋4单元101室', NULL, NULL, NULL, NULL, 10, '450204196710301017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3633827bbe1846bf803cbc659053a511.jpg', NULL, NULL, NULL, NULL, NULL, '450204196710301017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 793, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:01:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (816, '13649429627', '4502004909', '13649429627', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃松才', 1, '452226198608275114', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d705d35d4aac41588c0ffde10edd7bcf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d21a9a5a75424222a2fb05ab1a98a6ac.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区红岩路三区1栋4单元101室', NULL, NULL, NULL, NULL, 10, '452226198608275114', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c3a828e59b0e4a729a596a29bafd8469.jpg', NULL, NULL, NULL, NULL, NULL, '452226198608275114', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 793, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 17:00:36', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (817, '13977297137', '4502005186', '13977297137', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '饶杰', 1, '452702197410190416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5a4fb8cd4ce4cad9d0c3c61dd376a36.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d1fb6d3c63644fe94bfe38f855606c5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航生路13号30栋402室', NULL, NULL, NULL, NULL, 10, '452702197410190416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4e372f362fd1403abba728671a9ba105.jpg', NULL, NULL, NULL, NULL, NULL, '452702197410190416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 850, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:58:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (818, '15077206027', '4502005159', '15077206027', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '何基高', 1, '452226199208181295', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e20593ea53114d9bba996c678dea44fb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26301688137f41e189e174af7be1b7e3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳南区太阳村镇西鹅村上高沙一屯3号', NULL, NULL, NULL, NULL, 10, '452226199208181295', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8b9fbae574164c6e8ac69be46a89fbc1.jpg', NULL, NULL, NULL, NULL, NULL, '452226199208181295', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 934, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:57:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (819, '13152522772', '4502005190', '13152522772', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄磊', 1, '450202198910170038', 1, 0, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航一路1号9栋3单元701室', NULL, NULL, NULL, NULL, 10, '450202198910170038', NULL, NULL, NULL, NULL, NULL, NULL, '450202198910170038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 827, 2, 2, '1', '2020-08-17 18:36:47', 1, NULL, NULL, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (820, '18577229623', '4502005049', '18577229623', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦晓平', 1, '450211196811150813', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f05834c78b0443e89b2b232267b9175e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3eeade5e6c2c4fcfba9ec79054c43d07.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区柳石路332号25栋4单元701室', NULL, NULL, NULL, NULL, 10, '450211196811150813', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/650e25f1196c4a0fb1a846f6cbc006a8.jpg', NULL, NULL, NULL, NULL, NULL, '450211196811150813', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 827, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:53:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (821, '13006685891', '4502005171', '13006685891', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄永强', 1, '452227196603151232', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e837121e05b04e78844852d750f44370.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a152ec7005a42448654a90e255359f3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西融安县长安镇民乐街1号', NULL, NULL, NULL, NULL, 10, '452227196603151232', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39272087de0b470eb1650d6bebe4b283.jpg', NULL, NULL, NULL, NULL, NULL, '452227196603151232', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:48:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (822, '18076618767', '4502005192', '18076618767', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫智茗', 1, '452701198712231111', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5cda1eea7ad745fe9b4b3d9f20d01892.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d8a9cc1f17d4897a0be53123222beeb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区河西路58号', NULL, NULL, NULL, NULL, 10, '452701198712231111', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d71d0186d37346299766c0848f0d15e0.jpg', NULL, NULL, NULL, NULL, NULL, '452701198712231111', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 796, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:46:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (823, '18177247870', '4502004724', '18177247870', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘杰', 1, '452226199708276610', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/252523c351694f43ac320d828fac38d2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90890b3805aa4c2290072a1a042e0abf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路45号之五31栋2单元504室', NULL, NULL, NULL, NULL, 10, '452226199708276610', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df34c9cd7d604cf9bcafe54fbab1cb2f.jpg', NULL, NULL, NULL, NULL, NULL, '452226199708276610', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 942, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:45:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (824, '18107721220', '4502006200', '18107721220', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄玉峰', 1, '450205198812200415', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e36f6783b4b74e4faf3fd3d56f928f02.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b94cfb8b07448f1963e28319b6bccb3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区广雅路18号1栋2单元602室', NULL, NULL, NULL, NULL, 10, '450205198812200415', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d3eda9e3ba38436eb4c23428c65aef06.jpg', NULL, NULL, NULL, NULL, NULL, '450205198812200415', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 937, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:45:06', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (825, '13707800008', '4502005741', '13707800008', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林斐', 1, '452527197107230899', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6834c696074f4286aec3d1dccf989b29.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0c1a15b8699b40ac809558d89cea831d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区鸡喇路4号14栋2单元702室', NULL, NULL, NULL, NULL, 10, '452527197107230899', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c2511c2bd7294c98b68fef9bb907750a.jpg', NULL, NULL, NULL, NULL, NULL, '452527197107230899', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 935, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:42:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (826, '18777290307', '4502005177', '18777290307', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗振宇', 1, '450211198504250813', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cbd0890e8f614674939305ab3b7f8db1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7ab9db87ae64ba08661f5f20be94eb5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区长塘镇北岸村南岸屯43号', NULL, NULL, NULL, NULL, 10, '450211198504250813', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d5e0fe5fbb154bac82314863b70e93de.jpg', NULL, NULL, NULL, NULL, NULL, '450211198504250813', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 855, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:52:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (827, '13480157353', '4502006562', '13480157353', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦晓敏', 1, '45223119860608151X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/30b1da8dea544805814a70d842a0e6db.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d6a3f4f52624517831ad21b256a8130.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳江区拉堡镇基隆综合区兴园大道18号二区6栋1单元', NULL, NULL, NULL, NULL, 10, '45223119860608151X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ba3f08d6bb642fa836f9b454452cedc.jpg', NULL, NULL, NULL, NULL, NULL, '45223119860608151X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 839, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:37:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (828, '15207725226', '4502005178', '15207725226', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龚震华', 1, '452229198402150032', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26036bb7a4e0455ca1e8108717ea5d02.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/af08ac8044f74ce99b07493162a1c69b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市江南新天地736', NULL, NULL, NULL, NULL, 10, '452229198402150032', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2e0dc3ac41e64f1fb9557bc51763dcbc.jpg', NULL, NULL, NULL, NULL, NULL, '452229198402150032', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 797, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:36:08', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (829, '15577779479', '4502005995', '15577779479', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '肖璇', 1, '452227198901100918', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ab708221fb9f43b9aa35d41cdb6cf68c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f075cc31b6434dadb8455e1962e2d23f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西融安县长安镇祥多村主部屯52号', NULL, NULL, NULL, NULL, 10, '452227198901100918', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39841d2f0d98468386a3a9b4f1501eaf.jpg', NULL, NULL, NULL, NULL, NULL, '452227198901100918', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 940, 2, 2, '1', '2020-08-17 18:36:47', 1, '2020-08-20 16:41:03', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (830, '15224665776', '4502005047', '15224665776', '77e12b2c8b27138a2d4dd0ccd98ee4b3', 'a0b0c6730e5089cf7ae3c755c911c222', '覃兰柳', 1, '450204198401030013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1335effee9c34cc9aaac37b2b4736cc9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bf512958cc144d6d9009bdd89ec2e15c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区文笔路29号', NULL, NULL, NULL, NULL, 10, '450204198401030013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7ee7cabf06b94a8c8cd598111d5fe6b9.jpg', NULL, NULL, NULL, NULL, NULL, '450204198401030013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 940, 2, 1, '1', '2020-08-17 18:36:47', 1, '2020-09-08 12:12:19', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (831, '18978081847', '4502005048', '18978081847', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄增锡', 1, '440922197206292813', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/274c979b63344d2cb415bf5f3de524ef.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c4783d6c8299424498b06dc56e49b77c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区永前路八区238号', NULL, NULL, NULL, NULL, 10, '440922197206292813', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/af545976677c436f96191f55e660002a.jpg', NULL, NULL, NULL, NULL, NULL, '440922197206292813', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 908, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:29:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (832, '13132829882', '4502005173', '13132829882', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '温晓松', 1, '510302198708292017', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04ef820b41774d0bbb45e12237422a44.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/608be17b97c746f3aaf4f97e8f548f8d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区城站路227号5栋3单元601室', NULL, NULL, NULL, NULL, 10, '510302198708292017', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba5acd46c82c4335a55db4ead36dfe10.jpg', NULL, NULL, NULL, NULL, NULL, '510302198708292017', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:28:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (833, '13617809279', '4502005959', '13617809279', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦恩锋', 1, '452224197702211515', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea65e021265f4859811efb1c0030b714.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d82b233d50d470a99feb6579954a035.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区河西桃花湖5栋1单元704室', NULL, NULL, NULL, NULL, 10, '452224197702211515', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/72083de88ecb48b983c6de2fdf229030.jpg', NULL, NULL, NULL, NULL, NULL, '452224197702211515', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 872, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:26:53', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (834, '15277202889', '4502000156', '15277202889', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黎永林', 1, '450222197806092659', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9dd53c80c7ed4c1d8a71c8c7127648bd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ec22654d4e664588bf5fa2307d5fedd9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县古砦仫佬族乡大户村民委蓬坡屯51号', NULL, NULL, NULL, NULL, 10, '450222197806092659', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/312cb5dc6e944c86bdf805895b17157e.jpg', NULL, NULL, NULL, NULL, NULL, '450222197806092659', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 801, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-08 12:20:05', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (835, '13377285007', '4502002000', '13377285007', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃勇', 1, '450204196805070311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/250c5beb685a427daf3ef676cd59e3da.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f84c2941a5845caa559a09490206537.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区潭中西路24号南区10栋', NULL, NULL, NULL, NULL, 10, '450204196805070311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1046cd8cd7d6427290af5d3cb20d4277.jpg', NULL, NULL, NULL, NULL, NULL, '450204196805070311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 930, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:24:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (836, '13517605817', '4502006847', '13517605817', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '廖彦佳', 1, '451322198310010016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/efa6189c99ef452e93dd880a6f62f9e7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0d1bffaca96f409a9eee0df8a8c438d0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区柳石路147号之二依山社区集体户', NULL, NULL, NULL, NULL, 10, '451322198310010016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bdb0534acb48476098c931d064b868bf.jpg', NULL, NULL, NULL, NULL, NULL, '451322198310010016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 866, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:23:48', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (837, '18378012420', '4502005174', '18378012420', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '贾明玉', 1, '452229197710215112', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c08565806704d12842024ced363618f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b4f926c28c3c473c8a99537b5e44e5f3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西融水县洞头乡甲烈村甲烈屯81号之三', NULL, NULL, NULL, NULL, 10, '452229197710215112', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ff03cd0fd1d94735a8d31c81d545a94f.jpg', NULL, NULL, NULL, NULL, NULL, '452229197710215112', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 930, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:22:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (838, '15177755528', '4502005166', '15177755528', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '汪鼎明', 1, '422828197702104712', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a24b62dc0d0d4cddab8c344cbfe7fa59.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d62c437a3c441fe99c1ecf52e38d29a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区柳邕路352号华韵上城45栋3单元304室', NULL, NULL, NULL, NULL, 10, '422828197702104712', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/323699dce96845de928b01e4e025ae55.jpg', NULL, NULL, NULL, NULL, NULL, '422828197702104712', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 890, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:10:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (839, '18775149449', '4502005562', '18775149449', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '唐秀雷', 1, '450211197602270813', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dcb47e9cc7f491a8c791dc43b968d1e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7685f9d8306a4ab8b136e28694dfa846.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区洛埠镇洛埠开发区二区269号', NULL, NULL, NULL, NULL, 10, '450211197602270813', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/592cf27b30c24b249e67c7adb9f8327b.jpg', NULL, NULL, NULL, NULL, NULL, '450211197602270813', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 794, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:40:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (840, '17607724762', '4502004173', '17607724762', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李富斌', 1, '452230198803271519', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dfee591bbb54660b0c83da089417a7f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/51f4fc278f1a4163bb99f05e350697c7.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区古亭大道6号恒大城11栋2004室', NULL, NULL, NULL, NULL, 10, '452230198803271519', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4cb156d9c0bb423b9b9a16462acfddf8.jpg', NULL, NULL, NULL, NULL, NULL, '452230198803271519', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 907, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:06:56', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (841, '13788320091', '4502005162', '13788320091', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '阮天翔', 1, '450203199302271012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/93da74de84b34a4e8327e1524432a9f0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44821ba31af24b3c900be26406affe7f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区荣军路230号金兴阁3单元802室', NULL, NULL, NULL, NULL, 10, '450203199302271012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7aead43e418040c5b827c3f713899989.jpg', NULL, NULL, NULL, NULL, NULL, '450203199302271012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 900, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:06:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (842, '13557620988', '4502004242', '13557620988', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾廷星', 1, '452225197412271719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f958b1e91514456ac54d5a302008e2d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/387b6c1a6aab4638a834f8a27c89ff45.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江区基隆开发区金岭四巷18号', NULL, NULL, NULL, NULL, 10, '452225197412271719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/61b4717508c84e74ba10ebeee0ec747a.jpg', NULL, NULL, NULL, NULL, NULL, '452225197412271719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 906, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:04:02', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (843, '18207720129', '4502005966', '18207720129', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁瑛', 2, '450205197312140108', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0475e1de5bc64e4787b812983ae3202a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0d933b7dcbf5440bac21710d99d6601f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区滨江东路16号2栋2单元2602室', NULL, NULL, NULL, NULL, 10, '450205197312140108', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3171810d1bc04b209eedf6b367fd0c93.jpg', NULL, NULL, NULL, NULL, NULL, '450205197312140108', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 817, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:03:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (844, '18589968783', '4502004756', '18589968783', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '唐涛辉', 1, '450204197804020632', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/13ccc395cd404e0cb250c19bfea54655.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/900db826127643e68d802c00d2facc1d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区鹅岗路二区24栋2单元502室', NULL, NULL, NULL, NULL, 10, '450204197804020632', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7dd617386bc64e3095f429978a572db3.jpg', NULL, NULL, NULL, NULL, NULL, '450204197804020632', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 808, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:02:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (845, '18178292959', '4502004791', '18178292959', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '唐冬阳', 1, '450324199109292556', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cd486efd001a46bb9cc16def9e605bee.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ffa9a6b602a6440e8a96f2550d01d3bd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇基隆村中屯5号', NULL, NULL, NULL, NULL, 10, '450324199109292556', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da58d03f97084b9cb6a8b7990bafc731.jpg', NULL, NULL, NULL, NULL, NULL, '450324199109292556', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 820, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:01:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (846, '18077252328', '4500086633', '18077252328', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁启福', 1, '452224196701105038', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/846f0485b01a498cbc7b23fc72be36f3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a1d4a96f539482e8289884c2c1e8065.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '象州县水晶乡甫上村民委垦民村16号', NULL, NULL, NULL, NULL, 10, '452224196701105038', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/563a70d074d84dd48d06e47a5a10b7e7.jpg', NULL, NULL, NULL, NULL, NULL, '452224196701105038', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 906, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 16:00:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (847, '13531899173', '4502004752', '13531899173', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡胜康', 1, '452224196503204051', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/357551359a604ceaa7777028fef59782.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/15de746bc6ba4744a9cb9c2ddd56c8a8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区政和路100号古山居苑南苑1栋1单元', NULL, NULL, NULL, NULL, 10, '452224196503204051', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c6f0cd1d05f848139a3e6070f29bc658.jpg', NULL, NULL, NULL, NULL, NULL, '452224196503204051', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 915, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-08 12:16:00', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (848, '17376448853', '4502006113', '17376448853', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡雅祥', 1, '452224198906124012', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/74f21154dc044e9eb948b7cfd85188d8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/29bd49508f784b9e95170160d0776043.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区燎原路36号白云小区二村24栋1室', NULL, NULL, NULL, NULL, 10, '452224198906124012', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e6f0dd3e003f4e5e9de360317c8a1888.jpg', NULL, NULL, NULL, NULL, NULL, '452224198906124012', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 915, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-08 12:16:23', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (849, '13877227213', '4500023099', '13877227213', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴卫强', 1, '450222197509032617', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c3870488dd24d039b68bfd1647d2a07.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fd823a27e69c45a3bad0b48924df4410.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县古砦乡古砦村塘底屯55号', NULL, NULL, NULL, NULL, 10, '450222197509032617', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e3717bea9a794b0e85422d6a4d3f1820.jpg', NULL, NULL, NULL, NULL, NULL, '450222197509032617', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 878, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:57:01', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (850, '15078253001', '4502001485', '15078253001', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫文兵', 1, '450222198710292618', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a10afd5fb6694a17accead4f79323d97.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c0b219e584f43b1acc1e50c30d03332.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县古砦乡大户村民委桥头屯2号', NULL, NULL, NULL, NULL, 10, '450222198710292618', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9c02598ec778462dbe3b67fffc890cd8.jpg', NULL, NULL, NULL, NULL, NULL, '450222198710292618', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 878, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:55:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (851, '18007728201', '4502006320', '18007728201', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗运江', 1, '450205198205031031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/02980c8200b94be0b26504f5df1f814e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/10537a1b868b4cb9a773f4ea43154605.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区北雀路十五区13栋1单元702号', NULL, NULL, NULL, NULL, 10, '450205198205031031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dd02f68b9c41405d9bc6412643589021.jpg', NULL, NULL, NULL, NULL, NULL, '450205198205031031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 805, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:54:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (852, '18276733140', '4502004126', '18276733140', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃家景', 1, '452226199111081853', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/65229546e27e442bafd8e8583793f921.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bbc99accb3a24fde94b9d58687a3afe3.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区柳石路414号莲花城3队33室', NULL, NULL, NULL, NULL, 10, '452226199111081853', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f73ce815ee844be99f16732f7e53c4c.jpg', NULL, NULL, NULL, NULL, NULL, '452226199111081853', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 868, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:51:55', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (853, '18177245220', '4502006028', '18177245220', 'e15098a91584fb0aa0abd757a195b1f8', NULL, '苏南清', 1, '450204196603170015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa79981d50564f549236e7681cc99601.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/784a2a44f2014dacbc88e54d2e02fa1f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区谷埠街大同巷二里72号2栋602室', NULL, NULL, NULL, NULL, 10, '450204196603170015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/81050895384f4b029d18f180c9d13bcc.jpg', NULL, NULL, NULL, NULL, NULL, '450204196603170015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 898, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-08 11:40:35', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (854, '13597065619', '4502005780', '13597065619', 'b050b0cda7273679b8091638f3eb4c07', NULL, '韦元奕', 1, '452227197207055016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/322166c4630e49a89c8f87f9b863ecb5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/112aae9458674c9bae15499449c261f8.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西融安县板榄镇马步村', NULL, NULL, NULL, NULL, 10, '452227197207055016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/caca2a55a00c4301be5c89ba0adaff6f.jpg', NULL, NULL, NULL, NULL, NULL, '452227197207055016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 804, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-04 16:58:56', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (855, '18177222345', '4502004141', '18177222345', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏晴', 1, '45020519900926131X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/af7fc00c44de475897bb4d166d5bf4ca.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e69dc9829db4e71a395d22ac7137bad.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区广雅路19号2栋3单元401室', NULL, NULL, NULL, NULL, 10, '45020519900926131X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1ef602b3cd64107908234651c65b03e.jpg', NULL, NULL, NULL, NULL, NULL, '45020519900926131X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 932, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:46:57', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (856, '13978225135', '4500073532', '13978225135', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁洪礼', 1, '452225197912101716', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a3de293073834933ae0a89aa941b77a0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/072ae884670e4269b61adf50e1ca06e2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '武宣县东乡镇上棉村龙松屯', NULL, NULL, NULL, NULL, 10, '452225197912101716', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/99cdf0c926eb404fbefbea450b1f7b17.jpg', NULL, NULL, NULL, NULL, NULL, '452225197912101716', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 906, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:45:52', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (857, '13667803160', '4500054530', '13667803160', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴军明', 1, '450221197412260916', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c7c97488cf91400eb4aebebfced851c8.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/04bc7affa1e94fc09e754b208eafc5ca.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里雍镇立冲村立冲四队12号', NULL, NULL, NULL, NULL, 10, '450221197412260916', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e69dbeb1f6ce45bf992facd19977aa60.jpg', NULL, NULL, NULL, NULL, NULL, '450221197412260916', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 837, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-04 18:11:14', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (858, '15577773735', '4502004983', '15577773735', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '胡乐', 1, '450205198306230718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/21bf14d14a284140846a4f99792b0799.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b1c0ce0bf7e45378225c24628700931.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区胜利小区五村11栋1单元401号', NULL, NULL, NULL, NULL, 10, '450205198306230718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f63a9460dc2433395eb0843e806a1d9.jpg', NULL, NULL, NULL, NULL, NULL, '450205198306230718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 854, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:34:18', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (859, '18276780875', '4502004969', '18276780875', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '周志军', 1, '450204197507161033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3d4bacb0c4b74c69a97007a5e9416ed5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de042382ef1d4ba29a7d069ddae7d246.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区永前路6栋5单元201室', NULL, NULL, NULL, NULL, 10, '450204197507161033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e86f0b4cd47d4afb934e2607e4f8d55f.jpg', NULL, NULL, NULL, NULL, NULL, '450204197507161033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 863, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:32:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (860, '17777236426', '4502004952', '17777236426', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝锐', 1, '450221198712182950', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d165c63c579462ab61d61f8ec200fe7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/60466411539c4d3e8217791ad081d496.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区成团镇两台村新村屯97之一', NULL, NULL, NULL, NULL, 10, '450221198712182950', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/16f3a9bb766548448590e79b0a4ca56d.jpg', NULL, NULL, NULL, NULL, NULL, '450221198712182950', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 869, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:31:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (861, '15007729998', '4502004963', '15007729998', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃邱能', 1, '450221198608192999', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/39f48e63df7e45fcb6d6fab26a7732c5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/849c8d7a21cc4ee3b1a3d068f9154791.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县成团镇大荣村雅中屯67号', NULL, NULL, NULL, NULL, 10, '450221198608192999', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2d879218e93c4d849845d7b9c43ed62c.jpg', NULL, NULL, NULL, NULL, NULL, '450221198608192999', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 795, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:30:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (862, '13788028770', '4502005638', '13788028770', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄晓权', 1, '450205196802290438', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/92cc42b0a71a4da58d481aae43432e41.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f2668f95eb2441cb37ff2da324f1348.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市航银路37号金山丽园13栋6-2号', NULL, NULL, NULL, NULL, 10, '450205196802290438', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/75368c9b1030428d97d68c836908f7c4.jpg', NULL, NULL, NULL, NULL, NULL, '450205196802290438', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 806, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:28:49', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (863, '18777222588', '4502004957', '18777222588', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '苏煜竣', 1, '450981198705104350', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1b71c905633e4663b4632aeefcdf80cf.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f8a7cad44784da1ba701a3b27f98e28.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路63号之一桃源居', NULL, NULL, NULL, NULL, 10, '450981198705104350', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/abfe24787db14f829bfcb040f762e1bf.jpg', NULL, NULL, NULL, NULL, NULL, '450981198705104350', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 921, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:27:38', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (864, '13788729167', '4502005957', '13788729167', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁庆', 1, '452528198303080278', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cdeade7c97374db49dcfa721ffe94d4a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/69792efc55a543a6b080bdb924f822b0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航生路6号万达华城11栋1303室', NULL, NULL, NULL, NULL, 10, '452528198303080278', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88303b41eeb741a3881c33364994fb7b.jpg', NULL, NULL, NULL, NULL, NULL, '452528198303080278', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 702, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:26:39', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (865, '15078250879', '4502004960', '15078250879', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴世永', 1, '450222196312174019', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cc83033621474dc08adc01f5ea46657d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a11ec5775b948348de2b8d0833135f9.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区荣军路222号19栋2单元502号', NULL, NULL, NULL, NULL, 10, '450222196312174019', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0eacfb3ffc0c438a96f81521cf65c237.jpg', NULL, NULL, NULL, NULL, NULL, '450222196312174019', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 862, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:25:27', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (866, '13978056274', '4502004968', '13978056274', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '莫经富', 1, '45222719851105125X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c596670955be40aabdb52c90a8e3f43e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d7dcd854fe67493299b66932d83ebd8a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市融安县浮石镇兴平小区119号', NULL, NULL, NULL, NULL, 10, '45222719851105125X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ffe3f56544814455a1e8249fab04a491.jpg', NULL, NULL, NULL, NULL, NULL, '45222719851105125X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 857, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:23:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (867, '15707722830', '4502004870', '15707722830', '77e12b2c8b27138a2d4dd0ccd98ee4b3', 'a8a728e6f93de2b87b7cd4ef2fecf5a3', '蒋芳治', 1, '450204197708021416', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ac0319abe4645b484833bf65e51ffda.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0abd81985caf48309d9ac67dab99191e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区和平路工程区88栋3单元602号', NULL, NULL, NULL, NULL, 10, '450204197708021416', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2f5bd11308b144fd8908be8c42e5dbda.jpg', NULL, NULL, NULL, NULL, NULL, '450204197708021416', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 886, 2, 1, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:22:15', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (868, '13507722160', '4502005980', '13507722160', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁建荣', 1, '450222198412180052', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/481f66404e8c4aa78fd817aa5ec719a6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/16795d9e58d641b88f490f1507f201cb.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳城县大埔镇文昌路11号', NULL, NULL, NULL, NULL, 10, '450222198412180052', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5d3d880eaa4442bfbfe034d266c07a56.jpg', NULL, NULL, NULL, NULL, NULL, '450222198412180052', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 879, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:20:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (869, '18978098634', '4502005640', '18978098634', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '吴杰坤', 1, '450211199210130810', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b27211f4dfcc463da6190d28afaed46e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/68766d9fa524469ea0223e535ae048ac.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区长塘镇黄土村上村屯七队33号', NULL, NULL, NULL, NULL, 10, '450211199210130810', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59a486fd4d0343fba2124d5b203ef0cd.jpg', NULL, NULL, NULL, NULL, NULL, '450211199210130810', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 883, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:19:20', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (870, '13877232647', '4502004984', '13877232647', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王聪', 1, '450203198002270718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd4df9d0697f4b45ab003dcec4717ca2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c78cfed7ab9b46dd901c92e12d15ea34.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区东环大道4号43栋2单元302室', NULL, NULL, NULL, NULL, 10, '450203198002270718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/76f43a34b5e54d7797aa8f7a300b8554.jpg', NULL, NULL, NULL, NULL, NULL, '450203198002270718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 886, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:18:26', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (871, '18307727740', '4502005999', '18307727740', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王骏骥', 1, '450204199003141433', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78f40a2a07f9430482d90e6294805bd9.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9177857dde87458e9be8af6d769f641d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳太路7号15栋1单元102室', NULL, NULL, NULL, NULL, 10, '450204199003141433', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/312869a1e0c645e489e365415da7c28e.jpg', NULL, NULL, NULL, NULL, NULL, '450204199003141433', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 819, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:17:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (872, '15678611992', '4502004875', '15678611992', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘阳光', 1, '450924199203244174', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dc445b12c22d44568838fc877d8c6663.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0fa38818342e434f98f8e3eb7a99b63d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇建设路8号金碧苑18栋3单元', NULL, NULL, NULL, NULL, 10, '450924199203244174', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/782d828006634f59969bc105d42fad34.jpg', NULL, NULL, NULL, NULL, NULL, '450924199203244174', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 874, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:16:29', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (873, '13299605883', '4502004976', '13299605883', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦越超', 1, '452223199401300015', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/01da2639f5b04d44bfb119378637e70c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26a127cff8e245abab503821164016e1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县鹿寨镇鹿州监狱住宅区101号', NULL, NULL, NULL, NULL, 10, '452223199401300015', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4bafa5c6b94a44d6b361e17e20e8d0fc.jpg', NULL, NULL, NULL, NULL, NULL, '452223199401300015', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 870, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:15:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (874, '15777258587', '4502004776', '15777258587', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗华鑫', 1, '450202198412050631', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e4d65ecd3cc4d38a99bbd7b3b5510cd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de28b8fa14234783a5cd7c9f14ea6d6a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '城中区斜阳路细柳巷32号', NULL, NULL, NULL, NULL, 10, '450202198412050631', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0ebeca81becf45b79a8a852ca1ee9622.jpg', NULL, NULL, NULL, NULL, NULL, '450202198412050631', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 810, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:14:33', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (875, '13607828815', '450201507532', '13607828815', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '郭建宁', 1, '450203196308260716', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6555984e72be4f6bbc28a4a54b74a99f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a79d667290b84777b320d4c48c483540.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区屏山大道314号', NULL, NULL, NULL, NULL, 10, '450203196308260716', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/963c0887b88a4a348ae108368c66b6dd.jpg', NULL, NULL, NULL, NULL, NULL, '450203196308260716', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 838, 2, 1, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:13:39', 1, 2, 1, 5.44, NULL, NULL, 5.44, 5.44, NULL);
+INSERT INTO `t_driver` VALUES (876, '13737270788', '4502005645', '13737270788', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王定仁', 1, '452702197809102334', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f263c2a0629d4ffa9180b86d1e54fa9a.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fc5d1177eec5493b90ce539d25620918.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇柳堡路398号金丽苑六栋', NULL, NULL, NULL, NULL, 10, '452702197809102334', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9977516676b94e2b8d2f02c839edb758.jpg', NULL, NULL, NULL, NULL, NULL, '452702197809102334', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 815, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:12:32', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (877, '13877296911', '4501022538', '13877296911', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗祖佑', 1, '452223196908251554', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/56971d257fd04dc19304a7648f8b7598.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0a0e02dc007b4643a5a438c519ef5b80.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西鹿寨县平山县石龙村', NULL, NULL, NULL, NULL, 10, '452223196908251554', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1f68bbb38d814ee5b4af6670913a2995.jpg', NULL, NULL, NULL, NULL, NULL, '452223196908251554', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 902, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:11:28', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (878, '13457228928', '4502005635', '13457228928', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '石秀乐', 2, '452226196807055326', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/218f860fb8174882982f632e041557a4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/410f21ea496c409387a8e5c099293a21.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市恒大城2栋1单元2101', NULL, NULL, NULL, NULL, 10, '452226196807055326', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cac227e87e1a4cf8989a913a1878eebf.JPG', NULL, NULL, NULL, NULL, NULL, '452226196807055326', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 888, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-31 16:58:35', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (879, '13517803341', '4500016925', '13517803341', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李英', 2, '450222198010200049', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ba569ccf9f424551afb7e69d587c45c4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fca37b5d9c2c48c5bd99bf090d5d6084.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳城县大埔镇木桐村', NULL, NULL, NULL, NULL, 10, '450222198010200049', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eaaaffae398049048e7391cf29eb3fe7.jpg', NULL, NULL, NULL, NULL, NULL, '450222198010200049', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-09-04 18:10:33', 39, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (880, '13768862894', '4500072849', '13768862894', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄明锋', 1, '450221197712150612', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/701f7c1c88024e448909ddf5dc447f59.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/60b3a65f14b54689be145396e9e3b8ac.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区磨滩路96号二区11栋2单元102室', NULL, NULL, NULL, NULL, 10, '450221197712150612', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/23f9eb14a5904f089cc14df59a64926d.jpg', NULL, NULL, NULL, NULL, NULL, '450221197712150612', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 844, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:07:05', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (881, '13457211398', '4502006104', '13457211398', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '朱顺生', 1, '450204196810130358', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9214da0c606445fa184d2f8c4f75016.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6991320affe94ec8a83599183936d405.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区飞鹅路', NULL, NULL, NULL, NULL, 10, '450204196810130358', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6856586264ba44da93b3623cc7bd1e1d.jpg', NULL, NULL, NULL, NULL, NULL, '450204196810130358', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 858, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:05:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (882, '18977281448', '4502008384', '18977281448', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谢健荣', 1, '452225196810150053', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ebd241f2103d48f2b1a1433300954bd4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b7aefeec69f7408f81fd607657b0bfd5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区箭盘路36号之九锦园18栋1905室', NULL, NULL, NULL, NULL, 10, '452225196810150053', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8b1da110ab64b43b03d8964ec198e40.jpg', NULL, NULL, NULL, NULL, NULL, '452225196810150053', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 813, 2, 1, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:04:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (883, '13471208127', '4502008387', '13471208127', '91ab32ce99282f76c27a928a41b70b88', '11cd0f21a2f5b2bed520aed8cc4f5fa1', '黄立', 1, '450225199510093431', 1, 0, 'http://newok.oss-cn-shenzhen.aliyuncs.com/6efe0e5a-93f1-46a8-8476-753069f333aa', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea48ded3cf474462bb266ef7f1040f75.jpg', 'http://newok.oss-cn-shenzhen.aliyuncs.com/3170c234-e85a-4c6a-a969-78e194c54082', 'http://newok.oss-cn-shenzhen.aliyuncs.com/43276e6d-f95a-4bc3-9ba8-479b5b248bf0', '450204', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区柳州市柳南区', '广西壮族自治区柳州市柳南区', '广西壮族自治区,柳州市,柳南区', NULL, NULL, 6, '450225199510093431', 'http://newok.oss-cn-shenzhen.aliyuncs.com/2a6c450e-a7f3-4912-a1aa-c960360481ee', NULL, '2014-07-11', NULL, NULL, NULL, '450225199510093431', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,柳南区', NULL, 1, 909, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:03:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (884, '13807721626', '4502008379', '13807721626', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘剑', 1, '450204197011150031', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2af338b6c07c4ccf922020dc4bfefc48.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b669d7744a2748dfbaa4befda164d8ec.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳南区城站路', NULL, NULL, NULL, NULL, 10, '450204197011150031', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6f3846f239fe4ca6b100168360065d23.jpg', NULL, NULL, NULL, NULL, NULL, '450204197011150031', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 817, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:01:37', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (885, '19978260311', '4502008399', '19978260311', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '潘嘉鑫', 1, '45020219790714001X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2d3fc635648d458fb2a6da6f4938a89d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/69e2c9cc7d804a32ac1c111b477d3755.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区雅儒路西四巷6号10栋2单元801室', NULL, NULL, NULL, NULL, 10, '45020219790714001X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2d578d0b9ef24e138007f20a65db4bef.jpg', NULL, NULL, NULL, NULL, NULL, '45020219790714001X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 903, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 15:00:25', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (886, '15677278646', '4502008370', '15677278646', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦昌哲', 1, '452229198610170193', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0175f0022b464a6a8b7ff15ece2ddf60.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/84557e067ef148afb8e32e7991d87fa2.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区柳邕路351号48栋3单元1501室', NULL, NULL, NULL, NULL, 10, '452229198610170193', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8aedb14708cf4a7fb8aa4583e5dc860b.jpg', NULL, NULL, NULL, NULL, NULL, '452229198610170193', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 834, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:59:09', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (887, '13647725543', '4502008373', '13647725543', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赖志丹', 1, '452225199409271311', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/df29c3cf51b644ad8bf4c93dbc3ff3d7.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c77f0201c804b8b8efea680f3a6e4dd.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区和平路文化区19栋3单元701室', NULL, NULL, NULL, NULL, 10, '452225199409271311', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3f1664e698194524953847e8358f211c.jpg', NULL, NULL, NULL, NULL, NULL, '452225199409271311', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 816, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:57:46', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (888, '18277287833', '4500058092', '18277287833', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '余柳冰', 2, '450205197512171021', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3882395fd896449db7315e94847bcad3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/12a7406394fc435ebe92bbb032a38e9e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳北区胜利小区五村10栋', NULL, NULL, NULL, NULL, 10, '450205197512171021', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b9302663fa04f69b8235b1e6bb45dd5.jpg', NULL, NULL, NULL, NULL, NULL, '450205197512171021', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 805, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:55:40', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (889, '15278887589', '4502004127', '15278887589', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '秦琰莹', 1, '452226198811081534', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/de322540410e425387872b5c7610a3c2.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e75957c137141e18a7c29977f7456f5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区西环路17号1栋3单元40室', NULL, NULL, NULL, NULL, 10, '452226198811081534', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b531a31d8fd04b55815459bea44dda21.jpg', NULL, NULL, NULL, NULL, NULL, '452226198811081534', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 895, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:54:11', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (890, '15577263828', '4502004851', '15577263828', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁群孟', 1, '452502197404036315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9030de8546754599aa7aedbe983e7ea6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c0d762b17c2d4c58b73921298863d55d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区龙屯路一区19栋2单元602室', NULL, NULL, NULL, NULL, 10, '452502197404036315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a0244d1a60994ecd891cf98c73034422.jpg', NULL, NULL, NULL, NULL, NULL, '452502197404036315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 900, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:52:44', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (891, '13977293920', '4502008831', '13977293920', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '贾东喜', 1, '450202196806260915', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/800ccc291f414d07850073186ce997fc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0d13e71efd174b738701578b7f99c017.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '鱼峰区龙擎苑社区江四村33号', NULL, NULL, NULL, NULL, 10, '450202196806260915', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8db2b114307480fafe1e18ae918ceca.jpg', NULL, NULL, NULL, NULL, NULL, '450202196806260915', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 931, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:51:30', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (892, '17376148086', '4502008382', '17376148086', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊培册', 1, '450221199204102912', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1bd9a4268da645c5a4924685a2e385c6.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d77f19837d5c416ebc96146b82ae5a05.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江区成团镇里湾村新舟屯88号', NULL, NULL, NULL, NULL, 10, '450221199204102912', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bd75f3f8d4fe49c7ad6dcd146f726d51.jpg', NULL, NULL, NULL, NULL, NULL, '450221199204102912', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 889, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:50:19', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (893, '18579411251', '4502007500', '18579411251', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王德', 1, '450202198211250338', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/48ded1ae846248c28c21ba0f7badf0b4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fa490512a5b34a4aa524e44cb1f59f6c.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区景行路', NULL, NULL, NULL, NULL, 10, '450202198211250338', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8b1e9be2519f428896ce4f19f14468b5.jpg', NULL, NULL, NULL, NULL, NULL, '450202198211250338', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 871, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:49:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (894, '18277277933', '4500087384', '18277277933', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '欧权光', 1, '450205197402160719', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87e3e1f0fc054786b0771f3948a52f5d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3dd5b0efaeb444a19b83dc3185576c80.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市胜利路51号', NULL, NULL, NULL, NULL, 10, '450205197402160719', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e484176a681c4f1894329aece624b765.jpg', NULL, NULL, NULL, NULL, NULL, '450205197402160719', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 805, 2, 1, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:47:12', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (895, '18677284828', '4502008822', '18677284828', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '劳群力', 1, '450203197310240735', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c210a34952dd44aaaf645e4e537e0595.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/67a6f88ccddb44a8ada91547a800d554.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区柳石路57号7栋2单元701室', NULL, NULL, NULL, NULL, 10, '450203197310240735', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5ae4bec82d5a430189653953f9b47928.jpg', NULL, NULL, NULL, NULL, NULL, '450203197310240735', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 904, 2, 2, '1', '2020-08-17 18:49:00', 1, '2020-08-20 14:43:47', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (896, '19978266535', '4502008383', '19978266535', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦奇才', 1, '450203197406100737', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34974729bd8b47b68a3963d4ae9630b1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c8ff97f0cc0c4222836bbe899bd9284f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路67号之一桃源居14栋3单元201室', NULL, NULL, NULL, NULL, 10, '450203197406100737', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e987c288a23f4acfaf8abb8253fc8395.jpg', NULL, NULL, NULL, NULL, NULL, '450203197406100737', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 904, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:42:21', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (897, '13324726076', '4502008820', '13324726076', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '王永贤', 1, '450221197211080935', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d0681b4bdd544a60a2bba7c941cebece.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0143138c25ab40a184d863d92eb350be.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳江县里雍镇立冲村河表屯31号', NULL, NULL, NULL, NULL, 10, '450221197211080935', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3443366928f544d4a6dbbfaddec12e67.jpg', NULL, NULL, NULL, NULL, NULL, '450221197211080935', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 919, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:40:00', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (898, '13907722514', '4502006155', '13907722514', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈永伟', 1, '450203197312210310', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e9272d0ce08c4c4a9a02cf8c7b26cb14.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2d4c2d36b3ff45b7a26f58fe87593054.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区水南路213号6栋2单元202室', NULL, NULL, NULL, NULL, 10, '450203197312210310', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7cb2154c9b244a5e927344b5c41af76b.jpg', NULL, NULL, NULL, NULL, NULL, '450203197312210310', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 859, 2, 1, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:38:34', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (899, '13977220492', '4502004317', '13977220492', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦宝光', 1, '452702198305180771', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1719ecff9f140238db7fea70a9fda9f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c2bbd904fbe242f1bb6a7fe8f7a88f0f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西宜州市三岔镇羊角村冲八屯46号', NULL, NULL, NULL, NULL, 10, '452702198305180771', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9f9866d2329b4234a98af6e2d3acce99.jpg', NULL, NULL, NULL, NULL, NULL, '452702198305180771', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 807, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:36:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (900, '17507727682', '4502008802', '17507727682', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '曾家军', 1, '450205197608020439', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ac9a77e805dd4df18a22d3bb34243409.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/68112948f95d4a90a70f2c79f469e796.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区北雀路86号平房57室', NULL, NULL, NULL, NULL, 10, '450205197608020439', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1c6202f5f5b248da9041ea6a7f1efb78.jpg', NULL, NULL, NULL, NULL, NULL, '450205197608020439', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 925, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:35:13', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (901, '18078277616', '4502008374', '18078277616', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄科', 1, '452224199111174010', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b1bb0841ad9440a8b99815d02645b6aa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7adf84569f9046b8bbab6fdd8376dde4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区航星路1号7栋2单元602室', NULL, NULL, NULL, NULL, 10, '452224199111174010', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8709549e06ed402d99c85585ba0889a9.jpg', NULL, NULL, NULL, NULL, NULL, '452224199111174010', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 847, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:33:51', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (902, '13978056223', '4502007567', '13978056223', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '陈序强', 1, '450203196509190718', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d89e03b263c4143bb5472c305300ae1.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6a00368417ee4f138a3601fecb132467.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区跃进路88号2栋2单元102号', NULL, NULL, NULL, NULL, 10, '450203196509190718', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/2fc6fc934ace4858bf1a6712f41de93f.jpg', NULL, NULL, NULL, NULL, NULL, '450203196509190718', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 923, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:32:17', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (903, '19177222084', '4502007466', '19177222084', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗鸿翔', 1, '450203198705250334', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9750932fe76546f4aa1dcc6ca40f51b4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9d48f01001374bad8b90c9dcfe6e9e6f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区京港路3号晶远花苑31栋3单元702室', NULL, NULL, NULL, NULL, 10, '450203198705250334', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/c894aa0d9aab4668a49aa26ec5b83589.jpg', NULL, NULL, NULL, NULL, NULL, '450203198705250334', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 946, 2, 2, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:30:23', 1, 2, 1, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (904, '13768666664', '4502007460', '13768666664', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗兆鹏', 1, '450204198201041033', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/43a6ba2ee0fe4097ae83ceb39fb9a16c.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/130f575185a94218a8536365f3060309.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区红岩路三区113号之七', NULL, NULL, NULL, NULL, 10, '450204198201041033', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0fc5bbcfdf7a4ad5a464c09e47bcbe43.jpg', NULL, NULL, NULL, NULL, NULL, '450204198201041033', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 845, 2, 1, '1', '2020-08-17 18:49:01', 1, '2020-08-20 14:28:22', 1, 2, 1, 5.60, NULL, NULL, 5.60, 5.60, NULL);
+INSERT INTO `t_driver` VALUES (905, '18380581247', '18380581247', '18380581247', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '测试', 1, '511002199404021457', 1, 0, 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/e4d5fe7488b34a76aa49d0a1f1410a9e.jpg', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/c581efbb90024018a80da598b081fd30.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '成都市高新区', NULL, NULL, NULL, NULL, 10, '121314141441', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/f472d3006d9d4f08a4ee951eeab35f03.jpg', NULL, NULL, NULL, NULL, NULL, '12345684', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 943, 2, 2, '1', '2020-08-17 19:02:00', 1, NULL, NULL, 2, NULL, 8.02, NULL, NULL, 8.03, 8.03, NULL);
+INSERT INTO `t_driver` VALUES (906, '15928265276', 'D000906', '15928265276', 'e5cb21002742bea1348047232dbeffe4', NULL, '唐浩', 1, '51168119911111447X', 1, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/c8dfc709-e116-497d-b7ec-ed31e5ec7492', NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/90aabdb2-7b2c-4b33-94be-162ddfb64838', 'http://newok.oss-cn-shenzhen.aliyuncs.com/c527844b-bce0-460a-8cef-fd4461bc3ad0', '450202', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '浙江省杭州市滨江区', '浙江省杭州市滨江区', '浙江省,杭州市,滨江区', NULL, NULL, 6, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/3f5a5dec-3268-455b-80bf-6317a917e21b', NULL, '2014-08-19', NULL, NULL, NULL, '11111112', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,城中区', NULL, NULL, 944, 2, 2, '1', '2020-08-18 09:00:43', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, 0.00, 0.00, 'oVlD60LqwXN6_JYXQP_m5zfQst_A');
+INSERT INTO `t_driver` VALUES (910, NULL, '11111', '18380475138', 'd5e33bb66bde8711e65dcbfeae796598', NULL, '任test外', 1, '513021199209264775', 1, 0, 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/1e9d6f103c604033a330642ca2f5c62e.png', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/36de07243e7840beb29b870b2e111d78.png', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '成都天府新谷9号楼', NULL, NULL, NULL, NULL, 5, '123456654321', 'https://chaojiguoke.oss-cn-shanghai.aliyuncs.com/img/43b678db57794ee7a492f9119da2d512.jpg', NULL, NULL, NULL, NULL, NULL, '1321312', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 945, 2, 2, '1', '2020-08-19 17:02:32', 1, NULL, NULL, 2, NULL, 0.04, NULL, NULL, 0.05, 0.05, NULL);
+INSERT INTO `t_driver` VALUES (911, '15946464646', 'D000908', '15946464646', 'd5e33bb66bde8711e65dcbfeae796598', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-08-19 17:24:43', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (912, '11949467664', 'D000909', '11949467664', 'd5e33bb66bde8711e65dcbfeae796598', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-08-19 17:26:46', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (913, NULL, '66666', '19978265605', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁锴柳', 1, '450202198110090611', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b06ebb76d1f40da8961311c67bee983.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b19390591ad744958ce1fe8b92ef6e87.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '无', NULL, NULL, NULL, NULL, 5, '450202198110090611', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/882d14063e8a444681f4669eca69f22d.jpg', NULL, NULL, NULL, NULL, NULL, '450202198110090611', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 565, 2, 1, '1', '2020-08-20 15:41:20', 1, NULL, NULL, 2, NULL, 5.60, NULL, NULL, 5.60, 5.60, NULL);
+INSERT INTO `t_driver` VALUES (914, '15943464646', 'D000911', '15943464646', 'd5e33bb66bde8711e65dcbfeae796598', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-08-28 11:23:20', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (915, '18588980387', 'D000912', '18588980387', '0f10aa90f029ee084293cbf46f95d60a', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-08-28 14:58:28', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (916, NULL, '', '13978090771', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄启丁', 1, '452730198308072317', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ca0c319f13c4486b840cce50088c08b0.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87aa03c8fb694d11b071bcab400e6e32.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区鸡喇路16号集体户', NULL, NULL, NULL, NULL, 10, '452730198308072317', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e894fd3b14c54b1882a7b59361ac9e4c.JPG', NULL, NULL, NULL, NULL, NULL, '452730198308072317', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 851, 2, 1, '1', '2020-08-31 16:20:24', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (917, NULL, '', '13877267576', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '黄伟', 1, '450203197610141333', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/22f6f76c6c4340df88d761f496300dfc.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/da7f9e076dd04a91bcb785d457cd7b40.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区荣军路246号鸿泰名城1栋2单元302室', NULL, NULL, NULL, NULL, 10, '450203197610141333', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/59810ac70bd74482ab0794cbd0255a3d.JPG', NULL, NULL, NULL, NULL, NULL, '450203197610141333', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 809, 2, 1, '1', '2020-08-31 16:25:46', 39, '2020-08-31 17:04:03', 39, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (918, NULL, '', '18978091177', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赖恩伟', 1, '450202198102120016', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/13662cad7ca0473e89dccf2667fe2a24.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f3187d41465405d81307b9c8a7564aa.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区弯塘路东一巷41号4栋501室', NULL, NULL, NULL, NULL, 10, '450202198102120016', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b0f95bbc506548ef833c23a036008c76.JPG', NULL, NULL, NULL, NULL, NULL, '450202198102120016', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-08-31 16:32:05', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (919, NULL, '', '13768942768', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '蓝锦云', 2, '452730198210085048', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3b1dd775b08546a09a54773d6e6e2f52.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4a694f9dc117435a9c9e8719083e8687.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市城中区静兰路东一巷19号11栋1单元1002室', NULL, NULL, NULL, NULL, 10, '452730198210085048', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3589f718a7a2430692b1557ead6a17fa.JPG', NULL, NULL, NULL, NULL, NULL, '452730198210085048', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 905, 2, 1, '1', '2020-08-31 16:41:05', 39, '2020-09-02 17:16:59', 39, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (920, NULL, '', '18978022126', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭毅', 1, '45021119820304133X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7e9cec3a6cfd4ae3b1fe549972677a7b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7aadc7bbf5cd48e98c3acf9ec4e7ec5f.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区白云小区一村2栋502室', NULL, NULL, NULL, NULL, 10, '45021119820304133X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7a30c87f79be4686a8af9c19352294e8.JPG', NULL, NULL, NULL, NULL, NULL, '45021119820304133X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 696, 2, 2, '1', '2020-08-31 16:46:26', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (921, NULL, '', '13597234338', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '巫佩杰', 1, '452226198411159275', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cb22dde5356f41fbb90bf9410ca93de4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9a4de2b61d6543e9afd7899fe81a7f19.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区屏山大道355号1栋102室', NULL, NULL, NULL, NULL, 10, '452226198411159275', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3c206370484f4fc38616faa6b3412e91.JPG', NULL, NULL, NULL, NULL, NULL, '452226198411159275', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 875, 2, 1, '1', '2020-08-31 16:52:34', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (922, NULL, '', '18815482669', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃晓业', 1, '452201198012050072', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/589898c9d9ed4dc18a41150311ee2733.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/094592926a3f4354b7d5126e1b080497.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区柳邕路218号二区23栋2座', NULL, NULL, NULL, NULL, 10, '452201198012050072', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/099d8dfbcf92496c81cbda8cb082a007.jpg', NULL, NULL, NULL, NULL, NULL, '452201198012050072', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 802, 2, 1, '1', '2020-09-01 13:15:33', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (923, NULL, '', '13036822669', '995b2346d55067891b9fe270657c89b5', NULL, '韦伍辉', 1, '450221197005152475', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5c3331dcbe4942afacde970203868659.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d9570d33a354a86b7324167328e71f0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江区拉堡镇基隆综合区兴隆市场159号', NULL, NULL, NULL, NULL, 10, '450221197005152475', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44cfc6b3070b429bb6d076ed6343eebf.jpg', NULL, NULL, NULL, NULL, NULL, '450221197005152475', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 877, 2, 1, '1', '2020-09-01 14:43:56', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (924, NULL, '', '13788628890', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '温周辉', 1, '450222199401171315', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/08f7b5df90f8407f858ed90f7823aa04.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4f15cb7d9ee643df942e1879585e120d.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳城县沙埔镇碑田村民委老潭景屯17号', NULL, NULL, NULL, NULL, 10, '450222199401171315', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/57e0fa8eaf6446329819f4323ca72c10.jpg', NULL, NULL, NULL, NULL, NULL, '450222199401171315', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 528, 2, 1, '1', '2020-09-02 17:16:10', 39, NULL, NULL, 2, NULL, 0.88, NULL, NULL, 0.88, 0.88, NULL);
+INSERT INTO `t_driver` VALUES (925, NULL, '', '18777207375', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '林涛', 1, '450211199011071918', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6ae470b4a8784c25831e0fe5ebd6118e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ab7ca60b1c704d8ca84481c17e14afe5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区太阳村镇西鹅村中高沙四屯141号之一', NULL, NULL, NULL, NULL, 10, '450211199011071918', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0e5fe88504ac447386a8557e90434e61.jpg', NULL, NULL, NULL, NULL, NULL, '450211199011071918', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 881, 2, 1, '1', '2020-09-04 16:37:06', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (926, NULL, '', '18077228017', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '覃富荣', 2, '452225198509010923', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b3f22044b26d4a0c8b5865366cf38622.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/4d3c13c45f604f8eb138e9bf1756dd8e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鱼峰区天山路48号之一', NULL, NULL, NULL, NULL, 10, '452225198509010923', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/85a0368079244fc49876eddde151132b.jpg', NULL, NULL, NULL, NULL, NULL, '452225198509010923', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 897, 2, 1, '1', '2020-09-04 16:55:12', 39, '2020-09-04 16:55:29', 39, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (927, NULL, '', '18172181392', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '龙泓胜 ', 1, '45022219871010041X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6565ee100b044c7e8935f0376aa39c90.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/26fd3fce0687412696d8b4bf33accbc5.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳城县东泉镇螺田村民委甲伴屯2队25', NULL, NULL, NULL, NULL, 10, '45022219871010041X', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/061a3acac38f4a5598d1e8e48eb5db13.jpg', NULL, NULL, NULL, NULL, NULL, '45022219871010041X', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 836, 2, 2, '1', '2020-09-04 17:07:37', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (928, NULL, '', '13707809357', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘启雄', 1, '450211197512150818', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/29044b58f2b547d4ba30b0272b795d53.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/44c13c706b42488ebc710b91fa6fb30b.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳北区白露乡白露村云头屯六队36号', NULL, NULL, NULL, NULL, 10, '450211197512150818', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5a9de59aab184991803814d510eb81f5.jpg', NULL, NULL, NULL, NULL, NULL, '450211197512150818', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 616, 2, 1, '1', '2020-09-04 18:07:16', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (929, NULL, '', '15078282648', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘文广', 1, '452223198506234013', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d6accd9377e1470aa91b4e510a22a473.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/450a8ccee3ef49d680be817ee262edbf.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市鹿寨县寨沙镇拉庙村波带屯25号', NULL, NULL, NULL, NULL, 10, '452223198506234013', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/eef63963bab246b88659d53cd7ce5b39.jpg', NULL, NULL, NULL, NULL, NULL, '452223198506234013', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-09-05 13:17:17', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (930, '18607721255', '', '18607721255', 'cb4b64fbe2b38e60a1b888af19f14986', NULL, '何昌骏', 1, '452229197710011814', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0756fe1c186d4d12acdcca24477262fb.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cfc405f7c84f4b8687e5fedc82db8d58.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市融水苗族自治县四荣乡荣塘村贾昂屯18号之二', NULL, NULL, NULL, NULL, 10, '452229197710011814', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a5d96814b0a14c5282628646d69ff673.jpg', NULL, NULL, NULL, NULL, NULL, '452229197710011814', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 823, 2, 2, '1', '2020-09-05 17:37:54', 39, '2020-09-08 11:29:47', 39, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (931, NULL, '', '18977202519', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '刘春华', 1, '450221197301191938', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/dbc9bfe74b7949af8a6322e30564cce4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7c7522a051544f259bcc426ad5501c77.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江县进德镇沙子村田心屯7号之四', NULL, NULL, NULL, NULL, 10, '450221197301191938', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8d7857cbea9c4f8580e1b850d9a53659.jpg', NULL, NULL, NULL, NULL, NULL, '450221197301191938', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 849, 2, 1, '1', '2020-09-05 17:43:25', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (932, NULL, '', '18977293330', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '赖向前', 1, '450222198410250395', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/637bb6b8fb8543dc9d43fa7005a64b71.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/34327069e13b434cb69f69cd1089e3b4.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳城县东泉镇东中路184号之二', NULL, NULL, NULL, NULL, 10, '450222198410250395', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/009a5d2c39194f6e891d06ab12245518.jpg', NULL, NULL, NULL, NULL, NULL, '450222198410250395', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 2, '1', '2020-09-08 12:05:06', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, 0.01, 0.01, NULL);
+INSERT INTO `t_driver` VALUES (933, '19977241198', 'D000930', '19977241198', 'f4bf22ab8853b80a990d91f626fa852b', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-08 19:16:50', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (934, '18777261093', 'D000931', '18777261093', '68767c39e17c4911113087bfcb93b80f', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-09 09:50:08', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (935, '15102822653', 'D000932', '15102822653', 'f0001f0dc6404d6b4867bba6eaa564e7', NULL, '鄢波', 1, '513902198905043058', 1, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/ff99bf05-c4e6-4b93-9a2e-957604d8ed5b', NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/fffed089-06b4-4d5b-9951-803eab448e92', 'http://newok.oss-cn-shenzhen.aliyuncs.com/e5c59b2c-a2ed-4d88-9dca-9703517b3082', '510116', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '四川省成都市双流区', '四川省成都市双流区', '四川省,成都市,双流区', NULL, NULL, 3, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/04245544-129b-42ff-92e8-0a799ebee511', NULL, '2017-07-15', NULL, NULL, NULL, '513902198905043058', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '四川省,成都市,双流区', NULL, NULL, NULL, 1, 1, '1', '2020-09-09 10:37:28', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (936, '13978059360', 'D000933', '13978059360', 'f68316be8e60f4e936e0fe16babe9e90', NULL, '黄勇', 1, '452730196603045312', 1, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/a930e4df-01a1-4afc-b585-77729f7f53fb', NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/ffa338be-4df0-41dc-8197-d88fbbcd14fd', 'http://newok.oss-cn-shenzhen.aliyuncs.com/b01f382e-6499-43ba-a1d3-c244f09e9fd3', '450203', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区柳州市鱼峰区', '广西壮族自治区柳州市鱼峰区', '广西壮族自治区,柳州市,鱼峰区', NULL, NULL, 17, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/a0aa0849-4b08-4711-8cce-ec9443cfefac', NULL, '2003-03-28', NULL, NULL, NULL, '452730196603045312', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,鱼峰区', NULL, NULL, NULL, 1, 1, '1', '2020-09-09 16:43:12', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (937, '15621268288', 'D000934', '15621268288', '9021ccfc8d388f83380526189da1815e', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-10 13:58:05', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (938, '15218107843', 'D000935', '15218107843', 'c69e1924c851d5c6a3cea351fe131fc0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-11 10:01:03', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (939, '18711330007', 'D000936', '18711330007', '2073659fa71c7b4774e37f6beeb69568', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-11 10:46:08', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (940, '17776303397', 'D000937', '17776303397', '8c0ed01f106e330bf7cbd248fd36d1f6', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-11 17:44:20', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (941, '18977281049', 'D000938', '18977281049', '9dbc066dbfe7c96381b168dd75148d53', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-12 01:22:35', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (942, '13724553985', 'D000939', '13724553985', 'a7a02adaeb9b2d41082b57294c841de5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-12 08:54:33', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (943, NULL, '', '17507720216', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '熊小堂', 1, '450221199408012919', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/86957cfd154b4ecea54ac208a4e30309.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3eabd69b4db6438183181e6f997aa141.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳江县成团镇里湾村红旗屯88号', NULL, NULL, NULL, NULL, 10, '450221199408012919', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b513de3be0494f3c8a89eaba89a2b85b.jpg', NULL, NULL, NULL, NULL, NULL, '450221199408012919', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 668, 2, 1, '1', '2020-09-12 16:45:35', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (944, '13669463381', 'D000941', '13669463381', '1ebd11cce6a4c02f816a6e11b368fe44', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-12 19:14:11', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (945, '13558122848', 'D000942', '13558122848', '1e7c90c47fc3420fe11cef3353fbfb30', NULL, '陈建华', 1, '450221197512090918', 1, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/6b930dc0-f066-41e7-93fe-f204a5ce0592', NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/8cba583c-4180-4198-a87e-8cc6501fc7be', 'http://newok.oss-cn-shenzhen.aliyuncs.com/84512e8a-3012-42cb-b086-f5dbe7190376', '450205', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区柳州市柳北区', '广西壮族自治区柳州市柳北区', '广西壮族自治区,柳州市,柳北区', NULL, NULL, 8, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/e84090cb-55b5-45a7-9cb3-cbd153977d14', NULL, '2012-09-06', NULL, NULL, NULL, '450200158444', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,柳北区', NULL, NULL, NULL, 1, 1, '1', '2020-09-13 10:35:48', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (946, '18483608958', 'D000943', '18483608958', 'fd3342b7743ef425b5373bc3aeb24c04', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-13 23:54:18', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (947, '18328189962', 'D000944', '18328189962', '7511dcab0fc717af541fc668358dbaa5', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-14 09:31:49', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (948, NULL, '', '15678093352', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁小己', 1, '45022119951010297X', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/129ede3351e14d39bc08044435db260f.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/088c6926e43a43aa812156da71601b52.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区潭中西路19号3栋4单元103室', NULL, NULL, NULL, NULL, 10, '45022119951010297X ', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/56c4061eafde410bbe899202f2c4232f.jpg', NULL, NULL, NULL, NULL, NULL, '45022119951010297X ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 865, 2, 1, '1', '2020-09-14 14:22:18', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (949, NULL, '', '18648865662', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '罗利成', 1, '450222199412190618', 1, 0, 'http://newok.oss-cn-shenzhen.aliyuncs.com/58057801-8934-4adc-8383-0e13db7ac037', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/cf4699dbbe4d48d6b9ff7d378cd4054e.jpg', 'http://newok.oss-cn-shenzhen.aliyuncs.com/1cfcc37c-73c3-440d-acf3-71b439d485c7', 'http://newok.oss-cn-shenzhen.aliyuncs.com/3552a45b-93f2-4c39-958a-53315282d692', '450202', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区柳州市城中区', '广西壮族自治区柳州市城中区', '广西壮族自治区,柳州市,城中区', NULL, NULL, 4, '450222199412190618', 'http://newok.oss-cn-shenzhen.aliyuncs.com/099afe96-b7c5-44d5-bb2a-f65a492321f5', NULL, '2016-01-14', NULL, NULL, NULL, '450200005870', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,城中区', NULL, 1, 825, 2, 1, '1', '2020-09-14 14:29:48', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (950, NULL, '', '18648888600', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁敏', 1, '450221199310282937', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/682caab1b5714205a4e2916ed21fdca5.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/87f90b9c30d14523b983085aa3ab459e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西柳州市柳南区潭中西路19号3栋4单元103室', NULL, NULL, NULL, NULL, 10, '450221199310282937', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/78926ac8b399458ca60dc0e1a7d72162.jpg', NULL, NULL, NULL, NULL, NULL, '450221199310282937', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 865, 2, 1, '1', '2020-09-14 14:38:26', 39, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (951, '13633055037', 'D000948', '13633055037', '6cb056408bceda2e014e345f8f481464', NULL, '廖陈红', 1, '452223199509192511', 1, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/180db41d-55d6-4e86-a274-1c211c896672', NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/62cb7d37-6eff-405d-acfd-d1610c0f26a0', 'http://newok.oss-cn-shenzhen.aliyuncs.com/02632ccf-386e-406d-b920-a16e46fc50eb', '450203', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区柳州市鱼峰区', '广西壮族自治区柳州市鱼峰区', '广西壮族自治区,柳州市,鱼峰区', NULL, NULL, 3, NULL, 'http://newok.oss-cn-shenzhen.aliyuncs.com/f9b4cde9-4a7f-4340-81f2-b7d23e359af1', NULL, '2017-09-16', NULL, NULL, NULL, '5434', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '广西壮族自治区,柳州市,鱼峰区', NULL, NULL, NULL, 1, 1, '1', '2020-09-15 10:16:07', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (952, '13754831701', 'D000949', '13754831701', '4a12aa8979d43bcdf692a14ffc26bf7a', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-15 20:14:21', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (953, '13428468045', 'D000950', '13428468045', 'e1c4182399a8883a55e42e1c1aa00539', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-15 23:34:19', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (954, '13738448628', 'D000951', '13738448628', '4378083a1fdb87d02a1fbe5d936c12f4', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-16 17:07:45', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (955, NULL, '', '13707809459', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭小辉', 1, '450211198510152216', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/b7509153c16c4ba099d267904157a63d.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d368994aff5f4579a949f6ea7f5829b1.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区镇四合村小榨屯3号', NULL, NULL, NULL, NULL, 10, '450211198510152216', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/e34ae5ac95694525b32d37765e1dd8e1.jpg', NULL, NULL, NULL, NULL, NULL, '450211198510152216', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 891, 2, 1, '1', '2020-09-17 16:41:09', 37, '2020-09-18 12:46:15', 37, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (956, NULL, '', '19978203505', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '谭勇涛', 1, '450204199206232511', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/d3a8f46447614bc68f8d5304aecb59fd.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/bab51dafd3a1434daec9dfc1daed9153.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区太阳村镇四合村小榨屯30号', NULL, NULL, NULL, NULL, 10, '450204199206232511', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/737734ce95704cd28197e5b587c3250e.jpg', NULL, NULL, NULL, NULL, NULL, '450204199206232511', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 831, 2, 1, '1', '2020-09-17 16:44:30', 37, '2020-09-18 12:44:57', 37, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (957, NULL, '', '13100492848', '72a31b9abc09b051005f2927243a43ef', NULL, '胡源', 1, '450222197811050330', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5e86f1348f8d4352aad713d56b8c6caa.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/a8fb5334cc364c298de43260b3b1a241.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳城县东泉镇和平路62号', NULL, NULL, NULL, NULL, 10, '450222197811050330', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/88a59684f4d54e7495c1f6785e981c89.jpg', NULL, NULL, NULL, NULL, NULL, '450222197811050330', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 835, 2, 1, '1', '2020-09-17 16:59:32', 37, '2020-09-18 12:40:31', 37, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (958, NULL, '', '18178818835', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦明明', 1, '450221198511265039', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/684a869e7c554e478b024ab2104a1938.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/90d2a92e587b4579b3f7539615063356.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳江县拉堡镇柳北路39号', NULL, NULL, NULL, NULL, 10, '450221198511265039', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/156fbf1564f84935896f64f632610e84.jpg', NULL, NULL, NULL, NULL, NULL, '450221198511265039', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 648, 2, 1, '1', '2020-09-17 17:03:49', 37, '2020-09-18 12:41:45', 37, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (959, NULL, '', '13978022571', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '韦谊', 1, '450211198810102210', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/539dced72f794c1e9291e792e015e16b.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/8c00ed74aa1e4b359ef51c95f6066a7e.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳南区太阳村镇四合村小榨屯34号', NULL, NULL, NULL, NULL, 10, '450211198810102210', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/f5cc4c965cf940aa970610f783f4c551.jpg', NULL, NULL, NULL, NULL, NULL, '450211198810102210', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 946, 2, 1, '1', '2020-09-17 17:06:33', 37, '2020-09-18 12:43:02', 37, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (960, NULL, '', '17878280818', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '李桃', 1, '450221198712113939', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/5f54ca33828f45dd87756f76f1a8542e.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/82c5b3f6c0d1472e8349b379f4b6d7d0.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳江县洛满镇顶建村外江屯5号', NULL, NULL, NULL, NULL, 10, '450221198712113939', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/3ddbb35404844202a366dde2b130432e.jpg', NULL, NULL, NULL, NULL, NULL, '450221198712113939', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 565, 2, 2, '1', '2020-09-18 12:24:51', 37, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (961, NULL, '', '15307727652', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '梁家文', 1, '452201197905051318', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9e854d08e6b3416cb407e6eceba50bc3.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/221f1c439b204786b1d2898e48bb9300.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '柳州市柳江区穿山镇柳石路2号93栋3单元202室', NULL, NULL, NULL, NULL, 10, '452201197905051318', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/481decca22d444b49d56b835415999d6.jpg', NULL, NULL, NULL, NULL, NULL, '452201197905051318', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 642, 2, 2, '1', '2020-09-18 12:37:37', 37, NULL, NULL, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (962, '18636852725', 'D000959', '18636852725', '4a0195bfb9c098ea40d88120742a0bbe', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-18 15:23:22', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (963, '13582158214', 'D000960', '13582158214', 'a172c4df8054cc0b6aedcb8d80f8c31e', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-19 10:38:23', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (964, '15289622030', 'D000961', '15289622030', '928ecf83bfd94bdcb80b187a7ad139cc', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-20 07:11:50', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (965, '13851086865', 'D000962', '13851086865', '7274e87411799b16fb913b82fe7ed0ea', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 1, '1', '2020-09-20 18:34:45', NULL, NULL, NULL, 1, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+INSERT INTO `t_driver` VALUES (966, NULL, '11', '17623778642', '77e12b2c8b27138a2d4dd0ccd98ee4b3', NULL, '测试司机', 1, '500223199509121212', 1, 0, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/69f61a9fd60e4ed2b86c3bd62b3556b4.jpg', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/9b0cd4940e524b66a9f81a3664cb986a.jpg', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '11', NULL, NULL, NULL, NULL, 1, 'T557441', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/6d5b7c66c94e4c04b6066407dd677e34.jpg', NULL, NULL, NULL, NULL, NULL, '11', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 2, 1, '1', '2020-09-25 16:00:25', 1, '2020-09-25 16:05:05', 1, 2, NULL, 0.00, NULL, NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_driver_activity
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_activity`;
+CREATE TABLE `t_driver_activity`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '活动名称',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `status` smallint(1) NULL DEFAULT NULL COMMENT '状态(1=待审核,2=驳回,3=通过)',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `startTime` date NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` date NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `companyType` smallint(1) NULL DEFAULT NULL COMMENT '1=平台 2=分公司 3=加盟商',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机活动主表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_activity
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_driver_activity_history
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_activity_history`;
+CREATE TABLE `t_driver_activity_history`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `day` date NULL DEFAULT NULL COMMENT '活动日期',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '活动类型(1=邀请司机注册,2=邀请用户注册,3=累计在线,4=订单量)',
+  `activityId` int(11) NULL DEFAULT NULL COMMENT '活动id',
+  `carryOut` int(1) NULL DEFAULT NULL COMMENT '是否完成(1=未完成,2=已完成)',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '奖励金额',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机完成活动记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_activity_history
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_driver_activity_online
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_activity_online`;
+CREATE TABLE `t_driver_activity_online`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `driverActivityId` int(11) NULL DEFAULT NULL COMMENT '司机活动id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '1=专车,2=出租车,3=城际',
+  `online` int(11) NULL DEFAULT NULL COMMENT '在线小时',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '奖励金额',
+  `startTime` date NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` date NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机活动-在线' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_activity_online
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_driver_activity_order
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_activity_order`;
+CREATE TABLE `t_driver_activity_order`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `driverActivityId` int(11) NULL DEFAULT NULL COMMENT '司机活动id',
+  `start` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '每天开始时间(08:00)',
+  `end` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '每天结束时间(17:00)',
+  `orderNum` int(11) NULL DEFAULT NULL COMMENT '订单数量',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '奖励金额',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机活动-订单' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_activity_order
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_driver_activity_registered
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_activity_registered`;
+CREATE TABLE `t_driver_activity_registered`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `driverActivityId` int(11) NULL DEFAULT NULL COMMENT '司机活动主表id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '1=邀请司机注册奖励,2=邀请用户注册奖励',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '奖励金额',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机活动-注册' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_activity_registered
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_driver_line
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_line`;
+CREATE TABLE `t_driver_line`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '线路id',
+  `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `addTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '添加时间【后台使用】',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '司机关联线路' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_driver_line
+-- ----------------------------
+INSERT INTO `t_driver_line` VALUES (3, 966, 2, '2020-09-25 16:05:05', '2020-09-25');
+
+-- ----------------------------
+-- Table structure for t_driver_orders
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_orders`;
+CREATE TABLE `t_driver_orders`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 268 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机接单设置' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_orders
+-- ----------------------------
+INSERT INTO `t_driver_orders` VALUES (92, 161, 2);
+INSERT INTO `t_driver_orders` VALUES (93, 904, 2);
+INSERT INTO `t_driver_orders` VALUES (94, 905, 2);
+INSERT INTO `t_driver_orders` VALUES (95, 783, 2);
+INSERT INTO `t_driver_orders` VALUES (96, 403, 2);
+INSERT INTO `t_driver_orders` VALUES (98, 903, 2);
+INSERT INTO `t_driver_orders` VALUES (99, 155, 2);
+INSERT INTO `t_driver_orders` VALUES (101, 910, 2);
+INSERT INTO `t_driver_orders` VALUES (102, 913, 2);
+INSERT INTO `t_driver_orders` VALUES (103, 488, 2);
+INSERT INTO `t_driver_orders` VALUES (105, 906, 2);
+INSERT INTO `t_driver_orders` VALUES (106, 73, 2);
+INSERT INTO `t_driver_orders` VALUES (107, 875, 2);
+INSERT INTO `t_driver_orders` VALUES (108, 894, 2);
+INSERT INTO `t_driver_orders` VALUES (109, 590, 2);
+INSERT INTO `t_driver_orders` VALUES (110, 798, 2);
+INSERT INTO `t_driver_orders` VALUES (111, 306, 2);
+INSERT INTO `t_driver_orders` VALUES (112, 8, 2);
+INSERT INTO `t_driver_orders` VALUES (113, 29, 2);
+INSERT INTO `t_driver_orders` VALUES (114, 369, 2);
+INSERT INTO `t_driver_orders` VALUES (115, 229, 2);
+INSERT INTO `t_driver_orders` VALUES (116, 765, 2);
+INSERT INTO `t_driver_orders` VALUES (117, 266, 2);
+INSERT INTO `t_driver_orders` VALUES (118, 203, 2);
+INSERT INTO `t_driver_orders` VALUES (119, 88, 2);
+INSERT INTO `t_driver_orders` VALUES (120, 637, 2);
+INSERT INTO `t_driver_orders` VALUES (121, 115, 2);
+INSERT INTO `t_driver_orders` VALUES (122, 26, 2);
+INSERT INTO `t_driver_orders` VALUES (123, 113, 2);
+INSERT INTO `t_driver_orders` VALUES (124, 867, 2);
+INSERT INTO `t_driver_orders` VALUES (125, 564, 2);
+INSERT INTO `t_driver_orders` VALUES (126, 390, 2);
+INSERT INTO `t_driver_orders` VALUES (127, 487, 2);
+INSERT INTO `t_driver_orders` VALUES (128, 696, 2);
+INSERT INTO `t_driver_orders` VALUES (129, 399, 2);
+INSERT INTO `t_driver_orders` VALUES (130, 920, 2);
+INSERT INTO `t_driver_orders` VALUES (131, 548, 2);
+INSERT INTO `t_driver_orders` VALUES (132, 492, 2);
+INSERT INTO `t_driver_orders` VALUES (133, 583, 2);
+INSERT INTO `t_driver_orders` VALUES (134, 504, 2);
+INSERT INTO `t_driver_orders` VALUES (135, 924, 2);
+INSERT INTO `t_driver_orders` VALUES (136, 924, 4);
+INSERT INTO `t_driver_orders` VALUES (137, 422, 2);
+INSERT INTO `t_driver_orders` VALUES (139, 180, 2);
+INSERT INTO `t_driver_orders` VALUES (140, 179, 2);
+INSERT INTO `t_driver_orders` VALUES (141, 59, 2);
+INSERT INTO `t_driver_orders` VALUES (142, 54, 2);
+INSERT INTO `t_driver_orders` VALUES (143, 495, 2);
+INSERT INTO `t_driver_orders` VALUES (144, 302, 2);
+INSERT INTO `t_driver_orders` VALUES (145, 160, 2);
+INSERT INTO `t_driver_orders` VALUES (146, 328, 2);
+INSERT INTO `t_driver_orders` VALUES (147, 679, 2);
+INSERT INTO `t_driver_orders` VALUES (148, 496, 2);
+INSERT INTO `t_driver_orders` VALUES (149, 879, 2);
+INSERT INTO `t_driver_orders` VALUES (150, 253, 2);
+INSERT INTO `t_driver_orders` VALUES (151, 61, 2);
+INSERT INTO `t_driver_orders` VALUES (152, 309, 2);
+INSERT INTO `t_driver_orders` VALUES (153, 640, 2);
+INSERT INTO `t_driver_orders` VALUES (154, 776, 2);
+INSERT INTO `t_driver_orders` VALUES (156, 643, 4);
+INSERT INTO `t_driver_orders` VALUES (157, 643, 2);
+INSERT INTO `t_driver_orders` VALUES (158, 140, 2);
+INSERT INTO `t_driver_orders` VALUES (159, 348, 2);
+INSERT INTO `t_driver_orders` VALUES (161, 927, 2);
+INSERT INTO `t_driver_orders` VALUES (162, 336, 2);
+INSERT INTO `t_driver_orders` VALUES (163, 502, 2);
+INSERT INTO `t_driver_orders` VALUES (164, 373, 2);
+INSERT INTO `t_driver_orders` VALUES (165, 322, 2);
+INSERT INTO `t_driver_orders` VALUES (166, 344, 2);
+INSERT INTO `t_driver_orders` VALUES (167, 607, 2);
+INSERT INTO `t_driver_orders` VALUES (168, 779, 2);
+INSERT INTO `t_driver_orders` VALUES (169, 456, 2);
+INSERT INTO `t_driver_orders` VALUES (170, 123, 2);
+INSERT INTO `t_driver_orders` VALUES (171, 351, 2);
+INSERT INTO `t_driver_orders` VALUES (172, 335, 2);
+INSERT INTO `t_driver_orders` VALUES (173, 681, 2);
+INSERT INTO `t_driver_orders` VALUES (174, 423, 2);
+INSERT INTO `t_driver_orders` VALUES (175, 264, 2);
+INSERT INTO `t_driver_orders` VALUES (176, 598, 2);
+INSERT INTO `t_driver_orders` VALUES (177, 215, 2);
+INSERT INTO `t_driver_orders` VALUES (178, 378, 2);
+INSERT INTO `t_driver_orders` VALUES (179, 585, 2);
+INSERT INTO `t_driver_orders` VALUES (180, 206, 2);
+INSERT INTO `t_driver_orders` VALUES (181, 132, 2);
+INSERT INTO `t_driver_orders` VALUES (182, 80, 2);
+INSERT INTO `t_driver_orders` VALUES (183, 415, 2);
+INSERT INTO `t_driver_orders` VALUES (184, 323, 2);
+INSERT INTO `t_driver_orders` VALUES (185, 63, 2);
+INSERT INTO `t_driver_orders` VALUES (186, 141, 2);
+INSERT INTO `t_driver_orders` VALUES (187, 688, 2);
+INSERT INTO `t_driver_orders` VALUES (188, 372, 2);
+INSERT INTO `t_driver_orders` VALUES (189, 166, 2);
+INSERT INTO `t_driver_orders` VALUES (190, 52, 2);
+INSERT INTO `t_driver_orders` VALUES (191, 576, 2);
+INSERT INTO `t_driver_orders` VALUES (192, 579, 2);
+INSERT INTO `t_driver_orders` VALUES (193, 790, 2);
+INSERT INTO `t_driver_orders` VALUES (194, 455, 2);
+INSERT INTO `t_driver_orders` VALUES (195, 675, 2);
+INSERT INTO `t_driver_orders` VALUES (196, 117, 2);
+INSERT INTO `t_driver_orders` VALUES (197, 485, 2);
+INSERT INTO `t_driver_orders` VALUES (198, 754, 2);
+INSERT INTO `t_driver_orders` VALUES (199, 661, 2);
+INSERT INTO `t_driver_orders` VALUES (200, 393, 2);
+INSERT INTO `t_driver_orders` VALUES (201, 96, 2);
+INSERT INTO `t_driver_orders` VALUES (202, 366, 2);
+INSERT INTO `t_driver_orders` VALUES (203, 334, 2);
+INSERT INTO `t_driver_orders` VALUES (204, 413, 2);
+INSERT INTO `t_driver_orders` VALUES (205, 324, 2);
+INSERT INTO `t_driver_orders` VALUES (206, 290, 2);
+INSERT INTO `t_driver_orders` VALUES (207, 605, 2);
+INSERT INTO `t_driver_orders` VALUES (208, 375, 2);
+INSERT INTO `t_driver_orders` VALUES (209, 299, 2);
+INSERT INTO `t_driver_orders` VALUES (210, 609, 2);
+INSERT INTO `t_driver_orders` VALUES (211, 771, 2);
+INSERT INTO `t_driver_orders` VALUES (212, 575, 2);
+INSERT INTO `t_driver_orders` VALUES (215, 801, 2);
+INSERT INTO `t_driver_orders` VALUES (216, 318, 2);
+INSERT INTO `t_driver_orders` VALUES (217, 333, 2);
+INSERT INTO `t_driver_orders` VALUES (218, 208, 2);
+INSERT INTO `t_driver_orders` VALUES (219, 270, 2);
+INSERT INTO `t_driver_orders` VALUES (220, 490, 2);
+INSERT INTO `t_driver_orders` VALUES (221, 142, 2);
+INSERT INTO `t_driver_orders` VALUES (222, 710, 2);
+INSERT INTO `t_driver_orders` VALUES (223, 312, 2);
+INSERT INTO `t_driver_orders` VALUES (224, 337, 2);
+INSERT INTO `t_driver_orders` VALUES (225, 930, 2);
+INSERT INTO `t_driver_orders` VALUES (226, 461, 2);
+INSERT INTO `t_driver_orders` VALUES (227, 898, 2);
+INSERT INTO `t_driver_orders` VALUES (228, 301, 2);
+INSERT INTO `t_driver_orders` VALUES (229, 928, 2);
+INSERT INTO `t_driver_orders` VALUES (230, 374, 2);
+INSERT INTO `t_driver_orders` VALUES (231, 660, 2);
+INSERT INTO `t_driver_orders` VALUES (232, 602, 2);
+INSERT INTO `t_driver_orders` VALUES (233, 768, 2);
+INSERT INTO `t_driver_orders` VALUES (234, 205, 2);
+INSERT INTO `t_driver_orders` VALUES (235, 365, 2);
+INSERT INTO `t_driver_orders` VALUES (236, 18, 2);
+INSERT INTO `t_driver_orders` VALUES (237, 932, 2);
+INSERT INTO `t_driver_orders` VALUES (238, 736, 2);
+INSERT INTO `t_driver_orders` VALUES (239, 223, 2);
+INSERT INTO `t_driver_orders` VALUES (240, 15, 2);
+INSERT INTO `t_driver_orders` VALUES (241, 792, 2);
+INSERT INTO `t_driver_orders` VALUES (242, 303, 2);
+INSERT INTO `t_driver_orders` VALUES (243, 883, 2);
+INSERT INTO `t_driver_orders` VALUES (244, 882, 2);
+INSERT INTO `t_driver_orders` VALUES (245, 818, 2);
+INSERT INTO `t_driver_orders` VALUES (250, 830, 2);
+INSERT INTO `t_driver_orders` VALUES (251, 400, 2);
+INSERT INTO `t_driver_orders` VALUES (252, 37, 2);
+INSERT INTO `t_driver_orders` VALUES (253, 929, 2);
+INSERT INTO `t_driver_orders` VALUES (254, 175, 2);
+INSERT INTO `t_driver_orders` VALUES (255, 405, 2);
+INSERT INTO `t_driver_orders` VALUES (256, 23, 2);
+INSERT INTO `t_driver_orders` VALUES (257, 383, 2);
+INSERT INTO `t_driver_orders` VALUES (258, 291, 2);
+INSERT INTO `t_driver_orders` VALUES (259, 960, 2);
+INSERT INTO `t_driver_orders` VALUES (260, 961, 2);
+INSERT INTO `t_driver_orders` VALUES (261, 122, 2);
+INSERT INTO `t_driver_orders` VALUES (262, 51, 2);
+INSERT INTO `t_driver_orders` VALUES (263, 910, 1);
+INSERT INTO `t_driver_orders` VALUES (264, 906, 1);
+INSERT INTO `t_driver_orders` VALUES (265, 906, 3);
+INSERT INTO `t_driver_orders` VALUES (266, 905, 1);
+INSERT INTO `t_driver_orders` VALUES (267, 905, 4);
+
+-- ----------------------------
+-- Table structure for t_driver_punish
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_punish`;
+CREATE TABLE `t_driver_punish`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `punishTime` datetime(0) NULL DEFAULT NULL COMMENT '处罚时间',
+  `punishReason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '处罚原因',
+  `punishReault` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '处罚结果',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '驾驶员处罚记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_punish
+-- ----------------------------
+INSERT INTO `t_driver_punish` VALUES (1, 966, '2020-11-04 00:00:00', '不按规定办事', '处罚1000元');
+
+-- ----------------------------
+-- Table structure for t_driver_service
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_service`;
+CREATE TABLE `t_driver_service`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 5695 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '司机经营业务' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_driver_service
+-- ----------------------------
+INSERT INTO `t_driver_service` VALUES (1721, 819, 2);
+INSERT INTO `t_driver_service` VALUES (1722, 819, 4);
+INSERT INTO `t_driver_service` VALUES (3433, 819, 2);
+INSERT INTO `t_driver_service` VALUES (3434, 819, 4);
+INSERT INTO `t_driver_service` VALUES (3605, 905, 2);
+INSERT INTO `t_driver_service` VALUES (3606, 905, 4);
+INSERT INTO `t_driver_service` VALUES (3609, 906, 2);
+INSERT INTO `t_driver_service` VALUES (3610, 910, 1);
+INSERT INTO `t_driver_service` VALUES (3611, 910, 2);
+INSERT INTO `t_driver_service` VALUES (3612, 904, 2);
+INSERT INTO `t_driver_service` VALUES (3613, 904, 4);
+INSERT INTO `t_driver_service` VALUES (3614, 903, 2);
+INSERT INTO `t_driver_service` VALUES (3615, 903, 4);
+INSERT INTO `t_driver_service` VALUES (3616, 902, 2);
+INSERT INTO `t_driver_service` VALUES (3617, 902, 4);
+INSERT INTO `t_driver_service` VALUES (3618, 901, 2);
+INSERT INTO `t_driver_service` VALUES (3619, 901, 4);
+INSERT INTO `t_driver_service` VALUES (3620, 900, 2);
+INSERT INTO `t_driver_service` VALUES (3621, 900, 4);
+INSERT INTO `t_driver_service` VALUES (3622, 899, 2);
+INSERT INTO `t_driver_service` VALUES (3623, 899, 4);
+INSERT INTO `t_driver_service` VALUES (3624, 898, 2);
+INSERT INTO `t_driver_service` VALUES (3625, 898, 4);
+INSERT INTO `t_driver_service` VALUES (3626, 897, 2);
+INSERT INTO `t_driver_service` VALUES (3627, 897, 4);
+INSERT INTO `t_driver_service` VALUES (3628, 896, 2);
+INSERT INTO `t_driver_service` VALUES (3629, 896, 4);
+INSERT INTO `t_driver_service` VALUES (3630, 895, 2);
+INSERT INTO `t_driver_service` VALUES (3631, 895, 4);
+INSERT INTO `t_driver_service` VALUES (3632, 894, 2);
+INSERT INTO `t_driver_service` VALUES (3633, 894, 4);
+INSERT INTO `t_driver_service` VALUES (3634, 893, 2);
+INSERT INTO `t_driver_service` VALUES (3635, 893, 4);
+INSERT INTO `t_driver_service` VALUES (3636, 892, 2);
+INSERT INTO `t_driver_service` VALUES (3637, 892, 4);
+INSERT INTO `t_driver_service` VALUES (3638, 891, 2);
+INSERT INTO `t_driver_service` VALUES (3639, 891, 4);
+INSERT INTO `t_driver_service` VALUES (3640, 890, 2);
+INSERT INTO `t_driver_service` VALUES (3641, 890, 4);
+INSERT INTO `t_driver_service` VALUES (3642, 889, 2);
+INSERT INTO `t_driver_service` VALUES (3643, 889, 4);
+INSERT INTO `t_driver_service` VALUES (3644, 888, 2);
+INSERT INTO `t_driver_service` VALUES (3645, 888, 4);
+INSERT INTO `t_driver_service` VALUES (3646, 887, 2);
+INSERT INTO `t_driver_service` VALUES (3647, 887, 4);
+INSERT INTO `t_driver_service` VALUES (3648, 886, 2);
+INSERT INTO `t_driver_service` VALUES (3649, 886, 4);
+INSERT INTO `t_driver_service` VALUES (3650, 885, 2);
+INSERT INTO `t_driver_service` VALUES (3651, 885, 4);
+INSERT INTO `t_driver_service` VALUES (3652, 884, 2);
+INSERT INTO `t_driver_service` VALUES (3653, 884, 4);
+INSERT INTO `t_driver_service` VALUES (3654, 883, 2);
+INSERT INTO `t_driver_service` VALUES (3655, 883, 4);
+INSERT INTO `t_driver_service` VALUES (3656, 882, 2);
+INSERT INTO `t_driver_service` VALUES (3657, 882, 4);
+INSERT INTO `t_driver_service` VALUES (3658, 881, 2);
+INSERT INTO `t_driver_service` VALUES (3659, 881, 4);
+INSERT INTO `t_driver_service` VALUES (3660, 880, 2);
+INSERT INTO `t_driver_service` VALUES (3661, 880, 4);
+INSERT INTO `t_driver_service` VALUES (3666, 877, 2);
+INSERT INTO `t_driver_service` VALUES (3667, 877, 4);
+INSERT INTO `t_driver_service` VALUES (3668, 876, 2);
+INSERT INTO `t_driver_service` VALUES (3669, 876, 4);
+INSERT INTO `t_driver_service` VALUES (3670, 875, 2);
+INSERT INTO `t_driver_service` VALUES (3671, 875, 4);
+INSERT INTO `t_driver_service` VALUES (3672, 874, 2);
+INSERT INTO `t_driver_service` VALUES (3673, 874, 4);
+INSERT INTO `t_driver_service` VALUES (3674, 873, 2);
+INSERT INTO `t_driver_service` VALUES (3675, 873, 4);
+INSERT INTO `t_driver_service` VALUES (3676, 872, 2);
+INSERT INTO `t_driver_service` VALUES (3677, 872, 4);
+INSERT INTO `t_driver_service` VALUES (3678, 871, 2);
+INSERT INTO `t_driver_service` VALUES (3679, 871, 4);
+INSERT INTO `t_driver_service` VALUES (3680, 870, 2);
+INSERT INTO `t_driver_service` VALUES (3681, 870, 4);
+INSERT INTO `t_driver_service` VALUES (3682, 869, 2);
+INSERT INTO `t_driver_service` VALUES (3683, 869, 4);
+INSERT INTO `t_driver_service` VALUES (3684, 868, 2);
+INSERT INTO `t_driver_service` VALUES (3685, 868, 4);
+INSERT INTO `t_driver_service` VALUES (3686, 867, 2);
+INSERT INTO `t_driver_service` VALUES (3687, 867, 4);
+INSERT INTO `t_driver_service` VALUES (3688, 866, 2);
+INSERT INTO `t_driver_service` VALUES (3689, 866, 4);
+INSERT INTO `t_driver_service` VALUES (3690, 865, 2);
+INSERT INTO `t_driver_service` VALUES (3691, 865, 4);
+INSERT INTO `t_driver_service` VALUES (3692, 864, 2);
+INSERT INTO `t_driver_service` VALUES (3693, 864, 4);
+INSERT INTO `t_driver_service` VALUES (3694, 863, 2);
+INSERT INTO `t_driver_service` VALUES (3695, 863, 4);
+INSERT INTO `t_driver_service` VALUES (3696, 862, 2);
+INSERT INTO `t_driver_service` VALUES (3697, 862, 4);
+INSERT INTO `t_driver_service` VALUES (3698, 861, 2);
+INSERT INTO `t_driver_service` VALUES (3699, 861, 4);
+INSERT INTO `t_driver_service` VALUES (3700, 860, 2);
+INSERT INTO `t_driver_service` VALUES (3701, 860, 4);
+INSERT INTO `t_driver_service` VALUES (3702, 859, 2);
+INSERT INTO `t_driver_service` VALUES (3703, 859, 4);
+INSERT INTO `t_driver_service` VALUES (3704, 858, 2);
+INSERT INTO `t_driver_service` VALUES (3705, 858, 4);
+INSERT INTO `t_driver_service` VALUES (3706, 913, 2);
+INSERT INTO `t_driver_service` VALUES (3707, 913, 4);
+INSERT INTO `t_driver_service` VALUES (3710, 856, 2);
+INSERT INTO `t_driver_service` VALUES (3711, 856, 4);
+INSERT INTO `t_driver_service` VALUES (3712, 855, 2);
+INSERT INTO `t_driver_service` VALUES (3713, 855, 4);
+INSERT INTO `t_driver_service` VALUES (3718, 852, 2);
+INSERT INTO `t_driver_service` VALUES (3719, 852, 4);
+INSERT INTO `t_driver_service` VALUES (3720, 851, 2);
+INSERT INTO `t_driver_service` VALUES (3721, 851, 4);
+INSERT INTO `t_driver_service` VALUES (3722, 850, 2);
+INSERT INTO `t_driver_service` VALUES (3723, 850, 4);
+INSERT INTO `t_driver_service` VALUES (3724, 849, 2);
+INSERT INTO `t_driver_service` VALUES (3725, 849, 4);
+INSERT INTO `t_driver_service` VALUES (3730, 846, 2);
+INSERT INTO `t_driver_service` VALUES (3731, 846, 4);
+INSERT INTO `t_driver_service` VALUES (3732, 845, 2);
+INSERT INTO `t_driver_service` VALUES (3733, 845, 4);
+INSERT INTO `t_driver_service` VALUES (3734, 844, 2);
+INSERT INTO `t_driver_service` VALUES (3735, 844, 4);
+INSERT INTO `t_driver_service` VALUES (3736, 843, 2);
+INSERT INTO `t_driver_service` VALUES (3737, 843, 4);
+INSERT INTO `t_driver_service` VALUES (3738, 842, 2);
+INSERT INTO `t_driver_service` VALUES (3739, 842, 4);
+INSERT INTO `t_driver_service` VALUES (3740, 841, 2);
+INSERT INTO `t_driver_service` VALUES (3741, 841, 4);
+INSERT INTO `t_driver_service` VALUES (3742, 840, 2);
+INSERT INTO `t_driver_service` VALUES (3743, 840, 4);
+INSERT INTO `t_driver_service` VALUES (3744, 838, 2);
+INSERT INTO `t_driver_service` VALUES (3745, 838, 4);
+INSERT INTO `t_driver_service` VALUES (3748, 837, 2);
+INSERT INTO `t_driver_service` VALUES (3749, 837, 4);
+INSERT INTO `t_driver_service` VALUES (3750, 836, 2);
+INSERT INTO `t_driver_service` VALUES (3751, 836, 4);
+INSERT INTO `t_driver_service` VALUES (3752, 835, 2);
+INSERT INTO `t_driver_service` VALUES (3753, 835, 4);
+INSERT INTO `t_driver_service` VALUES (3756, 833, 2);
+INSERT INTO `t_driver_service` VALUES (3757, 833, 4);
+INSERT INTO `t_driver_service` VALUES (3758, 832, 2);
+INSERT INTO `t_driver_service` VALUES (3759, 832, 4);
+INSERT INTO `t_driver_service` VALUES (3760, 831, 2);
+INSERT INTO `t_driver_service` VALUES (3761, 831, 4);
+INSERT INTO `t_driver_service` VALUES (3764, 828, 2);
+INSERT INTO `t_driver_service` VALUES (3765, 828, 4);
+INSERT INTO `t_driver_service` VALUES (3766, 827, 2);
+INSERT INTO `t_driver_service` VALUES (3767, 827, 4);
+INSERT INTO `t_driver_service` VALUES (3770, 839, 2);
+INSERT INTO `t_driver_service` VALUES (3771, 839, 4);
+INSERT INTO `t_driver_service` VALUES (3772, 829, 2);
+INSERT INTO `t_driver_service` VALUES (3773, 829, 4);
+INSERT INTO `t_driver_service` VALUES (3774, 825, 2);
+INSERT INTO `t_driver_service` VALUES (3775, 825, 4);
+INSERT INTO `t_driver_service` VALUES (3776, 824, 2);
+INSERT INTO `t_driver_service` VALUES (3777, 824, 4);
+INSERT INTO `t_driver_service` VALUES (3778, 823, 2);
+INSERT INTO `t_driver_service` VALUES (3779, 823, 4);
+INSERT INTO `t_driver_service` VALUES (3780, 822, 2);
+INSERT INTO `t_driver_service` VALUES (3781, 822, 4);
+INSERT INTO `t_driver_service` VALUES (3782, 821, 2);
+INSERT INTO `t_driver_service` VALUES (3783, 821, 4);
+INSERT INTO `t_driver_service` VALUES (3784, 826, 2);
+INSERT INTO `t_driver_service` VALUES (3785, 826, 4);
+INSERT INTO `t_driver_service` VALUES (3786, 820, 2);
+INSERT INTO `t_driver_service` VALUES (3787, 820, 4);
+INSERT INTO `t_driver_service` VALUES (3788, 818, 2);
+INSERT INTO `t_driver_service` VALUES (3789, 818, 4);
+INSERT INTO `t_driver_service` VALUES (3790, 817, 2);
+INSERT INTO `t_driver_service` VALUES (3791, 817, 4);
+INSERT INTO `t_driver_service` VALUES (3792, 816, 2);
+INSERT INTO `t_driver_service` VALUES (3793, 816, 4);
+INSERT INTO `t_driver_service` VALUES (3794, 815, 2);
+INSERT INTO `t_driver_service` VALUES (3795, 815, 4);
+INSERT INTO `t_driver_service` VALUES (3796, 814, 2);
+INSERT INTO `t_driver_service` VALUES (3797, 814, 4);
+INSERT INTO `t_driver_service` VALUES (3798, 813, 2);
+INSERT INTO `t_driver_service` VALUES (3799, 813, 4);
+INSERT INTO `t_driver_service` VALUES (3800, 812, 2);
+INSERT INTO `t_driver_service` VALUES (3801, 812, 4);
+INSERT INTO `t_driver_service` VALUES (3802, 811, 2);
+INSERT INTO `t_driver_service` VALUES (3803, 811, 4);
+INSERT INTO `t_driver_service` VALUES (3804, 810, 2);
+INSERT INTO `t_driver_service` VALUES (3805, 810, 4);
+INSERT INTO `t_driver_service` VALUES (3806, 809, 2);
+INSERT INTO `t_driver_service` VALUES (3807, 809, 4);
+INSERT INTO `t_driver_service` VALUES (3808, 808, 2);
+INSERT INTO `t_driver_service` VALUES (3809, 808, 4);
+INSERT INTO `t_driver_service` VALUES (3812, 806, 2);
+INSERT INTO `t_driver_service` VALUES (3813, 806, 4);
+INSERT INTO `t_driver_service` VALUES (3814, 799, 2);
+INSERT INTO `t_driver_service` VALUES (3815, 799, 4);
+INSERT INTO `t_driver_service` VALUES (3816, 797, 2);
+INSERT INTO `t_driver_service` VALUES (3817, 797, 4);
+INSERT INTO `t_driver_service` VALUES (3818, 804, 2);
+INSERT INTO `t_driver_service` VALUES (3819, 804, 4);
+INSERT INTO `t_driver_service` VALUES (3820, 805, 2);
+INSERT INTO `t_driver_service` VALUES (3821, 805, 4);
+INSERT INTO `t_driver_service` VALUES (3822, 803, 2);
+INSERT INTO `t_driver_service` VALUES (3823, 803, 4);
+INSERT INTO `t_driver_service` VALUES (3824, 802, 2);
+INSERT INTO `t_driver_service` VALUES (3825, 802, 4);
+INSERT INTO `t_driver_service` VALUES (3826, 801, 2);
+INSERT INTO `t_driver_service` VALUES (3827, 801, 4);
+INSERT INTO `t_driver_service` VALUES (3828, 800, 2);
+INSERT INTO `t_driver_service` VALUES (3829, 800, 4);
+INSERT INTO `t_driver_service` VALUES (3830, 798, 2);
+INSERT INTO `t_driver_service` VALUES (3831, 798, 4);
+INSERT INTO `t_driver_service` VALUES (3832, 796, 2);
+INSERT INTO `t_driver_service` VALUES (3833, 796, 4);
+INSERT INTO `t_driver_service` VALUES (3834, 795, 2);
+INSERT INTO `t_driver_service` VALUES (3835, 795, 4);
+INSERT INTO `t_driver_service` VALUES (3836, 794, 2);
+INSERT INTO `t_driver_service` VALUES (3837, 794, 4);
+INSERT INTO `t_driver_service` VALUES (3838, 793, 2);
+INSERT INTO `t_driver_service` VALUES (3839, 793, 4);
+INSERT INTO `t_driver_service` VALUES (3840, 792, 2);
+INSERT INTO `t_driver_service` VALUES (3841, 792, 4);
+INSERT INTO `t_driver_service` VALUES (3842, 791, 2);
+INSERT INTO `t_driver_service` VALUES (3843, 791, 4);
+INSERT INTO `t_driver_service` VALUES (3846, 789, 2);
+INSERT INTO `t_driver_service` VALUES (3847, 789, 4);
+INSERT INTO `t_driver_service` VALUES (3848, 788, 2);
+INSERT INTO `t_driver_service` VALUES (3849, 788, 4);
+INSERT INTO `t_driver_service` VALUES (3850, 787, 2);
+INSERT INTO `t_driver_service` VALUES (3851, 787, 4);
+INSERT INTO `t_driver_service` VALUES (3852, 786, 2);
+INSERT INTO `t_driver_service` VALUES (3853, 786, 4);
+INSERT INTO `t_driver_service` VALUES (3854, 785, 2);
+INSERT INTO `t_driver_service` VALUES (3855, 785, 4);
+INSERT INTO `t_driver_service` VALUES (3856, 784, 2);
+INSERT INTO `t_driver_service` VALUES (3857, 784, 4);
+INSERT INTO `t_driver_service` VALUES (3858, 783, 2);
+INSERT INTO `t_driver_service` VALUES (3859, 783, 4);
+INSERT INTO `t_driver_service` VALUES (3860, 782, 2);
+INSERT INTO `t_driver_service` VALUES (3861, 782, 4);
+INSERT INTO `t_driver_service` VALUES (3862, 781, 2);
+INSERT INTO `t_driver_service` VALUES (3863, 781, 4);
+INSERT INTO `t_driver_service` VALUES (3864, 780, 2);
+INSERT INTO `t_driver_service` VALUES (3865, 780, 4);
+INSERT INTO `t_driver_service` VALUES (3866, 779, 2);
+INSERT INTO `t_driver_service` VALUES (3867, 779, 4);
+INSERT INTO `t_driver_service` VALUES (3868, 778, 2);
+INSERT INTO `t_driver_service` VALUES (3869, 778, 4);
+INSERT INTO `t_driver_service` VALUES (3870, 777, 2);
+INSERT INTO `t_driver_service` VALUES (3871, 777, 4);
+INSERT INTO `t_driver_service` VALUES (3874, 775, 2);
+INSERT INTO `t_driver_service` VALUES (3875, 775, 4);
+INSERT INTO `t_driver_service` VALUES (3876, 774, 2);
+INSERT INTO `t_driver_service` VALUES (3877, 774, 4);
+INSERT INTO `t_driver_service` VALUES (3878, 773, 2);
+INSERT INTO `t_driver_service` VALUES (3879, 773, 4);
+INSERT INTO `t_driver_service` VALUES (3880, 772, 2);
+INSERT INTO `t_driver_service` VALUES (3881, 772, 4);
+INSERT INTO `t_driver_service` VALUES (3884, 770, 2);
+INSERT INTO `t_driver_service` VALUES (3885, 770, 4);
+INSERT INTO `t_driver_service` VALUES (3886, 769, 2);
+INSERT INTO `t_driver_service` VALUES (3887, 769, 4);
+INSERT INTO `t_driver_service` VALUES (3888, 768, 2);
+INSERT INTO `t_driver_service` VALUES (3889, 768, 4);
+INSERT INTO `t_driver_service` VALUES (3890, 767, 2);
+INSERT INTO `t_driver_service` VALUES (3891, 767, 4);
+INSERT INTO `t_driver_service` VALUES (3892, 766, 2);
+INSERT INTO `t_driver_service` VALUES (3893, 766, 4);
+INSERT INTO `t_driver_service` VALUES (3896, 764, 2);
+INSERT INTO `t_driver_service` VALUES (3897, 764, 4);
+INSERT INTO `t_driver_service` VALUES (3898, 763, 2);
+INSERT INTO `t_driver_service` VALUES (3899, 763, 4);
+INSERT INTO `t_driver_service` VALUES (3900, 762, 2);
+INSERT INTO `t_driver_service` VALUES (3901, 762, 4);
+INSERT INTO `t_driver_service` VALUES (3902, 761, 2);
+INSERT INTO `t_driver_service` VALUES (3903, 761, 4);
+INSERT INTO `t_driver_service` VALUES (3904, 760, 2);
+INSERT INTO `t_driver_service` VALUES (3905, 760, 4);
+INSERT INTO `t_driver_service` VALUES (3906, 759, 2);
+INSERT INTO `t_driver_service` VALUES (3907, 759, 4);
+INSERT INTO `t_driver_service` VALUES (3908, 758, 2);
+INSERT INTO `t_driver_service` VALUES (3909, 758, 4);
+INSERT INTO `t_driver_service` VALUES (3910, 757, 2);
+INSERT INTO `t_driver_service` VALUES (3911, 757, 4);
+INSERT INTO `t_driver_service` VALUES (3912, 756, 2);
+INSERT INTO `t_driver_service` VALUES (3913, 756, 4);
+INSERT INTO `t_driver_service` VALUES (3914, 755, 2);
+INSERT INTO `t_driver_service` VALUES (3915, 755, 4);
+INSERT INTO `t_driver_service` VALUES (3920, 753, 2);
+INSERT INTO `t_driver_service` VALUES (3921, 753, 4);
+INSERT INTO `t_driver_service` VALUES (3922, 752, 2);
+INSERT INTO `t_driver_service` VALUES (3923, 752, 4);
+INSERT INTO `t_driver_service` VALUES (3924, 751, 2);
+INSERT INTO `t_driver_service` VALUES (3925, 751, 4);
+INSERT INTO `t_driver_service` VALUES (3926, 750, 2);
+INSERT INTO `t_driver_service` VALUES (3927, 750, 4);
+INSERT INTO `t_driver_service` VALUES (3928, 749, 2);
+INSERT INTO `t_driver_service` VALUES (3929, 749, 4);
+INSERT INTO `t_driver_service` VALUES (3930, 748, 2);
+INSERT INTO `t_driver_service` VALUES (3931, 748, 4);
+INSERT INTO `t_driver_service` VALUES (3932, 747, 2);
+INSERT INTO `t_driver_service` VALUES (3933, 747, 4);
+INSERT INTO `t_driver_service` VALUES (3934, 746, 2);
+INSERT INTO `t_driver_service` VALUES (3935, 746, 4);
+INSERT INTO `t_driver_service` VALUES (3936, 745, 2);
+INSERT INTO `t_driver_service` VALUES (3937, 745, 4);
+INSERT INTO `t_driver_service` VALUES (3938, 744, 2);
+INSERT INTO `t_driver_service` VALUES (3939, 744, 4);
+INSERT INTO `t_driver_service` VALUES (3940, 743, 2);
+INSERT INTO `t_driver_service` VALUES (3941, 743, 4);
+INSERT INTO `t_driver_service` VALUES (3942, 742, 2);
+INSERT INTO `t_driver_service` VALUES (3943, 742, 4);
+INSERT INTO `t_driver_service` VALUES (3944, 741, 2);
+INSERT INTO `t_driver_service` VALUES (3945, 741, 4);
+INSERT INTO `t_driver_service` VALUES (3946, 740, 2);
+INSERT INTO `t_driver_service` VALUES (3947, 740, 4);
+INSERT INTO `t_driver_service` VALUES (3948, 739, 2);
+INSERT INTO `t_driver_service` VALUES (3949, 739, 4);
+INSERT INTO `t_driver_service` VALUES (3950, 738, 2);
+INSERT INTO `t_driver_service` VALUES (3951, 738, 4);
+INSERT INTO `t_driver_service` VALUES (3952, 737, 2);
+INSERT INTO `t_driver_service` VALUES (3953, 737, 4);
+INSERT INTO `t_driver_service` VALUES (3954, 736, 2);
+INSERT INTO `t_driver_service` VALUES (3955, 736, 4);
+INSERT INTO `t_driver_service` VALUES (3956, 734, 2);
+INSERT INTO `t_driver_service` VALUES (3957, 734, 4);
+INSERT INTO `t_driver_service` VALUES (3958, 733, 2);
+INSERT INTO `t_driver_service` VALUES (3959, 733, 4);
+INSERT INTO `t_driver_service` VALUES (3960, 732, 2);
+INSERT INTO `t_driver_service` VALUES (3961, 732, 4);
+INSERT INTO `t_driver_service` VALUES (3962, 731, 2);
+INSERT INTO `t_driver_service` VALUES (3963, 731, 4);
+INSERT INTO `t_driver_service` VALUES (3964, 730, 2);
+INSERT INTO `t_driver_service` VALUES (3965, 730, 4);
+INSERT INTO `t_driver_service` VALUES (3966, 729, 2);
+INSERT INTO `t_driver_service` VALUES (3967, 729, 4);
+INSERT INTO `t_driver_service` VALUES (3968, 728, 2);
+INSERT INTO `t_driver_service` VALUES (3969, 728, 4);
+INSERT INTO `t_driver_service` VALUES (3970, 727, 2);
+INSERT INTO `t_driver_service` VALUES (3971, 727, 4);
+INSERT INTO `t_driver_service` VALUES (3972, 726, 2);
+INSERT INTO `t_driver_service` VALUES (3973, 726, 4);
+INSERT INTO `t_driver_service` VALUES (3974, 725, 2);
+INSERT INTO `t_driver_service` VALUES (3975, 725, 4);
+INSERT INTO `t_driver_service` VALUES (3976, 724, 2);
+INSERT INTO `t_driver_service` VALUES (3977, 724, 4);
+INSERT INTO `t_driver_service` VALUES (3978, 723, 2);
+INSERT INTO `t_driver_service` VALUES (3979, 723, 4);
+INSERT INTO `t_driver_service` VALUES (3980, 722, 2);
+INSERT INTO `t_driver_service` VALUES (3981, 722, 4);
+INSERT INTO `t_driver_service` VALUES (3982, 721, 2);
+INSERT INTO `t_driver_service` VALUES (3983, 721, 4);
+INSERT INTO `t_driver_service` VALUES (3984, 720, 2);
+INSERT INTO `t_driver_service` VALUES (3985, 720, 4);
+INSERT INTO `t_driver_service` VALUES (3986, 719, 2);
+INSERT INTO `t_driver_service` VALUES (3987, 719, 4);
+INSERT INTO `t_driver_service` VALUES (3988, 718, 2);
+INSERT INTO `t_driver_service` VALUES (3989, 718, 4);
+INSERT INTO `t_driver_service` VALUES (3990, 717, 2);
+INSERT INTO `t_driver_service` VALUES (3991, 717, 4);
+INSERT INTO `t_driver_service` VALUES (3992, 715, 2);
+INSERT INTO `t_driver_service` VALUES (3993, 715, 4);
+INSERT INTO `t_driver_service` VALUES (3994, 714, 2);
+INSERT INTO `t_driver_service` VALUES (3995, 714, 4);
+INSERT INTO `t_driver_service` VALUES (3996, 713, 2);
+INSERT INTO `t_driver_service` VALUES (3997, 713, 4);
+INSERT INTO `t_driver_service` VALUES (3998, 712, 2);
+INSERT INTO `t_driver_service` VALUES (3999, 712, 4);
+INSERT INTO `t_driver_service` VALUES (4000, 711, 2);
+INSERT INTO `t_driver_service` VALUES (4001, 711, 4);
+INSERT INTO `t_driver_service` VALUES (4002, 710, 2);
+INSERT INTO `t_driver_service` VALUES (4003, 710, 4);
+INSERT INTO `t_driver_service` VALUES (4004, 709, 2);
+INSERT INTO `t_driver_service` VALUES (4005, 709, 4);
+INSERT INTO `t_driver_service` VALUES (4006, 708, 2);
+INSERT INTO `t_driver_service` VALUES (4007, 708, 4);
+INSERT INTO `t_driver_service` VALUES (4008, 707, 2);
+INSERT INTO `t_driver_service` VALUES (4009, 707, 4);
+INSERT INTO `t_driver_service` VALUES (4010, 706, 2);
+INSERT INTO `t_driver_service` VALUES (4011, 706, 4);
+INSERT INTO `t_driver_service` VALUES (4012, 705, 2);
+INSERT INTO `t_driver_service` VALUES (4013, 705, 4);
+INSERT INTO `t_driver_service` VALUES (4014, 704, 2);
+INSERT INTO `t_driver_service` VALUES (4015, 704, 4);
+INSERT INTO `t_driver_service` VALUES (4016, 703, 2);
+INSERT INTO `t_driver_service` VALUES (4017, 703, 4);
+INSERT INTO `t_driver_service` VALUES (4018, 702, 2);
+INSERT INTO `t_driver_service` VALUES (4019, 702, 4);
+INSERT INTO `t_driver_service` VALUES (4020, 701, 2);
+INSERT INTO `t_driver_service` VALUES (4021, 701, 4);
+INSERT INTO `t_driver_service` VALUES (4022, 700, 2);
+INSERT INTO `t_driver_service` VALUES (4023, 700, 4);
+INSERT INTO `t_driver_service` VALUES (4024, 699, 2);
+INSERT INTO `t_driver_service` VALUES (4025, 699, 4);
+INSERT INTO `t_driver_service` VALUES (4026, 698, 2);
+INSERT INTO `t_driver_service` VALUES (4027, 698, 4);
+INSERT INTO `t_driver_service` VALUES (4028, 697, 2);
+INSERT INTO `t_driver_service` VALUES (4029, 697, 4);
+INSERT INTO `t_driver_service` VALUES (4030, 696, 2);
+INSERT INTO `t_driver_service` VALUES (4031, 696, 4);
+INSERT INTO `t_driver_service` VALUES (4032, 695, 2);
+INSERT INTO `t_driver_service` VALUES (4033, 695, 4);
+INSERT INTO `t_driver_service` VALUES (4034, 694, 2);
+INSERT INTO `t_driver_service` VALUES (4035, 694, 4);
+INSERT INTO `t_driver_service` VALUES (4036, 693, 2);
+INSERT INTO `t_driver_service` VALUES (4037, 693, 4);
+INSERT INTO `t_driver_service` VALUES (4038, 692, 2);
+INSERT INTO `t_driver_service` VALUES (4039, 692, 4);
+INSERT INTO `t_driver_service` VALUES (4040, 691, 2);
+INSERT INTO `t_driver_service` VALUES (4041, 691, 4);
+INSERT INTO `t_driver_service` VALUES (4042, 690, 2);
+INSERT INTO `t_driver_service` VALUES (4043, 690, 4);
+INSERT INTO `t_driver_service` VALUES (4044, 689, 2);
+INSERT INTO `t_driver_service` VALUES (4045, 689, 4);
+INSERT INTO `t_driver_service` VALUES (4048, 687, 2);
+INSERT INTO `t_driver_service` VALUES (4049, 687, 4);
+INSERT INTO `t_driver_service` VALUES (4050, 686, 2);
+INSERT INTO `t_driver_service` VALUES (4051, 686, 4);
+INSERT INTO `t_driver_service` VALUES (4052, 685, 2);
+INSERT INTO `t_driver_service` VALUES (4053, 685, 4);
+INSERT INTO `t_driver_service` VALUES (4054, 684, 2);
+INSERT INTO `t_driver_service` VALUES (4055, 684, 4);
+INSERT INTO `t_driver_service` VALUES (4056, 683, 2);
+INSERT INTO `t_driver_service` VALUES (4057, 683, 4);
+INSERT INTO `t_driver_service` VALUES (4058, 682, 2);
+INSERT INTO `t_driver_service` VALUES (4059, 682, 4);
+INSERT INTO `t_driver_service` VALUES (4062, 680, 2);
+INSERT INTO `t_driver_service` VALUES (4063, 680, 4);
+INSERT INTO `t_driver_service` VALUES (4066, 678, 2);
+INSERT INTO `t_driver_service` VALUES (4067, 678, 4);
+INSERT INTO `t_driver_service` VALUES (4068, 677, 2);
+INSERT INTO `t_driver_service` VALUES (4069, 677, 4);
+INSERT INTO `t_driver_service` VALUES (4070, 676, 2);
+INSERT INTO `t_driver_service` VALUES (4071, 676, 4);
+INSERT INTO `t_driver_service` VALUES (4074, 674, 2);
+INSERT INTO `t_driver_service` VALUES (4075, 674, 4);
+INSERT INTO `t_driver_service` VALUES (4076, 672, 2);
+INSERT INTO `t_driver_service` VALUES (4077, 672, 4);
+INSERT INTO `t_driver_service` VALUES (4078, 671, 2);
+INSERT INTO `t_driver_service` VALUES (4079, 671, 4);
+INSERT INTO `t_driver_service` VALUES (4080, 670, 2);
+INSERT INTO `t_driver_service` VALUES (4081, 670, 4);
+INSERT INTO `t_driver_service` VALUES (4082, 669, 2);
+INSERT INTO `t_driver_service` VALUES (4083, 669, 4);
+INSERT INTO `t_driver_service` VALUES (4084, 668, 2);
+INSERT INTO `t_driver_service` VALUES (4085, 668, 4);
+INSERT INTO `t_driver_service` VALUES (4086, 667, 2);
+INSERT INTO `t_driver_service` VALUES (4087, 667, 4);
+INSERT INTO `t_driver_service` VALUES (4088, 666, 2);
+INSERT INTO `t_driver_service` VALUES (4089, 666, 4);
+INSERT INTO `t_driver_service` VALUES (4090, 665, 2);
+INSERT INTO `t_driver_service` VALUES (4091, 665, 4);
+INSERT INTO `t_driver_service` VALUES (4092, 664, 2);
+INSERT INTO `t_driver_service` VALUES (4093, 664, 4);
+INSERT INTO `t_driver_service` VALUES (4094, 663, 2);
+INSERT INTO `t_driver_service` VALUES (4095, 663, 4);
+INSERT INTO `t_driver_service` VALUES (4096, 662, 2);
+INSERT INTO `t_driver_service` VALUES (4097, 662, 4);
+INSERT INTO `t_driver_service` VALUES (4100, 660, 2);
+INSERT INTO `t_driver_service` VALUES (4101, 660, 4);
+INSERT INTO `t_driver_service` VALUES (4102, 659, 2);
+INSERT INTO `t_driver_service` VALUES (4103, 659, 4);
+INSERT INTO `t_driver_service` VALUES (4104, 658, 2);
+INSERT INTO `t_driver_service` VALUES (4105, 658, 4);
+INSERT INTO `t_driver_service` VALUES (4106, 657, 2);
+INSERT INTO `t_driver_service` VALUES (4107, 657, 4);
+INSERT INTO `t_driver_service` VALUES (4108, 656, 2);
+INSERT INTO `t_driver_service` VALUES (4109, 656, 4);
+INSERT INTO `t_driver_service` VALUES (4110, 655, 2);
+INSERT INTO `t_driver_service` VALUES (4111, 655, 4);
+INSERT INTO `t_driver_service` VALUES (4112, 654, 2);
+INSERT INTO `t_driver_service` VALUES (4113, 654, 4);
+INSERT INTO `t_driver_service` VALUES (4114, 653, 2);
+INSERT INTO `t_driver_service` VALUES (4115, 653, 4);
+INSERT INTO `t_driver_service` VALUES (4116, 652, 2);
+INSERT INTO `t_driver_service` VALUES (4117, 652, 4);
+INSERT INTO `t_driver_service` VALUES (4118, 651, 2);
+INSERT INTO `t_driver_service` VALUES (4119, 651, 4);
+INSERT INTO `t_driver_service` VALUES (4120, 650, 2);
+INSERT INTO `t_driver_service` VALUES (4121, 650, 4);
+INSERT INTO `t_driver_service` VALUES (4122, 649, 2);
+INSERT INTO `t_driver_service` VALUES (4123, 649, 4);
+INSERT INTO `t_driver_service` VALUES (4124, 648, 2);
+INSERT INTO `t_driver_service` VALUES (4125, 648, 4);
+INSERT INTO `t_driver_service` VALUES (4126, 647, 2);
+INSERT INTO `t_driver_service` VALUES (4127, 647, 4);
+INSERT INTO `t_driver_service` VALUES (4128, 646, 2);
+INSERT INTO `t_driver_service` VALUES (4129, 646, 4);
+INSERT INTO `t_driver_service` VALUES (4130, 645, 2);
+INSERT INTO `t_driver_service` VALUES (4131, 645, 4);
+INSERT INTO `t_driver_service` VALUES (4132, 644, 2);
+INSERT INTO `t_driver_service` VALUES (4133, 644, 4);
+INSERT INTO `t_driver_service` VALUES (4136, 642, 2);
+INSERT INTO `t_driver_service` VALUES (4137, 642, 4);
+INSERT INTO `t_driver_service` VALUES (4140, 640, 2);
+INSERT INTO `t_driver_service` VALUES (4141, 640, 4);
+INSERT INTO `t_driver_service` VALUES (4144, 639, 2);
+INSERT INTO `t_driver_service` VALUES (4145, 639, 4);
+INSERT INTO `t_driver_service` VALUES (4146, 638, 2);
+INSERT INTO `t_driver_service` VALUES (4147, 638, 4);
+INSERT INTO `t_driver_service` VALUES (4150, 636, 2);
+INSERT INTO `t_driver_service` VALUES (4151, 636, 4);
+INSERT INTO `t_driver_service` VALUES (4152, 635, 2);
+INSERT INTO `t_driver_service` VALUES (4153, 635, 4);
+INSERT INTO `t_driver_service` VALUES (4154, 634, 2);
+INSERT INTO `t_driver_service` VALUES (4155, 634, 4);
+INSERT INTO `t_driver_service` VALUES (4156, 633, 2);
+INSERT INTO `t_driver_service` VALUES (4157, 633, 4);
+INSERT INTO `t_driver_service` VALUES (4158, 632, 2);
+INSERT INTO `t_driver_service` VALUES (4159, 632, 4);
+INSERT INTO `t_driver_service` VALUES (4160, 631, 2);
+INSERT INTO `t_driver_service` VALUES (4161, 631, 4);
+INSERT INTO `t_driver_service` VALUES (4162, 630, 2);
+INSERT INTO `t_driver_service` VALUES (4163, 630, 4);
+INSERT INTO `t_driver_service` VALUES (4164, 629, 2);
+INSERT INTO `t_driver_service` VALUES (4165, 629, 4);
+INSERT INTO `t_driver_service` VALUES (4166, 628, 2);
+INSERT INTO `t_driver_service` VALUES (4167, 628, 4);
+INSERT INTO `t_driver_service` VALUES (4168, 627, 2);
+INSERT INTO `t_driver_service` VALUES (4169, 627, 4);
+INSERT INTO `t_driver_service` VALUES (4170, 626, 2);
+INSERT INTO `t_driver_service` VALUES (4171, 626, 4);
+INSERT INTO `t_driver_service` VALUES (4172, 625, 2);
+INSERT INTO `t_driver_service` VALUES (4173, 625, 4);
+INSERT INTO `t_driver_service` VALUES (4174, 624, 2);
+INSERT INTO `t_driver_service` VALUES (4175, 624, 4);
+INSERT INTO `t_driver_service` VALUES (4176, 623, 2);
+INSERT INTO `t_driver_service` VALUES (4177, 623, 4);
+INSERT INTO `t_driver_service` VALUES (4178, 622, 2);
+INSERT INTO `t_driver_service` VALUES (4179, 622, 4);
+INSERT INTO `t_driver_service` VALUES (4180, 621, 2);
+INSERT INTO `t_driver_service` VALUES (4181, 621, 4);
+INSERT INTO `t_driver_service` VALUES (4182, 620, 2);
+INSERT INTO `t_driver_service` VALUES (4183, 620, 4);
+INSERT INTO `t_driver_service` VALUES (4184, 619, 2);
+INSERT INTO `t_driver_service` VALUES (4185, 619, 4);
+INSERT INTO `t_driver_service` VALUES (4186, 618, 2);
+INSERT INTO `t_driver_service` VALUES (4187, 618, 4);
+INSERT INTO `t_driver_service` VALUES (4188, 617, 2);
+INSERT INTO `t_driver_service` VALUES (4189, 617, 4);
+INSERT INTO `t_driver_service` VALUES (4190, 616, 2);
+INSERT INTO `t_driver_service` VALUES (4191, 616, 4);
+INSERT INTO `t_driver_service` VALUES (4192, 615, 2);
+INSERT INTO `t_driver_service` VALUES (4193, 615, 4);
+INSERT INTO `t_driver_service` VALUES (4194, 614, 2);
+INSERT INTO `t_driver_service` VALUES (4195, 614, 4);
+INSERT INTO `t_driver_service` VALUES (4196, 613, 2);
+INSERT INTO `t_driver_service` VALUES (4197, 613, 4);
+INSERT INTO `t_driver_service` VALUES (4198, 612, 2);
+INSERT INTO `t_driver_service` VALUES (4199, 612, 4);
+INSERT INTO `t_driver_service` VALUES (4200, 611, 2);
+INSERT INTO `t_driver_service` VALUES (4201, 611, 4);
+INSERT INTO `t_driver_service` VALUES (4202, 610, 2);
+INSERT INTO `t_driver_service` VALUES (4203, 610, 4);
+INSERT INTO `t_driver_service` VALUES (4206, 608, 2);
+INSERT INTO `t_driver_service` VALUES (4207, 608, 4);
+INSERT INTO `t_driver_service` VALUES (4208, 607, 2);
+INSERT INTO `t_driver_service` VALUES (4209, 607, 4);
+INSERT INTO `t_driver_service` VALUES (4210, 606, 2);
+INSERT INTO `t_driver_service` VALUES (4211, 606, 4);
+INSERT INTO `t_driver_service` VALUES (4214, 604, 2);
+INSERT INTO `t_driver_service` VALUES (4215, 604, 4);
+INSERT INTO `t_driver_service` VALUES (4216, 603, 2);
+INSERT INTO `t_driver_service` VALUES (4217, 603, 4);
+INSERT INTO `t_driver_service` VALUES (4218, 602, 2);
+INSERT INTO `t_driver_service` VALUES (4219, 602, 4);
+INSERT INTO `t_driver_service` VALUES (4220, 601, 2);
+INSERT INTO `t_driver_service` VALUES (4221, 601, 4);
+INSERT INTO `t_driver_service` VALUES (4222, 600, 2);
+INSERT INTO `t_driver_service` VALUES (4223, 600, 4);
+INSERT INTO `t_driver_service` VALUES (4224, 599, 2);
+INSERT INTO `t_driver_service` VALUES (4225, 599, 4);
+INSERT INTO `t_driver_service` VALUES (4226, 598, 2);
+INSERT INTO `t_driver_service` VALUES (4227, 598, 4);
+INSERT INTO `t_driver_service` VALUES (4228, 597, 2);
+INSERT INTO `t_driver_service` VALUES (4229, 597, 4);
+INSERT INTO `t_driver_service` VALUES (4230, 596, 2);
+INSERT INTO `t_driver_service` VALUES (4231, 596, 4);
+INSERT INTO `t_driver_service` VALUES (4232, 595, 2);
+INSERT INTO `t_driver_service` VALUES (4233, 595, 4);
+INSERT INTO `t_driver_service` VALUES (4234, 594, 2);
+INSERT INTO `t_driver_service` VALUES (4235, 594, 4);
+INSERT INTO `t_driver_service` VALUES (4236, 593, 2);
+INSERT INTO `t_driver_service` VALUES (4237, 593, 4);
+INSERT INTO `t_driver_service` VALUES (4238, 592, 2);
+INSERT INTO `t_driver_service` VALUES (4239, 592, 4);
+INSERT INTO `t_driver_service` VALUES (4240, 591, 2);
+INSERT INTO `t_driver_service` VALUES (4241, 591, 4);
+INSERT INTO `t_driver_service` VALUES (4244, 589, 2);
+INSERT INTO `t_driver_service` VALUES (4245, 589, 4);
+INSERT INTO `t_driver_service` VALUES (4246, 588, 2);
+INSERT INTO `t_driver_service` VALUES (4247, 588, 4);
+INSERT INTO `t_driver_service` VALUES (4248, 587, 2);
+INSERT INTO `t_driver_service` VALUES (4249, 587, 4);
+INSERT INTO `t_driver_service` VALUES (4252, 586, 2);
+INSERT INTO `t_driver_service` VALUES (4253, 586, 4);
+INSERT INTO `t_driver_service` VALUES (4256, 584, 2);
+INSERT INTO `t_driver_service` VALUES (4257, 584, 4);
+INSERT INTO `t_driver_service` VALUES (4258, 583, 2);
+INSERT INTO `t_driver_service` VALUES (4259, 583, 4);
+INSERT INTO `t_driver_service` VALUES (4260, 582, 2);
+INSERT INTO `t_driver_service` VALUES (4261, 582, 4);
+INSERT INTO `t_driver_service` VALUES (4262, 581, 2);
+INSERT INTO `t_driver_service` VALUES (4263, 581, 4);
+INSERT INTO `t_driver_service` VALUES (4264, 580, 2);
+INSERT INTO `t_driver_service` VALUES (4265, 580, 4);
+INSERT INTO `t_driver_service` VALUES (4266, 579, 2);
+INSERT INTO `t_driver_service` VALUES (4267, 579, 4);
+INSERT INTO `t_driver_service` VALUES (4268, 578, 2);
+INSERT INTO `t_driver_service` VALUES (4269, 578, 4);
+INSERT INTO `t_driver_service` VALUES (4270, 577, 2);
+INSERT INTO `t_driver_service` VALUES (4271, 577, 4);
+INSERT INTO `t_driver_service` VALUES (4272, 576, 2);
+INSERT INTO `t_driver_service` VALUES (4273, 576, 4);
+INSERT INTO `t_driver_service` VALUES (4276, 575, 2);
+INSERT INTO `t_driver_service` VALUES (4277, 575, 4);
+INSERT INTO `t_driver_service` VALUES (4278, 574, 2);
+INSERT INTO `t_driver_service` VALUES (4279, 574, 4);
+INSERT INTO `t_driver_service` VALUES (4280, 573, 2);
+INSERT INTO `t_driver_service` VALUES (4281, 573, 4);
+INSERT INTO `t_driver_service` VALUES (4282, 572, 2);
+INSERT INTO `t_driver_service` VALUES (4283, 572, 4);
+INSERT INTO `t_driver_service` VALUES (4284, 571, 2);
+INSERT INTO `t_driver_service` VALUES (4285, 571, 4);
+INSERT INTO `t_driver_service` VALUES (4286, 570, 2);
+INSERT INTO `t_driver_service` VALUES (4287, 570, 4);
+INSERT INTO `t_driver_service` VALUES (4288, 569, 2);
+INSERT INTO `t_driver_service` VALUES (4289, 569, 4);
+INSERT INTO `t_driver_service` VALUES (4290, 568, 2);
+INSERT INTO `t_driver_service` VALUES (4291, 568, 4);
+INSERT INTO `t_driver_service` VALUES (4292, 567, 2);
+INSERT INTO `t_driver_service` VALUES (4293, 567, 4);
+INSERT INTO `t_driver_service` VALUES (4294, 566, 2);
+INSERT INTO `t_driver_service` VALUES (4295, 566, 4);
+INSERT INTO `t_driver_service` VALUES (4296, 565, 2);
+INSERT INTO `t_driver_service` VALUES (4297, 565, 4);
+INSERT INTO `t_driver_service` VALUES (4298, 564, 2);
+INSERT INTO `t_driver_service` VALUES (4299, 564, 4);
+INSERT INTO `t_driver_service` VALUES (4300, 563, 2);
+INSERT INTO `t_driver_service` VALUES (4301, 563, 4);
+INSERT INTO `t_driver_service` VALUES (4302, 562, 2);
+INSERT INTO `t_driver_service` VALUES (4303, 562, 4);
+INSERT INTO `t_driver_service` VALUES (4304, 561, 2);
+INSERT INTO `t_driver_service` VALUES (4305, 561, 4);
+INSERT INTO `t_driver_service` VALUES (4306, 560, 2);
+INSERT INTO `t_driver_service` VALUES (4307, 560, 4);
+INSERT INTO `t_driver_service` VALUES (4308, 559, 2);
+INSERT INTO `t_driver_service` VALUES (4309, 559, 4);
+INSERT INTO `t_driver_service` VALUES (4310, 558, 2);
+INSERT INTO `t_driver_service` VALUES (4311, 558, 4);
+INSERT INTO `t_driver_service` VALUES (4312, 557, 2);
+INSERT INTO `t_driver_service` VALUES (4313, 557, 4);
+INSERT INTO `t_driver_service` VALUES (4314, 556, 2);
+INSERT INTO `t_driver_service` VALUES (4315, 556, 4);
+INSERT INTO `t_driver_service` VALUES (4316, 555, 2);
+INSERT INTO `t_driver_service` VALUES (4317, 555, 4);
+INSERT INTO `t_driver_service` VALUES (4318, 554, 2);
+INSERT INTO `t_driver_service` VALUES (4319, 554, 4);
+INSERT INTO `t_driver_service` VALUES (4320, 553, 2);
+INSERT INTO `t_driver_service` VALUES (4321, 553, 4);
+INSERT INTO `t_driver_service` VALUES (4322, 552, 2);
+INSERT INTO `t_driver_service` VALUES (4323, 552, 4);
+INSERT INTO `t_driver_service` VALUES (4324, 551, 2);
+INSERT INTO `t_driver_service` VALUES (4325, 551, 4);
+INSERT INTO `t_driver_service` VALUES (4326, 550, 2);
+INSERT INTO `t_driver_service` VALUES (4327, 550, 4);
+INSERT INTO `t_driver_service` VALUES (4328, 549, 2);
+INSERT INTO `t_driver_service` VALUES (4329, 549, 4);
+INSERT INTO `t_driver_service` VALUES (4330, 548, 2);
+INSERT INTO `t_driver_service` VALUES (4331, 548, 4);
+INSERT INTO `t_driver_service` VALUES (4332, 547, 2);
+INSERT INTO `t_driver_service` VALUES (4333, 547, 4);
+INSERT INTO `t_driver_service` VALUES (4334, 546, 2);
+INSERT INTO `t_driver_service` VALUES (4335, 546, 4);
+INSERT INTO `t_driver_service` VALUES (4336, 545, 2);
+INSERT INTO `t_driver_service` VALUES (4337, 545, 4);
+INSERT INTO `t_driver_service` VALUES (4340, 543, 2);
+INSERT INTO `t_driver_service` VALUES (4341, 543, 4);
+INSERT INTO `t_driver_service` VALUES (4342, 542, 2);
+INSERT INTO `t_driver_service` VALUES (4343, 542, 4);
+INSERT INTO `t_driver_service` VALUES (4344, 541, 2);
+INSERT INTO `t_driver_service` VALUES (4345, 541, 4);
+INSERT INTO `t_driver_service` VALUES (4346, 540, 2);
+INSERT INTO `t_driver_service` VALUES (4347, 540, 4);
+INSERT INTO `t_driver_service` VALUES (4348, 539, 2);
+INSERT INTO `t_driver_service` VALUES (4349, 539, 4);
+INSERT INTO `t_driver_service` VALUES (4350, 538, 2);
+INSERT INTO `t_driver_service` VALUES (4351, 538, 4);
+INSERT INTO `t_driver_service` VALUES (4352, 537, 2);
+INSERT INTO `t_driver_service` VALUES (4353, 537, 4);
+INSERT INTO `t_driver_service` VALUES (4354, 536, 2);
+INSERT INTO `t_driver_service` VALUES (4355, 536, 4);
+INSERT INTO `t_driver_service` VALUES (4356, 535, 2);
+INSERT INTO `t_driver_service` VALUES (4357, 535, 4);
+INSERT INTO `t_driver_service` VALUES (4358, 534, 2);
+INSERT INTO `t_driver_service` VALUES (4359, 534, 4);
+INSERT INTO `t_driver_service` VALUES (4360, 533, 2);
+INSERT INTO `t_driver_service` VALUES (4361, 533, 4);
+INSERT INTO `t_driver_service` VALUES (4362, 532, 2);
+INSERT INTO `t_driver_service` VALUES (4363, 532, 4);
+INSERT INTO `t_driver_service` VALUES (4364, 531, 2);
+INSERT INTO `t_driver_service` VALUES (4365, 531, 4);
+INSERT INTO `t_driver_service` VALUES (4366, 530, 2);
+INSERT INTO `t_driver_service` VALUES (4367, 530, 4);
+INSERT INTO `t_driver_service` VALUES (4368, 529, 2);
+INSERT INTO `t_driver_service` VALUES (4369, 529, 4);
+INSERT INTO `t_driver_service` VALUES (4370, 528, 2);
+INSERT INTO `t_driver_service` VALUES (4371, 528, 4);
+INSERT INTO `t_driver_service` VALUES (4372, 73, 2);
+INSERT INTO `t_driver_service` VALUES (4373, 73, 4);
+INSERT INTO `t_driver_service` VALUES (4374, 590, 2);
+INSERT INTO `t_driver_service` VALUES (4375, 590, 4);
+INSERT INTO `t_driver_service` VALUES (4376, 527, 2);
+INSERT INTO `t_driver_service` VALUES (4377, 527, 4);
+INSERT INTO `t_driver_service` VALUES (4378, 526, 2);
+INSERT INTO `t_driver_service` VALUES (4379, 526, 4);
+INSERT INTO `t_driver_service` VALUES (4380, 525, 2);
+INSERT INTO `t_driver_service` VALUES (4381, 525, 4);
+INSERT INTO `t_driver_service` VALUES (4382, 524, 2);
+INSERT INTO `t_driver_service` VALUES (4383, 524, 4);
+INSERT INTO `t_driver_service` VALUES (4384, 523, 2);
+INSERT INTO `t_driver_service` VALUES (4385, 523, 4);
+INSERT INTO `t_driver_service` VALUES (4388, 522, 2);
+INSERT INTO `t_driver_service` VALUES (4389, 522, 4);
+INSERT INTO `t_driver_service` VALUES (4390, 521, 2);
+INSERT INTO `t_driver_service` VALUES (4391, 521, 4);
+INSERT INTO `t_driver_service` VALUES (4392, 520, 2);
+INSERT INTO `t_driver_service` VALUES (4393, 520, 4);
+INSERT INTO `t_driver_service` VALUES (4394, 519, 2);
+INSERT INTO `t_driver_service` VALUES (4395, 519, 4);
+INSERT INTO `t_driver_service` VALUES (4396, 518, 2);
+INSERT INTO `t_driver_service` VALUES (4397, 518, 4);
+INSERT INTO `t_driver_service` VALUES (4398, 517, 2);
+INSERT INTO `t_driver_service` VALUES (4399, 517, 4);
+INSERT INTO `t_driver_service` VALUES (4400, 516, 2);
+INSERT INTO `t_driver_service` VALUES (4401, 516, 4);
+INSERT INTO `t_driver_service` VALUES (4402, 515, 2);
+INSERT INTO `t_driver_service` VALUES (4403, 515, 4);
+INSERT INTO `t_driver_service` VALUES (4404, 514, 2);
+INSERT INTO `t_driver_service` VALUES (4405, 514, 4);
+INSERT INTO `t_driver_service` VALUES (4406, 513, 2);
+INSERT INTO `t_driver_service` VALUES (4407, 513, 4);
+INSERT INTO `t_driver_service` VALUES (4408, 512, 2);
+INSERT INTO `t_driver_service` VALUES (4409, 512, 4);
+INSERT INTO `t_driver_service` VALUES (4410, 511, 2);
+INSERT INTO `t_driver_service` VALUES (4411, 511, 4);
+INSERT INTO `t_driver_service` VALUES (4412, 510, 2);
+INSERT INTO `t_driver_service` VALUES (4413, 510, 4);
+INSERT INTO `t_driver_service` VALUES (4414, 509, 2);
+INSERT INTO `t_driver_service` VALUES (4415, 509, 4);
+INSERT INTO `t_driver_service` VALUES (4416, 508, 2);
+INSERT INTO `t_driver_service` VALUES (4417, 508, 4);
+INSERT INTO `t_driver_service` VALUES (4418, 507, 2);
+INSERT INTO `t_driver_service` VALUES (4419, 507, 4);
+INSERT INTO `t_driver_service` VALUES (4420, 506, 2);
+INSERT INTO `t_driver_service` VALUES (4421, 506, 4);
+INSERT INTO `t_driver_service` VALUES (4422, 505, 2);
+INSERT INTO `t_driver_service` VALUES (4423, 505, 4);
+INSERT INTO `t_driver_service` VALUES (4424, 504, 2);
+INSERT INTO `t_driver_service` VALUES (4425, 504, 4);
+INSERT INTO `t_driver_service` VALUES (4426, 503, 2);
+INSERT INTO `t_driver_service` VALUES (4427, 503, 4);
+INSERT INTO `t_driver_service` VALUES (4428, 502, 2);
+INSERT INTO `t_driver_service` VALUES (4429, 502, 4);
+INSERT INTO `t_driver_service` VALUES (4430, 501, 2);
+INSERT INTO `t_driver_service` VALUES (4431, 501, 4);
+INSERT INTO `t_driver_service` VALUES (4432, 500, 2);
+INSERT INTO `t_driver_service` VALUES (4433, 500, 4);
+INSERT INTO `t_driver_service` VALUES (4434, 499, 2);
+INSERT INTO `t_driver_service` VALUES (4435, 499, 4);
+INSERT INTO `t_driver_service` VALUES (4436, 498, 2);
+INSERT INTO `t_driver_service` VALUES (4437, 498, 4);
+INSERT INTO `t_driver_service` VALUES (4438, 497, 2);
+INSERT INTO `t_driver_service` VALUES (4439, 497, 4);
+INSERT INTO `t_driver_service` VALUES (4444, 494, 2);
+INSERT INTO `t_driver_service` VALUES (4445, 494, 4);
+INSERT INTO `t_driver_service` VALUES (4446, 493, 2);
+INSERT INTO `t_driver_service` VALUES (4447, 493, 4);
+INSERT INTO `t_driver_service` VALUES (4448, 492, 2);
+INSERT INTO `t_driver_service` VALUES (4449, 492, 4);
+INSERT INTO `t_driver_service` VALUES (4450, 491, 2);
+INSERT INTO `t_driver_service` VALUES (4451, 491, 4);
+INSERT INTO `t_driver_service` VALUES (4454, 489, 2);
+INSERT INTO `t_driver_service` VALUES (4455, 489, 4);
+INSERT INTO `t_driver_service` VALUES (4460, 486, 2);
+INSERT INTO `t_driver_service` VALUES (4461, 486, 4);
+INSERT INTO `t_driver_service` VALUES (4464, 484, 2);
+INSERT INTO `t_driver_service` VALUES (4465, 484, 4);
+INSERT INTO `t_driver_service` VALUES (4466, 483, 2);
+INSERT INTO `t_driver_service` VALUES (4467, 483, 4);
+INSERT INTO `t_driver_service` VALUES (4468, 482, 2);
+INSERT INTO `t_driver_service` VALUES (4469, 482, 4);
+INSERT INTO `t_driver_service` VALUES (4470, 481, 2);
+INSERT INTO `t_driver_service` VALUES (4471, 481, 4);
+INSERT INTO `t_driver_service` VALUES (4472, 480, 2);
+INSERT INTO `t_driver_service` VALUES (4473, 480, 4);
+INSERT INTO `t_driver_service` VALUES (4474, 479, 2);
+INSERT INTO `t_driver_service` VALUES (4475, 479, 4);
+INSERT INTO `t_driver_service` VALUES (4476, 478, 2);
+INSERT INTO `t_driver_service` VALUES (4477, 478, 4);
+INSERT INTO `t_driver_service` VALUES (4478, 477, 2);
+INSERT INTO `t_driver_service` VALUES (4479, 477, 4);
+INSERT INTO `t_driver_service` VALUES (4480, 476, 2);
+INSERT INTO `t_driver_service` VALUES (4481, 476, 4);
+INSERT INTO `t_driver_service` VALUES (4482, 475, 2);
+INSERT INTO `t_driver_service` VALUES (4483, 475, 4);
+INSERT INTO `t_driver_service` VALUES (4484, 474, 2);
+INSERT INTO `t_driver_service` VALUES (4485, 474, 4);
+INSERT INTO `t_driver_service` VALUES (4486, 473, 2);
+INSERT INTO `t_driver_service` VALUES (4487, 473, 4);
+INSERT INTO `t_driver_service` VALUES (4488, 472, 2);
+INSERT INTO `t_driver_service` VALUES (4489, 472, 4);
+INSERT INTO `t_driver_service` VALUES (4490, 471, 2);
+INSERT INTO `t_driver_service` VALUES (4491, 471, 4);
+INSERT INTO `t_driver_service` VALUES (4492, 470, 2);
+INSERT INTO `t_driver_service` VALUES (4493, 470, 4);
+INSERT INTO `t_driver_service` VALUES (4494, 469, 2);
+INSERT INTO `t_driver_service` VALUES (4495, 469, 4);
+INSERT INTO `t_driver_service` VALUES (4496, 468, 2);
+INSERT INTO `t_driver_service` VALUES (4497, 468, 4);
+INSERT INTO `t_driver_service` VALUES (4498, 467, 2);
+INSERT INTO `t_driver_service` VALUES (4499, 467, 4);
+INSERT INTO `t_driver_service` VALUES (4500, 466, 2);
+INSERT INTO `t_driver_service` VALUES (4501, 466, 4);
+INSERT INTO `t_driver_service` VALUES (4502, 465, 2);
+INSERT INTO `t_driver_service` VALUES (4503, 465, 4);
+INSERT INTO `t_driver_service` VALUES (4504, 464, 2);
+INSERT INTO `t_driver_service` VALUES (4505, 464, 4);
+INSERT INTO `t_driver_service` VALUES (4506, 463, 2);
+INSERT INTO `t_driver_service` VALUES (4507, 463, 4);
+INSERT INTO `t_driver_service` VALUES (4508, 462, 2);
+INSERT INTO `t_driver_service` VALUES (4509, 462, 4);
+INSERT INTO `t_driver_service` VALUES (4510, 461, 2);
+INSERT INTO `t_driver_service` VALUES (4511, 461, 4);
+INSERT INTO `t_driver_service` VALUES (4512, 460, 2);
+INSERT INTO `t_driver_service` VALUES (4513, 460, 4);
+INSERT INTO `t_driver_service` VALUES (4514, 459, 2);
+INSERT INTO `t_driver_service` VALUES (4515, 459, 4);
+INSERT INTO `t_driver_service` VALUES (4516, 458, 2);
+INSERT INTO `t_driver_service` VALUES (4517, 458, 4);
+INSERT INTO `t_driver_service` VALUES (4518, 457, 2);
+INSERT INTO `t_driver_service` VALUES (4519, 457, 4);
+INSERT INTO `t_driver_service` VALUES (4520, 456, 2);
+INSERT INTO `t_driver_service` VALUES (4521, 456, 4);
+INSERT INTO `t_driver_service` VALUES (4524, 454, 2);
+INSERT INTO `t_driver_service` VALUES (4525, 454, 4);
+INSERT INTO `t_driver_service` VALUES (4526, 453, 2);
+INSERT INTO `t_driver_service` VALUES (4527, 453, 4);
+INSERT INTO `t_driver_service` VALUES (4528, 452, 2);
+INSERT INTO `t_driver_service` VALUES (4529, 452, 4);
+INSERT INTO `t_driver_service` VALUES (4530, 451, 2);
+INSERT INTO `t_driver_service` VALUES (4531, 451, 4);
+INSERT INTO `t_driver_service` VALUES (4532, 450, 2);
+INSERT INTO `t_driver_service` VALUES (4533, 450, 4);
+INSERT INTO `t_driver_service` VALUES (4534, 449, 2);
+INSERT INTO `t_driver_service` VALUES (4535, 449, 4);
+INSERT INTO `t_driver_service` VALUES (4536, 448, 2);
+INSERT INTO `t_driver_service` VALUES (4537, 448, 4);
+INSERT INTO `t_driver_service` VALUES (4538, 447, 2);
+INSERT INTO `t_driver_service` VALUES (4539, 447, 4);
+INSERT INTO `t_driver_service` VALUES (4540, 446, 2);
+INSERT INTO `t_driver_service` VALUES (4541, 446, 4);
+INSERT INTO `t_driver_service` VALUES (4542, 445, 2);
+INSERT INTO `t_driver_service` VALUES (4543, 445, 4);
+INSERT INTO `t_driver_service` VALUES (4544, 444, 2);
+INSERT INTO `t_driver_service` VALUES (4545, 444, 4);
+INSERT INTO `t_driver_service` VALUES (4546, 443, 2);
+INSERT INTO `t_driver_service` VALUES (4547, 443, 4);
+INSERT INTO `t_driver_service` VALUES (4548, 442, 2);
+INSERT INTO `t_driver_service` VALUES (4549, 442, 4);
+INSERT INTO `t_driver_service` VALUES (4550, 441, 2);
+INSERT INTO `t_driver_service` VALUES (4551, 441, 4);
+INSERT INTO `t_driver_service` VALUES (4552, 440, 2);
+INSERT INTO `t_driver_service` VALUES (4553, 440, 4);
+INSERT INTO `t_driver_service` VALUES (4554, 439, 2);
+INSERT INTO `t_driver_service` VALUES (4555, 439, 4);
+INSERT INTO `t_driver_service` VALUES (4556, 438, 2);
+INSERT INTO `t_driver_service` VALUES (4557, 438, 4);
+INSERT INTO `t_driver_service` VALUES (4558, 437, 2);
+INSERT INTO `t_driver_service` VALUES (4559, 437, 4);
+INSERT INTO `t_driver_service` VALUES (4560, 436, 2);
+INSERT INTO `t_driver_service` VALUES (4561, 436, 4);
+INSERT INTO `t_driver_service` VALUES (4562, 435, 2);
+INSERT INTO `t_driver_service` VALUES (4563, 435, 4);
+INSERT INTO `t_driver_service` VALUES (4564, 434, 2);
+INSERT INTO `t_driver_service` VALUES (4565, 434, 4);
+INSERT INTO `t_driver_service` VALUES (4566, 433, 2);
+INSERT INTO `t_driver_service` VALUES (4567, 433, 4);
+INSERT INTO `t_driver_service` VALUES (4568, 432, 2);
+INSERT INTO `t_driver_service` VALUES (4569, 432, 4);
+INSERT INTO `t_driver_service` VALUES (4570, 431, 2);
+INSERT INTO `t_driver_service` VALUES (4571, 431, 4);
+INSERT INTO `t_driver_service` VALUES (4572, 430, 2);
+INSERT INTO `t_driver_service` VALUES (4573, 430, 4);
+INSERT INTO `t_driver_service` VALUES (4574, 429, 2);
+INSERT INTO `t_driver_service` VALUES (4575, 429, 4);
+INSERT INTO `t_driver_service` VALUES (4576, 428, 2);
+INSERT INTO `t_driver_service` VALUES (4577, 428, 4);
+INSERT INTO `t_driver_service` VALUES (4578, 427, 2);
+INSERT INTO `t_driver_service` VALUES (4579, 427, 4);
+INSERT INTO `t_driver_service` VALUES (4580, 426, 2);
+INSERT INTO `t_driver_service` VALUES (4581, 426, 4);
+INSERT INTO `t_driver_service` VALUES (4582, 425, 2);
+INSERT INTO `t_driver_service` VALUES (4583, 425, 4);
+INSERT INTO `t_driver_service` VALUES (4584, 424, 2);
+INSERT INTO `t_driver_service` VALUES (4585, 424, 4);
+INSERT INTO `t_driver_service` VALUES (4586, 423, 2);
+INSERT INTO `t_driver_service` VALUES (4587, 423, 4);
+INSERT INTO `t_driver_service` VALUES (4590, 421, 2);
+INSERT INTO `t_driver_service` VALUES (4591, 421, 4);
+INSERT INTO `t_driver_service` VALUES (4592, 420, 2);
+INSERT INTO `t_driver_service` VALUES (4593, 420, 4);
+INSERT INTO `t_driver_service` VALUES (4594, 419, 2);
+INSERT INTO `t_driver_service` VALUES (4595, 419, 4);
+INSERT INTO `t_driver_service` VALUES (4596, 418, 2);
+INSERT INTO `t_driver_service` VALUES (4597, 418, 4);
+INSERT INTO `t_driver_service` VALUES (4598, 417, 2);
+INSERT INTO `t_driver_service` VALUES (4599, 417, 4);
+INSERT INTO `t_driver_service` VALUES (4600, 416, 2);
+INSERT INTO `t_driver_service` VALUES (4601, 416, 4);
+INSERT INTO `t_driver_service` VALUES (4604, 414, 2);
+INSERT INTO `t_driver_service` VALUES (4605, 414, 4);
+INSERT INTO `t_driver_service` VALUES (4608, 412, 2);
+INSERT INTO `t_driver_service` VALUES (4609, 412, 4);
+INSERT INTO `t_driver_service` VALUES (4610, 411, 2);
+INSERT INTO `t_driver_service` VALUES (4611, 411, 4);
+INSERT INTO `t_driver_service` VALUES (4612, 410, 2);
+INSERT INTO `t_driver_service` VALUES (4613, 410, 4);
+INSERT INTO `t_driver_service` VALUES (4614, 409, 2);
+INSERT INTO `t_driver_service` VALUES (4615, 409, 4);
+INSERT INTO `t_driver_service` VALUES (4616, 408, 2);
+INSERT INTO `t_driver_service` VALUES (4617, 408, 4);
+INSERT INTO `t_driver_service` VALUES (4618, 407, 2);
+INSERT INTO `t_driver_service` VALUES (4619, 407, 4);
+INSERT INTO `t_driver_service` VALUES (4620, 406, 2);
+INSERT INTO `t_driver_service` VALUES (4621, 406, 4);
+INSERT INTO `t_driver_service` VALUES (4622, 405, 2);
+INSERT INTO `t_driver_service` VALUES (4623, 405, 4);
+INSERT INTO `t_driver_service` VALUES (4624, 404, 2);
+INSERT INTO `t_driver_service` VALUES (4625, 404, 4);
+INSERT INTO `t_driver_service` VALUES (4626, 401, 2);
+INSERT INTO `t_driver_service` VALUES (4627, 401, 4);
+INSERT INTO `t_driver_service` VALUES (4628, 400, 2);
+INSERT INTO `t_driver_service` VALUES (4629, 400, 4);
+INSERT INTO `t_driver_service` VALUES (4630, 399, 2);
+INSERT INTO `t_driver_service` VALUES (4631, 399, 4);
+INSERT INTO `t_driver_service` VALUES (4632, 398, 2);
+INSERT INTO `t_driver_service` VALUES (4633, 398, 4);
+INSERT INTO `t_driver_service` VALUES (4634, 397, 2);
+INSERT INTO `t_driver_service` VALUES (4635, 397, 4);
+INSERT INTO `t_driver_service` VALUES (4636, 396, 2);
+INSERT INTO `t_driver_service` VALUES (4637, 396, 4);
+INSERT INTO `t_driver_service` VALUES (4638, 395, 2);
+INSERT INTO `t_driver_service` VALUES (4639, 395, 4);
+INSERT INTO `t_driver_service` VALUES (4640, 394, 2);
+INSERT INTO `t_driver_service` VALUES (4641, 394, 4);
+INSERT INTO `t_driver_service` VALUES (4642, 393, 2);
+INSERT INTO `t_driver_service` VALUES (4643, 393, 4);
+INSERT INTO `t_driver_service` VALUES (4644, 392, 2);
+INSERT INTO `t_driver_service` VALUES (4645, 392, 4);
+INSERT INTO `t_driver_service` VALUES (4646, 391, 2);
+INSERT INTO `t_driver_service` VALUES (4647, 391, 4);
+INSERT INTO `t_driver_service` VALUES (4650, 389, 2);
+INSERT INTO `t_driver_service` VALUES (4651, 389, 4);
+INSERT INTO `t_driver_service` VALUES (4652, 388, 2);
+INSERT INTO `t_driver_service` VALUES (4653, 388, 4);
+INSERT INTO `t_driver_service` VALUES (4654, 387, 2);
+INSERT INTO `t_driver_service` VALUES (4655, 387, 4);
+INSERT INTO `t_driver_service` VALUES (4656, 386, 2);
+INSERT INTO `t_driver_service` VALUES (4657, 386, 4);
+INSERT INTO `t_driver_service` VALUES (4658, 385, 2);
+INSERT INTO `t_driver_service` VALUES (4659, 385, 4);
+INSERT INTO `t_driver_service` VALUES (4660, 384, 2);
+INSERT INTO `t_driver_service` VALUES (4661, 384, 4);
+INSERT INTO `t_driver_service` VALUES (4662, 383, 2);
+INSERT INTO `t_driver_service` VALUES (4663, 383, 4);
+INSERT INTO `t_driver_service` VALUES (4664, 382, 2);
+INSERT INTO `t_driver_service` VALUES (4665, 382, 4);
+INSERT INTO `t_driver_service` VALUES (4666, 381, 2);
+INSERT INTO `t_driver_service` VALUES (4667, 381, 4);
+INSERT INTO `t_driver_service` VALUES (4668, 380, 2);
+INSERT INTO `t_driver_service` VALUES (4669, 380, 4);
+INSERT INTO `t_driver_service` VALUES (4670, 379, 2);
+INSERT INTO `t_driver_service` VALUES (4671, 379, 4);
+INSERT INTO `t_driver_service` VALUES (4672, 378, 2);
+INSERT INTO `t_driver_service` VALUES (4673, 378, 4);
+INSERT INTO `t_driver_service` VALUES (4674, 377, 2);
+INSERT INTO `t_driver_service` VALUES (4675, 377, 4);
+INSERT INTO `t_driver_service` VALUES (4676, 376, 2);
+INSERT INTO `t_driver_service` VALUES (4677, 376, 4);
+INSERT INTO `t_driver_service` VALUES (4678, 375, 2);
+INSERT INTO `t_driver_service` VALUES (4679, 375, 4);
+INSERT INTO `t_driver_service` VALUES (4680, 374, 2);
+INSERT INTO `t_driver_service` VALUES (4681, 374, 4);
+INSERT INTO `t_driver_service` VALUES (4682, 373, 2);
+INSERT INTO `t_driver_service` VALUES (4683, 373, 4);
+INSERT INTO `t_driver_service` VALUES (4686, 371, 2);
+INSERT INTO `t_driver_service` VALUES (4687, 371, 4);
+INSERT INTO `t_driver_service` VALUES (4688, 641, 2);
+INSERT INTO `t_driver_service` VALUES (4689, 641, 4);
+INSERT INTO `t_driver_service` VALUES (4690, 370, 2);
+INSERT INTO `t_driver_service` VALUES (4691, 370, 4);
+INSERT INTO `t_driver_service` VALUES (4694, 368, 2);
+INSERT INTO `t_driver_service` VALUES (4695, 368, 4);
+INSERT INTO `t_driver_service` VALUES (4696, 367, 2);
+INSERT INTO `t_driver_service` VALUES (4697, 367, 4);
+INSERT INTO `t_driver_service` VALUES (4702, 364, 2);
+INSERT INTO `t_driver_service` VALUES (4703, 364, 4);
+INSERT INTO `t_driver_service` VALUES (4704, 363, 2);
+INSERT INTO `t_driver_service` VALUES (4705, 363, 4);
+INSERT INTO `t_driver_service` VALUES (4706, 362, 2);
+INSERT INTO `t_driver_service` VALUES (4707, 362, 4);
+INSERT INTO `t_driver_service` VALUES (4708, 361, 2);
+INSERT INTO `t_driver_service` VALUES (4709, 361, 4);
+INSERT INTO `t_driver_service` VALUES (4710, 360, 2);
+INSERT INTO `t_driver_service` VALUES (4711, 360, 4);
+INSERT INTO `t_driver_service` VALUES (4712, 359, 2);
+INSERT INTO `t_driver_service` VALUES (4713, 359, 4);
+INSERT INTO `t_driver_service` VALUES (4714, 358, 2);
+INSERT INTO `t_driver_service` VALUES (4715, 358, 4);
+INSERT INTO `t_driver_service` VALUES (4716, 357, 2);
+INSERT INTO `t_driver_service` VALUES (4717, 357, 4);
+INSERT INTO `t_driver_service` VALUES (4718, 356, 2);
+INSERT INTO `t_driver_service` VALUES (4719, 356, 4);
+INSERT INTO `t_driver_service` VALUES (4720, 355, 2);
+INSERT INTO `t_driver_service` VALUES (4721, 355, 4);
+INSERT INTO `t_driver_service` VALUES (4722, 354, 2);
+INSERT INTO `t_driver_service` VALUES (4723, 354, 4);
+INSERT INTO `t_driver_service` VALUES (4724, 353, 2);
+INSERT INTO `t_driver_service` VALUES (4725, 353, 4);
+INSERT INTO `t_driver_service` VALUES (4726, 352, 2);
+INSERT INTO `t_driver_service` VALUES (4727, 352, 4);
+INSERT INTO `t_driver_service` VALUES (4728, 351, 2);
+INSERT INTO `t_driver_service` VALUES (4729, 351, 4);
+INSERT INTO `t_driver_service` VALUES (4730, 350, 2);
+INSERT INTO `t_driver_service` VALUES (4731, 350, 4);
+INSERT INTO `t_driver_service` VALUES (4732, 349, 2);
+INSERT INTO `t_driver_service` VALUES (4733, 349, 4);
+INSERT INTO `t_driver_service` VALUES (4734, 348, 2);
+INSERT INTO `t_driver_service` VALUES (4735, 348, 4);
+INSERT INTO `t_driver_service` VALUES (4736, 347, 2);
+INSERT INTO `t_driver_service` VALUES (4737, 347, 4);
+INSERT INTO `t_driver_service` VALUES (4738, 346, 2);
+INSERT INTO `t_driver_service` VALUES (4739, 346, 4);
+INSERT INTO `t_driver_service` VALUES (4740, 345, 2);
+INSERT INTO `t_driver_service` VALUES (4741, 345, 4);
+INSERT INTO `t_driver_service` VALUES (4742, 344, 2);
+INSERT INTO `t_driver_service` VALUES (4743, 344, 4);
+INSERT INTO `t_driver_service` VALUES (4744, 343, 2);
+INSERT INTO `t_driver_service` VALUES (4745, 343, 4);
+INSERT INTO `t_driver_service` VALUES (4746, 342, 2);
+INSERT INTO `t_driver_service` VALUES (4747, 342, 4);
+INSERT INTO `t_driver_service` VALUES (4748, 341, 2);
+INSERT INTO `t_driver_service` VALUES (4749, 341, 4);
+INSERT INTO `t_driver_service` VALUES (4750, 340, 2);
+INSERT INTO `t_driver_service` VALUES (4751, 340, 4);
+INSERT INTO `t_driver_service` VALUES (4752, 339, 2);
+INSERT INTO `t_driver_service` VALUES (4753, 339, 4);
+INSERT INTO `t_driver_service` VALUES (4754, 338, 2);
+INSERT INTO `t_driver_service` VALUES (4755, 338, 4);
+INSERT INTO `t_driver_service` VALUES (4758, 336, 2);
+INSERT INTO `t_driver_service` VALUES (4759, 336, 4);
+INSERT INTO `t_driver_service` VALUES (4760, 335, 2);
+INSERT INTO `t_driver_service` VALUES (4761, 335, 4);
+INSERT INTO `t_driver_service` VALUES (4764, 333, 2);
+INSERT INTO `t_driver_service` VALUES (4765, 333, 4);
+INSERT INTO `t_driver_service` VALUES (4766, 332, 2);
+INSERT INTO `t_driver_service` VALUES (4767, 332, 4);
+INSERT INTO `t_driver_service` VALUES (4768, 331, 2);
+INSERT INTO `t_driver_service` VALUES (4769, 331, 4);
+INSERT INTO `t_driver_service` VALUES (4770, 330, 2);
+INSERT INTO `t_driver_service` VALUES (4771, 330, 4);
+INSERT INTO `t_driver_service` VALUES (4772, 329, 2);
+INSERT INTO `t_driver_service` VALUES (4773, 329, 4);
+INSERT INTO `t_driver_service` VALUES (4776, 327, 2);
+INSERT INTO `t_driver_service` VALUES (4777, 327, 4);
+INSERT INTO `t_driver_service` VALUES (4778, 326, 2);
+INSERT INTO `t_driver_service` VALUES (4779, 326, 4);
+INSERT INTO `t_driver_service` VALUES (4780, 325, 2);
+INSERT INTO `t_driver_service` VALUES (4781, 325, 4);
+INSERT INTO `t_driver_service` VALUES (4786, 322, 2);
+INSERT INTO `t_driver_service` VALUES (4787, 322, 4);
+INSERT INTO `t_driver_service` VALUES (4788, 321, 2);
+INSERT INTO `t_driver_service` VALUES (4789, 321, 4);
+INSERT INTO `t_driver_service` VALUES (4790, 320, 2);
+INSERT INTO `t_driver_service` VALUES (4791, 320, 4);
+INSERT INTO `t_driver_service` VALUES (4792, 319, 2);
+INSERT INTO `t_driver_service` VALUES (4793, 319, 4);
+INSERT INTO `t_driver_service` VALUES (4794, 318, 2);
+INSERT INTO `t_driver_service` VALUES (4795, 318, 4);
+INSERT INTO `t_driver_service` VALUES (4796, 317, 2);
+INSERT INTO `t_driver_service` VALUES (4797, 317, 4);
+INSERT INTO `t_driver_service` VALUES (4798, 316, 2);
+INSERT INTO `t_driver_service` VALUES (4799, 316, 4);
+INSERT INTO `t_driver_service` VALUES (4800, 315, 2);
+INSERT INTO `t_driver_service` VALUES (4801, 315, 4);
+INSERT INTO `t_driver_service` VALUES (4802, 314, 2);
+INSERT INTO `t_driver_service` VALUES (4803, 314, 4);
+INSERT INTO `t_driver_service` VALUES (4804, 313, 2);
+INSERT INTO `t_driver_service` VALUES (4805, 313, 4);
+INSERT INTO `t_driver_service` VALUES (4806, 312, 2);
+INSERT INTO `t_driver_service` VALUES (4807, 312, 4);
+INSERT INTO `t_driver_service` VALUES (4808, 311, 2);
+INSERT INTO `t_driver_service` VALUES (4809, 311, 4);
+INSERT INTO `t_driver_service` VALUES (4810, 310, 2);
+INSERT INTO `t_driver_service` VALUES (4811, 310, 4);
+INSERT INTO `t_driver_service` VALUES (4814, 308, 2);
+INSERT INTO `t_driver_service` VALUES (4815, 308, 4);
+INSERT INTO `t_driver_service` VALUES (4816, 307, 2);
+INSERT INTO `t_driver_service` VALUES (4817, 307, 4);
+INSERT INTO `t_driver_service` VALUES (4818, 306, 2);
+INSERT INTO `t_driver_service` VALUES (4819, 306, 4);
+INSERT INTO `t_driver_service` VALUES (4820, 305, 2);
+INSERT INTO `t_driver_service` VALUES (4821, 305, 4);
+INSERT INTO `t_driver_service` VALUES (4822, 304, 2);
+INSERT INTO `t_driver_service` VALUES (4823, 304, 4);
+INSERT INTO `t_driver_service` VALUES (4824, 303, 2);
+INSERT INTO `t_driver_service` VALUES (4825, 303, 4);
+INSERT INTO `t_driver_service` VALUES (4826, 302, 2);
+INSERT INTO `t_driver_service` VALUES (4827, 302, 4);
+INSERT INTO `t_driver_service` VALUES (4828, 301, 2);
+INSERT INTO `t_driver_service` VALUES (4829, 301, 4);
+INSERT INTO `t_driver_service` VALUES (4830, 300, 2);
+INSERT INTO `t_driver_service` VALUES (4831, 300, 4);
+INSERT INTO `t_driver_service` VALUES (4834, 298, 2);
+INSERT INTO `t_driver_service` VALUES (4835, 298, 4);
+INSERT INTO `t_driver_service` VALUES (4836, 297, 2);
+INSERT INTO `t_driver_service` VALUES (4837, 297, 4);
+INSERT INTO `t_driver_service` VALUES (4838, 296, 2);
+INSERT INTO `t_driver_service` VALUES (4839, 296, 4);
+INSERT INTO `t_driver_service` VALUES (4840, 295, 2);
+INSERT INTO `t_driver_service` VALUES (4841, 295, 4);
+INSERT INTO `t_driver_service` VALUES (4842, 294, 2);
+INSERT INTO `t_driver_service` VALUES (4843, 294, 4);
+INSERT INTO `t_driver_service` VALUES (4844, 293, 2);
+INSERT INTO `t_driver_service` VALUES (4845, 293, 4);
+INSERT INTO `t_driver_service` VALUES (4846, 292, 2);
+INSERT INTO `t_driver_service` VALUES (4847, 292, 4);
+INSERT INTO `t_driver_service` VALUES (4848, 291, 2);
+INSERT INTO `t_driver_service` VALUES (4849, 291, 4);
+INSERT INTO `t_driver_service` VALUES (4852, 289, 2);
+INSERT INTO `t_driver_service` VALUES (4853, 289, 4);
+INSERT INTO `t_driver_service` VALUES (4854, 288, 2);
+INSERT INTO `t_driver_service` VALUES (4855, 288, 4);
+INSERT INTO `t_driver_service` VALUES (4856, 287, 2);
+INSERT INTO `t_driver_service` VALUES (4857, 287, 4);
+INSERT INTO `t_driver_service` VALUES (4858, 286, 2);
+INSERT INTO `t_driver_service` VALUES (4859, 286, 4);
+INSERT INTO `t_driver_service` VALUES (4860, 285, 2);
+INSERT INTO `t_driver_service` VALUES (4861, 285, 4);
+INSERT INTO `t_driver_service` VALUES (4862, 284, 2);
+INSERT INTO `t_driver_service` VALUES (4863, 284, 4);
+INSERT INTO `t_driver_service` VALUES (4864, 283, 2);
+INSERT INTO `t_driver_service` VALUES (4865, 283, 4);
+INSERT INTO `t_driver_service` VALUES (4866, 282, 2);
+INSERT INTO `t_driver_service` VALUES (4867, 282, 4);
+INSERT INTO `t_driver_service` VALUES (4868, 281, 2);
+INSERT INTO `t_driver_service` VALUES (4869, 281, 4);
+INSERT INTO `t_driver_service` VALUES (4870, 280, 2);
+INSERT INTO `t_driver_service` VALUES (4871, 280, 4);
+INSERT INTO `t_driver_service` VALUES (4872, 279, 2);
+INSERT INTO `t_driver_service` VALUES (4873, 279, 4);
+INSERT INTO `t_driver_service` VALUES (4874, 278, 2);
+INSERT INTO `t_driver_service` VALUES (4875, 278, 4);
+INSERT INTO `t_driver_service` VALUES (4876, 277, 2);
+INSERT INTO `t_driver_service` VALUES (4877, 277, 4);
+INSERT INTO `t_driver_service` VALUES (4878, 276, 2);
+INSERT INTO `t_driver_service` VALUES (4879, 276, 4);
+INSERT INTO `t_driver_service` VALUES (4880, 275, 2);
+INSERT INTO `t_driver_service` VALUES (4881, 275, 4);
+INSERT INTO `t_driver_service` VALUES (4882, 274, 2);
+INSERT INTO `t_driver_service` VALUES (4883, 274, 4);
+INSERT INTO `t_driver_service` VALUES (4884, 273, 2);
+INSERT INTO `t_driver_service` VALUES (4885, 273, 4);
+INSERT INTO `t_driver_service` VALUES (4886, 272, 2);
+INSERT INTO `t_driver_service` VALUES (4887, 272, 4);
+INSERT INTO `t_driver_service` VALUES (4888, 271, 2);
+INSERT INTO `t_driver_service` VALUES (4889, 271, 4);
+INSERT INTO `t_driver_service` VALUES (4890, 270, 2);
+INSERT INTO `t_driver_service` VALUES (4891, 270, 4);
+INSERT INTO `t_driver_service` VALUES (4892, 269, 2);
+INSERT INTO `t_driver_service` VALUES (4893, 269, 4);
+INSERT INTO `t_driver_service` VALUES (4894, 268, 2);
+INSERT INTO `t_driver_service` VALUES (4895, 268, 4);
+INSERT INTO `t_driver_service` VALUES (4896, 267, 2);
+INSERT INTO `t_driver_service` VALUES (4897, 267, 4);
+INSERT INTO `t_driver_service` VALUES (4898, 266, 2);
+INSERT INTO `t_driver_service` VALUES (4899, 266, 4);
+INSERT INTO `t_driver_service` VALUES (4900, 265, 2);
+INSERT INTO `t_driver_service` VALUES (4901, 265, 4);
+INSERT INTO `t_driver_service` VALUES (4902, 264, 2);
+INSERT INTO `t_driver_service` VALUES (4903, 264, 4);
+INSERT INTO `t_driver_service` VALUES (4904, 263, 2);
+INSERT INTO `t_driver_service` VALUES (4905, 263, 4);
+INSERT INTO `t_driver_service` VALUES (4906, 262, 2);
+INSERT INTO `t_driver_service` VALUES (4907, 262, 4);
+INSERT INTO `t_driver_service` VALUES (4908, 261, 2);
+INSERT INTO `t_driver_service` VALUES (4909, 261, 4);
+INSERT INTO `t_driver_service` VALUES (4910, 260, 2);
+INSERT INTO `t_driver_service` VALUES (4911, 260, 4);
+INSERT INTO `t_driver_service` VALUES (4912, 259, 2);
+INSERT INTO `t_driver_service` VALUES (4913, 259, 4);
+INSERT INTO `t_driver_service` VALUES (4914, 258, 2);
+INSERT INTO `t_driver_service` VALUES (4915, 258, 4);
+INSERT INTO `t_driver_service` VALUES (4916, 257, 2);
+INSERT INTO `t_driver_service` VALUES (4917, 257, 4);
+INSERT INTO `t_driver_service` VALUES (4918, 256, 2);
+INSERT INTO `t_driver_service` VALUES (4919, 256, 4);
+INSERT INTO `t_driver_service` VALUES (4920, 255, 2);
+INSERT INTO `t_driver_service` VALUES (4921, 255, 4);
+INSERT INTO `t_driver_service` VALUES (4922, 254, 2);
+INSERT INTO `t_driver_service` VALUES (4923, 254, 4);
+INSERT INTO `t_driver_service` VALUES (4926, 252, 2);
+INSERT INTO `t_driver_service` VALUES (4927, 252, 4);
+INSERT INTO `t_driver_service` VALUES (4928, 251, 2);
+INSERT INTO `t_driver_service` VALUES (4929, 251, 4);
+INSERT INTO `t_driver_service` VALUES (4930, 250, 2);
+INSERT INTO `t_driver_service` VALUES (4931, 250, 4);
+INSERT INTO `t_driver_service` VALUES (4932, 249, 2);
+INSERT INTO `t_driver_service` VALUES (4933, 249, 4);
+INSERT INTO `t_driver_service` VALUES (4934, 248, 2);
+INSERT INTO `t_driver_service` VALUES (4935, 248, 4);
+INSERT INTO `t_driver_service` VALUES (4936, 247, 2);
+INSERT INTO `t_driver_service` VALUES (4937, 247, 4);
+INSERT INTO `t_driver_service` VALUES (4938, 246, 2);
+INSERT INTO `t_driver_service` VALUES (4939, 246, 4);
+INSERT INTO `t_driver_service` VALUES (4940, 245, 2);
+INSERT INTO `t_driver_service` VALUES (4941, 245, 4);
+INSERT INTO `t_driver_service` VALUES (4942, 244, 2);
+INSERT INTO `t_driver_service` VALUES (4943, 244, 4);
+INSERT INTO `t_driver_service` VALUES (4944, 243, 2);
+INSERT INTO `t_driver_service` VALUES (4945, 243, 4);
+INSERT INTO `t_driver_service` VALUES (4946, 242, 2);
+INSERT INTO `t_driver_service` VALUES (4947, 242, 4);
+INSERT INTO `t_driver_service` VALUES (4948, 241, 2);
+INSERT INTO `t_driver_service` VALUES (4949, 241, 4);
+INSERT INTO `t_driver_service` VALUES (4950, 240, 2);
+INSERT INTO `t_driver_service` VALUES (4951, 240, 4);
+INSERT INTO `t_driver_service` VALUES (4952, 239, 2);
+INSERT INTO `t_driver_service` VALUES (4953, 239, 4);
+INSERT INTO `t_driver_service` VALUES (4954, 238, 2);
+INSERT INTO `t_driver_service` VALUES (4955, 238, 4);
+INSERT INTO `t_driver_service` VALUES (4956, 237, 2);
+INSERT INTO `t_driver_service` VALUES (4957, 237, 4);
+INSERT INTO `t_driver_service` VALUES (4958, 236, 2);
+INSERT INTO `t_driver_service` VALUES (4959, 236, 4);
+INSERT INTO `t_driver_service` VALUES (4960, 235, 2);
+INSERT INTO `t_driver_service` VALUES (4961, 235, 4);
+INSERT INTO `t_driver_service` VALUES (4962, 234, 2);
+INSERT INTO `t_driver_service` VALUES (4963, 234, 4);
+INSERT INTO `t_driver_service` VALUES (4964, 233, 2);
+INSERT INTO `t_driver_service` VALUES (4965, 233, 4);
+INSERT INTO `t_driver_service` VALUES (4966, 232, 2);
+INSERT INTO `t_driver_service` VALUES (4967, 232, 4);
+INSERT INTO `t_driver_service` VALUES (4968, 231, 2);
+INSERT INTO `t_driver_service` VALUES (4969, 231, 4);
+INSERT INTO `t_driver_service` VALUES (4970, 230, 2);
+INSERT INTO `t_driver_service` VALUES (4971, 230, 4);
+INSERT INTO `t_driver_service` VALUES (4974, 228, 2);
+INSERT INTO `t_driver_service` VALUES (4975, 228, 4);
+INSERT INTO `t_driver_service` VALUES (4976, 227, 2);
+INSERT INTO `t_driver_service` VALUES (4977, 227, 4);
+INSERT INTO `t_driver_service` VALUES (4978, 226, 2);
+INSERT INTO `t_driver_service` VALUES (4979, 226, 4);
+INSERT INTO `t_driver_service` VALUES (4980, 225, 2);
+INSERT INTO `t_driver_service` VALUES (4981, 225, 4);
+INSERT INTO `t_driver_service` VALUES (4982, 224, 2);
+INSERT INTO `t_driver_service` VALUES (4983, 224, 4);
+INSERT INTO `t_driver_service` VALUES (4984, 223, 2);
+INSERT INTO `t_driver_service` VALUES (4985, 223, 4);
+INSERT INTO `t_driver_service` VALUES (4986, 222, 2);
+INSERT INTO `t_driver_service` VALUES (4987, 222, 4);
+INSERT INTO `t_driver_service` VALUES (4988, 221, 2);
+INSERT INTO `t_driver_service` VALUES (4989, 221, 4);
+INSERT INTO `t_driver_service` VALUES (4990, 220, 2);
+INSERT INTO `t_driver_service` VALUES (4991, 220, 4);
+INSERT INTO `t_driver_service` VALUES (4992, 219, 2);
+INSERT INTO `t_driver_service` VALUES (4993, 219, 4);
+INSERT INTO `t_driver_service` VALUES (4994, 218, 2);
+INSERT INTO `t_driver_service` VALUES (4995, 218, 4);
+INSERT INTO `t_driver_service` VALUES (4996, 217, 2);
+INSERT INTO `t_driver_service` VALUES (4997, 217, 4);
+INSERT INTO `t_driver_service` VALUES (4998, 216, 2);
+INSERT INTO `t_driver_service` VALUES (4999, 216, 4);
+INSERT INTO `t_driver_service` VALUES (5000, 215, 2);
+INSERT INTO `t_driver_service` VALUES (5001, 215, 4);
+INSERT INTO `t_driver_service` VALUES (5002, 214, 2);
+INSERT INTO `t_driver_service` VALUES (5003, 214, 4);
+INSERT INTO `t_driver_service` VALUES (5004, 213, 2);
+INSERT INTO `t_driver_service` VALUES (5005, 213, 4);
+INSERT INTO `t_driver_service` VALUES (5006, 212, 2);
+INSERT INTO `t_driver_service` VALUES (5007, 212, 4);
+INSERT INTO `t_driver_service` VALUES (5008, 211, 2);
+INSERT INTO `t_driver_service` VALUES (5009, 211, 4);
+INSERT INTO `t_driver_service` VALUES (5010, 210, 2);
+INSERT INTO `t_driver_service` VALUES (5011, 210, 4);
+INSERT INTO `t_driver_service` VALUES (5012, 209, 2);
+INSERT INTO `t_driver_service` VALUES (5013, 209, 4);
+INSERT INTO `t_driver_service` VALUES (5014, 208, 2);
+INSERT INTO `t_driver_service` VALUES (5015, 208, 4);
+INSERT INTO `t_driver_service` VALUES (5016, 207, 2);
+INSERT INTO `t_driver_service` VALUES (5017, 207, 4);
+INSERT INTO `t_driver_service` VALUES (5018, 206, 2);
+INSERT INTO `t_driver_service` VALUES (5019, 206, 4);
+INSERT INTO `t_driver_service` VALUES (5022, 204, 2);
+INSERT INTO `t_driver_service` VALUES (5023, 204, 4);
+INSERT INTO `t_driver_service` VALUES (5026, 202, 2);
+INSERT INTO `t_driver_service` VALUES (5027, 202, 4);
+INSERT INTO `t_driver_service` VALUES (5028, 201, 2);
+INSERT INTO `t_driver_service` VALUES (5029, 201, 4);
+INSERT INTO `t_driver_service` VALUES (5030, 200, 2);
+INSERT INTO `t_driver_service` VALUES (5031, 200, 4);
+INSERT INTO `t_driver_service` VALUES (5032, 199, 2);
+INSERT INTO `t_driver_service` VALUES (5033, 199, 4);
+INSERT INTO `t_driver_service` VALUES (5034, 198, 2);
+INSERT INTO `t_driver_service` VALUES (5035, 198, 4);
+INSERT INTO `t_driver_service` VALUES (5036, 197, 2);
+INSERT INTO `t_driver_service` VALUES (5037, 197, 4);
+INSERT INTO `t_driver_service` VALUES (5038, 196, 2);
+INSERT INTO `t_driver_service` VALUES (5039, 196, 4);
+INSERT INTO `t_driver_service` VALUES (5040, 195, 2);
+INSERT INTO `t_driver_service` VALUES (5041, 195, 4);
+INSERT INTO `t_driver_service` VALUES (5042, 194, 2);
+INSERT INTO `t_driver_service` VALUES (5043, 194, 4);
+INSERT INTO `t_driver_service` VALUES (5044, 193, 2);
+INSERT INTO `t_driver_service` VALUES (5045, 193, 4);
+INSERT INTO `t_driver_service` VALUES (5046, 192, 2);
+INSERT INTO `t_driver_service` VALUES (5047, 192, 4);
+INSERT INTO `t_driver_service` VALUES (5048, 191, 2);
+INSERT INTO `t_driver_service` VALUES (5049, 191, 4);
+INSERT INTO `t_driver_service` VALUES (5050, 190, 2);
+INSERT INTO `t_driver_service` VALUES (5051, 190, 4);
+INSERT INTO `t_driver_service` VALUES (5052, 189, 2);
+INSERT INTO `t_driver_service` VALUES (5053, 189, 4);
+INSERT INTO `t_driver_service` VALUES (5054, 188, 2);
+INSERT INTO `t_driver_service` VALUES (5055, 188, 4);
+INSERT INTO `t_driver_service` VALUES (5056, 187, 2);
+INSERT INTO `t_driver_service` VALUES (5057, 187, 4);
+INSERT INTO `t_driver_service` VALUES (5058, 186, 2);
+INSERT INTO `t_driver_service` VALUES (5059, 186, 4);
+INSERT INTO `t_driver_service` VALUES (5060, 185, 2);
+INSERT INTO `t_driver_service` VALUES (5061, 185, 4);
+INSERT INTO `t_driver_service` VALUES (5062, 184, 2);
+INSERT INTO `t_driver_service` VALUES (5063, 184, 4);
+INSERT INTO `t_driver_service` VALUES (5064, 183, 2);
+INSERT INTO `t_driver_service` VALUES (5065, 183, 4);
+INSERT INTO `t_driver_service` VALUES (5066, 182, 2);
+INSERT INTO `t_driver_service` VALUES (5067, 182, 4);
+INSERT INTO `t_driver_service` VALUES (5068, 181, 2);
+INSERT INTO `t_driver_service` VALUES (5069, 181, 4);
+INSERT INTO `t_driver_service` VALUES (5074, 178, 2);
+INSERT INTO `t_driver_service` VALUES (5075, 178, 4);
+INSERT INTO `t_driver_service` VALUES (5076, 177, 2);
+INSERT INTO `t_driver_service` VALUES (5077, 177, 4);
+INSERT INTO `t_driver_service` VALUES (5078, 176, 2);
+INSERT INTO `t_driver_service` VALUES (5079, 176, 4);
+INSERT INTO `t_driver_service` VALUES (5080, 175, 2);
+INSERT INTO `t_driver_service` VALUES (5081, 175, 4);
+INSERT INTO `t_driver_service` VALUES (5082, 174, 2);
+INSERT INTO `t_driver_service` VALUES (5083, 174, 4);
+INSERT INTO `t_driver_service` VALUES (5084, 173, 2);
+INSERT INTO `t_driver_service` VALUES (5085, 173, 4);
+INSERT INTO `t_driver_service` VALUES (5086, 172, 2);
+INSERT INTO `t_driver_service` VALUES (5087, 172, 4);
+INSERT INTO `t_driver_service` VALUES (5088, 171, 2);
+INSERT INTO `t_driver_service` VALUES (5089, 171, 4);
+INSERT INTO `t_driver_service` VALUES (5090, 170, 2);
+INSERT INTO `t_driver_service` VALUES (5091, 170, 4);
+INSERT INTO `t_driver_service` VALUES (5092, 169, 2);
+INSERT INTO `t_driver_service` VALUES (5093, 169, 4);
+INSERT INTO `t_driver_service` VALUES (5094, 168, 2);
+INSERT INTO `t_driver_service` VALUES (5095, 168, 4);
+INSERT INTO `t_driver_service` VALUES (5096, 167, 2);
+INSERT INTO `t_driver_service` VALUES (5097, 167, 4);
+INSERT INTO `t_driver_service` VALUES (5098, 166, 2);
+INSERT INTO `t_driver_service` VALUES (5099, 166, 4);
+INSERT INTO `t_driver_service` VALUES (5100, 165, 2);
+INSERT INTO `t_driver_service` VALUES (5101, 165, 4);
+INSERT INTO `t_driver_service` VALUES (5102, 164, 2);
+INSERT INTO `t_driver_service` VALUES (5103, 164, 4);
+INSERT INTO `t_driver_service` VALUES (5104, 163, 2);
+INSERT INTO `t_driver_service` VALUES (5105, 163, 4);
+INSERT INTO `t_driver_service` VALUES (5106, 162, 2);
+INSERT INTO `t_driver_service` VALUES (5107, 162, 4);
+INSERT INTO `t_driver_service` VALUES (5108, 161, 2);
+INSERT INTO `t_driver_service` VALUES (5109, 161, 4);
+INSERT INTO `t_driver_service` VALUES (5112, 159, 2);
+INSERT INTO `t_driver_service` VALUES (5113, 159, 4);
+INSERT INTO `t_driver_service` VALUES (5114, 158, 2);
+INSERT INTO `t_driver_service` VALUES (5115, 158, 4);
+INSERT INTO `t_driver_service` VALUES (5116, 157, 2);
+INSERT INTO `t_driver_service` VALUES (5117, 157, 4);
+INSERT INTO `t_driver_service` VALUES (5118, 156, 2);
+INSERT INTO `t_driver_service` VALUES (5119, 156, 4);
+INSERT INTO `t_driver_service` VALUES (5120, 155, 2);
+INSERT INTO `t_driver_service` VALUES (5121, 155, 4);
+INSERT INTO `t_driver_service` VALUES (5122, 154, 2);
+INSERT INTO `t_driver_service` VALUES (5123, 154, 4);
+INSERT INTO `t_driver_service` VALUES (5124, 153, 2);
+INSERT INTO `t_driver_service` VALUES (5125, 153, 4);
+INSERT INTO `t_driver_service` VALUES (5126, 152, 2);
+INSERT INTO `t_driver_service` VALUES (5127, 152, 4);
+INSERT INTO `t_driver_service` VALUES (5128, 151, 2);
+INSERT INTO `t_driver_service` VALUES (5129, 151, 4);
+INSERT INTO `t_driver_service` VALUES (5130, 150, 2);
+INSERT INTO `t_driver_service` VALUES (5131, 150, 4);
+INSERT INTO `t_driver_service` VALUES (5132, 149, 2);
+INSERT INTO `t_driver_service` VALUES (5133, 149, 4);
+INSERT INTO `t_driver_service` VALUES (5134, 148, 2);
+INSERT INTO `t_driver_service` VALUES (5135, 148, 4);
+INSERT INTO `t_driver_service` VALUES (5136, 147, 2);
+INSERT INTO `t_driver_service` VALUES (5137, 147, 4);
+INSERT INTO `t_driver_service` VALUES (5138, 146, 2);
+INSERT INTO `t_driver_service` VALUES (5139, 146, 4);
+INSERT INTO `t_driver_service` VALUES (5140, 145, 2);
+INSERT INTO `t_driver_service` VALUES (5141, 145, 4);
+INSERT INTO `t_driver_service` VALUES (5142, 144, 2);
+INSERT INTO `t_driver_service` VALUES (5143, 144, 4);
+INSERT INTO `t_driver_service` VALUES (5144, 143, 2);
+INSERT INTO `t_driver_service` VALUES (5145, 143, 4);
+INSERT INTO `t_driver_service` VALUES (5146, 142, 2);
+INSERT INTO `t_driver_service` VALUES (5147, 142, 4);
+INSERT INTO `t_driver_service` VALUES (5150, 140, 2);
+INSERT INTO `t_driver_service` VALUES (5151, 140, 4);
+INSERT INTO `t_driver_service` VALUES (5152, 139, 2);
+INSERT INTO `t_driver_service` VALUES (5153, 139, 4);
+INSERT INTO `t_driver_service` VALUES (5154, 138, 2);
+INSERT INTO `t_driver_service` VALUES (5155, 138, 4);
+INSERT INTO `t_driver_service` VALUES (5156, 137, 2);
+INSERT INTO `t_driver_service` VALUES (5157, 137, 4);
+INSERT INTO `t_driver_service` VALUES (5158, 136, 2);
+INSERT INTO `t_driver_service` VALUES (5159, 136, 4);
+INSERT INTO `t_driver_service` VALUES (5160, 135, 2);
+INSERT INTO `t_driver_service` VALUES (5161, 135, 4);
+INSERT INTO `t_driver_service` VALUES (5162, 134, 2);
+INSERT INTO `t_driver_service` VALUES (5163, 134, 4);
+INSERT INTO `t_driver_service` VALUES (5164, 133, 2);
+INSERT INTO `t_driver_service` VALUES (5165, 133, 4);
+INSERT INTO `t_driver_service` VALUES (5166, 132, 2);
+INSERT INTO `t_driver_service` VALUES (5167, 132, 4);
+INSERT INTO `t_driver_service` VALUES (5168, 131, 2);
+INSERT INTO `t_driver_service` VALUES (5169, 131, 4);
+INSERT INTO `t_driver_service` VALUES (5170, 130, 2);
+INSERT INTO `t_driver_service` VALUES (5171, 130, 4);
+INSERT INTO `t_driver_service` VALUES (5172, 128, 2);
+INSERT INTO `t_driver_service` VALUES (5173, 128, 4);
+INSERT INTO `t_driver_service` VALUES (5174, 127, 2);
+INSERT INTO `t_driver_service` VALUES (5175, 127, 4);
+INSERT INTO `t_driver_service` VALUES (5176, 126, 2);
+INSERT INTO `t_driver_service` VALUES (5177, 126, 4);
+INSERT INTO `t_driver_service` VALUES (5178, 125, 2);
+INSERT INTO `t_driver_service` VALUES (5179, 125, 4);
+INSERT INTO `t_driver_service` VALUES (5180, 124, 2);
+INSERT INTO `t_driver_service` VALUES (5181, 124, 4);
+INSERT INTO `t_driver_service` VALUES (5182, 123, 2);
+INSERT INTO `t_driver_service` VALUES (5183, 123, 4);
+INSERT INTO `t_driver_service` VALUES (5184, 122, 2);
+INSERT INTO `t_driver_service` VALUES (5185, 122, 4);
+INSERT INTO `t_driver_service` VALUES (5186, 121, 2);
+INSERT INTO `t_driver_service` VALUES (5187, 121, 4);
+INSERT INTO `t_driver_service` VALUES (5188, 120, 2);
+INSERT INTO `t_driver_service` VALUES (5189, 120, 4);
+INSERT INTO `t_driver_service` VALUES (5190, 119, 2);
+INSERT INTO `t_driver_service` VALUES (5191, 119, 4);
+INSERT INTO `t_driver_service` VALUES (5192, 118, 2);
+INSERT INTO `t_driver_service` VALUES (5193, 118, 4);
+INSERT INTO `t_driver_service` VALUES (5196, 116, 2);
+INSERT INTO `t_driver_service` VALUES (5197, 116, 4);
+INSERT INTO `t_driver_service` VALUES (5198, 115, 2);
+INSERT INTO `t_driver_service` VALUES (5199, 115, 4);
+INSERT INTO `t_driver_service` VALUES (5200, 114, 2);
+INSERT INTO `t_driver_service` VALUES (5201, 114, 4);
+INSERT INTO `t_driver_service` VALUES (5202, 113, 2);
+INSERT INTO `t_driver_service` VALUES (5203, 113, 4);
+INSERT INTO `t_driver_service` VALUES (5204, 112, 2);
+INSERT INTO `t_driver_service` VALUES (5205, 112, 4);
+INSERT INTO `t_driver_service` VALUES (5206, 111, 2);
+INSERT INTO `t_driver_service` VALUES (5207, 111, 4);
+INSERT INTO `t_driver_service` VALUES (5208, 108, 2);
+INSERT INTO `t_driver_service` VALUES (5209, 108, 4);
+INSERT INTO `t_driver_service` VALUES (5210, 110, 2);
+INSERT INTO `t_driver_service` VALUES (5211, 110, 4);
+INSERT INTO `t_driver_service` VALUES (5212, 109, 2);
+INSERT INTO `t_driver_service` VALUES (5213, 109, 4);
+INSERT INTO `t_driver_service` VALUES (5214, 107, 2);
+INSERT INTO `t_driver_service` VALUES (5215, 107, 4);
+INSERT INTO `t_driver_service` VALUES (5216, 106, 2);
+INSERT INTO `t_driver_service` VALUES (5217, 106, 4);
+INSERT INTO `t_driver_service` VALUES (5218, 105, 2);
+INSERT INTO `t_driver_service` VALUES (5219, 105, 4);
+INSERT INTO `t_driver_service` VALUES (5220, 104, 2);
+INSERT INTO `t_driver_service` VALUES (5221, 104, 4);
+INSERT INTO `t_driver_service` VALUES (5222, 103, 2);
+INSERT INTO `t_driver_service` VALUES (5223, 103, 4);
+INSERT INTO `t_driver_service` VALUES (5224, 102, 2);
+INSERT INTO `t_driver_service` VALUES (5225, 102, 4);
+INSERT INTO `t_driver_service` VALUES (5226, 101, 2);
+INSERT INTO `t_driver_service` VALUES (5227, 101, 4);
+INSERT INTO `t_driver_service` VALUES (5228, 100, 2);
+INSERT INTO `t_driver_service` VALUES (5229, 100, 4);
+INSERT INTO `t_driver_service` VALUES (5230, 99, 2);
+INSERT INTO `t_driver_service` VALUES (5231, 99, 4);
+INSERT INTO `t_driver_service` VALUES (5232, 98, 2);
+INSERT INTO `t_driver_service` VALUES (5233, 98, 4);
+INSERT INTO `t_driver_service` VALUES (5234, 97, 2);
+INSERT INTO `t_driver_service` VALUES (5235, 97, 4);
+INSERT INTO `t_driver_service` VALUES (5238, 95, 2);
+INSERT INTO `t_driver_service` VALUES (5239, 95, 4);
+INSERT INTO `t_driver_service` VALUES (5240, 94, 2);
+INSERT INTO `t_driver_service` VALUES (5241, 94, 4);
+INSERT INTO `t_driver_service` VALUES (5242, 93, 2);
+INSERT INTO `t_driver_service` VALUES (5243, 93, 4);
+INSERT INTO `t_driver_service` VALUES (5244, 92, 2);
+INSERT INTO `t_driver_service` VALUES (5245, 92, 4);
+INSERT INTO `t_driver_service` VALUES (5246, 91, 2);
+INSERT INTO `t_driver_service` VALUES (5247, 91, 4);
+INSERT INTO `t_driver_service` VALUES (5248, 90, 2);
+INSERT INTO `t_driver_service` VALUES (5249, 90, 4);
+INSERT INTO `t_driver_service` VALUES (5250, 89, 2);
+INSERT INTO `t_driver_service` VALUES (5251, 89, 4);
+INSERT INTO `t_driver_service` VALUES (5252, 88, 2);
+INSERT INTO `t_driver_service` VALUES (5253, 88, 4);
+INSERT INTO `t_driver_service` VALUES (5254, 87, 2);
+INSERT INTO `t_driver_service` VALUES (5255, 87, 4);
+INSERT INTO `t_driver_service` VALUES (5256, 86, 2);
+INSERT INTO `t_driver_service` VALUES (5257, 86, 4);
+INSERT INTO `t_driver_service` VALUES (5258, 85, 2);
+INSERT INTO `t_driver_service` VALUES (5259, 85, 4);
+INSERT INTO `t_driver_service` VALUES (5260, 84, 2);
+INSERT INTO `t_driver_service` VALUES (5261, 84, 4);
+INSERT INTO `t_driver_service` VALUES (5262, 83, 2);
+INSERT INTO `t_driver_service` VALUES (5263, 83, 4);
+INSERT INTO `t_driver_service` VALUES (5264, 82, 2);
+INSERT INTO `t_driver_service` VALUES (5265, 82, 4);
+INSERT INTO `t_driver_service` VALUES (5266, 81, 2);
+INSERT INTO `t_driver_service` VALUES (5267, 81, 4);
+INSERT INTO `t_driver_service` VALUES (5268, 80, 2);
+INSERT INTO `t_driver_service` VALUES (5269, 80, 4);
+INSERT INTO `t_driver_service` VALUES (5270, 79, 2);
+INSERT INTO `t_driver_service` VALUES (5271, 79, 4);
+INSERT INTO `t_driver_service` VALUES (5272, 78, 2);
+INSERT INTO `t_driver_service` VALUES (5273, 78, 4);
+INSERT INTO `t_driver_service` VALUES (5274, 77, 2);
+INSERT INTO `t_driver_service` VALUES (5275, 77, 4);
+INSERT INTO `t_driver_service` VALUES (5276, 76, 2);
+INSERT INTO `t_driver_service` VALUES (5277, 76, 4);
+INSERT INTO `t_driver_service` VALUES (5278, 75, 2);
+INSERT INTO `t_driver_service` VALUES (5279, 75, 4);
+INSERT INTO `t_driver_service` VALUES (5280, 74, 2);
+INSERT INTO `t_driver_service` VALUES (5281, 74, 4);
+INSERT INTO `t_driver_service` VALUES (5282, 72, 2);
+INSERT INTO `t_driver_service` VALUES (5283, 72, 4);
+INSERT INTO `t_driver_service` VALUES (5284, 71, 2);
+INSERT INTO `t_driver_service` VALUES (5285, 71, 4);
+INSERT INTO `t_driver_service` VALUES (5286, 70, 2);
+INSERT INTO `t_driver_service` VALUES (5287, 70, 4);
+INSERT INTO `t_driver_service` VALUES (5288, 69, 2);
+INSERT INTO `t_driver_service` VALUES (5289, 69, 4);
+INSERT INTO `t_driver_service` VALUES (5290, 68, 2);
+INSERT INTO `t_driver_service` VALUES (5291, 68, 4);
+INSERT INTO `t_driver_service` VALUES (5292, 67, 2);
+INSERT INTO `t_driver_service` VALUES (5293, 67, 4);
+INSERT INTO `t_driver_service` VALUES (5294, 66, 2);
+INSERT INTO `t_driver_service` VALUES (5295, 66, 4);
+INSERT INTO `t_driver_service` VALUES (5296, 65, 2);
+INSERT INTO `t_driver_service` VALUES (5297, 65, 4);
+INSERT INTO `t_driver_service` VALUES (5298, 64, 2);
+INSERT INTO `t_driver_service` VALUES (5299, 64, 4);
+INSERT INTO `t_driver_service` VALUES (5300, 63, 2);
+INSERT INTO `t_driver_service` VALUES (5301, 63, 4);
+INSERT INTO `t_driver_service` VALUES (5302, 62, 2);
+INSERT INTO `t_driver_service` VALUES (5303, 62, 4);
+INSERT INTO `t_driver_service` VALUES (5304, 61, 2);
+INSERT INTO `t_driver_service` VALUES (5305, 61, 4);
+INSERT INTO `t_driver_service` VALUES (5306, 60, 2);
+INSERT INTO `t_driver_service` VALUES (5307, 60, 4);
+INSERT INTO `t_driver_service` VALUES (5310, 58, 2);
+INSERT INTO `t_driver_service` VALUES (5311, 58, 4);
+INSERT INTO `t_driver_service` VALUES (5312, 57, 2);
+INSERT INTO `t_driver_service` VALUES (5313, 57, 4);
+INSERT INTO `t_driver_service` VALUES (5314, 56, 2);
+INSERT INTO `t_driver_service` VALUES (5315, 56, 4);
+INSERT INTO `t_driver_service` VALUES (5316, 55, 2);
+INSERT INTO `t_driver_service` VALUES (5317, 55, 4);
+INSERT INTO `t_driver_service` VALUES (5320, 53, 2);
+INSERT INTO `t_driver_service` VALUES (5321, 53, 4);
+INSERT INTO `t_driver_service` VALUES (5322, 52, 2);
+INSERT INTO `t_driver_service` VALUES (5323, 52, 4);
+INSERT INTO `t_driver_service` VALUES (5324, 51, 2);
+INSERT INTO `t_driver_service` VALUES (5325, 51, 4);
+INSERT INTO `t_driver_service` VALUES (5326, 50, 2);
+INSERT INTO `t_driver_service` VALUES (5327, 50, 4);
+INSERT INTO `t_driver_service` VALUES (5328, 49, 2);
+INSERT INTO `t_driver_service` VALUES (5329, 49, 4);
+INSERT INTO `t_driver_service` VALUES (5330, 48, 2);
+INSERT INTO `t_driver_service` VALUES (5331, 48, 4);
+INSERT INTO `t_driver_service` VALUES (5332, 47, 2);
+INSERT INTO `t_driver_service` VALUES (5333, 47, 4);
+INSERT INTO `t_driver_service` VALUES (5334, 46, 2);
+INSERT INTO `t_driver_service` VALUES (5335, 46, 4);
+INSERT INTO `t_driver_service` VALUES (5336, 45, 2);
+INSERT INTO `t_driver_service` VALUES (5337, 45, 4);
+INSERT INTO `t_driver_service` VALUES (5338, 44, 2);
+INSERT INTO `t_driver_service` VALUES (5339, 44, 4);
+INSERT INTO `t_driver_service` VALUES (5340, 43, 2);
+INSERT INTO `t_driver_service` VALUES (5341, 43, 4);
+INSERT INTO `t_driver_service` VALUES (5342, 42, 2);
+INSERT INTO `t_driver_service` VALUES (5343, 42, 4);
+INSERT INTO `t_driver_service` VALUES (5344, 41, 2);
+INSERT INTO `t_driver_service` VALUES (5345, 41, 4);
+INSERT INTO `t_driver_service` VALUES (5346, 40, 2);
+INSERT INTO `t_driver_service` VALUES (5347, 40, 4);
+INSERT INTO `t_driver_service` VALUES (5348, 39, 2);
+INSERT INTO `t_driver_service` VALUES (5349, 39, 4);
+INSERT INTO `t_driver_service` VALUES (5350, 38, 2);
+INSERT INTO `t_driver_service` VALUES (5351, 38, 4);
+INSERT INTO `t_driver_service` VALUES (5352, 37, 2);
+INSERT INTO `t_driver_service` VALUES (5353, 37, 4);
+INSERT INTO `t_driver_service` VALUES (5354, 36, 2);
+INSERT INTO `t_driver_service` VALUES (5355, 36, 4);
+INSERT INTO `t_driver_service` VALUES (5356, 35, 2);
+INSERT INTO `t_driver_service` VALUES (5357, 35, 4);
+INSERT INTO `t_driver_service` VALUES (5358, 34, 2);
+INSERT INTO `t_driver_service` VALUES (5359, 34, 4);
+INSERT INTO `t_driver_service` VALUES (5360, 33, 2);
+INSERT INTO `t_driver_service` VALUES (5361, 33, 4);
+INSERT INTO `t_driver_service` VALUES (5362, 32, 2);
+INSERT INTO `t_driver_service` VALUES (5363, 32, 4);
+INSERT INTO `t_driver_service` VALUES (5364, 31, 2);
+INSERT INTO `t_driver_service` VALUES (5365, 31, 4);
+INSERT INTO `t_driver_service` VALUES (5366, 30, 2);
+INSERT INTO `t_driver_service` VALUES (5367, 30, 4);
+INSERT INTO `t_driver_service` VALUES (5370, 28, 2);
+INSERT INTO `t_driver_service` VALUES (5371, 28, 4);
+INSERT INTO `t_driver_service` VALUES (5372, 27, 2);
+INSERT INTO `t_driver_service` VALUES (5373, 27, 4);
+INSERT INTO `t_driver_service` VALUES (5374, 26, 2);
+INSERT INTO `t_driver_service` VALUES (5375, 26, 4);
+INSERT INTO `t_driver_service` VALUES (5376, 25, 2);
+INSERT INTO `t_driver_service` VALUES (5377, 25, 4);
+INSERT INTO `t_driver_service` VALUES (5378, 24, 2);
+INSERT INTO `t_driver_service` VALUES (5379, 24, 4);
+INSERT INTO `t_driver_service` VALUES (5380, 23, 2);
+INSERT INTO `t_driver_service` VALUES (5381, 23, 4);
+INSERT INTO `t_driver_service` VALUES (5382, 22, 2);
+INSERT INTO `t_driver_service` VALUES (5383, 22, 4);
+INSERT INTO `t_driver_service` VALUES (5384, 21, 2);
+INSERT INTO `t_driver_service` VALUES (5385, 21, 4);
+INSERT INTO `t_driver_service` VALUES (5386, 20, 2);
+INSERT INTO `t_driver_service` VALUES (5387, 20, 4);
+INSERT INTO `t_driver_service` VALUES (5388, 19, 2);
+INSERT INTO `t_driver_service` VALUES (5389, 19, 4);
+INSERT INTO `t_driver_service` VALUES (5390, 18, 2);
+INSERT INTO `t_driver_service` VALUES (5391, 18, 4);
+INSERT INTO `t_driver_service` VALUES (5392, 17, 2);
+INSERT INTO `t_driver_service` VALUES (5393, 17, 4);
+INSERT INTO `t_driver_service` VALUES (5394, 16, 2);
+INSERT INTO `t_driver_service` VALUES (5395, 16, 4);
+INSERT INTO `t_driver_service` VALUES (5396, 15, 2);
+INSERT INTO `t_driver_service` VALUES (5397, 15, 4);
+INSERT INTO `t_driver_service` VALUES (5398, 14, 2);
+INSERT INTO `t_driver_service` VALUES (5399, 14, 4);
+INSERT INTO `t_driver_service` VALUES (5400, 13, 2);
+INSERT INTO `t_driver_service` VALUES (5401, 13, 4);
+INSERT INTO `t_driver_service` VALUES (5402, 12, 2);
+INSERT INTO `t_driver_service` VALUES (5403, 12, 4);
+INSERT INTO `t_driver_service` VALUES (5404, 11, 2);
+INSERT INTO `t_driver_service` VALUES (5405, 11, 4);
+INSERT INTO `t_driver_service` VALUES (5406, 10, 2);
+INSERT INTO `t_driver_service` VALUES (5407, 10, 4);
+INSERT INTO `t_driver_service` VALUES (5408, 9, 2);
+INSERT INTO `t_driver_service` VALUES (5409, 9, 4);
+INSERT INTO `t_driver_service` VALUES (5412, 7, 2);
+INSERT INTO `t_driver_service` VALUES (5413, 7, 4);
+INSERT INTO `t_driver_service` VALUES (5414, 6, 2);
+INSERT INTO `t_driver_service` VALUES (5415, 6, 4);
+INSERT INTO `t_driver_service` VALUES (5416, 5, 2);
+INSERT INTO `t_driver_service` VALUES (5417, 5, 4);
+INSERT INTO `t_driver_service` VALUES (5418, 4, 2);
+INSERT INTO `t_driver_service` VALUES (5419, 4, 4);
+INSERT INTO `t_driver_service` VALUES (5420, 3, 2);
+INSERT INTO `t_driver_service` VALUES (5421, 3, 4);
+INSERT INTO `t_driver_service` VALUES (5422, 2, 2);
+INSERT INTO `t_driver_service` VALUES (5423, 2, 4);
+INSERT INTO `t_driver_service` VALUES (5424, 1, 2);
+INSERT INTO `t_driver_service` VALUES (5425, 1, 4);
+INSERT INTO `t_driver_service` VALUES (5426, 402, 2);
+INSERT INTO `t_driver_service` VALUES (5427, 402, 4);
+INSERT INTO `t_driver_service` VALUES (5428, 735, 2);
+INSERT INTO `t_driver_service` VALUES (5429, 735, 4);
+INSERT INTO `t_driver_service` VALUES (5432, 673, 2);
+INSERT INTO `t_driver_service` VALUES (5433, 673, 4);
+INSERT INTO `t_driver_service` VALUES (5434, 129, 2);
+INSERT INTO `t_driver_service` VALUES (5435, 129, 4);
+INSERT INTO `t_driver_service` VALUES (5436, 487, 2);
+INSERT INTO `t_driver_service` VALUES (5437, 487, 4);
+INSERT INTO `t_driver_service` VALUES (5438, 369, 2);
+INSERT INTO `t_driver_service` VALUES (5439, 369, 4);
+INSERT INTO `t_driver_service` VALUES (5440, 765, 2);
+INSERT INTO `t_driver_service` VALUES (5441, 765, 4);
+INSERT INTO `t_driver_service` VALUES (5442, 29, 2);
+INSERT INTO `t_driver_service` VALUES (5443, 29, 4);
+INSERT INTO `t_driver_service` VALUES (5444, 637, 2);
+INSERT INTO `t_driver_service` VALUES (5445, 637, 4);
+INSERT INTO `t_driver_service` VALUES (5446, 203, 2);
+INSERT INTO `t_driver_service` VALUES (5447, 203, 4);
+INSERT INTO `t_driver_service` VALUES (5448, 716, 2);
+INSERT INTO `t_driver_service` VALUES (5449, 716, 4);
+INSERT INTO `t_driver_service` VALUES (5450, 916, 2);
+INSERT INTO `t_driver_service` VALUES (5451, 916, 4);
+INSERT INTO `t_driver_service` VALUES (5454, 918, 2);
+INSERT INTO `t_driver_service` VALUES (5455, 918, 4);
+INSERT INTO `t_driver_service` VALUES (5458, 920, 2);
+INSERT INTO `t_driver_service` VALUES (5459, 920, 4);
+INSERT INTO `t_driver_service` VALUES (5460, 921, 2);
+INSERT INTO `t_driver_service` VALUES (5461, 921, 4);
+INSERT INTO `t_driver_service` VALUES (5462, 878, 2);
+INSERT INTO `t_driver_service` VALUES (5463, 878, 4);
+INSERT INTO `t_driver_service` VALUES (5464, 917, 2);
+INSERT INTO `t_driver_service` VALUES (5465, 917, 4);
+INSERT INTO `t_driver_service` VALUES (5466, 8, 2);
+INSERT INTO `t_driver_service` VALUES (5467, 8, 4);
+INSERT INTO `t_driver_service` VALUES (5468, 922, 2);
+INSERT INTO `t_driver_service` VALUES (5469, 922, 4);
+INSERT INTO `t_driver_service` VALUES (5470, 229, 2);
+INSERT INTO `t_driver_service` VALUES (5471, 229, 4);
+INSERT INTO `t_driver_service` VALUES (5472, 923, 2);
+INSERT INTO `t_driver_service` VALUES (5473, 923, 4);
+INSERT INTO `t_driver_service` VALUES (5474, 924, 2);
+INSERT INTO `t_driver_service` VALUES (5475, 924, 4);
+INSERT INTO `t_driver_service` VALUES (5476, 919, 2);
+INSERT INTO `t_driver_service` VALUES (5477, 919, 4);
+INSERT INTO `t_driver_service` VALUES (5478, 925, 2);
+INSERT INTO `t_driver_service` VALUES (5479, 925, 4);
+INSERT INTO `t_driver_service` VALUES (5480, 180, 2);
+INSERT INTO `t_driver_service` VALUES (5481, 180, 4);
+INSERT INTO `t_driver_service` VALUES (5482, 422, 2);
+INSERT INTO `t_driver_service` VALUES (5483, 422, 4);
+INSERT INTO `t_driver_service` VALUES (5486, 926, 2);
+INSERT INTO `t_driver_service` VALUES (5487, 926, 4);
+INSERT INTO `t_driver_service` VALUES (5490, 54, 2);
+INSERT INTO `t_driver_service` VALUES (5491, 54, 4);
+INSERT INTO `t_driver_service` VALUES (5492, 854, 2);
+INSERT INTO `t_driver_service` VALUES (5493, 854, 4);
+INSERT INTO `t_driver_service` VALUES (5494, 179, 2);
+INSERT INTO `t_driver_service` VALUES (5495, 179, 4);
+INSERT INTO `t_driver_service` VALUES (5496, 927, 2);
+INSERT INTO `t_driver_service` VALUES (5497, 927, 4);
+INSERT INTO `t_driver_service` VALUES (5498, 495, 2);
+INSERT INTO `t_driver_service` VALUES (5499, 495, 4);
+INSERT INTO `t_driver_service` VALUES (5500, 679, 2);
+INSERT INTO `t_driver_service` VALUES (5501, 679, 4);
+INSERT INTO `t_driver_service` VALUES (5502, 141, 2);
+INSERT INTO `t_driver_service` VALUES (5503, 141, 4);
+INSERT INTO `t_driver_service` VALUES (5504, 253, 2);
+INSERT INTO `t_driver_service` VALUES (5505, 253, 4);
+INSERT INTO `t_driver_service` VALUES (5506, 544, 2);
+INSERT INTO `t_driver_service` VALUES (5507, 544, 4);
+INSERT INTO `t_driver_service` VALUES (5508, 59, 2);
+INSERT INTO `t_driver_service` VALUES (5509, 59, 4);
+INSERT INTO `t_driver_service` VALUES (5510, 928, 2);
+INSERT INTO `t_driver_service` VALUES (5511, 928, 4);
+INSERT INTO `t_driver_service` VALUES (5512, 807, 2);
+INSERT INTO `t_driver_service` VALUES (5513, 807, 4);
+INSERT INTO `t_driver_service` VALUES (5514, 328, 2);
+INSERT INTO `t_driver_service` VALUES (5515, 328, 4);
+INSERT INTO `t_driver_service` VALUES (5516, 879, 2);
+INSERT INTO `t_driver_service` VALUES (5517, 879, 4);
+INSERT INTO `t_driver_service` VALUES (5518, 857, 2);
+INSERT INTO `t_driver_service` VALUES (5519, 857, 4);
+INSERT INTO `t_driver_service` VALUES (5520, 488, 2);
+INSERT INTO `t_driver_service` VALUES (5521, 488, 4);
+INSERT INTO `t_driver_service` VALUES (5522, 643, 2);
+INSERT INTO `t_driver_service` VALUES (5523, 643, 4);
+INSERT INTO `t_driver_service` VALUES (5524, 160, 2);
+INSERT INTO `t_driver_service` VALUES (5525, 160, 4);
+INSERT INTO `t_driver_service` VALUES (5528, 390, 2);
+INSERT INTO `t_driver_service` VALUES (5529, 390, 4);
+INSERT INTO `t_driver_service` VALUES (5530, 776, 2);
+INSERT INTO `t_driver_service` VALUES (5531, 776, 4);
+INSERT INTO `t_driver_service` VALUES (5532, 323, 2);
+INSERT INTO `t_driver_service` VALUES (5533, 323, 4);
+INSERT INTO `t_driver_service` VALUES (5534, 455, 2);
+INSERT INTO `t_driver_service` VALUES (5535, 455, 4);
+INSERT INTO `t_driver_service` VALUES (5536, 688, 2);
+INSERT INTO `t_driver_service` VALUES (5537, 688, 4);
+INSERT INTO `t_driver_service` VALUES (5538, 681, 2);
+INSERT INTO `t_driver_service` VALUES (5539, 681, 4);
+INSERT INTO `t_driver_service` VALUES (5540, 585, 2);
+INSERT INTO `t_driver_service` VALUES (5541, 585, 4);
+INSERT INTO `t_driver_service` VALUES (5542, 929, 2);
+INSERT INTO `t_driver_service` VALUES (5543, 929, 4);
+INSERT INTO `t_driver_service` VALUES (5544, 415, 2);
+INSERT INTO `t_driver_service` VALUES (5545, 415, 4);
+INSERT INTO `t_driver_service` VALUES (5556, 413, 2);
+INSERT INTO `t_driver_service` VALUES (5557, 413, 4);
+INSERT INTO `t_driver_service` VALUES (5566, 931, 2);
+INSERT INTO `t_driver_service` VALUES (5567, 931, 4);
+INSERT INTO `t_driver_service` VALUES (5570, 309, 2);
+INSERT INTO `t_driver_service` VALUES (5571, 309, 4);
+INSERT INTO `t_driver_service` VALUES (5574, 930, 2);
+INSERT INTO `t_driver_service` VALUES (5575, 930, 4);
+INSERT INTO `t_driver_service` VALUES (5578, 290, 2);
+INSERT INTO `t_driver_service` VALUES (5579, 290, 4);
+INSERT INTO `t_driver_service` VALUES (5580, 334, 2);
+INSERT INTO `t_driver_service` VALUES (5581, 334, 4);
+INSERT INTO `t_driver_service` VALUES (5582, 372, 2);
+INSERT INTO `t_driver_service` VALUES (5583, 372, 4);
+INSERT INTO `t_driver_service` VALUES (5584, 790, 2);
+INSERT INTO `t_driver_service` VALUES (5585, 790, 4);
+INSERT INTO `t_driver_service` VALUES (5586, 853, 2);
+INSERT INTO `t_driver_service` VALUES (5587, 853, 4);
+INSERT INTO `t_driver_service` VALUES (5588, 675, 2);
+INSERT INTO `t_driver_service` VALUES (5589, 675, 4);
+INSERT INTO `t_driver_service` VALUES (5590, 490, 2);
+INSERT INTO `t_driver_service` VALUES (5591, 490, 4);
+INSERT INTO `t_driver_service` VALUES (5592, 485, 2);
+INSERT INTO `t_driver_service` VALUES (5593, 485, 4);
+INSERT INTO `t_driver_service` VALUES (5594, 365, 2);
+INSERT INTO `t_driver_service` VALUES (5595, 365, 4);
+INSERT INTO `t_driver_service` VALUES (5596, 754, 2);
+INSERT INTO `t_driver_service` VALUES (5597, 754, 4);
+INSERT INTO `t_driver_service` VALUES (5598, 366, 2);
+INSERT INTO `t_driver_service` VALUES (5599, 366, 4);
+INSERT INTO `t_driver_service` VALUES (5600, 117, 2);
+INSERT INTO `t_driver_service` VALUES (5601, 117, 4);
+INSERT INTO `t_driver_service` VALUES (5602, 932, 2);
+INSERT INTO `t_driver_service` VALUES (5603, 932, 4);
+INSERT INTO `t_driver_service` VALUES (5604, 661, 2);
+INSERT INTO `t_driver_service` VALUES (5605, 661, 4);
+INSERT INTO `t_driver_service` VALUES (5606, 96, 2);
+INSERT INTO `t_driver_service` VALUES (5607, 96, 4);
+INSERT INTO `t_driver_service` VALUES (5608, 324, 2);
+INSERT INTO `t_driver_service` VALUES (5609, 324, 4);
+INSERT INTO `t_driver_service` VALUES (5610, 605, 2);
+INSERT INTO `t_driver_service` VALUES (5611, 605, 4);
+INSERT INTO `t_driver_service` VALUES (5612, 830, 2);
+INSERT INTO `t_driver_service` VALUES (5613, 830, 4);
+INSERT INTO `t_driver_service` VALUES (5614, 299, 2);
+INSERT INTO `t_driver_service` VALUES (5615, 299, 4);
+INSERT INTO `t_driver_service` VALUES (5616, 609, 2);
+INSERT INTO `t_driver_service` VALUES (5617, 609, 4);
+INSERT INTO `t_driver_service` VALUES (5618, 847, 2);
+INSERT INTO `t_driver_service` VALUES (5619, 847, 4);
+INSERT INTO `t_driver_service` VALUES (5620, 848, 2);
+INSERT INTO `t_driver_service` VALUES (5621, 848, 4);
+INSERT INTO `t_driver_service` VALUES (5622, 771, 2);
+INSERT INTO `t_driver_service` VALUES (5623, 771, 4);
+INSERT INTO `t_driver_service` VALUES (5624, 403, 2);
+INSERT INTO `t_driver_service` VALUES (5625, 403, 4);
+INSERT INTO `t_driver_service` VALUES (5626, 834, 2);
+INSERT INTO `t_driver_service` VALUES (5627, 834, 4);
+INSERT INTO `t_driver_service` VALUES (5628, 205, 2);
+INSERT INTO `t_driver_service` VALUES (5629, 205, 4);
+INSERT INTO `t_driver_service` VALUES (5630, 935, 1);
+INSERT INTO `t_driver_service` VALUES (5631, 936, 1);
+INSERT INTO `t_driver_service` VALUES (5632, 936, 2);
+INSERT INTO `t_driver_service` VALUES (5633, 936, 3);
+INSERT INTO `t_driver_service` VALUES (5634, 936, 4);
+INSERT INTO `t_driver_service` VALUES (5635, 936, 5);
+INSERT INTO `t_driver_service` VALUES (5636, 496, 2);
+INSERT INTO `t_driver_service` VALUES (5637, 496, 4);
+INSERT INTO `t_driver_service` VALUES (5638, 943, 2);
+INSERT INTO `t_driver_service` VALUES (5639, 943, 4);
+INSERT INTO `t_driver_service` VALUES (5640, 945, 2);
+INSERT INTO `t_driver_service` VALUES (5641, 948, 2);
+INSERT INTO `t_driver_service` VALUES (5642, 948, 4);
+INSERT INTO `t_driver_service` VALUES (5643, 949, 2);
+INSERT INTO `t_driver_service` VALUES (5644, 949, 4);
+INSERT INTO `t_driver_service` VALUES (5645, 950, 2);
+INSERT INTO `t_driver_service` VALUES (5646, 950, 4);
+INSERT INTO `t_driver_service` VALUES (5647, 337, 2);
+INSERT INTO `t_driver_service` VALUES (5648, 337, 4);
+INSERT INTO `t_driver_service` VALUES (5649, 951, 2);
+INSERT INTO `t_driver_service` VALUES (5650, 951, 1);
+INSERT INTO `t_driver_service` VALUES (5661, 960, 2);
+INSERT INTO `t_driver_service` VALUES (5662, 960, 4);
+INSERT INTO `t_driver_service` VALUES (5663, 961, 2);
+INSERT INTO `t_driver_service` VALUES (5664, 961, 4);
+INSERT INTO `t_driver_service` VALUES (5665, 957, 2);
+INSERT INTO `t_driver_service` VALUES (5666, 957, 4);
+INSERT INTO `t_driver_service` VALUES (5667, 958, 2);
+INSERT INTO `t_driver_service` VALUES (5668, 958, 4);
+INSERT INTO `t_driver_service` VALUES (5669, 959, 2);
+INSERT INTO `t_driver_service` VALUES (5670, 959, 4);
+INSERT INTO `t_driver_service` VALUES (5671, 956, 2);
+INSERT INTO `t_driver_service` VALUES (5672, 956, 4);
+INSERT INTO `t_driver_service` VALUES (5673, 955, 2);
+INSERT INTO `t_driver_service` VALUES (5674, 955, 4);
+INSERT INTO `t_driver_service` VALUES (5675, 906, 1);
+INSERT INTO `t_driver_service` VALUES (5676, 906, 3);
+INSERT INTO `t_driver_service` VALUES (5677, 905, 1);
+INSERT INTO `t_driver_service` VALUES (5692, 966, 1);
+INSERT INTO `t_driver_service` VALUES (5693, 966, 2);
+INSERT INTO `t_driver_service` VALUES (5694, 966, 3);
+
+-- ----------------------------
+-- Table structure for t_driver_train
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_train`;
+CREATE TABLE `t_driver_train`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `courseName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '课程名称',
+  `courseDate` datetime(0) NULL DEFAULT NULL COMMENT '培训时间',
+  `startTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '开始时间',
+  `stopTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '结束时间',
+  `duration` int(11) NULL DEFAULT NULL COMMENT '培训时长',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机培训记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_driver_train
+-- ----------------------------
+INSERT INTO `t_driver_train` VALUES (2, 966, '出行', '2020-11-07 00:00:00', '14:00:00', '17:00:00', 3);
+
+-- ----------------------------
+-- Table structure for t_driver_work
+-- ----------------------------
+DROP TABLE IF EXISTS `t_driver_work`;
+CREATE TABLE `t_driver_work`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '上班时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '下班时间',
+  `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `state` int(1) NULL DEFAULT NULL COMMENT '状态(1:上班,2:下班 )',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 286 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '司机上下班记录表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_driver_work
+-- ----------------------------
+INSERT INTO `t_driver_work` VALUES (1, 161, '2020-08-17 10:55:35', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (2, 904, '2020-08-17 19:01:53', '2020-08-17 19:08:16', '2', 2);
+INSERT INTO `t_driver_work` VALUES (3, 905, '2020-08-17 19:06:33', '2020-09-22 18:01:44', '2', 2);
+INSERT INTO `t_driver_work` VALUES (4, 904, '2020-08-17 19:12:36', '2020-08-17 19:16:05', '2', 2);
+INSERT INTO `t_driver_work` VALUES (5, 783, '2020-08-17 20:01:24', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (6, 403, '2020-08-17 20:04:28', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (7, 903, '2020-08-17 20:12:34', '2020-08-17 20:12:37', '2', 2);
+INSERT INTO `t_driver_work` VALUES (8, 903, '2020-08-17 20:12:39', '2020-08-17 20:12:41', '2', 2);
+INSERT INTO `t_driver_work` VALUES (9, 903, '2020-08-17 20:14:59', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (10, 155, '2020-08-18 12:21:26', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (11, 910, '2020-08-19 17:07:59', '2020-09-22 14:39:46', '2', 2);
+INSERT INTO `t_driver_work` VALUES (12, 913, '2020-08-20 15:42:38', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (13, 488, '2020-08-20 16:15:03', '2020-09-04 16:29:28', '2', 2);
+INSERT INTO `t_driver_work` VALUES (14, 906, '2020-08-20 17:32:22', '2020-08-20 17:33:44', '2', 2);
+INSERT INTO `t_driver_work` VALUES (15, 906, '2020-08-20 17:33:46', '2020-09-08 11:48:04', '2', 2);
+INSERT INTO `t_driver_work` VALUES (16, 73, '2020-08-21 12:44:59', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (17, 875, '2020-08-22 20:18:12', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (18, 894, '2020-08-22 20:42:33', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (19, 590, '2020-08-23 17:41:31', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (20, 798, '2020-08-27 14:00:03', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (21, 306, '2020-08-29 13:52:28', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (22, 8, '2020-08-29 14:19:52', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (23, 29, '2020-08-29 14:40:36', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (24, 369, '2020-08-29 15:03:47', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (25, 229, '2020-08-29 16:11:55', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (26, 765, '2020-08-29 16:18:31', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (27, 266, '2020-08-29 16:25:27', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (28, 203, '2020-08-29 16:29:57', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (29, 88, '2020-08-29 16:40:11', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (30, 637, '2020-08-29 16:41:37', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (31, 115, '2020-08-29 16:56:18', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (32, 26, '2020-08-29 17:15:30', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (33, 113, '2020-08-29 17:16:08', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (34, 867, '2020-08-29 19:32:38', '2020-08-29 19:32:42', '2', 2);
+INSERT INTO `t_driver_work` VALUES (35, 564, '2020-08-29 20:10:31', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (36, 390, '2020-08-30 04:07:59', '2020-09-04 15:30:49', '2', 2);
+INSERT INTO `t_driver_work` VALUES (37, 487, '2020-08-30 04:56:05', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (38, 696, '2020-08-30 05:02:34', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (39, 867, '2020-08-30 21:16:27', '2020-08-30 21:16:39', '2', 2);
+INSERT INTO `t_driver_work` VALUES (40, 399, '2020-08-31 06:23:57', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (41, 867, '2020-08-31 11:08:38', '2020-08-31 11:09:45', '2', 2);
+INSERT INTO `t_driver_work` VALUES (42, 867, '2020-08-31 15:15:55', '2020-08-31 15:25:23', '2', 2);
+INSERT INTO `t_driver_work` VALUES (43, 920, '2020-09-01 13:14:53', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (44, 548, '2020-09-01 15:39:57', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (45, 492, '2020-09-01 16:31:54', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (46, 583, '2020-09-02 16:17:37', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (47, 504, '2020-09-02 16:25:14', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (48, 924, '2020-09-02 17:38:16', '2020-09-02 17:40:12', '2', 2);
+INSERT INTO `t_driver_work` VALUES (49, 924, '2020-09-02 17:43:06', '2020-09-02 17:47:20', '2', 2);
+INSERT INTO `t_driver_work` VALUES (50, 422, '2020-09-04 13:31:37', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (51, 179, '2020-09-04 14:44:00', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (52, 59, '2020-09-04 14:58:28', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (53, 54, '2020-09-04 15:11:25', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (54, 495, '2020-09-04 15:34:25', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (55, 302, '2020-09-04 16:01:34', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (56, 160, '2020-09-04 16:05:03', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (57, 328, '2020-09-04 16:05:37', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (58, 679, '2020-09-04 16:08:23', '2020-09-04 17:17:53', '2', 2);
+INSERT INTO `t_driver_work` VALUES (59, 496, '2020-09-04 16:15:56', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (60, 879, '2020-09-04 16:19:50', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (61, 253, '2020-09-04 16:50:41', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (62, 61, '2020-09-04 16:51:25', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (63, 309, '2020-09-04 16:55:36', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (64, 640, '2020-09-04 17:06:00', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (65, 776, '2020-09-04 17:11:44', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (66, 643, '2020-09-04 17:12:45', '2020-09-04 17:12:53', '2', 2);
+INSERT INTO `t_driver_work` VALUES (67, 643, '2020-09-04 17:13:07', '2020-09-05 03:08:37', '2', 2);
+INSERT INTO `t_driver_work` VALUES (68, 140, '2020-09-04 17:13:18', '2020-09-10 13:11:15', '2', 2);
+INSERT INTO `t_driver_work` VALUES (69, 348, '2020-09-04 17:13:48', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (70, 336, '2020-09-04 17:25:32', '2020-09-04 17:25:50', '2', 2);
+INSERT INTO `t_driver_work` VALUES (71, 502, '2020-09-04 17:32:51', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (72, 373, '2020-09-04 17:59:25', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (73, 322, '2020-09-04 18:09:05', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (74, 344, '2020-09-04 18:09:17', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (75, 607, '2020-09-04 18:26:13', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (76, 779, '2020-09-04 18:40:13', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (77, 456, '2020-09-04 19:30:50', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (78, 679, '2020-09-04 19:39:48', '2020-09-04 19:39:53', '2', 2);
+INSERT INTO `t_driver_work` VALUES (79, 123, '2020-09-04 19:45:24', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (80, 351, '2020-09-04 20:16:39', '2020-09-04 23:14:47', '2', 2);
+INSERT INTO `t_driver_work` VALUES (81, 335, '2020-09-04 20:19:13', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (82, 681, '2020-09-04 20:30:25', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (83, 924, '2020-09-04 20:34:00', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (84, 423, '2020-09-04 20:38:42', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (85, 264, '2020-09-04 20:42:03', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (86, 598, '2020-09-04 20:43:39', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (87, 215, '2020-09-04 20:50:53', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (88, 378, '2020-09-04 20:53:49', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (89, 585, '2020-09-04 21:10:13', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (90, 206, '2020-09-04 21:13:44', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (91, 132, '2020-09-04 21:32:23', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (92, 80, '2020-09-04 21:40:50', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (93, 415, '2020-09-04 21:52:51', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (94, 323, '2020-09-04 22:37:17', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (95, 63, '2020-09-04 23:04:31', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (96, 141, '2020-09-04 23:14:46', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (97, 351, '2020-09-04 23:14:53', '2020-09-04 23:14:57', '2', 2);
+INSERT INTO `t_driver_work` VALUES (98, 351, '2020-09-04 23:16:30', '2020-09-04 23:16:33', '2', 2);
+INSERT INTO `t_driver_work` VALUES (99, 688, '2020-09-05 03:25:56', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (100, 643, '2020-09-05 03:52:46', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (101, 390, '2020-09-05 04:54:36', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (102, 372, '2020-09-05 05:27:37', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (103, 166, '2020-09-05 05:39:52', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (104, 488, '2020-09-05 06:00:16', '2020-09-08 20:57:40', '2', 2);
+INSERT INTO `t_driver_work` VALUES (105, 336, '2020-09-05 06:26:05', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (106, 52, '2020-09-05 06:56:22', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (107, 576, '2020-09-05 07:19:08', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (108, 579, '2020-09-05 07:49:22', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (109, 351, '2020-09-05 08:00:28', '2020-09-05 08:00:42', '2', 2);
+INSERT INTO `t_driver_work` VALUES (110, 790, '2020-09-05 08:55:12', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (111, 351, '2020-09-05 09:09:24', '2020-09-05 14:43:41', '2', 2);
+INSERT INTO `t_driver_work` VALUES (112, 455, '2020-09-05 09:44:18', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (113, 675, '2020-09-05 13:20:07', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (114, 117, '2020-09-05 13:48:48', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (115, 485, '2020-09-05 13:49:20', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (116, 754, '2020-09-05 14:21:46', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (117, 661, '2020-09-05 14:24:53', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (118, 393, '2020-09-05 14:31:01', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (119, 96, '2020-09-05 14:34:42', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (120, 366, '2020-09-05 14:39:58', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (121, 334, '2020-09-05 15:16:20', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (122, 413, '2020-09-05 15:17:40', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (123, 324, '2020-09-05 15:30:39', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (124, 290, '2020-09-05 15:34:57', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (125, 605, '2020-09-05 15:55:14', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (126, 375, '2020-09-05 16:06:28', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (127, 299, '2020-09-05 16:11:46', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (128, 609, '2020-09-05 16:20:44', '2020-09-05 16:27:06', '2', 2);
+INSERT INTO `t_driver_work` VALUES (129, 771, '2020-09-05 16:25:26', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (130, 609, '2020-09-05 16:27:12', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (131, 575, '2020-09-05 16:28:17', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (132, 679, '2020-09-05 16:34:26', '2020-09-05 17:53:52', '2', 2);
+INSERT INTO `t_driver_work` VALUES (133, 830, '2020-09-05 16:36:34', '2020-09-05 16:36:37', '2', 2);
+INSERT INTO `t_driver_work` VALUES (134, 830, '2020-09-05 16:36:44', '2020-09-05 17:11:05', '4', 2);
+INSERT INTO `t_driver_work` VALUES (135, 801, '2020-09-05 18:14:51', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (136, 318, '2020-09-05 18:29:09', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (137, 333, '2020-09-05 18:41:08', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (138, 208, '2020-09-05 19:10:50', '2020-09-06 05:50:14', '2', 2);
+INSERT INTO `t_driver_work` VALUES (139, 270, '2020-09-05 19:12:23', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (140, 490, '2020-09-05 19:46:20', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (141, 142, '2020-09-05 19:56:48', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (142, 679, '2020-09-05 19:57:03', '2020-09-07 18:05:37', '2', 2);
+INSERT INTO `t_driver_work` VALUES (143, 710, '2020-09-05 20:40:46', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (144, 312, '2020-09-05 20:51:03', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (145, 927, '2020-09-05 21:26:28', '2020-09-06 14:59:19', '2', 2);
+INSERT INTO `t_driver_work` VALUES (146, 337, '2020-09-06 08:03:24', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (147, 930, '2020-09-06 08:19:32', '2020-09-06 08:19:42', '2', 2);
+INSERT INTO `t_driver_work` VALUES (148, 930, '2020-09-06 08:20:37', '2020-09-11 15:28:06', '2', 2);
+INSERT INTO `t_driver_work` VALUES (149, 351, '2020-09-06 08:40:57', '2020-09-12 17:11:19', '2', 2);
+INSERT INTO `t_driver_work` VALUES (150, 208, '2020-09-06 08:45:37', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (151, 927, '2020-09-06 14:59:22', '2020-09-07 06:38:50', '2', 2);
+INSERT INTO `t_driver_work` VALUES (152, 461, '2020-09-06 15:26:59', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (153, 898, '2020-09-06 16:37:19', '2020-09-06 16:37:35', '2', 2);
+INSERT INTO `t_driver_work` VALUES (154, 898, '2020-09-06 17:00:58', '2020-09-06 17:44:25', '2', 2);
+INSERT INTO `t_driver_work` VALUES (155, 301, '2020-09-06 18:13:09', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (156, 928, '2020-09-07 05:40:45', '2020-09-10 14:23:07', '2', 2);
+INSERT INTO `t_driver_work` VALUES (157, 927, '2020-09-07 06:38:53', '2020-09-07 19:29:51', '2', 2);
+INSERT INTO `t_driver_work` VALUES (158, 374, '2020-09-07 18:11:53', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (159, 660, '2020-09-07 18:42:54', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (160, 927, '2020-09-07 19:29:53', '2020-09-07 21:07:41', '2', 2);
+INSERT INTO `t_driver_work` VALUES (161, 602, '2020-09-07 19:47:46', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (162, 768, '2020-09-08 06:54:26', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (163, 927, '2020-09-08 07:59:45', '2020-09-08 20:57:28', '2', 2);
+INSERT INTO `t_driver_work` VALUES (164, 830, '2020-09-08 08:05:59', '2020-09-08 08:06:09', '2', 2);
+INSERT INTO `t_driver_work` VALUES (165, 830, '2020-09-08 08:06:17', '2020-09-08 08:28:45', '2', 2);
+INSERT INTO `t_driver_work` VALUES (166, 830, '2020-09-08 08:57:52', '2020-09-08 09:05:17', '2', 2);
+INSERT INTO `t_driver_work` VALUES (167, 830, '2020-09-08 09:27:45', '2020-09-08 10:23:03', '2', 2);
+INSERT INTO `t_driver_work` VALUES (168, 679, '2020-09-08 09:39:04', '2020-09-08 09:39:15', '2', 2);
+INSERT INTO `t_driver_work` VALUES (169, 830, '2020-09-08 10:34:14', '2020-09-08 10:35:28', '2', 2);
+INSERT INTO `t_driver_work` VALUES (170, 830, '2020-09-08 10:39:50', '2020-09-08 11:28:41', '2', 2);
+INSERT INTO `t_driver_work` VALUES (171, 205, '2020-09-08 11:03:40', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (172, 365, '2020-09-08 11:05:13', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (173, 18, '2020-09-08 11:57:17', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (174, 830, '2020-09-08 12:27:53', '2020-09-08 13:03:36', '2', 2);
+INSERT INTO `t_driver_work` VALUES (175, 932, '2020-09-08 12:34:19', '2020-09-09 10:11:09', '2', 2);
+INSERT INTO `t_driver_work` VALUES (176, 736, '2020-09-08 13:02:07', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (177, 830, '2020-09-08 13:07:43', '2020-09-08 13:52:48', '4', 2);
+INSERT INTO `t_driver_work` VALUES (178, 830, '2020-09-08 14:22:17', '2020-09-08 14:34:06', '4', 2);
+INSERT INTO `t_driver_work` VALUES (179, 830, '2020-09-08 15:03:30', '2020-09-08 15:04:43', '2', 2);
+INSERT INTO `t_driver_work` VALUES (180, 830, '2020-09-08 15:46:34', '2020-09-08 16:14:52', '2', 2);
+INSERT INTO `t_driver_work` VALUES (181, 223, '2020-09-08 15:51:53', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (182, 830, '2020-09-08 17:08:31', '2020-09-08 17:08:32', '2', 2);
+INSERT INTO `t_driver_work` VALUES (183, 830, '2020-09-08 17:08:42', '2020-09-08 17:30:42', '2', 2);
+INSERT INTO `t_driver_work` VALUES (184, 15, '2020-09-08 18:58:38', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (185, 792, '2020-09-08 20:38:53', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (186, 488, '2020-09-09 05:59:16', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (187, 927, '2020-09-09 06:04:24', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (188, 830, '2020-09-09 08:33:17', '2020-09-09 08:38:07', '2', 2);
+INSERT INTO `t_driver_work` VALUES (189, 830, '2020-09-09 09:01:45', '2020-09-09 09:31:55', '2', 2);
+INSERT INTO `t_driver_work` VALUES (190, 303, '2020-09-09 09:38:43', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (191, 830, '2020-09-09 09:39:44', '2020-09-09 09:52:05', '2', 2);
+INSERT INTO `t_driver_work` VALUES (192, 830, '2020-09-09 09:52:12', '2020-09-09 10:54:07', '4', 2);
+INSERT INTO `t_driver_work` VALUES (193, 932, '2020-09-09 10:11:11', '2020-09-18 05:24:25', '2', 2);
+INSERT INTO `t_driver_work` VALUES (194, 830, '2020-09-09 10:54:18', '2020-09-09 12:12:43', '2', 2);
+INSERT INTO `t_driver_work` VALUES (195, 830, '2020-09-09 12:37:32', '2020-09-09 13:15:41', '2', 2);
+INSERT INTO `t_driver_work` VALUES (196, 883, '2020-09-09 14:51:34', '2020-09-09 14:51:37', '2', 2);
+INSERT INTO `t_driver_work` VALUES (197, 883, '2020-09-09 14:53:36', '2020-09-09 14:54:28', '2', 2);
+INSERT INTO `t_driver_work` VALUES (198, 882, '2020-09-09 15:15:15', '2020-09-09 15:20:22', '2', 2);
+INSERT INTO `t_driver_work` VALUES (199, 818, '2020-09-09 15:18:53', '2020-09-09 15:19:39', '2', 2);
+INSERT INTO `t_driver_work` VALUES (200, 818, '2020-09-09 15:19:41', '2020-09-09 15:19:47', '2', 2);
+INSERT INTO `t_driver_work` VALUES (201, 830, '2020-09-09 15:28:47', '2020-09-09 15:35:11', '2', 2);
+INSERT INTO `t_driver_work` VALUES (202, 830, '2020-09-09 15:45:41', '2020-09-09 15:50:39', '2', 2);
+INSERT INTO `t_driver_work` VALUES (203, 830, '2020-09-09 16:01:57', '2020-09-09 16:02:49', '2', 2);
+INSERT INTO `t_driver_work` VALUES (204, 883, '2020-09-09 16:16:34', '2020-09-09 20:24:23', '2', 2);
+INSERT INTO `t_driver_work` VALUES (205, 830, '2020-09-09 16:30:24', '2020-09-09 16:45:25', '2', 2);
+INSERT INTO `t_driver_work` VALUES (206, 818, '2020-09-09 16:39:09', '2020-09-09 17:19:45', '2', 2);
+INSERT INTO `t_driver_work` VALUES (207, 818, '2020-09-09 17:19:48', '2020-09-10 13:24:04', '2', 2);
+INSERT INTO `t_driver_work` VALUES (208, 882, '2020-09-10 00:10:45', '2020-09-10 00:15:19', '2', 2);
+INSERT INTO `t_driver_work` VALUES (209, 883, '2020-09-10 08:29:55', '2020-09-11 13:06:36', '2', 2);
+INSERT INTO `t_driver_work` VALUES (210, 830, '2020-09-10 09:01:35', '2020-09-10 09:14:23', '2', 2);
+INSERT INTO `t_driver_work` VALUES (211, 830, '2020-09-10 09:25:08', '2020-09-10 09:27:46', '2', 2);
+INSERT INTO `t_driver_work` VALUES (212, 830, '2020-09-10 10:35:30', '2020-09-10 10:40:14', '2', 2);
+INSERT INTO `t_driver_work` VALUES (213, 140, '2020-09-10 13:21:24', '2020-09-10 14:18:21', '2', 2);
+INSERT INTO `t_driver_work` VALUES (214, 830, '2020-09-10 13:50:17', '2020-09-10 13:51:08', '2', 2);
+INSERT INTO `t_driver_work` VALUES (215, 830, '2020-09-10 13:51:47', '2020-09-10 13:58:10', '2', 2);
+INSERT INTO `t_driver_work` VALUES (216, 830, '2020-09-10 14:15:04', '2020-09-10 14:15:07', '2', 2);
+INSERT INTO `t_driver_work` VALUES (217, 830, '2020-09-10 14:15:35', '2020-09-10 14:15:41', '2', 2);
+INSERT INTO `t_driver_work` VALUES (218, 830, '2020-09-10 14:15:55', '2020-09-10 14:16:00', '2', 2);
+INSERT INTO `t_driver_work` VALUES (219, 928, '2020-09-10 14:23:20', '2020-09-10 14:23:31', '2', 2);
+INSERT INTO `t_driver_work` VALUES (220, 140, '2020-09-10 14:33:45', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (221, 830, '2020-09-10 14:57:12', '2020-09-10 15:18:22', '2', 2);
+INSERT INTO `t_driver_work` VALUES (222, 906, '2020-09-10 15:07:22', '2020-09-22 15:14:08', '2', 2);
+INSERT INTO `t_driver_work` VALUES (223, 830, '2020-09-10 15:25:43', '2020-09-10 17:48:38', '2', 2);
+INSERT INTO `t_driver_work` VALUES (224, 400, '2020-09-10 17:10:25', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (225, 37, '2020-09-10 18:04:19', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (226, 929, '2020-09-10 18:12:35', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (227, 928, '2020-09-10 19:08:13', '2020-09-10 19:08:38', '2', 2);
+INSERT INTO `t_driver_work` VALUES (228, 928, '2020-09-10 19:08:41', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (229, 175, '2020-09-10 19:35:33', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (230, 679, '2020-09-10 21:41:12', '2020-09-16 11:17:26', '2', 2);
+INSERT INTO `t_driver_work` VALUES (231, 830, '2020-09-11 12:50:19', '2020-09-11 13:18:14', '2', 2);
+INSERT INTO `t_driver_work` VALUES (232, 830, '2020-09-11 13:34:44', '2020-09-11 13:46:49', '2', 2);
+INSERT INTO `t_driver_work` VALUES (233, 830, '2020-09-11 14:00:06', '2020-09-11 14:04:38', '2', 2);
+INSERT INTO `t_driver_work` VALUES (234, 830, '2020-09-11 14:52:01', '2020-09-11 14:53:40', '2', 2);
+INSERT INTO `t_driver_work` VALUES (235, 830, '2020-09-11 15:00:41', '2020-09-11 15:20:00', '2', 2);
+INSERT INTO `t_driver_work` VALUES (236, 830, '2020-09-11 15:20:02', '2020-09-11 15:34:10', '2', 2);
+INSERT INTO `t_driver_work` VALUES (237, 930, '2020-09-11 15:28:43', '2020-09-12 09:51:04', '2', 2);
+INSERT INTO `t_driver_work` VALUES (238, 830, '2020-09-11 15:54:07', '2020-09-11 15:55:58', '2', 2);
+INSERT INTO `t_driver_work` VALUES (239, 830, '2020-09-11 16:05:06', '2020-09-11 16:11:48', '2', 2);
+INSERT INTO `t_driver_work` VALUES (240, 883, '2020-09-12 00:31:34', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (241, 830, '2020-09-12 08:27:30', '2020-09-12 08:43:22', '2', 2);
+INSERT INTO `t_driver_work` VALUES (242, 818, '2020-09-12 08:45:44', '2020-09-12 08:46:12', '2', 2);
+INSERT INTO `t_driver_work` VALUES (243, 830, '2020-09-12 09:16:17', '2020-09-12 09:17:01', '2', 2);
+INSERT INTO `t_driver_work` VALUES (244, 818, '2020-09-12 09:16:24', '2020-09-16 10:18:32', '2', 2);
+INSERT INTO `t_driver_work` VALUES (245, 830, '2020-09-12 10:26:25', '2020-09-12 10:47:17', '2', 2);
+INSERT INTO `t_driver_work` VALUES (246, 830, '2020-09-12 11:17:15', '2020-09-12 11:19:54', '2', 2);
+INSERT INTO `t_driver_work` VALUES (247, 830, '2020-09-12 13:14:25', '2020-09-12 14:15:45', '2', 2);
+INSERT INTO `t_driver_work` VALUES (248, 830, '2020-09-12 14:22:48', '2020-09-12 14:50:54', '2', 2);
+INSERT INTO `t_driver_work` VALUES (249, 830, '2020-09-12 15:30:21', '2020-09-13 10:29:18', '2', 2);
+INSERT INTO `t_driver_work` VALUES (250, 405, '2020-09-12 18:27:11', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (251, 351, '2020-09-12 21:21:54', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (252, 23, '2020-09-13 08:36:35', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (253, 830, '2020-09-13 10:50:16', '2020-09-15 11:41:03', '2', 2);
+INSERT INTO `t_driver_work` VALUES (254, 383, '2020-09-14 21:09:54', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (255, 291, '2020-09-16 07:06:58', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (256, 867, '2020-09-16 23:45:07', '2020-09-16 23:45:12', '2', 2);
+INSERT INTO `t_driver_work` VALUES (257, 818, '2020-09-17 00:09:42', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (258, 932, '2020-09-18 06:58:42', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (259, 960, '2020-09-18 12:26:29', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (260, 961, '2020-09-18 13:47:48', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (261, 122, '2020-09-19 09:11:14', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (262, 51, '2020-09-20 08:17:04', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (263, 930, '2020-09-20 09:47:20', '2020-09-20 09:49:56', '2', 2);
+INSERT INTO `t_driver_work` VALUES (264, 930, '2020-09-20 09:50:51', '2020-09-20 09:51:21', '2', 2);
+INSERT INTO `t_driver_work` VALUES (265, 930, '2020-09-20 09:51:25', '2020-09-20 11:36:43', '2', 2);
+INSERT INTO `t_driver_work` VALUES (266, 930, '2020-09-20 11:53:47', '2020-09-20 12:40:03', '2', 2);
+INSERT INTO `t_driver_work` VALUES (267, 930, '2020-09-20 16:13:39', NULL, '2', 1);
+INSERT INTO `t_driver_work` VALUES (268, 910, '2020-09-22 14:39:48', '2020-09-22 14:51:58', '2', 2);
+INSERT INTO `t_driver_work` VALUES (269, 910, '2020-09-22 14:52:03', NULL, '1', 1);
+INSERT INTO `t_driver_work` VALUES (270, 906, '2020-09-22 15:15:59', '2020-09-22 15:49:01', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (271, 906, '2020-09-22 15:49:16', '2020-09-22 15:56:58', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (272, 906, '2020-09-22 15:57:03', '2020-09-22 16:02:30', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (273, 906, '2020-09-22 16:02:37', '2020-09-22 16:56:43', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (274, 906, '2020-09-22 16:57:21', '2020-09-22 16:57:52', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (275, 906, '2020-09-22 16:57:57', '2020-09-22 17:53:58', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (276, 906, '2020-09-22 17:54:03', '2020-09-23 14:54:38', '2,1,3', 2);
+INSERT INTO `t_driver_work` VALUES (277, 905, '2020-09-22 18:01:51', '2020-09-22 18:18:50', '2,4,1', 2);
+INSERT INTO `t_driver_work` VALUES (278, 905, '2020-09-22 18:18:55', '2020-09-22 18:28:54', '2,4,1', 2);
+INSERT INTO `t_driver_work` VALUES (279, 905, '2020-09-22 18:29:00', '2020-09-23 14:51:36', '2,4,1', 2);
+INSERT INTO `t_driver_work` VALUES (280, 905, '2020-09-23 14:51:53', '2020-09-23 14:52:05', '4,2,1', 2);
+INSERT INTO `t_driver_work` VALUES (281, 905, '2020-09-23 14:52:26', '2020-09-23 14:52:39', '2,4,1', 2);
+INSERT INTO `t_driver_work` VALUES (282, 905, '2020-09-23 14:53:07', '2020-09-23 14:55:38', '2,4,1', 2);
+INSERT INTO `t_driver_work` VALUES (283, 906, '2020-09-23 14:57:15', NULL, '2,1,3', 1);
+INSERT INTO `t_driver_work` VALUES (284, 905, '2020-09-23 14:57:32', '2020-09-23 15:36:46', '2,1,4', 2);
+INSERT INTO `t_driver_work` VALUES (285, 905, '2020-09-23 15:36:52', NULL, '2,4,1', 1);
+
+-- ----------------------------
+-- Table structure for t_feedback
+-- ----------------------------
+DROP TABLE IF EXISTS `t_feedback`;
+CREATE TABLE `t_feedback`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userId` int(11) NULL DEFAULT NULL COMMENT '反馈人ID',
+  `handleUserId` int(11) NULL DEFAULT NULL COMMENT '处理人Id',
+  `content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '反馈内容',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '反馈时间',
+  `imgUrl` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '图片',
+  `flag` int(1) NULL DEFAULT 1 COMMENT '状态(1=正常,2=删除)',
+  `state` int(1) NULL DEFAULT 1 COMMENT '处理状态 1=未处理 2=已处理',
+  `cldate` datetime(0) NULL DEFAULT NULL COMMENT '处理时间',
+  `remark` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '处理备注',
+  `type` smallint(1) NULL DEFAULT 1 COMMENT '1=用户,2=司机',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 62 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '反馈管理' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_feedback
+-- ----------------------------
+INSERT INTO `t_feedback` VALUES (61, 194, NULL, '客服电话没有!', '2020-08-31 09:18:22', NULL, 1, 1, NULL, NULL, 1);
+
+-- ----------------------------
+-- Table structure for t_gdinterface
+-- ----------------------------
+DROP TABLE IF EXISTS `t_gdinterface`;
+CREATE TABLE `t_gdinterface`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '接口名称',
+  `explanation` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '接口说明',
+  `num` int(11) NULL DEFAULT NULL COMMENT '调用次数',
+  `time` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '调用日期',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 147 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '高德免费接口调用统计' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_gdinterface
+-- ----------------------------
+INSERT INTO `t_gdinterface` VALUES (66, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 4078, '2020-08-17');
+INSERT INTO `t_gdinterface` VALUES (67, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 48, '2020-08-17');
+INSERT INTO `t_gdinterface` VALUES (68, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 13413, '2020-08-18');
+INSERT INTO `t_gdinterface` VALUES (72, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 28, '2020-08-18');
+INSERT INTO `t_gdinterface` VALUES (73, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 13319, '2020-08-19');
+INSERT INTO `t_gdinterface` VALUES (74, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 96, '2020-08-19');
+INSERT INTO `t_gdinterface` VALUES (75, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 19813, '2020-08-20');
+INSERT INTO `t_gdinterface` VALUES (76, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 19, '2020-08-20');
+INSERT INTO `t_gdinterface` VALUES (77, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 54, '2020-08-21');
+INSERT INTO `t_gdinterface` VALUES (78, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 4419, '2020-08-21');
+INSERT INTO `t_gdinterface` VALUES (79, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 21, '2020-08-22');
+INSERT INTO `t_gdinterface` VALUES (80, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 370, '2020-08-22');
+INSERT INTO `t_gdinterface` VALUES (81, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 34, '2020-08-24');
+INSERT INTO `t_gdinterface` VALUES (82, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 23, '2020-08-27');
+INSERT INTO `t_gdinterface` VALUES (83, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 411, '2020-08-29');
+INSERT INTO `t_gdinterface` VALUES (84, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 18, '2020-08-29');
+INSERT INTO `t_gdinterface` VALUES (85, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 893, '2020-08-30');
+INSERT INTO `t_gdinterface` VALUES (86, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 44, '2020-08-30');
+INSERT INTO `t_gdinterface` VALUES (87, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 5771, '2020-08-31');
+INSERT INTO `t_gdinterface` VALUES (88, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 28, '2020-08-31');
+INSERT INTO `t_gdinterface` VALUES (89, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 1767, '2020-09-01');
+INSERT INTO `t_gdinterface` VALUES (90, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 2, '2020-09-01');
+INSERT INTO `t_gdinterface` VALUES (91, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 1, '2020-09-01');
+INSERT INTO `t_gdinterface` VALUES (92, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 9678, '2020-09-02');
+INSERT INTO `t_gdinterface` VALUES (93, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 110, '2020-09-02');
+INSERT INTO `t_gdinterface` VALUES (94, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 1582, '2020-09-03');
+INSERT INTO `t_gdinterface` VALUES (95, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 7, '2020-09-03');
+INSERT INTO `t_gdinterface` VALUES (96, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 19317, '2020-09-04');
+INSERT INTO `t_gdinterface` VALUES (97, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 76, '2020-09-04');
+INSERT INTO `t_gdinterface` VALUES (98, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 51121, '2020-09-05');
+INSERT INTO `t_gdinterface` VALUES (99, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 123, '2020-09-05');
+INSERT INTO `t_gdinterface` VALUES (100, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 34514, '2020-09-06');
+INSERT INTO `t_gdinterface` VALUES (101, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 10, '2020-09-06');
+INSERT INTO `t_gdinterface` VALUES (102, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 60973, '2020-09-07');
+INSERT INTO `t_gdinterface` VALUES (103, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 49, '2020-09-07');
+INSERT INTO `t_gdinterface` VALUES (104, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 38798, '2020-09-08');
+INSERT INTO `t_gdinterface` VALUES (105, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 20, '2020-09-08');
+INSERT INTO `t_gdinterface` VALUES (106, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 10899, '2020-09-09');
+INSERT INTO `t_gdinterface` VALUES (107, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 35, '2020-09-09');
+INSERT INTO `t_gdinterface` VALUES (108, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 35812, '2020-09-10');
+INSERT INTO `t_gdinterface` VALUES (109, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 146, '2020-09-10');
+INSERT INTO `t_gdinterface` VALUES (110, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 38643, '2020-09-11');
+INSERT INTO `t_gdinterface` VALUES (111, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 190, '2020-09-11');
+INSERT INTO `t_gdinterface` VALUES (112, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 24644, '2020-09-12');
+INSERT INTO `t_gdinterface` VALUES (113, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 105, '2020-09-12');
+INSERT INTO `t_gdinterface` VALUES (114, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 12584, '2020-09-13');
+INSERT INTO `t_gdinterface` VALUES (115, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 18, '2020-09-13');
+INSERT INTO `t_gdinterface` VALUES (116, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 15754, '2020-09-14');
+INSERT INTO `t_gdinterface` VALUES (117, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 7, '2020-09-14');
+INSERT INTO `t_gdinterface` VALUES (118, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 17011, '2020-09-15');
+INSERT INTO `t_gdinterface` VALUES (119, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 9, '2020-09-15');
+INSERT INTO `t_gdinterface` VALUES (120, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 18401, '2020-09-16');
+INSERT INTO `t_gdinterface` VALUES (121, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 22, '2020-09-16');
+INSERT INTO `t_gdinterface` VALUES (122, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 11970, '2020-09-17');
+INSERT INTO `t_gdinterface` VALUES (123, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 16, '2020-09-17');
+INSERT INTO `t_gdinterface` VALUES (124, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 20186, '2020-09-18');
+INSERT INTO `t_gdinterface` VALUES (125, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 2, '2020-09-18');
+INSERT INTO `t_gdinterface` VALUES (127, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 13076, '2020-09-19');
+INSERT INTO `t_gdinterface` VALUES (128, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 6, '2020-09-19');
+INSERT INTO `t_gdinterface` VALUES (129, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 11973, '2020-09-20');
+INSERT INTO `t_gdinterface` VALUES (130, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 3720, '2020-09-21');
+INSERT INTO `t_gdinterface` VALUES (131, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 82, '2020-09-21');
+INSERT INTO `t_gdinterface` VALUES (132, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 421, '2020-09-22');
+INSERT INTO `t_gdinterface` VALUES (133, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 5347, '2020-09-22');
+INSERT INTO `t_gdinterface` VALUES (134, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 168, '2020-09-23');
+INSERT INTO `t_gdinterface` VALUES (136, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 4369, '2020-09-23');
+INSERT INTO `t_gdinterface` VALUES (137, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 140, '2020-09-24');
+INSERT INTO `t_gdinterface` VALUES (138, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 2868, '2020-09-24');
+INSERT INTO `t_gdinterface` VALUES (139, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 6, '2020-09-25');
+INSERT INTO `t_gdinterface` VALUES (140, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 7489, '2020-09-29');
+INSERT INTO `t_gdinterface` VALUES (141, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 159, '2020-09-29');
+INSERT INTO `t_gdinterface` VALUES (142, 'https://restapi.amap.com/v3/geocode/regeo', '经纬度转行政区域', 13, '2020-10-07');
+INSERT INTO `t_gdinterface` VALUES (143, 'https://restapi.amap.com/v3/distance', '查询两点间的距离', 13, '2020-10-07');
+INSERT INTO `t_gdinterface` VALUES (144, 'https://restapi.amap.com/v4/geofence/meta', '创建电子围栏', 5, '2020-10-21');
+INSERT INTO `t_gdinterface` VALUES (145, 'https://restapi.amap.com/v4/geofence/meta', '创建电子围栏', 11, '2020-11-03');
+INSERT INTO `t_gdinterface` VALUES (146, 'https://restapi.amap.com/v4/geofence/meta', '删除电子围栏', 13, '2020-11-03');
+
+-- ----------------------------
+-- Table structure for t_income
+-- ----------------------------
+DROP TABLE IF EXISTS `t_income`;
+CREATE TABLE `t_income`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userType` int(1) NULL DEFAULT NULL COMMENT '收入对象(1=公司,2=司机)',
+  `objectId` int(11) NULL DEFAULT NULL COMMENT '对象id(公司/司机)',
+  `type` int(1) NULL DEFAULT NULL COMMENT '类型(1=活动收入,2=跑单收入,3=取消订单收入,4=改派订单收入)',
+  `incomeId` int(11) NULL DEFAULT NULL COMMENT '收入类型id',
+  `orderType` int(1) NULL DEFAULT NULL COMMENT '订单类型',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '收入金额',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1568 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '收入明细表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_income
+-- ----------------------------
+INSERT INTO `t_income` VALUES (1454, 1, 1, 2, 2584, 2, 5.60, '2020-08-17 19:14:08');
+INSERT INTO `t_income` VALUES (1455, 2, 904, 2, 2584, 2, 1.40, '2020-08-17 19:14:08');
+INSERT INTO `t_income` VALUES (1456, 1, 1, 2, 2585, 2, 0.01, '2020-08-17 19:19:07');
+INSERT INTO `t_income` VALUES (1457, 2, 905, 2, 2585, 2, 0.00, '2020-08-17 19:19:07');
+INSERT INTO `t_income` VALUES (1458, 1, 1, 2, 2586, 2, 0.01, '2020-08-17 19:21:24');
+INSERT INTO `t_income` VALUES (1459, 2, 905, 2, 2586, 2, 0.00, '2020-08-17 19:21:24');
+INSERT INTO `t_income` VALUES (1460, 1, 1, 2, 2588, 2, 4.80, '2020-08-17 20:22:36');
+INSERT INTO `t_income` VALUES (1461, 2, 403, 2, 2588, 2, 1.20, '2020-08-17 20:22:36');
+INSERT INTO `t_income` VALUES (1462, 1, 1, 2, 2589, 2, 0.01, '2020-08-18 09:54:37');
+INSERT INTO `t_income` VALUES (1463, 2, 905, 2, 2589, 2, 0.00, '2020-08-18 09:54:37');
+INSERT INTO `t_income` VALUES (1464, 1, 1, 2, 2590, 2, 8.00, '2020-08-18 09:56:19');
+INSERT INTO `t_income` VALUES (1465, 2, 905, 2, 2590, 2, 2.00, '2020-08-18 09:56:19');
+INSERT INTO `t_income` VALUES (1466, 1, 1, 2, 2606, 2, 0.01, '2020-08-19 17:45:44');
+INSERT INTO `t_income` VALUES (1467, 2, 910, 2, 2606, 2, 0.00, '2020-08-19 17:45:44');
+INSERT INTO `t_income` VALUES (1468, 1, 1, 2, 2609, 2, 0.01, '2020-08-19 18:10:57');
+INSERT INTO `t_income` VALUES (1469, 2, 910, 2, 2609, 2, 0.00, '2020-08-19 18:10:57');
+INSERT INTO `t_income` VALUES (1470, 1, 1, 2, 2610, 2, 0.01, '2020-08-19 18:12:40');
+INSERT INTO `t_income` VALUES (1471, 2, 910, 2, 2610, 2, 0.00, '2020-08-19 18:12:40');
+INSERT INTO `t_income` VALUES (1472, 1, 1, 2, 2611, 2, 0.01, '2020-08-19 18:13:18');
+INSERT INTO `t_income` VALUES (1473, 2, 910, 2, 2611, 2, 0.00, '2020-08-19 18:13:18');
+INSERT INTO `t_income` VALUES (1474, 1, 1, 2, 2612, 2, 0.01, '2020-08-19 18:17:43');
+INSERT INTO `t_income` VALUES (1475, 2, 910, 2, 2612, 2, 0.00, '2020-08-19 18:17:43');
+INSERT INTO `t_income` VALUES (1476, 1, 1, 2, 2615, 2, 5.60, '2020-08-20 16:02:47');
+INSERT INTO `t_income` VALUES (1477, 2, 913, 2, 2615, 2, 1.40, '2020-08-20 16:02:47');
+INSERT INTO `t_income` VALUES (1478, 1, 1, 2, 2617, 2, 4.80, '2020-08-21 09:37:57');
+INSERT INTO `t_income` VALUES (1479, 2, 403, 2, 2617, 2, 1.20, '2020-08-21 09:37:57');
+INSERT INTO `t_income` VALUES (1480, 1, 1, 2, 2628, 2, 5.44, '2020-08-22 20:30:57');
+INSERT INTO `t_income` VALUES (1481, 2, 875, 2, 2628, 2, 1.36, '2020-08-22 20:30:57');
+INSERT INTO `t_income` VALUES (1482, 1, 1, 2, 2654, 2, 4.80, '2020-09-02 16:41:09');
+INSERT INTO `t_income` VALUES (1483, 2, 583, 2, 2654, 2, 1.20, '2020-09-02 16:41:09');
+INSERT INTO `t_income` VALUES (1484, 1, 1, 2, 2655, 2, 0.80, '2020-09-02 16:44:36');
+INSERT INTO `t_income` VALUES (1485, 2, 73, 2, 2655, 2, 0.20, '2020-09-02 16:44:36');
+INSERT INTO `t_income` VALUES (1486, 1, 1, 2, 2659, 2, 0.80, '2020-09-02 17:39:15');
+INSERT INTO `t_income` VALUES (1487, 2, 924, 2, 2659, 2, 0.20, '2020-09-02 17:39:15');
+INSERT INTO `t_income` VALUES (1488, 1, 1, 2, 2660, 2, 0.08, '2020-09-02 17:44:55');
+INSERT INTO `t_income` VALUES (1489, 2, 924, 2, 2660, 2, 0.02, '2020-09-02 17:44:55');
+INSERT INTO `t_income` VALUES (1490, 1, 1, 3, 2587, 2, 5.00, '2020-09-03 13:59:52');
+INSERT INTO `t_income` VALUES (1491, 1, 1, 2, 2666, 2, 18.72, '2020-09-04 15:50:43');
+INSERT INTO `t_income` VALUES (1492, 2, 203, 2, 2666, 2, 4.68, '2020-09-04 15:50:43');
+INSERT INTO `t_income` VALUES (1493, 1, 1, 3, 2665, 2, 0.01, '2020-09-04 15:56:36');
+INSERT INTO `t_income` VALUES (1494, 1, 1, 3, 2667, 2, 0.01, '2020-09-04 16:34:05');
+INSERT INTO `t_income` VALUES (1495, 1, 1, 3, 2694, 2, 0.01, '2020-09-06 05:49:32');
+INSERT INTO `t_income` VALUES (1496, 1, 1, 2, 2712, 2, 0.01, '2020-09-09 10:12:33');
+INSERT INTO `t_income` VALUES (1497, 2, 932, 2, 2712, 2, 0.00, '2020-09-09 10:12:33');
+INSERT INTO `t_income` VALUES (1498, 1, 1, 2, 2720, 2, 7.60, '2020-09-10 11:30:18');
+INSERT INTO `t_income` VALUES (1499, 2, 754, 2, 2720, 2, 1.90, '2020-09-10 11:30:18');
+INSERT INTO `t_income` VALUES (1500, 1, 1, 2, 2718, 2, 10.32, '2020-09-10 13:16:49');
+INSERT INTO `t_income` VALUES (1501, 2, 140, 2, 2718, 2, 2.58, '2020-09-10 13:16:49');
+INSERT INTO `t_income` VALUES (1502, 1, 1, 2, 2731, 2, 11.84, '2020-09-10 17:02:43');
+INSERT INTO `t_income` VALUES (1503, 2, 73, 2, 2731, 2, 2.96, '2020-09-10 17:02:43');
+INSERT INTO `t_income` VALUES (1504, 1, 1, 2, 2741, 2, 0.00, '2020-09-11 09:48:56');
+INSERT INTO `t_income` VALUES (1505, 2, 73, 2, 2741, 2, 15.20, '2020-09-11 09:48:56');
+INSERT INTO `t_income` VALUES (1506, 1, 1, 2, 2658, 2, 0.00, '2020-09-11 10:55:19');
+INSERT INTO `t_income` VALUES (1507, 2, 73, 2, 2658, 2, 0.01, '2020-09-11 10:55:19');
+INSERT INTO `t_income` VALUES (1508, 1, 1, 2, 2812, 2, 0.00, '2020-09-17 22:35:55');
+INSERT INTO `t_income` VALUES (1509, 2, 63, 2, 2812, 2, 16.70, '2020-09-17 22:35:55');
+INSERT INTO `t_income` VALUES (1510, 1, 1, 4, 48, 1, 0.01, '2020-09-22 18:23:32');
+INSERT INTO `t_income` VALUES (1511, 1, 1, 2, 21, 1, 0.00, '2020-09-23 11:16:36');
+INSERT INTO `t_income` VALUES (1512, 2, 910, 2, 21, 1, 114.00, '2020-09-23 11:16:36');
+INSERT INTO `t_income` VALUES (1513, 1, 1, 2, 53, 1, 0.00, '2020-09-23 14:25:35');
+INSERT INTO `t_income` VALUES (1514, 2, 905, 2, 53, 1, 10.00, '2020-09-23 14:25:35');
+INSERT INTO `t_income` VALUES (1515, 1, 1, 2, 55, 1, 0.00, '2020-09-23 14:58:34');
+INSERT INTO `t_income` VALUES (1516, 2, 905, 2, 55, 1, 8.00, '2020-09-23 14:58:34');
+INSERT INTO `t_income` VALUES (1517, 1, 1, 2, 56, 1, 0.00, '2020-09-23 15:23:04');
+INSERT INTO `t_income` VALUES (1518, 2, 905, 2, 56, 1, 8.00, '2020-09-23 15:23:04');
+INSERT INTO `t_income` VALUES (1519, 1, 1, 2, 2825, 2, 0.00, '2020-09-23 15:38:08');
+INSERT INTO `t_income` VALUES (1520, 2, 905, 2, 2825, 2, 1.00, '2020-09-23 15:38:08');
+INSERT INTO `t_income` VALUES (1521, 1, 1, 2, 58, 1, 0.00, '2020-09-23 15:39:50');
+INSERT INTO `t_income` VALUES (1522, 2, 905, 2, 58, 1, 8.00, '2020-09-23 15:39:50');
+INSERT INTO `t_income` VALUES (1523, 1, 1, 2, 59, 1, 0.00, '2020-09-23 16:05:28');
+INSERT INTO `t_income` VALUES (1524, 2, 905, 2, 59, 1, 8.00, '2020-09-23 16:05:28');
+INSERT INTO `t_income` VALUES (1525, 1, 1, 3, 60, 1, 3.00, '2020-09-23 16:42:44');
+INSERT INTO `t_income` VALUES (1526, 1, 1, 2, 61, 1, 0.00, '2020-09-24 15:44:37');
+INSERT INTO `t_income` VALUES (1527, 2, 905, 2, 61, 1, 10.00, '2020-09-24 15:44:37');
+INSERT INTO `t_income` VALUES (1528, 1, 1, 2, 64, 1, 0.00, '2020-09-24 16:17:58');
+INSERT INTO `t_income` VALUES (1529, 2, 905, 2, 64, 1, 8.00, '2020-09-24 16:17:58');
+INSERT INTO `t_income` VALUES (1530, 1, 1, 2, 65, 1, 0.00, '2020-09-24 16:39:16');
+INSERT INTO `t_income` VALUES (1531, 2, 905, 2, 65, 1, 8.00, '2020-09-24 16:39:16');
+INSERT INTO `t_income` VALUES (1532, 1, 1, 2, 66, 1, 0.00, '2020-09-24 16:45:23');
+INSERT INTO `t_income` VALUES (1533, 2, 905, 2, 66, 1, 8.00, '2020-09-24 16:45:23');
+INSERT INTO `t_income` VALUES (1534, 1, 1, 3, 72, 1, 3.00, '2020-09-24 17:46:03');
+INSERT INTO `t_income` VALUES (1535, 1, 1, 3, 78, 1, 3.00, '2020-09-29 10:15:51');
+INSERT INTO `t_income` VALUES (1536, 1, 1, 2, 42, 1, 0.00, '2020-09-29 10:16:02');
+INSERT INTO `t_income` VALUES (1537, 2, 906, 2, 42, 1, 67.00, '2020-09-29 10:16:02');
+INSERT INTO `t_income` VALUES (1538, 1, 1, 2, 77, 1, 0.00, '2020-09-29 10:20:21');
+INSERT INTO `t_income` VALUES (1539, 2, 906, 2, 77, 1, 19.00, '2020-09-29 10:20:21');
+INSERT INTO `t_income` VALUES (1540, 1, 1, 2, 79, 1, 0.00, '2020-09-29 10:37:49');
+INSERT INTO `t_income` VALUES (1541, 2, 906, 2, 79, 1, 30.00, '2020-09-29 10:37:49');
+INSERT INTO `t_income` VALUES (1542, 1, 1, 2, 45, 1, 0.00, '2020-09-29 11:23:56');
+INSERT INTO `t_income` VALUES (1543, 2, 906, 2, 45, 1, 21.00, '2020-09-29 11:23:56');
+INSERT INTO `t_income` VALUES (1544, 1, 1, 2, 81, 1, 0.00, '2020-09-29 11:30:31');
+INSERT INTO `t_income` VALUES (1545, 2, 906, 2, 81, 1, 28.00, '2020-09-29 11:30:31');
+INSERT INTO `t_income` VALUES (1546, 1, 1, 2, 49, 1, 0.00, '2020-09-29 11:32:44');
+INSERT INTO `t_income` VALUES (1547, 2, 906, 2, 49, 1, 18.00, '2020-09-29 11:32:44');
+INSERT INTO `t_income` VALUES (1548, 1, 1, 2, 74, 1, 0.00, '2020-09-29 11:41:54');
+INSERT INTO `t_income` VALUES (1549, 2, 906, 2, 74, 1, 19.00, '2020-09-29 11:41:54');
+INSERT INTO `t_income` VALUES (1550, 1, 1, 2, 75, 1, 0.00, '2020-09-29 11:42:02');
+INSERT INTO `t_income` VALUES (1551, 2, 906, 2, 75, 1, 19.00, '2020-09-29 11:42:02');
+INSERT INTO `t_income` VALUES (1552, 1, 1, 2, 76, 1, 0.00, '2020-09-29 11:42:10');
+INSERT INTO `t_income` VALUES (1553, 2, 906, 2, 76, 1, 110.00, '2020-09-29 11:42:10');
+INSERT INTO `t_income` VALUES (1554, 1, 1, 2, 82, 1, 0.00, '2020-09-29 11:43:41');
+INSERT INTO `t_income` VALUES (1555, 2, 906, 2, 82, 1, 8.00, '2020-09-29 11:43:41');
+INSERT INTO `t_income` VALUES (1556, 1, 1, 2, 83, 1, 0.00, '2020-09-29 11:47:03');
+INSERT INTO `t_income` VALUES (1557, 2, 906, 2, 83, 1, 8.00, '2020-09-29 11:47:03');
+INSERT INTO `t_income` VALUES (1558, 1, 1, 2, 84, 1, 0.00, '2020-09-29 11:49:00');
+INSERT INTO `t_income` VALUES (1559, 2, 906, 2, 84, 1, 28.00, '2020-09-29 11:49:00');
+INSERT INTO `t_income` VALUES (1560, 1, 1, 2, 87, 1, 0.00, '2020-09-29 11:52:45');
+INSERT INTO `t_income` VALUES (1561, 2, 906, 2, 87, 1, 28.00, '2020-09-29 11:52:45');
+INSERT INTO `t_income` VALUES (1562, 1, 1, 2, 88, 1, 0.00, '2020-09-29 11:54:42');
+INSERT INTO `t_income` VALUES (1563, 2, 906, 2, 88, 1, 38.00, '2020-09-29 11:54:42');
+INSERT INTO `t_income` VALUES (1564, 1, 1, 2, 85, 1, 0.00, '2020-09-29 18:40:01');
+INSERT INTO `t_income` VALUES (1565, 2, 906, 2, 85, 1, 10.00, '2020-09-29 18:40:01');
+INSERT INTO `t_income` VALUES (1566, 1, 1, 2, 86, 1, 0.00, '2020-09-29 18:40:13');
+INSERT INTO `t_income` VALUES (1567, 2, 906, 2, 86, 1, 28.00, '2020-09-29 18:40:13');
+
+-- ----------------------------
+-- Table structure for t_integral_goods
+-- ----------------------------
+DROP TABLE IF EXISTS `t_integral_goods`;
+CREATE TABLE `t_integral_goods`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '商品名称',
+  `imgUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '商品图片',
+  `integral` int(11) NULL DEFAULT NULL COMMENT '兑换积分',
+  `instructions` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '商品说明',
+  `state` int(1) NULL DEFAULT 1 COMMENT '状态  1=正常  2=已下架  3=删除',
+  `insertUserId` int(11) NULL DEFAULT NULL COMMENT '添加用户ID',
+  `insertUserRole` int(255) NULL DEFAULT NULL COMMENT '添加用户角色',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '积分商品管理' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_integral_goods
+-- ----------------------------
+INSERT INTO `t_integral_goods` VALUES (1, '2020-09-24 10:30:23', '复古奶奶鞋女粗跟真皮V口2020秋季仙女百搭中跟软皮方头高跟单鞋', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/7772487cac784ed8a2c551a63ddcbc4e.jpg', 699, '<ul class=\"attributes-list list-paddingleft-2\" style=\"list-style-type: none;\"><li><p>品牌:&nbsp;other/其他</p></li><li><p>闭合方式:&nbsp;套脚</p></li><li><p>尺码:&nbsp;34 35 36 37 38 39 40</p></li><li><p>图案:&nbsp;纯色</p></li><li><p>风格:&nbsp;复古</p></li><li><p>流行元素:&nbsp;浅口 粗跟</p></li><li><p>后跟高:&nbsp;高跟(5-8cm)</p></li><li><p>颜色分类:&nbsp;米白色 杏色 黑色 豆沙 杏色-- 牛油果绿 米白-- 棕色-- 棕驼 黑色--</p></li><li><p>上市年份季节:&nbsp;2020年春季</p></li><li><p>鞋头款式:&nbsp;方头</p></li><li><p>适用场景:&nbsp;日常</p></li><li><p>跟底款式:&nbsp;粗跟</p></li><li><p>鞋底材质:&nbsp;TPR(牛筋)</p></li><li><p>内里材质:&nbsp;头层猪皮</p></li><li><p>适用对象:&nbsp;青年(18-40周岁)</p></li><li><p>开口深度:&nbsp;浅口</p></li><li><p>皮质特征:&nbsp;纳帕</p></li><li><p>鞋制作工艺:&nbsp;胶粘鞋</p></li><li><p>鞋垫材质:&nbsp;头层猪皮</p></li><li><p>款式:&nbsp;单鞋</p></li><li><p>帮面材质:&nbsp;头层牛皮</p></li></ul><p><br/></p>', 1, 1, 1);
+INSERT INTO `t_integral_goods` VALUES (2, '2020-09-24 10:31:29', '细素银细光面光圈纯银戒指手工定制做素圈尾戒小戒指脚趾戒关节戒', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/fdd0b0d72d724e0380ed25117bf1e1ca.jpg', 999, '<ul class=\"attributes-list list-paddingleft-2\" style=\"list-style-type: none;\"><li><p>品牌:&nbsp;other/其他</p></li><li><p>材质:&nbsp;银饰</p></li><li><p>金属材质:&nbsp;99足银</p></li><li><p>风格:&nbsp;民族风</p></li><li><p>成色:&nbsp;全新</p></li><li><p>价格区间:&nbsp;25-29.99元</p></li><li><p>适用性别:&nbsp;女</p></li><li><p>新奇特:&nbsp;网聚特色</p></li><li><p>颜色分类:&nbsp;1号 2号 3号 4号 5号 6号 7号 8号 9号 10号 11号 12号 13号 14号 15号 16号 17号 18号 其他尺码请联系</p></li><li><p>是否现货:&nbsp;订做</p></li><li><p>镶嵌材质:&nbsp;未镶嵌</p></li></ul><p><br/></p>', 2, 1, 1);
+
+-- ----------------------------
+-- Table structure for t_integral_order
+-- ----------------------------
+DROP TABLE IF EXISTS `t_integral_order`;
+CREATE TABLE `t_integral_order`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '兑换时间',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '兑换用户ID',
+  `goodsId` int(11) NULL DEFAULT NULL COMMENT '兑换商品ID',
+  `num` int(11) NULL DEFAULT NULL COMMENT '兑换数量',
+  `consigneeName` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '收货人',
+  `consigneePhone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '收货人联系电话',
+  `consigneeAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '收货人收货地址',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
+  `state` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT '1' COMMENT '状态 1=未处理 2=已处理 3=已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '积分订单管理' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_integral_order
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_invoice
+-- ----------------------------
+DROP TABLE IF EXISTS `t_invoice`;
+CREATE TABLE `t_invoice`  (
+  `id` int(11) NOT NULL,
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '开票金额',
+  `orderNum` int(11) NULL DEFAULT NULL COMMENT '开票订单数量',
+  `type` int(1) NULL DEFAULT NULL COMMENT '开票类型(1=个人发票,2=单位发票)',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抬头名称(公司名称/个人姓名)',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '税号',
+  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发票内容',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址+电话',
+  `bank` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '开户行+账号',
+  `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '开票用户id',
+  `state` int(1) NULL DEFAULT NULL COMMENT '状态(1=待开票,2=成功,3=失败)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '申请时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '发票' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_invoice
+-- ----------------------------
+INSERT INTO `t_invoice` VALUES (1, 11.00, 11, 1, '1', '1', '当我觉得我倒霉了,我就会想,这是在挥洒我的霉运,挥洒之后,剩下的就全都是幸运了!当我觉得我倒霉了,我就会想,这是在挥洒我的霉运,挥洒之后,剩下的就全都是幸运了!当我觉得我倒霉了,我就会想,这是在挥洒我的霉运,挥洒之后,剩下的就全都是幸运了!', '当我觉得我倒霉了,我就会想,这是在挥洒我的霉运,挥洒之后,剩下的就全都是幸运了!当我觉得我倒霉了,我就会想,这是在挥洒我的霉运,挥洒之后,剩下的就全都是幸运了!', NULL, NULL, NULL, 1, 1, '2020-06-10 10:16:40');
+
+-- ----------------------------
+-- Table structure for t_line
+-- ----------------------------
+DROP TABLE IF EXISTS `t_line`;
+CREATE TABLE `t_line`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '线路名称',
+  `shiftInterval` int(10) NULL DEFAULT NULL COMMENT '排班申请间隔(分钟)',
+  `rakeRate` int(10) NULL DEFAULT NULL COMMENT '抽成比例(80)',
+  `state` int(2) NULL DEFAULT NULL COMMENT '状态(1=正常,2=冻结,3=删除)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `insertUserId` int(11) NULL DEFAULT NULL COMMENT '创建者ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '线路' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_line
+-- ----------------------------
+INSERT INTO `t_line` VALUES (1, '南充-成都', 10, 10, 3, '2020-09-24 09:14:35', 1);
+INSERT INTO `t_line` VALUES (2, '南充-成都', 10, 10, 1, '2020-09-24 09:16:14', 1);
+
+-- ----------------------------
+-- Table structure for t_line_company
+-- ----------------------------
+DROP TABLE IF EXISTS `t_line_company`;
+CREATE TABLE `t_line_company`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '线路ID',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业ID',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `insertUserId` int(11) NULL DEFAULT NULL COMMENT '添加用户ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '企业-线路关系表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_line_company
+-- ----------------------------
+INSERT INTO `t_line_company` VALUES (1, 2, 1, '2020-09-24 09:17:19', 1);
+
+-- ----------------------------
+-- Table structure for t_line_price
+-- ----------------------------
+DROP TABLE IF EXISTS `t_line_price`;
+CREATE TABLE `t_line_price`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '线路id',
+  `serverCarModelId` int(11) NULL DEFAULT NULL COMMENT '服务车型id',
+  `type` int(2) NULL DEFAULT NULL COMMENT '价格类型(1=固定金额,2=浮动计费)',
+  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '价格计算规则',
+  `contentStr` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '价格计算规则【后台使用】',
+  `state` int(2) NULL DEFAULT NULL COMMENT '状态(1=正常,2=冻结,3=删除)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `addTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '添加时间【后台使用】',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '线路价格' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_line_price
+-- ----------------------------
+INSERT INTO `t_line_price` VALUES (2, 2, 4, 1, '{\"num1\":\"169\",\"num2\":\"299\",\"num3\":\"0.5\",\"num4\":\"0.7\"}', '单人价格:169;包车价格:299;五座系数:0.5;七座系数:0.7;', 1, '2020-09-24 09:16:16', '2020-09-24');
+INSERT INTO `t_line_price` VALUES (3, 1, 4, 1, '{\"num1\":\"169\",\"num2\":\"299\",\"num3\":\"0.5\",\"num4\":\"0.7\"}', '单人价格:169;包车价格:299;五座系数:0.5;七座系数:0.7;', 1, '2020-09-24 09:16:34', '2020-09-24');
+
+-- ----------------------------
+-- Table structure for t_line_shift
+-- ----------------------------
+DROP TABLE IF EXISTS `t_line_shift`;
+CREATE TABLE `t_line_shift`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '线路id',
+  `startTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '开始时间段',
+  `endTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '结束时间段',
+  `carNum` int(2) NULL DEFAULT NULL COMMENT '车次数',
+  `state` int(2) NULL DEFAULT NULL COMMENT '状态(1=正常,2=冻结,3=删除)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `addTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '添加时间【后端使用】',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '线路排班' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_line_shift
+-- ----------------------------
+INSERT INTO `t_line_shift` VALUES (1, 2, '09:00', '11:00', 2, 1, '2020-09-24 09:16:17', '2020-09-24');
+INSERT INTO `t_line_shift` VALUES (2, 1, '09:00', '11:00', 2, 1, '2020-09-24 09:16:36', '2020-09-24');
+
+-- ----------------------------
+-- Table structure for t_line_shift_driver
+-- ----------------------------
+DROP TABLE IF EXISTS `t_line_shift_driver`;
+CREATE TABLE `t_line_shift_driver`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `lineShiftId` int(11) NULL DEFAULT NULL COMMENT '线路班次id',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `day` date NULL DEFAULT NULL COMMENT '预约日期',
+  `laveSeat` int(2) NULL DEFAULT NULL COMMENT '剩余座位数',
+  `laveSeatNumber` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '剩余座位号',
+  `totalSeat` int(2) NULL DEFAULT NULL COMMENT '总座位数',
+  `inserTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '司机预约排班记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_line_shift_driver
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_line_site
+-- ----------------------------
+DROP TABLE IF EXISTS `t_line_site`;
+CREATE TABLE `t_line_site`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '线路id',
+  `siteId` int(11) NULL DEFAULT NULL COMMENT '站点id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '类型(1=起点,2=终点)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '线路-站点关系表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_line_site
+-- ----------------------------
+INSERT INTO `t_line_site` VALUES (1, 1, 1, 1);
+INSERT INTO `t_line_site` VALUES (2, 1, 2, 2);
+INSERT INTO `t_line_site` VALUES (3, 2, 1, 1);
+INSERT INTO `t_line_site` VALUES (4, 2, 2, 2);
+
+-- ----------------------------
+-- Table structure for t_location
+-- ----------------------------
+DROP TABLE IF EXISTS `t_location`;
+CREATE TABLE `t_location`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `siteId` int(11) NULL DEFAULT NULL COMMENT '站点id',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '区域名称',
+  `type` int(2) NULL DEFAULT NULL COMMENT '地点类型(1=行政区域,2=电子围栏)',
+  `province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '省名称',
+  `provinceCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '省编号',
+  `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '市名称',
+  `cityCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '市编号',
+  `district` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '区县名称',
+  `districtCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '区县编号',
+  `coordinate` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '电子围栏坐标(多组以下划线分隔)',
+  `gid` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '电子围栏gid(多组以下划线分隔)',
+  `updateTime` datetime(0) NULL DEFAULT NULL COMMENT '电子围栏更新时间',
+  `state` int(2) NULL DEFAULT NULL COMMENT '状态(1=正常,2=冻结,3=删除)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `addTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '添加时间【后台使用】',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 35 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '站点区域数据' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_location
+-- ----------------------------
+INSERT INTO `t_location` VALUES (11, 2, '省体育馆', 2, NULL, NULL, NULL, NULL, NULL, NULL, '104.066581,30.633457;336.2520105117542', 'e9ce174b-1e47-4d03-8191-7748da28185a', NULL, 1, '2020-10-21 16:34:11', '2020-10-21');
+INSERT INTO `t_location` VALUES (34, 1, '省体育馆', 2, NULL, NULL, NULL, NULL, NULL, NULL, '104.069876,30.616925;1354.5894498410423', '49c9cbe2-1e98-4acf-b86f-aaff5ab131f8', '2020-11-03 16:38:15', 1, '2020-11-03 16:38:11', '2020-11-03');
+
+-- ----------------------------
+-- Table structure for t_notices
+-- ----------------------------
+DROP TABLE IF EXISTS `t_notices`;
+CREATE TABLE `t_notices`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '标题',
+  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '内容',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `isShow` smallint(1) NULL DEFAULT NULL COMMENT '是否显示/发布(1=是,2=否)',
+  `isBroadcast` smallint(1) NULL DEFAULT NULL COMMENT '是否播报(1=是,2=否)',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '公告类型(1=滚动消息,2=公告)',
+  `imgUrl` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '图片路径',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL,
+  `insertUser` int(11) NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  `isDelete` int(1) NULL DEFAULT 1 COMMENT '是否删除 1=否 2=是',
+  `isUser` int(1) NULL DEFAULT 1 COMMENT '是否发布用户 1=否  2=是',
+  `isDriver` int(1) NULL DEFAULT 1 COMMENT '是否发布司机  1=否  2=是',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '发布公告和滚动消息' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_notices
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_open_city
+-- ----------------------------
+DROP TABLE IF EXISTS `t_open_city`;
+CREATE TABLE `t_open_city`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '城市code(6位)',
+  `lon` double(15, 10) NULL DEFAULT NULL COMMENT '经度',
+  `lat` double(15, 10) NULL DEFAULT NULL COMMENT '纬度',
+  `isQualifications` smallint(1) NULL DEFAULT NULL COMMENT '是否需要网约车资格(1=是,2=否)',
+  `areaId` int(11) NULL DEFAULT NULL COMMENT '省份ID',
+  `areaName` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '省份名称',
+  `cityId` int(11) NULL DEFAULT NULL COMMENT '市ID',
+  `cityName` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '市名称',
+  `provinceId` int(11) NULL DEFAULT NULL COMMENT '区县ID',
+  `provinceName` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '区县名称',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL,
+  `insertUser` int(11) NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '开通城市表' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_open_city
+-- ----------------------------
+INSERT INTO `t_open_city` VALUES (33, '450200', 109.4159530000, 24.3255020000, 1, 2282, '广西壮族自治区', 2297, '柳州市', NULL, '', '1', '2020-07-16 10:08:38', 1, NULL, NULL);
+INSERT INTO `t_open_city` VALUES (36, '510100', 104.0665410000, 30.5722690000, 1, 2497, '四川省', 2498, '成都市', 0, '', '1', '2020-08-17 19:11:24', 1, '2020-08-26 10:07:54', 1);
+
+-- ----------------------------
+-- Table structure for t_open_city_business
+-- ----------------------------
+DROP TABLE IF EXISTS `t_open_city_business`;
+CREATE TABLE `t_open_city_business`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `openCityId` int(11) NULL DEFAULT NULL COMMENT '开通城市id',
+  `businessType` smallint(1) NULL DEFAULT NULL COMMENT '业务类型(1=专车,2=出租车,3=跨城出行,4=跨城小件物流,5=同城小件物流,6=包车)',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL,
+  `insertUser` int(11) NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 80 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '开通城市经营业务' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_open_city_business
+-- ----------------------------
+INSERT INTO `t_open_city_business` VALUES (64, 33, 2, 1, '1', '2020-07-16 00:00:00', 1, NULL, NULL);
+INSERT INTO `t_open_city_business` VALUES (71, 35, 2, 1, '2', '2020-08-17 00:00:00', 1, '2020-08-17 19:10:00', 1);
+INSERT INTO `t_open_city_business` VALUES (72, 35, 5, 2, '2', '2020-08-17 00:00:00', 1, '2020-08-17 19:10:00', 1);
+INSERT INTO `t_open_city_business` VALUES (73, 36, 2, 2, '2', '2020-08-17 00:00:00', 1, '2020-08-26 10:07:54', 1);
+INSERT INTO `t_open_city_business` VALUES (74, 36, 5, 5, '3', '2020-08-17 00:00:00', 1, '2020-08-17 19:12:35', 1);
+INSERT INTO `t_open_city_business` VALUES (75, 36, 1, 1, '1', NULL, NULL, NULL, NULL);
+INSERT INTO `t_open_city_business` VALUES (76, 36, 3, 3, '1', NULL, NULL, NULL, NULL);
+INSERT INTO `t_open_city_business` VALUES (77, 36, 4, 4, '1', NULL, NULL, NULL, NULL);
+INSERT INTO `t_open_city_business` VALUES (78, 36, 5, 5, '1', NULL, NULL, NULL, NULL);
+INSERT INTO `t_open_city_business` VALUES (79, 36, 6, 6, '1', NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_order_cancel
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_cancel`;
+CREATE TABLE `t_order_cancel`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `orderType` int(1) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '取消原因',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
+  `payType` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝,3=余额)',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  `state` int(1) NULL DEFAULT NULL COMMENT '1=临时,2=正式',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `userType` int(1) NULL DEFAULT NULL COMMENT '取消人类型(1=用户,2=后台,3=调度)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '取消人id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1791 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '订单取消' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_order_cancel
+-- ----------------------------
+INSERT INTO `t_order_cancel` VALUES (1573, 2587, 2, '赶时间,换用其他交通工具', '', 3, 5.00, 2, '2020-08-17 20:17:24', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1574, 2592, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 15:03:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1575, 2594, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:09:06', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1576, 2595, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:10:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1577, 2596, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:10:14', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1578, 2597, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:10:49', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1579, 2598, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:11:37', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1580, 2599, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:11:45', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1581, 2600, 2, '司机要求加价或现金交易', '', NULL, NULL, 2, '2020-08-19 17:19:45', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1582, 2601, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:21:42', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1583, 2602, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:35:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1584, 2603, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:36:46', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1585, 2604, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:37:43', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1586, 2605, 2, '司机要求加价或现金交易', '', NULL, NULL, 2, '2020-08-19 17:38:45', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1587, 2607, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 17:48:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1588, 2593, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 18:15:34', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1589, 2613, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-19 18:18:46', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1590, 2626, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-22 20:20:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1591, 2627, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-22 20:22:36', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1592, 2629, 2, '行程有变,暂时不需要用车', '', NULL, NULL, 2, '2020-08-22 20:38:22', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1593, 2630, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-22 20:40:09', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1594, 2631, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-29 08:43:18', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1595, 2632, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-29 09:40:45', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1596, 2633, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-29 12:10:03', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1597, 2635, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-29 18:14:23', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1598, 2636, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-29 18:16:02', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1599, 2637, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 12:15:35', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1600, 2638, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 12:17:01', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1601, 2639, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 12:18:51', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1602, 2640, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 12:20:42', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1603, 2641, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 12:32:23', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1604, 2642, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 14:49:54', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1605, 2643, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 17:04:40', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1606, 2644, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 19:40:41', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1607, 2645, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-30 20:41:40', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1608, 2646, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-31 09:20:05', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1609, 2647, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-08-31 09:39:05', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1610, 2649, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-01 11:08:20', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1611, 2651, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-02 08:05:46', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1612, 2652, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-02 09:33:58', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1613, 2653, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-02 14:11:48', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1614, 2661, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-02 17:53:30', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1615, 2662, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-02 18:02:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1616, 2664, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-04 10:58:34', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1617, 2665, 2, '行程有变,暂时不需要用车', NULL, 1, 0.01, 2, '2020-09-04 15:27:32', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1618, 2667, 2, '行程有变,暂时不需要用车', NULL, 1, 0.01, 2, '2020-09-04 15:58:22', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1619, 2668, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-04 16:35:41', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1620, 2669, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-04 16:37:09', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1621, 2670, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-04 18:32:31', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1622, 2671, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-04 18:36:01', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1623, 2672, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 08:42:10', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1624, 2673, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 08:45:06', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1625, 2677, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 11:23:45', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1626, 2680, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 14:59:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1627, 2681, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 15:01:36', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1628, 2684, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 18:06:59', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1629, 2685, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 18:20:59', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1630, 2686, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 20:06:05', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1631, 2687, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 20:07:40', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1632, 2688, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 21:17:56', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1633, 2689, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 21:20:48', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1634, 2690, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 21:21:15', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1635, 2692, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-05 23:12:25', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1636, 2693, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-06 05:32:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1637, 2694, 2, '赶时间,换用其它交通工具', NULL, 1, 0.01, 2, '2020-09-06 05:49:06', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1638, 2695, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-07 07:47:27', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1639, 2696, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-07 08:08:41', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1640, 2697, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-07 08:28:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1641, 2699, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-07 10:39:13', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1642, 2702, 2, '行程有变,暂时不需要用车', NULL, NULL, NULL, 2, '2020-09-07 14:45:02', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1643, 2703, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-07 14:47:32', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1644, 2704, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-07 18:55:58', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1645, 2705, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-08 07:33:40', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1646, 2701, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-08 09:10:02', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1647, 2707, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-08 16:32:06', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1648, 2708, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-08 20:20:33', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1649, 2709, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-08 20:21:25', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1650, 2711, 2, '行程有变,暂时不需要用车', '', NULL, NULL, 2, '2020-09-09 10:09:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1651, 2713, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-09 12:12:11', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1652, 2714, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-09 17:38:11', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1653, 2715, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 00:10:32', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1654, 2716, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 08:46:45', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1655, 2717, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 08:49:28', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1656, 2719, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 08:53:55', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1657, 2721, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 11:34:28', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1658, 2722, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 11:35:42', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1659, 2725, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 15:21:53', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1660, 2726, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 15:22:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1661, 2727, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 15:22:26', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1662, 2728, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 15:23:23', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1663, 2732, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 17:01:20', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1664, 2734, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 17:15:30', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1665, 2735, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 17:16:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1666, 2739, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-10 20:14:27', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1667, 2743, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 13:20:10', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1668, 2744, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 13:44:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1669, 2745, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 13:48:09', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1670, 2746, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 16:40:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1671, 2747, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 16:45:56', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1672, 2748, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 16:46:25', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1673, 2749, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 16:47:51', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1674, 2750, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 17:53:24', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1675, 2751, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 17:54:04', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1676, 2752, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 17:55:08', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1677, 2753, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 17:55:30', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1678, 2754, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 18:05:53', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1679, 2755, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 18:23:34', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1680, 2756, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 18:26:37', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1681, 2757, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 18:27:24', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1682, 2758, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 18:29:03', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1683, 2759, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 18:46:32', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1684, 2761, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 19:06:22', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1685, 2762, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 19:27:32', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1686, 2763, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 19:28:19', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1687, 2764, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 20:18:00', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1688, 2765, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 20:21:08', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1689, 2766, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 20:24:15', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1690, 2767, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 20:32:48', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1691, 2768, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 20:55:43', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1692, 2771, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 21:09:46', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1693, 2770, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 21:14:20', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1694, 2772, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 21:18:38', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1695, 2773, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 21:28:38', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1696, 2774, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 22:16:31', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1697, 2776, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 22:28:39', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1698, 2777, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 22:30:38', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1699, 2778, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 22:31:22', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1700, 2775, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 22:32:02', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1701, 2779, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-11 22:32:22', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1702, 2780, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 02:10:43', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1703, 2781, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 03:30:40', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1704, 2783, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 08:02:46', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1705, 2784, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 08:04:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1706, 2786, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 08:24:32', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1707, 2788, 2, '行程有变,暂时不需要用车', NULL, NULL, NULL, 2, '2020-09-12 12:00:20', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1708, 2789, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 12:12:16', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1709, 2790, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 15:30:48', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1710, 2791, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-12 15:33:17', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1711, 2793, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-13 05:03:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1712, 2794, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-13 12:03:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1713, 2795, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-13 12:03:24', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1714, 2796, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-13 12:16:27', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1715, 2797, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-13 17:29:11', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1716, 2798, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-14 14:55:49', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1717, 2799, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-14 14:58:18', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1718, 2800, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-15 16:06:07', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1719, 2801, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-15 16:06:40', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1720, 2802, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-15 16:08:13', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1721, 2803, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-16 10:53:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1722, 2807, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-16 21:10:23', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1723, 2808, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-16 21:11:14', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1724, 2809, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-17 09:25:44', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1725, 2810, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-17 09:26:29', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1726, 2811, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-17 09:57:28', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1727, 2813, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-18 11:50:14', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1728, 2814, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-19 12:43:59', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1729, 2815, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-19 12:44:35', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1730, 2818, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 15:40:52', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1731, 2819, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 15:41:29', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1732, 2817, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 15:59:52', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1733, 2820, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 16:00:28', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1734, 2, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 16:27:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1735, 3, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 16:30:14', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1736, 4, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 16:34:28', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1737, 2821, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 16:34:51', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1738, 5, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-21 16:37:12', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1739, 6, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 10:11:10', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1740, 7, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 10:24:39', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1741, 8, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 14:39:52', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1742, 9, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 14:40:05', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1743, 10, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 14:40:16', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1744, 11, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 14:51:43', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1745, 12, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 14:52:09', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1746, 13, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 14:53:44', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1747, 14, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:00:38', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1748, 15, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:01:14', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1749, 16, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:03:14', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1750, 17, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:09:36', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1751, 18, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:20:49', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1752, 2822, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:22:59', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1753, 23, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 15:58:39', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1754, 25, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:01:25', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1755, 20, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:19:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1756, 28, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:31:34', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1757, 29, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:31:54', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1758, 30, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:32:51', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1759, 31, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:34:47', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1760, 32, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:36:31', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1761, 33, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:37:17', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1762, 34, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:40:30', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1763, 35, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:48:41', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1764, 36, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:56:42', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1765, 37, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 16:57:02', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1766, 39, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 17:50:09', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1767, 40, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 17:54:01', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1768, 41, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 17:54:39', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1769, 43, 1, '行程有变,暂时不需要用车', NULL, NULL, 3.00, 1, '2020-09-22 18:03:11', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1770, 47, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 18:18:49', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1771, 2824, 2, '行程有变,暂时不需要用车', NULL, NULL, NULL, 2, '2020-09-22 18:22:39', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1772, 50, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 18:27:23', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1773, 51, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 18:28:52', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1774, 52, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-22 18:29:18', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1775, 54, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-23 14:51:59', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1776, 57, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-23 15:36:44', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1777, 60, 1, '行程有变,暂时不需要用车', NULL, 3, 3.00, 2, '2020-09-23 16:17:46', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1778, 62, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 15:55:08', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1779, 63, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 16:08:16', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1780, 67, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 17:03:35', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1781, 68, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 17:08:09', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1782, 69, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 17:09:41', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1783, 70, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 17:13:57', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1784, 71, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-24 17:31:27', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1785, 72, 1, '行程有变,暂时不需要用车', NULL, 3, 3.00, 2, '2020-09-24 17:46:00', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1786, 73, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-29 09:23:37', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1787, 78, 1, '行程有变,暂时不需要用车', NULL, 3, 3.00, 2, '2020-09-29 09:56:25', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1788, 80, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-29 11:27:05', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1789, 2826, 2, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-29 11:33:25', 1, NULL);
+INSERT INTO `t_order_cancel` VALUES (1790, 89, 1, '无司机接单', '无司机接单', NULL, NULL, 2, '2020-09-29 18:23:33', 1, NULL);
+
+-- ----------------------------
+-- Table structure for t_order_chartered_car
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_chartered_car`;
+CREATE TABLE `t_order_chartered_car`  (
+  `id` int(11) NOT NULL,
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `orderNumber` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '订单编号',
+  `traveltime` datetime(0) NULL DEFAULT NULL COMMENT '出行时间',
+  `carTime` int(5) NULL DEFAULT NULL COMMENT '用车时长(天)',
+  `serverCarModelId` int(11) NULL DEFAULT NULL COMMENT '服务车型id',
+  `modelUse` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '车型用途',
+  `peopleNumber` int(11) NULL DEFAULT NULL COMMENT '乘车人数',
+  `contactPerson` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '联系人',
+  `contactPhone` varchar(45) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '联系电话',
+  `state` int(2) NULL DEFAULT NULL COMMENT '订单状态(1=待处理,2=已处理)',
+  `remark` varchar(200) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '处理备注',
+  `isDelete` int(2) NULL DEFAULT NULL COMMENT '删除状态(1=否,2=是)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE,
+  UNIQUE INDEX `id_UNIQUE`(`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '订单-包车' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_order_chartered_car
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_order_cross_city
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_cross_city`;
+CREATE TABLE `t_order_cross_city`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `serverCarModelId` int(11) NULL DEFAULT NULL COMMENT '服务车型',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '接单司机ID',
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '线路id',
+  `lineShiftDriverId` int(11) NULL DEFAULT NULL COMMENT '预约班次数据id',
+  `carId` int(11) NULL DEFAULT NULL COMMENT '车辆id',
+  `orderNum` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '订单号',
+  `placementLon` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点经度',
+  `placementLat` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点纬度',
+  `placementAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下单地点',
+  `startLon` double(20, 10) NULL DEFAULT NULL COMMENT '出发地经度值',
+  `startLat` double(20, 10) NULL DEFAULT NULL COMMENT '出发地纬度值',
+  `endLon` double(20, 10) NULL DEFAULT NULL COMMENT '目的地经度',
+  `startAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '出发地地点',
+  `endLat` double(20, 10) NULL DEFAULT NULL COMMENT '目的地纬度',
+  `endAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '目的地地点',
+  `boardingLon` double(20, 10) NULL DEFAULT NULL COMMENT '上车点经度',
+  `boardingLat` double(20, 10) NULL DEFAULT NULL COMMENT '上车点纬度',
+  `boardingAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '上车点',
+  `boardingTime` datetime(0) NULL DEFAULT NULL COMMENT '上车时间',
+  `getoffLon` double(20, 10) NULL DEFAULT NULL COMMENT '下车点经度',
+  `getoffLat` double(20, 10) NULL DEFAULT NULL COMMENT '下车点纬度',
+  `getoffAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下车地点',
+  `getoffTime` datetime(0) NULL DEFAULT NULL COMMENT '下车时间',
+  `mileage` double(10, 2) NULL DEFAULT NULL COMMENT '行驶里程数(米)',
+  `payManner` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=OK平台支付,2=其他方式支付)',
+  `payType` smallint(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝,3=其他)',
+  `orderMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单金额',
+  `redPacketMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '红包抵扣金额',
+  `couponMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券抵扣金额',
+  `redPacketId` int(11) NULL DEFAULT NULL COMMENT '红包记录id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  `discount` double(11, 2) NULL DEFAULT NULL COMMENT '折扣',
+  `discountMoney` double(11, 2) NULL DEFAULT NULL COMMENT '折扣优惠金额',
+  `activityId` int(11) NULL DEFAULT NULL COMMENT '折扣活动id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `payMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  `passengers` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '乘车人',
+  `passengersPhone` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '乘车人电话',
+  `peopleNumber` int(2) NULL DEFAULT NULL COMMENT '出行人数',
+  `seatNumber` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '座位编号',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '排序(订单为拼车时的排序-不是所有订单的排序)',
+  `state` int(2) NULL DEFAULT NULL COMMENT '状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '下单时间',
+  `travelTime` datetime(0) NULL DEFAULT NULL COMMENT '出行时间',
+  `snatchOrderTime` datetime(0) NULL DEFAULT NULL COMMENT '抢单时间',
+  `setOutTime` datetime(0) NULL DEFAULT NULL COMMENT '司机点出发时间',
+  `arriveTime` datetime(0) NULL DEFAULT NULL COMMENT '司机到达预约地点时间',
+  `startServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '开始服务时间',
+  `endServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '结束服务时间',
+  `travelMode` smallint(1) NULL DEFAULT NULL COMMENT '出行方式(1=拼车,2=包车)',
+  `orderSource` int(1) NULL DEFAULT NULL COMMENT '下单方式(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `invoiceId` int(11) NULL DEFAULT NULL COMMENT '发票id',
+  `isReassign` int(1) NULL DEFAULT NULL COMMENT '是否是改派单(1=否,2=是)',
+  `reassignNotice` int(1) NULL DEFAULT NULL COMMENT '改派通知(0=没有改派,1=改派中,2=已改派)',
+  `trackId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '高德猎鹰上的轨迹id',
+  `isDelete` int(1) NULL DEFAULT 1 COMMENT '是否删除  1=否 2=是',
+  `oldState` int(1) NULL DEFAULT NULL COMMENT '状态(改派前订单状态)',
+  `telX` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号',
+  `bindId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号绑定关系id',
+  `payOrderId` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '工行支付下单订单号',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2816 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单-跨城' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_order_cross_city
+-- ----------------------------
+INSERT INTO `t_order_cross_city` VALUES (2584, 184, NULL, 904, NULL, NULL, NULL, 'TAXI000001', 109.4054421550, 24.3118025388, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054799437, 24.3117937916, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', 109.4054360000, 24.3118360000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-08-17 19:05:33', 109.4054360000, 24.3118360000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-08-17 19:06:21', 0.00, 1, 2, 7.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 7.00, NULL, '15907727138', NULL, NULL, NULL, 9, '2020-08-17 19:04:41', '2020-08-17 19:04:00', '2020-08-17 19:04:48', '2020-08-17 19:05:01', '2020-08-17 19:05:07', '2020-08-17 19:05:33', '2020-08-17 19:06:21', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2585, 185, NULL, 905, NULL, NULL, 943, 'TAXI000002', 104.0559895833, 30.5855577257, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0559895833, 30.5855577257, 104.0684510000, '天府新谷(府城大道西段)', 30.6061370000, '成都南站', 104.0557850483, 30.5856586763, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:15:13', 104.0557850483, 30.5856586763, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:15:16', 0.00, 1, 1, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '18380581367', NULL, NULL, NULL, 8, '2020-08-17 19:15:02', '2020-08-17 19:15:00', '2020-08-17 19:15:07', '2020-08-17 19:15:10', '2020-08-17 19:15:12', '2020-08-17 19:15:13', '2020-08-17 19:15:16', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2586, 186, NULL, 905, NULL, NULL, 943, 'TAXI000003', 104.0557800411, 30.5857637066, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557538053, 30.5856664905, 104.0656540000, '天府新谷(府城大道西段)11栋', 30.5921010000, '高新区人事劳动和社会保障局', 104.0557790338, 30.5856626662, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:20:56', 104.0557790338, 30.5856626662, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:21:00', 0.00, 1, 1, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '18380475138', NULL, NULL, NULL, 8, '2020-08-17 19:20:34', '2020-08-17 19:20:00', '2020-08-17 19:20:37', '2020-08-17 19:20:44', '2020-08-17 19:20:54', '2020-08-17 19:20:56', '2020-08-17 19:21:00', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2587, 184, NULL, 903, NULL, NULL, NULL, 'TAXI000004', 109.4052644454, 24.3114942511, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052908480, 24.3114821370, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15907727138', NULL, NULL, NULL, 10, '2020-08-17 20:15:44', '2020-08-17 21:00:00', '2020-08-17 20:16:03', NULL, NULL, NULL, NULL, 2, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, '', '', NULL);
+INSERT INTO `t_order_cross_city` VALUES (2588, 184, NULL, 403, NULL, NULL, NULL, 'TAXI000005', 109.4052640152, 24.3114957904, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052908480, 24.3114821370, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', 109.4053090751, 24.3114942888, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-17 20:18:02', 109.4111274951, 24.3091613152, '广西壮族自治区柳州市城中区城中街道柳江路', '2020-08-17 20:21:14', 656.00, 1, 1, 6.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, NULL, '15907727138', NULL, NULL, NULL, 9, '2020-08-17 20:17:46', '2020-08-17 20:17:00', '2020-08-17 20:17:52', '2020-08-17 20:17:52', '2020-08-17 20:17:52', '2020-08-17 20:18:02', '2020-08-17 20:21:14', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2589, 187, NULL, 905, NULL, NULL, 943, 'TAXI000001', 104.0557740265, 30.5857676964, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557739219, 30.5857680878, 104.0839090000, '天府新谷(府城大道西段)11栋', 30.6608140000, '市二医院(地铁站)', 104.0557740000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:53:39', 104.0557770340, 30.5857707034, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:53:47', 7157713.00, 1, 1, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15928265276', NULL, NULL, NULL, 8, '2020-08-18 09:28:52', '2020-08-18 09:28:00', '2020-08-18 09:28:52', '2020-08-18 09:53:37', '2020-08-18 09:53:38', '2020-08-18 09:53:39', '2020-08-18 09:53:47', 2, 2, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2590, 187, NULL, 905, NULL, NULL, 943, 'TAXI000002', 104.0557710191, 30.5857646894, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557859918, 30.5856560999, 104.0839090000, '天府新谷(府城大道西段)11栋', 30.6608140000, '市二医院(地铁站)', 104.0557800000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:55:58', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:56:03', 0.00, 1, 1, 10.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 10.00, NULL, '15928265276', NULL, NULL, NULL, 8, '2020-08-18 09:55:18', '2020-08-18 09:55:00', '2020-08-18 09:55:18', NULL, NULL, '2020-08-18 09:55:58', '2020-08-18 09:56:03', 2, 2, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2591, 187, NULL, 905, NULL, NULL, 943, 'TAXI000003', 104.0557770341, 30.5857727041, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557766041, 30.5857553882, 104.0839090000, '天府新谷(府城大道西段)11栋', 30.6608140000, '市二医院(地铁站)', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 10:02:38', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 10:03:11', 57261800.00, 1, NULL, 10.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15928265276', NULL, NULL, NULL, 7, '2020-08-18 10:00:29', '2020-08-18 10:00:00', '2020-08-18 10:00:29', NULL, NULL, '2020-08-18 10:02:38', '2020-08-18 10:03:11', 2, 2, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2592, 189, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0658610000, '成都市武侯区武侯祠大街69号', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15620989414', NULL, NULL, NULL, 10, '2020-08-19 15:03:17', '2020-08-19 15:03:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2593, 189, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0658610000, '成都市武侯区武侯祠大街69号', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15620989414', NULL, NULL, NULL, 10, '2020-08-19 15:04:03', '2020-08-19 15:03:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2594, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 104.0557820450, 30.5857437028, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557766041, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:08:53', '2020-08-19 17:08:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2595, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 104.0557830468, 30.5857306998, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:09:42', '2020-08-19 17:09:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2596, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 104.0557780355, 30.5857496973, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:10:12', '2020-08-19 17:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2597, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 104.0557820448, 30.5857387009, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:10:39', '2020-08-19 17:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2598, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 104.0557810437, 30.5857687104, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:11:31', '2020-08-19 17:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2599, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000008', 104.0557810437, 30.5857687104, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:11:42', '2020-08-19 17:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2600, 186, NULL, 910, NULL, NULL, 945, 'TAXI000009', 104.0557820448, 30.5857397013, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:19:37', '2020-08-19 17:19:00', '2020-08-19 17:19:37', NULL, NULL, NULL, NULL, 2, 2, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2601, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000010', 104.0560324436, 30.5855384657, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560861919, 30.5845752992, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:21:34', '2020-08-19 17:21:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2602, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000011', 104.0557820000, 30.5856560000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:35:01', '2020-08-19 17:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2603, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000012', 104.0557820000, 30.5856560000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:36:35', '2020-08-19 17:36:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2604, 186, NULL, NULL, NULL, NULL, NULL, 'TAXI000013', 104.0557619920, 30.5856606324, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18380475138', NULL, NULL, NULL, 10, '2020-08-19 17:37:42', '2020-08-19 17:37:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2605, 188, NULL, 910, NULL, NULL, 945, 'TAXI000014', 104.0557800416, 30.5857747107, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15828353127', NULL, NULL, NULL, 10, '2020-08-19 17:38:25', '2020-08-19 17:38:00', '2020-08-19 17:38:29', NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2606, 188, NULL, 910, NULL, NULL, 945, 'TAXI000015', 104.0557800411, 30.5857637066, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 17:43:19', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 17:45:19', 0.00, 1, 1, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15828353127', NULL, NULL, NULL, 8, '2020-08-19 17:38:51', '2020-08-19 17:38:00', '2020-08-19 17:38:53', '2020-08-19 17:41:17', '2020-08-19 17:41:21', '2020-08-19 17:43:19', '2020-08-19 17:45:19', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2607, 183, NULL, NULL, NULL, NULL, NULL, 'TAXI000016', 104.0557780344, 30.5857266886, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557350298, 30.5856664905, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18583738369', NULL, NULL, NULL, 10, '2020-08-19 17:48:50', '2020-08-19 17:48:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2608, 188, NULL, 910, NULL, NULL, 945, 'TAXI000017', 104.0557770334, 30.5857576984, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557886740, 30.5853755521, 104.0684510000, '誉峰东区5幢', 30.6061370000, '火车南站', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:00:22', 104.0557890000, 30.5856540000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:03:18', 0.00, 2, NULL, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15828353127', NULL, NULL, NULL, 9, '2020-08-19 17:59:55', '2020-08-19 17:59:00', '2020-08-19 17:59:56', '2020-08-19 18:00:15', '2020-08-19 18:00:17', '2020-08-19 18:00:22', '2020-08-19 18:03:18', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2609, 188, NULL, 910, NULL, NULL, 945, 'TAXI000018', 104.0560096571, 30.5855327691, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560861919, 30.5845752992, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:09:50', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:10:06', 0.00, 1, 2, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15828353127', NULL, NULL, NULL, 9, '2020-08-19 18:08:51', '2020-08-19 18:08:00', '2020-08-19 18:08:53', '2020-08-19 18:09:43', '2020-08-19 18:09:45', '2020-08-19 18:09:50', '2020-08-19 18:10:06', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2610, 188, NULL, 910, NULL, NULL, 945, 'TAXI000019', 104.0560549588, 30.5855324978, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560549588, 30.5855324978, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:12:19', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:12:22', 0.00, 1, 2, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15828353127', NULL, NULL, NULL, 8, '2020-08-19 18:12:11', '2020-08-19 18:12:00', '2020-08-19 18:12:12', '2020-08-19 18:12:15', '2020-08-19 18:12:17', '2020-08-19 18:12:19', '2020-08-19 18:12:22', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2611, 188, NULL, 910, NULL, NULL, 945, 'TAXI000020', 104.0560563151, 30.5855330404, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560549588, 30.5855324978, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:13:07', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:13:10', 0.00, 1, 3, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15828353127', NULL, NULL, NULL, 8, '2020-08-19 18:13:00', '2020-08-19 18:13:00', '2020-08-19 18:13:03', '2020-08-19 18:13:05', '2020-08-19 18:13:06', '2020-08-19 18:13:07', '2020-08-19 18:13:10', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2612, 189, NULL, 910, NULL, NULL, 945, 'TAXI000021', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0658610000, '成都市武侯区锦晖西二街126号', 30.6574010000, '天府广场', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:17:10', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:17:24', 0.00, 1, 1, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15620989414', NULL, NULL, NULL, 9, '2020-08-19 18:16:21', '2020-08-19 18:16:20', '2020-08-19 18:16:26', '2020-08-19 18:17:01', '2020-08-19 18:17:05', '2020-08-19 18:17:10', '2020-08-19 18:17:24', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2613, 189, NULL, NULL, NULL, NULL, NULL, 'TAXI000022', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0658610000, '成都市武侯区锦晖西二街126号', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15620989414', NULL, NULL, NULL, 10, '2020-08-19 18:18:32', '2020-08-19 18:18:31', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2614, 184, NULL, 913, NULL, NULL, 642, 'TAXI000001', 109.4203405253, 24.3143196974, '广西壮族自治区柳州市城中区公园街道滨江东路19-1号金沙角', 109.4187541959, 24.3117387937, 109.4449990000, '文惠路与滨江东路交叉口', 24.3261600000, '柳州市人民医院', 109.4202440357, 24.3142562168, '广西壮族自治区柳州市城中区公园街道滨江东路19-1号金沙角', '2020-08-20 15:54:00', 109.4208940750, 24.3181546664, '广西壮族自治区柳州市城中区公园街道滨江东路', '2020-08-20 15:56:39', 475.00, 2, NULL, 6.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15907727138', NULL, NULL, NULL, 9, '2020-08-20 15:53:17', '2020-08-20 15:53:00', '2020-08-20 15:53:31', '2020-08-20 15:53:31', '2020-08-20 15:53:31', '2020-08-20 15:54:00', '2020-08-20 15:56:39', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2615, 184, NULL, 913, NULL, NULL, 642, 'TAXI000002', 109.4189446303, 24.3266332763, '广西壮族自治区柳州市柳北区解放街道滨江东路柳州市委大院', 109.4187541959, 24.3117387937, 109.4030910000, '文惠路与滨江东路交叉口', 24.3918490000, 'OK平价超市', 109.4202610347, 24.3199878499, '广西壮族自治区柳州市城中区公园街道滨江路40号', '2020-08-20 15:59:47', 109.4159778268, 24.3098263460, '广西壮族自治区柳州市城中区城中街道滨江东路4号', '2020-08-20 16:02:17', 1862.00, 1, 2, 7.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 7.00, NULL, '15907727138', NULL, NULL, NULL, 8, '2020-08-20 15:58:37', '2020-08-20 15:58:00', '2020-08-20 15:58:57', '2020-08-20 15:58:57', '2020-08-20 15:58:57', '2020-08-20 15:59:47', '2020-08-20 16:02:17', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2616, 184, NULL, 913, NULL, NULL, 642, 'TAXI000003', 109.4105999450, 24.3091620128, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', 109.4187541959, 24.3117387937, 109.4449990000, '文惠路与滨江东路交叉口', 24.3261600000, '柳州市人民医院', 109.4105107072, 24.3091614223, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-08-20 16:04:52', 109.4094271171, 24.3091948927, '广西壮族自治区柳州市城中区中南街道滨江西路柳堤', '2020-08-20 16:06:09', 128.00, 2, NULL, 6.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15907727138', NULL, NULL, NULL, 9, '2020-08-20 16:03:27', '2020-08-20 16:03:00', '2020-08-20 16:03:33', '2020-08-20 16:03:33', '2020-08-20 16:03:33', '2020-08-20 16:04:52', '2020-08-20 16:06:09', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2617, 184, NULL, 403, NULL, NULL, NULL, 'TAXI000001', 109.4052905050, 24.3116129841, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052090406, 24.3116153541, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', 109.4054257989, 24.3115442817, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', '2020-08-21 09:34:21', 109.4065595354, 24.3100281143, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-21 09:37:22', 442.00, 1, 2, 6.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, NULL, '15907727138', NULL, NULL, NULL, 8, '2020-08-21 09:33:51', '2020-08-21 09:33:00', '2020-08-21 09:34:01', '2020-08-21 09:34:01', '2020-08-21 09:34:01', '2020-08-21 09:34:21', '2020-08-21 09:37:22', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2618, 192, NULL, 910, NULL, NULL, 945, 'TAXI000002', 104.0557740265, 30.5857676964, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:37:45', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:37:49', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:34:58', '2020-08-21 11:34:00', '2020-08-21 11:35:03', '2020-08-21 11:35:03', '2020-08-21 11:35:03', '2020-08-21 11:37:45', '2020-08-21 11:37:49', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2619, 192, NULL, 910, NULL, NULL, 945, 'TAXI000003', 104.0557770329, 30.5857476946, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:38:19', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:38:21', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:38:13', '2020-08-21 11:38:00', '2020-08-21 11:38:16', '2020-08-21 11:38:16', '2020-08-21 11:38:16', '2020-08-21 11:38:19', '2020-08-21 11:38:21', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2620, 192, NULL, 910, NULL, NULL, 945, 'TAXI000004', 104.0557770336, 30.5857617000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558050000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:40:01', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:40:41', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:39:52', '2020-08-21 11:39:00', '2020-08-21 11:39:57', '2020-08-21 11:39:57', '2020-08-21 11:39:57', '2020-08-21 11:40:01', '2020-08-21 11:40:41', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2621, 192, NULL, 910, NULL, NULL, 945, 'TAXI000005', 104.0557770340, 30.5857707034, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:45:52', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:45:55', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:45:45', '2020-08-21 11:45:00', '2020-08-21 11:45:48', '2020-08-21 11:45:48', '2020-08-21 11:45:48', '2020-08-21 11:45:52', '2020-08-21 11:45:55', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2622, 192, NULL, 910, NULL, NULL, 945, 'TAXI000006', 104.0557740267, 30.5857706976, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:46:30', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:47:29', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:46:24', '2020-08-21 11:46:00', '2020-08-21 11:46:27', '2020-08-21 11:46:27', '2020-08-21 11:46:27', '2020-08-21 11:46:30', '2020-08-21 11:47:29', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2623, 192, NULL, 910, NULL, NULL, 945, 'TAXI000007', 104.0557740271, 30.5857787006, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:51:48', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:51:52', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:51:41', '2020-08-21 11:51:00', '2020-08-21 11:51:45', '2020-08-21 11:51:45', '2020-08-21 11:51:45', '2020-08-21 11:51:48', '2020-08-21 11:51:52', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2624, 192, NULL, 910, NULL, NULL, 945, 'TAXI000008', 104.0557629996, 30.5857686754, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0557930000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:53:07', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:53:12', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:52:58', '2020-08-21 11:52:00', '2020-08-21 11:53:00', '2020-08-21 11:53:00', '2020-08-21 11:53:00', '2020-08-21 11:53:07', '2020-08-21 11:53:12', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2625, 192, NULL, 910, NULL, NULL, 945, 'TAXI000009', 104.0557740266, 30.5857686968, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0557980000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:56:26', 104.0557980000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:56:41', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15928267524', NULL, NULL, NULL, 8, '2020-08-21 11:56:20', '2020-08-21 11:56:00', '2020-08-21 11:56:22', '2020-08-21 11:56:22', '2020-08-21 11:56:22', '2020-08-21 11:56:26', '2020-08-21 11:56:41', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2626, 184, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4053641279, 24.3119554880, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4026756942, 24.3256268176, 109.4449990000, '雅儒社区', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907727138', NULL, NULL, NULL, 10, '2020-08-22 20:19:02', '2020-08-22 20:19:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2627, 184, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4054309958, 24.3115407131, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', 109.4026756942, 24.3256268176, 109.4449990000, '雅儒社区', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907727138', NULL, NULL, NULL, 10, '2020-08-22 20:21:41', '2020-08-22 20:21:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2628, 184, NULL, 875, NULL, NULL, 838, 'TAXI000003', 109.4054516462, 24.3115862298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', 109.4026756942, 24.3256268176, 109.4449990000, '雅儒社区', 24.3261600000, '柳州市人民医院', 109.4065095238, 24.3101780685, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-22 20:24:32', 109.4142611589, 24.3092771401, '广西壮族自治区柳州市城中区城中街道滨江东路柳州市人民政府国有资产监督管理委员会', '2020-08-22 20:30:37', 997.00, 1, 2, 6.80, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.80, NULL, '15907727138', NULL, NULL, NULL, 9, '2020-08-22 20:23:00', '2020-08-22 20:22:00', '2020-08-22 20:23:30', '2020-08-22 20:23:30', '2020-08-22 20:23:30', '2020-08-22 20:24:32', '2020-08-22 20:30:37', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2629, 193, NULL, 875, NULL, NULL, 838, 'TAXI000004', 109.4143678761, 24.3094681858, '广西壮族自治区柳州市城中区城中街道柳江路鸿府大厦', 109.4143969474, 24.3093701986, 109.4030910000, '柳江路与滨江东路交叉口', 24.3918490000, 'OK平价超市', 109.4142944910, 24.3092438058, '广西壮族自治区柳州市城中区城中街道滨江东路柳州市人民政府国有资产监督管理委员会', '2020-08-22 20:38:11', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '18172192319', NULL, NULL, NULL, 10, '2020-08-22 20:38:02', '2020-08-22 20:38:00', '2020-08-22 20:38:11', '2020-08-22 20:38:11', '2020-08-22 20:38:11', '2020-08-22 20:38:11', NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2630, 193, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4143527870, 24.3093981820, '广西壮族自治区柳州市城中区城中街道柳江路柳州市人民政府国有资产监督管理委员会', 109.4143969474, 24.3093701986, 109.4449990000, '柳江路与滨江东路交叉口', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18172192319', NULL, NULL, NULL, 10, '2020-08-22 20:40:00', '2020-08-22 20:39:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2631, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4104725477, 24.3198771159, '广西壮族自治区柳州市城中区城中街道广场路地王公馆', 109.4109849718, 24.3200103082, 109.3882920000, '地王公馆', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-08-29 08:43:05', '2020-08-29 08:43:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2632, 189, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15620989414', NULL, NULL, NULL, 10, '2020-08-29 09:40:00', '2020-08-29 09:39:59', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2633, 195, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4906580000, 24.3191390000, '广西壮族自治区柳州市鱼峰区阳和街道广西鹿寨农村商业银行(古亭山支行)', 109.4906580000, 24.3191390000, 109.4449080000, '柳州市鱼峰区兴亭路23号', 24.3138080000, '德润中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18077225823', NULL, NULL, NULL, 10, '2020-08-29 12:09:41', '2020-08-29 12:09:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2634, 200, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.3921630000, 24.2845070000, '广西壮族自治区柳州市柳南区银山街道银海小区北区', 109.3921630000, 24.2845070000, 109.3384600000, '柳州市柳南区航生路25号', 24.2594550000, '柳江农贸市场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15777252036', NULL, NULL, NULL, 1, '2020-08-29 16:58:51', '2020-08-29 16:58:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2635, 202, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4332050000, 24.3523640000, '广西壮族自治区柳州市城中区河东街道柳州市第十二中学', 109.4332050000, 24.3523640000, 109.4289940000, '柳州市城中区东环大道145-131号', 24.3562300000, '广西柳州高级中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15677223830', NULL, NULL, NULL, 10, '2020-08-29 18:14:07', '2020-08-29 18:14:05', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2636, 202, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.4332050000, 24.3523640000, '广西壮族自治区柳州市城中区河东街道柳州市第十二中学', 109.4332050000, 24.3523640000, 109.4289940000, '柳州市城中区桂中大道143号', 24.3562300000, '广西柳州高级中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15677223830', NULL, NULL, NULL, 10, '2020-08-29 18:14:30', '2020-08-29 18:14:28', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2637, 206, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路227号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13026928410', NULL, NULL, NULL, 10, '2020-08-30 12:14:24', '2020-08-30 12:14:23', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2638, 206, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路227号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13026928410', NULL, NULL, NULL, 10, '2020-08-30 12:15:55', '2020-08-30 12:15:54', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2639, 206, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路215号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13026928410', NULL, NULL, NULL, 10, '2020-08-30 12:18:20', '2020-08-30 12:18:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2640, 206, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路98号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13026928410', NULL, NULL, NULL, 10, '2020-08-30 12:19:33', '2020-08-30 12:19:32', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2641, 207, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4289940000, 24.3562300000, '广西壮族自治区柳州市城中区河东街道广西柳州高级中学', 109.4289940000, 24.3562300000, 109.4127310000, '柳州市城中区高新五路22号', 24.3621550000, '锦都华庭', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18577201716', NULL, NULL, NULL, 10, '2020-08-30 12:31:07', '2020-08-30 12:31:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2642, 208, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.3833420000, 24.2691840000, '广西壮族自治区柳州市柳南区南环街道水木新华', 109.3833420000, 24.2691840000, 109.4837810000, '柳州市柳南区航四路19号9栋', 24.3098120000, '香港新城', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18277265480', NULL, NULL, NULL, 10, '2020-08-30 14:48:19', '2020-08-30 14:48:18', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2643, 211, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.4108280000, 24.3043300000, '广西壮族自治区柳州市鱼峰区驾鹤街道银泰城(鱼峰路)', 109.4108280000, 24.3043300000, 109.4470110000, '柳州市柳南区鱼峰路32号', 24.2777970000, '天翼九龙印象', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17774857859', NULL, NULL, NULL, 10, '2020-08-30 17:03:33', '2020-08-30 17:03:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2644, 213, NULL, NULL, NULL, NULL, NULL, 'TAXI000008', 109.3927760000, 24.3118010000, '广西壮族自治区柳州市柳南区南站街道柳南区太阳社区卫生服务中心', 109.3927760000, 24.3118010000, 109.4261180000, '柳州市柳南区鹅山路3区', 24.3345900000, '柳州投资大厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18172248490', NULL, NULL, NULL, 10, '2020-08-30 19:38:27', '2020-08-30 19:38:24', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2645, 215, NULL, NULL, NULL, NULL, NULL, 'TAXI000009', 109.3960321723, 24.3326540799, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957850477, 24.3327761502, 109.3882920000, '在水一方(西堤路)', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13977291069', NULL, NULL, NULL, 10, '2020-08-30 20:41:00', '2020-08-31 06:30:00', NULL, NULL, NULL, NULL, NULL, 2, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2646, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, 109.3882920000, '柳州市城中区滨江西路15栋17栋', 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-08-31 09:20:01', '2020-08-31 09:20:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2647, 211, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4444830000, 24.3228400000, '广西壮族自治区柳州市鱼峰区麒麟街道南亚名邸幼儿园', 109.4444830000, 24.3228400000, 109.4470110000, '柳州市鱼峰区文昌路63号', 24.2777970000, '天翼九龙印象', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17774857859', NULL, NULL, NULL, 10, '2020-08-31 09:38:11', '2020-08-31 09:38:12', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2648, 219, NULL, 390, NULL, NULL, 551, 'TAXI000003', 109.3919310000, 24.3263990000, '广西壮族自治区柳州市柳南区河西街道磨滩路7号院', 109.3919310000, 24.3263990000, 109.4898610000, '湘桂铁路扩改中铁电气化局工程指挥部', 24.3185460000, '古亭山市场(公交站)', 109.4139113234, 24.3122763531, '广西壮族自治区柳州市城中区公园街道中山东路柳州市直机关二大院', '2020-09-02 06:38:28', 109.3793463611, 24.2793720319, '广西壮族自治区柳州市柳南区南环街道鹅溪路', '2020-09-02 06:52:13', 176748.00, 1, NULL, 18.10, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '18176724543', NULL, NULL, NULL, 7, '2020-08-31 12:14:01', '2020-08-31 12:14:00', '2020-08-31 12:14:49', '2020-08-31 12:14:49', '2020-08-31 12:14:49', '2020-09-02 06:38:28', '2020-09-02 06:52:13', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2649, 228, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.3405910000, 24.2641450000, '广西壮族自治区柳州市柳南区太阳村镇柳州市兴腾铸造配件厂', 109.3405910000, 24.2641450000, 109.4470910000, '柳州市柳南区文山路29号', 24.3377600000, '聚福苑10栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13059464518', NULL, NULL, NULL, 10, '2020-09-01 11:08:06', '2020-09-01 11:08:05', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2650, 236, NULL, 390, NULL, NULL, 551, 'TAXI000001', 109.3761730000, 24.2752360000, '广西壮族自治区柳州市柳南区南环街道柳州市花城西饼有限公司', 109.3761730000, 24.2752360000, 109.4102120000, '柳州市竹新学校-日日升艺术幼儿园', 24.3206280000, '步步高广场(广场路)', 109.3750722107, 24.2741687788, '广西壮族自治区柳州市柳南区南环街道柳邕路350-3号柳州市竹新学校', '2020-09-02 07:24:05', 109.4115615420, 24.3200413336, '广西壮族自治区柳州市城中区城中街道广场路地王公馆', '2020-09-02 07:50:29', 11580.00, 2, NULL, 24.70, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15278894074', NULL, NULL, NULL, 9, '2020-09-02 07:04:37', '2020-09-02 07:04:36', '2020-09-02 07:05:27', '2020-09-02 07:05:27', '2020-09-02 07:05:27', '2020-09-02 07:24:05', '2020-09-02 07:50:29', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2651, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.3862080000, 24.2797370000, '广西壮族自治区柳州市柳南区银山街道航云路兆兴园(柳邕路)', 109.3862080000, 24.2797370000, 109.4088210000, '兆兴园', 24.3119660000, '青云菜市(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-02 08:04:38', '2020-09-02 08:04:37', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2652, 238, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4401977539, 24.3070627170, '广西壮族自治区柳州市鱼峰区箭盘山街道中国建设银行(东环路支行)金盛广场', 109.4398973911, 24.3071039804, 109.4090300000, '金盛广场', 24.3019620000, '柳州市房屋登记管理中心(北入口)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18507720528', NULL, NULL, NULL, 10, '2020-09-02 09:32:50', '2020-09-02 09:32:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2653, 239, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.3655940000, 24.2667610000, '广西壮族自治区柳州市柳江区恒大雅苑', 109.3655940000, 24.2667610000, 109.3377820000, '柳州市柳江区柳邕路367号', 24.2558640000, '柳州市中医医院柳江区分院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18778920921', NULL, NULL, NULL, 10, '2020-09-02 14:11:12', '2020-09-02 14:11:11', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2654, 242, NULL, 583, NULL, NULL, NULL, 'TAXI000005', 109.4078471293, 24.3093652261, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4060807585, 24.3105581682, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4079766849, 24.3092783165, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-02 16:38:05', 109.4100105940, 24.3091448350, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:39:24', 195.00, 1, 2, 6.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-02 16:35:37', '2020-09-02 16:35:00', '2020-09-02 16:35:52', '2020-09-02 16:35:52', '2020-09-02 16:35:52', '2020-09-02 16:38:05', '2020-09-02 16:39:24', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2655, 242, NULL, 73, NULL, NULL, 642, 'TAXI000006', 109.4102104338, 24.3092030724, '广西壮族自治区柳州市城中区城中街道柳江路9栋曙光商住楼', 109.4060807585, 24.3105581682, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4101834769, 24.3091596778, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:43:59', 109.4101945964, 24.3091402366, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:44:07', 0.00, 1, 2, 1.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-02 16:43:29', '2020-09-02 16:43:00', '2020-09-02 16:43:32', '2020-09-02 16:43:43', '2020-09-02 16:43:56', '2020-09-02 16:43:59', '2020-09-02 16:44:07', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2656, 242, NULL, 583, NULL, NULL, NULL, 'TAXI000007', 109.4102090235, 24.3092040124, '广西壮族自治区柳州市城中区城中街道柳江路9栋曙光商住楼', 109.4060807585, 24.3105581682, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4141111555, 24.3092938504, '广西壮族自治区柳州市城中区城中街道柳江路鸿府大厦', '2020-09-02 16:53:27', 109.4207272416, 24.3144558634, '广西壮族自治区柳州市城中区公园街道滨江东路金沙角', '2020-09-02 16:56:19', 1329.00, 2, NULL, 6.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-02 16:47:28', '2020-09-02 16:47:00', '2020-09-02 16:47:33', '2020-09-02 16:47:33', '2020-09-02 16:47:33', '2020-09-02 16:53:27', '2020-09-02 16:56:19', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2657, 242, NULL, 583, NULL, NULL, NULL, 'TAXI000008', 109.4211635022, 24.3150161992, '广西壮族自治区柳州市城中区公园街道滨江东路29号金沙角', 109.4211976883, 24.3151131711, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4176610410, 24.3107586538, '广西壮族自治区柳州市城中区水上街道文惠路观瀑广场', '2020-09-02 16:59:18', 109.4105773908, 24.3092113965, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 17:01:20', 1301.00, 2, NULL, 6.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-02 16:57:50', '2020-09-02 16:57:00', '2020-09-02 16:57:56', '2020-09-02 16:57:56', '2020-09-02 16:57:56', '2020-09-02 16:59:18', '2020-09-02 17:01:20', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2658, 184, NULL, 73, NULL, NULL, 642, 'TAXI000009', 109.4100545004, 24.3092073504, '广西壮族自治区柳州市城中区城中街道柳江路130号曙光商住楼', 109.4100209235, 24.3091636471, 109.4449990000, '柳江路与滨江西路交叉口', 24.3261600000, '柳州市人民医院', 109.4081022260, 24.3093780601, '广西壮族自治区柳州市城中区中南街道滨江西路5号', '2020-09-02 17:06:01', 109.4054410000, 24.3118350000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-03 13:58:54', 591.00, 1, 3, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '15907727138', NULL, NULL, NULL, 8, '2020-09-02 17:03:30', '2020-09-02 17:03:00', '2020-09-02 17:03:36', '2020-09-02 17:03:53', '2020-09-02 17:04:01', '2020-09-02 17:06:01', '2020-09-03 13:58:54', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2659, 242, NULL, 924, NULL, NULL, NULL, 'TAXI000010', 109.4053700000, 24.3119610000, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4053700000, 24.3119610000, 109.4418850000, '柳州市中山西路幼儿园', 24.3296320000, '万达广场(柳州城中店)', 109.4054171449, 24.3118275298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:38:48', 109.4054171449, 24.3118275298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:38:56', 0.00, 1, 1, 1.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-02 17:37:53', '2020-09-02 17:37:53', '2020-09-02 17:38:31', '2020-09-02 17:38:37', '2020-09-02 17:38:43', '2020-09-02 17:38:48', '2020-09-02 17:38:56', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2660, 242, NULL, 924, NULL, NULL, NULL, 'TAXI000011', 109.4054110000, 24.3118660000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054102063, 24.3118671219, 109.4138600000, '滨江西路17栋', 24.3184870000, '市中医院', 109.4054321490, 24.3117785454, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:44:28', 109.4054981826, 24.3118345328, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:44:33', 0.00, 1, 2, 0.10, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.10, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-02 17:43:33', '2020-09-02 17:43:00', '2020-09-02 17:43:35', '2020-09-02 17:43:39', '2020-09-02 17:43:57', '2020-09-02 17:44:28', '2020-09-02 17:44:33', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2661, 228, NULL, NULL, NULL, NULL, NULL, 'TAXI000012', 109.4473780000, 24.3386780000, '广西壮族自治区柳州市城中区潭中街道聚福苑(学院路)', 109.4473780000, 24.3386780000, 109.4470910000, '柳州市城中区学院路36号1栋', 24.3377600000, '聚福苑10栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13059464518', NULL, NULL, NULL, 10, '2020-09-02 17:52:53', '2020-09-02 17:52:52', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2662, 189, NULL, NULL, NULL, NULL, NULL, 'TAXI000013', 109.4682490000, 24.2946100000, '广西壮族自治区柳州市鱼峰区阳和街道晨晨教育培训社湾辅导分部社湾中心校', 109.4682490000, 24.2946100000, 104.0701250000, '柳州市社湾中心校', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15620989414', NULL, NULL, NULL, 10, '2020-09-02 18:02:51', '2020-09-02 18:02:51', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2663, 242, NULL, 73, NULL, NULL, 642, 'TAXI000001', 109.4053971319, 24.3114227395, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4159526286, 24.3255021695, 109.4418850000, '柳州市中心', 24.3296320000, '万达广场(柳州城中店)', 109.4054758004, 24.3111777279, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-03 14:08:07', 109.4079266690, 24.3092949804, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-03 14:11:58', 733.00, 2, NULL, 6.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-03 14:07:05', '2020-09-03 14:07:00', '2020-09-03 14:07:44', '2020-09-03 14:07:44', '2020-09-03 14:07:44', '2020-09-03 14:08:07', '2020-09-03 14:11:58', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2664, 251, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4390500000, 24.3705780000, '广西壮族自治区柳州市城中区河东街道东岸盛世花园', 109.4390500000, 24.3705780000, 109.4418850000, '柳州市城中区东环大道302号', 24.3296320000, '万达广场(柳州城中店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18589999268', NULL, NULL, NULL, 10, '2020-09-04 10:56:32', '2020-09-04 10:56:34', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2665, 194, NULL, 203, NULL, NULL, 719, 'TAXI000002', 109.4054614258, 24.3119694010, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054711914, 24.3119637044, 109.4260630000, '中山西路幼儿园', 24.2642010000, '柳州市23度文化创意产业园', 109.4110276393, 24.3119271709, '广西壮族自治区柳州市城中区城中街道中山中路18号柳州商场', '2020-09-04 14:52:52', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-04 14:52:36', '2020-09-04 14:52:00', '2020-09-04 14:52:52', '2020-09-04 14:52:52', '2020-09-04 14:52:52', '2020-09-04 14:52:52', NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, '', '', NULL);
+INSERT INTO `t_order_cross_city` VALUES (2666, 194, NULL, 203, NULL, NULL, 719, 'TAXI000003', 109.4259445530, 24.2641422526, '广西壮族自治区柳州市鱼峰区白莲街道柳州市23度文化创意产业园新坡小苑', 109.4259472656, 24.2641753472, 109.4052380000, '新坡小苑', 24.3118790000, 'OK充电站', 109.4259220459, 24.2641345607, '广西壮族自治区柳州市鱼峰区白莲街道柳州市23度文化创意产业园新坡小苑', '2020-09-04 15:29:05', 109.4052757262, 24.3114942865, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-04 15:50:04', 8935.00, 1, 1, 23.40, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 23.40, NULL, '15907721776', NULL, NULL, NULL, 9, '2020-09-04 15:27:56', '2020-09-04 15:27:00', '2020-09-04 15:28:01', '2020-09-04 15:28:01', '2020-09-04 15:28:01', '2020-09-04 15:29:05', '2020-09-04 15:50:04', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2667, 194, NULL, 203, NULL, NULL, 719, 'TAXI000004', 109.4051836480, 24.3117401801, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052503798, 24.3117803277, 109.3882920000, '中山西路幼儿园', 24.3078740000, '柳州站', 109.4051756927, 24.3117275428, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-04 15:57:07', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-04 15:57:02', '2020-09-04 15:57:00', '2020-09-04 15:57:07', '2020-09-04 15:57:07', '2020-09-04 15:57:07', '2020-09-04 15:57:07', NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, '', '', NULL);
+INSERT INTO `t_order_cross_city` VALUES (2668, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4054527452, 24.3119533963, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054446072, 24.3119593641, 109.4102120000, '中山西路幼儿园', 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-04 16:34:44', '2020-09-04 16:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2669, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.4053884549, 24.3119848633, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4054446072, 24.3119593641, 109.4102120000, '中山西路幼儿园', 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-04 16:36:19', '2020-09-04 16:36:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2670, 258, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.4564740000, 24.3191340000, '广西壮族自治区柳州市城中区静兰街道静兰路9号华展·华园', 109.4564740000, 24.3191340000, 109.4141880000, '柳州市城中区静兰路东一巷36-7号', 24.2902720000, '柳州腾誉汽车养护中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13667808997', NULL, NULL, NULL, 10, '2020-09-04 18:32:05', '2020-09-04 18:32:04', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2671, 258, NULL, NULL, NULL, NULL, NULL, 'TAXI000008', 109.4564740000, 24.3191340000, '广西壮族自治区柳州市城中区静兰街道静兰路9号华展·华园', 109.4564740000, 24.3191340000, 109.4141880000, '柳州市城中区静兰路东一巷36-7号', 24.2902720000, '柳州腾誉汽车养护中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13667808997', NULL, NULL, NULL, 10, '2020-09-04 18:33:06', '2020-09-04 18:33:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2672, 267, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.3637780000, 24.3127970000, '广西壮族自治区柳州市柳南区河西街道柳工生活南区', 109.3637780000, 24.3127970000, 109.3618700000, '柳州市柳南区和平路161号', 24.3145870000, '柳工生活南区102栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15877280926', NULL, NULL, NULL, 10, '2020-09-05 08:35:46', '2020-09-05 08:35:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2673, 267, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.3637780000, 24.3127970000, '广西壮族自治区柳州市柳南区河西街道柳工生活南区', 109.3637780000, 24.3127970000, 109.3618700000, '柳州市柳南区和平路161号', 24.3145870000, '柳工生活南区102栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15877280926', NULL, NULL, NULL, 10, '2020-09-05 08:43:50', '2020-09-05 08:43:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2674, 269, NULL, 54, NULL, NULL, 704, 'TAXI000003', 109.3778260000, 24.3191490000, '广西壮族自治区柳州市柳南区河西街道福柳宏都', 109.3778260000, 24.3191490000, 109.4357970000, '柳州市柳南区龙屯路184号', 24.3497950000, '金色世纪', 109.3796658605, 24.3191101298, '广西壮族自治区柳州市柳南区河西街道宏都路吉祥苑(宏都路)', '2020-09-05 09:15:22', 109.4373506633, 24.3480298473, '广西壮族自治区柳州市城中区河东街道高新三路金色世纪', '2020-09-05 09:35:30', 12337.00, 2, NULL, 25.10, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13877253131', NULL, NULL, NULL, 9, '2020-09-05 09:07:49', '2020-09-05 09:07:48', '2020-09-05 09:08:01', '2020-09-05 09:08:01', '2020-09-05 09:08:01', '2020-09-05 09:15:22', '2020-09-05 09:35:30', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2675, 207, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.4144150000, 24.3619420000, '广西壮族自治区柳州市柳北区柳长街道二棉前生活区', 109.4144150000, 24.3619420000, 109.4332050000, '柳州市柳北区胜利东路东4号', 24.3523640000, '柳州市第十二中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18577201716', NULL, NULL, NULL, 1, '2020-09-05 09:52:07', '2020-09-05 09:52:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2676, 269, NULL, 323, NULL, NULL, 675, 'TAXI000005', 109.4357970000, 24.3497950000, '广西壮族自治区柳州市城中区河东街道金色世纪', 109.4357970000, 24.3497950000, 109.3778260000, '柳州市城中区东环大道145-21号', 24.3191490000, '福柳宏都', 109.4372840713, 24.3480299376, '广西壮族自治区柳州市城中区河东街道高新三路金色世纪', '2020-09-05 11:03:33', 109.3775958507, 24.3196076864, '广西壮族自治区柳州市柳南区河西街道福柳宏都', '2020-09-05 11:23:39', 14349.00, 2, NULL, 25.90, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13877253131', NULL, NULL, NULL, 9, '2020-09-05 10:46:37', '2020-09-05 10:46:37', '2020-09-05 10:48:47', '2020-09-05 10:48:47', '2020-09-05 10:48:47', '2020-09-05 11:03:33', '2020-09-05 11:23:39', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2677, 271, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.4655962457, 24.2729739041, '广西壮族自治区柳州市鱼峰区阳和街道阳和大道89号恒大御景湾', 109.4655585395, 24.2730262587, 109.4098720000, '恒大御景湾', 24.3922790000, '宏桂·香兰花园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15177753267', NULL, NULL, NULL, 10, '2020-09-05 11:22:35', '2020-09-05 11:22:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2678, 271, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.4655523003, 24.2730463325, '广西壮族自治区柳州市鱼峰区阳和街道阳和大道89号恒大御景湾', 109.4655585395, 24.2730262587, 109.4098720000, '恒大御景湾', 24.3922790000, '宏桂·香兰花园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15177753267', NULL, NULL, NULL, 1, '2020-09-05 11:25:23', '2020-09-05 11:25:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2679, 272, NULL, 323, NULL, NULL, 675, 'TAXI000008', 109.4617480000, 24.3098260000, '广西壮族自治区柳州市鱼峰区麒麟街道柳州市华星行汽车销售服务有限公司', 109.4617480000, 24.3098260000, 109.4116750000, '柳州市鱼峰区西江路80号', 24.3122660000, '柳州宾馆', 109.4610758464, 24.3103803972, '广西壮族自治区柳州市鱼峰区麒麟街道西江路广汽丰田柳州华翔西江路店', '2020-09-05 13:38:38', 109.4110109578, 24.3117272337, '广西壮族自治区柳州市城中区城中街道龙城路柳州商场', '2020-09-05 13:55:51', 8387.00, 1, NULL, 17.10, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '13507720175', NULL, NULL, NULL, 7, '2020-09-05 13:31:33', '2020-09-05 13:31:32', '2020-09-05 13:31:48', '2020-09-05 13:31:48', '2020-09-05 13:31:48', '2020-09-05 13:38:38', '2020-09-05 13:55:51', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2680, 274, NULL, NULL, NULL, NULL, NULL, 'TAXI000009', 109.3842520000, 24.2850920000, '广西壮族自治区柳州市柳南区柳石街道柳邕装饰建材市场', 109.3842520000, 24.2850920000, 109.3974910000, '柳州市柳南区柳邕路224-a-22号', 24.2784560000, '中国建设银行24小时自助银行(航二路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13737275888', NULL, NULL, NULL, 10, '2020-09-05 14:57:49', '2020-09-05 14:57:48', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2681, 274, NULL, NULL, NULL, NULL, NULL, 'TAXI000010', 109.3842520000, 24.2850920000, '广西壮族自治区柳州市柳南区柳石街道柳邕装饰建材市场', 109.3842520000, 24.2850920000, 109.3974910000, '柳州市柳南区柳邕路224-a-22号', 24.2784560000, '中国建设银行24小时自助银行(航二路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13737275888', NULL, NULL, NULL, 10, '2020-09-05 15:00:00', '2020-09-05 15:00:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2682, 276, NULL, 324, NULL, NULL, 758, 'TAXI000011', 109.3957030000, 24.3350220000, '广西壮族自治区柳州市柳南区南站街道潭中西路3号柳州市疾病预防控制中心', 109.3957030000, 24.3350220000, 109.3552340000, '柳州市柳南区潭中西路6号', 24.3449130000, '河西桃花源', 109.4393951951, 24.2957255319, '广西壮族自治区柳州市鱼峰区麒麟街道燎原路得利宾馆(燎原路店)', '2020-09-05 20:08:03', 109.4290748555, 24.3462400781, '广西壮族自治区柳州市城中区潭中街道高新三路', '2020-09-05 20:28:25', 60123.00, 1, NULL, 18.30, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '13877261338', NULL, NULL, NULL, 7, '2020-09-05 17:11:38', '2020-09-05 17:11:35', '2020-09-05 17:12:05', '2020-09-05 17:12:05', '2020-09-05 17:12:05', '2020-09-05 20:08:03', '2020-09-05 20:28:25', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2683, 278, NULL, 334, NULL, NULL, 791, 'TAXI000012', 109.4106470000, 24.3210220000, '广西壮族自治区柳州市柳北区解放街道地王公馆步步高广场(广场路)', 109.4106470000, 24.3210220000, 109.4171660000, '柳州市柳北区八一路19门', 24.3822520000, '柳州钢一中学(凤凰岭校区)', 109.4130310894, 24.3659617191, '广西壮族自治区柳州市柳北区柳长街道健民路碧丽星城', '2020-09-05 22:41:06', 109.3899961494, 24.3071062689, '广西壮族自治区柳州市柳南区南站街道飞鹅路柳州站东广场', '2020-09-05 22:53:53', 114804.00, 1, NULL, 24.30, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '13597030858', NULL, NULL, NULL, 7, '2020-09-05 17:50:56', '2020-09-05 17:50:54', '2020-09-05 17:51:08', '2020-09-05 17:51:08', '2020-09-05 17:51:08', '2020-09-05 22:41:06', '2020-09-05 22:53:53', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2684, 189, NULL, NULL, NULL, NULL, NULL, 'TAXI000013', 104.0555240000, 30.5345320000, '四川省成都市武侯区桂溪街道嘉祥瑞庭南城', 104.0555240000, 30.5345320000, 104.0723840000, '成都市武侯区益州大道中段1912号', 30.5130950000, '城南晶座', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15620989414', NULL, NULL, NULL, 10, '2020-09-05 18:06:09', '2020-09-05 18:06:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2685, 279, NULL, NULL, NULL, NULL, NULL, 'TAXI000014', 109.3972970000, 24.3753600000, '广西壮族自治区柳州市柳北区钢城街道广西柳州钢铁集团有限公司办公大楼', 109.3972970000, 24.3753600000, 109.3965700000, '柳州市柳北区北雀路513号', 24.3346580000, '柳州市疾病预防控制中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18276809035', NULL, NULL, NULL, 10, '2020-09-05 18:20:17', '2020-09-05 18:20:16', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2686, 283, NULL, NULL, NULL, NULL, NULL, 'TAXI000015', 109.4795870000, 24.3267760000, '广西壮族自治区柳州市城中区静兰街道柳州莲花山庄酒店', 109.4795870000, 24.3267760000, 109.4795870000, '柳州市城中区桂柳路80号', 24.3267760000, '柳州莲花山庄酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18276724507', NULL, NULL, NULL, 10, '2020-09-05 20:05:44', '2020-09-05 20:05:43', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2687, 283, NULL, NULL, NULL, NULL, NULL, 'TAXI000016', 109.4774630000, 24.3297960000, '广西壮族自治区柳州市城中区静兰街道桂柳路柳州莲花山庄酒店', 109.4795870000, 24.3267760000, 109.5584800000, '兰家', 24.3818240000, '翔云锦苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18276724507', NULL, NULL, NULL, 10, '2020-09-05 20:06:50', '2020-09-05 20:06:49', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2688, 285, NULL, NULL, NULL, NULL, NULL, 'TAXI000017', 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, 109.4115070000, '柳州市鱼峰区春苑路25号', 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18154758996', NULL, NULL, NULL, 10, '2020-09-05 21:12:11', '2020-09-05 21:12:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2689, 285, NULL, NULL, NULL, NULL, NULL, 'TAXI000018', 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, 109.4115070000, '柳州市鱼峰区春苑路25号', 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18154758996', NULL, NULL, NULL, 10, '2020-09-05 21:18:03', '2020-09-05 21:18:02', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2690, 285, NULL, NULL, NULL, NULL, NULL, 'TAXI000019', 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, 109.4115070000, '柳州市鱼峰区春苑路27号', 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18154758996', NULL, NULL, NULL, 10, '2020-09-05 21:21:11', '2020-09-05 21:21:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2691, 288, NULL, 456, NULL, NULL, 499, 'TAXI000020', 109.4680770000, 24.3261100000, '广西壮族自治区柳州市城中区静兰街道桂柳路38号华远·岚山山水1号', 109.4680770000, 24.3261100000, 109.4265070000, '柳州市城中区桂柳路62号', 24.3401580000, '阳光100经典时代', 109.4670300668, 24.3266115507, '广西壮族自治区柳州市城中区静兰街道桂柳路华远·岚山山水1号', '2020-09-05 23:25:09', 109.4258932798, 24.3415443028, '广西壮族自治区柳州市城中区潭中街道高新一路阳光100经典时代', '2020-09-05 23:37:09', 13109.00, 2, NULL, 18.40, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '18978029828', NULL, NULL, NULL, 9, '2020-09-05 23:11:15', '2020-09-05 23:11:14', '2020-09-05 23:11:59', '2020-09-05 23:11:59', '2020-09-05 23:11:59', '2020-09-05 23:25:09', '2020-09-05 23:37:09', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2692, 289, NULL, NULL, NULL, NULL, NULL, 'TAXI000021', 109.3372500000, 24.2593000000, '广西壮族自治区柳州市柳江区拉堡镇柳江区人力资源和社会保障局', 109.3372500000, 24.2593000000, 109.3822020000, '柳州市柳江区瑞龙路125号', 24.2518750000, '合景·云溪四季销售中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18276221693', NULL, NULL, NULL, 10, '2020-09-05 23:11:32', '2020-09-05 23:11:32', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2693, 291, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.3496580000, 24.2588540000, '广西壮族自治区柳州市柳江区拉堡镇金丽苑北区', 109.3496580000, 24.2588540000, 109.3882920000, '柳州市柳江区柳堡路600号', 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13977240801', NULL, NULL, NULL, 10, '2020-09-06 05:27:14', '2020-09-06 05:27:14', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2694, 291, NULL, 801, NULL, NULL, 637, 'TAXI000002', 109.3496800000, 24.2601860000, '广西壮族自治区柳州市柳江区拉堡镇柳江区开发区第一工业园区镂尚家居城', 109.3496800000, 24.2601860000, 109.3882920000, '柳州市柳江区柳堡路743号', 24.3078740000, '柳州火车站', 109.3238024421, 24.2547873535, '广西壮族自治区柳州市柳江区拉堡镇马平路', '2020-09-06 05:33:49', NULL, NULL, NULL, NULL, 7691.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '13977240801', NULL, NULL, NULL, 10, '2020-09-06 05:33:09', '2020-09-06 05:33:09', '2020-09-06 05:33:49', '2020-09-06 05:33:49', '2020-09-06 05:33:49', '2020-09-06 05:33:49', NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, '', '', NULL);
+INSERT INTO `t_order_cross_city` VALUES (2695, 296, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4357970000, 24.3497950000, '广西壮族自治区柳州市城中区河东街道金色世纪', 109.4357970000, 24.3497950000, 109.4442540000, '柳州市城中区东环大道145--10号', 24.3272380000, '柳州市人民医院第三住院楼', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877296096', NULL, NULL, NULL, 10, '2020-09-07 07:40:15', '2020-09-07 07:40:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2696, 300, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4253480000, 24.3429810000, '广西壮族自治区柳州市城中区潭中街道海关路西一巷8号高新明珠', 109.4253480000, 24.3429810000, 109.4450600000, '柳州市城中区海关路西一巷8号', 24.3245830000, '柳州市人民医院门诊', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15977281576', NULL, NULL, NULL, 10, '2020-09-07 08:07:26', '2020-09-07 08:07:25', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2697, 302, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4204100000, 24.3012250000, '广西壮族自治区柳州市鱼峰区荣军街道柳州男健医院', 109.4204100000, 24.3012250000, 109.4044330000, '柳州市鱼峰区荣军路125号', 24.3400140000, '柳州银行(柳北支行)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13687737839', NULL, NULL, NULL, 10, '2020-09-07 08:27:56', '2020-09-07 08:27:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2698, 302, NULL, 215, NULL, NULL, 705, 'TAXI000004', 109.4204100000, 24.3012250000, '广西壮族自治区柳州市鱼峰区荣军街道柳州男健医院', 109.4204100000, 24.3012250000, 109.4044330000, '柳州市鱼峰区荣军路125号', 24.3400140000, '柳州银行(柳北支行)', 109.4208764322, 24.3014596927, '广西壮族自治区柳州市鱼峰区荣军街道荣军路柳州男健医院', '2020-09-07 08:35:56', 109.4045937343, 24.3399693551, '广西壮族自治区柳州市柳北区雅儒街道北雀路福江小苑', '2020-09-07 08:56:21', 6169.00, 2, NULL, 17.10, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13687737839', NULL, NULL, NULL, 9, '2020-09-07 08:29:14', '2020-09-07 08:29:14', '2020-09-07 08:31:52', '2020-09-07 08:31:52', '2020-09-07 08:31:52', '2020-09-07 08:35:56', '2020-09-07 08:56:21', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2699, 304, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.3400190000, 24.3618570000, '广西壮族自治区柳州市柳南区太阳村镇浩源机动车驾驶员训考服务有限公司', 109.3400190000, 24.3618570000, 109.3836560000, '柳州市柳南区', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18978075163', NULL, NULL, NULL, 10, '2020-09-07 10:39:06', '2020-09-07 10:39:05', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2700, 304, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.3392920000, 24.3623000000, '广西壮族自治区柳州市柳南区太阳村镇浩源机动车考试场浩源机动车驾驶员训考服务有限公司', 109.3392920000, 24.3623000000, 109.3836560000, '和平驾校浩源训考中心', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18978075163', NULL, NULL, NULL, 1, '2020-09-07 10:39:21', '2020-09-07 10:39:20', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2701, 306, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.4106470000, 24.3210220000, '广西壮族自治区柳州市柳北区解放街道地王公馆步步高广场(广场路)', 109.4106470000, 24.3210220000, 109.4124830000, '柳州市柳北区八一路90号', 24.3051190000, '宜尚酒店(柳州江滨公园店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18897720762', NULL, NULL, NULL, 10, '2020-09-07 13:51:47', '2020-09-07 13:51:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2702, 308, NULL, 928, NULL, NULL, NULL, 'TAXI000008', 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, 109.3881770000, '柳州市城中区滨江西路15栋17栋', 24.2777290000, '柳州市航鹰中学', 109.3916314331, 24.3086402357, '广西壮族自治区柳州市柳南区南站街道鹅山路站前·馨印象', '2020-09-07 14:42:38', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15907721890', NULL, NULL, NULL, 10, '2020-09-07 14:42:00', '2020-09-07 14:41:59', '2020-09-07 14:42:38', '2020-09-07 14:42:38', '2020-09-07 14:42:38', '2020-09-07 14:42:38', NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2703, 308, NULL, NULL, NULL, NULL, NULL, 'TAXI000009', 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, 109.3881770000, '柳州市城中区滨江西路15栋17栋', 24.2777290000, '柳州市航鹰中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721890', NULL, NULL, NULL, 10, '2020-09-07 14:45:08', '2020-09-07 14:45:07', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2704, 287, NULL, NULL, NULL, NULL, NULL, 'TAXI000010', 109.4316370985, 24.3631637912, '广西壮族自治区柳州市城中区河东街道桂中大道二桥双语艺术幼儿园', 109.4316343859, 24.3631561957, 109.4327850000, '二桥双语艺术幼儿园', 24.3355860000, '龙城·印象KTV', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18974559352', NULL, NULL, NULL, 10, '2020-09-07 18:54:45', '2020-09-07 18:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2705, 319, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.3922440000, 24.3344890000, '广西壮族自治区柳州市柳南区河西街道磨滩东苑', 109.3922440000, 24.3344890000, 109.3882920000, '柳州市柳南区磨滩路10号', 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13367622539', NULL, NULL, NULL, 10, '2020-09-08 07:31:54', '2020-09-08 07:31:54', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2706, 245, NULL, 73, NULL, NULL, 642, 'TAXI000002', 109.3988667466, 24.3617546342, '广西壮族自治区柳州市柳北区胜利街道胜利西路', 109.3988924385, 24.3617353985, 109.4449990000, '北雀路与胜利西路交叉口', 24.3261600000, '柳州市人民医院', 109.4018434753, 24.3621796335, '广西壮族自治区柳州市柳北区雀儿山街道胜利东路柳州市柳北区人民政府', '2020-09-08 15:09:52', 109.4291090342, 24.3610361139, '广西壮族自治区柳州市城中区河东街道河东路9号', '2020-09-08 15:15:16', 3020.00, 2, NULL, 9.50, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '18178803160', NULL, NULL, NULL, 9, '2020-09-08 15:08:37', '2020-09-08 15:08:00', '2020-09-08 15:08:43', '2020-09-08 15:08:43', '2020-09-08 15:08:43', '2020-09-08 15:09:52', '2020-09-08 15:15:16', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2707, 324, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 119.6653420000, '柳州市柳南区和平路68号', 32.1821530000, '英皇酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13367729581', NULL, NULL, NULL, 10, '2020-09-08 16:32:01', '2020-09-08 16:32:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2708, 329, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.4320200000, 24.3265000000, '广西壮族自治区柳州市城中区潭中街道瑞安路乌托邦音乐城', 109.4320200000, 24.3265000000, 109.4467980000, '阳光100城市广场', 24.3046070000, '柳州市鱼峰区欣欣幼儿园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13481232100', NULL, NULL, NULL, 10, '2020-09-08 20:20:24', '2020-09-08 20:20:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2709, 329, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4304050000, 24.3295440000, '广西壮族自治区柳州市城中区潭中街道兆安现代城(桂中大道)', 109.4304050000, 24.3295440000, 109.4467980000, '柳州市城中区桂中大道8号', 24.3046070000, '柳州市鱼峰区欣欣幼儿园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13481232100', NULL, NULL, NULL, 10, '2020-09-08 20:20:51', '2020-09-08 20:20:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2710, 330, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4470110000, 24.2777970000, '广西壮族自治区柳州市鱼峰区五里亭街道天翼九龙印象', 109.4470110000, 24.2777970000, 109.3870000000, '柳州市鱼峰区龙泉路5号', 24.3091360000, '柳州站(西进站口)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '何', '18277211260', NULL, NULL, NULL, 1, '2020-09-09 02:14:14', '2020-09-09 05:35:00', NULL, NULL, NULL, NULL, NULL, 2, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2711, 245, NULL, 179, NULL, NULL, 645, 'TAXI000002', 109.4054280000, 24.3118060000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054276406, 24.3118072355, 109.4449990000, '滨江西路17栋', 24.3261600000, '柳州市人民医院', 109.4107105752, 24.3062122802, '广西壮族自治区柳州市鱼峰区天马街道柳江大桥江滨公园', '2020-09-09 10:08:24', NULL, NULL, NULL, NULL, 269.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '18178803160', NULL, NULL, NULL, 10, '2020-09-09 10:08:14', '2020-09-09 10:08:00', '2020-09-09 10:08:24', '2020-09-09 10:08:24', '2020-09-09 10:08:24', '2020-09-09 10:08:24', NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2712, 245, NULL, 932, NULL, NULL, NULL, 'TAXI000003', 109.4054050022, 24.3119203016, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4053982205, 24.3119173177, 109.3869410000, '中山西路幼儿园', 24.3093740000, '柳州火车站西广场', 109.4054371585, 24.3119025086, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-09 10:12:01', 109.4054761752, 24.3118795180, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-09 10:12:08', 0.00, 1, 3, 0.01, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, NULL, '18178803160', NULL, NULL, NULL, 8, '2020-09-09 10:10:27', '2020-09-09 10:10:00', '2020-09-09 10:11:50', '2020-09-09 10:11:57', '2020-09-09 10:11:59', '2020-09-09 10:12:01', '2020-09-09 10:12:08', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2713, 334, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.4134380000, 24.3136600000, '广西壮族自治区柳州市城中区公园街道中环大厦(公园路)', 109.4134380000, 24.3136600000, 109.3886260000, '柳州市城中区公园路39-1号', 24.3233690000, '柳州市家居建材博览中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877277700', NULL, NULL, NULL, 10, '2020-09-09 12:11:45', '2020-09-09 12:11:45', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2714, 338, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4076750000, 24.2990540000, '广西壮族自治区柳州市柳南区柳石街道鱼峰山小学', 109.4076750000, 24.2990540000, 109.4309460000, '柳州市柳南区文笔路3-3号', 24.3690630000, '柳州市卓景电子有限公司', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18077225361', NULL, NULL, NULL, 10, '2020-09-09 17:28:12', '2020-09-09 17:28:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2715, 340, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.3957940000, 24.3320400000, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957940000, 24.3320400000, 109.3882920000, '柳州市柳南区雅儒路218号', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15347727656', NULL, NULL, NULL, 10, '2020-09-09 23:38:25', '2020-09-10 08:50:00', NULL, NULL, NULL, NULL, NULL, 2, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2716, 342, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, 109.4503600000, '柳州市柳北区北雀路66号', 24.3193260000, '万象二路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17776447894', NULL, NULL, NULL, 10, '2020-09-10 08:44:23', '2020-09-10 08:44:22', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2717, 342, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, 109.4503600000, '柳州市柳北区北雀路66号', 24.3193260000, '万象二路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17776447894', NULL, NULL, NULL, 10, '2020-09-10 08:46:55', '2020-09-10 08:46:55', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2718, 342, NULL, 140, NULL, NULL, 649, 'TAXI000003', 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, 109.4503600000, '柳州市柳北区北雀路66号', 24.3193260000, '万象二路', 109.4027773451, 24.3615799747, '广西壮族自治区柳州市柳北区胜利街道胜利东路胜利小区1村', '2020-09-10 11:31:22', 109.4145124095, 24.3304708520, '广西壮族自治区柳州市柳北区解放街道三中路柳州美丽焦点医疗美容', '2020-09-10 11:42:40', 62765.00, 1, 1, 12.90, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 12.90, NULL, '17776447894', NULL, NULL, NULL, 8, '2020-09-10 08:49:52', '2020-09-10 08:49:52', '2020-09-10 08:50:22', '2020-09-10 08:50:22', '2020-09-10 08:50:22', '2020-09-10 11:31:22', '2020-09-10 11:42:40', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2719, 340, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.3957940000, 24.3320400000, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957940000, 24.3320400000, 109.3882920000, '柳州市柳南区雅儒路218号', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15347727656', NULL, NULL, NULL, 10, '2020-09-10 08:52:45', '2020-09-10 08:52:48', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2720, 334, NULL, 754, NULL, NULL, NULL, 'TAXI000005', 109.3979810000, 24.2991050000, '广西壮族自治区柳州市柳南区柳石街道桂裕小苑', 109.3979810000, 24.2991050000, 109.4135790000, '柳州市柳南区城站路南七巷25号', 24.3138320000, '中环酒店', 109.3977200734, 24.2988297081, '广西壮族自治区柳州市柳南区柳石街道城站路南七巷桂裕小苑', '2020-09-10 11:23:40', 109.4130948081, 24.3157255675, '广西壮族自治区柳州市城中区公园街道解放南路振亿大厦', '2020-09-10 11:29:51', 4574.00, 1, 1, 9.50, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 9.50, NULL, '13877277700', NULL, NULL, NULL, 8, '2020-09-10 11:14:06', '2020-09-10 11:14:05', '2020-09-10 11:14:14', '2020-09-10 11:14:14', '2020-09-10 11:14:14', '2020-09-10 11:23:40', '2020-09-10 11:29:51', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2721, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.4052197266, 24.3119395616, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4051844618, 24.3120570204, 109.3882920000, '中山西路幼儿园', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-10 11:33:17', '2020-09-10 11:33:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2722, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.4051557075, 24.3118934462, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4051844618, 24.3120570204, 109.3882920000, '中山西路幼儿园', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-10 11:34:34', '2020-09-10 11:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2723, 344, NULL, 906, NULL, NULL, 944, 'TAXI000008', 104.0557800410, 30.5857627062, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557926973, 30.5856734176, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0558160000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:13:34', 104.0558110000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:13:36', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15946464664', NULL, NULL, NULL, 8, '2020-09-10 15:07:45', '2020-09-10 15:07:00', '2020-09-10 15:07:50', NULL, NULL, '2020-09-10 15:13:34', '2020-09-10 15:13:36', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2724, 344, NULL, 906, NULL, NULL, 944, 'TAXI000009', 104.0561168543, 30.5856052969, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557926973, 30.5856734176, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0557800408, 30.5857587047, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:19:15', 104.0557800408, 30.5857587047, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:19:17', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15946464664', NULL, NULL, NULL, 8, '2020-09-10 15:15:14', '2020-09-10 15:15:00', '2020-09-10 15:15:55', '2020-09-10 15:15:55', '2020-09-10 15:15:55', '2020-09-10 15:19:15', '2020-09-10 15:19:17', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2725, 344, NULL, NULL, NULL, NULL, NULL, 'TAXI000010', 104.0557970000, 30.5856730000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0665403087, 30.5722697189, 104.0692040000, '成都市', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15946464664', NULL, NULL, NULL, 10, '2020-09-10 15:21:01', '2020-09-10 15:20:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2726, 344, NULL, NULL, NULL, NULL, NULL, 'TAXI000011', 104.0557770345, 30.5857797068, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0665403087, 30.5722697189, 104.0692040000, '成都市', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15946464664', NULL, NULL, NULL, 10, '2020-09-10 15:21:57', '2020-09-10 15:21:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2727, 344, NULL, NULL, NULL, NULL, NULL, 'TAXI000012', 104.0557740265, 30.5857666960, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0692040000, 30.5462030000, 104.0658610000, '天府三街(地铁站)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15946464664', NULL, NULL, NULL, 10, '2020-09-10 15:22:20', '2020-09-10 15:22:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2728, 344, NULL, NULL, NULL, NULL, NULL, 'TAXI000013', 104.0557940745, 30.5857467273, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557980618, 30.5856711086, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15946464664', NULL, NULL, NULL, 10, '2020-09-10 15:23:14', '2020-09-10 15:23:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2729, 344, NULL, 906, NULL, NULL, 944, 'TAXI000014', 104.0557800410, 30.5857617058, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557980618, 30.5856711086, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0558130000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:23:59', 104.0558130000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:24:02', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15946464664', NULL, NULL, NULL, 8, '2020-09-10 15:23:35', '2020-09-10 15:23:00', '2020-09-10 15:23:39', '2020-09-10 15:23:39', '2020-09-10 15:23:39', '2020-09-10 15:23:59', '2020-09-10 15:24:02', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2730, 344, NULL, 906, NULL, NULL, 944, 'TAXI000015', 104.0557870580, 30.5857587183, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557658753, 30.5856780357, 104.0658610000, '天府新谷(府城大道西段)11栋', 30.6574010000, '天府广场', 104.0562210000, 30.5854930000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', '2020-09-10 15:50:55', 104.0562210000, 30.5854930000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', '2020-09-10 15:50:57', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15946464664', NULL, NULL, NULL, 8, '2020-09-10 15:50:32', '2020-09-10 15:50:00', '2020-09-10 15:50:35', '2020-09-10 15:50:35', '2020-09-10 15:50:35', '2020-09-10 15:50:55', '2020-09-10 15:50:57', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2731, 242, NULL, 73, NULL, NULL, 642, 'TAXI000016', 109.4076370000, 24.3113080000, '广西壮族自治区柳州市城中区中南街道青云路35号文惠小学', 109.4076370000, 24.3113080000, 109.4507010000, '柳州市城中区滨江西路12号', 24.3222850000, '华润万象城', 109.4071597431, 24.3095615888, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-10 16:48:51', 109.4191130131, 24.3487970697, '广西壮族自治区柳州市柳北区锦绣街道滨江东路', '2020-09-10 16:59:13', 5769.00, 1, 1, 14.80, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 14.80, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-10 16:48:02', '2020-09-10 16:48:00', '2020-09-10 16:48:07', '2020-09-10 16:48:07', '2020-09-10 16:48:07', '2020-09-10 16:48:51', '2020-09-10 16:59:13', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2732, 242, NULL, NULL, NULL, NULL, NULL, 'TAXI000017', 109.4192070000, 24.3520930000, '广西壮族自治区柳州市柳北区锦绣街道精诚小汽车出租有限责任公司工会委员会', 109.4192070000, 24.3520930000, 109.4507010000, '柳州市柳北区滨江东路171号', 24.3222850000, '华润万象城', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13321624505', NULL, NULL, NULL, 10, '2020-09-10 17:01:18', '2020-09-10 17:01:16', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2733, 242, NULL, 73, NULL, NULL, 642, 'TAXI000018', 109.4196770000, 24.3560340000, '广西壮族自治区柳州市柳北区锦绣街道柳州市防洪排涝工程管理处', 109.4196770000, 24.3560340000, 109.4507010000, '柳州市柳北区长风路1号之2', 24.3222850000, '华润万象城', 109.4199132315, 24.3557614265, '广西壮族自治区柳州市柳北区锦绣街道滨江东路柳州市防洪排涝工程管理处', '2020-09-10 17:04:40', 109.4052924016, 24.3115109494, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-10 17:18:49', 6590.00, 1, NULL, 16.70, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '13321624505', NULL, NULL, NULL, 7, '2020-09-10 17:04:27', '2020-09-10 17:04:25', '2020-09-10 17:04:32', '2020-09-10 17:04:32', '2020-09-10 17:04:32', '2020-09-10 17:04:40', '2020-09-10 17:18:49', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2734, 345, NULL, NULL, NULL, NULL, NULL, 'TAXI000019', 109.3728640000, 24.3253590000, '广西壮族自治区柳州市柳南区河西街道五菱大厦(河西路)', 109.3728640000, 24.3253590000, 109.3836560000, '柳州市柳南区河西路42号', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17754572457', NULL, NULL, NULL, 10, '2020-09-10 17:14:18', '2020-09-10 17:14:16', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2735, 345, NULL, NULL, NULL, NULL, NULL, 'TAXI000020', 109.3728640000, 24.3253590000, '广西壮族自治区柳州市柳南区河西街道五菱大厦(河西路)', 109.3728640000, 24.3253590000, 109.3836560000, '柳州市柳南区河西路42号', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17754572457', NULL, NULL, NULL, 10, '2020-09-10 17:15:35', '2020-09-10 17:15:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2736, 344, NULL, 906, NULL, NULL, 944, 'TAXI000021', 104.0557770343, 30.5857767057, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557082078, 30.5857022805, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0557690143, 30.5857676867, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:29:35', 104.0557690143, 30.5857676867, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:29:37', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15946464664', NULL, NULL, NULL, 8, '2020-09-10 18:28:57', '2020-09-10 18:28:00', '2020-09-10 18:29:00', '2020-09-10 18:29:00', '2020-09-10 18:29:00', '2020-09-10 18:29:35', '2020-09-10 18:29:37', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2737, 344, NULL, 906, NULL, NULL, 944, 'TAXI000022', 104.0557980848, 30.5857567389, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557082078, 30.5857022805, 104.0658610000, '天府新谷(府城大道西段)11栋', 30.6574010000, '天府广场', 104.0557770343, 30.5857757053, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:36:27', 104.0557770343, 30.5857757053, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:36:29', 0.00, 2, NULL, 10.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '15946464664', NULL, NULL, NULL, 8, '2020-09-10 18:30:45', '2020-09-10 18:30:00', '2020-09-10 18:30:48', '2020-09-10 18:30:48', '2020-09-10 18:30:48', '2020-09-10 18:36:27', '2020-09-10 18:36:29', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2738, 342, NULL, 8, NULL, NULL, 670, 'TAXI000023', 109.4053990000, 24.3644140000, '广西壮族自治区柳州市柳北区雀儿山街道北雀广场雀儿山公园', 109.4034110000, 24.3617750000, 109.4503600000, '雀儿山公园', 24.3193260000, '万象二路', 109.3815505353, 24.2919370148, '广西壮族自治区柳州市柳南区柳石街道柳邕路二巷华柳佳苑', '2020-09-10 22:00:39', 109.3590058246, 24.2595170864, '广西壮族自治区柳州市柳江区拉堡镇柳邕路', '2020-09-10 22:13:23', 77863.00, 2, NULL, 12.60, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '17776447894', NULL, NULL, NULL, 8, '2020-09-10 18:58:36', '2020-09-10 18:58:35', '2020-09-10 18:58:50', '2020-09-10 18:58:50', '2020-09-10 18:58:50', '2020-09-10 22:00:39', '2020-09-10 22:13:23', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2739, 347, NULL, NULL, NULL, NULL, NULL, 'TAXI000024', 109.3716920000, 24.3064190000, '广西壮族自治区柳州市柳南区南环街道龙屯宝贝幼儿园', 109.3716920000, 24.3064190000, 109.4456640000, '柳州市柳南区龙屯路142号', 24.3159620000, '恒大御府2期(建设中)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13558222821', NULL, NULL, NULL, 10, '2020-09-10 20:14:12', '2020-09-10 20:14:11', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2740, 347, NULL, NULL, NULL, NULL, NULL, 'TAXI000025', 109.3714990000, 24.3062230000, '广西壮族自治区柳州市柳南区南环街道龙屯路104号龙屯宝贝幼儿园', 109.3714990000, 24.3062230000, 109.4456640000, '龙屯宝贝幼儿园', 24.3159620000, '恒大御府2期(建设中)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13558222821', NULL, NULL, NULL, 1, '2020-09-10 20:15:25', '2020-09-10 20:15:24', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2741, 242, NULL, 73, NULL, NULL, 642, 'TAXI000001', 109.4048600000, 24.3138590000, '广西壮族自治区柳州市城中区中南街道中南派出所', 109.4048600000, 24.3138590000, 109.4507010000, '柳州市城中区滨江西路20号', 24.3222850000, '华润万象城', 109.4037751215, 24.3141100179, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-11 09:36:57', 109.3973900058, 24.3591790180, '广西壮族自治区柳州市柳北区胜利街道北雀路67号柳化职工住宅楼', '2020-09-11 09:48:30', 5778.00, 1, 1, 15.20, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 15.20, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-11 09:36:39', '2020-09-11 09:36:37', '2020-09-11 09:36:46', '2020-09-11 09:36:46', '2020-09-11 09:36:46', '2020-09-11 09:36:57', '2020-09-11 09:48:30', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2742, 242, NULL, 73, NULL, NULL, 642, 'TAXI000002', 109.3971100000, 24.3591970000, '广西壮族自治区柳州市柳北区胜利街道北雀路67号柳化职工住宅楼', 109.3971100000, 24.3591970000, 109.4052380000, '柳化职工住宅楼', 24.3118790000, 'OK充电站', 109.3978237163, 24.3594457875, '广西壮族自治区柳州市柳北区胜利街道北雀路67号28栋柳化职工住宅楼', '2020-09-11 09:53:41', 109.4055758863, 24.3118608628, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-11 10:06:13', 6001.00, 2, NULL, 15.20, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-11 09:53:19', '2020-09-11 09:53:17', '2020-09-11 09:53:24', '2020-09-11 09:53:24', '2020-09-11 09:53:24', '2020-09-11 09:53:41', '2020-09-11 10:06:13', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2743, 357, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4373960000, 24.2611170000, '广西壮族自治区柳州市鱼峰区白莲街道白莲街道办事处', 109.4373960000, 24.2611170000, 109.6307870000, '柳州市鱼峰区柳石路418号', 23.4596100000, '武宣县桐岭镇人民政府', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17300088571', NULL, NULL, NULL, 10, '2020-09-11 13:20:05', '2020-09-11 13:20:03', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2744, 334, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.4415000000, 24.3236320000, '广西壮族自治区柳州市城中区潭中街道居上·V8城', 109.4415000000, 24.3236320000, 109.4135790000, '柳州市城中区文昌路83号', 24.3138320000, '中环酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877277700', NULL, NULL, NULL, 10, '2020-09-11 13:44:51', '2020-09-11 13:44:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2745, 334, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4415820000, 24.3232480000, '广西壮族自治区柳州市城中区潭中街道文昌路居上·V8城', 109.4418590000, 24.3235560000, 109.4135790000, '居上·V8城A座写字楼', 24.3138320000, '中环酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877277700', NULL, NULL, NULL, 10, '2020-09-11 13:48:04', '2020-09-11 13:48:04', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2746, 358, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13368407654', NULL, NULL, NULL, 10, '2020-09-11 16:39:36', '2020-09-11 16:39:36', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2747, 358, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13368407654', NULL, NULL, NULL, 10, '2020-09-11 16:41:56', '2020-09-11 16:41:55', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2748, 358, NULL, NULL, NULL, NULL, NULL, 'TAXI000008', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13368407654', NULL, NULL, NULL, 10, '2020-09-11 16:46:11', '2020-09-11 16:46:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2749, 358, NULL, NULL, NULL, NULL, NULL, 'TAXI000009', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13368407654', NULL, NULL, NULL, 10, '2020-09-11 16:47:07', '2020-09-11 16:47:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2750, 324, NULL, NULL, NULL, NULL, NULL, 'TAXI000010', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 109.5914590000, '柳州市柳南区和平路68号', 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13367729581', NULL, NULL, NULL, 10, '2020-09-11 17:53:10', '2020-09-11 17:53:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2751, 324, NULL, NULL, NULL, NULL, NULL, 'TAXI000011', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 109.5914590000, '柳州市柳南区和平路108号', 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13367729581', NULL, NULL, NULL, 10, '2020-09-11 17:53:41', '2020-09-11 17:53:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2752, 324, NULL, NULL, NULL, NULL, NULL, 'TAXI000012', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 109.5914590000, '柳州市柳南区和平路108号', 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13367729581', NULL, NULL, NULL, 10, '2020-09-11 17:54:47', '2020-09-11 17:54:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2753, 362, NULL, NULL, NULL, NULL, NULL, 'TAXI000013', 109.4065090000, 24.3232410000, '广西壮族自治区柳州市柳北区雅儒街道柳州市自动化科学研究所柳州食品药品检验所', 109.4065090000, 24.3232410000, 109.3799890000, '柳州市柳北区广雅路北三巷6号', 24.3363010000, '金都汇', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17687271872', NULL, NULL, NULL, 10, '2020-09-11 17:54:56', '2020-09-11 17:54:54', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2754, 269, NULL, NULL, NULL, NULL, NULL, 'TAXI000014', 109.4005810000, 24.3033410000, '广西壮族自治区柳州市柳南区柳南街道飞鹅路55--6号飞鹅商城', 109.4005810000, 24.3033410000, 109.3778260000, '飞鹅商城', 24.3191490000, '福柳宏都', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877253131', NULL, NULL, NULL, 10, '2020-09-11 18:03:19', '2020-09-11 18:03:18', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2755, 372, NULL, NULL, NULL, NULL, NULL, 'TAXI000015', 109.4158920000, 24.3383680000, '广西壮族自治区柳州市柳北区跃进街道保利大江郡(凯旋大道)保利广场', 109.4158920000, 24.3383680000, 109.4126210000, '柳州市柳北区凯旋大道13号', 24.3104190000, '地王大厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17776309588', NULL, NULL, NULL, 10, '2020-09-11 18:22:45', '2020-09-11 18:22:44', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2756, 371, NULL, NULL, NULL, NULL, NULL, 'TAXI000016', 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, 109.4024430000, '柳州市柳北区广场路8号', 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13768866728', NULL, NULL, NULL, 10, '2020-09-11 18:23:11', '2020-09-11 18:23:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2757, 371, NULL, NULL, NULL, NULL, NULL, 'TAXI000017', 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, 109.4024430000, '柳州市城中区广场路8号', 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13768866728', NULL, NULL, NULL, 10, '2020-09-11 18:27:07', '2020-09-11 18:27:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2758, 371, NULL, NULL, NULL, NULL, NULL, 'TAXI000018', 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, 109.4024430000, '柳州市城中区广场路8号', 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13768866728', NULL, NULL, NULL, 10, '2020-09-11 18:27:33', '2020-09-11 18:27:32', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2759, 380, NULL, NULL, NULL, NULL, NULL, 'TAXI000019', 109.4126310000, 24.3189260000, '广西壮族自治区柳州市城中区城中街道解放北路37号柳州博物馆', 109.4126310000, 24.3189260000, 109.3970800000, '柳州市城中区解放北路29号', 24.3519600000, '望泰·北城华府(西门)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15347772319', NULL, NULL, NULL, 10, '2020-09-11 18:44:51', '2020-09-11 18:44:51', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2760, 380, NULL, NULL, NULL, NULL, NULL, 'TAXI000020', 109.4138600000, 24.3184870000, '广西壮族自治区柳州市城中区公园街道柳州市中医医院', 109.4138600000, 24.3184870000, 109.3970800000, '柳州市城中区解放北路25号', 24.3519600000, '望泰·北城华府(西门)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15347772319', NULL, NULL, NULL, 1, '2020-09-11 18:56:14', '2020-09-11 18:56:14', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2761, 381, NULL, NULL, NULL, NULL, NULL, 'TAXI000021', 109.4070820000, 24.3124270000, '广西壮族自治区柳州市城中区中南街道永隆大厦', 109.4070820000, 24.3124270000, 109.3967540000, '柳州市城中区中山西路99号', 24.2699400000, '柳州市航星敬老中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18076702510', NULL, NULL, NULL, 10, '2020-09-11 19:04:34', '2020-09-11 19:04:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2762, 384, NULL, NULL, NULL, NULL, NULL, 'TAXI000022', 109.4025870000, 24.3048510000, '广西壮族自治区柳州市柳南区柳南街道华丰商厦', 109.4025870000, 24.3048510000, 109.3644740000, '柳州市柳南区飞鹅路186号', 24.3398920000, '柳南区十一冶二区社区第二卫生服务站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13977210484', NULL, NULL, NULL, 10, '2020-09-11 19:27:03', '2020-09-11 19:27:02', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2763, 384, NULL, NULL, NULL, NULL, NULL, 'TAXI000023', 109.4025870000, 24.3048510000, '广西壮族自治区柳州市柳南区柳南街道华丰商厦', 109.4025870000, 24.3048510000, 109.3644740000, '柳州市柳南区飞鹅路186号1栋', 24.3398920000, '柳南区十一冶二区社区第二卫生服务站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13977210484', NULL, NULL, NULL, 10, '2020-09-11 19:27:48', '2020-09-11 19:27:47', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2764, 387, NULL, NULL, NULL, NULL, NULL, 'TAXI000024', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路381号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877266117', NULL, NULL, NULL, 10, '2020-09-11 20:16:45', '2020-09-11 20:16:44', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2765, 387, NULL, NULL, NULL, NULL, NULL, 'TAXI000025', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路146号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877266117', NULL, NULL, NULL, 10, '2020-09-11 20:19:40', '2020-09-11 20:19:39', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2766, 387, NULL, NULL, NULL, NULL, NULL, 'TAXI000026', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路142号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877266117', NULL, NULL, NULL, 10, '2020-09-11 20:23:02', '2020-09-11 20:23:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2767, 387, NULL, NULL, NULL, NULL, NULL, 'TAXI000027', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路144号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877266117', NULL, NULL, NULL, 10, '2020-09-11 20:31:35', '2020-09-11 20:31:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2768, 390, NULL, NULL, NULL, NULL, NULL, 'TAXI000028', 109.3901383464, 24.3058897569, '广西壮族自治区柳州市柳南区南站街道南站路17号柳州站东广场', 109.3901128472, 24.3059187826, 109.4094610000, '柳州站东广场', 24.3217410000, '广西壮族自治区柳州市柳北区地王公馆3栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18586544243', NULL, NULL, NULL, 10, '2020-09-11 20:54:16', '2020-09-11 20:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2769, 391, NULL, NULL, NULL, NULL, NULL, 'TAXI000029', 109.4134982639, 24.3050442166, '广西壮族自治区柳州市鱼峰区驾鹤街道驾鹤路连华大厦', 109.4135772027, 24.3051516385, 109.4122620000, '豪都大酒店', 24.3138240000, '乐巢(柳州店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15778286826', NULL, NULL, NULL, 1, '2020-09-11 21:05:53', '2020-09-11 21:05:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2770, 392, NULL, NULL, NULL, NULL, NULL, 'TAXI000030', 109.4393250000, 24.3067300000, '广西壮族自治区柳州市鱼峰区箭盘山街道金盛广场', 109.4393250000, 24.3067300000, 109.4767320000, '柳州市鱼峰区东环大道17号', 24.3012200000, '盛天龙湾', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18154770905', NULL, NULL, NULL, 10, '2020-09-11 21:08:19', '2020-09-11 21:08:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2771, 393, NULL, NULL, NULL, NULL, NULL, 'TAXI000031', 109.4393250000, 24.3067300000, '广西壮族自治区柳州市鱼峰区箭盘山街道金盛广场', 109.4393250000, 24.3067300000, 109.4764400000, '柳州市鱼峰区东环大道17号', 24.3032950000, '盛天龙湾2栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18077209852', NULL, NULL, NULL, 10, '2020-09-11 21:09:12', '2020-09-11 21:09:11', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2772, 394, NULL, NULL, NULL, NULL, NULL, 'TAXI000032', 109.3803250000, 24.2886400000, '广西壮族自治区柳州市柳南区柳石街道宏祥园', 109.3803250000, 24.2886400000, 109.4133850000, '柳州市柳南区永前路9号', 24.3120080000, '歌友会量贩氧吧KTV(五星店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18177226729', NULL, NULL, NULL, 10, '2020-09-11 21:17:10', '2020-09-11 21:17:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2773, 394, NULL, NULL, NULL, NULL, NULL, 'TAXI000033', 109.3829940000, 24.2905270000, '广西壮族自治区柳州市柳南区柳石街道华柳佳苑', 109.3829940000, 24.2905270000, 109.4133850000, '柳州市柳南区柳邕路二巷8号', 24.3120080000, '歌友会量贩氧吧KTV(五星店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18177226729', NULL, NULL, NULL, 10, '2020-09-11 21:27:41', '2020-09-11 21:27:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2774, 372, NULL, NULL, NULL, NULL, NULL, 'TAXI000034', 109.4135970000, 24.3121700000, '广西壮族自治区柳州市城中区公园街道中山东路金长城大厦', 109.4135970000, 24.3121700000, 109.4160640000, '如家酒店(五星步行街店)', 24.3404960000, '自由舰停车场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17776309588', NULL, NULL, NULL, 10, '2020-09-11 22:11:19', '2020-09-11 22:11:18', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2775, 402, NULL, NULL, NULL, NULL, NULL, 'TAXI000035', 109.4076120000, 24.3027100000, '广西壮族自治区柳州市柳南区新谷大厦', 109.4076120000, 24.3027100000, 109.4115990000, '柳州市鱼峰区飞鹅路5号', 24.3388850000, '中鼎北园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13977295969', NULL, NULL, NULL, 10, '2020-09-11 22:25:57', '2020-09-11 22:25:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2776, 372, NULL, NULL, NULL, NULL, NULL, 'TAXI000036', 109.4116090000, 24.3121170000, '广西壮族自治区柳州市城中区城中街道柳州商场', 109.4116090000, 24.3121170000, 109.4158920000, '柳州市城中区龙城路13--4号', 24.3383680000, '保利大江郡(凯旋大道)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17776309588', NULL, NULL, NULL, 10, '2020-09-11 22:28:18', '2020-09-11 22:28:17', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2777, 372, NULL, NULL, NULL, NULL, NULL, 'TAXI000037', 109.4116090000, 24.3121170000, '广西壮族自治区柳州市城中区城中街道柳州商场', 109.4116090000, 24.3121170000, 109.4158920000, '柳州市城中区龙城路12-2号', 24.3383680000, '保利大江郡(凯旋大道)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17776309588', NULL, NULL, NULL, 10, '2020-09-11 22:30:08', '2020-09-11 22:30:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2778, 403, NULL, NULL, NULL, NULL, NULL, 'TAXI000038', 109.3954212782, 24.3099688043, '广西壮族自治区柳州市柳南区南站街道鹅岗路鹅岗二区', 109.3953130425, 24.3099148220, 109.4285430000, '鹅岗二区', 24.3189640000, '蓝熊酒酷线下旗舰店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15577219638', NULL, NULL, NULL, 10, '2020-09-11 22:30:11', '2020-09-11 22:30:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2779, 403, NULL, NULL, NULL, NULL, NULL, 'TAXI000039', 109.3953700087, 24.3098977322, '广西壮族自治区柳州市柳南区南站街道鹅岗路鹅岗二区', 109.3953130425, 24.3099148220, 109.4285430000, '鹅岗二区', 24.3189640000, '蓝熊酒酷线下旗舰店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15577219638', NULL, NULL, NULL, 10, '2020-09-11 22:31:31', '2020-09-11 22:31:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2780, 288, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4172550000, 24.3215110000, '广西壮族自治区柳州市柳北区解放街道友谊路柳州饭店', 109.4172550000, 24.3215110000, 109.4680250000, '奥斯汀KTV(柳州饭店店)', 24.3257970000, '华远岚山', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18978029828', NULL, NULL, NULL, 10, '2020-09-12 02:01:42', '2020-09-12 02:01:42', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2781, 404, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4117070000, 24.3555720000, '广西壮族自治区柳州市柳北区跃进街道汇金国际(跃进路)', 109.4117070000, 24.3555720000, 109.4020280000, '柳州市柳北区跃进路160-1号', 24.3462770000, '远道·香颂e公馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17307727912', NULL, NULL, NULL, 10, '2020-09-12 03:26:37', '2020-09-12 03:26:36', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2782, 407, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4095400000, 24.3117500000, '广西壮族自治区柳州市城中区中南街道金秋大厦(中山中路)', 109.4095400000, 24.3117500000, 109.4097720000, '柳州市城中区映山街2-1-1号', 24.3144390000, '映山街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13978068824', NULL, NULL, NULL, 1, '2020-09-12 03:45:23', '2020-09-12 03:45:21', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2783, 409, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.4132260000, 24.2924220000, '广西壮族自治区柳州市鱼峰区天马街道金百利·摩栖酒店', 109.4132260000, 24.2924220000, 109.4078950000, '柳州市鱼峰区柳石路338-2号', 24.3211470000, '广雅·传奇篮球馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17777217129', NULL, NULL, NULL, 10, '2020-09-12 08:01:54', '2020-09-12 08:01:53', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2784, 409, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4132260000, 24.2924220000, '广西壮族自治区柳州市鱼峰区天马街道金百利·摩栖酒店', 109.4132260000, 24.2924220000, 109.4078950000, '柳州市鱼峰区柳石路338-2号', 24.3211470000, '广雅·传奇篮球馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '17777217129', NULL, NULL, NULL, 10, '2020-09-12 08:03:00', '2020-09-12 08:02:59', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2785, 245, NULL, 333, NULL, NULL, 791, 'TAXI000006', 109.4409016927, 24.2710630968, '广西壮族自治区柳州市鱼峰区白莲街道未来星幼儿园(锦航中国城东北)宝莲新都', 109.4407698568, 24.2713704427, 109.4055160000, '宝莲新都', 24.3115510000, '滨江西路15栋', 109.4384781293, 24.2702183277, '广西壮族自治区柳州市鱼峰区白莲街道柳石路宝莲新都', '2020-09-12 08:24:19', 109.4052923987, 24.3114609643, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-12 08:44:03', 7926.00, 2, NULL, 18.30, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '18178803160', NULL, NULL, NULL, 9, '2020-09-12 08:19:36', '2020-09-12 08:19:00', '2020-09-12 08:20:25', '2020-09-12 08:20:25', '2020-09-12 08:20:25', '2020-09-12 08:24:19', '2020-09-12 08:44:03', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2786, 393, NULL, NULL, NULL, NULL, NULL, 'TAXI000007', 109.4767320000, 24.3012200000, '广西壮族自治区柳州市鱼峰区阳和街道盛天龙湾', 109.4767320000, 24.3012200000, 109.4376500000, '柳州市鱼峰区阳和大道北3号', 24.3049300000, '华达苑3栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18077209852', NULL, NULL, NULL, 10, '2020-09-12 08:23:48', '2020-09-12 08:23:47', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2787, 410, NULL, 309, NULL, NULL, 783, 'TAXI000008', 109.4437100000, 24.2779850000, '广西壮族自治区柳州市鱼峰区五里亭街道鸿泰名庭', 109.4437100000, 24.2779850000, 109.4097010000, '柳州市鱼峰区龙泉路2号8栋', 24.3154930000, '柳州市妇幼保健院', 109.4436382309, 24.2724431144, '广西壮族自治区柳州市鱼峰区白莲街道鸡喇路柳机生活区', '2020-09-12 09:52:26', 109.4060752145, 24.2966655146, '广西壮族自治区柳州市柳南区柳石街道红阳路柳州市第十八中学', '2020-09-12 10:06:09', 5912.00, 1, NULL, 14.80, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '18877278189', NULL, NULL, NULL, 10, '2020-09-12 09:48:21', '2020-09-12 09:48:21', '2020-09-12 09:51:02', '2020-09-12 09:51:02', '2020-09-12 09:51:02', '2020-09-12 09:52:26', '2020-09-12 10:06:09', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2788, 308, NULL, 771, NULL, NULL, 680, 'TAXI000009', 109.4294560000, 24.3204070000, '广西壮族自治区柳州市鱼峰区箭盘山街道柳州工业博物馆', 109.4294560000, 24.3204070000, 109.4052380000, '柳州市鱼峰区蟠龙路198号', 24.3118790000, 'OK充电站', 109.4276079412, 24.3250141065, '广西壮族自治区柳州市城中区潭中街道清和路柳州市人民政府', '2020-09-12 11:58:20', NULL, NULL, NULL, NULL, 360.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15907721890', NULL, NULL, NULL, 10, '2020-09-12 11:57:33', '2020-09-12 11:57:32', '2020-09-12 11:58:20', '2020-09-12 11:58:20', '2020-09-12 11:58:20', '2020-09-12 11:58:20', NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2789, 308, NULL, NULL, NULL, NULL, NULL, 'TAXI000010', 109.4294560000, 24.3204070000, '广西壮族自治区柳州市鱼峰区箭盘山街道柳州工业博物馆', 109.4294560000, 24.3204070000, 109.4052380000, '柳州市鱼峰区蟠龙路218号', 24.3118790000, 'OK充电站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721890', NULL, NULL, NULL, 10, '2020-09-12 12:09:52', '2020-09-12 12:09:52', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2790, 269, NULL, NULL, NULL, NULL, NULL, 'TAXI000011', 109.3778260000, 24.3191490000, '广西壮族自治区柳州市柳南区河西街道福柳宏都', 109.3778260000, 24.3191490000, 109.4129390000, '柳州市柳南区西环路6号3栋', 24.3169360000, '新大地商厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877253131', NULL, NULL, NULL, 10, '2020-09-12 15:26:04', '2020-09-12 15:26:03', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2791, 269, NULL, NULL, NULL, NULL, NULL, 'TAXI000012', 109.3785900000, 24.3177510000, '广西壮族自治区柳州市柳南区河西街道吉祥苑(宏都路)', 109.3785900000, 24.3177510000, 109.4129390000, '柳州市柳南区龙屯路186号', 24.3169360000, '新大地商厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13877253131', NULL, NULL, NULL, 10, '2020-09-12 15:31:40', '2020-09-12 15:31:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2792, 413, NULL, 324, NULL, NULL, 758, 'TAXI000013', 109.4132620000, 24.3311290000, '广西壮族自治区柳州市柳北区解放街道新天地商住楼', 109.4132620000, 24.3311290000, 109.3488000000, '柳州市柳北区三中路148号', 24.3147160000, '柳州市工人医院总院', 109.4134624492, 24.3318374617, '广西壮族自治区柳州市柳北区解放街道三中路安利园', '2020-09-12 18:13:16', 109.3477995262, 24.3145302187, '广西壮族自治区柳州市柳南区太阳村镇柳州市工人医院总院', '2020-09-12 18:37:48', 11459.00, 1, NULL, 29.80, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, '15778294727', NULL, NULL, NULL, 7, '2020-09-12 18:01:59', '2020-09-12 18:01:58', '2020-09-12 18:02:41', '2020-09-12 18:02:41', '2020-09-12 18:02:41', '2020-09-12 18:13:16', '2020-09-12 18:37:48', 1, 3, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2793, 245, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4408270942, 24.2718188477, '广西壮族自治区柳州市鱼峰区白莲街道菲菲音乐学苑宝莲新都', 109.4408957248, 24.2718964301, 109.4366870000, '宝莲新都', 24.2915480000, '白云小区(蝴蝶山路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18178803160', NULL, NULL, NULL, 10, '2020-09-13 05:01:23', '2020-09-13 05:01:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2794, 416, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4429719300, 24.2577253748, '广西壮族自治区柳州市鱼峰区白莲街道鱼峰区金龙珠幼儿园龙珠小区', 109.4428200000, 24.2577920000, 109.4065500000, '飞速糖烟店', 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18172171303', NULL, NULL, NULL, 10, '2020-09-13 12:01:07', '2020-09-13 12:01:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2795, 416, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4429979743, 24.2577659638, '广西壮族自治区柳州市鱼峰区白莲街道鱼峰区金龙珠幼儿园龙珠小区', 109.4428200000, 24.2577920000, 109.4065500000, '飞速糖烟店', 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18172171303', NULL, NULL, NULL, 10, '2020-09-13 12:03:11', '2020-09-13 12:03:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2796, 416, NULL, NULL, NULL, NULL, NULL, 'TAXI000004', 109.4411891930, 24.2580511267, '广西壮族自治区柳州市鱼峰区白莲街道柳石路龙珠小区', 109.4413650000, 24.2582620000, 109.4065500000, '龙珠小区(西2门)', 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18172171303', NULL, NULL, NULL, 10, '2020-09-13 12:15:02', '2020-09-13 12:15:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2797, 245, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.4387027995, 24.2708558485, '广西壮族自治区柳州市鱼峰区白莲街道中国信合(宝莲分社)宝莲新都', 109.4386786567, 24.2708222114, 109.4102120000, '宝莲新都', 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18178803160', NULL, NULL, NULL, 10, '2020-09-13 17:28:39', '2020-09-13 17:28:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2798, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4051597765, 24.3121975369, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4052460395, 24.3119607205, 109.4268420000, '中山西路幼儿园', 24.3260800000, '市民广场(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-14 14:54:39', '2020-09-14 14:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2799, 194, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4052490234, 24.3121975369, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4052460395, 24.3119607205, 109.4268420000, '中山西路幼儿园', 24.3260800000, '市民广场(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15907721776', NULL, NULL, NULL, 10, '2020-09-14 14:55:58', '2020-09-14 14:55:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2800, 420, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, 109.3051590000, '亨氏豪庭', 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15707725715', NULL, NULL, NULL, 10, '2020-09-15 16:05:00', '2020-09-15 16:04:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2801, 420, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, 109.3051590000, '亨氏豪庭', 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15707725715', NULL, NULL, NULL, 10, '2020-09-15 16:06:28', '2020-09-15 16:06:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2802, 420, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, 109.3051590000, '亨氏豪庭', 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '15707725715', NULL, NULL, NULL, 10, '2020-09-15 16:07:40', '2020-09-15 16:07:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2803, 421, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4479649523, 24.3401052517, '广西壮族自治区柳州市城中区河东街道学院路36号15栋聚福苑(学院路)', 109.4481111654, 24.3399522569, 109.4177160000, '聚福苑(学院路)', 24.3217760000, '柳州饭店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18577275127', NULL, NULL, NULL, 10, '2020-09-16 10:53:27', '2020-09-16 10:53:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2804, 422, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4558924696, 24.3226405165, '广西壮族自治区柳州市城中区静兰街道桂柳路30号碧园大城小院', 109.4558995226, 24.3226453993, 109.4479980000, '碧园大城小院', 24.3064830000, '中国联通宏悦专营店(西江路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13593739812', NULL, NULL, NULL, 1, '2020-09-16 10:54:51', '2020-09-16 11:05:00', NULL, NULL, NULL, NULL, NULL, 2, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2805, 422, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4557069227, 24.3217173937, '广西壮族自治区柳州市城中区静兰街道桂柳路30号碧园大城小院', 109.4556909180, 24.3217331272, 109.4479980000, '碧园大城小院', 24.3064830000, '中国联通宏悦专营店(西江路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '13593739812', NULL, NULL, NULL, 1, '2020-09-16 11:11:20', '2020-09-16 11:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2806, 242, NULL, 73, NULL, NULL, 642, 'TAXI000004', 109.4050550441, 24.3121627433, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4049703240, 24.3120956680, 109.4418850000, '滨江西路20栋', 24.3296320000, '万达广场(柳州城中店)', 109.4032414707, 24.3137433815, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-16 15:39:22', 109.4053090986, 24.3118941693, '广西壮族自治区柳州市城中区中南街道滨江西路16号', '2020-09-16 15:50:19', 2278.00, 2, NULL, 6.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, NULL, '13321624505', NULL, NULL, NULL, 8, '2020-09-16 15:38:28', '2020-09-16 15:38:00', '2020-09-16 15:38:32', '2020-09-16 15:38:32', '2020-09-16 15:38:32', '2020-09-16 15:39:22', '2020-09-16 15:50:19', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2807, 423, NULL, NULL, NULL, NULL, NULL, 'TAXI000005', 109.3905132378, 24.3064941406, '广西壮族自治区柳州市柳南区南站街道飞鹅路161-1号柳州站东广场', 109.3902067057, 24.3062934028, 109.4080230000, '柳州站东广场', 24.3039410000, '谷埠街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18579412324', NULL, NULL, NULL, 10, '2020-09-16 21:10:00', '2020-09-16 21:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2808, 423, NULL, NULL, NULL, NULL, NULL, 'TAXI000006', 109.3905894640, 24.3066932509, '广西壮族自治区柳州市柳南区南站街道飞鹅路161-1号柳州站东广场', 109.3902067057, 24.3062934028, 109.4080230000, '柳州站东广场', 24.3039410000, '谷埠街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18579412324', NULL, NULL, NULL, 10, '2020-09-16 21:10:58', '2020-09-16 21:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2809, 423, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4076464844, 24.3021706814, '广西壮族自治区柳州市鱼峰区天马街道华喜口腔(谷埠街店)新谷大厦', 109.4075073242, 24.3022498915, 109.4126430000, '新谷大厦', 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18579412324', NULL, NULL, NULL, 10, '2020-09-17 09:25:20', '2020-09-17 09:25:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2810, 423, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4073855252, 24.3023163520, '广西壮族自治区柳州市鱼峰区天马街道谷埠路新谷大厦', 109.4075073242, 24.3022498915, 109.4126430000, '新谷大厦', 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18579412324', NULL, NULL, NULL, 10, '2020-09-17 09:26:00', '2020-09-17 09:26:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2811, 423, NULL, NULL, NULL, NULL, NULL, 'TAXI000003', 109.4073109266, 24.3012372504, '广西壮族自治区柳州市柳南区柳南街道谷埠路39-2号柳州市谷埠路幼儿园', 109.4073109266, 24.3012372504, 109.4126430000, '柳州市谷埠路幼儿园', 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18579412324', NULL, NULL, NULL, 10, '2020-09-17 09:31:06', '2020-09-17 09:31:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2812, 424, NULL, 63, NULL, NULL, 785, 'TAXI000004', 109.4338365343, 24.3471999783, '广西壮族自治区柳州市城中区潭中街道积木宝贝科学早教中房世纪广场', 109.4337765842, 24.3472911241, 109.4125290000, '中房世纪广场', 24.3127910000, '五星商业步行街', 109.4337876484, 24.3472846128, '广西壮族自治区柳州市城中区潭中街道积木宝贝科学早教中房世纪广场', '2020-09-17 22:20:32', 109.4139113155, 24.3121430596, '广西壮族自治区柳州市城中区城中街道中山东路63号金长城大厦', '2020-09-17 22:35:24', 7680.00, 1, 2, 16.70, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 16.70, NULL, '13597063052', NULL, NULL, NULL, 8, '2020-09-17 22:15:16', '2020-09-17 22:15:00', '2020-09-17 22:16:21', '2020-09-17 22:16:21', '2020-09-17 22:16:21', '2020-09-17 22:20:32', '2020-09-17 22:35:24', 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2813, 245, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4406914605, 24.2715939670, '广西壮族自治区柳州市鱼峰区白莲街道菲菲音乐学苑宝莲新都', 109.4407042101, 24.2715945095, 109.3882920000, '宝莲新都', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18178803160', NULL, NULL, NULL, 10, '2020-09-18 11:49:02', '2020-09-18 11:49:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2814, 430, NULL, NULL, NULL, NULL, NULL, 'TAXI000001', 109.4179342990, 24.3009195964, '广西壮族自治区柳州市鱼峰区天马街道乐群路马鞍山公园', 109.4179313151, 24.3009092882, 109.4101960000, '马鞍山公园', 24.2914990000, '宝宝乐幼儿园(柳石路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18269585832', NULL, NULL, NULL, 10, '2020-09-19 12:43:10', '2020-09-19 12:43:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 2, NULL, NULL, NULL, NULL);
+INSERT INTO `t_order_cross_city` VALUES (2815, 430, NULL, NULL, NULL, NULL, NULL, 'TAXI000002', 109.4179511176, 24.3009106445, '广西壮族自治区柳州市鱼峰区天马街道乐群路马鞍山公园', 109.4179532878, 24.3009079319, 109.4101960000, '马鞍山公园', 24.2914990000, '宝宝乐幼儿园(柳石路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '18269585832', NULL, NULL, NULL, 10, '2020-09-19 12:44:17', '2020-09-19 12:44:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_order_evaluate
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_evaluate`;
+CREATE TABLE `t_order_evaluate`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `orderType` int(1) NULL DEFAULT NULL COMMENT '1=专车,2=出租车,3=跨城出行,4=跨城小件物流,5=同城小件物流,6=包车',
+  `fraction` double(10, 2) NULL DEFAULT NULL COMMENT '评分  0-5',
+  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '评价内容',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '评价时间',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '评价用户ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 332 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '订单评价' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_order_evaluate
+-- ----------------------------
+INSERT INTO `t_order_evaluate` VALUES (309, 2584, 904, 2, 5.00, '', '2020-08-17 19:14:15', 184);
+INSERT INTO `t_order_evaluate` VALUES (310, 2588, 403, 2, 5.00, '', '2020-08-17 20:24:26', 184);
+INSERT INTO `t_order_evaluate` VALUES (311, 2608, 910, 2, 5.00, '', '2020-08-19 18:03:47', 188);
+INSERT INTO `t_order_evaluate` VALUES (312, 2609, 910, 2, 5.00, NULL, '2020-08-19 18:11:14', 188);
+INSERT INTO `t_order_evaluate` VALUES (313, 2612, 910, 2, 5.00, '活地图认路准,态度好服务棒', '2020-08-19 18:18:59', 189);
+INSERT INTO `t_order_evaluate` VALUES (314, 2614, 913, 2, 5.00, '', '2020-08-20 15:58:18', 184);
+INSERT INTO `t_order_evaluate` VALUES (315, 2616, 913, 2, 5.00, '', '2020-08-20 16:06:39', 184);
+INSERT INTO `t_order_evaluate` VALUES (316, 2628, 875, 2, 5.00, '', '2020-08-22 20:31:17', 184);
+INSERT INTO `t_order_evaluate` VALUES (317, 2650, 390, 2, 5.00, '车内整洁,活地图认路准,驾驶平稳,态度好服务棒', '2020-09-02 07:54:44', 236);
+INSERT INTO `t_order_evaluate` VALUES (318, 2666, 203, 2, 5.00, '态度好服务棒,活地图认路准,驾驶平稳,车内整洁', '2020-09-04 15:53:15', 194);
+INSERT INTO `t_order_evaluate` VALUES (319, 2674, 54, 2, 5.00, '', '2020-09-05 10:55:16', 269);
+INSERT INTO `t_order_evaluate` VALUES (320, 2676, 323, 2, 5.00, '', '2020-09-05 11:40:32', 269);
+INSERT INTO `t_order_evaluate` VALUES (321, 2691, 456, 2, 5.00, '', '2020-09-05 23:38:07', 288);
+INSERT INTO `t_order_evaluate` VALUES (322, 2706, 73, 2, 5.00, '', '2020-09-08 15:16:39', 245);
+INSERT INTO `t_order_evaluate` VALUES (323, 2698, 215, 2, 5.00, '', '2020-09-10 08:13:54', 302);
+INSERT INTO `t_order_evaluate` VALUES (324, 2785, 333, 2, 5.00, NULL, '2020-09-12 08:46:45', 245);
+INSERT INTO `t_order_evaluate` VALUES (325, 21, 910, 1, 5.00, '驾驶平稳', '2020-09-23 11:25:16', 183);
+INSERT INTO `t_order_evaluate` VALUES (326, 56, 905, 1, 5.00, NULL, '2020-09-23 15:23:48', 190);
+INSERT INTO `t_order_evaluate` VALUES (327, 56, 905, 1, 5.00, NULL, '2020-09-23 15:24:02', 190);
+INSERT INTO `t_order_evaluate` VALUES (328, 56, 905, 1, 5.00, NULL, '2020-09-23 15:24:30', 190);
+INSERT INTO `t_order_evaluate` VALUES (329, 58, 905, 1, 4.00, '服务态度恶劣,司机吸烟', '2020-09-23 15:40:04', 190);
+INSERT INTO `t_order_evaluate` VALUES (330, 59, 905, 1, 4.00, '车辆肮脏,打电话玩手机', '2020-09-23 16:05:33', 190);
+INSERT INTO `t_order_evaluate` VALUES (331, 81, 906, 1, 5.00, '活地图认路准', '2020-09-29 11:31:26', 189);
+
+-- ----------------------------
+-- Table structure for t_order_logistics
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_logistics`;
+CREATE TABLE `t_order_logistics`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '订单类型(4=同城物流,5=跨城物流)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '接单司机ID',
+  `carId` int(11) NULL DEFAULT NULL COMMENT '车辆id',
+  `orderNum` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '订单号',
+  `cargoType` int(2) NULL DEFAULT NULL COMMENT '货物类型(1=普通货物,2=贵重货物)',
+  `cargoNumber` int(11) NULL DEFAULT NULL COMMENT '货物数量',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `placementLon` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点经度',
+  `placementLat` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点纬度',
+  `placementAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下单地点',
+  `startLon` double(20, 10) NULL DEFAULT NULL COMMENT '出发地经度值',
+  `startLat` double(20, 10) NULL DEFAULT NULL COMMENT '出发地纬度值',
+  `startAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '出发地地点',
+  `endLon` double(20, 10) NULL DEFAULT NULL COMMENT '目的地经度',
+  `endLat` double(20, 10) NULL DEFAULT NULL COMMENT '目的地纬度',
+  `endAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '目的地地点',
+  `recipient` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '收件人姓名',
+  `recipientPhone` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '收件人电话',
+  `boardingLon` double(20, 10) NULL DEFAULT NULL COMMENT '上车点经度',
+  `boardingLat` double(20, 10) NULL DEFAULT NULL COMMENT '上车点纬度',
+  `boardingAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '上车点',
+  `boardingTime` datetime(0) NULL DEFAULT NULL COMMENT '上车时间',
+  `getoffLon` double(20, 10) NULL DEFAULT NULL COMMENT '下车点经度',
+  `getoffLat` double(20, 10) NULL DEFAULT NULL COMMENT '下车点纬度',
+  `getoffAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下车地点',
+  `getoffTime` datetime(0) NULL DEFAULT NULL COMMENT '下车时间',
+  `mileage` double(10, 2) NULL DEFAULT NULL COMMENT '行驶里程数(米)',
+  `payManner` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=OK平台支付,2=其他方式支付)',
+  `payType` smallint(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝,3=其他)',
+  `orderMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单金额',
+  `travelMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '行程费',
+  `tipMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '小费',
+  `redPacketMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '红包抵扣金额',
+  `couponMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券抵扣金额',
+  `redPacketId` int(11) NULL DEFAULT NULL COMMENT '红包记录id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  `discount` double(11, 2) NULL DEFAULT NULL COMMENT '折扣',
+  `discountMoney` double(11, 2) NULL DEFAULT NULL COMMENT '折扣优惠金额',
+  `activityId` int(11) NULL DEFAULT NULL COMMENT '折扣活动id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `payMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  `state` smallint(6) NULL DEFAULT NULL COMMENT '状态(1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=待补差价)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '下单时间',
+  `travelTime` datetime(0) NULL DEFAULT NULL COMMENT '出行时间',
+  `snatchOrderTime` datetime(0) NULL DEFAULT NULL COMMENT '抢单时间',
+  `setOutTime` datetime(0) NULL DEFAULT NULL COMMENT '司机点出发时间',
+  `arriveTime` datetime(0) NULL DEFAULT NULL COMMENT '司机到达预约地点时间',
+  `startServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '开始服务时间',
+  `endServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '结束服务时间',
+  `orderSource` int(1) NULL DEFAULT NULL COMMENT '下单方式(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)',
+  `invoiceId` int(11) NULL DEFAULT NULL COMMENT '发票id',
+  `trackId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '高德猎鹰上的轨迹id',
+  `isDelete` int(1) NULL DEFAULT 1 COMMENT '是否删除  1=否 2=是',
+  `telX` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号',
+  `bindId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号绑定关系id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2817 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单-小件物流' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_order_logistics
+-- ----------------------------
+INSERT INTO `t_order_logistics` VALUES (2584, 4, 184, 904, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4054421550, 24.3118025388, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054799437, 24.3117937916, '滨江西路15栋', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4054360000, 24.3118360000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-08-17 19:05:33', 109.4054360000, 24.3118360000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-08-17 19:06:21', 0.00, 1, 2, 7.00, 7.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 7.00, 9, '2020-08-17 19:04:41', '2020-08-17 19:04:00', '2020-08-17 19:04:48', '2020-08-17 19:05:01', '2020-08-17 19:05:07', '2020-08-17 19:05:33', '2020-08-17 19:06:21', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2585, 4, 185, 905, 943, 'TAXI000002', NULL, NULL, NULL, 104.0559895833, 30.5855577257, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0559895833, 30.5855577257, '天府新谷(府城大道西段)', 104.0684510000, 30.6061370000, '成都南站', NULL, NULL, 104.0557850483, 30.5856586763, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:15:13', 104.0557850483, 30.5856586763, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:15:16', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-08-17 19:15:02', '2020-08-17 19:15:00', '2020-08-17 19:15:07', '2020-08-17 19:15:10', '2020-08-17 19:15:12', '2020-08-17 19:15:13', '2020-08-17 19:15:16', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2586, 4, 186, 905, 943, 'TAXI000003', NULL, NULL, NULL, 104.0557800411, 30.5857637066, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557538053, 30.5856664905, '天府新谷(府城大道西段)11栋', 104.0656540000, 30.5921010000, '高新区人事劳动和社会保障局', NULL, NULL, 104.0557790338, 30.5856626662, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:20:56', 104.0557790338, 30.5856626662, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:21:00', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-08-17 19:20:34', '2020-08-17 19:20:00', '2020-08-17 19:20:37', '2020-08-17 19:20:44', '2020-08-17 19:20:54', '2020-08-17 19:20:56', '2020-08-17 19:21:00', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2587, 4, 184, 903, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4052644454, 24.3114942511, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052908480, 24.3114821370, '滨江西路15栋', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-08-17 20:15:44', '2020-08-17 21:00:00', '2020-08-17 20:16:03', NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, '', '');
+INSERT INTO `t_order_logistics` VALUES (2588, 4, 184, 403, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4052640152, 24.3114957904, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052908480, 24.3114821370, '滨江西路15栋', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4053090751, 24.3114942888, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-17 20:18:02', 109.4111274951, 24.3091613152, '广西壮族自治区柳州市城中区城中街道柳江路', '2020-08-17 20:21:14', 656.00, 1, 1, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, 9, '2020-08-17 20:17:46', '2020-08-17 20:17:00', '2020-08-17 20:17:52', '2020-08-17 20:17:52', '2020-08-17 20:17:52', '2020-08-17 20:18:02', '2020-08-17 20:21:14', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2589, 4, 187, 905, 943, 'TAXI000001', NULL, NULL, NULL, 104.0557740265, 30.5857676964, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557739219, 30.5857680878, '天府新谷(府城大道西段)11栋', 104.0839090000, 30.6608140000, '市二医院(地铁站)', NULL, NULL, 104.0557740000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:53:39', 104.0557770340, 30.5857707034, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:53:47', 7157713.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-08-18 09:28:52', '2020-08-18 09:28:00', '2020-08-18 09:28:52', '2020-08-18 09:53:37', '2020-08-18 09:53:38', '2020-08-18 09:53:39', '2020-08-18 09:53:47', 2, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2590, 4, 187, 905, 943, 'TAXI000002', NULL, NULL, NULL, 104.0557710191, 30.5857646894, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557859918, 30.5856560999, '天府新谷(府城大道西段)11栋', 104.0839090000, 30.6608140000, '市二医院(地铁站)', NULL, NULL, 104.0557800000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:55:58', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:56:03', 0.00, 1, 1, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 10.00, 8, '2020-08-18 09:55:18', '2020-08-18 09:55:00', '2020-08-18 09:55:18', NULL, NULL, '2020-08-18 09:55:58', '2020-08-18 09:56:03', 2, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2591, 4, 187, 905, 943, 'TAXI000003', NULL, NULL, NULL, 104.0557770341, 30.5857727041, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557766041, 30.5857553882, '天府新谷(府城大道西段)11栋', 104.0839090000, 30.6608140000, '市二医院(地铁站)', NULL, NULL, 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 10:02:38', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 10:03:11', 57261800.00, 1, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-08-18 10:00:29', '2020-08-18 10:00:00', '2020-08-18 10:00:29', NULL, NULL, '2020-08-18 10:02:38', '2020-08-18 10:03:11', 2, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2592, 4, 189, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, '成都市武侯区武侯祠大街69号', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 15:03:17', '2020-08-19 15:03:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2593, 4, 189, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, '成都市武侯区武侯祠大街69号', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 15:04:03', '2020-08-19 15:03:56', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2594, 4, 186, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 104.0557820450, 30.5857437028, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557766041, 30.5857657788, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:08:53', '2020-08-19 17:08:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2595, 4, 186, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 104.0557830468, 30.5857306998, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:09:42', '2020-08-19 17:09:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2596, 4, 186, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 104.0557780355, 30.5857496973, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:10:12', '2020-08-19 17:10:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2597, 4, 186, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 104.0557820448, 30.5857387009, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:10:39', '2020-08-19 17:10:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2598, 4, 186, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 104.0557810437, 30.5857687104, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:11:31', '2020-08-19 17:11:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2599, 4, 186, NULL, NULL, 'TAXI000008', NULL, NULL, NULL, 104.0557810437, 30.5857687104, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:11:42', '2020-08-19 17:11:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2600, 4, 186, 910, 945, 'TAXI000009', NULL, NULL, NULL, 104.0557820448, 30.5857397013, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-08-19 17:19:37', '2020-08-19 17:19:00', '2020-08-19 17:19:37', NULL, NULL, NULL, NULL, 2, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2601, 4, 186, NULL, NULL, 'TAXI000010', NULL, NULL, NULL, 104.0560324436, 30.5855384657, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560861919, 30.5845752992, '誉峰国际中心', 104.0428040000, 30.6141730000, '神仙树社区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:21:34', '2020-08-19 17:21:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2602, 4, 186, NULL, NULL, 'TAXI000011', NULL, NULL, NULL, 104.0557820000, 30.5856560000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:35:01', '2020-08-19 17:34:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2603, 4, 186, NULL, NULL, 'TAXI000012', NULL, NULL, NULL, 104.0557820000, 30.5856560000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:36:35', '2020-08-19 17:36:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2604, 4, 186, NULL, NULL, 'TAXI000013', NULL, NULL, NULL, 104.0557619920, 30.5856606324, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:37:42', '2020-08-19 17:37:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2605, 4, 188, 910, 945, 'TAXI000014', NULL, NULL, NULL, 104.0557800416, 30.5857747107, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-08-19 17:38:25', '2020-08-19 17:38:00', '2020-08-19 17:38:29', NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2606, 4, 188, 910, 945, 'TAXI000015', NULL, NULL, NULL, 104.0557800411, 30.5857637066, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, '天府新谷(府城大道西段)11栋', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 17:43:19', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 17:45:19', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-08-19 17:38:51', '2020-08-19 17:38:00', '2020-08-19 17:38:53', '2020-08-19 17:41:17', '2020-08-19 17:41:21', '2020-08-19 17:43:19', '2020-08-19 17:45:19', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2607, 4, 183, NULL, NULL, 'TAXI000016', NULL, NULL, NULL, 104.0557780344, 30.5857266886, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557350298, 30.5856664905, '天府新谷(府城大道西段)11栋', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 17:48:50', '2020-08-19 17:48:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2608, 4, 188, 910, 945, 'TAXI000017', NULL, NULL, NULL, 104.0557770334, 30.5857576984, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557886740, 30.5853755521, '誉峰东区5幢', 104.0684510000, 30.6061370000, '火车南站', NULL, NULL, 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:00:22', 104.0557890000, 30.5856540000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:03:18', 0.00, 2, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-08-19 17:59:55', '2020-08-19 17:59:00', '2020-08-19 17:59:56', '2020-08-19 18:00:15', '2020-08-19 18:00:17', '2020-08-19 18:00:22', '2020-08-19 18:03:18', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2609, 4, 188, 910, 945, 'TAXI000018', NULL, NULL, NULL, 104.0560096571, 30.5855327691, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560861919, 30.5845752992, '誉峰国际中心', 104.0428040000, 30.6141730000, '神仙树社区', NULL, NULL, 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:09:50', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:10:06', 0.00, 1, 2, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 9, '2020-08-19 18:08:51', '2020-08-19 18:08:00', '2020-08-19 18:08:53', '2020-08-19 18:09:43', '2020-08-19 18:09:45', '2020-08-19 18:09:50', '2020-08-19 18:10:06', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2610, 4, 188, 910, 945, 'TAXI000019', NULL, NULL, NULL, 104.0560549588, 30.5855324978, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560549588, 30.5855324978, '誉峰国际中心', 104.0428040000, 30.6141730000, '神仙树社区', NULL, NULL, 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:12:19', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:12:22', 0.00, 1, 2, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-08-19 18:12:11', '2020-08-19 18:12:00', '2020-08-19 18:12:12', '2020-08-19 18:12:15', '2020-08-19 18:12:17', '2020-08-19 18:12:19', '2020-08-19 18:12:22', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2611, 4, 188, 910, 945, 'TAXI000020', NULL, NULL, NULL, 104.0560563151, 30.5855330404, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560549588, 30.5855324978, '誉峰国际中心', 104.0428040000, 30.6141730000, '神仙树社区', NULL, NULL, 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:13:07', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:13:10', 0.00, 1, 3, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-08-19 18:13:00', '2020-08-19 18:13:00', '2020-08-19 18:13:03', '2020-08-19 18:13:05', '2020-08-19 18:13:06', '2020-08-19 18:13:07', '2020-08-19 18:13:10', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2612, 4, 189, 910, 945, 'TAXI000021', NULL, NULL, NULL, 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, '成都市武侯区锦晖西二街126号', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:17:10', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:17:24', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 9, '2020-08-19 18:16:21', '2020-08-19 18:16:20', '2020-08-19 18:16:26', '2020-08-19 18:17:01', '2020-08-19 18:17:05', '2020-08-19 18:17:10', '2020-08-19 18:17:24', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2613, 4, 189, NULL, NULL, 'TAXI000022', NULL, NULL, NULL, 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, '成都市武侯区锦晖西二街126号', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-19 18:18:32', '2020-08-19 18:18:31', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2614, 4, 184, 913, 642, 'TAXI000001', NULL, NULL, NULL, 109.4203405253, 24.3143196974, '广西壮族自治区柳州市城中区公园街道滨江东路19-1号金沙角', 109.4187541959, 24.3117387937, '文惠路与滨江东路交叉口', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4202440357, 24.3142562168, '广西壮族自治区柳州市城中区公园街道滨江东路19-1号金沙角', '2020-08-20 15:54:00', 109.4208940750, 24.3181546664, '广西壮族自治区柳州市城中区公园街道滨江东路', '2020-08-20 15:56:39', 475.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-08-20 15:53:17', '2020-08-20 15:53:00', '2020-08-20 15:53:31', '2020-08-20 15:53:31', '2020-08-20 15:53:31', '2020-08-20 15:54:00', '2020-08-20 15:56:39', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2615, 4, 184, 913, 642, 'TAXI000002', NULL, NULL, NULL, 109.4189446303, 24.3266332763, '广西壮族自治区柳州市柳北区解放街道滨江东路柳州市委大院', 109.4187541959, 24.3117387937, '文惠路与滨江东路交叉口', 109.4030910000, 24.3918490000, 'OK平价超市', NULL, NULL, 109.4202610347, 24.3199878499, '广西壮族自治区柳州市城中区公园街道滨江路40号', '2020-08-20 15:59:47', 109.4159778268, 24.3098263460, '广西壮族自治区柳州市城中区城中街道滨江东路4号', '2020-08-20 16:02:17', 1862.00, 1, 2, 7.00, 7.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 7.00, 8, '2020-08-20 15:58:37', '2020-08-20 15:58:00', '2020-08-20 15:58:57', '2020-08-20 15:58:57', '2020-08-20 15:58:57', '2020-08-20 15:59:47', '2020-08-20 16:02:17', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2616, 4, 184, 913, 642, 'TAXI000003', NULL, NULL, NULL, 109.4105999450, 24.3091620128, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', 109.4187541959, 24.3117387937, '文惠路与滨江东路交叉口', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4105107072, 24.3091614223, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-08-20 16:04:52', 109.4094271171, 24.3091948927, '广西壮族自治区柳州市城中区中南街道滨江西路柳堤', '2020-08-20 16:06:09', 128.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-08-20 16:03:27', '2020-08-20 16:03:00', '2020-08-20 16:03:33', '2020-08-20 16:03:33', '2020-08-20 16:03:33', '2020-08-20 16:04:52', '2020-08-20 16:06:09', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2617, 4, 184, 403, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4052905050, 24.3116129841, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052090406, 24.3116153541, '滨江西路15栋', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4054257989, 24.3115442817, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', '2020-08-21 09:34:21', 109.4065595354, 24.3100281143, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-21 09:37:22', 442.00, 1, 2, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, 8, '2020-08-21 09:33:51', '2020-08-21 09:33:00', '2020-08-21 09:34:01', '2020-08-21 09:34:01', '2020-08-21 09:34:01', '2020-08-21 09:34:21', '2020-08-21 09:37:22', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2618, 4, 192, 910, 945, 'TAXI000002', NULL, NULL, NULL, 104.0557740265, 30.5857676964, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:37:45', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:37:49', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:34:58', '2020-08-21 11:34:00', '2020-08-21 11:35:03', '2020-08-21 11:35:03', '2020-08-21 11:35:03', '2020-08-21 11:37:45', '2020-08-21 11:37:49', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2619, 4, 192, 910, 945, 'TAXI000003', NULL, NULL, NULL, 104.0557770329, 30.5857476946, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:38:19', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:38:21', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:38:13', '2020-08-21 11:38:00', '2020-08-21 11:38:16', '2020-08-21 11:38:16', '2020-08-21 11:38:16', '2020-08-21 11:38:19', '2020-08-21 11:38:21', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2620, 4, 192, 910, 945, 'TAXI000004', NULL, NULL, NULL, 104.0557770336, 30.5857617000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0558050000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:40:01', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:40:41', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:39:52', '2020-08-21 11:39:00', '2020-08-21 11:39:57', '2020-08-21 11:39:57', '2020-08-21 11:39:57', '2020-08-21 11:40:01', '2020-08-21 11:40:41', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2621, 4, 192, 910, 945, 'TAXI000005', NULL, NULL, NULL, 104.0557770340, 30.5857707034, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:45:52', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:45:55', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:45:45', '2020-08-21 11:45:00', '2020-08-21 11:45:48', '2020-08-21 11:45:48', '2020-08-21 11:45:48', '2020-08-21 11:45:52', '2020-08-21 11:45:55', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2622, 4, 192, 910, 945, 'TAXI000006', NULL, NULL, NULL, 104.0557740267, 30.5857706976, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:46:30', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:47:29', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:46:24', '2020-08-21 11:46:00', '2020-08-21 11:46:27', '2020-08-21 11:46:27', '2020-08-21 11:46:27', '2020-08-21 11:46:30', '2020-08-21 11:47:29', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2623, 4, 192, 910, 945, 'TAXI000007', NULL, NULL, NULL, 104.0557740271, 30.5857787006, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:51:48', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:51:52', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:51:41', '2020-08-21 11:51:00', '2020-08-21 11:51:45', '2020-08-21 11:51:45', '2020-08-21 11:51:45', '2020-08-21 11:51:48', '2020-08-21 11:51:52', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2624, 4, 192, 910, 945, 'TAXI000008', NULL, NULL, NULL, 104.0557629996, 30.5857686754, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0557930000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:53:07', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:53:12', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:52:58', '2020-08-21 11:52:00', '2020-08-21 11:53:00', '2020-08-21 11:53:00', '2020-08-21 11:53:00', '2020-08-21 11:53:07', '2020-08-21 11:53:12', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2625, 4, 192, 910, 945, 'TAXI000009', NULL, NULL, NULL, 104.0557740266, 30.5857686968, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, '天府新谷(府城大道西段)11栋', 104.0989490000, 30.6173000000, '东光小区', NULL, NULL, 104.0557980000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:56:26', 104.0557980000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:56:41', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-08-21 11:56:20', '2020-08-21 11:56:00', '2020-08-21 11:56:22', '2020-08-21 11:56:22', '2020-08-21 11:56:22', '2020-08-21 11:56:26', '2020-08-21 11:56:41', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2626, 4, 184, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4053641279, 24.3119554880, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4026756942, 24.3256268176, '雅儒社区', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-22 20:19:02', '2020-08-22 20:19:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2627, 4, 184, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4054309958, 24.3115407131, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', 109.4026756942, 24.3256268176, '雅儒社区', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-22 20:21:41', '2020-08-22 20:21:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2628, 4, 184, 875, 838, 'TAXI000003', NULL, NULL, NULL, 109.4054516462, 24.3115862298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', 109.4026756942, 24.3256268176, '雅儒社区', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4065095238, 24.3101780685, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-22 20:24:32', 109.4142611589, 24.3092771401, '广西壮族自治区柳州市城中区城中街道滨江东路柳州市人民政府国有资产监督管理委员会', '2020-08-22 20:30:37', 997.00, 1, 2, 6.80, 6.80, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.80, 9, '2020-08-22 20:23:00', '2020-08-22 20:22:00', '2020-08-22 20:23:30', '2020-08-22 20:23:30', '2020-08-22 20:23:30', '2020-08-22 20:24:32', '2020-08-22 20:30:37', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2629, 4, 193, 875, 838, 'TAXI000004', NULL, NULL, NULL, 109.4143678761, 24.3094681858, '广西壮族自治区柳州市城中区城中街道柳江路鸿府大厦', 109.4143969474, 24.3093701986, '柳江路与滨江东路交叉口', 109.4030910000, 24.3918490000, 'OK平价超市', NULL, NULL, 109.4142944910, 24.3092438058, '广西壮族自治区柳州市城中区城中街道滨江东路柳州市人民政府国有资产监督管理委员会', '2020-08-22 20:38:11', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-08-22 20:38:02', '2020-08-22 20:38:00', '2020-08-22 20:38:11', '2020-08-22 20:38:11', '2020-08-22 20:38:11', '2020-08-22 20:38:11', NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2630, 4, 193, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4143527870, 24.3093981820, '广西壮族自治区柳州市城中区城中街道柳江路柳州市人民政府国有资产监督管理委员会', 109.4143969474, 24.3093701986, '柳江路与滨江东路交叉口', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-22 20:40:00', '2020-08-22 20:39:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2631, 4, 194, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4104725477, 24.3198771159, '广西壮族自治区柳州市城中区城中街道广场路地王公馆', 109.4109849718, 24.3200103082, '地王公馆', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 9.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-29 08:43:05', '2020-08-29 08:43:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2632, 4, 189, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, '成都市武侯区锦晖西二街126号', 104.0701250000, 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-29 09:40:00', '2020-08-29 09:39:59', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2633, 4, 195, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4906580000, 24.3191390000, '广西壮族自治区柳州市鱼峰区阳和街道广西鹿寨农村商业银行(古亭山支行)', 109.4906580000, 24.3191390000, '柳州市鱼峰区兴亭路23号', 109.4449080000, 24.3138080000, '德润中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-29 12:09:41', '2020-08-29 12:09:40', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2634, 4, 200, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.3921630000, 24.2845070000, '广西壮族自治区柳州市柳南区银山街道银海小区北区', 109.3921630000, 24.2845070000, '柳州市柳南区航生路25号', 109.3384600000, 24.2594550000, '柳江农贸市场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-08-29 16:58:51', '2020-08-29 16:58:50', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2635, 4, 202, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4332050000, 24.3523640000, '广西壮族自治区柳州市城中区河东街道柳州市第十二中学', 109.4332050000, 24.3523640000, '柳州市城中区东环大道145-131号', 109.4289940000, 24.3562300000, '广西柳州高级中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-29 18:14:07', '2020-08-29 18:14:05', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2636, 4, 202, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.4332050000, 24.3523640000, '广西壮族自治区柳州市城中区河东街道柳州市第十二中学', 109.4332050000, 24.3523640000, '柳州市城中区桂中大道143号', 109.4289940000, 24.3562300000, '广西柳州高级中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-29 18:14:30', '2020-08-29 18:14:28', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2637, 4, 206, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, '柳州市柳江区柳堡路227号', 109.4171660000, 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 12:14:24', '2020-08-30 12:14:23', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2638, 4, 206, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, '柳州市柳江区柳堡路227号', 109.4171660000, 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 12:15:55', '2020-08-30 12:15:54', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2639, 4, 206, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, '柳州市柳江区柳堡路215号', 109.4171660000, 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 12:18:20', '2020-08-30 12:18:19', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2640, 4, 206, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, '柳州市柳江区柳堡路98号', 109.4171660000, 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 12:19:33', '2020-08-30 12:19:32', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2641, 4, 207, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4289940000, 24.3562300000, '广西壮族自治区柳州市城中区河东街道广西柳州高级中学', 109.4289940000, 24.3562300000, '柳州市城中区高新五路22号', 109.4127310000, 24.3621550000, '锦都华庭', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 12:31:07', '2020-08-30 12:31:06', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2642, 4, 208, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.3833420000, 24.2691840000, '广西壮族自治区柳州市柳南区南环街道水木新华', 109.3833420000, 24.2691840000, '柳州市柳南区航四路19号9栋', 109.4837810000, 24.3098120000, '香港新城', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 14:48:19', '2020-08-30 14:48:18', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2643, 4, 211, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4108280000, 24.3043300000, '广西壮族自治区柳州市鱼峰区驾鹤街道银泰城(鱼峰路)', 109.4108280000, 24.3043300000, '柳州市柳南区鱼峰路32号', 109.4470110000, 24.2777970000, '天翼九龙印象', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 17:03:33', '2020-08-30 17:03:33', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2644, 4, 213, NULL, NULL, 'TAXI000008', NULL, NULL, NULL, 109.3927760000, 24.3118010000, '广西壮族自治区柳州市柳南区南站街道柳南区太阳社区卫生服务中心', 109.3927760000, 24.3118010000, '柳州市柳南区鹅山路3区', 109.4261180000, 24.3345900000, '柳州投资大厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 19:38:27', '2020-08-30 19:38:24', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2645, 4, 215, NULL, NULL, 'TAXI000009', NULL, NULL, NULL, 109.3960321723, 24.3326540799, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957850477, 24.3327761502, '在水一方(西堤路)', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-30 20:41:00', '2020-08-31 06:30:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2646, 4, 194, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, '柳州市城中区滨江西路15栋17栋', 109.3882920000, 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-31 09:20:01', '2020-08-31 09:20:00', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2647, 4, 211, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4444830000, 24.3228400000, '广西壮族自治区柳州市鱼峰区麒麟街道南亚名邸幼儿园', 109.4444830000, 24.3228400000, '柳州市鱼峰区文昌路63号', 109.4470110000, 24.2777970000, '天翼九龙印象', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-08-31 09:38:11', '2020-08-31 09:38:12', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2648, 4, 219, 390, 551, 'TAXI000003', NULL, NULL, NULL, 109.3919310000, 24.3263990000, '广西壮族自治区柳州市柳南区河西街道磨滩路7号院', 109.3919310000, 24.3263990000, '湘桂铁路扩改中铁电气化局工程指挥部', 109.4898610000, 24.3185460000, '古亭山市场(公交站)', NULL, NULL, 109.4139113234, 24.3122763531, '广西壮族自治区柳州市城中区公园街道中山东路柳州市直机关二大院', '2020-09-02 06:38:28', 109.3793463611, 24.2793720319, '广西壮族自治区柳州市柳南区南环街道鹅溪路', '2020-09-02 06:52:13', 176748.00, 1, NULL, 18.10, 18.10, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-08-31 12:14:01', '2020-08-31 12:14:00', '2020-08-31 12:14:49', '2020-08-31 12:14:49', '2020-08-31 12:14:49', '2020-09-02 06:38:28', '2020-09-02 06:52:13', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2649, 4, 228, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.3405910000, 24.2641450000, '广西壮族自治区柳州市柳南区太阳村镇柳州市兴腾铸造配件厂', 109.3405910000, 24.2641450000, '柳州市柳南区文山路29号', 109.4470910000, 24.3377600000, '聚福苑10栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-01 11:08:06', '2020-09-01 11:08:05', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2650, 4, 236, 390, 551, 'TAXI000001', NULL, NULL, NULL, 109.3761730000, 24.2752360000, '广西壮族自治区柳州市柳南区南环街道柳州市花城西饼有限公司', 109.3761730000, 24.2752360000, '柳州市竹新学校-日日升艺术幼儿园', 109.4102120000, 24.3206280000, '步步高广场(广场路)', NULL, NULL, 109.3750722107, 24.2741687788, '广西壮族自治区柳州市柳南区南环街道柳邕路350-3号柳州市竹新学校', '2020-09-02 07:24:05', 109.4115615420, 24.3200413336, '广西壮族自治区柳州市城中区城中街道广场路地王公馆', '2020-09-02 07:50:29', 11580.00, 2, NULL, 24.70, 24.70, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-02 07:04:37', '2020-09-02 07:04:36', '2020-09-02 07:05:27', '2020-09-02 07:05:27', '2020-09-02 07:05:27', '2020-09-02 07:24:05', '2020-09-02 07:50:29', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2651, 4, 194, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.3862080000, 24.2797370000, '广西壮族自治区柳州市柳南区银山街道航云路兆兴园(柳邕路)', 109.3862080000, 24.2797370000, '兆兴园', 109.4088210000, 24.3119660000, '青云菜市(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-02 08:04:38', '2020-09-02 08:04:37', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2652, 4, 238, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4401977539, 24.3070627170, '广西壮族自治区柳州市鱼峰区箭盘山街道中国建设银行(东环路支行)金盛广场', 109.4398973911, 24.3071039804, '金盛广场', 109.4090300000, 24.3019620000, '柳州市房屋登记管理中心(北入口)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-02 09:32:50', '2020-09-02 09:32:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2653, 4, 239, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.3655940000, 24.2667610000, '广西壮族自治区柳州市柳江区恒大雅苑', 109.3655940000, 24.2667610000, '柳州市柳江区柳邕路367号', 109.3377820000, 24.2558640000, '柳州市中医医院柳江区分院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-02 14:11:12', '2020-09-02 14:11:11', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2654, 4, 242, 583, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4078471293, 24.3093652261, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4060807585, 24.3105581682, '滨江西路11栋', 109.4138600000, 24.3184870000, '市中医院', NULL, NULL, 109.4079766849, 24.3092783165, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-02 16:38:05', 109.4100105940, 24.3091448350, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:39:24', 195.00, 1, 2, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, 8, '2020-09-02 16:35:37', '2020-09-02 16:35:00', '2020-09-02 16:35:52', '2020-09-02 16:35:52', '2020-09-02 16:35:52', '2020-09-02 16:38:05', '2020-09-02 16:39:24', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2655, 4, 242, 73, 642, 'TAXI000006', NULL, NULL, NULL, 109.4102104338, 24.3092030724, '广西壮族自治区柳州市城中区城中街道柳江路9栋曙光商住楼', 109.4060807585, 24.3105581682, '滨江西路11栋', 109.4138600000, 24.3184870000, '市中医院', NULL, NULL, 109.4101834769, 24.3091596778, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:43:59', 109.4101945964, 24.3091402366, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:44:07', 0.00, 1, 2, 1.00, 1.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, 8, '2020-09-02 16:43:29', '2020-09-02 16:43:00', '2020-09-02 16:43:32', '2020-09-02 16:43:43', '2020-09-02 16:43:56', '2020-09-02 16:43:59', '2020-09-02 16:44:07', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2656, 4, 242, 583, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4102090235, 24.3092040124, '广西壮族自治区柳州市城中区城中街道柳江路9栋曙光商住楼', 109.4060807585, 24.3105581682, '滨江西路11栋', 109.4138600000, 24.3184870000, '市中医院', NULL, NULL, 109.4141111555, 24.3092938504, '广西壮族自治区柳州市城中区城中街道柳江路鸿府大厦', '2020-09-02 16:53:27', 109.4207272416, 24.3144558634, '广西壮族自治区柳州市城中区公园街道滨江东路金沙角', '2020-09-02 16:56:19', 1329.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-02 16:47:28', '2020-09-02 16:47:00', '2020-09-02 16:47:33', '2020-09-02 16:47:33', '2020-09-02 16:47:33', '2020-09-02 16:53:27', '2020-09-02 16:56:19', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2657, 4, 242, 583, NULL, 'TAXI000008', NULL, NULL, NULL, 109.4211635022, 24.3150161992, '广西壮族自治区柳州市城中区公园街道滨江东路29号金沙角', 109.4211976883, 24.3151131711, '滨江西路11栋', 109.4138600000, 24.3184870000, '市中医院', NULL, NULL, 109.4176610410, 24.3107586538, '广西壮族自治区柳州市城中区水上街道文惠路观瀑广场', '2020-09-02 16:59:18', 109.4105773908, 24.3092113965, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 17:01:20', 1301.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-02 16:57:50', '2020-09-02 16:57:00', '2020-09-02 16:57:56', '2020-09-02 16:57:56', '2020-09-02 16:57:56', '2020-09-02 16:59:18', '2020-09-02 17:01:20', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2658, 4, 184, 73, 642, 'TAXI000009', NULL, NULL, NULL, 109.4100545004, 24.3092073504, '广西壮族自治区柳州市城中区城中街道柳江路130号曙光商住楼', 109.4100209235, 24.3091636471, '柳江路与滨江西路交叉口', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4081022260, 24.3093780601, '广西壮族自治区柳州市城中区中南街道滨江西路5号', '2020-09-02 17:06:01', 109.4054410000, 24.3118350000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-03 13:58:54', 591.00, 1, 3, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-09-02 17:03:30', '2020-09-02 17:03:00', '2020-09-02 17:03:36', '2020-09-02 17:03:53', '2020-09-02 17:04:01', '2020-09-02 17:06:01', '2020-09-03 13:58:54', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2659, 4, 242, 924, NULL, 'TAXI000010', NULL, NULL, NULL, 109.4053700000, 24.3119610000, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4053700000, 24.3119610000, '柳州市中山西路幼儿园', 109.4418850000, 24.3296320000, '万达广场(柳州城中店)', NULL, NULL, 109.4054171449, 24.3118275298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:38:48', 109.4054171449, 24.3118275298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:38:56', 0.00, 1, 1, 1.00, 1.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, 8, '2020-09-02 17:37:53', '2020-09-02 17:37:53', '2020-09-02 17:38:31', '2020-09-02 17:38:37', '2020-09-02 17:38:43', '2020-09-02 17:38:48', '2020-09-02 17:38:56', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2660, 4, 242, 924, NULL, 'TAXI000011', NULL, NULL, NULL, 109.4054110000, 24.3118660000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054102063, 24.3118671219, '滨江西路17栋', 109.4138600000, 24.3184870000, '市中医院', NULL, NULL, 109.4054321490, 24.3117785454, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:44:28', 109.4054981826, 24.3118345328, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:44:33', 0.00, 1, 2, 0.10, 0.10, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.10, 8, '2020-09-02 17:43:33', '2020-09-02 17:43:00', '2020-09-02 17:43:35', '2020-09-02 17:43:39', '2020-09-02 17:43:57', '2020-09-02 17:44:28', '2020-09-02 17:44:33', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2661, 4, 228, NULL, NULL, 'TAXI000012', NULL, NULL, NULL, 109.4473780000, 24.3386780000, '广西壮族自治区柳州市城中区潭中街道聚福苑(学院路)', 109.4473780000, 24.3386780000, '柳州市城中区学院路36号1栋', 109.4470910000, 24.3377600000, '聚福苑10栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-02 17:52:53', '2020-09-02 17:52:52', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2662, 4, 189, NULL, NULL, 'TAXI000013', NULL, NULL, NULL, 109.4682490000, 24.2946100000, '广西壮族自治区柳州市鱼峰区阳和街道晨晨教育培训社湾辅导分部社湾中心校', 109.4682490000, 24.2946100000, '柳州市社湾中心校', 104.0701250000, 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-02 18:02:51', '2020-09-02 18:02:51', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2663, 4, 242, 73, 642, 'TAXI000001', NULL, NULL, NULL, 109.4053971319, 24.3114227395, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4159526286, 24.3255021695, '柳州市中心', 109.4418850000, 24.3296320000, '万达广场(柳州城中店)', NULL, NULL, 109.4054758004, 24.3111777279, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-03 14:08:07', 109.4079266690, 24.3092949804, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-03 14:11:58', 733.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-03 14:07:05', '2020-09-03 14:07:00', '2020-09-03 14:07:44', '2020-09-03 14:07:44', '2020-09-03 14:07:44', '2020-09-03 14:08:07', '2020-09-03 14:11:58', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2664, 4, 251, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4390500000, 24.3705780000, '广西壮族自治区柳州市城中区河东街道东岸盛世花园', 109.4390500000, 24.3705780000, '柳州市城中区东环大道302号', 109.4418850000, 24.3296320000, '万达广场(柳州城中店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-04 10:56:32', '2020-09-04 10:56:34', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2665, 4, 194, 203, 719, 'TAXI000002', NULL, NULL, NULL, 109.4054614258, 24.3119694010, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054711914, 24.3119637044, '中山西路幼儿园', 109.4260630000, 24.2642010000, '柳州市23度文化创意产业园', NULL, NULL, 109.4110276393, 24.3119271709, '广西壮族自治区柳州市城中区城中街道中山中路18号柳州商场', '2020-09-04 14:52:52', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-04 14:52:36', '2020-09-04 14:52:00', '2020-09-04 14:52:52', '2020-09-04 14:52:52', '2020-09-04 14:52:52', '2020-09-04 14:52:52', NULL, 1, NULL, NULL, 1, '', '');
+INSERT INTO `t_order_logistics` VALUES (2666, 4, 194, 203, 719, 'TAXI000003', NULL, NULL, NULL, 109.4259445530, 24.2641422526, '广西壮族自治区柳州市鱼峰区白莲街道柳州市23度文化创意产业园新坡小苑', 109.4259472656, 24.2641753472, '新坡小苑', 109.4052380000, 24.3118790000, 'OK充电站', NULL, NULL, 109.4259220459, 24.2641345607, '广西壮族自治区柳州市鱼峰区白莲街道柳州市23度文化创意产业园新坡小苑', '2020-09-04 15:29:05', 109.4052757262, 24.3114942865, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-04 15:50:04', 8935.00, 1, 1, 23.40, 23.40, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 23.40, 9, '2020-09-04 15:27:56', '2020-09-04 15:27:00', '2020-09-04 15:28:01', '2020-09-04 15:28:01', '2020-09-04 15:28:01', '2020-09-04 15:29:05', '2020-09-04 15:50:04', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2667, 4, 194, 203, 719, 'TAXI000004', NULL, NULL, NULL, 109.4051836480, 24.3117401801, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052503798, 24.3117803277, '中山西路幼儿园', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, 109.4051756927, 24.3117275428, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-04 15:57:07', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-04 15:57:02', '2020-09-04 15:57:00', '2020-09-04 15:57:07', '2020-09-04 15:57:07', '2020-09-04 15:57:07', '2020-09-04 15:57:07', NULL, 1, NULL, NULL, 1, '', '');
+INSERT INTO `t_order_logistics` VALUES (2668, 4, 194, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4054527452, 24.3119533963, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054446072, 24.3119593641, '中山西路幼儿园', 109.4102120000, 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-04 16:34:44', '2020-09-04 16:34:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2669, 4, 194, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.4053884549, 24.3119848633, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4054446072, 24.3119593641, '中山西路幼儿园', 109.4102120000, 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-04 16:36:19', '2020-09-04 16:36:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2670, 4, 258, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4564740000, 24.3191340000, '广西壮族自治区柳州市城中区静兰街道静兰路9号华展·华园', 109.4564740000, 24.3191340000, '柳州市城中区静兰路东一巷36-7号', 109.4141880000, 24.2902720000, '柳州腾誉汽车养护中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-04 18:32:05', '2020-09-04 18:32:04', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2671, 4, 258, NULL, NULL, 'TAXI000008', NULL, NULL, NULL, 109.4564740000, 24.3191340000, '广西壮族自治区柳州市城中区静兰街道静兰路9号华展·华园', 109.4564740000, 24.3191340000, '柳州市城中区静兰路东一巷36-7号', 109.4141880000, 24.2902720000, '柳州腾誉汽车养护中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-04 18:33:06', '2020-09-04 18:33:06', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2672, 4, 267, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.3637780000, 24.3127970000, '广西壮族自治区柳州市柳南区河西街道柳工生活南区', 109.3637780000, 24.3127970000, '柳州市柳南区和平路161号', 109.3618700000, 24.3145870000, '柳工生活南区102栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 08:35:46', '2020-09-05 08:35:46', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2673, 4, 267, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.3637780000, 24.3127970000, '广西壮族自治区柳州市柳南区河西街道柳工生活南区', 109.3637780000, 24.3127970000, '柳州市柳南区和平路161号', 109.3618700000, 24.3145870000, '柳工生活南区102栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 08:43:50', '2020-09-05 08:43:50', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2674, 4, 269, 54, 704, 'TAXI000003', NULL, NULL, NULL, 109.3778260000, 24.3191490000, '广西壮族自治区柳州市柳南区河西街道福柳宏都', 109.3778260000, 24.3191490000, '柳州市柳南区龙屯路184号', 109.4357970000, 24.3497950000, '金色世纪', NULL, NULL, 109.3796658605, 24.3191101298, '广西壮族自治区柳州市柳南区河西街道宏都路吉祥苑(宏都路)', '2020-09-05 09:15:22', 109.4373506633, 24.3480298473, '广西壮族自治区柳州市城中区河东街道高新三路金色世纪', '2020-09-05 09:35:30', 12337.00, 2, NULL, 25.10, 25.10, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-05 09:07:49', '2020-09-05 09:07:48', '2020-09-05 09:08:01', '2020-09-05 09:08:01', '2020-09-05 09:08:01', '2020-09-05 09:15:22', '2020-09-05 09:35:30', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2675, 4, 207, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4144150000, 24.3619420000, '广西壮族自治区柳州市柳北区柳长街道二棉前生活区', 109.4144150000, 24.3619420000, '柳州市柳北区胜利东路东4号', 109.4332050000, 24.3523640000, '柳州市第十二中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-05 09:52:07', '2020-09-05 09:52:06', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2676, 4, 269, 323, 675, 'TAXI000005', NULL, NULL, NULL, 109.4357970000, 24.3497950000, '广西壮族自治区柳州市城中区河东街道金色世纪', 109.4357970000, 24.3497950000, '柳州市城中区东环大道145-21号', 109.3778260000, 24.3191490000, '福柳宏都', NULL, NULL, 109.4372840713, 24.3480299376, '广西壮族自治区柳州市城中区河东街道高新三路金色世纪', '2020-09-05 11:03:33', 109.3775958507, 24.3196076864, '广西壮族自治区柳州市柳南区河西街道福柳宏都', '2020-09-05 11:23:39', 14349.00, 2, NULL, 25.90, 25.90, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-05 10:46:37', '2020-09-05 10:46:37', '2020-09-05 10:48:47', '2020-09-05 10:48:47', '2020-09-05 10:48:47', '2020-09-05 11:03:33', '2020-09-05 11:23:39', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2677, 4, 271, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.4655962457, 24.2729739041, '广西壮族自治区柳州市鱼峰区阳和街道阳和大道89号恒大御景湾', 109.4655585395, 24.2730262587, '恒大御景湾', 109.4098720000, 24.3922790000, '宏桂·香兰花园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 11:22:35', '2020-09-05 11:22:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2678, 4, 271, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4655523003, 24.2730463325, '广西壮族自治区柳州市鱼峰区阳和街道阳和大道89号恒大御景湾', 109.4655585395, 24.2730262587, '恒大御景湾', 109.4098720000, 24.3922790000, '宏桂·香兰花园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-05 11:25:23', '2020-09-05 11:25:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2679, 4, 272, 323, 675, 'TAXI000008', NULL, NULL, NULL, 109.4617480000, 24.3098260000, '广西壮族自治区柳州市鱼峰区麒麟街道柳州市华星行汽车销售服务有限公司', 109.4617480000, 24.3098260000, '柳州市鱼峰区西江路80号', 109.4116750000, 24.3122660000, '柳州宾馆', NULL, NULL, 109.4610758464, 24.3103803972, '广西壮族自治区柳州市鱼峰区麒麟街道西江路广汽丰田柳州华翔西江路店', '2020-09-05 13:38:38', 109.4110109578, 24.3117272337, '广西壮族自治区柳州市城中区城中街道龙城路柳州商场', '2020-09-05 13:55:51', 8387.00, 1, NULL, 17.10, 17.10, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-09-05 13:31:33', '2020-09-05 13:31:32', '2020-09-05 13:31:48', '2020-09-05 13:31:48', '2020-09-05 13:31:48', '2020-09-05 13:38:38', '2020-09-05 13:55:51', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2680, 4, 274, NULL, NULL, 'TAXI000009', NULL, NULL, NULL, 109.3842520000, 24.2850920000, '广西壮族自治区柳州市柳南区柳石街道柳邕装饰建材市场', 109.3842520000, 24.2850920000, '柳州市柳南区柳邕路224-a-22号', 109.3974910000, 24.2784560000, '中国建设银行24小时自助银行(航二路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 14:57:49', '2020-09-05 14:57:48', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2681, 4, 274, NULL, NULL, 'TAXI000010', NULL, NULL, NULL, 109.3842520000, 24.2850920000, '广西壮族自治区柳州市柳南区柳石街道柳邕装饰建材市场', 109.3842520000, 24.2850920000, '柳州市柳南区柳邕路224-a-22号', 109.3974910000, 24.2784560000, '中国建设银行24小时自助银行(航二路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 15:00:00', '2020-09-05 15:00:00', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2682, 4, 276, 324, 758, 'TAXI000011', NULL, NULL, NULL, 109.3957030000, 24.3350220000, '广西壮族自治区柳州市柳南区南站街道潭中西路3号柳州市疾病预防控制中心', 109.3957030000, 24.3350220000, '柳州市柳南区潭中西路6号', 109.3552340000, 24.3449130000, '河西桃花源', NULL, NULL, 109.4393951951, 24.2957255319, '广西壮族自治区柳州市鱼峰区麒麟街道燎原路得利宾馆(燎原路店)', '2020-09-05 20:08:03', 109.4290748555, 24.3462400781, '广西壮族自治区柳州市城中区潭中街道高新三路', '2020-09-05 20:28:25', 60123.00, 1, NULL, 18.30, 18.30, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-09-05 17:11:38', '2020-09-05 17:11:35', '2020-09-05 17:12:05', '2020-09-05 17:12:05', '2020-09-05 17:12:05', '2020-09-05 20:08:03', '2020-09-05 20:28:25', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2683, 4, 278, 334, 791, 'TAXI000012', NULL, NULL, NULL, 109.4106470000, 24.3210220000, '广西壮族自治区柳州市柳北区解放街道地王公馆步步高广场(广场路)', 109.4106470000, 24.3210220000, '柳州市柳北区八一路19门', 109.4171660000, 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, 109.4130310894, 24.3659617191, '广西壮族自治区柳州市柳北区柳长街道健民路碧丽星城', '2020-09-05 22:41:06', 109.3899961494, 24.3071062689, '广西壮族自治区柳州市柳南区南站街道飞鹅路柳州站东广场', '2020-09-05 22:53:53', 114804.00, 1, NULL, 24.30, 24.30, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-09-05 17:50:56', '2020-09-05 17:50:54', '2020-09-05 17:51:08', '2020-09-05 17:51:08', '2020-09-05 17:51:08', '2020-09-05 22:41:06', '2020-09-05 22:53:53', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2684, 4, 189, NULL, NULL, 'TAXI000013', NULL, NULL, NULL, 104.0555240000, 30.5345320000, '四川省成都市武侯区桂溪街道嘉祥瑞庭南城', 104.0555240000, 30.5345320000, '成都市武侯区益州大道中段1912号', 104.0723840000, 30.5130950000, '城南晶座', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 18:06:09', '2020-09-05 18:06:08', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2685, 4, 279, NULL, NULL, 'TAXI000014', NULL, NULL, NULL, 109.3972970000, 24.3753600000, '广西壮族自治区柳州市柳北区钢城街道广西柳州钢铁集团有限公司办公大楼', 109.3972970000, 24.3753600000, '柳州市柳北区北雀路513号', 109.3965700000, 24.3346580000, '柳州市疾病预防控制中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 18:20:17', '2020-09-05 18:20:16', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2686, 4, 283, NULL, NULL, 'TAXI000015', NULL, NULL, NULL, 109.4795870000, 24.3267760000, '广西壮族自治区柳州市城中区静兰街道柳州莲花山庄酒店', 109.4795870000, 24.3267760000, '柳州市城中区桂柳路80号', 109.4795870000, 24.3267760000, '柳州莲花山庄酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 20:05:44', '2020-09-05 20:05:43', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2687, 4, 283, NULL, NULL, 'TAXI000016', NULL, NULL, NULL, 109.4774630000, 24.3297960000, '广西壮族自治区柳州市城中区静兰街道桂柳路柳州莲花山庄酒店', 109.4795870000, 24.3267760000, '兰家', 109.5584800000, 24.3818240000, '翔云锦苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 20:06:50', '2020-09-05 20:06:49', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2688, 4, 285, NULL, NULL, 'TAXI000017', NULL, NULL, NULL, 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, '柳州市鱼峰区春苑路25号', 109.4115070000, 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 21:12:11', '2020-09-05 21:12:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2689, 4, 285, NULL, NULL, 'TAXI000018', NULL, NULL, NULL, 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, '柳州市鱼峰区春苑路25号', 109.4115070000, 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 21:18:03', '2020-09-05 21:18:02', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2690, 4, 285, NULL, NULL, 'TAXI000019', NULL, NULL, NULL, 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, '柳州市鱼峰区春苑路27号', 109.4115070000, 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 21:21:11', '2020-09-05 21:21:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2691, 4, 288, 456, 499, 'TAXI000020', NULL, NULL, NULL, 109.4680770000, 24.3261100000, '广西壮族自治区柳州市城中区静兰街道桂柳路38号华远·岚山山水1号', 109.4680770000, 24.3261100000, '柳州市城中区桂柳路62号', 109.4265070000, 24.3401580000, '阳光100经典时代', NULL, NULL, 109.4670300668, 24.3266115507, '广西壮族自治区柳州市城中区静兰街道桂柳路华远·岚山山水1号', '2020-09-05 23:25:09', 109.4258932798, 24.3415443028, '广西壮族自治区柳州市城中区潭中街道高新一路阳光100经典时代', '2020-09-05 23:37:09', 13109.00, 2, NULL, 18.40, 18.40, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-05 23:11:15', '2020-09-05 23:11:14', '2020-09-05 23:11:59', '2020-09-05 23:11:59', '2020-09-05 23:11:59', '2020-09-05 23:25:09', '2020-09-05 23:37:09', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2692, 4, 289, NULL, NULL, 'TAXI000021', NULL, NULL, NULL, 109.3372500000, 24.2593000000, '广西壮族自治区柳州市柳江区拉堡镇柳江区人力资源和社会保障局', 109.3372500000, 24.2593000000, '柳州市柳江区瑞龙路125号', 109.3822020000, 24.2518750000, '合景·云溪四季销售中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-05 23:11:32', '2020-09-05 23:11:32', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2693, 4, 291, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.3496580000, 24.2588540000, '广西壮族自治区柳州市柳江区拉堡镇金丽苑北区', 109.3496580000, 24.2588540000, '柳州市柳江区柳堡路600号', 109.3882920000, 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-06 05:27:14', '2020-09-06 05:27:14', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2694, 4, 291, 801, 637, 'TAXI000002', NULL, NULL, NULL, 109.3496800000, 24.2601860000, '广西壮族自治区柳州市柳江区拉堡镇柳江区开发区第一工业园区镂尚家居城', 109.3496800000, 24.2601860000, '柳州市柳江区柳堡路743号', 109.3882920000, 24.3078740000, '柳州火车站', NULL, NULL, 109.3238024421, 24.2547873535, '广西壮族自治区柳州市柳江区拉堡镇马平路', '2020-09-06 05:33:49', NULL, NULL, NULL, NULL, 7691.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-06 05:33:09', '2020-09-06 05:33:09', '2020-09-06 05:33:49', '2020-09-06 05:33:49', '2020-09-06 05:33:49', '2020-09-06 05:33:49', NULL, 3, NULL, NULL, 1, '', '');
+INSERT INTO `t_order_logistics` VALUES (2695, 4, 296, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4357970000, 24.3497950000, '广西壮族自治区柳州市城中区河东街道金色世纪', 109.4357970000, 24.3497950000, '柳州市城中区东环大道145--10号', 109.4442540000, 24.3272380000, '柳州市人民医院第三住院楼', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 07:40:15', '2020-09-07 07:40:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2696, 4, 300, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4253480000, 24.3429810000, '广西壮族自治区柳州市城中区潭中街道海关路西一巷8号高新明珠', 109.4253480000, 24.3429810000, '柳州市城中区海关路西一巷8号', 109.4450600000, 24.3245830000, '柳州市人民医院门诊', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 08:07:26', '2020-09-07 08:07:25', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2697, 4, 302, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4204100000, 24.3012250000, '广西壮族自治区柳州市鱼峰区荣军街道柳州男健医院', 109.4204100000, 24.3012250000, '柳州市鱼峰区荣军路125号', 109.4044330000, 24.3400140000, '柳州银行(柳北支行)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 08:27:56', '2020-09-07 08:27:56', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2698, 4, 302, 215, 705, 'TAXI000004', NULL, NULL, NULL, 109.4204100000, 24.3012250000, '广西壮族自治区柳州市鱼峰区荣军街道柳州男健医院', 109.4204100000, 24.3012250000, '柳州市鱼峰区荣军路125号', 109.4044330000, 24.3400140000, '柳州银行(柳北支行)', NULL, NULL, 109.4208764322, 24.3014596927, '广西壮族自治区柳州市鱼峰区荣军街道荣军路柳州男健医院', '2020-09-07 08:35:56', 109.4045937343, 24.3399693551, '广西壮族自治区柳州市柳北区雅儒街道北雀路福江小苑', '2020-09-07 08:56:21', 6169.00, 2, NULL, 17.10, 17.10, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-07 08:29:14', '2020-09-07 08:29:14', '2020-09-07 08:31:52', '2020-09-07 08:31:52', '2020-09-07 08:31:52', '2020-09-07 08:35:56', '2020-09-07 08:56:21', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2699, 4, 304, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.3400190000, 24.3618570000, '广西壮族自治区柳州市柳南区太阳村镇浩源机动车驾驶员训考服务有限公司', 109.3400190000, 24.3618570000, '柳州市柳南区', 109.3836560000, 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 10:39:06', '2020-09-07 10:39:05', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2700, 4, 304, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.3392920000, 24.3623000000, '广西壮族自治区柳州市柳南区太阳村镇浩源机动车考试场浩源机动车驾驶员训考服务有限公司', 109.3392920000, 24.3623000000, '和平驾校浩源训考中心', 109.3836560000, 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-07 10:39:21', '2020-09-07 10:39:20', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2701, 4, 306, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4106470000, 24.3210220000, '广西壮族自治区柳州市柳北区解放街道地王公馆步步高广场(广场路)', 109.4106470000, 24.3210220000, '柳州市柳北区八一路90号', 109.4124830000, 24.3051190000, '宜尚酒店(柳州江滨公园店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 13:51:47', '2020-09-07 13:51:46', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2702, 4, 308, 928, NULL, 'TAXI000008', NULL, NULL, NULL, 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, '柳州市城中区滨江西路15栋17栋', 109.3881770000, 24.2777290000, '柳州市航鹰中学', NULL, NULL, 109.3916314331, 24.3086402357, '广西壮族自治区柳州市柳南区南站街道鹅山路站前·馨印象', '2020-09-07 14:42:38', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-07 14:42:00', '2020-09-07 14:41:59', '2020-09-07 14:42:38', '2020-09-07 14:42:38', '2020-09-07 14:42:38', '2020-09-07 14:42:38', NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2703, 4, 308, NULL, NULL, 'TAXI000009', NULL, NULL, NULL, 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, '柳州市城中区滨江西路15栋17栋', 109.3881770000, 24.2777290000, '柳州市航鹰中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 14:45:08', '2020-09-07 14:45:07', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2704, 4, 287, NULL, NULL, 'TAXI000010', NULL, NULL, NULL, 109.4316370985, 24.3631637912, '广西壮族自治区柳州市城中区河东街道桂中大道二桥双语艺术幼儿园', 109.4316343859, 24.3631561957, '二桥双语艺术幼儿园', 109.4327850000, 24.3355860000, '龙城·印象KTV', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-07 18:54:45', '2020-09-07 18:54:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2705, 4, 319, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.3922440000, 24.3344890000, '广西壮族自治区柳州市柳南区河西街道磨滩东苑', 109.3922440000, 24.3344890000, '柳州市柳南区磨滩路10号', 109.3882920000, 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-08 07:31:54', '2020-09-08 07:31:54', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2706, 4, 245, 73, 642, 'TAXI000002', NULL, NULL, NULL, 109.3988667466, 24.3617546342, '广西壮族自治区柳州市柳北区胜利街道胜利西路', 109.3988924385, 24.3617353985, '北雀路与胜利西路交叉口', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4018434753, 24.3621796335, '广西壮族自治区柳州市柳北区雀儿山街道胜利东路柳州市柳北区人民政府', '2020-09-08 15:09:52', 109.4291090342, 24.3610361139, '广西壮族自治区柳州市城中区河东街道河东路9号', '2020-09-08 15:15:16', 3020.00, 2, NULL, 9.50, 9.50, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-08 15:08:37', '2020-09-08 15:08:00', '2020-09-08 15:08:43', '2020-09-08 15:08:43', '2020-09-08 15:08:43', '2020-09-08 15:09:52', '2020-09-08 15:15:16', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2707, 4, 324, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, '柳州市柳南区和平路68号', 119.6653420000, 32.1821530000, '英皇酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-08 16:32:01', '2020-09-08 16:32:00', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2708, 4, 329, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4320200000, 24.3265000000, '广西壮族自治区柳州市城中区潭中街道瑞安路乌托邦音乐城', 109.4320200000, 24.3265000000, '阳光100城市广场', 109.4467980000, 24.3046070000, '柳州市鱼峰区欣欣幼儿园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-08 20:20:24', '2020-09-08 20:20:19', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2709, 4, 329, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4304050000, 24.3295440000, '广西壮族自治区柳州市城中区潭中街道兆安现代城(桂中大道)', 109.4304050000, 24.3295440000, '柳州市城中区桂中大道8号', 109.4467980000, 24.3046070000, '柳州市鱼峰区欣欣幼儿园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-08 20:20:51', '2020-09-08 20:20:46', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2710, 4, 330, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4470110000, 24.2777970000, '广西壮族自治区柳州市鱼峰区五里亭街道天翼九龙印象', 109.4470110000, 24.2777970000, '柳州市鱼峰区龙泉路5号', 109.3870000000, 24.3091360000, '柳州站(西进站口)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-09 02:14:14', '2020-09-09 05:35:00', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2711, 4, 245, 179, 645, 'TAXI000002', NULL, NULL, NULL, 109.4054280000, 24.3118060000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054276406, 24.3118072355, '滨江西路17栋', 109.4449990000, 24.3261600000, '柳州市人民医院', NULL, NULL, 109.4107105752, 24.3062122802, '广西壮族自治区柳州市鱼峰区天马街道柳江大桥江滨公园', '2020-09-09 10:08:24', NULL, NULL, NULL, NULL, 269.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-09 10:08:14', '2020-09-09 10:08:00', '2020-09-09 10:08:24', '2020-09-09 10:08:24', '2020-09-09 10:08:24', '2020-09-09 10:08:24', NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2712, 4, 245, 932, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4054050022, 24.3119203016, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4053982205, 24.3119173177, '中山西路幼儿园', 109.3869410000, 24.3093740000, '柳州火车站西广场', NULL, NULL, 109.4054371585, 24.3119025086, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-09 10:12:01', 109.4054761752, 24.3118795180, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-09 10:12:08', 0.00, 1, 3, 0.01, 0.01, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 8, '2020-09-09 10:10:27', '2020-09-09 10:10:00', '2020-09-09 10:11:50', '2020-09-09 10:11:57', '2020-09-09 10:11:59', '2020-09-09 10:12:01', '2020-09-09 10:12:08', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2713, 4, 334, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4134380000, 24.3136600000, '广西壮族自治区柳州市城中区公园街道中环大厦(公园路)', 109.4134380000, 24.3136600000, '柳州市城中区公园路39-1号', 109.3886260000, 24.3233690000, '柳州市家居建材博览中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-09 12:11:45', '2020-09-09 12:11:45', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2714, 4, 338, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4076750000, 24.2990540000, '广西壮族自治区柳州市柳南区柳石街道鱼峰山小学', 109.4076750000, 24.2990540000, '柳州市柳南区文笔路3-3号', 109.4309460000, 24.3690630000, '柳州市卓景电子有限公司', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-09 17:28:12', '2020-09-09 17:28:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2715, 4, 340, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.3957940000, 24.3320400000, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957940000, 24.3320400000, '柳州市柳南区雅儒路218号', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-09 23:38:25', '2020-09-10 08:50:00', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2716, 4, 342, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, '柳州市柳北区北雀路66号', 109.4503600000, 24.3193260000, '万象二路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 08:44:23', '2020-09-10 08:44:22', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2717, 4, 342, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, '柳州市柳北区北雀路66号', 109.4503600000, 24.3193260000, '万象二路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 08:46:55', '2020-09-10 08:46:55', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2718, 4, 342, 140, 649, 'TAXI000003', NULL, NULL, NULL, 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, '柳州市柳北区北雀路66号', 109.4503600000, 24.3193260000, '万象二路', NULL, NULL, 109.4027773451, 24.3615799747, '广西壮族自治区柳州市柳北区胜利街道胜利东路胜利小区1村', '2020-09-10 11:31:22', 109.4145124095, 24.3304708520, '广西壮族自治区柳州市柳北区解放街道三中路柳州美丽焦点医疗美容', '2020-09-10 11:42:40', 62765.00, 1, 1, 12.90, 12.90, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 12.90, 8, '2020-09-10 08:49:52', '2020-09-10 08:49:52', '2020-09-10 08:50:22', '2020-09-10 08:50:22', '2020-09-10 08:50:22', '2020-09-10 11:31:22', '2020-09-10 11:42:40', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2719, 4, 340, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.3957940000, 24.3320400000, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957940000, 24.3320400000, '柳州市柳南区雅儒路218号', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 08:52:45', '2020-09-10 08:52:48', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2720, 4, 334, 754, NULL, 'TAXI000005', NULL, NULL, NULL, 109.3979810000, 24.2991050000, '广西壮族自治区柳州市柳南区柳石街道桂裕小苑', 109.3979810000, 24.2991050000, '柳州市柳南区城站路南七巷25号', 109.4135790000, 24.3138320000, '中环酒店', NULL, NULL, 109.3977200734, 24.2988297081, '广西壮族自治区柳州市柳南区柳石街道城站路南七巷桂裕小苑', '2020-09-10 11:23:40', 109.4130948081, 24.3157255675, '广西壮族自治区柳州市城中区公园街道解放南路振亿大厦', '2020-09-10 11:29:51', 4574.00, 1, 1, 9.50, 9.50, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 9.50, 8, '2020-09-10 11:14:06', '2020-09-10 11:14:05', '2020-09-10 11:14:14', '2020-09-10 11:14:14', '2020-09-10 11:14:14', '2020-09-10 11:23:40', '2020-09-10 11:29:51', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2721, 4, 194, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.4052197266, 24.3119395616, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4051844618, 24.3120570204, '中山西路幼儿园', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 11:33:17', '2020-09-10 11:33:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2722, 4, 194, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4051557075, 24.3118934462, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4051844618, 24.3120570204, '中山西路幼儿园', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 11:34:34', '2020-09-10 11:34:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2723, 4, 344, 906, 944, 'TAXI000008', NULL, NULL, NULL, 104.0557800410, 30.5857627062, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557926973, 30.5856734176, '天府新谷(府城大道西段)11栋', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, 104.0558160000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:13:34', 104.0558110000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:13:36', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 15:07:45', '2020-09-10 15:07:00', '2020-09-10 15:07:50', NULL, NULL, '2020-09-10 15:13:34', '2020-09-10 15:13:36', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2724, 4, 344, 906, 944, 'TAXI000009', NULL, NULL, NULL, 104.0561168543, 30.5856052969, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557926973, 30.5856734176, '天府新谷(府城大道西段)11栋', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, 104.0557800408, 30.5857587047, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:19:15', 104.0557800408, 30.5857587047, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:19:17', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 15:15:14', '2020-09-10 15:15:00', '2020-09-10 15:15:55', '2020-09-10 15:15:55', '2020-09-10 15:15:55', '2020-09-10 15:19:15', '2020-09-10 15:19:17', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2725, 4, 344, NULL, NULL, 'TAXI000010', NULL, NULL, NULL, 104.0557970000, 30.5856730000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0665403087, 30.5722697189, '成都市', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 15:21:01', '2020-09-10 15:20:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2726, 4, 344, NULL, NULL, 'TAXI000011', NULL, NULL, NULL, 104.0557770345, 30.5857797068, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0665403087, 30.5722697189, '成都市', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 15:21:57', '2020-09-10 15:21:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2727, 4, 344, NULL, NULL, 'TAXI000012', NULL, NULL, NULL, 104.0557740265, 30.5857666960, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0692040000, 30.5462030000, '天府三街(地铁站)', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 15:22:20', '2020-09-10 15:22:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2728, 4, 344, NULL, NULL, 'TAXI000013', NULL, NULL, NULL, 104.0557940745, 30.5857467273, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557980618, 30.5856711086, '天府新谷(府城大道西段)11栋', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 15:23:14', '2020-09-10 15:23:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2729, 4, 344, 906, 944, 'TAXI000014', NULL, NULL, NULL, 104.0557800410, 30.5857617058, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557980618, 30.5856711086, '天府新谷(府城大道西段)11栋', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, 104.0558130000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:23:59', 104.0558130000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:24:02', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 15:23:35', '2020-09-10 15:23:00', '2020-09-10 15:23:39', '2020-09-10 15:23:39', '2020-09-10 15:23:39', '2020-09-10 15:23:59', '2020-09-10 15:24:02', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2730, 4, 344, 906, 944, 'TAXI000015', NULL, NULL, NULL, 104.0557870580, 30.5857587183, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557658753, 30.5856780357, '天府新谷(府城大道西段)11栋', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, 104.0562210000, 30.5854930000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', '2020-09-10 15:50:55', 104.0562210000, 30.5854930000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', '2020-09-10 15:50:57', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 15:50:32', '2020-09-10 15:50:00', '2020-09-10 15:50:35', '2020-09-10 15:50:35', '2020-09-10 15:50:35', '2020-09-10 15:50:55', '2020-09-10 15:50:57', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2731, 4, 242, 73, 642, 'TAXI000016', NULL, NULL, NULL, 109.4076370000, 24.3113080000, '广西壮族自治区柳州市城中区中南街道青云路35号文惠小学', 109.4076370000, 24.3113080000, '柳州市城中区滨江西路12号', 109.4507010000, 24.3222850000, '华润万象城', NULL, NULL, 109.4071597431, 24.3095615888, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-10 16:48:51', 109.4191130131, 24.3487970697, '广西壮族自治区柳州市柳北区锦绣街道滨江东路', '2020-09-10 16:59:13', 5769.00, 1, 1, 14.80, 14.80, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 14.80, 8, '2020-09-10 16:48:02', '2020-09-10 16:48:00', '2020-09-10 16:48:07', '2020-09-10 16:48:07', '2020-09-10 16:48:07', '2020-09-10 16:48:51', '2020-09-10 16:59:13', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2732, 4, 242, NULL, NULL, 'TAXI000017', NULL, NULL, NULL, 109.4192070000, 24.3520930000, '广西壮族自治区柳州市柳北区锦绣街道精诚小汽车出租有限责任公司工会委员会', 109.4192070000, 24.3520930000, '柳州市柳北区滨江东路171号', 109.4507010000, 24.3222850000, '华润万象城', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 17:01:18', '2020-09-10 17:01:16', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2733, 4, 242, 73, 642, 'TAXI000018', NULL, NULL, NULL, 109.4196770000, 24.3560340000, '广西壮族自治区柳州市柳北区锦绣街道柳州市防洪排涝工程管理处', 109.4196770000, 24.3560340000, '柳州市柳北区长风路1号之2', 109.4507010000, 24.3222850000, '华润万象城', NULL, NULL, 109.4199132315, 24.3557614265, '广西壮族自治区柳州市柳北区锦绣街道滨江东路柳州市防洪排涝工程管理处', '2020-09-10 17:04:40', 109.4052924016, 24.3115109494, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-10 17:18:49', 6590.00, 1, NULL, 16.70, 16.70, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-09-10 17:04:27', '2020-09-10 17:04:25', '2020-09-10 17:04:32', '2020-09-10 17:04:32', '2020-09-10 17:04:32', '2020-09-10 17:04:40', '2020-09-10 17:18:49', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2734, 4, 345, NULL, NULL, 'TAXI000019', NULL, NULL, NULL, 109.3728640000, 24.3253590000, '广西壮族自治区柳州市柳南区河西街道五菱大厦(河西路)', 109.3728640000, 24.3253590000, '柳州市柳南区河西路42号', 109.3836560000, 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 17:14:18', '2020-09-10 17:14:16', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2735, 4, 345, NULL, NULL, 'TAXI000020', NULL, NULL, NULL, 109.3728640000, 24.3253590000, '广西壮族自治区柳州市柳南区河西街道五菱大厦(河西路)', 109.3728640000, 24.3253590000, '柳州市柳南区河西路42号', 109.3836560000, 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 17:15:35', '2020-09-10 17:15:33', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2736, 4, 344, 906, 944, 'TAXI000021', NULL, NULL, NULL, 104.0557770343, 30.5857767057, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557082078, 30.5857022805, '天府新谷(府城大道西段)11栋', 104.0692040000, 30.5462030000, '天府三街(地铁站)', NULL, NULL, 104.0557690143, 30.5857676867, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:29:35', 104.0557690143, 30.5857676867, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:29:37', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 18:28:57', '2020-09-10 18:28:00', '2020-09-10 18:29:00', '2020-09-10 18:29:00', '2020-09-10 18:29:00', '2020-09-10 18:29:35', '2020-09-10 18:29:37', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2737, 4, 344, 906, 944, 'TAXI000022', NULL, NULL, NULL, 104.0557980848, 30.5857567389, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557082078, 30.5857022805, '天府新谷(府城大道西段)11栋', 104.0658610000, 30.6574010000, '天府广场', NULL, NULL, 104.0557770343, 30.5857757053, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:36:27', 104.0557770343, 30.5857757053, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:36:29', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 18:30:45', '2020-09-10 18:30:00', '2020-09-10 18:30:48', '2020-09-10 18:30:48', '2020-09-10 18:30:48', '2020-09-10 18:36:27', '2020-09-10 18:36:29', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2738, 4, 342, 8, 670, 'TAXI000023', NULL, NULL, NULL, 109.4053990000, 24.3644140000, '广西壮族自治区柳州市柳北区雀儿山街道北雀广场雀儿山公园', 109.4034110000, 24.3617750000, '雀儿山公园', 109.4503600000, 24.3193260000, '万象二路', NULL, NULL, 109.3815505353, 24.2919370148, '广西壮族自治区柳州市柳南区柳石街道柳邕路二巷华柳佳苑', '2020-09-10 22:00:39', 109.3590058246, 24.2595170864, '广西壮族自治区柳州市柳江区拉堡镇柳邕路', '2020-09-10 22:13:23', 77863.00, 2, NULL, 12.60, 12.60, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-10 18:58:36', '2020-09-10 18:58:35', '2020-09-10 18:58:50', '2020-09-10 18:58:50', '2020-09-10 18:58:50', '2020-09-10 22:00:39', '2020-09-10 22:13:23', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2739, 4, 347, NULL, NULL, 'TAXI000024', NULL, NULL, NULL, 109.3716920000, 24.3064190000, '广西壮族自治区柳州市柳南区南环街道龙屯宝贝幼儿园', 109.3716920000, 24.3064190000, '柳州市柳南区龙屯路142号', 109.4456640000, 24.3159620000, '恒大御府2期(建设中)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-10 20:14:12', '2020-09-10 20:14:11', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2740, 4, 347, NULL, NULL, 'TAXI000025', NULL, NULL, NULL, 109.3714990000, 24.3062230000, '广西壮族自治区柳州市柳南区南环街道龙屯路104号龙屯宝贝幼儿园', 109.3714990000, 24.3062230000, '龙屯宝贝幼儿园', 109.4456640000, 24.3159620000, '恒大御府2期(建设中)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-10 20:15:25', '2020-09-10 20:15:24', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2741, 4, 242, 73, 642, 'TAXI000001', NULL, NULL, NULL, 109.4048600000, 24.3138590000, '广西壮族自治区柳州市城中区中南街道中南派出所', 109.4048600000, 24.3138590000, '柳州市城中区滨江西路20号', 109.4507010000, 24.3222850000, '华润万象城', NULL, NULL, 109.4037751215, 24.3141100179, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-11 09:36:57', 109.3973900058, 24.3591790180, '广西壮族自治区柳州市柳北区胜利街道北雀路67号柳化职工住宅楼', '2020-09-11 09:48:30', 5778.00, 1, 1, 15.20, 15.20, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 15.20, 8, '2020-09-11 09:36:39', '2020-09-11 09:36:37', '2020-09-11 09:36:46', '2020-09-11 09:36:46', '2020-09-11 09:36:46', '2020-09-11 09:36:57', '2020-09-11 09:48:30', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2742, 4, 242, 73, 642, 'TAXI000002', NULL, NULL, NULL, 109.3971100000, 24.3591970000, '广西壮族自治区柳州市柳北区胜利街道北雀路67号柳化职工住宅楼', 109.3971100000, 24.3591970000, '柳化职工住宅楼', 109.4052380000, 24.3118790000, 'OK充电站', NULL, NULL, 109.3978237163, 24.3594457875, '广西壮族自治区柳州市柳北区胜利街道北雀路67号28栋柳化职工住宅楼', '2020-09-11 09:53:41', 109.4055758863, 24.3118608628, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-11 10:06:13', 6001.00, 2, NULL, 15.20, 15.20, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-11 09:53:19', '2020-09-11 09:53:17', '2020-09-11 09:53:24', '2020-09-11 09:53:24', '2020-09-11 09:53:24', '2020-09-11 09:53:41', '2020-09-11 10:06:13', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2743, 4, 357, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4373960000, 24.2611170000, '广西壮族自治区柳州市鱼峰区白莲街道白莲街道办事处', 109.4373960000, 24.2611170000, '柳州市鱼峰区柳石路418号', 109.6307870000, 23.4596100000, '武宣县桐岭镇人民政府', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 13:20:05', '2020-09-11 13:20:03', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2744, 4, 334, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4415000000, 24.3236320000, '广西壮族自治区柳州市城中区潭中街道居上·V8城', 109.4415000000, 24.3236320000, '柳州市城中区文昌路83号', 109.4135790000, 24.3138320000, '中环酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 13:44:51', '2020-09-11 13:44:50', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2745, 4, 334, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4415820000, 24.3232480000, '广西壮族自治区柳州市城中区潭中街道文昌路居上·V8城', 109.4418590000, 24.3235560000, '居上·V8城A座写字楼', 109.4135790000, 24.3138320000, '中环酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 13:48:04', '2020-09-11 13:48:04', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2746, 4, 358, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, '柳州市鱼峰区初阳路8号', 109.5992030000, 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 16:39:36', '2020-09-11 16:39:36', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2747, 4, 358, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, '柳州市鱼峰区初阳路8号', 109.5992030000, 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 16:41:56', '2020-09-11 16:41:55', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2748, 4, 358, NULL, NULL, 'TAXI000008', NULL, NULL, NULL, 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, '柳州市鱼峰区初阳路8号', 109.5992030000, 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 16:46:11', '2020-09-11 16:46:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2749, 4, 358, NULL, NULL, 'TAXI000009', NULL, NULL, NULL, 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, '柳州市鱼峰区初阳路8号', 109.5992030000, 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 16:47:07', '2020-09-11 16:47:06', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2750, 4, 324, NULL, NULL, 'TAXI000010', NULL, NULL, NULL, 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, '柳州市柳南区和平路68号', 109.5914590000, 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 17:53:10', '2020-09-11 17:53:08', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2751, 4, 324, NULL, NULL, 'TAXI000011', NULL, NULL, NULL, 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, '柳州市柳南区和平路108号', 109.5914590000, 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 17:53:41', '2020-09-11 17:53:40', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2752, 4, 324, NULL, NULL, 'TAXI000012', NULL, NULL, NULL, 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, '柳州市柳南区和平路108号', 109.5914590000, 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 17:54:47', '2020-09-11 17:54:46', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2753, 4, 362, NULL, NULL, 'TAXI000013', NULL, NULL, NULL, 109.4065090000, 24.3232410000, '广西壮族自治区柳州市柳北区雅儒街道柳州市自动化科学研究所柳州食品药品检验所', 109.4065090000, 24.3232410000, '柳州市柳北区广雅路北三巷6号', 109.3799890000, 24.3363010000, '金都汇', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 17:54:56', '2020-09-11 17:54:54', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2754, 4, 269, NULL, NULL, 'TAXI000014', NULL, NULL, NULL, 109.4005810000, 24.3033410000, '广西壮族自治区柳州市柳南区柳南街道飞鹅路55--6号飞鹅商城', 109.4005810000, 24.3033410000, '飞鹅商城', 109.3778260000, 24.3191490000, '福柳宏都', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 18:03:19', '2020-09-11 18:03:18', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2755, 4, 372, NULL, NULL, 'TAXI000015', NULL, NULL, NULL, 109.4158920000, 24.3383680000, '广西壮族自治区柳州市柳北区跃进街道保利大江郡(凯旋大道)保利广场', 109.4158920000, 24.3383680000, '柳州市柳北区凯旋大道13号', 109.4126210000, 24.3104190000, '地王大厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 18:22:45', '2020-09-11 18:22:44', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2756, 4, 371, NULL, NULL, 'TAXI000016', NULL, NULL, NULL, 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, '柳州市柳北区广场路8号', 109.4024430000, 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 18:23:11', '2020-09-11 18:23:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2757, 4, 371, NULL, NULL, 'TAXI000017', NULL, NULL, NULL, 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, '柳州市城中区广场路8号', 109.4024430000, 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 18:27:07', '2020-09-11 18:27:06', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2758, 4, 371, NULL, NULL, 'TAXI000018', NULL, NULL, NULL, 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, '柳州市城中区广场路8号', 109.4024430000, 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 18:27:33', '2020-09-11 18:27:32', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2759, 4, 380, NULL, NULL, 'TAXI000019', NULL, NULL, NULL, 109.4126310000, 24.3189260000, '广西壮族自治区柳州市城中区城中街道解放北路37号柳州博物馆', 109.4126310000, 24.3189260000, '柳州市城中区解放北路29号', 109.3970800000, 24.3519600000, '望泰·北城华府(西门)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 18:44:51', '2020-09-11 18:44:51', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2760, 4, 380, NULL, NULL, 'TAXI000020', NULL, NULL, NULL, 109.4138600000, 24.3184870000, '广西壮族自治区柳州市城中区公园街道柳州市中医医院', 109.4138600000, 24.3184870000, '柳州市城中区解放北路25号', 109.3970800000, 24.3519600000, '望泰·北城华府(西门)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-11 18:56:14', '2020-09-11 18:56:14', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2761, 4, 381, NULL, NULL, 'TAXI000021', NULL, NULL, NULL, 109.4070820000, 24.3124270000, '广西壮族自治区柳州市城中区中南街道永隆大厦', 109.4070820000, 24.3124270000, '柳州市城中区中山西路99号', 109.3967540000, 24.2699400000, '柳州市航星敬老中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 19:04:34', '2020-09-11 19:04:33', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2762, 4, 384, NULL, NULL, 'TAXI000022', NULL, NULL, NULL, 109.4025870000, 24.3048510000, '广西壮族自治区柳州市柳南区柳南街道华丰商厦', 109.4025870000, 24.3048510000, '柳州市柳南区飞鹅路186号', 109.3644740000, 24.3398920000, '柳南区十一冶二区社区第二卫生服务站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 19:27:03', '2020-09-11 19:27:02', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2763, 4, 384, NULL, NULL, 'TAXI000023', NULL, NULL, NULL, 109.4025870000, 24.3048510000, '广西壮族自治区柳州市柳南区柳南街道华丰商厦', 109.4025870000, 24.3048510000, '柳州市柳南区飞鹅路186号1栋', 109.3644740000, 24.3398920000, '柳南区十一冶二区社区第二卫生服务站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 19:27:48', '2020-09-11 19:27:47', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2764, 4, 387, NULL, NULL, 'TAXI000024', NULL, NULL, NULL, 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, '柳州市柳南区城站路381号', 109.3931230000, 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 20:16:45', '2020-09-11 20:16:44', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2765, 4, 387, NULL, NULL, 'TAXI000025', NULL, NULL, NULL, 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, '柳州市柳南区城站路146号', 109.3931230000, 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 20:19:40', '2020-09-11 20:19:39', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2766, 4, 387, NULL, NULL, 'TAXI000026', NULL, NULL, NULL, 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, '柳州市柳南区城站路142号', 109.3931230000, 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 20:23:02', '2020-09-11 20:23:00', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2767, 4, 387, NULL, NULL, 'TAXI000027', NULL, NULL, NULL, 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, '柳州市柳南区城站路144号', 109.3931230000, 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 20:31:35', '2020-09-11 20:31:33', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2768, 4, 390, NULL, NULL, 'TAXI000028', NULL, NULL, NULL, 109.3901383464, 24.3058897569, '广西壮族自治区柳州市柳南区南站街道南站路17号柳州站东广场', 109.3901128472, 24.3059187826, '柳州站东广场', 109.4094610000, 24.3217410000, '广西壮族自治区柳州市柳北区地王公馆3栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 20:54:16', '2020-09-11 20:54:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2769, 4, 391, NULL, NULL, 'TAXI000029', NULL, NULL, NULL, 109.4134982639, 24.3050442166, '广西壮族自治区柳州市鱼峰区驾鹤街道驾鹤路连华大厦', 109.4135772027, 24.3051516385, '豪都大酒店', 109.4122620000, 24.3138240000, '乐巢(柳州店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-11 21:05:53', '2020-09-11 21:05:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2770, 4, 392, NULL, NULL, 'TAXI000030', NULL, NULL, NULL, 109.4393250000, 24.3067300000, '广西壮族自治区柳州市鱼峰区箭盘山街道金盛广场', 109.4393250000, 24.3067300000, '柳州市鱼峰区东环大道17号', 109.4767320000, 24.3012200000, '盛天龙湾', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 21:08:19', '2020-09-11 21:08:19', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2771, 4, 393, NULL, NULL, 'TAXI000031', NULL, NULL, NULL, 109.4393250000, 24.3067300000, '广西壮族自治区柳州市鱼峰区箭盘山街道金盛广场', 109.4393250000, 24.3067300000, '柳州市鱼峰区东环大道17号', 109.4764400000, 24.3032950000, '盛天龙湾2栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 21:09:12', '2020-09-11 21:09:11', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2772, 4, 394, NULL, NULL, 'TAXI000032', NULL, NULL, NULL, 109.3803250000, 24.2886400000, '广西壮族自治区柳州市柳南区柳石街道宏祥园', 109.3803250000, 24.2886400000, '柳州市柳南区永前路9号', 109.4133850000, 24.3120080000, '歌友会量贩氧吧KTV(五星店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 21:17:10', '2020-09-11 21:17:10', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2773, 4, 394, NULL, NULL, 'TAXI000033', NULL, NULL, NULL, 109.3829940000, 24.2905270000, '广西壮族自治区柳州市柳南区柳石街道华柳佳苑', 109.3829940000, 24.2905270000, '柳州市柳南区柳邕路二巷8号', 109.4133850000, 24.3120080000, '歌友会量贩氧吧KTV(五星店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 21:27:41', '2020-09-11 21:27:40', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2774, 4, 372, NULL, NULL, 'TAXI000034', NULL, NULL, NULL, 109.4135970000, 24.3121700000, '广西壮族自治区柳州市城中区公园街道中山东路金长城大厦', 109.4135970000, 24.3121700000, '如家酒店(五星步行街店)', 109.4160640000, 24.3404960000, '自由舰停车场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 22:11:19', '2020-09-11 22:11:18', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2775, 4, 402, NULL, NULL, 'TAXI000035', NULL, NULL, NULL, 109.4076120000, 24.3027100000, '广西壮族自治区柳州市柳南区新谷大厦', 109.4076120000, 24.3027100000, '柳州市鱼峰区飞鹅路5号', 109.4115990000, 24.3388850000, '中鼎北园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 22:25:57', '2020-09-11 22:25:56', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2776, 4, 372, NULL, NULL, 'TAXI000036', NULL, NULL, NULL, 109.4116090000, 24.3121170000, '广西壮族自治区柳州市城中区城中街道柳州商场', 109.4116090000, 24.3121170000, '柳州市城中区龙城路13--4号', 109.4158920000, 24.3383680000, '保利大江郡(凯旋大道)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 22:28:18', '2020-09-11 22:28:17', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2777, 4, 372, NULL, NULL, 'TAXI000037', NULL, NULL, NULL, 109.4116090000, 24.3121170000, '广西壮族自治区柳州市城中区城中街道柳州商场', 109.4116090000, 24.3121170000, '柳州市城中区龙城路12-2号', 109.4158920000, 24.3383680000, '保利大江郡(凯旋大道)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 22:30:08', '2020-09-11 22:30:08', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2778, 4, 403, NULL, NULL, 'TAXI000038', NULL, NULL, NULL, 109.3954212782, 24.3099688043, '广西壮族自治区柳州市柳南区南站街道鹅岗路鹅岗二区', 109.3953130425, 24.3099148220, '鹅岗二区', 109.4285430000, 24.3189640000, '蓝熊酒酷线下旗舰店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 22:30:11', '2020-09-11 22:30:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2779, 4, 403, NULL, NULL, 'TAXI000039', NULL, NULL, NULL, 109.3953700087, 24.3098977322, '广西壮族自治区柳州市柳南区南站街道鹅岗路鹅岗二区', 109.3953130425, 24.3099148220, '鹅岗二区', 109.4285430000, 24.3189640000, '蓝熊酒酷线下旗舰店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 5.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-11 22:31:31', '2020-09-11 22:31:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2780, 4, 288, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4172550000, 24.3215110000, '广西壮族自治区柳州市柳北区解放街道友谊路柳州饭店', 109.4172550000, 24.3215110000, '奥斯汀KTV(柳州饭店店)', 109.4680250000, 24.3257970000, '华远岚山', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 02:01:42', '2020-09-12 02:01:42', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2781, 4, 404, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4117070000, 24.3555720000, '广西壮族自治区柳州市柳北区跃进街道汇金国际(跃进路)', 109.4117070000, 24.3555720000, '柳州市柳北区跃进路160-1号', 109.4020280000, 24.3462770000, '远道·香颂e公馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 03:26:37', '2020-09-12 03:26:36', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2782, 4, 407, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4095400000, 24.3117500000, '广西壮族自治区柳州市城中区中南街道金秋大厦(中山中路)', 109.4095400000, 24.3117500000, '柳州市城中区映山街2-1-1号', 109.4097720000, 24.3144390000, '映山街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-12 03:45:23', '2020-09-12 03:45:21', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2783, 4, 409, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4132260000, 24.2924220000, '广西壮族自治区柳州市鱼峰区天马街道金百利·摩栖酒店', 109.4132260000, 24.2924220000, '柳州市鱼峰区柳石路338-2号', 109.4078950000, 24.3211470000, '广雅·传奇篮球馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 08:01:54', '2020-09-12 08:01:53', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2784, 4, 409, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4132260000, 24.2924220000, '广西壮族自治区柳州市鱼峰区天马街道金百利·摩栖酒店', 109.4132260000, 24.2924220000, '柳州市鱼峰区柳石路338-2号', 109.4078950000, 24.3211470000, '广雅·传奇篮球馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 08:03:00', '2020-09-12 08:02:59', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2785, 4, 245, 333, 791, 'TAXI000006', NULL, NULL, NULL, 109.4409016927, 24.2710630968, '广西壮族自治区柳州市鱼峰区白莲街道未来星幼儿园(锦航中国城东北)宝莲新都', 109.4407698568, 24.2713704427, '宝莲新都', 109.4055160000, 24.3115510000, '滨江西路15栋', NULL, NULL, 109.4384781293, 24.2702183277, '广西壮族自治区柳州市鱼峰区白莲街道柳石路宝莲新都', '2020-09-12 08:24:19', 109.4052923987, 24.3114609643, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-12 08:44:03', 7926.00, 2, NULL, 18.30, 18.30, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 9, '2020-09-12 08:19:36', '2020-09-12 08:19:00', '2020-09-12 08:20:25', '2020-09-12 08:20:25', '2020-09-12 08:20:25', '2020-09-12 08:24:19', '2020-09-12 08:44:03', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2786, 4, 393, NULL, NULL, 'TAXI000007', NULL, NULL, NULL, 109.4767320000, 24.3012200000, '广西壮族自治区柳州市鱼峰区阳和街道盛天龙湾', 109.4767320000, 24.3012200000, '柳州市鱼峰区阳和大道北3号', 109.4376500000, 24.3049300000, '华达苑3栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 08:23:48', '2020-09-12 08:23:47', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2787, 4, 410, 309, 783, 'TAXI000008', NULL, NULL, NULL, 109.4437100000, 24.2779850000, '广西壮族自治区柳州市鱼峰区五里亭街道鸿泰名庭', 109.4437100000, 24.2779850000, '柳州市鱼峰区龙泉路2号8栋', 109.4097010000, 24.3154930000, '柳州市妇幼保健院', NULL, NULL, 109.4436382309, 24.2724431144, '广西壮族自治区柳州市鱼峰区白莲街道鸡喇路柳机生活区', '2020-09-12 09:52:26', 109.4060752145, 24.2966655146, '广西壮族自治区柳州市柳南区柳石街道红阳路柳州市第十八中学', '2020-09-12 10:06:09', 5912.00, 1, NULL, 14.80, 14.80, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-12 09:48:21', '2020-09-12 09:48:21', '2020-09-12 09:51:02', '2020-09-12 09:51:02', '2020-09-12 09:51:02', '2020-09-12 09:52:26', '2020-09-12 10:06:09', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2788, 4, 308, 771, 680, 'TAXI000009', NULL, NULL, NULL, 109.4294560000, 24.3204070000, '广西壮族自治区柳州市鱼峰区箭盘山街道柳州工业博物馆', 109.4294560000, 24.3204070000, '柳州市鱼峰区蟠龙路198号', 109.4052380000, 24.3118790000, 'OK充电站', NULL, NULL, 109.4276079412, 24.3250141065, '广西壮族自治区柳州市城中区潭中街道清和路柳州市人民政府', '2020-09-12 11:58:20', NULL, NULL, NULL, NULL, 360.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 10, '2020-09-12 11:57:33', '2020-09-12 11:57:32', '2020-09-12 11:58:20', '2020-09-12 11:58:20', '2020-09-12 11:58:20', '2020-09-12 11:58:20', NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2789, 4, 308, NULL, NULL, 'TAXI000010', NULL, NULL, NULL, 109.4294560000, 24.3204070000, '广西壮族自治区柳州市鱼峰区箭盘山街道柳州工业博物馆', 109.4294560000, 24.3204070000, '柳州市鱼峰区蟠龙路218号', 109.4052380000, 24.3118790000, 'OK充电站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 12:09:52', '2020-09-12 12:09:52', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2790, 4, 269, NULL, NULL, 'TAXI000011', NULL, NULL, NULL, 109.3778260000, 24.3191490000, '广西壮族自治区柳州市柳南区河西街道福柳宏都', 109.3778260000, 24.3191490000, '柳州市柳南区西环路6号3栋', 109.4129390000, 24.3169360000, '新大地商厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 15:26:04', '2020-09-12 15:26:03', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2791, 4, 269, NULL, NULL, 'TAXI000012', NULL, NULL, NULL, 109.3785900000, 24.3177510000, '广西壮族自治区柳州市柳南区河西街道吉祥苑(宏都路)', 109.3785900000, 24.3177510000, '柳州市柳南区龙屯路186号', 109.4129390000, 24.3169360000, '新大地商厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-12 15:31:40', '2020-09-12 15:31:40', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2792, 4, 413, 324, 758, 'TAXI000013', NULL, NULL, NULL, 109.4132620000, 24.3311290000, '广西壮族自治区柳州市柳北区解放街道新天地商住楼', 109.4132620000, 24.3311290000, '柳州市柳北区三中路148号', 109.3488000000, 24.3147160000, '柳州市工人医院总院', NULL, NULL, 109.4134624492, 24.3318374617, '广西壮族自治区柳州市柳北区解放街道三中路安利园', '2020-09-12 18:13:16', 109.3477995262, 24.3145302187, '广西壮族自治区柳州市柳南区太阳村镇柳州市工人医院总院', '2020-09-12 18:37:48', 11459.00, 1, NULL, 29.80, 29.80, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 7, '2020-09-12 18:01:59', '2020-09-12 18:01:58', '2020-09-12 18:02:41', '2020-09-12 18:02:41', '2020-09-12 18:02:41', '2020-09-12 18:13:16', '2020-09-12 18:37:48', 3, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2793, 4, 245, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4408270942, 24.2718188477, '广西壮族自治区柳州市鱼峰区白莲街道菲菲音乐学苑宝莲新都', 109.4408957248, 24.2718964301, '宝莲新都', 109.4366870000, 24.2915480000, '白云小区(蝴蝶山路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-13 05:01:23', '2020-09-13 05:01:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2794, 4, 416, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4429719300, 24.2577253748, '广西壮族自治区柳州市鱼峰区白莲街道鱼峰区金龙珠幼儿园龙珠小区', 109.4428200000, 24.2577920000, '飞速糖烟店', 109.4065500000, 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-13 12:01:07', '2020-09-13 12:01:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2795, 4, 416, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4429979743, 24.2577659638, '广西壮族自治区柳州市鱼峰区白莲街道鱼峰区金龙珠幼儿园龙珠小区', 109.4428200000, 24.2577920000, '飞速糖烟店', 109.4065500000, 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-13 12:03:11', '2020-09-13 12:03:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2796, 4, 416, NULL, NULL, 'TAXI000004', NULL, NULL, NULL, 109.4411891930, 24.2580511267, '广西壮族自治区柳州市鱼峰区白莲街道柳石路龙珠小区', 109.4413650000, 24.2582620000, '龙珠小区(西2门)', 109.4065500000, 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-13 12:15:02', '2020-09-13 12:15:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2797, 4, 245, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.4387027995, 24.2708558485, '广西壮族自治区柳州市鱼峰区白莲街道中国信合(宝莲分社)宝莲新都', 109.4386786567, 24.2708222114, '宝莲新都', 109.4102120000, 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-13 17:28:39', '2020-09-13 17:28:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2798, 4, 194, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4051597765, 24.3121975369, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4052460395, 24.3119607205, '中山西路幼儿园', 109.4268420000, 24.3260800000, '市民广场(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-14 14:54:39', '2020-09-14 14:54:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2799, 4, 194, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4052490234, 24.3121975369, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4052460395, 24.3119607205, '中山西路幼儿园', 109.4268420000, 24.3260800000, '市民广场(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-14 14:55:58', '2020-09-14 14:55:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2800, 4, 420, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, '亨氏豪庭', 109.3051590000, 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-15 16:05:00', '2020-09-15 16:04:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2801, 4, 420, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, '亨氏豪庭', 109.3051590000, 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-15 16:06:28', '2020-09-15 16:06:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2802, 4, 420, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, '亨氏豪庭', 109.3051590000, 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-15 16:07:40', '2020-09-15 16:07:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2803, 4, 421, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4479649523, 24.3401052517, '广西壮族自治区柳州市城中区河东街道学院路36号15栋聚福苑(学院路)', 109.4481111654, 24.3399522569, '聚福苑(学院路)', 109.4177160000, 24.3217760000, '柳州饭店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-16 10:53:27', '2020-09-16 10:53:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2804, 4, 422, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4558924696, 24.3226405165, '广西壮族自治区柳州市城中区静兰街道桂柳路30号碧园大城小院', 109.4558995226, 24.3226453993, '碧园大城小院', 109.4479980000, 24.3064830000, '中国联通宏悦专营店(西江路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-16 10:54:51', '2020-09-16 11:05:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2805, 4, 422, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4557069227, 24.3217173937, '广西壮族自治区柳州市城中区静兰街道桂柳路30号碧园大城小院', 109.4556909180, 24.3217331272, '碧园大城小院', 109.4479980000, 24.3064830000, '中国联通宏悦专营店(西江路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-16 11:11:20', '2020-09-16 11:11:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2806, 4, 242, 73, 642, 'TAXI000004', NULL, NULL, NULL, 109.4050550441, 24.3121627433, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4049703240, 24.3120956680, '滨江西路20栋', 109.4418850000, 24.3296320000, '万达广场(柳州城中店)', NULL, NULL, 109.4032414707, 24.3137433815, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-16 15:39:22', 109.4053090986, 24.3118941693, '广西壮族自治区柳州市城中区中南街道滨江西路16号', '2020-09-16 15:50:19', 2278.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 8, '2020-09-16 15:38:28', '2020-09-16 15:38:00', '2020-09-16 15:38:32', '2020-09-16 15:38:32', '2020-09-16 15:38:32', '2020-09-16 15:39:22', '2020-09-16 15:50:19', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2807, 4, 423, NULL, NULL, 'TAXI000005', NULL, NULL, NULL, 109.3905132378, 24.3064941406, '广西壮族自治区柳州市柳南区南站街道飞鹅路161-1号柳州站东广场', 109.3902067057, 24.3062934028, '柳州站东广场', 109.4080230000, 24.3039410000, '谷埠街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-16 21:10:00', '2020-09-16 21:10:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2808, 4, 423, NULL, NULL, 'TAXI000006', NULL, NULL, NULL, 109.3905894640, 24.3066932509, '广西壮族自治区柳州市柳南区南站街道飞鹅路161-1号柳州站东广场', 109.3902067057, 24.3062934028, '柳州站东广场', 109.4080230000, 24.3039410000, '谷埠街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-16 21:10:58', '2020-09-16 21:10:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2809, 4, 423, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4076464844, 24.3021706814, '广西壮族自治区柳州市鱼峰区天马街道华喜口腔(谷埠街店)新谷大厦', 109.4075073242, 24.3022498915, '新谷大厦', 109.4126430000, 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-17 09:25:20', '2020-09-17 09:25:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2810, 4, 423, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4073855252, 24.3023163520, '广西壮族自治区柳州市鱼峰区天马街道谷埠路新谷大厦', 109.4075073242, 24.3022498915, '新谷大厦', 109.4126430000, 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-17 09:26:00', '2020-09-17 09:26:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2811, 4, 423, NULL, NULL, 'TAXI000003', NULL, NULL, NULL, 109.4073109266, 24.3012372504, '广西壮族自治区柳州市柳南区柳南街道谷埠路39-2号柳州市谷埠路幼儿园', 109.4073109266, 24.3012372504, '柳州市谷埠路幼儿园', 109.4126430000, 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-17 09:31:06', '2020-09-17 09:31:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2812, 4, 424, 63, 785, 'TAXI000004', NULL, NULL, NULL, 109.4338365343, 24.3471999783, '广西壮族自治区柳州市城中区潭中街道积木宝贝科学早教中房世纪广场', 109.4337765842, 24.3472911241, '中房世纪广场', 109.4125290000, 24.3127910000, '五星商业步行街', NULL, NULL, 109.4337876484, 24.3472846128, '广西壮族自治区柳州市城中区潭中街道积木宝贝科学早教中房世纪广场', '2020-09-17 22:20:32', 109.4139113155, 24.3121430596, '广西壮族自治区柳州市城中区城中街道中山东路63号金长城大厦', '2020-09-17 22:35:24', 7680.00, 1, 2, 16.70, 16.70, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 16.70, 8, '2020-09-17 22:15:16', '2020-09-17 22:15:00', '2020-09-17 22:16:21', '2020-09-17 22:16:21', '2020-09-17 22:16:21', '2020-09-17 22:20:32', '2020-09-17 22:35:24', 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2813, 4, 245, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4406914605, 24.2715939670, '广西壮族自治区柳州市鱼峰区白莲街道菲菲音乐学苑宝莲新都', 109.4407042101, 24.2715945095, '宝莲新都', 109.3882920000, 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-18 11:49:02', '2020-09-18 11:49:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2814, 4, 430, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 109.4179342990, 24.3009195964, '广西壮族自治区柳州市鱼峰区天马街道乐群路马鞍山公园', 109.4179313151, 24.3009092882, '马鞍山公园', 109.4101960000, 24.2914990000, '宝宝乐幼儿园(柳石路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-19 12:43:10', '2020-09-19 12:43:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2815, 4, 430, NULL, NULL, 'TAXI000002', NULL, NULL, NULL, 109.4179511176, 24.3009106445, '广西壮族自治区柳州市鱼峰区天马街道乐群路马鞍山公园', 109.4179532878, 24.3009079319, '马鞍山公园', 109.4101960000, 24.2914990000, '宝宝乐幼儿园(柳石路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, '2020-09-19 12:44:17', '2020-09-19 12:44:00', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, 1, NULL, NULL);
+INSERT INTO `t_order_logistics` VALUES (2816, 4, 191, NULL, NULL, 'TAXI000001', NULL, NULL, NULL, 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, '成都市武侯区武侯祠大街69号', 103.9512290000, 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '2020-09-21 11:43:56', '2020-09-21 11:43:42', NULL, NULL, NULL, NULL, NULL, 3, NULL, NULL, 1, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_order_logistics_spread
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_logistics_spread`;
+CREATE TABLE `t_order_logistics_spread`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `orderLogisticsId` int(11) NULL DEFAULT NULL COMMENT '小件物流订单id',
+  `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '需要支付的差价金额',
+  `payType` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝,3=其他)',
+  `payTime` datetime(0) NULL DEFAULT NULL COMMENT '支付时间',
+  `payMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '小件物流差价表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_order_logistics_spread
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_order_position
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_position`;
+CREATE TABLE `t_order_position`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `orderType` int(1) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `lon` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '经度',
+  `lat` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '纬度',
+  `directionAngle` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '方向角',
+  `altitude` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '海拔',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 18821 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '订单坐标信息表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_order_position
+-- ----------------------------
+INSERT INTO `t_order_position` VALUES (9829, 2, 2584, 904, '109.405436', '24.311812', '0.0', '0.0', '2020-08-17 19:04:50');
+INSERT INTO `t_order_position` VALUES (9830, 2, 2585, 905, '104.05578504826788', '30.585658676324858', '0.0', '0.0', '2020-08-17 19:15:12');
+INSERT INTO `t_order_position` VALUES (9831, 2, 2586, 905, '104.0557790337585', '30.58566266618695', '0.0', '0.0', '2020-08-17 19:20:39');
+INSERT INTO `t_order_position` VALUES (9832, 2, 2587, 903, '109.40527121526827', '24.31148477769416', '179.30999755859375', '65.0', '2020-08-17 20:16:06');
+INSERT INTO `t_order_position` VALUES (9833, 2, 2588, 403, '109.40530907510184', '24.311494288846067', '0.0', '13.0', '2020-08-17 20:17:53');
+INSERT INTO `t_order_position` VALUES (9834, 2, 2588, 403, '109.40570923083605', '24.311027786119137', '102.0', '13.0', '2020-08-17 20:19:20');
+INSERT INTO `t_order_position` VALUES (9835, 2, 2588, 403, '109.4061593962291', '24.31049463155653', '80.0', '12.0', '2020-08-17 20:19:34');
+INSERT INTO `t_order_position` VALUES (9836, 2, 2588, 403, '109.40659289007684', '24.310161408088977', '72.0', '12.0', '2020-08-17 20:19:45');
+INSERT INTO `t_order_position` VALUES (9837, 2, 2588, 403, '109.40709306394716', '24.30977819100541', '82.0', '13.0', '2020-08-17 20:20:00');
+INSERT INTO `t_order_position` VALUES (9838, 2, 2588, 403, '109.40752654092927', '24.309494934923702', '70.0', '13.0', '2020-08-17 20:20:10');
+INSERT INTO `t_order_position` VALUES (9839, 2, 2588, 403, '109.40807671935097', '24.309294973131962', '62.0', '13.0', '2020-08-17 20:20:25');
+INSERT INTO `t_order_position` VALUES (9840, 2, 2588, 403, '109.40881027917082', '24.30922827650182', '60.0', '13.0', '2020-08-17 20:20:35');
+INSERT INTO `t_order_position` VALUES (9841, 2, 2588, 403, '109.40954381441337', '24.30919487937455', '60.0', '13.0', '2020-08-17 20:20:45');
+INSERT INTO `t_order_position` VALUES (9842, 2, 2588, 403, '109.41021064235062', '24.309178129901582', '64.0', '13.0', '2020-08-17 20:20:55');
+INSERT INTO `t_order_position` VALUES (9843, 2, 2588, 403, '109.4108607783498', '24.309161363590935', '60.0', '12.0', '2020-08-17 20:21:10');
+INSERT INTO `t_order_position` VALUES (9844, 2, 2589, 905, '30.642331', '104.092514', '0.4', '1.0', '2020-08-18 09:50:33');
+INSERT INTO `t_order_position` VALUES (9845, 2, 2589, 905, '104.0557830483115', '30.58576171162248', '158.2100067138672', '440.9', '2020-08-18 09:53:37');
+INSERT INTO `t_order_position` VALUES (9846, 2, 2590, 905, '104.055796', '30.585652', '0.0', '0.0', '2020-08-18 09:55:22');
+INSERT INTO `t_order_position` VALUES (9847, 2, 2591, 905, '104.055785', '30.585655', '0.0', '0.0', '2020-08-18 10:00:33');
+INSERT INTO `t_order_position` VALUES (9848, 2, 2591, 905, '30.642331', '104.092514', '0.4', '1.0', '2020-08-18 10:01:35');
+INSERT INTO `t_order_position` VALUES (9849, 2, 2591, 905, '104.055785', '30.585655', '0.0', '0.0', '2020-08-18 10:01:39');
+INSERT INTO `t_order_position` VALUES (9850, 2, 2591, 905, '30.642331', '104.092514', '0.4', '1.0', '2020-08-18 10:01:44');
+INSERT INTO `t_order_position` VALUES (9851, 2, 2591, 905, '104.055785', '30.585655', '0.0', '0.0', '2020-08-18 10:01:44');
+INSERT INTO `t_order_position` VALUES (9852, 2, 2591, 905, '104.055785', '30.585655', '0.0', '0.0', '2020-08-18 10:01:49');
+INSERT INTO `t_order_position` VALUES (9853, 2, 2591, 905, '30.642331', '104.092514', '0.4', '1.0', '2020-08-18 10:01:54');
+INSERT INTO `t_order_position` VALUES (9854, 2, 2591, 905, '104.055785', '30.585655', '0.0', '0.0', '2020-08-18 10:02:39');
+INSERT INTO `t_order_position` VALUES (9855, 2, 2591, 905, '30.642331', '104.092514', '0.4', '1.0', '2020-08-18 10:03:08');
+INSERT INTO `t_order_position` VALUES (9856, 2, 2600, 910, '104.055788', '30.585654', '0.0', '0.0', '2020-08-19 17:19:38');
+INSERT INTO `t_order_position` VALUES (9857, 2, 2605, 910, '104.05578003592086', '30.585656665848003', '0.0', '0.0', '2020-08-19 17:38:31');
+INSERT INTO `t_order_position` VALUES (9858, 2, 2606, 910, '104.055783', '30.585655', '0.0', '0.0', '2020-08-19 17:38:57');
+INSERT INTO `t_order_position` VALUES (9859, 2, 2608, 910, '104.05578003592086', '30.585656665848003', '0.0', '0.0', '2020-08-19 18:00:00');
+INSERT INTO `t_order_position` VALUES (9860, 2, 2609, 910, '104.05578003592086', '30.585656665848003', '0.0', '0.0', '2020-08-19 18:08:54');
+INSERT INTO `t_order_position` VALUES (9861, 2, 2610, 910, '104.05578003592086', '30.585656665848003', '0.0', '0.0', '2020-08-19 18:12:15');
+INSERT INTO `t_order_position` VALUES (9862, 2, 2611, 910, '104.05578003592086', '30.585656665848003', '0.0', '0.0', '2020-08-19 18:13:05');
+INSERT INTO `t_order_position` VALUES (9863, 2, 2612, 910, '104.05578003592086', '30.585656665848003', '0.0', '0.0', '2020-08-19 18:16:28');
+INSERT INTO `t_order_position` VALUES (9864, 2, 2614, 913, '109.42021071151497', '24.314256236730355', '0.0', '13.0', '2020-08-20 15:53:33');
+INSERT INTO `t_order_position` VALUES (9865, 2, 2614, 913, '109.42084388765917', '24.31470571666545', '22.0', '14.0', '2020-08-20 15:55:56');
+INSERT INTO `t_order_position` VALUES (9866, 2, 2614, 913, '109.42119381473611', '24.315338640907346', '6.0', '15.0', '2020-08-20 15:56:06');
+INSERT INTO `t_order_position` VALUES (9867, 2, 2614, 913, '109.42129380955818', '24.315805105176157', '0.0', '15.0', '2020-08-20 15:56:11');
+INSERT INTO `t_order_position` VALUES (9868, 2, 2614, 913, '109.42126053905459', '24.316688198956644', '158.0', '14.0', '2020-08-20 15:56:21');
+INSERT INTO `t_order_position` VALUES (9869, 2, 2614, 913, '109.42111061689717', '24.317188147465583', '160.0', '14.0', '2020-08-20 15:56:26');
+INSERT INTO `t_order_position` VALUES (9870, 2, 2614, 913, '109.42101067697826', '24.31767140184406', '156.0', '14.0', '2020-08-20 15:56:31');
+INSERT INTO `t_order_position` VALUES (9871, 2, 2614, 913, '109.42089407503698', '24.31815466640305', '160.0', '14.0', '2020-08-20 15:56:36');
+INSERT INTO `t_order_position` VALUES (9872, 2, 2615, 913, '109.41927821536322', '24.324520430995552', '104.0', '13.0', '2020-08-20 15:59:02');
+INSERT INTO `t_order_position` VALUES (9873, 2, 2615, 913, '109.41941148369153', '24.323937192200642', '104.0', '13.0', '2020-08-20 15:59:08');
+INSERT INTO `t_order_position` VALUES (9874, 2, 2615, 913, '109.41957808229175', '24.323453904983445', '104.0', '13.0', '2020-08-20 15:59:13');
+INSERT INTO `t_order_position` VALUES (9875, 2, 2615, 913, '109.41969469195891', '24.32297064538109', '108.0', '13.0', '2020-08-20 15:59:18');
+INSERT INTO `t_order_position` VALUES (9876, 2, 2615, 913, '109.41977797310508', '24.322437419118998', '110.0', '13.0', '2020-08-20 15:59:23');
+INSERT INTO `t_order_position` VALUES (9877, 2, 2615, 913, '109.41987791726758', '24.3219208449031', '110.0', '13.0', '2020-08-20 15:59:29');
+INSERT INTO `t_order_position` VALUES (9878, 2, 2615, 913, '109.41994453924714', '24.321454275355503', '106.0', '13.0', '2020-08-20 15:59:33');
+INSERT INTO `t_order_position` VALUES (9879, 2, 2615, 913, '109.42007780702217', '24.32093768114148', '104.0', '13.0', '2020-08-20 15:59:38');
+INSERT INTO `t_order_position` VALUES (9880, 2, 2615, 913, '109.42017775163478', '24.320454429761586', '106.0', '11.0', '2020-08-20 15:59:43');
+INSERT INTO `t_order_position` VALUES (9881, 2, 2615, 913, '109.42026103467326', '24.319987849876316', '106.0', '11.0', '2020-08-20 15:59:48');
+INSERT INTO `t_order_position` VALUES (9882, 2, 2615, 913, '109.42041096226352', '24.31947124426448', '108.0', '12.0', '2020-08-20 15:59:53');
+INSERT INTO `t_order_position` VALUES (9883, 2, 2615, 913, '109.42056089263971', '24.319021284949397', '104.0', '12.0', '2020-08-20 15:59:58');
+INSERT INTO `t_order_position` VALUES (9884, 2, 2615, 913, '109.42081077310574', '24.31825468907912', '104.0', '14.0', '2020-08-20 16:00:13');
+INSERT INTO `t_order_position` VALUES (9885, 2, 2615, 913, '109.42094403408946', '24.317721429161484', '102.0', '14.0', '2020-08-20 16:00:18');
+INSERT INTO `t_order_position` VALUES (9886, 2, 2615, 913, '109.42107729417927', '24.31718816865951', '110.0', '14.0', '2020-08-20 16:00:23');
+INSERT INTO `t_order_position` VALUES (9887, 2, 2615, 913, '109.42129383012505', '24.316155001680844', '110.0', '14.0', '2020-08-20 16:00:33');
+INSERT INTO `t_order_position` VALUES (9888, 2, 2615, 913, '109.42127714052486', '24.315671822035327', '122.0', '15.0', '2020-08-20 16:00:38');
+INSERT INTO `t_order_position` VALUES (9889, 2, 2615, 913, '109.42117714072205', '24.315122049099035', '130.0', '15.0', '2020-08-20 16:00:43');
+INSERT INTO `t_order_position` VALUES (9890, 2, 2615, 913, '109.42092719630722', '24.314722326186423', '134.0', '15.0', '2020-08-20 16:00:48');
+INSERT INTO `t_order_position` VALUES (9891, 2, 2615, 913, '109.42031068190332', '24.314222853477755', '154.0', '15.0', '2020-08-20 16:00:58');
+INSERT INTO `t_order_position` VALUES (9892, 2, 2615, 913, '109.4195775181246', '24.313856723973892', '134.0', '14.0', '2020-08-20 16:01:08');
+INSERT INTO `t_order_position` VALUES (9893, 2, 2615, 913, '109.41926087860017', '24.313057139468746', '120.0', '14.0', '2020-08-20 16:01:18');
+INSERT INTO `t_order_position` VALUES (9894, 2, 2615, 913, '109.4191608706066', '24.312540681910715', '128.0', '15.0', '2020-08-20 16:01:28');
+INSERT INTO `t_order_position` VALUES (9895, 2, 2615, 913, '109.41879423464081', '24.311741118901583', '146.0', '15.0', '2020-08-20 16:01:38');
+INSERT INTO `t_order_position` VALUES (9896, 2, 2615, 913, '109.41839429309495', '24.311424756113695', '144.0', '15.0', '2020-08-20 16:01:44');
+INSERT INTO `t_order_position` VALUES (9897, 2, 2615, 913, '109.41772770857683', '24.31094190005171', '150.0', '15.0', '2020-08-20 16:01:53');
+INSERT INTO `t_order_position` VALUES (9898, 2, 2615, 913, '109.41701111036025', '24.310509031749923', '154.0', '13.0', '2020-08-20 16:02:04');
+INSERT INTO `t_order_position` VALUES (9899, 2, 2615, 913, '109.41659446977651', '24.31022596761989', '150.0', '12.0', '2020-08-20 16:02:09');
+INSERT INTO `t_order_position` VALUES (9900, 2, 2615, 913, '109.41614448850147', '24.309926247834895', '148.0', '12.0', '2020-08-20 16:02:14');
+INSERT INTO `t_order_position` VALUES (9901, 2, 2616, 913, '109.41069408051852', '24.30919471552503', '0.0', '13.0', '2020-08-20 16:03:34');
+INSERT INTO `t_order_position` VALUES (9902, 2, 2616, 913, '109.41007728126681', '24.309228134004176', '110.0', '13.0', '2020-08-20 16:05:51');
+INSERT INTO `t_order_position` VALUES (9903, 2, 2616, 913, '109.40942711709101', '24.309194892713837', '114.0', '14.0', '2020-08-20 16:06:06');
+INSERT INTO `t_order_position` VALUES (9904, 2, 2617, 403, '109.40542579892974', '24.311544281692495', '0.0', '7.0', '2020-08-21 09:34:06');
+INSERT INTO `t_order_position` VALUES (9905, 2, 2617, 403, '109.40572590202736', '24.310977801952923', '92.0', '7.0', '2020-08-21 09:34:56');
+INSERT INTO `t_order_position` VALUES (9906, 2, 2617, 403, '109.40617607195075', '24.31052795542658', '80.0', '7.0', '2020-08-21 09:35:16');
+INSERT INTO `t_order_position` VALUES (9907, 2, 2617, 403, '109.4066595777608', '24.310061438891758', '90.0', '7.0', '2020-08-21 09:35:32');
+INSERT INTO `t_order_position` VALUES (9908, 2, 2617, 403, '109.40715974901934', '24.30966155871424', '82.0', '7.0', '2020-08-21 09:35:41');
+INSERT INTO `t_order_position` VALUES (9909, 2, 2617, 403, '109.40765991683391', '24.309411622552517', '0.0', '7.0', '2020-08-21 09:35:51');
+INSERT INTO `t_order_position` VALUES (9910, 2, 2617, 403, '109.40717641902923', '24.309611573539982', '134.0', '7.0', '2020-08-21 09:36:37');
+INSERT INTO `t_order_position` VALUES (9911, 2, 2617, 403, '109.40674293754955', '24.309944807962534', '148.0', '7.0', '2020-08-21 09:36:48');
+INSERT INTO `t_order_position` VALUES (9912, 2, 2618, 910, '104.055794', '30.585655', '0.0', '0.0', '2020-08-21 11:35:06');
+INSERT INTO `t_order_position` VALUES (9913, 2, 2619, 910, '104.055808', '30.585658', '0.0', '0.0', '2020-08-21 11:38:20');
+INSERT INTO `t_order_position` VALUES (9914, 2, 2620, 910, '104.055803', '30.585655', '0.0', '0.0', '2020-08-21 11:40:02');
+INSERT INTO `t_order_position` VALUES (9915, 2, 2621, 910, '104.055814', '30.585657', '0.0', '0.0', '2020-08-21 11:45:49');
+INSERT INTO `t_order_position` VALUES (9916, 2, 2622, 910, '104.055814', '30.585657', '0.0', '0.0', '2020-08-21 11:46:30');
+INSERT INTO `t_order_position` VALUES (9917, 2, 2623, 910, '104.055803', '30.585655', '0.0', '0.0', '2020-08-21 11:51:46');
+INSERT INTO `t_order_position` VALUES (9918, 2, 2624, 910, '104.055793', '30.585655', '0.0', '0.0', '2020-08-21 11:53:07');
+INSERT INTO `t_order_position` VALUES (9919, 2, 2625, 910, '104.055798', '30.585655', '0.0', '0.0', '2020-08-21 11:56:24');
+INSERT INTO `t_order_position` VALUES (9920, 2, 2628, 875, '109.40530907020587', '24.31141098044116', '0.0', '10.0', '2020-08-22 20:23:35');
+INSERT INTO `t_order_position` VALUES (9921, 2, 2628, 875, '109.40569254983909', '24.310911153522863', '90.0', '10.0', '2020-08-22 20:24:06');
+INSERT INTO `t_order_position` VALUES (9922, 2, 2628, 875, '109.40605935532376', '24.310527951449092', '84.0', '10.0', '2020-08-22 20:24:15');
+INSERT INTO `t_order_position` VALUES (9923, 2, 2628, 875, '109.40660956152858', '24.310128084975045', '74.0', '11.0', '2020-08-22 20:24:35');
+INSERT INTO `t_order_position` VALUES (9924, 2, 2628, 875, '109.40715975097793', '24.309694882031685', '78.0', '11.0', '2020-08-22 20:24:50');
+INSERT INTO `t_order_position` VALUES (9925, 2, 2628, 875, '109.4076265717155', '24.30941162364886', '70.0', '11.0', '2020-08-22 20:25:00');
+INSERT INTO `t_order_position` VALUES (9926, 2, 2628, 875, '109.4082601098311', '24.309244977895283', '60.0', '11.0', '2020-08-22 20:25:30');
+INSERT INTO `t_order_position` VALUES (9927, 2, 2628, 875, '109.40877693691908', '24.30924494094443', '60.0', '11.0', '2020-08-22 20:25:56');
+INSERT INTO `t_order_position` VALUES (9928, 2, 2628, 875, '109.4093104181162', '24.309178243796694', '0.0', '11.0', '2020-08-22 20:26:46');
+INSERT INTO `t_order_position` VALUES (9929, 2, 2628, 875, '109.40996058212778', '24.309144841844088', '60.0', '11.0', '2020-08-22 20:27:26');
+INSERT INTO `t_order_position` VALUES (9930, 2, 2628, 875, '109.41061072716793', '24.309144744418422', '0.0', '11.0', '2020-08-22 20:27:51');
+INSERT INTO `t_order_position` VALUES (9931, 2, 2628, 875, '109.41124418360863', '24.309177954696878', '0.0', '11.0', '2020-08-22 20:28:12');
+INSERT INTO `t_order_position` VALUES (9932, 2, 2628, 875, '109.41204431203919', '24.309244432953214', '0.0', '9.0', '2020-08-22 20:28:47');
+INSERT INTO `t_order_position` VALUES (9933, 2, 2628, 875, '109.41259437424613', '24.309160992348065', '0.0', '10.0', '2020-08-22 20:29:17');
+INSERT INTO `t_order_position` VALUES (9934, 2, 2628, 875, '109.4132610912361', '24.308977535611223', '0.0', '5.0', '2020-08-22 20:29:42');
+INSERT INTO `t_order_position` VALUES (9935, 2, 2628, 875, '109.41422781976362', '24.309193842736597', '54.0', '11.0', '2020-08-22 20:29:57');
+INSERT INTO `t_order_position` VALUES (9936, 2, 2629, 875, '109.41429449103305', '24.309243805849427', '0.0', '14.0', '2020-08-22 20:38:14');
+INSERT INTO `t_order_position` VALUES (9937, 2, 2648, 390, '109.36625846250497', '24.32560770789606', '108.0', '15.0', '2020-08-31 12:14:51');
+INSERT INTO `t_order_position` VALUES (9938, 2, 2648, 390, '109.36575746043529', '24.325973528748296', '0.0', '15.0', '2020-08-31 12:15:20');
+INSERT INTO `t_order_position` VALUES (9939, 2, 2648, 390, '109.36575749057074', '24.32649004674641', '4.0', '15.0', '2020-08-31 12:16:06');
+INSERT INTO `t_order_position` VALUES (9940, 2, 2648, 390, '109.36579092735283', '24.32708992390292', '166.0', '15.0', '2020-08-31 12:16:41');
+INSERT INTO `t_order_position` VALUES (9941, 2, 2648, 390, '109.36574086549085', '24.327789648821845', '166.0', '15.0', '2020-08-31 12:16:56');
+INSERT INTO `t_order_position` VALUES (9942, 2, 2648, 390, '109.36562392782929', '24.327256294749898', '114.0', '15.0', '2020-08-31 12:17:11');
+INSERT INTO `t_order_position` VALUES (9943, 2, 2648, 390, '109.36564059379414', '24.326656491886094', '110.0', '15.0', '2020-08-31 12:17:16');
+INSERT INTO `t_order_position` VALUES (9944, 2, 2648, 390, '109.3656405626876', '24.32612331195092', '0.0', '15.0', '2020-08-31 12:17:26');
+INSERT INTO `t_order_position` VALUES (9945, 2, 2648, 390, '109.36584093373133', '24.325440472899505', '62.0', '15.0', '2020-08-31 12:18:52');
+INSERT INTO `t_order_position` VALUES (9946, 2, 2648, 390, '109.3664755646124', '24.325508055500435', '58.0', '15.0', '2020-08-31 12:19:02');
+INSERT INTO `t_order_position` VALUES (9947, 2, 2648, 390, '109.36714358635015', '24.325608999969944', '58.0', '15.0', '2020-08-31 12:19:07');
+INSERT INTO `t_order_position` VALUES (9948, 2, 2648, 390, '109.3682123836009', '24.325593871259933', '58.0', '15.0', '2020-08-31 12:19:22');
+INSERT INTO `t_order_position` VALUES (9949, 2, 2648, 390, '109.36888036708692', '24.325628137823013', '58.0', '15.0', '2020-08-31 12:19:27');
+INSERT INTO `t_order_position` VALUES (9950, 2, 2648, 390, '109.36956503502176', '24.325645753570406', '58.0', '15.0', '2020-08-31 12:19:32');
+INSERT INTO `t_order_position` VALUES (9951, 2, 2648, 390, '109.37034987733003', '24.325613507458595', '58.0', '15.0', '2020-08-31 12:19:37');
+INSERT INTO `t_order_position` VALUES (9952, 2, 2648, 390, '109.37098441808091', '24.325614366130797', '56.0', '15.0', '2020-08-31 12:19:42');
+INSERT INTO `t_order_position` VALUES (9953, 2, 2648, 390, '109.37151876016046', '24.32564840408882', '58.0', '15.0', '2020-08-31 12:19:47');
+INSERT INTO `t_order_position` VALUES (9954, 2, 2648, 390, '109.37228685595541', '24.325616092676498', '58.0', '15.0', '2020-08-31 12:19:57');
+INSERT INTO `t_order_position` VALUES (9955, 2, 2648, 390, '109.3728545689073', '24.325633491711372', '58.0', '15.0', '2020-08-31 12:20:02');
+INSERT INTO `t_order_position` VALUES (9956, 2, 2648, 390, '109.37367272317661', '24.325634537318784', '58.0', '15.0', '2020-08-31 12:20:12');
+INSERT INTO `t_order_position` VALUES (9957, 2, 2648, 390, '109.37459103362026', '24.325652348839125', '56.0', '15.0', '2020-08-31 12:20:22');
+INSERT INTO `t_order_position` VALUES (9958, 2, 2648, 390, '109.37547592453407', '24.325686755997733', '56.0', '15.0', '2020-08-31 12:20:32');
+INSERT INTO `t_order_position` VALUES (9959, 2, 2648, 390, '109.37651103995668', '24.32563800684369', '58.0', '15.0', '2020-08-31 12:20:42');
+INSERT INTO `t_order_position` VALUES (9960, 2, 2648, 390, '109.37726231263552', '24.325655544853095', '72.0', '15.0', '2020-08-31 12:21:48');
+INSERT INTO `t_order_position` VALUES (9961, 2, 2648, 390, '109.37779651645535', '24.325289595917862', '74.0', '15.0', '2020-08-31 12:21:58');
+INSERT INTO `t_order_position` VALUES (9962, 2, 2648, 390, '109.37844757773027', '24.325090386966682', '62.0', '15.0', '2020-08-31 12:22:08');
+INSERT INTO `t_order_position` VALUES (9963, 2, 2648, 390, '109.37901516512581', '24.32505769121548', '60.0', '15.0', '2020-08-31 12:22:13');
+INSERT INTO `t_order_position` VALUES (9964, 2, 2648, 390, '109.37954935201918', '24.324991625057738', '60.0', '15.0', '2020-08-31 12:22:18');
+INSERT INTO `t_order_position` VALUES (9965, 2, 2648, 390, '109.38051753963548', '24.32489268307606', '64.0', '15.0', '2020-08-31 12:22:28');
+INSERT INTO `t_order_position` VALUES (9966, 2, 2648, 390, '109.38120192684956', '24.324826743968647', '62.0', '15.0', '2020-08-31 12:22:33');
+INSERT INTO `t_order_position` VALUES (9967, 2, 2648, 390, '109.38186960422479', '24.324760772082666', '60.0', '15.0', '2020-08-31 12:22:38');
+INSERT INTO `t_order_position` VALUES (9968, 2, 2648, 390, '109.3825706460328', '24.324678155470824', '60.0', '15.0', '2020-08-31 12:22:43');
+INSERT INTO `t_order_position` VALUES (9969, 2, 2648, 390, '109.38322159579813', '24.324595473960024', '60.0', '15.0', '2020-08-31 12:22:48');
+INSERT INTO `t_order_position` VALUES (9970, 2, 2648, 390, '109.38385583923977', '24.324529423777715', '60.0', '15.0', '2020-08-31 12:22:53');
+INSERT INTO `t_order_position` VALUES (9971, 2, 2648, 390, '109.38470703379954', '24.32441356975746', '60.0', '15.0', '2020-08-31 12:22:58');
+INSERT INTO `t_order_position` VALUES (9972, 2, 2648, 390, '109.38537461833903', '24.324347514973013', '60.0', '15.0', '2020-08-31 12:23:03');
+INSERT INTO `t_order_position` VALUES (9973, 2, 2648, 390, '109.38594204934101', '24.324264696681826', '60.0', '15.0', '2020-08-31 12:23:08');
+INSERT INTO `t_order_position` VALUES (9974, 2, 2648, 390, '109.38712693642756', '24.324099065182484', '64.0', '15.0', '2020-08-31 12:23:18');
+INSERT INTO `t_order_position` VALUES (9975, 2, 2648, 390, '109.3878945809611', '24.324033029330334', '60.0', '15.0', '2020-08-31 12:23:23');
+INSERT INTO `t_order_position` VALUES (9976, 2, 2648, 390, '109.38847864273552', '24.324000156078544', '64.0', '15.0', '2020-08-31 12:23:28');
+INSERT INTO `t_order_position` VALUES (9977, 2, 2648, 390, '109.38897925141957', '24.323900560826388', '72.0', '15.0', '2020-08-31 12:23:33');
+INSERT INTO `t_order_position` VALUES (9978, 2, 2648, 390, '109.38954658308317', '24.323584400243167', '88.0', '15.0', '2020-08-31 12:23:38');
+INSERT INTO `t_order_position` VALUES (9979, 2, 2648, 390, '109.38996372108426', '24.323201474855104', '90.0', '15.0', '2020-08-31 12:23:43');
+INSERT INTO `t_order_position` VALUES (9980, 2, 2648, 390, '109.39028072870958', '24.322701841088694', '124.0', '15.0', '2020-08-31 12:23:53');
+INSERT INTO `t_order_position` VALUES (9981, 2, 2648, 390, '109.39004708776463', '24.322101853026147', '28.0', '15.0', '2020-08-31 12:24:04');
+INSERT INTO `t_order_position` VALUES (9982, 2, 2648, 390, '109.39033078189067', '24.32261856651872', '14.0', '15.0', '2020-08-31 12:25:34');
+INSERT INTO `t_order_position` VALUES (9983, 2, 2648, 390, '109.39056441899437', '24.323201890425413', '14.0', '15.0', '2020-08-31 12:25:49');
+INSERT INTO `t_order_position` VALUES (9984, 2, 2648, 390, '109.390764675532', '24.323668557195287', '10.0', '15.0', '2020-08-31 12:26:04');
+INSERT INTO `t_order_position` VALUES (9985, 2, 2648, 390, '109.3910316792587', '24.32425189975363', '18.0', '15.0', '2020-08-31 12:26:19');
+INSERT INTO `t_order_position` VALUES (9986, 2, 2648, 390, '109.39136543272896', '24.325035225440285', '14.0', '15.0', '2020-08-31 12:26:34');
+INSERT INTO `t_order_position` VALUES (9987, 2, 2648, 390, '109.39161574048347', '24.325551904245273', '14.0', '15.0', '2020-08-31 12:26:44');
+INSERT INTO `t_order_position` VALUES (9988, 2, 2648, 390, '109.39193278592599', '24.326085284583144', '64.0', '15.0', '2020-08-31 12:27:40');
+INSERT INTO `t_order_position` VALUES (9989, 2, 2648, 390, '109.39245000906791', '24.32606894159671', '0.0', '15.0', '2020-08-31 12:27:50');
+INSERT INTO `t_order_position` VALUES (9990, 2, 2648, 390, '109.39316741764164', '24.32586942396661', '68.0', '15.0', '2020-08-31 12:28:05');
+INSERT INTO `t_order_position` VALUES (9991, 2, 2648, 390, '109.39368460657698', '24.325753084422807', '76.0', '15.0', '2020-08-31 12:28:10');
+INSERT INTO `t_order_position` VALUES (9992, 2, 2648, 390, '109.39413504104014', '24.325470079670197', '80.0', '15.0', '2020-08-31 12:28:20');
+INSERT INTO `t_order_position` VALUES (9993, 2, 2648, 390, '109.39460214631012', '24.32513708993119', '80.0', '15.0', '2020-08-31 12:28:35');
+INSERT INTO `t_order_position` VALUES (9994, 2, 2648, 390, '109.39528613568967', '24.325187421885776', '62.0', '15.0', '2020-08-31 12:28:55');
+INSERT INTO `t_order_position` VALUES (9995, 2, 2648, 390, '109.39583664790216', '24.325221010586073', '52.0', '15.0', '2020-08-31 12:29:05');
+INSERT INTO `t_order_position` VALUES (9996, 2, 2648, 390, '109.39623696041991', '24.32437144109133', '114.0', '15.0', '2020-08-31 12:29:20');
+INSERT INTO `t_order_position` VALUES (9997, 2, 2648, 390, '109.39628696802643', '24.323738313748123', '110.0', '15.0', '2020-08-31 12:29:25');
+INSERT INTO `t_order_position` VALUES (9998, 2, 2648, 390, '109.39637034150384', '24.323155187083348', '110.0', '15.0', '2020-08-31 12:29:30');
+INSERT INTO `t_order_position` VALUES (9999, 2, 2648, 390, '109.39640367515054', '24.32265534720077', '102.0', '15.0', '2020-08-31 12:29:35');
+INSERT INTO `t_order_position` VALUES (10000, 2, 2648, 390, '109.39655377964188', '24.32217222102962', '114.0', '15.0', '2020-08-31 12:29:40');
+INSERT INTO `t_order_position` VALUES (10001, 2, 2648, 390, '109.39663715698917', '24.32167240321341', '112.0', '15.0', '2020-08-31 12:29:45');
+INSERT INTO `t_order_position` VALUES (10002, 2, 2648, 390, '109.39667047652803', '24.32093929829383', '98.0', '15.0', '2020-08-31 12:29:55');
+INSERT INTO `t_order_position` VALUES (10003, 2, 2648, 390, '109.39685394442219', '24.320506170819765', '112.0', '15.0', '2020-08-31 12:30:06');
+INSERT INTO `t_order_position` VALUES (10004, 2, 2648, 390, '109.39693731865994', '24.319973029037715', '106.0', '15.0', '2020-08-31 12:30:16');
+INSERT INTO `t_order_position` VALUES (10005, 2, 2648, 390, '109.39705405164315', '24.31938991588124', '112.0', '15.0', '2020-08-31 12:30:36');
+INSERT INTO `t_order_position` VALUES (10006, 2, 2648, 390, '109.39707070327009', '24.318890069524254', '114.0', '15.0', '2020-08-31 12:30:51');
+INSERT INTO `t_order_position` VALUES (10007, 2, 2648, 390, '109.39718742770627', '24.318173662073843', '120.0', '15.0', '2020-08-31 12:31:06');
+INSERT INTO `t_order_position` VALUES (10008, 2, 2648, 390, '109.39680374145067', '24.317790279390625', '162.0', '15.0', '2020-08-31 12:31:21');
+INSERT INTO `t_order_position` VALUES (10009, 2, 2648, 390, '109.39613647425624', '24.317623365417106', '162.0', '15.0', '2020-08-31 12:31:31');
+INSERT INTO `t_order_position` VALUES (10010, 2, 2648, 390, '109.39585285824953', '24.31719002826269', '102.0', '15.0', '2020-08-31 12:31:46');
+INSERT INTO `t_order_position` VALUES (10011, 2, 2648, 390, '109.39652011845226', '24.317090361878368', '50.0', '15.0', '2020-08-31 12:31:58');
+INSERT INTO `t_order_position` VALUES (10012, 2, 2648, 390, '109.3970372395325', '24.317157232014495', '70.0', '15.0', '2020-08-31 12:32:01');
+INSERT INTO `t_order_position` VALUES (10013, 2, 2648, 390, '109.39752094498984', '24.31650762253805', '110.0', '15.0', '2020-08-31 12:32:11');
+INSERT INTO `t_order_position` VALUES (10014, 2, 2648, 390, '109.39757095158919', '24.315907819862336', '110.0', '15.0', '2020-08-31 12:32:17');
+INSERT INTO `t_order_position` VALUES (10015, 2, 2648, 390, '109.39765432208381', '24.315358015758573', '108.0', '15.0', '2020-08-31 12:32:21');
+INSERT INTO `t_order_position` VALUES (10016, 2, 2648, 390, '109.39783776402312', '24.314624971661516', '112.0', '15.0', '2020-08-31 12:32:31');
+INSERT INTO `t_order_position` VALUES (10017, 2, 2648, 390, '109.39798785465658', '24.31407519271503', '104.0', '15.0', '2020-08-31 12:32:41');
+INSERT INTO `t_order_position` VALUES (10018, 2, 2648, 390, '109.39832139771781', '24.313058953487563', '102.0', '15.0', '2020-08-31 12:32:51');
+INSERT INTO `t_order_position` VALUES (10019, 2, 2648, 390, '109.39862160151831', '24.312475902552624', '96.0', '15.0', '2020-08-31 12:32:57');
+INSERT INTO `t_order_position` VALUES (10020, 2, 2648, 390, '109.3989051274384', '24.311992812513182', '90.0', '15.0', '2020-08-31 12:33:02');
+INSERT INTO `t_order_position` VALUES (10021, 2, 2648, 390, '109.39922201215563', '24.311576377040925', '96.0', '15.0', '2020-08-31 12:33:07');
+INSERT INTO `t_order_position` VALUES (10022, 2, 2648, 390, '109.39948885395371', '24.31114325991303', '92.0', '15.0', '2020-08-31 12:33:12');
+INSERT INTO `t_order_position` VALUES (10023, 2, 2648, 390, '109.40010592760424', '24.31039367331731', '94.0', '15.0', '2020-08-31 12:33:22');
+INSERT INTO `t_order_position` VALUES (10024, 2, 2648, 390, '109.40043947084239', '24.30994390365308', '92.0', '15.0', '2020-08-31 12:33:27');
+INSERT INTO `t_order_position` VALUES (10025, 2, 2648, 390, '109.400756333666', '24.30954410998441', '92.0', '15.0', '2020-08-31 12:33:32');
+INSERT INTO `t_order_position` VALUES (10026, 2, 2648, 390, '109.40125664241374', '24.309061049384397', '90.0', '15.0', '2020-08-31 12:33:52');
+INSERT INTO `t_order_position` VALUES (10027, 2, 2648, 390, '109.40169023188811', '24.308611286650663', '92.0', '15.0', '2020-08-31 12:34:02');
+INSERT INTO `t_order_position` VALUES (10028, 2, 2648, 390, '109.40207378423352', '24.308211490557962', '80.0', '15.0', '2020-08-31 12:34:09');
+INSERT INTO `t_order_position` VALUES (10029, 2, 2648, 390, '109.40259074412913', '24.307828375245283', '84.0', '15.0', '2020-08-31 12:34:12');
+INSERT INTO `t_order_position` VALUES (10030, 2, 2648, 390, '109.40315771986896', '24.307445256758097', '80.0', '15.0', '2020-08-31 12:34:17');
+INSERT INTO `t_order_position` VALUES (10031, 2, 2648, 390, '109.40362462941843', '24.30712875700997', '80.0', '15.0', '2020-08-31 12:34:22');
+INSERT INTO `t_order_position` VALUES (10032, 2, 2648, 390, '109.40424160005747', '24.3066956344249', '82.0', '15.0', '2020-08-31 12:34:31');
+INSERT INTO `t_order_position` VALUES (10033, 2, 2648, 390, '109.40489190388502', '24.306295821663383', '72.0', '15.0', '2020-08-31 12:34:32');
+INSERT INTO `t_order_position` VALUES (10034, 2, 2648, 390, '109.40560889593677', '24.306095933842105', '62.0', '15.0', '2020-08-31 12:34:37');
+INSERT INTO `t_order_position` VALUES (10035, 2, 2648, 390, '109.40624250639253', '24.30609596074344', '58.0', '15.0', '2020-08-31 12:34:42');
+INSERT INTO `t_order_position` VALUES (10036, 2, 2648, 390, '109.40685942211128', '24.306062646828522', '74.0', '15.0', '2020-08-31 12:34:47');
+INSERT INTO `t_order_position` VALUES (10037, 2, 2648, 390, '109.40732625558593', '24.3058793650382', '70.0', '15.0', '2020-08-31 12:34:52');
+INSERT INTO `t_order_position` VALUES (10038, 2, 2648, 390, '109.40789310393377', '24.30554611504393', '108.0', '15.0', '2020-08-31 12:35:12');
+INSERT INTO `t_order_position` VALUES (10039, 2, 2648, 390, '109.4069260736712', '24.305362859242184', '164.0', '15.0', '2020-08-31 12:35:22');
+INSERT INTO `t_order_position` VALUES (10040, 2, 2648, 390, '109.40629247260097', '24.30516291205266', '142.0', '15.0', '2020-08-31 12:35:32');
+INSERT INTO `t_order_position` VALUES (10041, 2, 2648, 390, '109.40639248103014', '24.304596420108123', '108.0', '15.0', '2020-08-31 12:35:42');
+INSERT INTO `t_order_position` VALUES (10042, 2, 2648, 390, '109.40640911837203', '24.30397994157393', '128.0', '15.0', '2020-08-31 12:35:52');
+INSERT INTO `t_order_position` VALUES (10043, 2, 2648, 390, '109.406342395602', '24.30349675409046', '74.0', '15.0', '2020-08-31 12:36:03');
+INSERT INTO `t_order_position` VALUES (10044, 2, 2648, 390, '109.40689260396948', '24.303263498660172', '70.0', '15.0', '2020-08-31 12:36:13');
+INSERT INTO `t_order_position` VALUES (10045, 2, 2648, 390, '109.40740945792645', '24.303130200221812', '96.0', '15.0', '2020-08-31 12:36:53');
+INSERT INTO `t_order_position` VALUES (10046, 2, 2648, 390, '109.40820971657098', '24.302830259666056', '70.0', '15.0', '2020-08-31 12:37:08');
+INSERT INTO `t_order_position` VALUES (10047, 2, 2648, 390, '109.40894326764226', '24.30269691274235', '70.0', '15.0', '2020-08-31 12:37:18');
+INSERT INTO `t_order_position` VALUES (10048, 2, 2648, 390, '109.40947673170896', '24.30241361156893', '64.0', '15.0', '2020-08-31 12:37:28');
+INSERT INTO `t_order_position` VALUES (10049, 2, 2648, 390, '109.4100768709034', '24.30224691951927', '54.0', '15.0', '2020-08-31 12:37:43');
+INSERT INTO `t_order_position` VALUES (10050, 2, 2648, 390, '109.410810369938', '24.30238009697535', '54.0', '15.0', '2020-08-31 12:37:53');
+INSERT INTO `t_order_position` VALUES (10051, 2, 2648, 390, '109.41147715792276', '24.302396633127557', '50.0', '15.0', '2020-08-31 12:38:03');
+INSERT INTO `t_order_position` VALUES (10052, 2, 2648, 390, '109.4120272444725', '24.30246316099799', '54.0', '15.0', '2020-08-31 12:38:48');
+INSERT INTO `t_order_position` VALUES (10053, 2, 2648, 390, '109.4127606674676', '24.302512966789724', '56.0', '15.0', '2020-08-31 12:38:59');
+INSERT INTO `t_order_position` VALUES (10054, 2, 2648, 390, '109.41356073537308', '24.30257939041402', '54.0', '15.0', '2020-08-31 12:39:09');
+INSERT INTO `t_order_position` VALUES (10055, 2, 2648, 390, '109.41441076927087', '24.302595783944415', '50.0', '15.0', '2020-08-31 12:39:19');
+INSERT INTO `t_order_position` VALUES (10056, 2, 2648, 390, '109.41494411066225', '24.302695568615338', '54.0', '15.0', '2020-08-31 12:39:29');
+INSERT INTO `t_order_position` VALUES (10057, 2, 2648, 390, '109.41566076172093', '24.302761946485266', '52.0', '15.0', '2020-08-31 12:39:39');
+INSERT INTO `t_order_position` VALUES (10058, 2, 2648, 390, '109.41647737863326', '24.30282825870888', '50.0', '15.0', '2020-08-31 12:39:49');
+INSERT INTO `t_order_position` VALUES (10059, 2, 2648, 390, '109.41734395659681', '24.302911179177354', '54.0', '15.0', '2020-08-31 12:39:59');
+INSERT INTO `t_order_position` VALUES (10060, 2, 2648, 390, '109.41791054164892', '24.302910907556907', '56.0', '15.0', '2020-08-31 12:40:04');
+INSERT INTO `t_order_position` VALUES (10061, 2, 2648, 390, '109.41849377605747', '24.302943935961256', '0.0', '15.0', '2020-08-31 12:40:14');
+INSERT INTO `t_order_position` VALUES (10062, 2, 2648, 390, '109.41936026514801', '24.303010115992457', '52.0', '15.0', '2020-08-31 12:41:55');
+INSERT INTO `t_order_position` VALUES (10063, 2, 2648, 390, '109.42011007856193', '24.303026346693592', '58.0', '15.0', '2020-08-31 12:42:05');
+INSERT INTO `t_order_position` VALUES (10064, 2, 2648, 390, '109.42072657274399', '24.303075958124', '52.0', '15.0', '2020-08-31 12:42:15');
+INSERT INTO `t_order_position` VALUES (10065, 2, 2648, 390, '109.42129306526179', '24.30314224626729', '54.0', '15.0', '2020-08-31 12:42:25');
+INSERT INTO `t_order_position` VALUES (10066, 2, 2648, 390, '109.42227605519012', '24.30320823666955', '56.0', '15.0', '2020-08-31 12:42:35');
+INSERT INTO `t_order_position` VALUES (10067, 2, 2648, 390, '109.42329231754103', '24.303307482156402', '54.0', '15.0', '2020-08-31 12:42:45');
+INSERT INTO `t_order_position` VALUES (10068, 2, 2648, 390, '109.42382541787407', '24.303357068478018', '52.0', '15.0', '2020-08-31 12:42:50');
+INSERT INTO `t_order_position` VALUES (10069, 2, 2648, 390, '109.42455840447253', '24.30337316132969', '54.0', '15.0', '2020-08-31 12:43:00');
+INSERT INTO `t_order_position` VALUES (10070, 2, 2648, 390, '109.42507481291118', '24.303422730857168', '56.0', '15.0', '2020-08-31 12:43:05');
+INSERT INTO `t_order_position` VALUES (10071, 2, 2648, 390, '109.42594101540197', '24.303488653773567', '58.0', '15.0', '2020-08-31 12:43:15');
+INSERT INTO `t_order_position` VALUES (10072, 2, 2648, 390, '109.42674055292852', '24.303537940863', '54.0', '15.0', '2020-08-31 12:43:26');
+INSERT INTO `t_order_position` VALUES (10073, 2, 2648, 390, '109.4276233391926', '24.303603783591704', '52.0', '15.0', '2020-08-31 12:43:35');
+INSERT INTO `t_order_position` VALUES (10074, 2, 2648, 390, '109.42837284968732', '24.30375302819218', '54.0', '15.0', '2020-08-31 12:43:50');
+INSERT INTO `t_order_position` VALUES (10075, 2, 2648, 390, '109.42925556419631', '24.303818806574764', '54.0', '15.0', '2020-08-31 12:44:00');
+INSERT INTO `t_order_position` VALUES (10076, 2, 2648, 390, '109.42982181198613', '24.30383489309484', '64.0', '15.0', '2020-08-31 12:44:05');
+INSERT INTO `t_order_position` VALUES (10077, 2, 2648, 390, '109.43040468772051', '24.303684331971073', '70.0', '15.0', '2020-08-31 12:44:10');
+INSERT INTO `t_order_position` VALUES (10078, 2, 2648, 390, '109.43093758331283', '24.303467163372', '78.0', '14.0', '2020-08-31 12:44:15');
+INSERT INTO `t_order_position` VALUES (10079, 2, 2648, 390, '109.43138719814836', '24.303200089051064', '76.0', '15.0', '2020-08-31 12:44:20');
+INSERT INTO `t_order_position` VALUES (10080, 2, 2648, 390, '109.43221979549223', '24.302765958890912', '74.0', '15.0', '2020-08-31 12:44:31');
+INSERT INTO `t_order_position` VALUES (10081, 2, 2648, 390, '109.43318557769285', '24.302464934537113', '68.0', '15.0', '2020-08-31 12:44:41');
+INSERT INTO `t_order_position` VALUES (10082, 2, 2648, 390, '109.4336851045699', '24.30234771022929', '0.0', '15.0', '2020-08-31 12:45:21');
+INSERT INTO `t_order_position` VALUES (10083, 2, 2648, 390, '109.43455093226069', '24.302313332836988', '60.0', '15.0', '2020-08-31 12:46:16');
+INSERT INTO `t_order_position` VALUES (10084, 2, 2648, 390, '109.43541672354758', '24.302278922815706', '58.0', '15.0', '2020-08-31 12:46:26');
+INSERT INTO `t_order_position` VALUES (10085, 2, 2648, 390, '109.43593285226667', '24.302278259401945', '60.0', '15.0', '2020-08-31 12:46:36');
+INSERT INTO `t_order_position` VALUES (10086, 2, 2648, 390, '109.4368485290165', '24.302210407807628', '60.0', '15.0', '2020-08-31 12:46:46');
+INSERT INTO `t_order_position` VALUES (10087, 2, 2648, 390, '109.43741456504758', '24.30219298309516', '62.0', '15.0', '2020-08-31 12:46:51');
+INSERT INTO `t_order_position` VALUES (10088, 2, 2648, 390, '109.43794728981511', '24.302158929172144', '62.0', '15.0', '2020-08-31 12:46:56');
+INSERT INTO `t_order_position` VALUES (10089, 2, 2648, 390, '109.43884623552296', '24.30215766851621', '60.0', '15.0', '2020-08-31 12:47:06');
+INSERT INTO `t_order_position` VALUES (10090, 2, 2648, 390, '109.4395120984948', '24.30219003571093', '0.0', '15.0', '2020-08-31 12:47:27');
+INSERT INTO `t_order_position` VALUES (10091, 2, 2648, 390, '109.4401280003405', '24.302172473227643', '60.0', '15.0', '2020-08-31 12:47:47');
+INSERT INTO `t_order_position` VALUES (10092, 2, 2648, 390, '109.44077717690361', '24.302188167911183', '54.0', '15.0', '2020-08-31 12:47:57');
+INSERT INTO `t_order_position` VALUES (10093, 2, 2648, 390, '109.4413431156152', '24.30230394156356', '50.0', '15.0', '2020-08-31 12:48:07');
+INSERT INTO `t_order_position` VALUES (10094, 2, 2648, 390, '109.44210877517868', '24.30248603768965', '54.0', '15.0', '2020-08-31 12:48:17');
+INSERT INTO `t_order_position` VALUES (10095, 2, 2648, 390, '109.4428910502889', '24.30265142151448', '54.0', '15.0', '2020-08-31 12:48:27');
+INSERT INTO `t_order_position` VALUES (10096, 2, 2648, 390, '109.44360672594824', '24.30283354971124', '48.0', '15.0', '2020-08-31 12:48:37');
+INSERT INTO `t_order_position` VALUES (10097, 2, 2648, 390, '109.4443556691375', '24.303115571517022', '40.0', '15.0', '2020-08-31 12:48:47');
+INSERT INTO `t_order_position` VALUES (10098, 2, 2648, 390, '109.4451711614451', '24.30351408965362', '34.0', '15.0', '2020-08-31 12:48:57');
+INSERT INTO `t_order_position` VALUES (10099, 2, 2648, 390, '109.44563715263608', '24.303896517033053', '30.0', '15.0', '2020-08-31 12:49:02');
+INSERT INTO `t_order_position` VALUES (10100, 2, 2648, 390, '109.44626955735839', '24.30447858789058', '30.0', '15.0', '2020-08-31 12:49:12');
+INSERT INTO `t_order_position` VALUES (10101, 2, 2648, 390, '109.44681874289112', '24.305094111993505', '28.0', '15.0', '2020-08-31 12:49:27');
+INSERT INTO `t_order_position` VALUES (10102, 2, 2648, 390, '109.44726806334913', '24.305543185027478', '28.0', '15.0', '2020-08-31 12:49:32');
+INSERT INTO `t_order_position` VALUES (10103, 2, 2648, 390, '109.44765081077163', '24.30592572254922', '30.0', '15.0', '2020-08-31 12:49:37');
+INSERT INTO `t_order_position` VALUES (10104, 2, 2648, 390, '109.4481333942036', '24.306374721173352', '28.0', '15.0', '2020-08-31 12:49:42');
+INSERT INTO `t_order_position` VALUES (10105, 2, 2648, 390, '109.44856604828286', '24.306807140053333', '34.0', '15.0', '2020-08-31 12:49:47');
+INSERT INTO `t_order_position` VALUES (10106, 2, 2648, 390, '109.44896541305454', '24.307189627963222', '32.0', '15.0', '2020-08-31 12:49:52');
+INSERT INTO `t_order_position` VALUES (10107, 2, 2648, 390, '109.44933149223566', '24.30755550970357', '28.0', '15.0', '2020-08-31 12:50:00');
+INSERT INTO `t_order_position` VALUES (10108, 2, 2648, 390, '109.44968092604437', '24.307904755718443', '32.0', '15.0', '2020-08-31 12:50:03');
+INSERT INTO `t_order_position` VALUES (10109, 2, 2648, 390, '109.45004699098779', '24.308220642629603', '32.0', '15.0', '2020-08-31 12:50:08');
+INSERT INTO `t_order_position` VALUES (10110, 2, 2648, 390, '109.45074582992537', '24.308885787935157', '40.0', '15.0', '2020-08-31 12:50:18');
+INSERT INTO `t_order_position` VALUES (10111, 2, 2648, 390, '109.45151117885764', '24.30923421505608', '42.0', '15.0', '2020-08-31 12:50:28');
+INSERT INTO `t_order_position` VALUES (10112, 2, 2648, 390, '109.4523264133365', '24.30958252229577', '42.0', '15.0', '2020-08-31 12:50:43');
+INSERT INTO `t_order_position` VALUES (10113, 2, 2648, 390, '109.45300852543022', '24.30984776145537', '44.0', '15.0', '2020-08-31 12:50:48');
+INSERT INTO `t_order_position` VALUES (10114, 2, 2648, 390, '109.45367398050111', '24.31007969362963', '44.0', '15.0', '2020-08-31 12:50:53');
+INSERT INTO `t_order_position` VALUES (10115, 2, 2648, 390, '109.45423960505258', '24.310311812750065', '40.0', '15.0', '2020-08-31 12:50:58');
+INSERT INTO `t_order_position` VALUES (10116, 2, 2648, 390, '109.4547220373222', '24.310477444302276', '44.0', '15.0', '2020-08-31 12:51:03');
+INSERT INTO `t_order_position` VALUES (10117, 2, 2648, 390, '109.45525436735628', '24.310692949228738', '40.0', '15.0', '2020-08-31 12:52:03');
+INSERT INTO `t_order_position` VALUES (10118, 2, 2648, 390, '109.45611936759192', '24.310841100367263', '58.0', '15.0', '2020-08-31 12:52:13');
+INSERT INTO `t_order_position` VALUES (10119, 2, 2648, 390, '109.45691779487771', '24.310839411695177', '60.0', '15.0', '2020-08-31 12:52:18');
+INSERT INTO `t_order_position` VALUES (10120, 2, 2648, 390, '109.45758313182277', '24.310837987423536', '60.0', '15.0', '2020-08-31 12:52:23');
+INSERT INTO `t_order_position` VALUES (10121, 2, 2648, 390, '109.45849794304092', '24.310852665731577', '60.0', '15.0', '2020-08-31 12:52:34');
+INSERT INTO `t_order_position` VALUES (10122, 2, 2648, 390, '109.45947925027393', '24.310867168058106', '58.0', '15.0', '2020-08-31 12:52:43');
+INSERT INTO `t_order_position` VALUES (10123, 2, 2648, 390, '109.46009462618169', '24.31084913568541', '60.0', '15.0', '2020-08-31 12:52:49');
+INSERT INTO `t_order_position` VALUES (10124, 2, 2648, 390, '109.46070998891996', '24.31084775240274', '56.0', '15.0', '2020-08-31 12:52:54');
+INSERT INTO `t_order_position` VALUES (10125, 2, 2648, 390, '109.46149164574945', '24.3108459773248', '62.0', '15.0', '2020-08-31 12:53:04');
+INSERT INTO `t_order_position` VALUES (10126, 2, 2648, 390, '109.46250609848994', '24.310760335630622', '60.0', '15.0', '2020-08-31 12:53:49');
+INSERT INTO `t_order_position` VALUES (10127, 2, 2648, 390, '109.46312140431596', '24.310708919317882', '62.0', '15.0', '2020-08-31 12:53:54');
+INSERT INTO `t_order_position` VALUES (10128, 2, 2648, 390, '109.46388635727351', '24.31059049157596', '66.0', '15.0', '2020-08-31 12:53:59');
+INSERT INTO `t_order_position` VALUES (10129, 2, 2648, 390, '109.46461803005586', '24.310438801619682', '70.0', '15.0', '2020-08-31 12:54:04');
+INSERT INTO `t_order_position` VALUES (10130, 2, 2648, 390, '109.46534968150586', '24.310237110327392', '70.0', '15.0', '2020-08-31 12:54:09');
+INSERT INTO `t_order_position` VALUES (10131, 2, 2648, 390, '109.46611456902536', '24.310001998916007', '70.0', '15.0', '2020-08-31 12:54:14');
+INSERT INTO `t_order_position` VALUES (10132, 2, 2648, 390, '109.46681292343042', '24.3097170481331', '72.0', '15.0', '2020-08-31 12:54:19');
+INSERT INTO `t_order_position` VALUES (10133, 2, 2648, 390, '109.4676442741486', '24.309331784657918', '76.0', '15.0', '2020-08-31 12:54:24');
+INSERT INTO `t_order_position` VALUES (10134, 2, 2648, 390, '109.46837584162327', '24.308946750357286', '80.0', '15.0', '2020-08-31 12:54:29');
+INSERT INTO `t_order_position` VALUES (10135, 2, 2648, 390, '109.46909076368509', '24.308528419598943', '78.0', '15.0', '2020-08-31 12:54:34');
+INSERT INTO `t_order_position` VALUES (10136, 2, 2648, 390, '109.4698056697709', '24.308110074826708', '80.0', '15.0', '2020-08-31 12:54:39');
+INSERT INTO `t_order_position` VALUES (10137, 2, 2648, 390, '109.47052056111737', '24.307708377920523', '78.0', '15.0', '2020-08-31 12:54:44');
+INSERT INTO `t_order_position` VALUES (10138, 2, 2648, 390, '109.47125206143589', '24.30728996310406', '80.0', '15.0', '2020-08-31 12:54:49');
+INSERT INTO `t_order_position` VALUES (10139, 2, 2648, 390, '109.47195029582716', '24.306871620510112', '80.0', '15.0', '2020-08-31 12:54:55');
+INSERT INTO `t_order_position` VALUES (10140, 2, 2648, 390, '109.47264851698075', '24.306469927119846', '80.0', '15.0', '2020-08-31 12:54:59');
+INSERT INTO `t_order_position` VALUES (10141, 2, 2648, 390, '109.47334672418631', '24.306068221539945', '80.0', '15.0', '2020-08-31 12:55:04');
+INSERT INTO `t_order_position` VALUES (10142, 2, 2648, 390, '109.47417790403325', '24.305566182750663', '80.0', '15.0', '2020-08-31 12:55:10');
+INSERT INTO `t_order_position` VALUES (10143, 2, 2648, 390, '109.47484283424356', '24.305164539810338', '80.0', '15.0', '2020-08-31 12:55:14');
+INSERT INTO `t_order_position` VALUES (10144, 2, 2648, 390, '109.47549113012623', '24.304779592608547', '82.0', '15.0', '2020-08-31 12:55:19');
+INSERT INTO `t_order_position` VALUES (10145, 2, 2648, 390, '109.47612279179008', '24.304394680491377', '78.0', '15.0', '2020-08-31 12:55:24');
+INSERT INTO `t_order_position` VALUES (10146, 2, 2648, 390, '109.47677106596834', '24.30400971442129', '80.0', '15.0', '2020-08-31 12:55:29');
+INSERT INTO `t_order_position` VALUES (10147, 2, 2648, 390, '109.47745257461526', '24.303624648643527', '80.0', '15.0', '2020-08-31 12:55:34');
+INSERT INTO `t_order_position` VALUES (10148, 2, 2648, 390, '109.47816731241127', '24.3031728355731', '78.0', '15.0', '2020-08-31 12:55:39');
+INSERT INTO `t_order_position` VALUES (10149, 2, 2648, 390, '109.47886541678885', '24.30273771909165', '80.0', '15.0', '2020-08-31 12:55:44');
+INSERT INTO `t_order_position` VALUES (10150, 2, 2648, 390, '109.47953027002829', '24.30236933083443', '80.0', '15.0', '2020-08-31 12:55:50');
+INSERT INTO `t_order_position` VALUES (10151, 2, 2648, 390, '109.48009538500308', '24.302017872245873', '80.0', '15.0', '2020-08-31 12:55:54');
+INSERT INTO `t_order_position` VALUES (10152, 2, 2648, 390, '109.48062725203796', '24.30169982318272', '82.0', '15.0', '2020-08-31 12:56:00');
+INSERT INTO `t_order_position` VALUES (10153, 2, 2648, 390, '109.48104276765716', '24.30143207864808', '90.0', '15.0', '2020-08-31 12:56:05');
+INSERT INTO `t_order_position` VALUES (10154, 2, 2648, 390, '109.4811923077045', '24.300565259630876', '152.0', '15.0', '2020-08-31 12:56:15');
+INSERT INTO `t_order_position` VALUES (10155, 2, 2648, 390, '109.48067703677756', '24.30033343684076', '122.0', '15.0', '2020-08-31 12:56:20');
+INSERT INTO `t_order_position` VALUES (10156, 2, 2648, 390, '109.48014516259451', '24.300518193722894', '150.0', '15.0', '2020-08-31 12:56:25');
+INSERT INTO `t_order_position` VALUES (10157, 2, 2648, 390, '109.47997897336498', '24.300968516889235', '10.0', '15.0', '2020-08-31 12:56:30');
+INSERT INTO `t_order_position` VALUES (10158, 2, 2648, 390, '109.48017846450287', '24.301534456149497', '20.0', '15.0', '2020-08-31 12:56:35');
+INSERT INTO `t_order_position` VALUES (10159, 2, 2648, 390, '109.48049430543182', '24.302116732645587', '22.0', '15.0', '2020-08-31 12:56:40');
+INSERT INTO `t_order_position` VALUES (10160, 2, 2648, 390, '109.48086000688146', '24.302682206722217', '22.0', '15.0', '2020-08-31 12:56:45');
+INSERT INTO `t_order_position` VALUES (10161, 2, 2648, 390, '109.48127557733122', '24.303397493151753', '20.0', '15.0', '2020-08-31 12:56:50');
+INSERT INTO `t_order_position` VALUES (10162, 2, 2648, 390, '109.48162465348047', '24.30399633212738', '22.0', '15.0', '2020-08-31 12:56:55');
+INSERT INTO `t_order_position` VALUES (10163, 2, 2648, 390, '109.48197372700812', '24.304595169096284', '22.0', '15.0', '2020-08-31 12:57:00');
+INSERT INTO `t_order_position` VALUES (10164, 2, 2648, 390, '109.48227293096728', '24.305110836583804', '20.0', '15.0', '2020-08-31 12:57:05');
+INSERT INTO `t_order_position` VALUES (10165, 2, 2648, 390, '109.48257213497916', '24.305659825864616', '18.0', '15.0', '2020-08-31 12:57:10');
+INSERT INTO `t_order_position` VALUES (10166, 2, 2648, 390, '109.48285471564614', '24.306192199154452', '22.0', '15.0', '2020-08-31 12:57:15');
+INSERT INTO `t_order_position` VALUES (10167, 2, 2648, 390, '109.48315391510637', '24.30672452415357', '22.0', '15.0', '2020-08-31 12:57:20');
+INSERT INTO `t_order_position` VALUES (10168, 2, 2648, 390, '109.48343648856722', '24.30719024845585', '22.0', '15.0', '2020-08-31 12:57:25');
+INSERT INTO `t_order_position` VALUES (10169, 2, 2648, 390, '109.48368581608476', '24.307589419500264', '22.0', '15.0', '2020-08-31 12:57:35');
+INSERT INTO `t_order_position` VALUES (10170, 2, 2648, 390, '109.4839683894514', '24.308105126447657', '20.0', '15.0', '2020-08-31 12:57:40');
+INSERT INTO `t_order_position` VALUES (10171, 2, 2648, 390, '109.48430082722075', '24.308720659911852', '22.0', '15.0', '2020-08-31 12:57:45');
+INSERT INTO `t_order_position` VALUES (10172, 2, 2648, 390, '109.48461664098517', '24.30930291602093', '22.0', '15.0', '2020-08-31 12:57:50');
+INSERT INTO `t_order_position` VALUES (10173, 2, 2648, 390, '109.48489920735652', '24.309785295946504', '22.0', '15.0', '2020-08-31 12:57:55');
+INSERT INTO `t_order_position` VALUES (10174, 2, 2648, 390, '109.48538122362652', '24.31051702765038', '18.0', '15.0', '2020-08-31 12:58:05');
+INSERT INTO `t_order_position` VALUES (10175, 2, 2648, 390, '109.48564716154375', '24.31091614397277', '20.0', '15.0', '2020-08-31 12:58:10');
+INSERT INTO `t_order_position` VALUES (10176, 2, 2648, 390, '109.48609594093361', '24.31179792163357', '22.0', '15.0', '2020-08-31 12:58:20');
+INSERT INTO `t_order_position` VALUES (10177, 2, 2648, 390, '109.48639512199398', '24.312330233052865', '22.0', '15.0', '2020-08-31 12:58:25');
+INSERT INTO `t_order_position` VALUES (10178, 2, 2648, 390, '109.48672753917398', '24.312845785567557', '22.0', '15.0', '2020-08-31 12:58:30');
+INSERT INTO `t_order_position` VALUES (10179, 2, 2648, 390, '109.48701009676515', '24.313361481024486', '20.0', '15.0', '2020-08-31 12:58:35');
+INSERT INTO `t_order_position` VALUES (10180, 2, 2648, 390, '109.48734251142626', '24.313893692683617', '24.0', '15.0', '2020-08-31 12:58:40');
+INSERT INTO `t_order_position` VALUES (10181, 2, 2648, 390, '109.48769154619279', '24.314475839883105', '22.0', '15.0', '2020-08-31 12:58:45');
+INSERT INTO `t_order_position` VALUES (10182, 2, 2648, 390, '109.48807382169097', '24.315141197578853', '20.0', '15.0', '2020-08-31 12:58:50');
+INSERT INTO `t_order_position` VALUES (10183, 2, 2648, 390, '109.48840623540192', '24.315756713739685', '22.0', '15.0', '2020-08-31 12:58:55');
+INSERT INTO `t_order_position` VALUES (10184, 2, 2648, 390, '109.48867216261684', '24.316205805283584', '22.0', '15.0', '2020-08-31 12:59:00');
+INSERT INTO `t_order_position` VALUES (10185, 2, 2648, 390, '109.48897132714137', '24.316671460694007', '0.0', '15.0', '2020-08-31 12:59:21');
+INSERT INTO `t_order_position` VALUES (10186, 2, 2648, 390, '109.48940346047982', '24.31750328469389', '20.0', '15.0', '2020-08-31 12:59:56');
+INSERT INTO `t_order_position` VALUES (10187, 2, 2648, 390, '109.48973586359665', '24.318052149195008', '22.0', '15.0', '2020-08-31 13:00:01');
+INSERT INTO `t_order_position` VALUES (10188, 2, 2648, 390, '109.48998516704474', '24.318501285821743', '20.0', '15.0', '2020-08-31 13:00:06');
+INSERT INTO `t_order_position` VALUES (10189, 2, 2648, 390, '109.49026770833902', '24.31898364777011', '0.0', '15.0', '2020-08-31 13:00:26');
+INSERT INTO `t_order_position` VALUES (10190, 2, 2648, 390, '109.49058348132885', '24.319399264051828', '16.0', '15.0', '2020-08-31 13:01:06');
+INSERT INTO `t_order_position` VALUES (10191, 2, 2648, 390, '109.49081616161288', '24.31981512400611', '18.0', '15.0', '2020-08-31 13:01:41');
+INSERT INTO `t_order_position` VALUES (10192, 2, 2648, 390, '109.49106546611766', '24.32034756707265', '0.0', '15.0', '2020-08-31 13:01:51');
+INSERT INTO `t_order_position` VALUES (10193, 2, 2648, 390, '109.49068322778963', '24.320032118628866', '134.0', '15.0', '2020-08-31 13:02:12');
+INSERT INTO `t_order_position` VALUES (10194, 2, 2648, 390, '109.49043392294972', '24.31951633639016', '130.0', '15.0', '2020-08-31 13:03:02');
+INSERT INTO `t_order_position` VALUES (10195, 2, 2648, 390, '109.49008490087549', '24.318900875752608', '134.0', '15.0', '2020-08-31 13:03:07');
+INSERT INTO `t_order_position` VALUES (10196, 2, 2648, 390, '109.4898023607709', '24.318451836758857', '134.0', '15.0', '2020-08-31 13:03:12');
+INSERT INTO `t_order_position` VALUES (10197, 2, 2648, 390, '109.48940347587947', '24.317769872877324', '130.0', '15.0', '2020-08-31 13:03:22');
+INSERT INTO `t_order_position` VALUES (10198, 2, 2648, 390, '109.48915416934267', '24.317304072951835', '134.0', '15.0', '2020-08-31 13:03:42');
+INSERT INTO `t_order_position` VALUES (10199, 2, 2648, 390, '109.48862231873798', '24.316422553429682', '130.0', '15.0', '2020-08-31 13:03:52');
+INSERT INTO `t_order_position` VALUES (10200, 2, 2648, 390, '109.48828990904914', '24.31585702312995', '130.0', '15.0', '2020-08-31 13:03:57');
+INSERT INTO `t_order_position` VALUES (10201, 2, 2648, 390, '109.48797412044351', '24.31535809018424', '134.0', '15.0', '2020-08-31 13:04:02');
+INSERT INTO `t_order_position` VALUES (10202, 2, 2648, 390, '109.48770818835592', '24.314875672975212', '134.0', '15.0', '2020-08-31 13:04:07');
+INSERT INTO `t_order_position` VALUES (10203, 2, 2648, 390, '109.48739239677684', '24.31437673787464', '130.0', '15.0', '2020-08-31 13:04:12');
+INSERT INTO `t_order_position` VALUES (10204, 2, 2648, 390, '109.48715970440003', '24.313960869426207', '130.0', '15.0', '2020-08-31 13:04:17');
+INSERT INTO `t_order_position` VALUES (10205, 2, 2648, 390, '109.4868605272874', '24.313428560718503', '130.0', '15.0', '2020-08-31 13:04:22');
+INSERT INTO `t_order_position` VALUES (10206, 2, 2648, 390, '109.48659458929701', '24.312929478308348', '130.0', '15.0', '2020-08-31 13:04:27');
+INSERT INTO `t_order_position` VALUES (10207, 2, 2648, 390, '109.4863618937578', '24.312513607618907', '134.0', '15.0', '2020-08-31 13:04:32');
+INSERT INTO `t_order_position` VALUES (10208, 2, 2648, 390, '109.48607933588683', '24.312047894852952', '0.0', '15.0', '2020-08-31 13:04:53');
+INSERT INTO `t_order_position` VALUES (10209, 2, 2648, 390, '109.48573028856701', '24.311415755423944', '136.0', '15.0', '2020-08-31 13:05:18');
+INSERT INTO `t_order_position` VALUES (10210, 2, 2648, 390, '109.48543110877397', '24.310966749710214', '134.0', '15.0', '2020-08-31 13:05:23');
+INSERT INTO `t_order_position` VALUES (10211, 2, 2648, 390, '109.48516516498725', '24.310484324113993', '134.0', '15.0', '2020-08-31 13:05:28');
+INSERT INTO `t_order_position` VALUES (10212, 2, 2648, 390, '109.48493245960505', '24.31000180240398', '134.0', '15.0', '2020-08-31 13:05:33');
+INSERT INTO `t_order_position` VALUES (10213, 2, 2648, 390, '109.48460002971059', '24.30945291843199', '132.0', '15.0', '2020-08-31 13:05:38');
+INSERT INTO `t_order_position` VALUES (10214, 2, 2648, 390, '109.48431746462826', '24.30902052220228', '134.0', '15.0', '2020-08-31 13:05:43');
+INSERT INTO `t_order_position` VALUES (10215, 2, 2648, 390, '109.48396840874216', '24.308438359307146', '134.0', '15.0', '2020-08-31 13:06:48');
+INSERT INTO `t_order_position` VALUES (10216, 2, 2648, 390, '109.48348637172754', '24.30757332444967', '134.0', '15.0', '2020-08-31 13:06:58');
+INSERT INTO `t_order_position` VALUES (10217, 2, 2648, 390, '109.48318717620951', '24.307074324104942', '134.0', '15.0', '2020-08-31 13:07:04');
+INSERT INTO `t_order_position` VALUES (10218, 2, 2648, 390, '109.48290459746683', '24.306541952125837', '130.0', '15.0', '2020-08-31 13:07:09');
+INSERT INTO `t_order_position` VALUES (10219, 2, 2648, 390, '109.48255553268837', '24.30597644341806', '134.0', '15.0', '2020-08-31 13:07:14');
+INSERT INTO `t_order_position` VALUES (10220, 2, 2648, 390, '109.48222308806217', '24.3054442091661', '130.0', '15.0', '2020-08-31 13:07:19');
+INSERT INTO `t_order_position` VALUES (10221, 2, 2648, 390, '109.4819405046375', '24.30492849455142', '130.0', '15.0', '2020-08-31 13:07:24');
+INSERT INTO `t_order_position` VALUES (10222, 2, 2648, 390, '109.48157480989391', '24.304329703838345', '130.0', '15.0', '2020-08-31 13:07:29');
+INSERT INTO `t_order_position` VALUES (10223, 2, 2648, 390, '109.48117586907938', '24.303714342298885', '130.0', '15.0', '2020-08-31 13:07:34');
+INSERT INTO `t_order_position` VALUES (10224, 2, 2648, 390, '109.480826789511', '24.303115500478615', '130.0', '15.0', '2020-08-31 13:07:39');
+INSERT INTO `t_order_position` VALUES (10225, 2, 2648, 390, '109.48052757423304', '24.302566502464554', '134.0', '15.0', '2020-08-31 13:07:44');
+INSERT INTO `t_order_position` VALUES (10226, 2, 2648, 390, '109.48022835791264', '24.302034164493925', '134.0', '15.0', '2020-08-31 13:07:49');
+INSERT INTO `t_order_position` VALUES (10227, 2, 2648, 390, '109.47991252087567', '24.301551855730747', '140.0', '15.0', '2020-08-31 13:07:54');
+INSERT INTO `t_order_position` VALUES (10228, 2, 2648, 390, '109.4791312760319', '24.301154138075464', '130.0', '15.0', '2020-08-31 13:08:04');
+INSERT INTO `t_order_position` VALUES (10229, 2, 2648, 390, '109.47868250005517', '24.301455281138786', '162.0', '15.0', '2020-08-31 13:08:09');
+INSERT INTO `t_order_position` VALUES (10230, 2, 2648, 390, '109.47861604170295', '24.30197197216524', '26.0', '15.0', '2020-08-31 13:08:14');
+INSERT INTO `t_order_position` VALUES (10231, 2, 2648, 390, '109.4790981027835', '24.30237052375352', '62.0', '15.0', '2020-08-31 13:08:19');
+INSERT INTO `t_order_position` VALUES (10232, 2, 2648, 390, '109.47997903808704', '24.30208484137494', '78.0', '15.0', '2020-08-31 13:08:29');
+INSERT INTO `t_order_position` VALUES (10233, 2, 2648, 390, '109.48047766570971', '24.30180020918507', '80.0', '15.0', '2020-08-31 13:08:34');
+INSERT INTO `t_order_position` VALUES (10234, 2, 2648, 390, '109.48097628776986', '24.3015155721975', '78.0', '15.0', '2020-08-31 13:08:39');
+INSERT INTO `t_order_position` VALUES (10235, 2, 2648, 390, '109.48159124743752', '24.30116395806032', '80.0', '15.0', '2020-08-31 13:08:44');
+INSERT INTO `t_order_position` VALUES (10236, 2, 2648, 390, '109.48218957727488', '24.30079572220406', '78.0', '15.0', '2020-08-31 13:08:49');
+INSERT INTO `t_order_position` VALUES (10237, 2, 2648, 390, '109.48277128195531', '24.300477511543114', '78.0', '15.0', '2020-08-31 13:08:54');
+INSERT INTO `t_order_position` VALUES (10238, 2, 2648, 390, '109.48328650015048', '24.30019280658401', '78.0', '15.0', '2020-08-31 13:08:59');
+INSERT INTO `t_order_position` VALUES (10239, 2, 2648, 390, '109.48371861381933', '24.29994165647621', '80.0', '15.0', '2020-08-31 13:09:04');
+INSERT INTO `t_order_position` VALUES (10240, 2, 2648, 390, '109.48416734391898', '24.299690455856098', '78.0', '15.0', '2020-08-31 13:09:09');
+INSERT INTO `t_order_position` VALUES (10241, 2, 2648, 390, '109.4845994511465', '24.299455960955594', '68.0', '15.0', '2020-08-31 13:09:14');
+INSERT INTO `t_order_position` VALUES (10242, 2, 2648, 390, '109.4839845418207', '24.300024207529912', '134.0', '15.0', '2020-08-31 13:09:29');
+INSERT INTO `t_order_position` VALUES (10243, 2, 2648, 390, '109.483286513657', '24.30042606821055', '132.0', '15.0', '2020-08-31 13:09:34');
+INSERT INTO `t_order_position` VALUES (10244, 2, 2648, 390, '109.48232255280611', '24.300961963119317', '132.0', '15.0', '2020-08-31 13:09:39');
+INSERT INTO `t_order_position` VALUES (10245, 2, 2648, 390, '109.48155801996877', '24.30141397464275', '132.0', '15.0', '2020-08-31 13:09:45');
+INSERT INTO `t_order_position` VALUES (10246, 2, 2648, 390, '109.48084333542973', '24.301815851555354', '134.0', '15.0', '2020-08-31 13:09:50');
+INSERT INTO `t_order_position` VALUES (10247, 2, 2648, 390, '109.48016188261622', '24.302217626431563', '132.0', '15.0', '2020-08-31 13:09:55');
+INSERT INTO `t_order_position` VALUES (10248, 2, 2648, 390, '109.4794970400752', '24.302602684729578', '134.0', '15.0', '2020-08-31 13:10:00');
+INSERT INTO `t_order_position` VALUES (10249, 2, 2648, 390, '109.47881556721137', '24.30302110304249', '134.0', '15.0', '2020-08-31 13:10:05');
+INSERT INTO `t_order_position` VALUES (10250, 2, 2648, 390, '109.47808421547337', '24.30342298663811', '134.0', '15.0', '2020-08-31 13:10:10');
+INSERT INTO `t_order_position` VALUES (10251, 2, 2648, 390, '109.47735285458633', '24.30389150529408', '130.0', '15.0', '2020-08-31 13:10:15');
+INSERT INTO `t_order_position` VALUES (10252, 2, 2648, 390, '109.47677108047617', '24.304259638292113', '132.0', '15.0', '2020-08-31 13:10:20');
+INSERT INTO `t_order_position` VALUES (10253, 2, 2648, 390, '109.47630565249312', '24.304510819184394', '132.0', '15.0', '2020-08-31 13:10:25');
+INSERT INTO `t_order_position` VALUES (10254, 2, 2648, 390, '109.47575710647743', '24.304828864679084', '130.0', '15.0', '2020-08-31 13:10:30');
+INSERT INTO `t_order_position` VALUES (10255, 2, 2648, 390, '109.47525841827692', '24.305063462116014', '130.0', '15.0', '2020-08-31 13:10:35');
+INSERT INTO `t_order_position` VALUES (10256, 2, 2648, 390, '109.47461011642395', '24.30541508263095', '134.0', '15.0', '2020-08-31 13:10:40');
+INSERT INTO `t_order_position` VALUES (10257, 2, 2648, 390, '109.47386206337029', '24.30585026448454', '134.0', '15.0', '2020-08-31 13:10:45');
+INSERT INTO `t_order_position` VALUES (10258, 2, 2648, 390, '109.47313062027136', '24.306302050897973', '134.0', '15.0', '2020-08-31 13:10:50');
+INSERT INTO `t_order_position` VALUES (10259, 2, 2648, 390, '109.47249890598775', '24.30667025643063', '134.0', '15.0', '2020-08-31 13:10:55');
+INSERT INTO `t_order_position` VALUES (10260, 2, 2648, 390, '109.4719336785394', '24.307004956566452', '134.0', '15.0', '2020-08-31 13:11:00');
+INSERT INTO `t_order_position` VALUES (10261, 2, 2648, 390, '109.47130194140465', '24.30735648134042', '134.0', '15.0', '2020-08-31 13:11:05');
+INSERT INTO `t_order_position` VALUES (10262, 2, 2648, 390, '109.47063694400526', '24.307758065641284', '134.0', '15.0', '2020-08-31 13:11:10');
+INSERT INTO `t_order_position` VALUES (10263, 2, 2648, 390, '109.46987217993242', '24.30820987617663', '132.0', '15.0', '2020-08-31 13:11:15');
+INSERT INTO `t_order_position` VALUES (10264, 2, 2648, 390, '109.46924040351878', '24.30856136653469', '132.0', '15.0', '2020-08-31 13:11:20');
+INSERT INTO `t_order_position` VALUES (10265, 2, 2648, 390, '109.46860861564154', '24.308929507628932', '132.0', '15.0', '2020-08-31 13:11:25');
+INSERT INTO `t_order_position` VALUES (10266, 2, 2648, 390, '109.46804331942856', '24.309230825914184', '130.0', '15.0', '2020-08-31 13:11:30');
+INSERT INTO `t_order_position` VALUES (10267, 2, 2648, 390, '109.46754451833395', '24.30946532440208', '124.0', '15.0', '2020-08-31 13:11:35');
+INSERT INTO `t_order_position` VALUES (10268, 2, 2648, 390, '109.4670290796797', '24.309666533287984', '124.0', '15.0', '2020-08-31 13:11:40');
+INSERT INTO `t_order_position` VALUES (10269, 2, 2648, 390, '109.46649700641329', '24.309901098374997', '124.0', '15.0', '2020-08-31 13:11:45');
+INSERT INTO `t_order_position` VALUES (10270, 2, 2648, 390, '109.46541619640035', '24.31025361198508', '120.0', '15.0', '2020-08-31 13:11:56');
+INSERT INTO `t_order_position` VALUES (10271, 2, 2648, 390, '109.4648175763544', '24.310438325610498', '122.0', '15.0', '2020-08-31 13:12:01');
+INSERT INTO `t_order_position` VALUES (10272, 2, 2648, 390, '109.46418568377715', '24.310589783826295', '118.0', '15.0', '2020-08-31 13:12:06');
+INSERT INTO `t_order_position` VALUES (10273, 2, 2648, 390, '109.46358703347224', '24.310691166579574', '118.0', '15.0', '2020-08-31 13:12:11');
+INSERT INTO `t_order_position` VALUES (10274, 2, 2648, 390, '109.46298837156013', '24.310809199840556', '114.0', '15.0', '2020-08-31 13:12:16');
+INSERT INTO `t_order_position` VALUES (10275, 2, 2648, 390, '109.46222339230746', '24.31089428261323', '112.0', '15.0', '2020-08-31 13:12:26');
+INSERT INTO `t_order_position` VALUES (10276, 2, 2648, 390, '109.46099272428394', '24.310947082707575', '114.0', '15.0', '2020-08-31 13:12:41');
+INSERT INTO `t_order_position` VALUES (10277, 2, 2648, 390, '109.46024431614175', '24.31094877041408', '112.0', '15.0', '2020-08-31 13:12:46');
+INSERT INTO `t_order_position` VALUES (10278, 2, 2648, 390, '109.45956241695326', '24.310983615295612', '114.0', '15.0', '2020-08-31 13:12:51');
+INSERT INTO `t_order_position` VALUES (10279, 2, 2648, 390, '109.45878070481913', '24.31100200197107', '114.0', '15.0', '2020-08-31 13:13:01');
+INSERT INTO `t_order_position` VALUES (10280, 2, 2648, 390, '109.45799896742554', '24.310987044535942', '110.0', '15.0', '2020-08-31 13:13:11');
+INSERT INTO `t_order_position` VALUES (10281, 2, 2648, 390, '109.45738353936753', '24.310955048045354', '112.0', '15.0', '2020-08-31 13:13:16');
+INSERT INTO `t_order_position` VALUES (10282, 2, 2648, 390, '109.45685126607177', '24.31093952332158', '112.0', '15.0', '2020-08-31 13:13:36');
+INSERT INTO `t_order_position` VALUES (10283, 2, 2648, 390, '109.45769956498783', '24.310854398269925', '60.0', '15.0', '2020-08-31 13:14:22');
+INSERT INTO `t_order_position` VALUES (10284, 2, 2648, 390, '109.45843141052735', '24.31081948759622', '62.0', '15.0', '2020-08-31 13:14:32');
+INSERT INTO `t_order_position` VALUES (10285, 2, 2648, 390, '109.45926303144532', '24.310834323293975', '64.0', '15.0', '2020-08-31 13:14:47');
+INSERT INTO `t_order_position` VALUES (10286, 2, 2648, 390, '109.46002809769037', '24.310815961129858', '58.0', '15.0', '2020-08-31 13:14:57');
+INSERT INTO `t_order_position` VALUES (10287, 2, 2648, 390, '109.46075988160815', '24.310830978022988', '60.0', '15.0', '2020-08-31 13:15:07');
+INSERT INTO `t_order_position` VALUES (10288, 2, 2648, 390, '109.46137522727744', '24.310796257938474', '64.0', '15.0', '2020-08-31 13:15:17');
+INSERT INTO `t_order_position` VALUES (10289, 2, 2648, 390, '109.46077651961525', '24.310947572160202', '114.0', '15.0', '2020-08-31 13:15:52');
+INSERT INTO `t_order_position` VALUES (10290, 2, 2648, 390, '109.46017779094021', '24.310965581213114', '114.0', '15.0', '2020-08-31 13:15:57');
+INSERT INTO `t_order_position` VALUES (10291, 2, 2648, 390, '109.45962894466119', '24.310983467537202', '114.0', '15.0', '2020-08-31 13:16:02');
+INSERT INTO `t_order_position` VALUES (10292, 2, 2648, 390, '109.45883060112088', '24.31098523080604', '112.0', '15.0', '2020-08-31 13:16:12');
+INSERT INTO `t_order_position` VALUES (10293, 2, 2648, 390, '109.45824846129621', '24.311003164576785', '114.0', '15.0', '2020-08-31 13:16:17');
+INSERT INTO `t_order_position` VALUES (10294, 2, 2648, 390, '109.45763304113159', '24.311004496734743', '114.0', '15.0', '2020-08-31 13:16:22');
+INSERT INTO `t_order_position` VALUES (10295, 2, 2648, 390, '109.45695107187169', '24.311005957599438', '114.0', '15.0', '2020-08-31 13:16:27');
+INSERT INTO `t_order_position` VALUES (10296, 2, 2648, 390, '109.45626908533858', '24.311024063879835', '112.0', '15.0', '2020-08-31 13:16:32');
+INSERT INTO `t_order_position` VALUES (10297, 2, 2648, 390, '109.45573678766219', '24.31099185661675', '160.0', '15.0', '2020-08-31 13:16:37');
+INSERT INTO `t_order_position` VALUES (10298, 2, 2648, 390, '109.45512129395499', '24.310776532746235', '156.0', '15.0', '2020-08-31 13:16:47');
+INSERT INTO `t_order_position` VALUES (10299, 2, 2648, 390, '109.45433942712866', '24.310478226306362', '156.0', '15.0', '2020-08-31 13:16:58');
+INSERT INTO `t_order_position` VALUES (10300, 2, 2648, 390, '109.45345771793708', '24.310146774685656', '158.0', '15.0', '2020-08-31 13:17:08');
+INSERT INTO `t_order_position` VALUES (10301, 2, 2648, 390, '109.45254269967965', '24.309748713535416', '156.0', '15.0', '2020-08-31 13:17:18');
+INSERT INTO `t_order_position` VALUES (10302, 2, 2648, 390, '109.45162764848595', '24.309383944684768', '154.0', '15.0', '2020-08-31 13:17:28');
+INSERT INTO `t_order_position` VALUES (10303, 2, 2648, 390, '109.45077910851788', '24.30893570953891', '148.0', '15.0', '2020-08-31 13:17:38');
+INSERT INTO `t_order_position` VALUES (10304, 2, 2648, 390, '109.4501301942545', '24.30842042611358', '140.0', '15.0', '2020-08-31 13:17:48');
+INSERT INTO `t_order_position` VALUES (10305, 2, 2648, 390, '109.44954781195082', '24.307821695069403', '142.0', '15.0', '2020-08-31 13:17:58');
+INSERT INTO `t_order_position` VALUES (10306, 2, 2648, 390, '109.44919837710742', '24.30748910891297', '140.0', '15.0', '2020-08-31 13:18:03');
+INSERT INTO `t_order_position` VALUES (10307, 2, 2648, 390, '109.44871581320302', '24.306990145094247', '142.0', '15.0', '2020-08-31 13:18:13');
+INSERT INTO `t_order_position` VALUES (10308, 2, 2648, 390, '109.44829980253883', '24.306574360216885', '142.0', '15.0', '2020-08-31 13:18:23');
+INSERT INTO `t_order_position` VALUES (10309, 2, 2648, 390, '109.44773402173313', '24.30610885181606', '144.0', '15.0', '2020-08-31 13:18:43');
+INSERT INTO `t_order_position` VALUES (10310, 2, 2648, 390, '109.4473346354139', '24.305726344964828', '144.0', '15.0', '2020-08-31 13:18:53');
+INSERT INTO `t_order_position` VALUES (10311, 2, 2648, 390, '109.4466024041202', '24.304944535241745', '140.0', '15.0', '2020-08-31 13:19:03');
+INSERT INTO `t_order_position` VALUES (10312, 2, 2648, 390, '109.44588679327948', '24.304212660922452', '140.0', '15.0', '2020-08-31 13:19:13');
+INSERT INTO `t_order_position` VALUES (10313, 2, 2648, 390, '109.44553730203845', '24.303880025269002', '146.0', '15.0', '2020-08-31 13:19:19');
+INSERT INTO `t_order_position` VALUES (10314, 2, 2648, 390, '109.44483831185379', '24.30336469368462', '150.0', '15.0', '2020-08-31 13:19:29');
+INSERT INTO `t_order_position` VALUES (10315, 2, 2648, 390, '109.44418923735526', '24.303015876248356', '156.0', '15.0', '2020-08-31 13:19:39');
+INSERT INTO `t_order_position` VALUES (10316, 2, 2648, 390, '109.4434236462277', '24.30275053779955', '100.0', '15.0', '2020-08-31 13:19:49');
+INSERT INTO `t_order_position` VALUES (10317, 2, 2648, 390, '109.44284111930119', '24.302651500899668', '164.0', '15.0', '2020-08-31 13:19:59');
+INSERT INTO `t_order_position` VALUES (10318, 2, 2648, 390, '109.44199226613298', '24.302502880567253', '104.0', '15.0', '2020-08-31 13:20:09');
+INSERT INTO `t_order_position` VALUES (10319, 2, 2648, 390, '109.44147628267991', '24.30245369201825', '100.0', '15.0', '2020-08-31 13:20:14');
+INSERT INTO `t_order_position` VALUES (10320, 2, 2648, 390, '109.44096028489264', '24.302371169250026', '132.0', '15.0', '2020-08-31 13:20:24');
+INSERT INTO `t_order_position` VALUES (10321, 2, 2648, 390, '109.44079387005154', '24.30300455988257', '0.0', '15.0', '2020-08-31 13:20:39');
+INSERT INTO `t_order_position` VALUES (10322, 2, 2648, 390, '109.44082721820004', '24.303987543160606', '2.0', '15.0', '2020-08-31 13:20:49');
+INSERT INTO `t_order_position` VALUES (10323, 2, 2648, 390, '109.44087719977406', '24.30477056283267', '0.0', '15.0', '2020-08-31 13:20:59');
+INSERT INTO `t_order_position` VALUES (10324, 2, 2648, 390, '109.44087723495082', '24.305370380497596', '166.0', '15.0', '2020-08-31 13:21:14');
+INSERT INTO `t_order_position` VALUES (10325, 2, 2648, 390, '109.44079405082309', '24.30608695501976', '162.0', '15.0', '2020-08-31 13:21:24');
+INSERT INTO `t_order_position` VALUES (10326, 2, 2648, 390, '109.44067758155836', '24.306903549297786', '164.0', '15.0', '2020-08-31 13:21:34');
+INSERT INTO `t_order_position` VALUES (10327, 2, 2648, 390, '109.44071091816325', '24.30768659595766', '0.0', '13.0', '2020-08-31 13:21:45');
+INSERT INTO `t_order_position` VALUES (10328, 2, 2648, 390, '109.4411437118003', '24.308019175496423', '0.0', '8.0', '2020-08-31 13:22:10');
+INSERT INTO `t_order_position` VALUES (10329, 2, 2648, 390, '109.44086076758809', '24.30840282120482', '20.0', '12.0', '2020-08-31 13:22:30');
+INSERT INTO `t_order_position` VALUES (10330, 2, 2648, 390, '109.4417762550737', '24.30875131907436', '58.0', '15.0', '2020-08-31 13:22:40');
+INSERT INTO `t_order_position` VALUES (10331, 2, 2648, 390, '109.44254188946277', '24.308766785848828', '60.0', '15.0', '2020-08-31 13:22:45');
+INSERT INTO `t_order_position` VALUES (10332, 2, 2648, 390, '109.44324092244516', '24.308765673743718', '64.0', '15.0', '2020-08-31 13:22:50');
+INSERT INTO `t_order_position` VALUES (10333, 2, 2648, 390, '109.44370691342253', '24.30844834992385', '112.0', '15.0', '2020-08-31 13:23:00');
+INSERT INTO `t_order_position` VALUES (10334, 2, 2648, 390, '109.44369023914373', '24.307915204458325', '114.0', '15.0', '2020-08-31 13:23:05');
+INSERT INTO `t_order_position` VALUES (10335, 2, 2648, 390, '109.44367354727291', '24.307082149878124', '104.0', '15.0', '2020-08-31 13:23:15');
+INSERT INTO `t_order_position` VALUES (10336, 2, 2648, 390, '109.4438898794333', '24.30663193390672', '84.0', '15.0', '2020-08-31 13:23:20');
+INSERT INTO `t_order_position` VALUES (10337, 2, 2648, 390, '109.44428928640569', '24.30631470805161', '82.0', '15.0', '2020-08-31 13:23:25');
+INSERT INTO `t_order_position` VALUES (10338, 2, 2648, 390, '109.44507144055791', '24.305746911531298', '84.0', '15.0', '2020-08-31 13:23:35');
+INSERT INTO `t_order_position` VALUES (10339, 2, 2648, 390, '109.44550410659396', '24.305379625470337', '82.0', '15.0', '2020-08-31 13:23:40');
+INSERT INTO `t_order_position` VALUES (10340, 2, 2648, 390, '109.44606989846741', '24.305078749736488', '70.0', '15.0', '2020-08-31 13:23:50');
+INSERT INTO `t_order_position` VALUES (10341, 2, 2648, 390, '109.4463028444043', '24.30456183832707', '140.0', '15.0', '2020-08-31 13:24:11');
+INSERT INTO `t_order_position` VALUES (10342, 2, 2648, 390, '109.44577029355415', '24.304046244274524', '144.0', '15.0', '2020-08-31 13:24:16');
+INSERT INTO `t_order_position` VALUES (10343, 2, 2648, 390, '109.44518780725929', '24.303580707955355', '148.0', '15.0', '2020-08-31 13:24:21');
+INSERT INTO `t_order_position` VALUES (10344, 2, 2648, 390, '109.44470516924807', '24.303281607835487', '154.0', '15.0', '2020-08-31 13:24:26');
+INSERT INTO `t_order_position` VALUES (10345, 2, 2648, 390, '109.44423916624096', '24.30303245568498', '154.0', '15.0', '2020-08-31 13:24:31');
+INSERT INTO `t_order_position` VALUES (10346, 2, 2648, 390, '109.44372322829624', '24.302850022235223', '162.0', '15.0', '2020-08-31 13:24:36');
+INSERT INTO `t_order_position` VALUES (10347, 2, 2648, 390, '109.44322392256642', '24.302684212804362', '160.0', '15.0', '2020-08-31 13:24:46');
+INSERT INTO `t_order_position` VALUES (10348, 2, 2648, 390, '109.44257481387797', '24.30256861469492', '0.0', '15.0', '2020-08-31 13:25:06');
+INSERT INTO `t_order_position` VALUES (10349, 2, 2648, 390, '109.44202555575191', '24.30251949039284', '100.0', '15.0', '2020-08-31 13:25:31');
+INSERT INTO `t_order_position` VALUES (10350, 2, 2648, 390, '109.44124324734697', '24.30232075539415', '100.0', '15.0', '2020-08-31 13:25:51');
+INSERT INTO `t_order_position` VALUES (10351, 2, 2648, 390, '109.44067730599814', '24.302204979378974', '152.0', '15.0', '2020-08-31 13:26:01');
+INSERT INTO `t_order_position` VALUES (10352, 2, 2648, 390, '109.44032772337077', '24.301738976958763', '132.0', '15.0', '2020-08-31 13:26:11');
+INSERT INTO `t_order_position` VALUES (10353, 2, 2648, 390, '109.44002805701103', '24.301006311278908', '124.0', '15.0', '2020-08-31 13:26:21');
+INSERT INTO `t_order_position` VALUES (10354, 2, 2648, 390, '109.43989486333196', '24.30055664504026', '122.0', '15.0', '2020-08-31 13:26:26');
+INSERT INTO `t_order_position` VALUES (10355, 2, 2648, 390, '109.43969506391718', '24.299757183028838', '122.0', '15.0', '2020-08-31 13:26:36');
+INSERT INTO `t_order_position` VALUES (10356, 2, 2648, 390, '109.43954521996221', '24.299274216432686', '122.0', '15.0', '2020-08-31 13:26:41');
+INSERT INTO `t_order_position` VALUES (10357, 2, 2648, 390, '109.43944531591065', '24.29882449990364', '124.0', '15.0', '2020-08-31 13:26:47');
+INSERT INTO `t_order_position` VALUES (10358, 2, 2648, 390, '109.43932874837091', '24.29809156130261', '118.0', '15.0', '2020-08-31 13:26:52');
+INSERT INTO `t_order_position` VALUES (10359, 2, 2648, 390, '109.43931206872603', '24.297525093860163', '116.0', '15.0', '2020-08-31 13:26:57');
+INSERT INTO `t_order_position` VALUES (10360, 2, 2648, 390, '109.43932868288822', '24.29697524015694', '116.0', '15.0', '2020-08-31 13:27:07');
+INSERT INTO `t_order_position` VALUES (10361, 2, 2648, 390, '109.43929536170204', '24.29649210464231', '150.0', '15.0', '2020-08-31 13:27:22');
+INSERT INTO `t_order_position` VALUES (10362, 2, 2648, 390, '109.43846303042376', '24.29660991947725', '134.0', '15.0', '2020-08-31 13:27:37');
+INSERT INTO `t_order_position` VALUES (10363, 2, 2648, 390, '109.43801357078912', '24.296893792284916', '134.0', '15.0', '2020-08-31 13:27:42');
+INSERT INTO `t_order_position` VALUES (10364, 2, 2648, 390, '109.43748086430793', '24.297211093164748', '134.0', '15.0', '2020-08-31 13:27:47');
+INSERT INTO `t_order_position` VALUES (10365, 2, 2648, 390, '109.4370147344061', '24.297478308085726', '114.0', '15.0', '2020-08-31 13:27:52');
+INSERT INTO `t_order_position` VALUES (10366, 2, 2648, 390, '109.43634879706528', '24.297529177571835', '110.0', '15.0', '2020-08-31 13:27:57');
+INSERT INTO `t_order_position` VALUES (10367, 2, 2648, 390, '109.43581602949132', '24.297529871778785', '110.0', '15.0', '2020-08-31 13:28:02');
+INSERT INTO `t_order_position` VALUES (10368, 2, 2648, 390, '109.43521665155669', '24.297563961110363', '112.0', '15.0', '2020-08-31 13:28:07');
+INSERT INTO `t_order_position` VALUES (10369, 2, 2648, 390, '109.43456730567544', '24.2975980967147', '112.0', '15.0', '2020-08-31 13:28:12');
+INSERT INTO `t_order_position` VALUES (10370, 2, 2648, 390, '109.43395123977949', '24.29761551217399', '112.0', '15.0', '2020-08-31 13:28:17');
+INSERT INTO `t_order_position` VALUES (10371, 2, 2648, 390, '109.43336845484819', '24.297582887097505', '110.0', '15.0', '2020-08-31 13:28:22');
+INSERT INTO `t_order_position` VALUES (10372, 2, 2648, 390, '109.43276900166903', '24.29755026644904', '112.0', '15.0', '2020-08-31 13:28:27');
+INSERT INTO `t_order_position` VALUES (10373, 2, 2648, 390, '109.43213622850934', '24.297550990724805', '114.0', '15.0', '2020-08-31 13:28:32');
+INSERT INTO `t_order_position` VALUES (10374, 2, 2648, 390, '109.43140352118998', '24.297585130354303', '112.0', '15.0', '2020-08-31 13:28:37');
+INSERT INTO `t_order_position` VALUES (10375, 2, 2648, 390, '109.43070409221913', '24.297585887731575', '114.0', '15.0', '2020-08-31 13:28:42');
+INSERT INTO `t_order_position` VALUES (10376, 2, 2648, 390, '109.43003794791284', '24.297603250416596', '112.0', '15.0', '2020-08-31 13:28:47');
+INSERT INTO `t_order_position` VALUES (10377, 2, 2648, 390, '109.42927185368214', '24.297604032416515', '108.0', '15.0', '2020-08-31 13:28:53');
+INSERT INTO `t_order_position` VALUES (10378, 2, 2648, 390, '109.42868893345863', '24.29755462539493', '104.0', '15.0', '2020-08-31 13:28:57');
+INSERT INTO `t_order_position` VALUES (10379, 2, 2648, 390, '109.42805602683637', '24.29745526619775', '100.0', '15.0', '2020-08-31 13:29:02');
+INSERT INTO `t_order_position` VALUES (10380, 2, 2648, 390, '109.42735647293925', '24.297305965867572', '160.0', '15.0', '2020-08-31 13:29:07');
+INSERT INTO `t_order_position` VALUES (10381, 2, 2648, 390, '109.42679014588967', '24.29712320208226', '154.0', '15.0', '2020-08-31 13:29:12');
+INSERT INTO `t_order_position` VALUES (10382, 2, 2648, 390, '109.42629042804438', '24.296890381555638', '152.0', '15.0', '2020-08-31 13:29:17');
+INSERT INTO `t_order_position` VALUES (10383, 2, 2648, 390, '109.42577404027547', '24.296657563984592', '152.0', '15.0', '2020-08-31 13:29:22');
+INSERT INTO `t_order_position` VALUES (10384, 2, 2648, 390, '109.42534092835365', '24.29642466569926', '152.0', '15.0', '2020-08-31 13:29:28');
+INSERT INTO `t_order_position` VALUES (10385, 2, 2648, 390, '109.42470790314557', '24.29610861221323', '120.0', '15.0', '2020-08-31 13:29:38');
+INSERT INTO `t_order_position` VALUES (10386, 2, 2648, 390, '109.42404158904397', '24.29662564109261', '140.0', '15.0', '2020-08-31 13:29:48');
+INSERT INTO `t_order_position` VALUES (10387, 2, 2648, 390, '109.42367511849024', '24.29710910349695', '146.0', '15.0', '2020-08-31 13:29:53');
+INSERT INTO `t_order_position` VALUES (10388, 2, 2648, 390, '109.42340859404251', '24.297525840175883', '146.0', '15.0', '2020-08-31 13:29:58');
+INSERT INTO `t_order_position` VALUES (10389, 2, 2648, 390, '109.42310874573396', '24.297925936514414', '150.0', '15.0', '2020-08-31 13:30:03');
+INSERT INTO `t_order_position` VALUES (10390, 2, 2648, 390, '109.42264231649499', '24.298726023676537', '148.0', '15.0', '2020-08-31 13:30:13');
+INSERT INTO `t_order_position` VALUES (10391, 2, 2648, 390, '109.42230913990097', '24.2991927791637', '150.0', '15.0', '2020-08-31 13:30:18');
+INSERT INTO `t_order_position` VALUES (10392, 2, 2648, 390, '109.42197596164098', '24.29972617594153', '148.0', '15.0', '2020-08-31 13:30:23');
+INSERT INTO `t_order_position` VALUES (10393, 2, 2648, 390, '109.42157614486207', '24.30044288883683', '148.0', '15.0', '2020-08-31 13:30:28');
+INSERT INTO `t_order_position` VALUES (10394, 2, 2648, 390, '109.42112633610718', '24.301159626811327', '148.0', '15.0', '2020-08-31 13:30:33');
+INSERT INTO `t_order_position` VALUES (10395, 2, 2648, 390, '109.42079313507872', '24.301643021880423', '150.0', '15.0', '2020-08-31 13:30:38');
+INSERT INTO `t_order_position` VALUES (10396, 2, 2648, 390, '109.42044327244007', '24.302226391615132', '148.0', '15.0', '2020-08-31 13:30:43');
+INSERT INTO `t_order_position` VALUES (10397, 2, 2648, 390, '109.42011006289236', '24.302759761498994', '150.0', '15.0', '2020-08-31 13:30:48');
+INSERT INTO `t_order_position` VALUES (10398, 2, 2648, 390, '109.41969354015917', '24.30337648235138', '152.0', '15.0', '2020-08-31 13:30:58');
+INSERT INTO `t_order_position` VALUES (10399, 2, 2648, 390, '109.41942699659714', '24.30437632864951', '160.0', '15.0', '2020-08-31 13:31:08');
+INSERT INTO `t_order_position` VALUES (10400, 2, 2648, 390, '109.4192604016267', '24.30494291573001', '160.0', '15.0', '2020-08-31 13:31:13');
+INSERT INTO `t_order_position` VALUES (10401, 2, 2648, 390, '109.41907714025669', '24.305476187666766', '160.0', '15.0', '2020-08-31 13:31:18');
+INSERT INTO `t_order_position` VALUES (10402, 2, 2648, 390, '109.41894387262232', '24.30610940109792', '160.0', '15.0', '2020-08-31 13:31:23');
+INSERT INTO `t_order_position` VALUES (10403, 2, 2648, 390, '109.41881059919686', '24.306659305916284', '160.0', '15.0', '2020-08-31 13:31:28');
+INSERT INTO `t_order_position` VALUES (10404, 2, 2648, 390, '109.4186106800366', '24.30735919983169', '162.0', '15.0', '2020-08-31 13:31:33');
+INSERT INTO `t_order_position` VALUES (10405, 2, 2648, 390, '109.41844408507616', '24.30804241348731', '162.0', '15.0', '2020-08-31 13:31:38');
+INSERT INTO `t_order_position` VALUES (10406, 2, 2648, 390, '109.41832747492258', '24.308642292516698', '162.0', '15.0', '2020-08-31 13:31:44');
+INSERT INTO `t_order_position` VALUES (10407, 2, 2648, 390, '109.41821086114628', '24.30919218624217', '160.0', '15.0', '2020-08-31 13:31:48');
+INSERT INTO `t_order_position` VALUES (10408, 2, 2648, 390, '109.41807758280368', '24.309742087913595', '158.0', '15.0', '2020-08-31 13:31:54');
+INSERT INTO `t_order_position` VALUES (10409, 2, 2648, 390, '109.41791097455844', '24.3102753437723', '160.0', '15.0', '2020-08-31 13:31:58');
+INSERT INTO `t_order_position` VALUES (10410, 2, 2648, 390, '109.41777769224565', '24.31079192074029', '160.0', '15.0', '2020-08-31 13:32:03');
+INSERT INTO `t_order_position` VALUES (10411, 2, 2648, 390, '109.41766107230472', '24.31129182742031', '162.0', '15.0', '2020-08-31 13:32:08');
+INSERT INTO `t_order_position` VALUES (10412, 2, 2648, 390, '109.41757778032346', '24.31179171779727', '160.0', '15.0', '2020-08-31 13:32:13');
+INSERT INTO `t_order_position` VALUES (10413, 2, 2648, 390, '109.41736118721596', '24.31254159615437', '158.0', '15.0', '2020-08-31 13:32:23');
+INSERT INTO `t_order_position` VALUES (10414, 2, 2648, 390, '109.41717792498092', '24.31335810436176', '162.0', '15.0', '2020-08-31 13:32:34');
+INSERT INTO `t_order_position` VALUES (10415, 2, 2648, 390, '109.41697798351966', '24.31395801678318', '140.0', '15.0', '2020-08-31 13:32:44');
+INSERT INTO `t_order_position` VALUES (10416, 2, 2648, 390, '109.41714459958466', '24.313424766459477', '90.0', '15.0', '2020-08-31 13:34:04');
+INSERT INTO `t_order_position` VALUES (10417, 2, 2648, 390, '109.41697798547864', '24.313991340208844', '138.0', '15.0', '2020-08-31 13:34:49');
+INSERT INTO `t_order_position` VALUES (10418, 2, 2648, 390, '109.41656138337777', '24.314374743253868', '134.0', '15.0', '2020-08-31 13:34:54');
+INSERT INTO `t_order_position` VALUES (10419, 2, 2648, 390, '109.41564481669668', '24.315024926765524', '136.0', '15.0', '2020-08-31 13:35:04');
+INSERT INTO `t_order_position` VALUES (10420, 2, 2648, 390, '109.41521151747818', '24.315358326068875', '130.0', '15.0', '2020-08-31 13:35:10');
+INSERT INTO `t_order_position` VALUES (10421, 2, 2648, 390, '109.41456154413625', '24.31574177718782', '132.0', '15.0', '2020-08-31 13:35:15');
+INSERT INTO `t_order_position` VALUES (10422, 2, 2648, 390, '109.41404488230106', '24.316025196992822', '130.0', '15.0', '2020-08-31 13:35:21');
+INSERT INTO `t_order_position` VALUES (10423, 2, 2648, 390, '109.41347821081328', '24.31642525175383', '162.0', '15.0', '2020-08-31 13:35:30');
+INSERT INTO `t_order_position` VALUES (10424, 2, 2648, 390, '109.41341158971322', '24.317275020372257', '164.0', '15.0', '2020-08-31 13:35:40');
+INSERT INTO `t_order_position` VALUES (10425, 2, 2648, 390, '109.41327828023915', '24.317841558362673', '0.0', '15.0', '2020-08-31 13:36:00');
+INSERT INTO `t_order_position` VALUES (10426, 2, 2648, 390, '109.41312830381476', '24.318441423960973', '4.0', '15.0', '2020-08-31 13:36:26');
+INSERT INTO `t_order_position` VALUES (10427, 2, 2648, 390, '109.41319501499578', '24.319107876364434', '12.0', '15.0', '2020-08-31 13:36:30');
+INSERT INTO `t_order_position` VALUES (10428, 2, 2648, 390, '109.41344505750523', '24.319524349532188', '0.0', '15.0', '2020-08-31 13:36:50');
+INSERT INTO `t_order_position` VALUES (10429, 2, 2648, 390, '109.41291171133675', '24.320024351971053', '112.0', '15.0', '2020-08-31 13:38:36');
+INSERT INTO `t_order_position` VALUES (10430, 2, 2648, 390, '109.41216162401277', '24.31995789255196', '110.0', '15.0', '2020-08-31 13:38:41');
+INSERT INTO `t_order_position` VALUES (10431, 2, 2648, 390, '109.41136150511636', '24.319974726865883', '112.0', '15.0', '2020-08-31 13:38:46');
+INSERT INTO `t_order_position` VALUES (10432, 2, 2648, 390, '109.41052801795203', '24.320058185154085', '116.0', '15.0', '2020-08-31 13:38:51');
+INSERT INTO `t_order_position` VALUES (10433, 2, 2648, 390, '109.40962781663065', '24.320208267836236', '118.0', '12.0', '2020-08-31 13:38:56');
+INSERT INTO `t_order_position` VALUES (10434, 2, 2648, 390, '109.40871088787463', '24.320091727235024', '110.0', '15.0', '2020-08-31 13:39:01');
+INSERT INTO `t_order_position` VALUES (10435, 2, 2648, 390, '109.40807734222466', '24.319891827555633', '112.0', '15.0', '2020-08-31 13:39:06');
+INSERT INTO `t_order_position` VALUES (10436, 2, 2648, 390, '109.407460470119', '24.320041807340484', '0.0', '15.0', '2020-08-31 13:39:16');
+INSERT INTO `t_order_position` VALUES (10437, 2, 2648, 390, '109.40706034368378', '24.320425034976886', '136.0', '15.0', '2020-08-31 13:40:01');
+INSERT INTO `t_order_position` VALUES (10438, 2, 2648, 390, '109.40639344266819', '24.320958207582372', '144.0', '15.0', '2020-08-31 13:40:11');
+INSERT INTO `t_order_position` VALUES (10439, 2, 2648, 390, '109.40587657865409', '24.321358073655688', '136.0', '15.0', '2020-08-31 13:40:21');
+INSERT INTO `t_order_position` VALUES (10440, 2, 2648, 390, '109.4052263214973', '24.322024507853875', '132.0', '15.0', '2020-08-31 13:40:31');
+INSERT INTO `t_order_position` VALUES (10441, 2, 2648, 390, '109.40480947463553', '24.32237437181685', '132.0', '15.0', '2020-08-31 13:40:42');
+INSERT INTO `t_order_position` VALUES (10442, 2, 2648, 390, '109.4042758926081', '24.32272421527769', '122.0', '15.0', '2020-08-31 13:41:07');
+INSERT INTO `t_order_position` VALUES (10443, 2, 2648, 390, '109.4036922705625', '24.323090701398467', '138.0', '15.0', '2020-08-31 13:41:17');
+INSERT INTO `t_order_position` VALUES (10444, 2, 2648, 390, '109.40300856467206', '24.32329053788308', '140.0', '15.0', '2020-08-31 13:41:27');
+INSERT INTO `t_order_position` VALUES (10445, 2, 2648, 390, '109.40289186833226', '24.32394032947908', '2.0', '15.0', '2020-08-31 13:41:37');
+INSERT INTO `t_order_position` VALUES (10446, 2, 2648, 390, '109.40297529915719', '24.324773436139566', '4.0', '15.0', '2020-08-31 13:41:47');
+INSERT INTO `t_order_position` VALUES (10447, 2, 2648, 390, '109.40307540493775', '24.32558988395722', '12.0', '15.0', '2020-08-31 13:41:57');
+INSERT INTO `t_order_position` VALUES (10448, 2, 2648, 390, '109.4034423156688', '24.326206431054487', '22.0', '15.0', '2020-08-31 13:42:07');
+INSERT INTO `t_order_position` VALUES (10449, 2, 2648, 390, '109.40379253249858', '24.32662302787364', '26.0', '15.0', '2020-08-31 13:42:12');
+INSERT INTO `t_order_position` VALUES (10450, 2, 2648, 390, '109.40422612516694', '24.32712293879716', '24.0', '15.0', '2020-08-31 13:42:22');
+INSERT INTO `t_order_position` VALUES (10451, 2, 2648, 390, '109.40459301457543', '24.32772280649909', '12.0', '15.0', '2020-08-31 13:42:37');
+INSERT INTO `t_order_position` VALUES (10452, 2, 2648, 390, '109.404909887866', '24.328572592846278', '10.0', '15.0', '2020-08-31 13:42:47');
+INSERT INTO `t_order_position` VALUES (10453, 2, 2648, 390, '109.40499329393903', '24.329122442784843', '10.0', '15.0', '2020-08-31 13:42:58');
+INSERT INTO `t_order_position` VALUES (10454, 2, 2648, 390, '109.40509338019466', '24.32977226547672', '6.0', '15.0', '2020-08-31 13:43:08');
+INSERT INTO `t_order_position` VALUES (10455, 2, 2648, 390, '109.40529351403694', '24.330438757223675', '14.0', '15.0', '2020-08-31 13:43:18');
+INSERT INTO `t_order_position` VALUES (10456, 2, 2648, 390, '109.40544361118455', '24.330905301256127', '14.0', '15.0', '2020-08-31 13:43:33');
+INSERT INTO `t_order_position` VALUES (10457, 2, 2648, 390, '109.40561039909073', '24.331671760341884', '2.0', '15.0', '2020-08-31 13:43:43');
+INSERT INTO `t_order_position` VALUES (10458, 2, 2648, 390, '109.40559377383222', '24.33250485676618', '0.0', '15.0', '2020-08-31 13:43:53');
+INSERT INTO `t_order_position` VALUES (10459, 2, 2648, 390, '109.40559380223284', '24.332988053492965', '0.0', '15.0', '2020-08-31 13:43:58');
+INSERT INTO `t_order_position` VALUES (10460, 2, 2648, 390, '109.40556048116358', '24.333454586514183', '162.0', '15.0', '2020-08-31 13:44:08');
+INSERT INTO `t_order_position` VALUES (10461, 2, 2648, 390, '109.40542712779191', '24.334154381071738', '160.0', '15.0', '2020-08-31 13:44:18');
+INSERT INTO `t_order_position` VALUES (10462, 2, 2648, 390, '109.4055438196293', '24.333671191103146', '110.0', '15.0', '2020-08-31 13:44:53');
+INSERT INTO `t_order_position` VALUES (10463, 2, 2648, 390, '109.40561048429252', '24.33312135011912', '20.0', '15.0', '2020-08-31 13:45:13');
+INSERT INTO `t_order_position` VALUES (10464, 2, 2648, 390, '109.40547714789422', '24.334104398309865', '162.0', '15.0', '2020-08-31 13:45:44');
+INSERT INTO `t_order_position` VALUES (10465, 2, 2648, 390, '109.405393806452', '24.334620914284372', '166.0', '15.0', '2020-08-31 13:45:49');
+INSERT INTO `t_order_position` VALUES (10466, 2, 2648, 390, '109.40562729169459', '24.335387379804303', '64.0', '15.0', '2020-08-31 13:45:59');
+INSERT INTO `t_order_position` VALUES (10467, 2, 2648, 390, '109.40636094163915', '24.335354084831792', '64.0', '15.0', '2020-08-31 13:46:04');
+INSERT INTO `t_order_position` VALUES (10468, 2, 2648, 390, '109.4072112750637', '24.3353041029913', '62.0', '15.0', '2020-08-31 13:46:09');
+INSERT INTO `t_order_position` VALUES (10469, 2, 2648, 390, '109.40806157403155', '24.335270751362447', '62.0', '15.0', '2020-08-31 13:46:14');
+INSERT INTO `t_order_position` VALUES (10470, 2, 2648, 390, '109.40872844890568', '24.33522072139931', '62.0', '15.0', '2020-08-31 13:46:19');
+INSERT INTO `t_order_position` VALUES (10471, 2, 2648, 390, '109.4095786696544', '24.33493738299401', '40.0', '15.0', '2020-08-31 13:46:29');
+INSERT INTO `t_order_position` VALUES (10472, 2, 2648, 390, '109.41014548452654', '24.335103928630172', '64.0', '15.0', '2020-08-31 13:46:34');
+INSERT INTO `t_order_position` VALUES (10473, 2, 2648, 390, '109.41087897040345', '24.335053825409076', '64.0', '15.0', '2020-08-31 13:46:39');
+INSERT INTO `t_order_position` VALUES (10474, 2, 2648, 390, '109.4118624663567', '24.334986982600746', '64.0', '15.0', '2020-08-31 13:46:44');
+INSERT INTO `t_order_position` VALUES (10475, 2, 2648, 390, '109.41254588509597', '24.334953497772318', '62.0', '15.0', '2020-08-31 13:46:49');
+INSERT INTO `t_order_position` VALUES (10476, 2, 2648, 390, '109.41321261355849', '24.334936658706717', '62.0', '15.0', '2020-08-31 13:46:54');
+INSERT INTO `t_order_position` VALUES (10477, 2, 2648, 390, '109.41387931882613', '24.334903137728176', '60.0', '15.0', '2020-08-31 13:46:59');
+INSERT INTO `t_order_position` VALUES (10478, 2, 2648, 390, '109.41462933492605', '24.334852906285892', '64.0', '15.0', '2020-08-31 13:47:04');
+INSERT INTO `t_order_position` VALUES (10479, 2, 2648, 390, '109.4154293202409', '24.334785968619943', '62.0', '15.0', '2020-08-31 13:47:09');
+INSERT INTO `t_order_position` VALUES (10480, 2, 2648, 390, '109.41602928913277', '24.33475240845037', '60.0', '15.0', '2020-08-31 13:47:14');
+INSERT INTO `t_order_position` VALUES (10481, 2, 2648, 390, '109.41657924751075', '24.334768839665923', '58.0', '15.0', '2020-08-31 13:47:19');
+INSERT INTO `t_order_position` VALUES (10482, 2, 2648, 390, '109.41722917756488', '24.334768549359328', '58.0', '15.0', '2020-08-31 13:47:24');
+INSERT INTO `t_order_position` VALUES (10483, 2, 2648, 390, '109.41786242329206', '24.334784910149118', '58.0', '15.0', '2020-08-31 13:47:29');
+INSERT INTO `t_order_position` VALUES (10484, 2, 2648, 390, '109.41842899359503', '24.334784625317795', '58.0', '15.0', '2020-08-31 13:47:34');
+INSERT INTO `t_order_position` VALUES (10485, 2, 2648, 390, '109.41904553899559', '24.334817622851872', '56.0', '15.0', '2020-08-31 13:47:40');
+INSERT INTO `t_order_position` VALUES (10486, 2, 2648, 390, '109.4196953903508', '24.334850584156598', '60.0', '15.0', '2020-08-31 13:47:45');
+INSERT INTO `t_order_position` VALUES (10487, 2, 2648, 390, '109.42042852824385', '24.334850152098117', '58.0', '15.0', '2020-08-31 13:47:50');
+INSERT INTO `t_order_position` VALUES (10488, 2, 2648, 390, '109.42136157369475', '24.334849567095237', '58.0', '15.0', '2020-08-31 13:47:55');
+INSERT INTO `t_order_position` VALUES (10489, 2, 2648, 390, '109.4221612940186', '24.334882358346103', '58.0', '15.0', '2020-08-31 13:48:00');
+INSERT INTO `t_order_position` VALUES (10490, 2, 2648, 390, '109.42289434287804', '24.334915168635668', '58.0', '15.0', '2020-08-31 13:48:05');
+INSERT INTO `t_order_position` VALUES (10491, 2, 2648, 390, '109.42356072668403', '24.33493134260825', '58.0', '15.0', '2020-08-31 13:48:10');
+INSERT INTO `t_order_position` VALUES (10492, 2, 2648, 390, '109.42417710995433', '24.334914211393926', '60.0', '15.0', '2020-08-31 13:48:15');
+INSERT INTO `t_order_position` VALUES (10493, 2, 2648, 390, '109.4247601585807', '24.33491375178258', '56.0', '15.0', '2020-08-31 13:48:20');
+INSERT INTO `t_order_position` VALUES (10494, 2, 2648, 390, '109.4253098764828', '24.334946628397375', '58.0', '15.0', '2020-08-31 13:48:25');
+INSERT INTO `t_order_position` VALUES (10495, 2, 2648, 390, '109.42590954933215', '24.334946124883658', '58.0', '15.0', '2020-08-31 13:48:30');
+INSERT INTO `t_order_position` VALUES (10496, 2, 2648, 390, '109.42647589147342', '24.334962296505033', '56.0', '15.0', '2020-08-31 13:48:35');
+INSERT INTO `t_order_position` VALUES (10497, 2, 2648, 390, '109.42719212742587', '24.335028303690244', '0.0', '15.0', '2020-08-31 13:48:55');
+INSERT INTO `t_order_position` VALUES (10498, 2, 2648, 390, '109.42804157776352', '24.335010851970104', '56.0', '15.0', '2020-08-31 13:49:25');
+INSERT INTO `t_order_position` VALUES (10499, 2, 2648, 390, '109.42879106476262', '24.33502679036893', '58.0', '15.0', '2020-08-31 13:49:35');
+INSERT INTO `t_order_position` VALUES (10500, 2, 2648, 390, '109.42970706728273', '24.335059195969812', '56.0', '15.0', '2020-08-31 13:49:45');
+INSERT INTO `t_order_position` VALUES (10501, 2, 2648, 390, '109.43058971939152', '24.335058275720293', '56.0', '15.0', '2020-08-31 13:49:55');
+INSERT INTO `t_order_position` VALUES (10502, 2, 2648, 390, '109.43112262179658', '24.335041041396792', '0.0', '15.0', '2020-08-31 13:50:16');
+INSERT INTO `t_order_position` VALUES (10503, 2, 2648, 390, '109.43200521321464', '24.335056727850485', '58.0', '15.0', '2020-08-31 13:51:46');
+INSERT INTO `t_order_position` VALUES (10504, 2, 2648, 390, '109.43257138705893', '24.335122731913337', '58.0', '15.0', '2020-08-31 13:51:51');
+INSERT INTO `t_order_position` VALUES (10505, 2, 2648, 390, '109.43325410342439', '24.335171922696375', '58.0', '15.0', '2020-08-31 13:51:56');
+INSERT INTO `t_order_position` VALUES (10506, 2, 2648, 390, '109.43390349163924', '24.335154485367365', '58.0', '15.0', '2020-08-31 13:52:01');
+INSERT INTO `t_order_position` VALUES (10507, 2, 2648, 390, '109.43450291055535', '24.335170415310575', '58.0', '15.0', '2020-08-31 13:52:06');
+INSERT INTO `t_order_position` VALUES (10508, 2, 2648, 390, '109.43511896177837', '24.335186308618752', '60.0', '15.0', '2020-08-31 13:52:11');
+INSERT INTO `t_order_position` VALUES (10509, 2, 2648, 390, '109.43581823782728', '24.335152092129007', '70.0', '15.0', '2020-08-31 13:52:18');
+INSERT INTO `t_order_position` VALUES (10510, 2, 2648, 390, '109.43616782591903', '24.334435172645605', '110.0', '15.0', '2020-08-31 13:52:28');
+INSERT INTO `t_order_position` VALUES (10511, 2, 2648, 390, '109.43613448502859', '24.333702089275604', '116.0', '15.0', '2020-08-31 13:52:31');
+INSERT INTO `t_order_position` VALUES (10512, 2, 2648, 390, '109.43606785394604', '24.33310234535588', '112.0', '15.0', '2020-08-31 13:52:36');
+INSERT INTO `t_order_position` VALUES (10513, 2, 2648, 390, '109.43610110398414', '24.33228586613887', '112.0', '15.0', '2020-08-31 13:52:46');
+INSERT INTO `t_order_position` VALUES (10514, 2, 2648, 390, '109.43608442762363', '24.331819353317123', '112.0', '15.0', '2020-08-31 13:52:52');
+INSERT INTO `t_order_position` VALUES (10515, 2, 2648, 390, '109.43608438458926', '24.33108622798926', '110.0', '15.0', '2020-08-31 13:52:57');
+INSERT INTO `t_order_position` VALUES (10516, 2, 2648, 390, '109.43608435622582', '24.33060303198337', '120.0', '15.0', '2020-08-31 13:53:27');
+INSERT INTO `t_order_position` VALUES (10517, 2, 2648, 390, '109.43608432786245', '24.33011983616229', '114.0', '15.0', '2020-08-31 13:53:32');
+INSERT INTO `t_order_position` VALUES (10518, 2, 2648, 390, '109.43606763877396', '24.329436719245734', '114.0', '15.0', '2020-08-31 13:53:37');
+INSERT INTO `t_order_position` VALUES (10519, 2, 2648, 390, '109.43606760356442', '24.328836890530937', '112.0', '15.0', '2020-08-31 13:53:42');
+INSERT INTO `t_order_position` VALUES (10520, 2, 2648, 390, '109.43603426838114', '24.32820378164634', '112.0', '15.0', '2020-08-31 13:53:47');
+INSERT INTO `t_order_position` VALUES (10521, 2, 2648, 390, '109.43605088707753', '24.327687241296022', '114.0', '15.0', '2020-08-31 13:53:52');
+INSERT INTO `t_order_position` VALUES (10522, 2, 2648, 390, '109.43603420578664', '24.32713742071799', '112.0', '15.0', '2020-08-31 13:53:57');
+INSERT INTO `t_order_position` VALUES (10523, 2, 2648, 390, '109.43606747544189', '24.32665418287642', '112.0', '15.0', '2020-08-31 13:54:02');
+INSERT INTO `t_order_position` VALUES (10524, 2, 2648, 390, '109.43611739498454', '24.32618758532821', '0.0', '15.0', '2020-08-31 13:54:12');
+INSERT INTO `t_order_position` VALUES (10525, 2, 2648, 390, '109.43615073394602', '24.326887340605264', '0.0', '15.0', '2020-08-31 13:55:18');
+INSERT INTO `t_order_position` VALUES (10526, 2, 2648, 390, '109.43618407089785', '24.327553772442382', '166.0', '15.0', '2020-08-31 13:55:23');
+INSERT INTO `t_order_position` VALUES (10527, 2, 2648, 390, '109.43613415445006', '24.328070356317838', '0.0', '15.0', '2020-08-31 13:55:28');
+INSERT INTO `t_order_position` VALUES (10528, 2, 2648, 390, '109.4361341837909', '24.328570213258534', '0.0', '15.0', '2020-08-31 13:55:38');
+INSERT INTO `t_order_position` VALUES (10529, 2, 2648, 390, '109.43613422584627', '24.329286675216867', '0.0', '15.0', '2020-08-31 13:55:53');
+INSERT INTO `t_order_position` VALUES (10530, 2, 2648, 390, '109.43613426007751', '24.329869842226163', '2.0', '15.0', '2020-08-31 13:55:58');
+INSERT INTO `t_order_position` VALUES (10531, 2, 2648, 390, '109.43615094128792', '24.33041966391671', '54.0', '15.0', '2020-08-31 13:56:18');
+INSERT INTO `t_order_position` VALUES (10532, 2, 2648, 390, '109.43706661415032', '24.330451773911655', '58.0', '15.0', '2020-08-31 13:56:28');
+INSERT INTO `t_order_position` VALUES (10533, 2, 2648, 390, '109.43779912096383', '24.330434114981518', '58.0', '15.0', '2020-08-31 13:56:38');
+INSERT INTO `t_order_position` VALUES (10534, 2, 2648, 390, '109.43841507165428', '24.330399934992094', '60.0', '15.0', '2020-08-31 13:56:48');
+INSERT INTO `t_order_position` VALUES (10535, 2, 2648, 390, '109.43894777487118', '24.33043250537731', '56.0', '15.0', '2020-08-31 13:56:58');
+INSERT INTO `t_order_position` VALUES (10536, 2, 2648, 390, '109.43946381542685', '24.33041510205619', '58.0', '15.0', '2020-08-31 13:57:33');
+INSERT INTO `t_order_position` VALUES (10537, 2, 2648, 390, '109.44002978103887', '24.330397614050966', '60.0', '15.0', '2020-08-31 13:57:44');
+INSERT INTO `t_order_position` VALUES (10538, 2, 2648, 390, '109.44082876903266', '24.330429748736627', '60.0', '15.0', '2020-08-31 13:57:59');
+INSERT INTO `t_order_position` VALUES (10539, 2, 2648, 390, '109.44166101639054', '24.330461805478148', '64.0', '15.0', '2020-08-31 13:58:09');
+INSERT INTO `t_order_position` VALUES (10540, 2, 2648, 390, '109.4425265165142', '24.330443795218134', '64.0', '15.0', '2020-08-31 13:58:19');
+INSERT INTO `t_order_position` VALUES (10541, 2, 2648, 390, '109.44314232887477', '24.330376169282488', '62.0', '15.0', '2020-08-31 13:58:24');
+INSERT INTO `t_order_position` VALUES (10542, 2, 2648, 390, '109.44385797756553', '24.33024171746078', '66.0', '15.0', '2020-08-31 13:58:39');
+INSERT INTO `t_order_position` VALUES (10543, 2, 2648, 390, '109.44444046262983', '24.330090803442683', '66.0', '15.0', '2020-08-31 13:58:44');
+INSERT INTO `t_order_position` VALUES (10544, 2, 2648, 390, '109.44542232746959', '24.32977258307644', '84.0', '15.0', '2020-08-31 13:58:54');
+INSERT INTO `t_order_position` VALUES (10545, 2, 2648, 390, '109.44580506427452', '24.329438693403873', '94.0', '15.0', '2020-08-31 13:58:59');
+INSERT INTO `t_order_position` VALUES (10546, 2, 2648, 390, '109.44615449266148', '24.328771617202317', '106.0', '15.0', '2020-08-31 13:59:24');
+INSERT INTO `t_order_position` VALUES (10547, 2, 2648, 390, '109.44630422858226', '24.328188192112663', '112.0', '15.0', '2020-08-31 13:59:29');
+INSERT INTO `t_order_position` VALUES (10548, 2, 2648, 390, '109.44630418367645', '24.327421745103457', '114.0', '15.0', '2020-08-31 13:59:34');
+INSERT INTO `t_order_position` VALUES (10549, 2, 2648, 390, '109.44625421649418', '24.326672046724347', '114.0', '15.0', '2020-08-31 13:59:39');
+INSERT INTO `t_order_position` VALUES (10550, 2, 2648, 390, '109.44627082147097', '24.326055528683344', '112.0', '15.0', '2020-08-31 13:59:54');
+INSERT INTO `t_order_position` VALUES (10551, 2, 2648, 390, '109.44627078242263', '24.325389054112144', '114.0', '15.0', '2020-08-31 13:59:59');
+INSERT INTO `t_order_position` VALUES (10552, 2, 2648, 390, '109.44623745921555', '24.324689313681006', '114.0', '15.0', '2020-08-31 14:00:04');
+INSERT INTO `t_order_position` VALUES (10553, 2, 2648, 390, '109.4462207770929', '24.323989544868148', '120.0', '15.0', '2020-08-31 14:00:09');
+INSERT INTO `t_order_position` VALUES (10554, 2, 2648, 390, '109.44542195644152', '24.3234410702516', '108.0', '15.0', '2020-08-31 14:00:19');
+INSERT INTO `t_order_position` VALUES (10555, 2, 2648, 390, '109.44440678411456', '24.323376121855286', '108.0', '15.0', '2020-08-31 14:00:24');
+INSERT INTO `t_order_position` VALUES (10556, 2, 2648, 390, '109.44334163418632', '24.323294550179103', '108.0', '15.0', '2020-08-31 14:00:29');
+INSERT INTO `t_order_position` VALUES (10557, 2, 2648, 390, '109.44229307637775', '24.323212905930642', '108.0', '15.0', '2020-08-31 14:00:35');
+INSERT INTO `t_order_position` VALUES (10558, 2, 2648, 390, '109.44121117693695', '24.323114605044307', '110.0', '15.0', '2020-08-31 14:00:40');
+INSERT INTO `t_order_position` VALUES (10559, 2, 2648, 390, '109.44016251643315', '24.323049529842347', '112.0', '15.0', '2020-08-31 14:00:45');
+INSERT INTO `t_order_position` VALUES (10560, 2, 2648, 390, '109.43901392363034', '24.322967889477383', '108.0', '15.0', '2020-08-31 14:00:50');
+INSERT INTO `t_order_position` VALUES (10561, 2, 2648, 390, '109.43794850798349', '24.32291940186907', '110.0', '15.0', '2020-08-31 14:00:55');
+INSERT INTO `t_order_position` VALUES (10562, 2, 2648, 390, '109.43706616823688', '24.322853958325858', '108.0', '15.0', '2020-08-31 14:01:00');
+INSERT INTO `t_order_position` VALUES (10563, 2, 2648, 390, '109.4361005455298', '24.322771928224167', '108.0', '15.0', '2020-08-31 14:01:05');
+INSERT INTO `t_order_position` VALUES (10564, 2, 2648, 390, '109.43526807641783', '24.322706351238516', '108.0', '15.0', '2020-08-31 14:01:11');
+INSERT INTO `t_order_position` VALUES (10565, 2, 2648, 390, '109.43428571944278', '24.32262426642517', '110.0', '15.0', '2020-08-31 14:01:15');
+INSERT INTO `t_order_position` VALUES (10566, 2, 2648, 390, '109.43325336471514', '24.32259218400922', '108.0', '15.0', '2020-08-31 14:01:20');
+INSERT INTO `t_order_position` VALUES (10567, 2, 2648, 390, '109.43235416849353', '24.32245993247008', '108.0', '15.0', '2020-08-31 14:01:26');
+INSERT INTO `t_order_position` VALUES (10568, 2, 2648, 390, '109.43163811778194', '24.322427413969287', '110.0', '15.0', '2020-08-31 14:01:30');
+INSERT INTO `t_order_position` VALUES (10569, 2, 2648, 390, '109.43095534816575', '24.32239483695601', '108.0', '15.0', '2020-08-31 14:01:35');
+INSERT INTO `t_order_position` VALUES (10570, 2, 2648, 390, '109.4303225156431', '24.322345525080177', '110.0', '15.0', '2020-08-31 14:01:40');
+INSERT INTO `t_order_position` VALUES (10571, 2, 2648, 390, '109.4296397016555', '24.322312908287756', '108.0', '15.0', '2020-08-31 14:01:45');
+INSERT INTO `t_order_position` VALUES (10572, 2, 2648, 390, '109.42902348266026', '24.322263542930095', '110.0', '15.0', '2020-08-31 14:01:50');
+INSERT INTO `t_order_position` VALUES (10573, 2, 2648, 390, '109.42830731206132', '24.32219759506473', '108.0', '15.0', '2020-08-31 14:02:00');
+INSERT INTO `t_order_position` VALUES (10574, 2, 2648, 390, '109.427541148084', '24.3221316706561', '106.0', '15.0', '2020-08-31 14:02:10');
+INSERT INTO `t_order_position` VALUES (10575, 2, 2648, 390, '109.42695817668763', '24.322065555808685', '108.0', '15.0', '2020-08-31 14:02:20');
+INSERT INTO `t_order_position` VALUES (10576, 2, 2648, 390, '109.42615864690833', '24.321999613963936', '114.0', '15.0', '2020-08-31 14:02:30');
+INSERT INTO `t_order_position` VALUES (10577, 2, 2648, 390, '109.42529245584048', '24.321967022167254', '106.0', '15.0', '2020-08-31 14:02:40');
+INSERT INTO `t_order_position` VALUES (10578, 2, 2648, 390, '109.42479270837967', '24.321867458155292', '106.0', '15.0', '2020-08-31 14:02:45');
+INSERT INTO `t_order_position` VALUES (10579, 2, 2648, 390, '109.42382650089074', '24.321784903846794', '108.0', '15.0', '2020-08-31 14:02:55');
+INSERT INTO `t_order_position` VALUES (10580, 2, 2648, 390, '109.42329340255164', '24.32176864045181', '108.0', '15.0', '2020-08-31 14:03:00');
+INSERT INTO `t_order_position` VALUES (10581, 2, 2648, 390, '109.42276028699156', '24.321702378808624', '108.0', '15.0', '2020-08-31 14:03:05');
+INSERT INTO `t_order_position` VALUES (10582, 2, 2648, 390, '109.42214385687981', '24.32166948505966', '108.0', '15.0', '2020-08-31 14:03:11');
+INSERT INTO `t_order_position` VALUES (10583, 2, 2648, 390, '109.42152740569175', '24.321603250540377', '108.0', '15.0', '2020-08-31 14:03:16');
+INSERT INTO `t_order_position` VALUES (10584, 2, 2648, 390, '109.42087761428347', '24.321570343379', '108.0', '15.0', '2020-08-31 14:03:21');
+INSERT INTO `t_order_position` VALUES (10585, 2, 2648, 390, '109.42017781529898', '24.321537446927017', '110.0', '15.0', '2020-08-31 14:03:26');
+INSERT INTO `t_order_position` VALUES (10586, 2, 2648, 390, '109.41936134937377', '24.321454608285', '108.0', '15.0', '2020-08-31 14:03:31');
+INSERT INTO `t_order_position` VALUES (10587, 2, 2648, 390, '109.41844486962951', '24.32138845318897', '108.0', '15.0', '2020-08-31 14:03:36');
+INSERT INTO `t_order_position` VALUES (10588, 2, 2648, 390, '109.41781164051545', '24.32133878563228', '108.0', '15.0', '2020-08-31 14:03:41');
+INSERT INTO `t_order_position` VALUES (10589, 2, 2648, 390, '109.41726171328803', '24.32127239976246', '108.0', '15.0', '2020-08-31 14:03:46');
+INSERT INTO `t_order_position` VALUES (10590, 2, 2648, 390, '109.41666177764634', '24.321239345704786', '108.0', '15.0', '2020-08-31 14:03:51');
+INSERT INTO `t_order_position` VALUES (10591, 2, 2648, 390, '109.41602849273062', '24.321206289015887', '112.0', '15.0', '2020-08-31 14:03:56');
+INSERT INTO `t_order_position` VALUES (10592, 2, 2648, 390, '109.41542852187627', '24.321206525219907', '110.0', '15.0', '2020-08-31 14:04:01');
+INSERT INTO `t_order_position` VALUES (10593, 2, 2648, 390, '109.41471186733035', '24.32122344791992', '0.0', '15.0', '2020-08-31 14:04:11');
+INSERT INTO `t_order_position` VALUES (10594, 2, 2648, 390, '109.41417850892725', '24.320940376422122', '134.0', '15.0', '2020-08-31 14:06:17');
+INSERT INTO `t_order_position` VALUES (10595, 2, 2648, 390, '109.41392846873217', '24.320407278458056', '132.0', '15.0', '2020-08-31 14:06:22');
+INSERT INTO `t_order_position` VALUES (10596, 2, 2648, 390, '109.41327840365997', '24.31994094206945', '114.0', '15.0', '2020-08-31 14:06:32');
+INSERT INTO `t_order_position` VALUES (10597, 2, 2648, 390, '109.41276169298347', '24.319957744375653', '112.0', '15.0', '2020-08-31 14:06:37');
+INSERT INTO `t_order_position` VALUES (10598, 2, 2648, 390, '109.4119615989917', '24.319991261943255', '112.0', '15.0', '2020-08-31 14:06:47');
+INSERT INTO `t_order_position` VALUES (10599, 2, 2648, 390, '109.4112781604021', '24.32002472856236', '118.0', '15.0', '2020-08-31 14:06:57');
+INSERT INTO `t_order_position` VALUES (10600, 2, 2648, 390, '109.41036131442144', '24.32004154951866', '112.0', '15.0', '2020-08-31 14:07:07');
+INSERT INTO `t_order_position` VALUES (10601, 2, 2648, 390, '109.40962780291828', '24.319975002764398', '0.0', '15.0', '2020-08-31 14:07:27');
+INSERT INTO `t_order_position` VALUES (10602, 2, 2648, 390, '109.40911098770421', '24.319808441282188', '112.0', '15.0', '2020-08-31 14:08:58');
+INSERT INTO `t_order_position` VALUES (10603, 2, 2648, 390, '109.40919430317334', '24.31910863811216', '114.0', '15.0', '2020-08-31 14:09:08');
+INSERT INTO `t_order_position` VALUES (10604, 2, 2648, 390, '109.40924428954764', '24.31864210328028', '110.0', '15.0', '2020-08-31 14:09:13');
+INSERT INTO `t_order_position` VALUES (10605, 2, 2648, 390, '109.40924425918527', '24.318125588443362', '110.0', '15.0', '2020-08-31 14:09:18');
+INSERT INTO `t_order_position` VALUES (10606, 2, 2648, 390, '109.40922755757063', '24.317609075532115', '112.0', '15.0', '2020-08-31 14:09:23');
+INSERT INTO `t_order_position` VALUES (10607, 2, 2648, 390, '109.40929420234124', '24.316925936633933', '114.0', '15.0', '2020-08-31 14:09:33');
+INSERT INTO `t_order_position` VALUES (10608, 2, 2648, 390, '109.4094442073642', '24.316326097386607', '70.0', '15.0', '2020-08-31 14:10:08');
+INSERT INTO `t_order_position` VALUES (10609, 2, 2648, 390, '109.41014437474851', '24.316226037314475', '58.0', '15.0', '2020-08-31 14:10:18');
+INSERT INTO `t_order_position` VALUES (10610, 2, 2648, 390, '109.41066115372078', '24.316225957191797', '58.0', '15.0', '2020-08-31 14:10:23');
+INSERT INTO `t_order_position` VALUES (10611, 2, 2648, 390, '109.41142796358284', '24.316242478123648', '58.0', '15.0', '2020-08-31 14:10:33');
+INSERT INTO `t_order_position` VALUES (10612, 2, 2648, 390, '109.41201138357543', '24.31620902992841', '60.0', '15.0', '2020-08-31 14:10:43');
+INSERT INTO `t_order_position` VALUES (10613, 2, 2648, 390, '109.41281147850748', '24.316225495890535', '70.0', '15.0', '2020-08-31 14:10:53');
+INSERT INTO `t_order_position` VALUES (10614, 2, 2648, 390, '109.41306147486996', '24.31577556189211', '110.0', '15.0', '2020-08-31 14:11:03');
+INSERT INTO `t_order_position` VALUES (10615, 2, 2648, 390, '109.41354486205627', '24.316091997316555', '56.0', '15.0', '2020-08-31 14:12:14');
+INSERT INTO `t_order_position` VALUES (10616, 2, 2648, 390, '109.41426154869569', '24.31590849488073', '76.0', '15.0', '2020-08-31 14:12:24');
+INSERT INTO `t_order_position` VALUES (10617, 2, 2648, 390, '109.41501152786142', '24.315475031369193', '82.0', '15.0', '2020-08-31 14:12:34');
+INSERT INTO `t_order_position` VALUES (10618, 2, 2648, 390, '109.41546149555572', '24.31510830612749', '84.0', '15.0', '2020-08-31 14:12:39');
+INSERT INTO `t_order_position` VALUES (10619, 2, 2648, 390, '109.41601144510201', '24.314708208008874', '84.0', '15.0', '2020-08-31 14:12:49');
+INSERT INTO `t_order_position` VALUES (10620, 2, 2648, 390, '109.41651138391803', '24.314308117888697', '80.0', '15.0', '2020-08-31 14:13:09');
+INSERT INTO `t_order_position` VALUES (10621, 2, 2648, 390, '109.41699465615929', '24.314091302984497', '134.0', '15.0', '2020-08-31 14:13:29');
+INSERT INTO `t_order_position` VALUES (10622, 2, 2648, 390, '109.41657805734594', '24.314524691530202', '22.0', '15.0', '2020-08-31 14:13:39');
+INSERT INTO `t_order_position` VALUES (10623, 2, 2648, 390, '109.41701138265728', '24.315140983886057', '14.0', '15.0', '2020-08-31 14:13:49');
+INSERT INTO `t_order_position` VALUES (10624, 2, 2648, 390, '109.41711141615933', '24.315907378203814', '0.0', '15.0', '2020-08-31 14:13:59');
+INSERT INTO `t_order_position` VALUES (10625, 2, 2648, 390, '109.41712812199044', '24.316607163753343', '10.0', '15.0', '2020-08-31 14:14:10');
+INSERT INTO `t_order_position` VALUES (10626, 2, 2648, 390, '109.41734479991571', '24.317256871993237', '12.0', '15.0', '2020-08-31 14:14:20');
+INSERT INTO `t_order_position` VALUES (10627, 2, 2648, 390, '109.41759479038316', '24.317673297877366', '0.0', '15.0', '2020-08-31 14:14:50');
+INSERT INTO `t_order_position` VALUES (10628, 2, 2648, 390, '109.41802803967161', '24.31737317494002', '0.0', '15.0', '2020-08-31 14:15:55');
+INSERT INTO `t_order_position` VALUES (10629, 2, 2648, 390, '109.41847792838327', '24.316823108715838', '86.0', '15.0', '2020-08-31 14:16:20');
+INSERT INTO `t_order_position` VALUES (10630, 2, 2648, 390, '109.41897778559893', '24.31608972747616', '90.0', '15.0', '2020-08-31 14:16:30');
+INSERT INTO `t_order_position` VALUES (10631, 2, 2648, 390, '109.41931102491701', '24.315739648393947', '94.0', '15.0', '2020-08-31 14:16:35');
+INSERT INTO `t_order_position` VALUES (10632, 2, 2648, 390, '109.41946096065864', '24.315239712627427', '140.0', '15.0', '2020-08-31 14:16:45');
+INSERT INTO `t_order_position` VALUES (10633, 2, 2648, 390, '109.4189277187565', '24.314773477658065', '136.0', '15.0', '2020-08-31 14:16:56');
+INSERT INTO `t_order_position` VALUES (10634, 2, 2648, 390, '109.41857775567541', '24.31420716473572', '128.0', '15.0', '2020-08-31 14:17:06');
+INSERT INTO `t_order_position` VALUES (10635, 2, 2648, 390, '109.41844442102595', '24.313757367712334', '132.0', '15.0', '2020-08-31 14:17:16');
+INSERT INTO `t_order_position` VALUES (10636, 2, 2648, 390, '109.41811111623952', '24.313241024354944', '136.0', '15.0', '2020-08-31 14:17:31');
+INSERT INTO `t_order_position` VALUES (10637, 2, 2648, 390, '109.41782780409862', '24.31282462200991', '0.0', '15.0', '2020-08-31 14:17:51');
+INSERT INTO `t_order_position` VALUES (10638, 2, 2648, 390, '109.41727785773737', '24.312425003081312', '114.0', '15.0', '2020-08-31 14:18:11');
+INSERT INTO `t_order_position` VALUES (10639, 2, 2648, 390, '109.41746110827707', '24.311425216123265', '106.0', '15.0', '2020-08-31 14:18:21');
+INSERT INTO `t_order_position` VALUES (10640, 2, 2648, 390, '109.41759438291805', '24.310742024082657', '106.0', '15.0', '2020-08-31 14:18:26');
+INSERT INTO `t_order_position` VALUES (10641, 2, 2648, 390, '109.41779431426235', '24.31007546089868', '106.0', '15.0', '2020-08-31 14:18:31');
+INSERT INTO `t_order_position` VALUES (10642, 2, 2648, 390, '109.41799424751326', '24.309475542866906', '104.0', '15.0', '2020-08-31 14:18:36');
+INSERT INTO `t_order_position` VALUES (10643, 2, 2648, 390, '109.41814418535762', '24.30884232519161', '108.0', '15.0', '2020-08-31 14:18:41');
+INSERT INTO `t_order_position` VALUES (10644, 2, 2648, 390, '109.4183774316176', '24.30805910943784', '106.0', '15.0', '2020-08-31 14:18:47');
+INSERT INTO `t_order_position` VALUES (10645, 2, 2648, 390, '109.4185440261575', '24.307359234645336', '106.0', '15.0', '2020-08-31 14:18:51');
+INSERT INTO `t_order_position` VALUES (10646, 2, 2648, 390, '109.41649419664894', '24.305427459592423', '110.0', '15.0', '2020-08-31 14:19:30');
+INSERT INTO `t_order_position` VALUES (10647, 2, 2648, 390, '109.41582757490647', '24.305394411844432', '112.0', '15.0', '2020-08-31 14:19:35');
+INSERT INTO `t_order_position` VALUES (10648, 2, 2648, 390, '109.41531092629035', '24.305344626743455', '110.0', '15.0', '2020-08-31 14:19:40');
+INSERT INTO `t_order_position` VALUES (10649, 2, 2648, 390, '109.4147942642841', '24.305294829629336', '108.0', '15.0', '2020-08-31 14:19:50');
+INSERT INTO `t_order_position` VALUES (10650, 2, 2648, 390, '109.413844241388', '24.3052618202222', '114.0', '15.0', '2020-08-31 14:20:00');
+INSERT INTO `t_order_position` VALUES (10651, 2, 2648, 390, '109.41329420960068', '24.305278644975516', '110.0', '15.0', '2020-08-31 14:20:05');
+INSERT INTO `t_order_position` VALUES (10652, 2, 2648, 390, '109.4127608310338', '24.305295451829146', '110.0', '15.0', '2020-08-31 14:20:10');
+INSERT INTO `t_order_position` VALUES (10653, 2, 2648, 390, '109.41196073901224', '24.305362292236957', '114.0', '15.0', '2020-08-31 14:20:20');
+INSERT INTO `t_order_position` VALUES (10654, 2, 2648, 390, '109.41141065357294', '24.305345747399077', '0.0', '15.0', '2020-08-31 14:20:30');
+INSERT INTO `t_order_position` VALUES (10655, 2, 2648, 390, '109.4107605363137', '24.305379191198654', '112.0', '15.0', '2020-08-31 14:21:26');
+INSERT INTO `t_order_position` VALUES (10656, 2, 2648, 390, '109.40976031586345', '24.305445986398183', '114.0', '15.0', '2020-08-31 14:21:36');
+INSERT INTO `t_order_position` VALUES (10657, 2, 2648, 390, '109.40922684555306', '24.305496032395077', '114.0', '15.0', '2020-08-31 14:21:41');
+INSERT INTO `t_order_position` VALUES (10658, 2, 2648, 390, '109.40864334603208', '24.305546069691026', '110.0', '15.0', '2020-08-31 14:21:47');
+INSERT INTO `t_order_position` VALUES (10659, 2, 2648, 390, '109.40810984240521', '24.30552944288666', '110.0', '15.0', '2020-08-31 14:21:51');
+INSERT INTO `t_order_position` VALUES (10660, 2, 2648, 390, '109.40750963225798', '24.305479482210213', '106.0', '15.0', '2020-08-31 14:22:01');
+INSERT INTO `t_order_position` VALUES (10661, 2, 2648, 390, '109.4066426292221', '24.30537951946893', '162.0', '15.0', '2020-08-31 14:22:06');
+INSERT INTO `t_order_position` VALUES (10662, 2, 2648, 390, '109.40594232370613', '24.305179561723183', '156.0', '15.0', '2020-08-31 14:22:11');
+INSERT INTO `t_order_position` VALUES (10663, 2, 2648, 390, '109.40530868539092', '24.304862956102532', '156.0', '15.0', '2020-08-31 14:22:16');
+INSERT INTO `t_order_position` VALUES (10664, 2, 2648, 390, '109.4047083833689', '24.30464630584767', '164.0', '15.0', '2020-08-31 14:22:21');
+INSERT INTO `t_order_position` VALUES (10665, 2, 2648, 390, '109.40412474519509', '24.304529611562064', '110.0', '15.0', '2020-08-31 14:22:26');
+INSERT INTO `t_order_position` VALUES (10666, 2, 2648, 390, '109.40352441958127', '24.30449620806669', '114.0', '15.0', '2020-08-31 14:22:31');
+INSERT INTO `t_order_position` VALUES (10667, 2, 2648, 390, '109.4027239708647', '24.304662692762832', '116.0', '15.0', '2020-08-31 14:22:41');
+INSERT INTO `t_order_position` VALUES (10668, 2, 2648, 390, '109.40199019418488', '24.304729194650875', '110.0', '15.0', '2020-08-31 14:22:51');
+INSERT INTO `t_order_position` VALUES (10669, 2, 2648, 390, '109.4009895497752', '24.304845591707828', '118.0', '15.0', '2020-08-31 14:23:01');
+INSERT INTO `t_order_position` VALUES (10670, 2, 2648, 390, '109.40043917720834', '24.30494541438102', '118.0', '15.0', '2020-08-31 14:23:06');
+INSERT INTO `t_order_position` VALUES (10671, 2, 2648, 390, '109.39985543274355', '24.30504521414628', '118.0', '15.0', '2020-08-31 14:23:11');
+INSERT INTO `t_order_position` VALUES (10672, 2, 2648, 390, '109.39928835249127', '24.305161666616474', '116.0', '15.0', '2020-08-31 14:23:21');
+INSERT INTO `t_order_position` VALUES (10673, 2, 2648, 390, '109.39873793588524', '24.305261449835857', '118.0', '15.0', '2020-08-31 14:23:26');
+INSERT INTO `t_order_position` VALUES (10674, 2, 2648, 390, '109.39817082698248', '24.30539453737331', '120.0', '15.0', '2020-08-31 14:23:31');
+INSERT INTO `t_order_position` VALUES (10675, 2, 2648, 390, '109.3974368958888', '24.30551088306247', '116.0', '15.0', '2020-08-31 14:23:41');
+INSERT INTO `t_order_position` VALUES (10676, 2, 2648, 390, '109.39686975279793', '24.305643939986705', '102.0', '15.0', '2020-08-31 14:24:22');
+INSERT INTO `t_order_position` VALUES (10677, 2, 2648, 390, '109.39596895624662', '24.305693522865816', '122.0', '15.0', '2020-08-31 14:24:32');
+INSERT INTO `t_order_position` VALUES (10678, 2, 2648, 390, '109.39546850388801', '24.305826578083217', '122.0', '15.0', '2020-08-31 14:24:37');
+INSERT INTO `t_order_position` VALUES (10679, 2, 2648, 390, '109.3947344838376', '24.305976165577665', '126.0', '15.0', '2020-08-31 14:24:47');
+INSERT INTO `t_order_position` VALUES (10680, 2, 2648, 390, '109.39425069246917', '24.306209174352787', '150.0', '15.0', '2020-08-31 14:24:57');
+INSERT INTO `t_order_position` VALUES (10681, 2, 2648, 390, '109.39385032638414', '24.306758790586365', '144.0', '15.0', '2020-08-31 14:25:07');
+INSERT INTO `t_order_position` VALUES (10682, 2, 2648, 390, '109.39343326450197', '24.307225083010394', '134.0', '15.0', '2020-08-31 14:25:12');
+INSERT INTO `t_order_position` VALUES (10683, 2, 2648, 390, '109.39298281893117', '24.307558056074644', '136.0', '15.0', '2020-08-31 14:25:17');
+INSERT INTO `t_order_position` VALUES (10684, 2, 2648, 390, '109.39249899845915', '24.30794098591192', '134.0', '15.0', '2020-08-31 14:25:22');
+INSERT INTO `t_order_position` VALUES (10685, 2, 2648, 390, '109.39206521994278', '24.308290614458823', '134.0', '15.0', '2020-08-31 14:25:27');
+INSERT INTO `t_order_position` VALUES (10686, 2, 2648, 390, '109.3915646937878', '24.308656854618857', '136.0', '15.0', '2020-08-31 14:25:32');
+INSERT INTO `t_order_position` VALUES (10687, 2, 2648, 390, '109.39086393208231', '24.309056275276145', '112.0', '15.0', '2020-08-31 14:25:42');
+INSERT INTO `t_order_position` VALUES (10688, 2, 2648, 390, '109.39031328843446', '24.30885596148308', '138.0', '15.0', '2020-08-31 14:25:52');
+INSERT INTO `t_order_position` VALUES (10689, 2, 2648, 390, '109.38986272060083', '24.308155857697137', '136.0', '15.0', '2020-08-31 14:26:02');
+INSERT INTO `t_order_position` VALUES (10690, 2, 2648, 390, '109.38956233035015', '24.30757248626386', '102.0', '15.0', '2020-08-31 14:26:12');
+INSERT INTO `t_order_position` VALUES (10691, 2, 2648, 390, '109.38981260386251', '24.307172785856334', '0.0', '15.0', '2020-08-31 14:27:08');
+INSERT INTO `t_order_position` VALUES (10692, 2, 2648, 390, '109.39032985714391', '24.30685657666052', '70.0', '15.0', '2020-08-31 14:27:43');
+INSERT INTO `t_order_position` VALUES (10693, 2, 2648, 390, '109.39061349398175', '24.306456891704222', '132.0', '15.0', '2020-08-31 14:28:03');
+INSERT INTO `t_order_position` VALUES (10694, 2, 2648, 390, '109.39029643233104', '24.305956826262776', '134.0', '15.0', '2020-08-31 14:28:23');
+INSERT INTO `t_order_position` VALUES (10695, 2, 2648, 390, '109.39002942993366', '24.305540100281906', '136.0', '15.0', '2020-08-31 14:28:33');
+INSERT INTO `t_order_position` VALUES (10696, 2, 2648, 390, '109.39061344901543', '24.30569045746381', '24.0', '15.0', '2020-08-31 14:28:58');
+INSERT INTO `t_order_position` VALUES (10697, 2, 2648, 390, '109.39091381975432', '24.30617384617021', '22.0', '15.0', '2020-08-31 14:29:09');
+INSERT INTO `t_order_position` VALUES (10698, 2, 2648, 390, '109.39119749924684', '24.306623897361312', '22.0', '15.0', '2020-08-31 14:29:19');
+INSERT INTO `t_order_position` VALUES (10699, 2, 2648, 390, '109.39178148669035', '24.306740904841853', '70.0', '15.0', '2020-08-31 14:29:34');
+INSERT INTO `t_order_position` VALUES (10700, 2, 2648, 390, '109.39236544448951', '24.30660797459093', '68.0', '15.0', '2020-08-31 14:29:39');
+INSERT INTO `t_order_position` VALUES (10701, 2, 2648, 390, '109.39284928053058', '24.30644164871974', '80.0', '15.0', '2020-08-31 14:29:44');
+INSERT INTO `t_order_position` VALUES (10702, 2, 2648, 390, '109.39348325401325', '24.306175429183167', '68.0', '15.0', '2020-08-31 14:29:54');
+INSERT INTO `t_order_position` VALUES (10703, 2, 2648, 390, '109.39400043749173', '24.306092408058735', '62.0', '15.0', '2020-08-31 14:30:04');
+INSERT INTO `t_order_position` VALUES (10704, 2, 2648, 390, '109.39470111831021', '24.305976148376242', '66.0', '15.0', '2020-08-31 14:30:14');
+INSERT INTO `t_order_position` VALUES (10705, 2, 2648, 390, '109.39525163426904', '24.305826471925606', '62.0', '15.0', '2020-08-31 14:30:39');
+INSERT INTO `t_order_position` VALUES (10706, 2, 2648, 390, '109.39580213940978', '24.30572676799985', '70.0', '15.0', '2020-08-31 14:31:04');
+INSERT INTO `t_order_position` VALUES (10707, 2, 2648, 390, '109.39636930833724', '24.305560412755106', '60.0', '15.0', '2020-08-31 14:31:19');
+INSERT INTO `t_order_position` VALUES (10708, 2, 2648, 390, '109.39685305894527', '24.30542733195266', '64.0', '15.0', '2020-08-31 14:31:29');
+INSERT INTO `t_order_position` VALUES (10709, 2, 2648, 390, '109.39767041060556', '24.305277713869504', '66.0', '15.0', '2020-08-31 14:31:50');
+INSERT INTO `t_order_position` VALUES (10710, 2, 2648, 390, '109.39825422156923', '24.30529459877673', '62.0', '15.0', '2020-08-31 14:32:00');
+INSERT INTO `t_order_position` VALUES (10711, 2, 2648, 390, '109.39872124640932', '24.30509482796155', '60.0', '15.0', '2020-08-31 14:32:15');
+INSERT INTO `t_order_position` VALUES (10712, 2, 2648, 390, '109.39920494137736', '24.304911715175123', '60.0', '15.0', '2020-08-31 14:32:30');
+INSERT INTO `t_order_position` VALUES (10713, 2, 2648, 390, '109.39987210176021', '24.30487860319743', '62.0', '15.0', '2020-08-31 14:32:40');
+INSERT INTO `t_order_position` VALUES (10714, 2, 2648, 390, '109.40070601740489', '24.30474554803653', '66.0', '15.0', '2020-08-31 14:32:50');
+INSERT INTO `t_order_position` VALUES (10715, 2, 2648, 390, '109.40148986275801', '24.30452914376979', '66.0', '15.0', '2020-08-31 14:33:00');
+INSERT INTO `t_order_position` VALUES (10716, 2, 2648, 390, '109.4021402721003', '24.304462640554792', '68.0', '15.0', '2020-08-31 14:33:10');
+INSERT INTO `t_order_position` VALUES (10717, 2, 2648, 390, '109.40299076930934', '24.30424619973393', '66.0', '15.0', '2020-08-31 14:33:20');
+INSERT INTO `t_order_position` VALUES (10718, 2, 2648, 390, '109.40412472855087', '24.304246364480985', '70.0', '15.0', '2020-08-31 14:33:35');
+INSERT INTO `t_order_position` VALUES (10719, 2, 2648, 390, '109.40497513964424', '24.30394654291818', '72.0', '15.0', '2020-08-31 14:33:50');
+INSERT INTO `t_order_position` VALUES (10720, 2, 2648, 390, '109.40547536566756', '24.303779963573053', '72.0', '15.0', '2020-08-31 14:33:55');
+INSERT INTO `t_order_position` VALUES (10721, 2, 2648, 390, '109.40599225343846', '24.303613374003653', '58.0', '15.0', '2020-08-31 14:34:06');
+INSERT INTO `t_order_position` VALUES (10722, 2, 2648, 390, '109.40667585745989', '24.303363467084672', '72.0', '15.0', '2020-08-31 14:34:31');
+INSERT INTO `t_order_position` VALUES (10723, 2, 2648, 390, '109.40730942118199', '24.303130202263024', '94.0', '15.0', '2020-08-31 14:35:01');
+INSERT INTO `t_order_position` VALUES (10724, 2, 2648, 390, '109.40780958040912', '24.30279695614329', '70.0', '15.0', '2020-08-31 14:35:11');
+INSERT INTO `t_order_position` VALUES (10725, 2, 2648, 390, '109.408326411104', '24.30266363688349', '74.0', '15.0', '2020-08-31 14:35:16');
+INSERT INTO `t_order_position` VALUES (10726, 2, 2648, 390, '109.40882655609047', '24.302513645696948', '72.0', '15.0', '2020-08-31 14:35:21');
+INSERT INTO `t_order_position` VALUES (10727, 2, 2648, 390, '109.4093933684391', '24.302280328368866', '0.0', '15.0', '2020-08-31 14:35:46');
+INSERT INTO `t_order_position` VALUES (10728, 2, 2648, 390, '109.41017689693933', '24.302296889936162', '54.0', '15.0', '2020-08-31 14:37:12');
+INSERT INTO `t_order_position` VALUES (10729, 2, 2648, 390, '109.41107708641204', '24.30236338761952', '54.0', '15.0', '2020-08-31 14:37:22');
+INSERT INTO `t_order_position` VALUES (10730, 2, 2648, 390, '109.4118438833102', '24.30242987883008', '54.0', '15.0', '2020-08-31 14:37:32');
+INSERT INTO `t_order_position` VALUES (10731, 2, 2648, 390, '109.4124939723689', '24.302513034635503', '52.0', '15.0', '2020-08-31 14:38:12');
+INSERT INTO `t_order_position` VALUES (10732, 2, 2648, 390, '109.41322737730573', '24.302546163533982', '54.0', '15.0', '2020-08-31 14:38:22');
+INSERT INTO `t_order_position` VALUES (10733, 2, 2648, 390, '109.41391075722457', '24.30264593025855', '52.0', '15.0', '2020-08-31 14:38:32');
+INSERT INTO `t_order_position` VALUES (10734, 2, 2648, 390, '109.41449411367898', '24.302762371638867', '16.0', '15.0', '2020-08-31 14:38:42');
+INSERT INTO `t_order_position` VALUES (10735, 2, 2648, 390, '109.41451081973784', '24.30342882908082', '164.0', '15.0', '2020-08-31 14:38:57');
+INSERT INTO `t_order_position` VALUES (10736, 2, 2648, 390, '109.41442751359781', '24.30391204311001', '160.0', '15.0', '2020-08-31 14:39:02');
+INSERT INTO `t_order_position` VALUES (10737, 2, 2648, 390, '109.41429421776134', '24.304595212647442', '160.0', '15.0', '2020-08-31 14:39:07');
+INSERT INTO `t_order_position` VALUES (10738, 2, 2648, 390, '109.41109453968387', '24.315692705208832', '6.0', '15.0', '2020-08-31 14:44:24');
+INSERT INTO `t_order_position` VALUES (10739, 2, 2648, 390, '109.4113446162069', '24.31624249469909', '52.0', '15.0', '2020-08-31 14:44:34');
+INSERT INTO `t_order_position` VALUES (10740, 2, 2648, 390, '109.4121447357637', '24.316225661028582', '58.0', '15.0', '2020-08-31 14:44:44');
+INSERT INTO `t_order_position` VALUES (10741, 2, 2648, 390, '109.41272813785697', '24.31624217936251', '60.0', '15.0', '2020-08-31 14:44:49');
+INSERT INTO `t_order_position` VALUES (10742, 2, 2648, 390, '109.41324485135148', '24.316258701358844', '34.0', '15.0', '2020-08-31 14:44:54');
+INSERT INTO `t_order_position` VALUES (10743, 2, 2648, 390, '109.41354489829845', '24.316708481830265', '164.0', '15.0', '2020-08-31 14:45:04');
+INSERT INTO `t_order_position` VALUES (10744, 2, 2648, 390, '109.41332826135596', '24.317458323659327', '164.0', '15.0', '2020-08-31 14:45:15');
+INSERT INTO `t_order_position` VALUES (10745, 2, 2648, 390, '109.41319495034695', '24.318008199466814', '160.0', '15.0', '2020-08-31 14:45:25');
+INSERT INTO `t_order_position` VALUES (10746, 2, 2648, 390, '109.41319497973274', '24.318508052486855', '164.0', '15.0', '2020-08-31 14:45:35');
+INSERT INTO `t_order_position` VALUES (10747, 2, 2648, 390, '109.41334502618336', '24.319107833888044', '20.0', '15.0', '2020-08-31 14:46:15');
+INSERT INTO `t_order_position` VALUES (10748, 2, 2648, 390, '109.41376176406199', '24.31989081441472', '22.0', '15.0', '2020-08-31 14:46:25');
+INSERT INTO `t_order_position` VALUES (10749, 2, 2648, 390, '109.41407848225376', '24.32054052541123', '20.0', '15.0', '2020-08-31 14:46:35');
+INSERT INTO `t_order_position` VALUES (10750, 2, 2648, 390, '109.41437852354917', '24.321106928762557', '10.0', '15.0', '2020-08-31 14:47:15');
+INSERT INTO `t_order_position` VALUES (10751, 2, 2648, 390, '109.41447856341357', '24.321756705761224', '14.0', '15.0', '2020-08-31 14:47:30');
+INSERT INTO `t_order_position` VALUES (10752, 2, 2648, 390, '109.41471194177652', '24.322489745754318', '12.0', '15.0', '2020-08-31 14:47:40');
+INSERT INTO `t_order_position` VALUES (10753, 2, 2648, 390, '109.41499532276171', '24.32332273673111', '14.0', '15.0', '2020-08-31 14:47:50');
+INSERT INTO `t_order_position` VALUES (10754, 2, 2648, 390, '109.41501202155065', '24.32387257130659', '128.0', '15.0', '2020-08-31 14:48:26');
+INSERT INTO `t_order_position` VALUES (10755, 2, 2648, 390, '109.41039554053032', '24.335103891344797', '64.0', '15.0', '2020-08-31 14:54:23');
+INSERT INTO `t_order_position` VALUES (10756, 2, 2648, 390, '109.4110289969574', '24.335020474499895', '64.0', '15.0', '2020-08-31 14:54:28');
+INSERT INTO `t_order_position` VALUES (10757, 2, 2648, 390, '109.41179578894071', '24.334970335190405', '64.0', '15.0', '2020-08-31 14:54:33');
+INSERT INTO `t_order_position` VALUES (10758, 2, 2648, 390, '109.41254588313674', '24.334920173801898', '62.0', '15.0', '2020-08-31 14:54:38');
+INSERT INTO `t_order_position` VALUES (10759, 2, 2648, 390, '109.41342929486585', '24.3349199348811', '64.0', '15.0', '2020-08-31 14:54:43');
+INSERT INTO `t_order_position` VALUES (10760, 2, 2648, 390, '109.41412932732298', '24.33488639672189', '60.0', '15.0', '2020-08-31 14:54:48');
+INSERT INTO `t_order_position` VALUES (10761, 2, 2648, 390, '109.41486266647516', '24.334819500787262', '62.0', '15.0', '2020-08-31 14:54:53');
+INSERT INTO `t_order_position` VALUES (10762, 2, 2648, 390, '109.4155626476788', '24.33476925554815', '60.0', '15.0', '2020-08-31 14:54:58');
+INSERT INTO `t_order_position` VALUES (10763, 2, 2648, 390, '109.41617928000079', '24.334769008848642', '60.0', '15.0', '2020-08-31 14:55:03');
+INSERT INTO `t_order_position` VALUES (10764, 2, 2648, 390, '109.41682922410139', '24.334785392247287', '58.0', '15.0', '2020-08-31 14:55:08');
+INSERT INTO `t_order_position` VALUES (10765, 2, 2648, 390, '109.41769578287294', '24.334801653148453', '58.0', '15.0', '2020-08-31 14:55:13');
+INSERT INTO `t_order_position` VALUES (10766, 2, 2648, 390, '109.41849564982178', '24.334817914822246', '58.0', '15.0', '2020-08-31 14:55:18');
+INSERT INTO `t_order_position` VALUES (10767, 2, 2648, 390, '109.4194121243001', '24.334834082601706', '58.0', '15.0', '2020-08-31 14:55:23');
+INSERT INTO `t_order_position` VALUES (10768, 2, 2648, 390, '109.42026190837203', '24.334850252425145', '58.0', '15.0', '2020-08-31 14:55:28');
+INSERT INTO `t_order_position` VALUES (10769, 2, 2648, 390, '109.42089505742776', '24.334866526495663', '56.0', '15.0', '2020-08-31 14:55:33');
+INSERT INTO `t_order_position` VALUES (10770, 2, 2648, 390, '109.42151152431957', '24.334866131394243', '58.0', '15.0', '2020-08-31 14:55:38');
+INSERT INTO `t_order_position` VALUES (10771, 2, 2648, 390, '109.42249450246484', '24.334915451830295', '56.0', '15.0', '2020-08-31 14:55:48');
+INSERT INTO `t_order_position` VALUES (10772, 2, 2648, 390, '109.42344411227994', '24.334948091440918', '58.0', '15.0', '2020-08-31 14:55:58');
+INSERT INTO `t_order_position` VALUES (10773, 2, 2648, 390, '109.42432704033214', '24.33494741864013', '58.0', '15.0', '2020-08-31 14:56:08');
+INSERT INTO `t_order_position` VALUES (10774, 2, 2648, 390, '109.42549311274381', '24.334963138245502', '58.0', '15.0', '2020-08-31 14:56:18');
+INSERT INTO `t_order_position` VALUES (10775, 2, 2648, 390, '109.42620938096343', '24.334979191043022', '58.0', '15.0', '2020-08-31 14:56:24');
+INSERT INTO `t_order_position` VALUES (10776, 2, 2648, 390, '109.4267923702335', '24.334978678198734', '54.0', '15.0', '2020-08-31 14:56:34');
+INSERT INTO `t_order_position` VALUES (10777, 2, 2648, 390, '109.4272920667011', '24.33506153642906', '54.0', '15.0', '2020-08-31 14:57:19');
+INSERT INTO `t_order_position` VALUES (10778, 2, 2648, 390, '109.42810820477033', '24.335094098600816', '58.0', '15.0', '2020-08-31 14:57:32');
+INSERT INTO `t_order_position` VALUES (10779, 2, 2648, 390, '109.42890765092396', '24.335059999533144', '56.0', '15.0', '2020-08-31 14:57:39');
+INSERT INTO `t_order_position` VALUES (10780, 2, 2648, 390, '109.42997353040249', '24.33502559782803', '62.0', '15.0', '2020-08-31 14:57:49');
+INSERT INTO `t_order_position` VALUES (10781, 2, 2648, 390, '109.43053975800152', '24.3350416667454', '0.0', '15.0', '2020-08-31 14:58:09');
+INSERT INTO `t_order_position` VALUES (10782, 2, 2648, 390, '109.43105601257618', '24.3350910995873', '58.0', '15.0', '2020-08-31 14:58:29');
+INSERT INTO `t_order_position` VALUES (10783, 2, 2648, 390, '109.43190530021847', '24.33507350199997', '58.0', '15.0', '2020-08-31 14:58:39');
+INSERT INTO `t_order_position` VALUES (10784, 2, 2648, 390, '109.43282116389075', '24.335139105353775', '58.0', '15.0', '2020-08-31 14:58:49');
+INSERT INTO `t_order_position` VALUES (10785, 2, 2648, 390, '109.43367037993755', '24.335154765816622', '56.0', '15.0', '2020-08-31 14:58:59');
+INSERT INTO `t_order_position` VALUES (10786, 2, 2648, 390, '109.43420320572864', '24.33520410726925', '56.0', '15.0', '2020-08-31 14:59:05');
+INSERT INTO `t_order_position` VALUES (10787, 2, 2648, 390, '109.4348026149308', '24.335203367396243', '56.0', '15.0', '2020-08-31 14:59:10');
+INSERT INTO `t_order_position` VALUES (10788, 2, 2648, 390, '109.4353853552093', '24.335169309123305', '54.0', '15.0', '2020-08-31 14:59:15');
+INSERT INTO `t_order_position` VALUES (10789, 2, 2648, 390, '109.43598473106529', '24.335185200484116', '0.0', '15.0', '2020-08-31 14:59:35');
+INSERT INTO `t_order_position` VALUES (10790, 2, 2648, 390, '109.4361512464404', '24.33561819544873', '166.0', '15.0', '2020-08-31 15:00:00');
+INSERT INTO `t_order_position` VALUES (10791, 2, 2648, 390, '109.43610133382991', '24.336201430566668', '2.0', '15.0', '2020-08-31 15:00:05');
+INSERT INTO `t_order_position` VALUES (10792, 2, 2648, 390, '109.43605143968355', '24.33710124408282', '166.0', '15.0', '2020-08-31 15:00:15');
+INSERT INTO `t_order_position` VALUES (10793, 2, 2648, 390, '109.43625125811143', '24.337634167756725', '60.0', '15.0', '2020-08-31 15:00:25');
+INSERT INTO `t_order_position` VALUES (10794, 2, 2648, 390, '109.43725016106501', '24.337566189386774', '60.0', '15.0', '2020-08-31 15:00:35');
+INSERT INTO `t_order_position` VALUES (10795, 2, 2648, 390, '109.43731678053622', '24.33803263584284', '162.0', '15.0', '2020-08-31 15:00:50');
+INSERT INTO `t_order_position` VALUES (10796, 2, 2648, 390, '109.43708374543382', '24.3386827699635', '152.0', '15.0', '2020-08-31 15:01:00');
+INSERT INTO `t_order_position` VALUES (10797, 2, 2648, 390, '109.43663427196185', '24.339233217984255', '134.0', '15.0', '2020-08-31 15:01:10');
+INSERT INTO `t_order_position` VALUES (10798, 2, 2648, 390, '109.43603493640619', '24.339583908371733', '0.0', '15.0', '2020-08-31 15:01:30');
+INSERT INTO `t_order_position` VALUES (10799, 2, 2648, 390, '109.43671750667387', '24.339099811057583', '92.0', '15.0', '2020-08-31 15:02:35');
+INSERT INTO `t_order_position` VALUES (10800, 2, 2648, 390, '109.43711703688065', '24.33859941494492', '104.0', '15.0', '2020-08-31 15:02:51');
+INSERT INTO `t_order_position` VALUES (10801, 2, 2648, 390, '109.43733342363593', '24.337949303129044', '100.0', '15.0', '2020-08-31 15:03:06');
+INSERT INTO `t_order_position` VALUES (10802, 2, 2648, 390, '109.43685060504356', '24.3375833886697', '114.0', '15.0', '2020-08-31 15:03:26');
+INSERT INTO `t_order_position` VALUES (10803, 2, 2648, 390, '109.43613471585321', '24.337634320158287', '132.0', '15.0', '2020-08-31 15:03:41');
+INSERT INTO `t_order_position` VALUES (10804, 2, 2648, 390, '109.4355520250622', '24.338151596140605', '132.0', '15.0', '2020-08-31 15:03:51');
+INSERT INTO `t_order_position` VALUES (10805, 2, 2648, 390, '109.43480280667072', '24.33846912152038', '110.0', '15.0', '2020-08-31 15:04:01');
+INSERT INTO `t_order_position` VALUES (10806, 2, 2648, 390, '109.4342700003459', '24.338486441990625', '112.0', '15.0', '2020-08-31 15:04:11');
+INSERT INTO `t_order_position` VALUES (10807, 2, 2648, 390, '109.43342081014752', '24.338487465783746', '110.0', '15.0', '2020-08-31 15:04:26');
+INSERT INTO `t_order_position` VALUES (10808, 2, 2648, 390, '109.4325549348519', '24.33852180121676', '114.0', '15.0', '2020-08-31 15:04:37');
+INSERT INTO `t_order_position` VALUES (10809, 2, 2648, 390, '109.43175562895925', '24.338489381478972', '146.0', '15.0', '2020-08-31 15:04:47');
+INSERT INTO `t_order_position` VALUES (10810, 2, 2648, 390, '109.43163902105296', '24.337806367846838', '114.0', '15.0', '2020-08-31 15:05:02');
+INSERT INTO `t_order_position` VALUES (10811, 2, 2648, 390, '109.43165563742346', '24.337189854653097', '112.0', '15.0', '2020-08-31 15:05:07');
+INSERT INTO `t_order_position` VALUES (10812, 2, 2648, 390, '109.43170554419508', '24.336323374672496', '118.0', '15.0', '2020-08-31 15:05:17');
+INSERT INTO `t_order_position` VALUES (10813, 2, 2648, 390, '109.43165555521604', '24.335790246137368', '116.0', '15.0', '2020-08-31 15:05:22');
+INSERT INTO `t_order_position` VALUES (10814, 2, 2648, 390, '109.4315722588982', '24.33522383059042', '144.0', '15.0', '2020-08-31 15:05:32');
+INSERT INTO `t_order_position` VALUES (10815, 2, 2648, 390, '109.43092278956392', '24.335124567432267', '112.0', '15.0', '2020-08-31 15:05:42');
+INSERT INTO `t_order_position` VALUES (10816, 2, 2648, 390, '109.43010676749554', '24.33512543148513', '114.0', '15.0', '2020-08-31 15:05:52');
+INSERT INTO `t_order_position` VALUES (10817, 2, 2648, 390, '109.42937398294477', '24.335092858217518', '108.0', '15.0', '2020-08-31 15:06:12');
+INSERT INTO `t_order_position` VALUES (10818, 2, 2648, 390, '109.42879106672054', '24.3350601143425', '112.0', '15.0', '2020-08-31 15:06:22');
+INSERT INTO `t_order_position` VALUES (10819, 2, 2648, 390, '109.42815817023', '24.335077389005583', '112.0', '15.0', '2020-08-31 15:07:33');
+INSERT INTO `t_order_position` VALUES (10820, 2, 2648, 390, '109.4275752197264', '24.33506127550379', '102.0', '15.0', '2020-08-31 15:07:43');
+INSERT INTO `t_order_position` VALUES (10821, 2, 2648, 390, '109.42687565890293', '24.33507857561101', '102.0', '15.0', '2020-08-31 15:07:53');
+INSERT INTO `t_order_position` VALUES (10822, 2, 2648, 390, '109.42604281241594', '24.335029320728673', '110.0', '15.0', '2020-08-31 15:08:03');
+INSERT INTO `t_order_position` VALUES (10823, 2, 2648, 390, '109.4249600609577', '24.334980238621924', '108.0', '15.0', '2020-08-31 15:08:13');
+INSERT INTO `t_order_position` VALUES (10824, 2, 2648, 390, '109.42436035858468', '24.334964054549527', '110.0', '15.0', '2020-08-31 15:08:18');
+INSERT INTO `t_order_position` VALUES (10825, 2, 2648, 390, '109.42364402492687', '24.334964604170086', '112.0', '15.0', '2020-08-31 15:08:23');
+INSERT INTO `t_order_position` VALUES (10826, 2, 2648, 390, '109.42299430368395', '24.3349484206807', '112.0', '15.0', '2020-08-31 15:08:28');
+INSERT INTO `t_order_position` VALUES (10827, 2, 2648, 390, '109.42219461785702', '24.334932321477694', '112.0', '15.0', '2020-08-31 15:08:33');
+INSERT INTO `t_order_position` VALUES (10828, 2, 2648, 390, '109.42132825531559', '24.334916236603394', '112.0', '15.0', '2020-08-31 15:08:38');
+INSERT INTO `t_order_position` VALUES (10829, 2, 2648, 390, '109.4205784878718', '24.334900046684954', '114.0', '15.0', '2020-08-31 15:08:43');
+INSERT INTO `t_order_position` VALUES (10830, 2, 2648, 390, '109.41977870577671', '24.334900522235113', '112.0', '15.0', '2020-08-31 15:08:48');
+INSERT INTO `t_order_position` VALUES (10831, 2, 2648, 390, '109.41901221673061', '24.334884288872217', '112.0', '15.0', '2020-08-31 15:08:53');
+INSERT INTO `t_order_position` VALUES (10832, 2, 2648, 390, '109.41831235298659', '24.33486799506317', '110.0', '15.0', '2020-08-31 15:08:58');
+INSERT INTO `t_order_position` VALUES (10833, 2, 2648, 390, '109.41767912159501', '24.334851647132428', '112.0', '15.0', '2020-08-31 15:09:03');
+INSERT INTO `t_order_position` VALUES (10834, 2, 2648, 390, '109.41696254804089', '24.334868642666265', '112.0', '15.0', '2020-08-31 15:09:08');
+INSERT INTO `t_order_position` VALUES (10835, 2, 2648, 390, '109.41629594291963', '24.334852270166312', '114.0', '15.0', '2020-08-31 15:09:13');
+INSERT INTO `t_order_position` VALUES (10836, 2, 2648, 390, '109.41552932153583', '24.33486924029731', '110.0', '15.0', '2020-08-31 15:09:18');
+INSERT INTO `t_order_position` VALUES (10837, 2, 2648, 390, '109.41472933925377', '24.33491951958207', '112.0', '15.0', '2020-08-31 15:09:24');
+INSERT INTO `t_order_position` VALUES (10838, 2, 2648, 390, '109.41386265631459', '24.3349864528231', '112.0', '15.0', '2020-08-31 15:09:29');
+INSERT INTO `t_order_position` VALUES (10839, 2, 2648, 390, '109.41301260391432', '24.335053347823862', '112.0', '15.0', '2020-08-31 15:09:35');
+INSERT INTO `t_order_position` VALUES (10840, 2, 2648, 390, '109.41231253434506', '24.33512017491328', '112.0', '15.0', '2020-08-31 15:09:39');
+INSERT INTO `t_order_position` VALUES (10841, 2, 2648, 390, '109.41166244715893', '24.335170307589287', '112.0', '15.0', '2020-08-31 15:09:44');
+INSERT INTO `t_order_position` VALUES (10842, 2, 2648, 390, '109.41092899080746', '24.335237098409646', '110.0', '15.0', '2020-08-31 15:09:49');
+INSERT INTO `t_order_position` VALUES (10843, 2, 2648, 390, '109.41029553025555', '24.33530385045775', '116.0', '15.0', '2020-08-31 15:09:54');
+INSERT INTO `t_order_position` VALUES (10844, 2, 2648, 390, '109.4096787285397', '24.335503878557024', '112.0', '15.0', '2020-08-31 15:10:04');
+INSERT INTO `t_order_position` VALUES (10845, 2, 2648, 390, '109.40917857707691', '24.335187356609527', '108.0', '15.0', '2020-08-31 15:10:14');
+INSERT INTO `t_order_position` VALUES (10846, 2, 2648, 390, '109.40939525581321', '24.334387558564615', '118.0', '15.0', '2020-08-31 15:10:24');
+INSERT INTO `t_order_position` VALUES (10847, 2, 2648, 390, '109.40934521495711', '24.333921028728607', '116.0', '15.0', '2020-08-31 15:10:29');
+INSERT INTO `t_order_position` VALUES (10848, 2, 2648, 390, '109.40931184419608', '24.333437835219875', '116.0', '15.0', '2020-08-31 15:10:34');
+INSERT INTO `t_order_position` VALUES (10849, 2, 2648, 390, '109.40926177864645', '24.332554756644367', '114.0', '15.0', '2020-08-31 15:10:44');
+INSERT INTO `t_order_position` VALUES (10850, 2, 2648, 390, '109.40919504169334', '24.331671680274237', '114.0', '15.0', '2020-08-31 15:10:54');
+INSERT INTO `t_order_position` VALUES (10851, 2, 2648, 390, '109.40914499838483', '24.331171827131875', '118.0', '15.0', '2020-08-31 15:10:59');
+INSERT INTO `t_order_position` VALUES (10852, 2, 2648, 390, '109.40916164130086', '24.330688629442477', '118.0', '15.0', '2020-08-31 15:11:04');
+INSERT INTO `t_order_position` VALUES (10853, 2, 2648, 390, '109.40912826827976', '24.330172113058712', '118.0', '15.0', '2020-08-31 15:11:09');
+INSERT INTO `t_order_position` VALUES (10854, 2, 2648, 390, '109.40899485498615', '24.329455663344483', '118.0', '15.0', '2020-08-31 15:11:19');
+INSERT INTO `t_order_position` VALUES (10855, 2, 2648, 390, '109.40894479453338', '24.328672558263634', '116.0', '15.0', '2020-08-31 15:11:29');
+INSERT INTO `t_order_position` VALUES (10856, 2, 2648, 390, '109.40892809560826', '24.328206026582695', '116.0', '15.0', '2020-08-31 15:11:40');
+INSERT INTO `t_order_position` VALUES (10857, 2, 2648, 390, '109.408894703594', '24.327372935005673', '118.0', '15.0', '2020-08-31 15:11:55');
+INSERT INTO `t_order_position` VALUES (10858, 2, 2648, 390, '109.40884465660787', '24.32682309725906', '112.0', '15.0', '2020-08-31 15:12:00');
+INSERT INTO `t_order_position` VALUES (10859, 2, 2648, 390, '109.40884462624452', '24.326306579141832', '110.0', '15.0', '2020-08-31 15:12:05');
+INSERT INTO `t_order_position` VALUES (10860, 2, 2648, 390, '109.40887794096295', '24.325823382075583', '0.0', '15.0', '2020-08-31 15:12:15');
+INSERT INTO `t_order_position` VALUES (10861, 2, 2648, 390, '109.40886120966161', '24.32480701016022', '112.0', '15.0', '2020-08-31 15:12:30');
+INSERT INTO `t_order_position` VALUES (10862, 2, 2648, 390, '109.40889451749658', '24.324207180722244', '114.0', '15.0', '2020-08-31 15:12:35');
+INSERT INTO `t_order_position` VALUES (10863, 2, 2648, 390, '109.40887781265457', '24.32364067961242', '110.0', '15.0', '2020-08-31 15:12:40');
+INSERT INTO `t_order_position` VALUES (10864, 2, 2648, 390, '109.40892778903716', '24.322990863722197', '110.0', '15.0', '2020-08-31 15:12:55');
+INSERT INTO `t_order_position` VALUES (10865, 2, 2648, 390, '109.40891108324338', '24.322407701352184', '114.0', '15.0', '2020-08-31 15:13:05');
+INSERT INTO `t_order_position` VALUES (10866, 2, 2648, 390, '109.40901108273385', '24.321907837721575', '114.0', '15.0', '2020-08-31 15:13:10');
+INSERT INTO `t_order_position` VALUES (10867, 2, 2648, 390, '109.40906106760222', '24.321407978671644', '112.0', '15.0', '2020-08-31 15:13:15');
+INSERT INTO `t_order_position` VALUES (10868, 2, 2648, 390, '109.40894433320953', '24.3208248263695', '114.0', '15.0', '2020-08-31 15:13:35');
+INSERT INTO `t_order_position` VALUES (10869, 2, 2648, 390, '109.40899430942777', '24.32017501175015', '140.0', '15.0', '2020-08-31 15:13:55');
+INSERT INTO `t_order_position` VALUES (10870, 2, 2648, 390, '109.40817737716495', '24.319925145711622', '112.0', '15.0', '2020-08-31 15:14:05');
+INSERT INTO `t_order_position` VALUES (10871, 2, 2648, 390, '109.4075771718978', '24.319925171619584', '72.0', '15.0', '2020-08-31 15:14:21');
+INSERT INTO `t_order_position` VALUES (10872, 2, 2648, 390, '109.40852748578378', '24.31987513789424', '52.0', '15.0', '2020-08-31 15:14:31');
+INSERT INTO `t_order_position` VALUES (10873, 2, 2648, 390, '109.40929438059813', '24.31995837871779', '56.0', '12.0', '2020-08-31 15:14:36');
+INSERT INTO `t_order_position` VALUES (10874, 2, 2648, 390, '109.4117448969292', '24.31992466239908', '60.0', '15.0', '2020-08-31 15:14:46');
+INSERT INTO `t_order_position` VALUES (10875, 2, 2648, 390, '109.41256166807102', '24.31989114840357', '62.0', '15.0', '2020-08-31 15:14:51');
+INSERT INTO `t_order_position` VALUES (10876, 2, 2648, 390, '109.41317838913652', '24.319824337683006', '52.0', '15.0', '2020-08-31 15:14:56');
+INSERT INTO `t_order_position` VALUES (10877, 2, 2648, 390, '109.41371175954056', '24.319857506044276', '44.0', '15.0', '2020-08-31 15:15:01');
+INSERT INTO `t_order_position` VALUES (10878, 2, 2648, 390, '109.41432846767574', '24.320173884669362', '40.0', '15.0', '2020-08-31 15:15:11');
+INSERT INTO `t_order_position` VALUES (10879, 2, 2648, 390, '109.41476182134996', '24.320440325849322', '32.0', '15.0', '2020-08-31 15:15:16');
+INSERT INTO `t_order_position` VALUES (10880, 2, 2648, 390, '109.41526183854924', '24.320840028292547', '36.0', '15.0', '2020-08-31 15:15:26');
+INSERT INTO `t_order_position` VALUES (10881, 2, 2648, 390, '109.41579516112448', '24.32100644115236', '52.0', '15.0', '2020-08-31 15:15:41');
+INSERT INTO `t_order_position` VALUES (10882, 2, 2648, 390, '109.41667843781748', '24.32115602941079', '54.0', '15.0', '2020-08-31 15:15:56');
+INSERT INTO `t_order_position` VALUES (10883, 2, 2648, 390, '109.41722838019562', '24.32120576794101', '52.0', '15.0', '2020-08-31 15:16:01');
+INSERT INTO `t_order_position` VALUES (10884, 2, 2648, 390, '109.41789496090185', '24.32133874484217', '52.0', '15.0', '2020-08-31 15:16:06');
+INSERT INTO `t_order_position` VALUES (10885, 2, 2648, 390, '109.41889478024832', '24.321371554527666', '54.0', '15.0', '2020-08-31 15:16:16');
+INSERT INTO `t_order_position` VALUES (10886, 2, 2648, 390, '109.41994453826769', '24.321437613547157', '54.0', '15.0', '2020-08-31 15:16:26');
+INSERT INTO `t_order_position` VALUES (10887, 2, 2648, 390, '109.42051105211452', '24.321487260844997', '54.0', '15.0', '2020-08-31 15:16:31');
+INSERT INTO `t_order_position` VALUES (10888, 2, 2648, 390, '109.40005581829524', '24.309144034128032', '0.0', '15.0', '2020-09-01 13:37:49');
+INSERT INTO `t_order_position` VALUES (10889, 2, 2648, 390, '109.40008914131988', '24.308560886244344', '94.0', '15.0', '2020-09-01 13:38:53');
+INSERT INTO `t_order_position` VALUES (10890, 2, 2648, 390, '109.4003059359409', '24.308111084536062', '132.0', '15.0', '2020-09-01 13:39:08');
+INSERT INTO `t_order_position` VALUES (10891, 2, 2648, 390, '109.4001557969991', '24.307561207412338', '120.0', '15.0', '2020-09-01 13:39:18');
+INSERT INTO `t_order_position` VALUES (10892, 2, 2648, 390, '109.40000564720916', '24.306844713317897', '120.0', '14.0', '2020-09-01 13:39:28');
+INSERT INTO `t_order_position` VALUES (10893, 2, 2648, 390, '109.3999722506484', '24.30617823861829', '122.0', '13.0', '2020-09-01 13:39:38');
+INSERT INTO `t_order_position` VALUES (10894, 2, 2648, 390, '109.3997887555671', '24.305694996421074', '0.0', '15.0', '2020-09-01 13:39:48');
+INSERT INTO `t_order_position` VALUES (10895, 2, 2648, 390, '109.39913825433338', '24.30542820270715', '116.0', '15.0', '2020-09-01 13:40:03');
+INSERT INTO `t_order_position` VALUES (10896, 2, 2648, 390, '109.39825423331176', '24.3054945380422', '116.0', '15.0', '2020-09-01 13:40:13');
+INSERT INTO `t_order_position` VALUES (10897, 2, 2648, 390, '109.39750361952898', '24.305527571552464', '114.0', '15.0', '2020-09-01 13:40:23');
+INSERT INTO `t_order_position` VALUES (10898, 2, 2648, 390, '109.39690311404846', '24.305627292624507', '112.0', '15.0', '2020-09-01 13:41:04');
+INSERT INTO `t_order_position` VALUES (10899, 2, 2648, 390, '109.39623586269438', '24.30567698382398', '120.0', '15.0', '2020-09-01 13:41:09');
+INSERT INTO `t_order_position` VALUES (10900, 2, 2648, 390, '109.39546850486622', '24.305843239694138', '118.0', '15.0', '2020-09-01 13:41:14');
+INSERT INTO `t_order_position` VALUES (10901, 2, 2648, 390, '109.39485126083106', '24.305942902202894', '122.0', '15.0', '2020-09-01 13:41:19');
+INSERT INTO `t_order_position` VALUES (10902, 2, 2648, 390, '109.39436746907661', '24.30612592840995', '144.0', '15.0', '2020-09-01 13:41:24');
+INSERT INTO `t_order_position` VALUES (10903, 2, 2648, 390, '109.39371687137994', '24.306975317866325', '140.0', '15.0', '2020-09-01 13:41:34');
+INSERT INTO `t_order_position` VALUES (10904, 2, 2648, 390, '109.3931830218817', '24.30747486426628', '136.0', '15.0', '2020-09-01 13:41:39');
+INSERT INTO `t_order_position` VALUES (10905, 2, 2648, 390, '109.39264915577512', '24.307907752937773', '134.0', '15.0', '2020-09-01 13:41:44');
+INSERT INTO `t_order_position` VALUES (10906, 2, 2648, 390, '109.39213195782092', '24.30827399420565', '134.0', '15.0', '2020-09-01 13:41:49');
+INSERT INTO `t_order_position` VALUES (10907, 2, 2648, 390, '109.39141453321027', '24.3087567277788', '132.0', '15.0', '2020-09-01 13:41:59');
+INSERT INTO `t_order_position` VALUES (10908, 2, 2648, 390, '109.3906970704272', '24.308972854935384', '150.0', '15.0', '2020-09-01 13:42:19');
+INSERT INTO `t_order_position` VALUES (10909, 2, 2648, 390, '109.39026321958356', '24.308672648779073', '132.0', '15.0', '2020-09-01 13:42:29');
+INSERT INTO `t_order_position` VALUES (10910, 2, 2648, 390, '109.3898960971647', '24.30822252784005', '134.0', '15.0', '2020-09-01 13:42:34');
+INSERT INTO `t_order_position` VALUES (10911, 2, 2648, 390, '109.3895790110343', '24.307472528461506', '98.0', '15.0', '2020-09-01 13:42:44');
+INSERT INTO `t_order_position` VALUES (10912, 2, 2648, 390, '109.38999614837348', '24.307089607245203', '82.0', '15.0', '2020-09-01 13:42:59');
+INSERT INTO `t_order_position` VALUES (10913, 2, 2648, 390, '109.39056345999619', '24.306856736612012', '86.0', '15.0', '2020-09-01 13:43:34');
+INSERT INTO `t_order_position` VALUES (10914, 2, 2648, 390, '109.39044661976534', '24.30619019212076', '132.0', '15.0', '2020-09-01 13:43:49');
+INSERT INTO `t_order_position` VALUES (10915, 2, 2648, 390, '109.39014624489953', '24.305740121181948', '130.0', '15.0', '2020-09-01 13:44:05');
+INSERT INTO `t_order_position` VALUES (10916, 2, 2648, 390, '109.38981249048388', '24.30524003844909', '82.0', '15.0', '2020-09-01 13:44:20');
+INSERT INTO `t_order_position` VALUES (10917, 2, 2648, 390, '109.39042989962893', '24.305607024278817', '20.0', '15.0', '2020-09-01 13:44:30');
+INSERT INTO `t_order_position` VALUES (10918, 2, 2648, 390, '109.39081370410472', '24.306140456012464', '24.0', '15.0', '2020-09-01 13:44:40');
+INSERT INTO `t_order_position` VALUES (10919, 2, 2648, 390, '109.39128093280394', '24.306740583262453', '54.0', '15.0', '2020-09-01 13:48:06');
+INSERT INTO `t_order_position` VALUES (10920, 2, 2648, 390, '109.39179816967524', '24.306707592147802', '66.0', '15.0', '2020-09-01 13:48:16');
+INSERT INTO `t_order_position` VALUES (10921, 2, 2648, 390, '109.39276586446692', '24.30652490742146', '68.0', '15.0', '2020-09-01 13:48:26');
+INSERT INTO `t_order_position` VALUES (10922, 2, 2648, 390, '109.39353331186922', '24.306292088731936', '70.0', '15.0', '2020-09-01 13:48:37');
+INSERT INTO `t_order_position` VALUES (10923, 2, 2648, 390, '109.394083854826', '24.306109114949617', '60.0', '15.0', '2020-09-01 13:49:07');
+INSERT INTO `t_order_position` VALUES (10924, 2, 2648, 390, '109.394667756645', '24.306042777582146', '60.0', '15.0', '2020-09-01 13:49:32');
+INSERT INTO `t_order_position` VALUES (10925, 2, 2648, 390, '109.39521827441371', '24.30590976348056', '70.0', '15.0', '2020-09-01 13:49:57');
+INSERT INTO `t_order_position` VALUES (10926, 2, 2648, 390, '109.3958188223245', '24.305743437469186', '70.0', '15.0', '2020-09-01 13:50:37');
+INSERT INTO `t_order_position` VALUES (10927, 2, 2648, 390, '109.39653612573879', '24.305610471786608', '68.0', '15.0', '2020-09-01 13:50:53');
+INSERT INTO `t_order_position` VALUES (10928, 2, 2648, 390, '109.39705323757423', '24.305527386518282', '66.0', '15.0', '2020-09-01 13:51:08');
+INSERT INTO `t_order_position` VALUES (10929, 2, 2648, 390, '109.3978872590951', '24.305327783277416', '64.0', '15.0', '2020-09-01 13:51:18');
+INSERT INTO `t_order_position` VALUES (10930, 2, 2648, 390, '109.3986378526578', '24.305178106565762', '64.0', '15.0', '2020-09-01 13:51:23');
+INSERT INTO `t_order_position` VALUES (10931, 2, 2648, 390, '109.39953850949952', '24.304645237560567', '106.0', '15.0', '2020-09-01 13:51:33');
+INSERT INTO `t_order_position` VALUES (10932, 2, 2648, 390, '109.39962186058854', '24.30389549219671', '110.0', '15.0', '2020-09-01 13:51:38');
+INSERT INTO `t_order_position` VALUES (10933, 2, 2648, 390, '109.399638494556', '24.303129064630195', '116.0', '15.0', '2020-09-01 13:51:43');
+INSERT INTO `t_order_position` VALUES (10934, 2, 2648, 390, '109.39958841058086', '24.302329293461025', '118.0', '15.0', '2020-09-01 13:51:48');
+INSERT INTO `t_order_position` VALUES (10935, 2, 2648, 390, '109.39953833921146', '24.30174612292721', '118.0', '15.0', '2020-09-01 13:51:53');
+INSERT INTO `t_order_position` VALUES (10936, 2, 2648, 390, '109.39948827457562', '24.301279583416882', '118.0', '15.0', '2020-09-01 13:51:58');
+INSERT INTO `t_order_position` VALUES (10937, 2, 2648, 390, '109.3994715563258', '24.30061311606391', '118.0', '15.0', '2020-09-01 13:52:08');
+INSERT INTO `t_order_position` VALUES (10938, 2, 2648, 390, '109.39945484393508', '24.300046618259678', '106.0', '15.0', '2020-09-01 13:52:18');
+INSERT INTO `t_order_position` VALUES (10939, 2, 2648, 390, '109.40013865841492', '24.299730258097796', '64.0', '15.0', '2020-09-01 13:52:38');
+INSERT INTO `t_order_position` VALUES (10940, 2, 2648, 390, '109.40102259725987', '24.2995972067777', '70.0', '15.0', '2020-09-01 13:52:48');
+INSERT INTO `t_order_position` VALUES (10941, 2, 2648, 390, '109.40180642101227', '24.299214177452736', '88.0', '15.0', '2020-09-01 13:52:58');
+INSERT INTO `t_order_position` VALUES (10942, 2, 2648, 390, '109.40215661822936', '24.298831036916283', '90.0', '15.0', '2020-09-01 13:53:03');
+INSERT INTO `t_order_position` VALUES (10943, 2, 2648, 390, '109.40255682204503', '24.298147993379608', '102.0', '15.0', '2020-09-01 13:53:14');
+INSERT INTO `t_order_position` VALUES (10944, 2, 2648, 390, '109.4027068851201', '24.29769816028718', '104.0', '15.0', '2020-09-01 13:53:19');
+INSERT INTO `t_order_position` VALUES (10945, 2, 2648, 390, '109.4028402667615', '24.29718167742035', '106.0', '15.0', '2020-09-01 13:53:24');
+INSERT INTO `t_order_position` VALUES (10946, 2, 2648, 390, '109.40309036299179', '24.296348645143897', '106.0', '15.0', '2020-09-01 13:53:34');
+INSERT INTO `t_order_position` VALUES (10947, 2, 2648, 390, '109.4032404143931', '24.29576551728397', '106.0', '15.0', '2020-09-01 13:53:39');
+INSERT INTO `t_order_position` VALUES (10948, 2, 2648, 390, '109.4033571195286', '24.295299013960964', '106.0', '15.0', '2020-09-01 13:53:44');
+INSERT INTO `t_order_position` VALUES (10949, 2, 2648, 390, '109.40347381911381', '24.29474920282598', '108.0', '15.0', '2020-09-01 13:53:49');
+INSERT INTO `t_order_position` VALUES (10950, 2, 2648, 390, '109.40359051706417', '24.29418272985161', '110.0', '15.0', '2020-09-01 13:53:54');
+INSERT INTO `t_order_position` VALUES (10951, 2, 2648, 390, '109.40374055506291', '24.29343298505296', '110.0', '15.0', '2020-09-01 13:54:04');
+INSERT INTO `t_order_position` VALUES (10952, 2, 2648, 390, '109.40355707724258', '24.292683193626587', '136.0', '15.0', '2020-09-01 13:54:14');
+INSERT INTO `t_order_position` VALUES (10953, 2, 2648, 390, '109.40325688786916', '24.292316596193974', '134.0', '15.0', '2020-09-01 13:54:19');
+INSERT INTO `t_order_position` VALUES (10954, 2, 2648, 390, '109.4029566892737', '24.291866687765825', '140.0', '15.0', '2020-09-01 13:54:24');
+INSERT INTO `t_order_position` VALUES (10955, 2, 2648, 390, '109.40250639258241', '24.291350101755615', '136.0', '15.0', '2020-09-01 13:54:29');
+INSERT INTO `t_order_position` VALUES (10956, 2, 2648, 390, '109.40212279534742', '24.29085018256664', '138.0', '15.0', '2020-09-01 13:54:34');
+INSERT INTO `t_order_position` VALUES (10957, 2, 2648, 390, '109.40172251474416', '24.290366914952127', '130.0', '15.0', '2020-09-01 13:54:39');
+INSERT INTO `t_order_position` VALUES (10958, 2, 2648, 390, '109.4014389687786', '24.289867007102263', '132.0', '15.0', '2020-09-01 13:54:44');
+INSERT INTO `t_order_position` VALUES (10959, 2, 2648, 390, '109.40117209872987', '24.289400422961517', '134.0', '15.0', '2020-09-01 13:54:49');
+INSERT INTO `t_order_position` VALUES (10960, 2, 2648, 390, '109.40097193908359', '24.288967175931198', '132.0', '15.0', '2020-09-01 13:54:54');
+INSERT INTO `t_order_position` VALUES (10961, 2, 2648, 390, '109.40068837617558', '24.288350629719705', '130.0', '15.0', '2020-09-01 13:55:14');
+INSERT INTO `t_order_position` VALUES (10962, 2, 2648, 390, '109.40033810173065', '24.287834029951437', '112.0', '15.0', '2020-09-01 13:55:24');
+INSERT INTO `t_order_position` VALUES (10963, 2, 2648, 390, '109.39970431100201', '24.28781718081469', '112.0', '15.0', '2020-09-01 13:55:29');
+INSERT INTO `t_order_position` VALUES (10964, 2, 2648, 390, '109.3990705023828', '24.28781697615408', '114.0', '15.0', '2020-09-01 13:55:34');
+INSERT INTO `t_order_position` VALUES (10965, 2, 2648, 390, '109.39853675619146', '24.28785011353003', '112.0', '15.0', '2020-09-01 13:55:39');
+INSERT INTO `t_order_position` VALUES (10966, 2, 2648, 390, '109.3979863125579', '24.287816587077582', '114.0', '15.0', '2020-09-01 13:55:44');
+INSERT INTO `t_order_position` VALUES (10967, 2, 2648, 390, '109.39713560136286', '24.287799586166848', '112.0', '15.0', '2020-09-01 13:55:55');
+INSERT INTO `t_order_position` VALUES (10968, 2, 2648, 390, '109.39651839561807', '24.287749336949677', '120.0', '15.0', '2020-09-01 13:57:10');
+INSERT INTO `t_order_position` VALUES (10969, 2, 2648, 390, '109.39593454295598', '24.287815717401106', '112.0', '15.0', '2020-09-01 13:57:25');
+INSERT INTO `t_order_position` VALUES (10970, 2, 2648, 390, '109.39508375366788', '24.287831967538672', '114.0', '15.0', '2020-09-01 13:57:35');
+INSERT INTO `t_order_position` VALUES (10971, 2, 2648, 390, '109.39448318292088', '24.287948289298516', '132.0', '15.0', '2020-09-01 13:57:45');
+INSERT INTO `t_order_position` VALUES (10972, 2, 2648, 390, '109.39404943992595', '24.288247962936573', '136.0', '15.0', '2020-09-01 13:57:50');
+INSERT INTO `t_order_position` VALUES (10973, 2, 2648, 390, '109.39363237304218', '24.288564299809575', '134.0', '15.0', '2020-09-01 13:57:55');
+INSERT INTO `t_order_position` VALUES (10974, 2, 2648, 390, '109.39296505337724', '24.289130405544043', '138.0', '15.0', '2020-09-01 13:58:05');
+INSERT INTO `t_order_position` VALUES (10975, 2, 2648, 390, '109.39258133701627', '24.289480067460367', '136.0', '15.0', '2020-09-01 13:58:21');
+INSERT INTO `t_order_position` VALUES (10976, 2, 2648, 390, '109.39241452218484', '24.289979809114474', '34.0', '15.0', '2020-09-01 13:58:41');
+INSERT INTO `t_order_position` VALUES (10977, 2, 2648, 390, '109.39308191979329', '24.290463387039924', '32.0', '15.0', '2020-09-01 13:58:51');
+INSERT INTO `t_order_position` VALUES (10978, 2, 2648, 390, '109.39396618872647', '24.291063696724592', '32.0', '15.0', '2020-09-01 13:59:01');
+INSERT INTO `t_order_position` VALUES (10979, 2, 2648, 390, '109.39438328458111', '24.2913471652384', '34.0', '15.0', '2020-09-01 13:59:06');
+INSERT INTO `t_order_position` VALUES (10980, 2, 2648, 390, '109.39506730395865', '24.29179737645638', '32.0', '15.0', '2020-09-01 13:59:16');
+INSERT INTO `t_order_position` VALUES (10981, 2, 2648, 390, '109.39561784297648', '24.292197520936597', '34.0', '15.0', '2020-09-01 13:59:21');
+INSERT INTO `t_order_position` VALUES (10982, 2, 2648, 390, '109.3962517783102', '24.29263101400448', '34.0', '15.0', '2020-09-01 13:59:26');
+INSERT INTO `t_order_position` VALUES (10983, 2, 2648, 390, '109.39685233105376', '24.293031153550416', '40.0', '15.0', '2020-09-01 13:59:31');
+INSERT INTO `t_order_position` VALUES (10984, 2, 2648, 390, '109.39755294811361', '24.293381334157353', '46.0', '15.0', '2020-09-01 13:59:36');
+INSERT INTO `t_order_position` VALUES (10985, 2, 2648, 390, '109.39830357672797', '24.293631544214442', '54.0', '15.0', '2020-09-01 13:59:41');
+INSERT INTO `t_order_position` VALUES (10986, 2, 2648, 390, '109.39917093096004', '24.293815124022107', '54.0', '15.0', '2020-09-01 13:59:46');
+INSERT INTO `t_order_position` VALUES (10987, 2, 2648, 390, '109.39982142036372', '24.293898638429262', '52.0', '15.0', '2020-09-01 13:59:51');
+INSERT INTO `t_order_position` VALUES (10988, 2, 2648, 390, '109.40068870991594', '24.294032178513568', '54.0', '15.0', '2020-09-01 14:00:01');
+INSERT INTO `t_order_position` VALUES (10989, 2, 2648, 390, '109.40122240995171', '24.294132284313044', '54.0', '15.0', '2020-09-01 14:00:06');
+INSERT INTO `t_order_position` VALUES (10990, 2, 2648, 390, '109.40212299698989', '24.294282441208356', '52.0', '15.0', '2020-09-01 14:00:11');
+INSERT INTO `t_order_position` VALUES (10991, 2, 2648, 390, '109.40279007486512', '24.29441586147857', '44.0', '15.0', '2020-09-01 14:00:16');
+INSERT INTO `t_order_position` VALUES (10992, 2, 2648, 390, '109.40325702296343', '24.294615877734277', '34.0', '15.0', '2020-09-01 14:00:21');
+INSERT INTO `t_order_position` VALUES (10993, 2, 2648, 390, '109.4038740612574', '24.295149134435846', '32.0', '15.0', '2020-09-01 14:00:31');
+INSERT INTO `t_order_position` VALUES (10994, 2, 2648, 390, '109.40447440118149', '24.295599065695207', '32.0', '15.0', '2020-09-01 14:00:41');
+INSERT INTO `t_order_position` VALUES (10995, 2, 2648, 390, '109.40492464542639', '24.295949000097472', '34.0', '15.0', '2020-09-01 14:00:52');
+INSERT INTO `t_order_position` VALUES (10996, 2, 2648, 390, '109.40534152905148', '24.296265600545546', '34.0', '15.0', '2020-09-01 14:01:02');
+INSERT INTO `t_order_position` VALUES (10997, 2, 2648, 390, '109.40584177747598', '24.296632181984133', '34.0', '15.0', '2020-09-01 14:01:12');
+INSERT INTO `t_order_position` VALUES (10998, 2, 2648, 390, '109.40655878138082', '24.29719869486185', '34.0', '15.0', '2020-09-01 14:01:52');
+INSERT INTO `t_order_position` VALUES (10999, 2, 2648, 390, '109.40717571690357', '24.297665217829717', '34.0', '15.0', '2020-09-01 14:02:02');
+INSERT INTO `t_order_position` VALUES (11000, 2, 2648, 390, '109.40764257151733', '24.297965114504898', '34.0', '15.0', '2020-09-01 14:02:12');
+INSERT INTO `t_order_position` VALUES (11001, 2, 2648, 390, '109.4081594377778', '24.2983649680324', '32.0', '15.0', '2020-09-01 14:02:27');
+INSERT INTO `t_order_position` VALUES (11002, 2, 2648, 390, '109.40867628894196', '24.298731486840587', '32.0', '15.0', '2020-09-01 14:02:42');
+INSERT INTO `t_order_position` VALUES (11003, 2, 2648, 390, '109.4092597796592', '24.298548156754723', '92.0', '15.0', '2020-09-01 14:03:07');
+INSERT INTO `t_order_position` VALUES (11004, 2, 2648, 390, '109.40964318691987', '24.29808159096697', '94.0', '15.0', '2020-09-01 14:03:22');
+INSERT INTO `t_order_position` VALUES (11005, 2, 2648, 390, '109.40947650744071', '24.298598117668792', '144.0', '14.0', '2020-09-01 14:03:43');
+INSERT INTO `t_order_position` VALUES (11006, 2, 2648, 390, '109.40894305023342', '24.298998048735225', '126.0', '15.0', '2020-09-01 14:03:53');
+INSERT INTO `t_order_position` VALUES (11007, 2, 2648, 390, '109.40835955921487', '24.29933132447574', '138.0', '14.0', '2020-09-01 14:04:03');
+INSERT INTO `t_order_position` VALUES (11008, 2, 2648, 390, '109.40795944951171', '24.299697900481988', '116.0', '15.0', '2020-09-01 14:04:58');
+INSERT INTO `t_order_position` VALUES (11009, 2, 2648, 390, '109.40710913862316', '24.29959795517685', '162.0', '15.0', '2020-09-01 14:05:13');
+INSERT INTO `t_order_position` VALUES (11010, 2, 2648, 390, '109.40650889122124', '24.29941467605245', '104.0', '15.0', '2020-09-01 14:05:23');
+INSERT INTO `t_order_position` VALUES (11011, 2, 2648, 390, '109.40569185853863', '24.29914806313096', '160.0', '15.0', '2020-09-01 14:05:43');
+INSERT INTO `t_order_position` VALUES (11012, 2, 2648, 390, '109.404924821662', '24.29894807158906', '100.0', '15.0', '2020-09-01 14:05:53');
+INSERT INTO `t_order_position` VALUES (11013, 2, 2648, 390, '109.40420778139256', '24.298731398887654', '158.0', '15.0', '2020-09-01 14:06:03');
+INSERT INTO `t_order_position` VALUES (11014, 2, 2648, 390, '109.40372418184201', '24.298581383453747', '162.0', '15.0', '2020-09-01 14:06:09');
+INSERT INTO `t_order_position` VALUES (11015, 2, 2648, 390, '109.40307380617222', '24.298381346266638', '0.0', '15.0', '2020-09-01 14:06:19');
+INSERT INTO `t_order_position` VALUES (11016, 2, 2648, 390, '109.40250680959052', '24.29844789123678', '146.0', '15.0', '2020-09-01 14:06:39');
+INSERT INTO `t_order_position` VALUES (11017, 2, 2648, 390, '109.40208991407573', '24.298897669214302', '144.0', '15.0', '2020-09-01 14:06:49');
+INSERT INTO `t_order_position` VALUES (11018, 2, 2648, 390, '109.4014061774198', '24.299464008757873', '126.0', '15.0', '2020-09-01 14:06:59');
+INSERT INTO `t_order_position` VALUES (11019, 2, 2648, 390, '109.40040551217356', '24.29969701125655', '114.0', '15.0', '2020-09-01 14:07:09');
+INSERT INTO `t_order_position` VALUES (11020, 2, 2648, 390, '109.39990516376137', '24.299846819685097', '120.0', '15.0', '2020-09-01 14:08:50');
+INSERT INTO `t_order_position` VALUES (11021, 2, 2648, 390, '109.39938812244411', '24.299963289113165', '120.0', '15.0', '2020-09-01 14:09:00');
+INSERT INTO `t_order_position` VALUES (11022, 2, 2648, 390, '109.39883770745341', '24.300046412718963', '114.0', '15.0', '2020-09-01 14:09:10');
+INSERT INTO `t_order_position` VALUES (11023, 2, 2648, 390, '109.39818719690861', '24.300112824974967', '114.0', '15.0', '2020-09-01 14:09:20');
+INSERT INTO `t_order_position` VALUES (11024, 2, 2648, 390, '109.39740322333884', '24.30021248892778', '120.0', '15.0', '2020-09-01 14:09:30');
+INSERT INTO `t_order_position` VALUES (11025, 2, 2648, 390, '109.39655249698329', '24.300328759672983', '118.0', '15.0', '2020-09-01 14:09:40');
+INSERT INTO `t_order_position` VALUES (11026, 2, 2648, 390, '109.39588523983711', '24.300461748803244', '134.0', '15.0', '2020-09-01 14:09:50');
+INSERT INTO `t_order_position` VALUES (11027, 2, 2648, 390, '109.3953180593953', '24.300644753756846', '38.0', '15.0', '2020-09-01 14:10:35');
+INSERT INTO `t_order_position` VALUES (11028, 2, 2648, 390, '109.39603537231793', '24.300395172440773', '54.0', '15.0', '2020-09-01 14:11:56');
+INSERT INTO `t_order_position` VALUES (11029, 2, 2648, 390, '109.3954515125745', '24.300561511215715', '118.0', '15.0', '2020-09-01 14:13:06');
+INSERT INTO `t_order_position` VALUES (11030, 2, 2648, 390, '109.39481758541633', '24.300661164389002', '114.0', '15.0', '2020-09-01 14:13:11');
+INSERT INTO `t_order_position` VALUES (11031, 2, 2648, 390, '109.39420032324996', '24.30076081025097', '114.0', '15.0', '2020-09-01 14:13:16');
+INSERT INTO `t_order_position` VALUES (11032, 2, 2648, 390, '109.39363309180524', '24.300810484166913', '114.0', '15.0', '2020-09-01 14:13:21');
+INSERT INTO `t_order_position` VALUES (11033, 2, 2648, 390, '109.39288232124396', '24.30086003775037', '114.0', '15.0', '2020-09-01 14:13:42');
+INSERT INTO `t_order_position` VALUES (11034, 2, 2648, 390, '109.3923150564841', '24.300909681833918', '114.0', '15.0', '2020-09-01 14:13:52');
+INSERT INTO `t_order_position` VALUES (11035, 2, 2648, 390, '109.39151418380452', '24.30090917939029', '114.0', '15.0', '2020-09-01 14:14:02');
+INSERT INTO `t_order_position` VALUES (11036, 2, 2648, 390, '109.3908467674563', '24.300892079913805', '110.0', '15.0', '2020-09-01 14:14:17');
+INSERT INTO `t_order_position` VALUES (11037, 2, 2648, 390, '109.39007921583332', '24.300891554862233', '112.0', '15.0', '2020-09-01 14:14:27');
+INSERT INTO `t_order_position` VALUES (11038, 2, 2648, 390, '109.38941175994707', '24.300907741345846', '114.0', '15.0', '2020-09-01 14:14:37');
+INSERT INTO `t_order_position` VALUES (11039, 2, 2648, 390, '109.38876097113179', '24.300907261713697', '110.0', '15.0', '2020-09-01 14:14:57');
+INSERT INTO `t_order_position` VALUES (11040, 2, 2648, 390, '109.3882436646056', '24.300906868967555', '110.0', '15.0', '2020-09-01 14:15:02');
+INSERT INTO `t_order_position` VALUES (11041, 2, 2648, 390, '109.38764290833001', '24.30092306173081', '114.0', '15.0', '2020-09-01 14:15:07');
+INSERT INTO `t_order_position` VALUES (11042, 2, 2648, 390, '109.38705882718682', '24.30097257762728', '118.0', '15.0', '2020-09-01 14:15:12');
+INSERT INTO `t_order_position` VALUES (11043, 2, 2648, 390, '109.38644135826004', '24.301088699123614', '120.0', '15.0', '2020-09-01 14:15:17');
+INSERT INTO `t_order_position` VALUES (11044, 2, 2648, 390, '109.38567367347812', '24.301254661741623', '120.0', '15.0', '2020-09-01 14:15:22');
+INSERT INTO `t_order_position` VALUES (11045, 2, 2648, 390, '109.38477244776611', '24.301453806420195', '120.0', '15.0', '2020-09-01 14:15:28');
+INSERT INTO `t_order_position` VALUES (11046, 2, 2648, 390, '109.38400470982889', '24.301603060884652', '120.0', '15.0', '2020-09-01 14:15:33');
+INSERT INTO `t_order_position` VALUES (11047, 2, 2648, 390, '109.38323694827365', '24.301752294262453', '120.0', '15.0', '2020-09-01 14:15:38');
+INSERT INTO `t_order_position` VALUES (11048, 2, 2648, 390, '109.38248585378687', '24.30188486155862', '120.0', '15.0', '2020-09-01 14:15:43');
+INSERT INTO `t_order_position` VALUES (11049, 2, 2648, 390, '109.38175143101623', '24.302050749001573', '120.0', '15.0', '2020-09-01 14:15:48');
+INSERT INTO `t_order_position` VALUES (11050, 2, 2648, 390, '109.38096691213657', '24.302249889310648', '122.0', '15.0', '2020-09-01 14:15:53');
+INSERT INTO `t_order_position` VALUES (11051, 2, 2648, 390, '109.380249141133', '24.302449079142157', '122.0', '15.0', '2020-09-01 14:15:58');
+INSERT INTO `t_order_position` VALUES (11052, 2, 2648, 390, '109.37958143141894', '24.30266496717', '124.0', '15.0', '2020-09-01 14:16:03');
+INSERT INTO `t_order_position` VALUES (11053, 2, 2648, 390, '109.37889701615573', '24.3029641298072', '126.0', '15.0', '2020-09-01 14:16:08');
+INSERT INTO `t_order_position` VALUES (11054, 2, 2648, 390, '109.37832943817656', '24.30319676173811', '124.0', '15.0', '2020-09-01 14:16:13');
+INSERT INTO `t_order_position` VALUES (11055, 2, 2648, 390, '109.37721094151946', '24.30366201343524', '126.0', '15.0', '2020-09-01 14:16:23');
+INSERT INTO `t_order_position` VALUES (11056, 2, 2648, 390, '109.37664332867632', '24.30389461441093', '126.0', '15.0', '2020-09-01 14:16:28');
+INSERT INTO `t_order_position` VALUES (11057, 2, 2648, 390, '109.37584197161011', '24.304193572087485', '132.0', '15.0', '2020-09-01 14:16:38');
+INSERT INTO `t_order_position` VALUES (11058, 2, 2648, 390, '109.37579191807876', '24.30476000619189', '20.0', '15.0', '2020-09-01 14:16:53');
+INSERT INTO `t_order_position` VALUES (11059, 2, 2648, 390, '109.37607576572638', '24.30517688575491', '24.0', '15.0', '2020-09-01 14:16:58');
+INSERT INTO `t_order_position` VALUES (11060, 2, 2648, 390, '109.37644309145857', '24.30567716959018', '64.0', '15.0', '2020-09-01 14:17:08');
+INSERT INTO `t_order_position` VALUES (11061, 2, 2648, 390, '109.37736128627013', '24.3052450381728', '80.0', '15.0', '2020-09-01 14:17:19');
+INSERT INTO `t_order_position` VALUES (11062, 2, 2648, 390, '109.37787879563334', '24.304912397477825', '78.0', '15.0', '2020-09-01 14:17:24');
+INSERT INTO `t_order_position` VALUES (11063, 2, 2648, 390, '109.37847977877239', '24.304813103661573', '22.0', '15.0', '2020-09-01 14:17:34');
+INSERT INTO `t_order_position` VALUES (11064, 2, 2648, 390, '109.37934792262357', '24.306047017646495', '20.0', '15.0', '2020-09-01 14:17:44');
+INSERT INTO `t_order_position` VALUES (11065, 2, 2648, 390, '109.38053319805375', '24.307231256211455', '42.0', '15.0', '2020-09-01 14:17:54');
+INSERT INTO `t_order_position` VALUES (11066, 2, 2648, 390, '109.3811174515798', '24.30751510924323', '44.0', '15.0', '2020-09-01 14:17:59');
+INSERT INTO `t_order_position` VALUES (11067, 2, 2648, 390, '109.38166830227294', '24.307698947211268', '60.0', '15.0', '2020-09-01 14:18:04');
+INSERT INTO `t_order_position` VALUES (11068, 2, 2648, 390, '109.38220243693183', '24.307666156951633', '62.0', '15.0', '2020-09-01 14:18:09');
+INSERT INTO `t_order_position` VALUES (11069, 2, 2648, 390, '109.38282001751502', '24.30765009919798', '60.0', '15.0', '2020-09-01 14:18:24');
+INSERT INTO `t_order_position` VALUES (11070, 2, 2648, 390, '109.3835210348915', '24.30760078350727', '54.0', '15.0', '2020-09-01 14:18:34');
+INSERT INTO `t_order_position` VALUES (11071, 2, 2648, 390, '109.38403844698767', '24.30768457441598', '48.0', '15.0', '2020-09-01 14:18:40');
+INSERT INTO `t_order_position` VALUES (11072, 2, 2648, 390, '109.38457254326636', '24.307851679021507', '48.0', '15.0', '2020-09-01 14:18:45');
+INSERT INTO `t_order_position` VALUES (11073, 2, 2648, 390, '109.38545711138147', '24.308069066304462', '48.0', '15.0', '2020-09-01 14:18:54');
+INSERT INTO `t_order_position` VALUES (11074, 2, 2648, 390, '109.38595777238316', '24.307786250737873', '4.0', '15.0', '2020-09-01 14:19:09');
+INSERT INTO `t_order_position` VALUES (11075, 2, 2648, 390, '109.38592442447504', '24.308302732998623', '28.0', '15.0', '2020-09-01 14:20:40');
+INSERT INTO `t_order_position` VALUES (11076, 2, 2648, 390, '109.38625822577441', '24.3086695726362', '24.0', '15.0', '2020-09-01 14:20:50');
+INSERT INTO `t_order_position` VALUES (11077, 2, 2648, 390, '109.38659202345606', '24.309053069914647', '24.0', '15.0', '2020-09-01 14:21:00');
+INSERT INTO `t_order_position` VALUES (11078, 2, 2648, 390, '109.38700927115089', '24.309653232879278', '18.0', '15.0', '2020-09-01 14:21:10');
+INSERT INTO `t_order_position` VALUES (11079, 2, 2648, 390, '109.38722624322695', '24.31006995041157', '14.0', '15.0', '2020-09-01 14:21:15');
+INSERT INTO `t_order_position` VALUES (11080, 2, 2648, 390, '109.38747661775832', '24.3109698814551', '12.0', '15.0', '2020-09-01 14:21:25');
+INSERT INTO `t_order_position` VALUES (11081, 2, 2648, 390, '109.38761015876003', '24.311603131442865', '10.0', '15.0', '2020-09-01 14:21:35');
+INSERT INTO `t_order_position` VALUES (11082, 2, 2648, 390, '109.38789388816173', '24.312219837278864', '32.0', '15.0', '2020-09-01 14:21:46');
+INSERT INTO `t_order_position` VALUES (11083, 2, 2648, 390, '109.3881609237026', '24.31278654239694', '148.0', '15.0', '2020-09-01 14:23:21');
+INSERT INTO `t_order_position` VALUES (11084, 2, 2648, 390, '109.38756021311907', '24.31361915688042', '150.0', '15.0', '2020-09-01 14:23:31');
+INSERT INTO `t_order_position` VALUES (11085, 2, 2648, 390, '109.38707629803557', '24.314318559817504', '148.0', '15.0', '2020-09-01 14:24:07');
+INSERT INTO `t_order_position` VALUES (11086, 2, 2648, 390, '109.38667581236204', '24.31495137668792', '150.0', '15.0', '2020-09-01 14:24:17');
+INSERT INTO `t_order_position` VALUES (11087, 2, 2648, 390, '109.3861751963967', '24.31575072070857', '150.0', '14.0', '2020-09-01 14:24:27');
+INSERT INTO `t_order_position` VALUES (11088, 2, 2648, 390, '109.385941575586', '24.316183727185965', '150.0', '14.0', '2020-09-01 14:24:32');
+INSERT INTO `t_order_position` VALUES (11089, 2, 2648, 390, '109.38544094252038', '24.316949734927487', '148.0', '15.0', '2020-09-01 14:24:42');
+INSERT INTO `t_order_position` VALUES (11090, 2, 2648, 390, '109.38517393350399', '24.31734938255787', '124.0', '15.0', '2020-09-01 14:24:47');
+INSERT INTO `t_order_position` VALUES (11091, 2, 2648, 390, '109.38442287063758', '24.31703213597061', '142.0', '15.0', '2020-09-01 14:24:57');
+INSERT INTO `t_order_position` VALUES (11092, 2, 2648, 390, '109.38392213152024', '24.3165151616262', '142.0', '15.0', '2020-09-01 14:25:02');
+INSERT INTO `t_order_position` VALUES (11093, 2, 2648, 390, '109.38313763627373', '24.3159812469992', '108.0', '15.0', '2020-09-01 14:25:12');
+INSERT INTO `t_order_position` VALUES (11094, 2, 2648, 390, '109.38252006040211', '24.315947326522675', '114.0', '15.0', '2020-09-01 14:25:17');
+INSERT INTO `t_order_position` VALUES (11095, 2, 2648, 390, '109.38195254782092', '24.315963427877957', '114.0', '15.0', '2020-09-01 14:25:22');
+INSERT INTO `t_order_position` VALUES (11096, 2, 2648, 390, '109.38093433038348', '24.315962394493845', '114.0', '15.0', '2020-09-01 14:25:32');
+INSERT INTO `t_order_position` VALUES (11097, 2, 2648, 390, '109.38036678108959', '24.31594514133919', '110.0', '15.0', '2020-09-01 14:25:37');
+INSERT INTO `t_order_position` VALUES (11098, 2, 2648, 390, '109.3798493008701', '24.315961254322488', '112.0', '15.0', '2020-09-01 14:25:42');
+INSERT INTO `t_order_position` VALUES (11099, 2, 2648, 390, '109.37923164784394', '24.315943925836812', '112.0', '15.0', '2020-09-01 14:25:47');
+INSERT INTO `t_order_position` VALUES (11100, 2, 2648, 390, '109.37839695934348', '24.31592634293605', '108.0', '15.0', '2020-09-01 14:25:52');
+INSERT INTO `t_order_position` VALUES (11101, 2, 2648, 390, '109.37749546412232', '24.315858675453622', '112.0', '15.0', '2020-09-01 14:25:57');
+INSERT INTO `t_order_position` VALUES (11102, 2, 2648, 390, '109.37676089188636', '24.315824500998545', '112.0', '15.0', '2020-09-01 14:26:02');
+INSERT INTO `t_order_position` VALUES (11103, 2, 2648, 390, '109.37615986643371', '24.31584045366692', '114.0', '15.0', '2020-09-01 14:26:07');
+INSERT INTO `t_order_position` VALUES (11104, 2, 2648, 390, '109.37540856542938', '24.315839551322583', '112.0', '15.0', '2020-09-01 14:26:12');
+INSERT INTO `t_order_position` VALUES (11105, 2, 2648, 390, '109.37447358556986', '24.315838403916146', '112.0', '15.0', '2020-09-01 14:26:17');
+INSERT INTO `t_order_position` VALUES (11106, 2, 2648, 390, '109.37358866627896', '24.315837293374923', '112.0', '15.0', '2020-09-01 14:26:22');
+INSERT INTO `t_order_position` VALUES (11107, 2, 2648, 390, '109.37278720518772', '24.315802943837607', '112.0', '15.0', '2020-09-01 14:26:27');
+INSERT INTO `t_order_position` VALUES (11108, 2, 2648, 390, '109.37218609584663', '24.315785500092456', '112.0', '15.0', '2020-09-01 14:26:33');
+INSERT INTO `t_order_position` VALUES (11109, 2, 2648, 390, '109.37120091560767', '24.3157008870766', '114.0', '15.0', '2020-09-01 14:26:43');
+INSERT INTO `t_order_position` VALUES (11110, 2, 2648, 390, '109.37056638031035', '24.315716694031206', '110.0', '15.0', '2020-09-01 14:26:48');
+INSERT INTO `t_order_position` VALUES (11111, 2, 2648, 390, '109.36989843556819', '24.315749105500867', '110.0', '15.0', '2020-09-01 14:26:58');
+INSERT INTO `t_order_position` VALUES (11112, 2, 2648, 390, '109.36931397078904', '24.315748297354734', '108.0', '15.0', '2020-09-01 14:27:13');
+INSERT INTO `t_order_position` VALUES (11113, 2, 2648, 390, '109.36839550104962', '24.315680361660352', '112.0', '15.0', '2020-09-01 14:27:23');
+INSERT INTO `t_order_position` VALUES (11114, 2, 2648, 390, '109.36739350933343', '24.315678930050886', '114.0', '14.0', '2020-09-01 14:27:33');
+INSERT INTO `t_order_position` VALUES (11115, 2, 2648, 390, '109.36680900048174', '24.315678082816504', '112.0', '15.0', '2020-09-01 14:27:39');
+INSERT INTO `t_order_position` VALUES (11116, 2, 2648, 390, '109.36622448075425', '24.315660565074097', '102.0', '15.0', '2020-09-01 14:27:43');
+INSERT INTO `t_order_position` VALUES (11117, 2, 2648, 390, '109.36572342580129', '24.315126649070436', '114.0', '15.0', '2020-09-01 14:27:53');
+INSERT INTO `t_order_position` VALUES (11118, 2, 2648, 390, '109.36575679845063', '24.314626846897923', '110.0', '15.0', '2020-09-01 14:27:58');
+INSERT INTO `t_order_position` VALUES (11119, 2, 2648, 390, '109.36577347115467', '24.314143681835795', '0.0', '15.0', '2020-09-01 14:28:18');
+INSERT INTO `t_order_position` VALUES (11120, 2, 2648, 390, '109.36577341963633', '24.31326061121399', '114.0', '15.0', '2020-09-01 14:28:43');
+INSERT INTO `t_order_position` VALUES (11121, 2, 2648, 390, '109.3657399799332', '24.3126107553524', '112.0', '15.0', '2020-09-01 14:28:49');
+INSERT INTO `t_order_position` VALUES (11122, 2, 2648, 390, '109.3657733272928', '24.311677750257758', '114.0', '15.0', '2020-09-01 14:28:54');
+INSERT INTO `t_order_position` VALUES (11123, 2, 2648, 390, '109.36575658654714', '24.310994596603173', '114.0', '15.0', '2020-09-01 14:28:59');
+INSERT INTO `t_order_position` VALUES (11124, 2, 2648, 390, '109.36575655058232', '24.310378114744815', '114.0', '15.0', '2020-09-01 14:29:04');
+INSERT INTO `t_order_position` VALUES (11125, 2, 2648, 390, '109.36573981857777', '24.309844916695166', '112.0', '15.0', '2020-09-01 14:29:09');
+INSERT INTO `t_order_position` VALUES (11126, 2, 2648, 390, '109.36573978941743', '24.309345066949987', '112.0', '15.0', '2020-09-01 14:29:14');
+INSERT INTO `t_order_position` VALUES (11127, 2, 2648, 390, '109.36577316399267', '24.308878590245737', '0.0', '15.0', '2020-09-01 14:29:34');
+INSERT INTO `t_order_position` VALUES (11128, 2, 2648, 390, '109.36573972137697', '24.30817875160662', '126.0', '15.0', '2020-09-01 14:29:59');
+INSERT INTO `t_order_position` VALUES (11129, 2, 2648, 390, '109.36552257397936', '24.307578609895693', '124.0', '15.0', '2020-09-01 14:30:04');
+INSERT INTO `t_order_position` VALUES (11130, 2, 2648, 390, '109.36532212539517', '24.30696183061942', '124.0', '15.0', '2020-09-01 14:30:09');
+INSERT INTO `t_order_position` VALUES (11131, 2, 2648, 390, '109.36513838368552', '24.306461707000906', '124.0', '15.0', '2020-09-01 14:30:14');
+INSERT INTO `t_order_position` VALUES (11132, 2, 2648, 390, '109.36495464395766', '24.306011567579453', '124.0', '15.0', '2020-09-01 14:30:19');
+INSERT INTO `t_order_position` VALUES (11133, 2, 2648, 390, '109.3648210005232', '24.30544487175203', '126.0', '15.0', '2020-09-01 14:30:24');
+INSERT INTO `t_order_position` VALUES (11134, 2, 2648, 390, '109.36450362820422', '24.30466129715547', '124.0', '15.0', '2020-09-01 14:30:29');
+INSERT INTO `t_order_position` VALUES (11135, 2, 2648, 390, '109.36430317109415', '24.303994529465896', '124.0', '15.0', '2020-09-01 14:30:39');
+INSERT INTO `t_order_position` VALUES (11136, 2, 2648, 390, '109.36411942038067', '24.3034277560763', '126.0', '15.0', '2020-09-01 14:30:49');
+INSERT INTO `t_order_position` VALUES (11137, 2, 2648, 390, '109.3639022711112', '24.30296090052082', '124.0', '15.0', '2020-09-01 14:30:54');
+INSERT INTO `t_order_position` VALUES (11138, 2, 2648, 390, '109.36371851939482', '24.30241078738055', '122.0', '15.0', '2020-09-01 14:30:59');
+INSERT INTO `t_order_position` VALUES (11139, 2, 2648, 390, '109.36356817252845', '24.30189404813135', '124.0', '15.0', '2020-09-01 14:31:04');
+INSERT INTO `t_order_position` VALUES (11140, 2, 2648, 390, '109.36341782603569', '24.301393970104378', '122.0', '15.0', '2020-09-01 14:31:09');
+INSERT INTO `t_order_position` VALUES (11141, 2, 2648, 390, '109.3632173679761', '24.300810506611445', '124.0', '15.0', '2020-09-01 14:31:14');
+INSERT INTO `t_order_position` VALUES (11142, 2, 2648, 390, '109.36296679367925', '24.300077010898516', '124.0', '15.0', '2020-09-01 14:31:19');
+INSERT INTO `t_order_position` VALUES (11143, 2, 2648, 390, '109.36274962906805', '24.29946019683142', '124.0', '15.0', '2020-09-01 14:31:24');
+INSERT INTO `t_order_position` VALUES (11144, 2, 2648, 390, '109.36261597391109', '24.298826850670977', '118.0', '15.0', '2020-09-01 14:31:29');
+INSERT INTO `t_order_position` VALUES (11145, 2, 2648, 390, '109.36258252169391', '24.29801038408853', '114.0', '15.0', '2020-09-01 14:31:34');
+INSERT INTO `t_order_position` VALUES (11146, 2, 2648, 390, '109.36259917837616', '24.297227319117944', '114.0', '15.0', '2020-09-01 14:31:39');
+INSERT INTO `t_order_position` VALUES (11147, 2, 2648, 390, '109.36256573779852', '24.29661079144063', '114.0', '15.0', '2020-09-01 14:31:45');
+INSERT INTO `t_order_position` VALUES (11148, 2, 2648, 390, '109.36256570769665', '24.296094285077306', '112.0', '15.0', '2020-09-01 14:31:50');
+INSERT INTO `t_order_position` VALUES (11149, 2, 2648, 390, '109.36254897331777', '24.29554442988124', '112.0', '15.0', '2020-09-01 14:31:55');
+INSERT INTO `t_order_position` VALUES (11150, 2, 2648, 390, '109.36254894515828', '24.295061246875285', '122.0', '15.0', '2020-09-01 14:32:00');
+INSERT INTO `t_order_position` VALUES (11151, 2, 2648, 390, '109.36251550648173', '24.29447804306968', '112.0', '15.0', '2020-09-01 14:32:10');
+INSERT INTO `t_order_position` VALUES (11152, 2, 2648, 390, '109.36223154214733', '24.29407772368184', '150.0', '15.0', '2020-09-01 14:32:25');
+INSERT INTO `t_order_position` VALUES (11153, 2, 2648, 390, '109.36173044919316', '24.293810352099072', '146.0', '15.0', '2020-09-01 14:32:35');
+INSERT INTO `t_order_position` VALUES (11154, 2, 2648, 390, '109.36127945663785', '24.293509731687987', '150.0', '15.0', '2020-09-01 14:32:45');
+INSERT INTO `t_order_position` VALUES (11155, 2, 2648, 390, '109.3608618641753', '24.29319249880892', '144.0', '15.0', '2020-09-01 14:32:55');
+INSERT INTO `t_order_position` VALUES (11156, 2, 2648, 390, '109.36039414612195', '24.292675244285473', '140.0', '15.0', '2020-09-01 14:33:05');
+INSERT INTO `t_order_position` VALUES (11157, 2, 2648, 390, '109.35984289880679', '24.292041220051296', '150.0', '15.0', '2020-09-01 14:33:15');
+INSERT INTO `t_order_position` VALUES (11158, 2, 2648, 390, '109.35935847737119', '24.291723865981403', '152.0', '15.0', '2020-09-01 14:33:25');
+INSERT INTO `t_order_position` VALUES (11159, 2, 2648, 390, '109.35865690202932', '24.291439473701512', '156.0', '15.0', '2020-09-01 14:33:35');
+INSERT INTO `t_order_position` VALUES (11160, 2, 2648, 390, '109.35805553851701', '24.291121914741197', '100.0', '15.0', '2020-09-01 14:33:46');
+INSERT INTO `t_order_position` VALUES (11161, 2, 2648, 390, '109.35700315465914', '24.290936886591243', '104.0', '15.0', '2020-09-01 14:33:56');
+INSERT INTO `t_order_position` VALUES (11162, 2, 2648, 390, '109.35650201131314', '24.290852737593443', '104.0', '15.0', '2020-09-01 14:34:01');
+INSERT INTO `t_order_position` VALUES (11163, 2, 2648, 390, '109.35600086461936', '24.290801906829714', '112.0', '15.0', '2020-09-01 14:34:06');
+INSERT INTO `t_order_position` VALUES (11164, 2, 2648, 390, '109.35541617966403', '24.290617637836846', '132.0', '15.0', '2020-09-01 14:34:16');
+INSERT INTO `t_order_position` VALUES (11165, 2, 2648, 390, '109.35511546408043', '24.290217250452816', '136.0', '15.0', '2020-09-01 14:34:21');
+INSERT INTO `t_order_position` VALUES (11166, 2, 2648, 390, '109.35476462696232', '24.289750129993372', '138.0', '15.0', '2020-09-01 14:34:26');
+INSERT INTO `t_order_position` VALUES (11167, 2, 2648, 390, '109.35439708298836', '24.289299640231537', '140.0', '15.0', '2020-09-01 14:34:31');
+INSERT INTO `t_order_position` VALUES (11168, 2, 2648, 390, '109.353795637124', '24.288482192908663', '138.0', '15.0', '2020-09-01 14:34:41');
+INSERT INTO `t_order_position` VALUES (11169, 2, 2648, 390, '109.35332784710114', '24.287948216393254', '136.0', '15.0', '2020-09-01 14:34:46');
+INSERT INTO `t_order_position` VALUES (11170, 2, 2648, 390, '109.35294358439496', '24.28744770517786', '144.0', '15.0', '2020-09-01 14:34:51');
+INSERT INTO `t_order_position` VALUES (11171, 2, 2648, 390, '109.35230872577297', '24.286896768316335', '146.0', '15.0', '2020-09-01 14:34:56');
+INSERT INTO `t_order_position` VALUES (11172, 2, 2648, 390, '109.35180752049784', '24.286529336374475', '144.0', '15.0', '2020-09-01 14:35:01');
+INSERT INTO `t_order_position` VALUES (11173, 2, 2648, 390, '109.35142325909345', '24.286228753178474', '148.0', '15.0', '2020-09-01 14:35:06');
+INSERT INTO `t_order_position` VALUES (11174, 2, 2648, 390, '109.35095545915918', '24.285861374166092', '154.0', '15.0', '2020-09-01 14:35:11');
+INSERT INTO `t_order_position` VALUES (11175, 2, 2648, 390, '109.35047095387876', '24.28557726919179', '150.0', '15.0', '2020-09-01 14:35:16');
+INSERT INTO `t_order_position` VALUES (11176, 2, 2648, 390, '109.34971913503315', '24.285259359694113', '150.0', '15.0', '2020-09-01 14:35:26');
+INSERT INTO `t_order_position` VALUES (11177, 2, 2648, 390, '109.34911767093774', '24.28495837488866', '158.0', '15.0', '2020-09-01 14:35:36');
+INSERT INTO `t_order_position` VALUES (11178, 2, 2648, 390, '109.34836583467845', '24.284607129470434', '154.0', '15.0', '2020-09-01 14:36:01');
+INSERT INTO `t_order_position` VALUES (11179, 2, 2648, 390, '109.34786460308386', '24.28432297795884', '152.0', '15.0', '2020-09-01 14:36:11');
+INSERT INTO `t_order_position` VALUES (11180, 2, 2648, 390, '109.34721299400206', '24.283905258701623', '152.0', '15.0', '2020-09-01 14:37:27');
+INSERT INTO `t_order_position` VALUES (11181, 2, 2648, 390, '109.34662821800354', '24.28363760912169', '154.0', '15.0', '2020-09-01 14:37:37');
+INSERT INTO `t_order_position` VALUES (11182, 2, 2648, 390, '109.34724640971983', '24.28392198096397', '40.0', '15.0', '2020-09-01 14:38:22');
+INSERT INTO `t_order_position` VALUES (11183, 2, 2648, 390, '109.34798155360565', '24.284323190207026', '40.0', '15.0', '2020-09-01 14:38:33');
+INSERT INTO `t_order_position` VALUES (11184, 2, 2648, 390, '109.34895059467617', '24.284841444455445', '40.0', '15.0', '2020-09-01 14:38:43');
+INSERT INTO `t_order_position` VALUES (11185, 2, 2648, 390, '109.34943510859027', '24.285075575157492', '40.0', '15.0', '2020-09-01 14:38:48');
+INSERT INTO `t_order_position` VALUES (11186, 2, 2648, 390, '109.34996973908049', '24.28530979248833', '40.0', '15.0', '2020-09-01 14:38:53');
+INSERT INTO `t_order_position` VALUES (11187, 2, 2648, 390, '109.35082180164521', '24.285761168565184', '38.0', '15.0', '2020-09-01 14:39:03');
+INSERT INTO `t_order_position` VALUES (11188, 2, 2648, 390, '109.35133971875264', '24.286078653038626', '32.0', '15.0', '2020-09-01 14:39:08');
+INSERT INTO `t_order_position` VALUES (11189, 2, 2648, 390, '109.35187434528115', '24.286529454133436', '30.0', '15.0', '2020-09-01 14:39:13');
+INSERT INTO `t_order_position` VALUES (11190, 2, 2648, 390, '109.35242567097316', '24.286946957613242', '34.0', '15.0', '2020-09-01 14:39:18');
+INSERT INTO `t_order_position` VALUES (11191, 2, 2648, 390, '109.3529268765864', '24.287414353239548', '22.0', '15.0', '2020-09-01 14:39:23');
+INSERT INTO `t_order_position` VALUES (11192, 2, 2648, 390, '109.35337796530385', '24.28796496493186', '22.0', '15.0', '2020-09-01 14:39:28');
+INSERT INTO `t_order_position` VALUES (11193, 2, 2648, 390, '109.35376222299482', '24.28843215083951', '24.0', '15.0', '2020-09-01 14:39:33');
+INSERT INTO `t_order_position` VALUES (11194, 2, 2648, 390, '109.35419660115465', '24.2890160508028', '22.0', '15.0', '2020-09-01 14:39:43');
+INSERT INTO `t_order_position` VALUES (11195, 2, 2648, 390, '109.35473121442286', '24.289716749839073', '24.0', '15.0', '2020-09-01 14:39:53');
+INSERT INTO `t_order_position` VALUES (11196, 2, 2648, 390, '109.35501522612067', '24.290100449086932', '30.0', '15.0', '2020-09-01 14:39:58');
+INSERT INTO `t_order_position` VALUES (11197, 2, 2648, 390, '109.35539946973792', '24.290534302234306', '28.0', '15.0', '2020-09-01 14:40:03');
+INSERT INTO `t_order_position` VALUES (11198, 2, 2648, 390, '109.35583381747104', '24.290834946518014', '54.0', '15.0', '2020-09-01 14:40:13');
+INSERT INTO `t_order_position` VALUES (11199, 2, 2648, 390, '109.35685281367027', '24.29093663452923', '50.0', '15.0', '2020-09-01 14:40:23');
+INSERT INTO `t_order_position` VALUES (11200, 2, 2648, 390, '109.35760451955507', '24.291037859154663', '54.0', '15.0', '2020-09-01 14:40:33');
+INSERT INTO `t_order_position` VALUES (11201, 2, 2648, 390, '109.35838963079368', '24.29130574234305', '40.0', '15.0', '2020-09-01 14:40:43');
+INSERT INTO `t_order_position` VALUES (11202, 2, 2648, 390, '109.35927495711654', '24.291690406980013', '38.0', '15.0', '2020-09-01 14:40:54');
+INSERT INTO `t_order_position` VALUES (11203, 2, 2648, 390, '109.35979278743737', '24.292024477453378', '28.0', '15.0', '2020-09-01 14:40:59');
+INSERT INTO `t_order_position` VALUES (11204, 2, 2648, 390, '109.36024380410747', '24.292458403553173', '26.0', '15.0', '2020-09-01 14:41:04');
+INSERT INTO `t_order_position` VALUES (11205, 2, 2648, 390, '109.36061130024105', '24.292892191704457', '26.0', '15.0', '2020-09-01 14:41:09');
+INSERT INTO `t_order_position` VALUES (11206, 2, 2648, 390, '109.36126274987716', '24.29344305931058', '30.0', '15.0', '2020-09-01 14:41:19');
+INSERT INTO `t_order_position` VALUES (11207, 2, 2648, 390, '109.36181396642107', '24.293877129703077', '30.0', '15.0', '2020-09-01 14:41:29');
+INSERT INTO `t_order_position` VALUES (11208, 2, 2648, 390, '109.36223154797283', '24.29417769249513', '0.0', '15.0', '2020-09-01 14:41:49');
+INSERT INTO `t_order_position` VALUES (11209, 2, 2648, 390, '109.36274933774254', '24.294461745942932', '22.0', '15.0', '2020-09-01 14:42:14');
+INSERT INTO `t_order_position` VALUES (11210, 2, 2648, 390, '109.3627994716555', '24.29492834517309', '164.0', '15.0', '2020-09-01 14:42:24');
+INSERT INTO `t_order_position` VALUES (11211, 2, 2648, 390, '109.36276612738781', '24.295961305287747', '0.0', '15.0', '2020-09-01 14:42:34');
+INSERT INTO `t_order_position` VALUES (11212, 2, 2648, 390, '109.3627828733282', '24.29671109855081', '0.0', '15.0', '2020-09-01 14:42:39');
+INSERT INTO `t_order_position` VALUES (11213, 2, 2648, 390, '109.36276621381468', '24.29744417877096', '0.0', '15.0', '2020-09-01 14:42:44');
+INSERT INTO `t_order_position` VALUES (11214, 2, 2648, 390, '109.36276625557176', '24.298160623834', '4.0', '15.0', '2020-09-01 14:42:49');
+INSERT INTO `t_order_position` VALUES (11215, 2, 2648, 390, '109.3628498094383', '24.2988938605849', '12.0', '15.0', '2020-09-01 14:42:54');
+INSERT INTO `t_order_position` VALUES (11216, 2, 2648, 390, '109.36306698222171', '24.29966062770872', '10.0', '15.0', '2020-09-01 14:42:59');
+INSERT INTO `t_order_position` VALUES (11217, 2, 2648, 390, '109.36333426368803', '24.30049411764496', '10.0', '15.0', '2020-09-01 14:43:04');
+INSERT INTO `t_order_position` VALUES (11218, 2, 2648, 390, '109.36351802212916', '24.301127539435775', '10.0', '15.0', '2020-09-01 14:43:10');
+INSERT INTO `t_order_position` VALUES (11219, 2, 2648, 390, '109.3637852955626', '24.301877719633456', '10.0', '15.0', '2020-09-01 14:43:15');
+INSERT INTO `t_order_position` VALUES (11220, 2, 2648, 390, '109.36400245619511', '24.30252785268425', '10.0', '15.0', '2020-09-01 14:43:20');
+INSERT INTO `t_order_position` VALUES (11221, 2, 2648, 390, '109.3642029149287', '24.303194621095205', '10.0', '15.0', '2020-09-01 14:43:25');
+INSERT INTO `t_order_position` VALUES (11222, 2, 2648, 390, '109.36445348099376', '24.303928111187403', '10.0', '15.0', '2020-09-01 14:43:30');
+INSERT INTO `t_order_position` VALUES (11223, 2, 2648, 390, '109.36470404146878', '24.304594953779237', '10.0', '15.0', '2020-09-01 14:43:35');
+INSERT INTO `t_order_position` VALUES (11224, 2, 2648, 390, '109.36492119573228', '24.30522842173887', '10.0', '15.0', '2020-09-01 14:43:40');
+INSERT INTO `t_order_position` VALUES (11225, 2, 2648, 390, '109.36510494340162', '24.305811853930912', '10.0', '15.0', '2020-09-01 14:43:45');
+INSERT INTO `t_order_position` VALUES (11226, 2, 2648, 390, '109.36523858093068', '24.306295240896024', '10.0', '15.0', '2020-09-01 14:43:50');
+INSERT INTO `t_order_position` VALUES (11227, 2, 2648, 390, '109.36538891709279', '24.306745329283206', '12.0', '15.0', '2020-09-01 14:43:55');
+INSERT INTO `t_order_position` VALUES (11228, 2, 2648, 390, '109.36562276723414', '24.307362157808786', '14.0', '15.0', '2020-09-01 14:44:05');
+INSERT INTO `t_order_position` VALUES (11229, 2, 2648, 390, '109.36592341820119', '24.307962422507323', '42.0', '15.0', '2020-09-01 14:44:20');
+INSERT INTO `t_order_position` VALUES (11230, 2, 2648, 390, '109.36650794580657', '24.30802992952872', '70.0', '15.0', '2020-09-01 14:44:30');
+INSERT INTO `t_order_position` VALUES (11231, 2, 2648, 390, '109.36714254583833', '24.30778092933567', '72.0', '15.0', '2020-09-01 14:44:40');
+INSERT INTO `t_order_position` VALUES (11232, 2, 2648, 390, '109.36776043417133', '24.30753189484253', '74.0', '15.0', '2020-09-01 14:44:50');
+INSERT INTO `t_order_position` VALUES (11233, 2, 2648, 390, '109.36836161057413', '24.307266165072225', '72.0', '15.0', '2020-09-01 14:44:55');
+INSERT INTO `t_order_position` VALUES (11234, 2, 2648, 390, '109.36892937742905', '24.3070003789215', '72.0', '15.0', '2020-09-01 14:45:00');
+INSERT INTO `t_order_position` VALUES (11235, 2, 2648, 390, '109.36949713444237', '24.30673458409542', '70.0', '15.0', '2020-09-01 14:45:05');
+INSERT INTO `t_order_position` VALUES (11236, 2, 2648, 390, '109.37013167739795', '24.30648553354467', '70.0', '15.0', '2020-09-01 14:45:10');
+INSERT INTO `t_order_position` VALUES (11237, 2, 2648, 390, '109.37073281288367', '24.306269749943933', '72.0', '15.0', '2020-09-01 14:45:15');
+INSERT INTO `t_order_position` VALUES (11238, 2, 2648, 390, '109.37126714351757', '24.306037205377116', '72.0', '15.0', '2020-09-01 14:45:20');
+INSERT INTO `t_order_position` VALUES (11239, 2, 2648, 390, '109.37176807319072', '24.30587125501085', '74.0', '15.0', '2020-09-01 14:45:25');
+INSERT INTO `t_order_position` VALUES (11240, 2, 2648, 390, '109.37231908153801', '24.305605393212023', '74.0', '15.0', '2020-09-01 14:45:30');
+INSERT INTO `t_order_position` VALUES (11241, 2, 2648, 390, '109.37283668735002', '24.305372802717738', '72.0', '15.0', '2020-09-01 14:45:36');
+INSERT INTO `t_order_position` VALUES (11242, 2, 2648, 390, '109.37340437415052', '24.305123606587284', '72.0', '15.0', '2020-09-01 14:45:41');
+INSERT INTO `t_order_position` VALUES (11243, 2, 2648, 390, '109.37387187411626', '24.304940921214083', '72.0', '15.0', '2020-09-01 14:45:46');
+INSERT INTO `t_order_position` VALUES (11244, 2, 2648, 390, '109.37472337284622', '24.304608750983128', '72.0', '15.0', '2020-09-01 14:45:56');
+INSERT INTO `t_order_position` VALUES (11245, 2, 2648, 390, '109.37574179526364', '24.30414346702781', '70.0', '15.0', '2020-09-01 14:46:06');
+INSERT INTO `t_order_position` VALUES (11246, 2, 2648, 390, '109.37652645906742', '24.30382783065288', '72.0', '15.0', '2020-09-01 14:46:11');
+INSERT INTO `t_order_position` VALUES (11247, 2, 2648, 390, '109.37721093274526', '24.30351205918466', '70.0', '15.0', '2020-09-01 14:46:16');
+INSERT INTO `t_order_position` VALUES (11248, 2, 2648, 390, '109.37776184054954', '24.303296090501316', '70.0', '15.0', '2020-09-01 14:46:21');
+INSERT INTO `t_order_position` VALUES (11249, 2, 2648, 390, '109.37824596196623', '24.303096698707975', '70.0', '15.0', '2020-09-01 14:46:26');
+INSERT INTO `t_order_position` VALUES (11250, 2, 2648, 390, '109.37884692819354', '24.302847443608336', '70.0', '15.0', '2020-09-01 14:46:31');
+INSERT INTO `t_order_position` VALUES (11251, 2, 2648, 390, '109.37946457632354', '24.302631517818458', '70.0', '15.0', '2020-09-01 14:46:36');
+INSERT INTO `t_order_position` VALUES (11252, 2, 2648, 390, '109.38008220918591', '24.302398917745556', '68.0', '15.0', '2020-09-01 14:46:41');
+INSERT INTO `t_order_position` VALUES (11253, 2, 2648, 390, '109.38088344906588', '24.30223314155478', '68.0', '15.0', '2020-09-01 14:46:46');
+INSERT INTO `t_order_position` VALUES (11254, 2, 2648, 390, '109.38158451258082', '24.30206724245425', '66.0', '15.0', '2020-09-01 14:46:51');
+INSERT INTO `t_order_position` VALUES (11255, 2, 2648, 390, '109.38231894208037', '24.301934682400503', '68.0', '15.0', '2020-09-01 14:46:56');
+INSERT INTO `t_order_position` VALUES (11256, 2, 2648, 390, '109.38312011257783', '24.301768844321725', '66.0', '15.0', '2020-09-01 14:47:01');
+INSERT INTO `t_order_position` VALUES (11257, 2, 2648, 390, '109.38385449574308', '24.301602921539228', '66.0', '15.0', '2020-09-01 14:47:06');
+INSERT INTO `t_order_position` VALUES (11258, 2, 2648, 390, '109.3845721673259', '24.301436964416865', '66.0', '15.0', '2020-09-01 14:47:11');
+INSERT INTO `t_order_position` VALUES (11259, 2, 2648, 390, '109.3853065066673', '24.30125434183372', '66.0', '15.0', '2020-09-01 14:47:16');
+INSERT INTO `t_order_position` VALUES (11260, 2, 2648, 390, '109.38597407076747', '24.301121627382802', '66.0', '15.0', '2020-09-01 14:47:21');
+INSERT INTO `t_order_position` VALUES (11261, 2, 2648, 390, '109.38670836893458', '24.300955628712863', '62.0', '15.0', '2020-09-01 14:47:26');
+INSERT INTO `t_order_position` VALUES (11262, 2, 2648, 390, '109.387425960575', '24.300856242910793', '64.0', '15.0', '2020-09-01 14:47:31');
+INSERT INTO `t_order_position` VALUES (11263, 2, 2648, 390, '109.38801003272943', '24.300806718979', '62.0', '15.0', '2020-09-01 14:47:36');
+INSERT INTO `t_order_position` VALUES (11264, 2, 2648, 390, '109.3885273443716', '24.300807116302792', '62.0', '15.0', '2020-09-01 14:47:41');
+INSERT INTO `t_order_position` VALUES (11265, 2, 2648, 390, '109.38946181303427', '24.300791146722023', '62.0', '15.0', '2020-09-01 14:47:51');
+INSERT INTO `t_order_position` VALUES (11266, 2, 2648, 390, '109.39002915136912', '24.30079155052995', '58.0', '15.0', '2020-09-01 14:47:56');
+INSERT INTO `t_order_position` VALUES (11267, 2, 2648, 390, '109.39054641932218', '24.300808569432117', '52.0', '14.0', '2020-09-01 14:48:01');
+INSERT INTO `t_order_position` VALUES (11268, 2, 2648, 390, '109.39159760349084', '24.300809263606677', '58.0', '15.0', '2020-09-01 14:48:12');
+INSERT INTO `t_order_position` VALUES (11269, 2, 2648, 390, '109.39219825844378', '24.300809640836817', '58.0', '15.0', '2020-09-01 14:48:17');
+INSERT INTO `t_order_position` VALUES (11270, 2, 2648, 390, '109.39283226585229', '24.30081002356559', '62.0', '15.0', '2020-09-01 14:48:22');
+INSERT INTO `t_order_position` VALUES (11271, 2, 2648, 390, '109.39336615104091', '24.300777010379463', '60.0', '15.0', '2020-09-01 14:48:27');
+INSERT INTO `t_order_position` VALUES (11272, 2, 2648, 390, '109.39243184903349', '24.30092641454354', '114.0', '15.0', '2020-09-01 14:49:17');
+INSERT INTO `t_order_position` VALUES (11273, 2, 2648, 390, '109.39186456613913', '24.300859417666388', '114.0', '15.0', '2020-09-01 14:49:22');
+INSERT INTO `t_order_position` VALUES (11274, 2, 2648, 390, '109.3912972730099', '24.300859054324174', '114.0', '15.0', '2020-09-01 14:49:27');
+INSERT INTO `t_order_position` VALUES (11275, 2, 2648, 390, '109.39057979391987', '24.300858576779575', '114.0', '15.0', '2020-09-01 14:49:39');
+INSERT INTO `t_order_position` VALUES (11276, 2, 2648, 390, '109.38964537202706', '24.300907909568142', '114.0', '15.0', '2020-09-01 14:49:47');
+INSERT INTO `t_order_position` VALUES (11277, 2, 2648, 390, '109.38882772246522', '24.300957296302432', '108.0', '15.0', '2020-09-01 14:49:57');
+INSERT INTO `t_order_position` VALUES (11278, 2, 2648, 390, '109.38797666032788', '24.300856677646443', '112.0', '15.0', '2020-09-01 14:50:02');
+INSERT INTO `t_order_position` VALUES (11279, 2, 2648, 390, '109.38714226766473', '24.30095598382202', '118.0', '15.0', '2020-09-01 14:50:07');
+INSERT INTO `t_order_position` VALUES (11280, 2, 2648, 390, '109.38652480185517', '24.30108876878349', '120.0', '15.0', '2020-09-01 14:50:12');
+INSERT INTO `t_order_position` VALUES (11281, 2, 2648, 390, '109.3858906330908', '24.301254848459205', '122.0', '15.0', '2020-09-01 14:50:17');
+INSERT INTO `t_order_position` VALUES (11282, 2, 2648, 390, '109.38508955359463', '24.30145408915716', '118.0', '15.0', '2020-09-01 14:50:22');
+INSERT INTO `t_order_position` VALUES (11283, 2, 2648, 390, '109.38408816463733', '24.30165312262759', '120.0', '15.0', '2020-09-01 14:50:27');
+INSERT INTO `t_order_position` VALUES (11284, 2, 2648, 390, '109.3830533534034', '24.301852088197286', '118.0', '15.0', '2020-09-01 14:50:32');
+INSERT INTO `t_order_position` VALUES (11285, 2, 2648, 390, '109.38206857491713', '24.302051065752643', '122.0', '15.0', '2020-09-01 14:50:37');
+INSERT INTO `t_order_position` VALUES (11286, 2, 2648, 390, '109.38110045288431', '24.302283349851248', '124.0', '15.0', '2020-09-01 14:50:42');
+INSERT INTO `t_order_position` VALUES (11287, 2, 2648, 390, '109.37996537092612', '24.30261539391427', '124.0', '15.0', '2020-09-01 14:50:48');
+INSERT INTO `t_order_position` VALUES (11288, 2, 2648, 390, '109.3789971771716', '24.302947578330215', '124.0', '15.0', '2020-09-01 14:50:52');
+INSERT INTO `t_order_position` VALUES (11289, 2, 2648, 390, '109.37809572637637', '24.303296468664104', '124.0', '15.0', '2020-09-01 14:50:58');
+INSERT INTO `t_order_position` VALUES (11290, 2, 2648, 390, '109.37727771839485', '24.303628767379145', '124.0', '15.0', '2020-09-01 14:51:03');
+INSERT INTO `t_order_position` VALUES (11291, 2, 2648, 390, '109.37650976977477', '24.30392778050926', '128.0', '15.0', '2020-09-01 14:51:08');
+INSERT INTO `t_order_position` VALUES (11292, 2, 2648, 390, '109.37599222913249', '24.30416042874782', '126.0', '15.0', '2020-09-01 14:51:13');
+INSERT INTO `t_order_position` VALUES (11293, 2, 2648, 390, '109.37565834345499', '24.304593229560247', '22.0', '15.0', '2020-09-01 14:51:28');
+INSERT INTO `t_order_position` VALUES (11294, 2, 2648, 390, '109.37602568044585', '24.305193487621118', '20.0', '15.0', '2020-09-01 14:51:43');
+INSERT INTO `t_order_position` VALUES (11295, 2, 2648, 390, '109.37640969911678', '24.3056438069438', '52.0', '15.0', '2020-09-01 14:51:53');
+INSERT INTO `t_order_position` VALUES (11296, 2, 2648, 390, '109.37729450959462', '24.305278284448246', '80.0', '15.0', '2020-09-01 14:52:03');
+INSERT INTO `t_order_position` VALUES (11297, 2, 2648, 390, '109.37786210423117', '24.304962363338003', '80.0', '15.0', '2020-09-01 14:52:08');
+INSERT INTO `t_order_position` VALUES (11298, 2, 2648, 390, '109.37839630887244', '24.304813010510674', '28.0', '15.0', '2020-09-01 14:52:18');
+INSERT INTO `t_order_position` VALUES (11299, 2, 2648, 390, '109.37911419523897', '24.305730192328983', '22.0', '15.0', '2020-09-01 14:52:28');
+INSERT INTO `t_order_position` VALUES (11300, 2, 2648, 390, '109.37944808976384', '24.3061637575449', '22.0', '15.0', '2020-09-01 14:52:33');
+INSERT INTO `t_order_position` VALUES (11301, 2, 2648, 390, '109.3798654515654', '24.306697378210895', '30.0', '15.0', '2020-09-01 14:52:38');
+INSERT INTO `t_order_position` VALUES (11302, 2, 2648, 390, '109.38038295676263', '24.30711446728414', '40.0', '15.0', '2020-09-01 14:52:43');
+INSERT INTO `t_order_position` VALUES (11303, 2, 2648, 390, '109.38088375251722', '24.307414898727288', '42.0', '15.0', '2020-09-01 14:52:48');
+INSERT INTO `t_order_position` VALUES (11304, 2, 2648, 390, '109.38143461012027', '24.307632064375724', '52.0', '15.0', '2020-09-01 14:52:53');
+INSERT INTO `t_order_position` VALUES (11305, 2, 2648, 390, '109.3822024398599', '24.30771614185397', '64.0', '15.0', '2020-09-01 14:53:03');
+INSERT INTO `t_order_position` VALUES (11306, 2, 2648, 390, '109.38280332631855', '24.30765008305288', '60.0', '15.0', '2020-09-01 14:53:13');
+INSERT INTO `t_order_position` VALUES (11307, 2, 2648, 390, '109.38355441730073', '24.307617476572958', '50.0', '15.0', '2020-09-01 14:53:23');
+INSERT INTO `t_order_position` VALUES (11308, 2, 2648, 390, '109.38410521233448', '24.30775128254585', '48.0', '15.0', '2020-09-01 14:53:29');
+INSERT INTO `t_order_position` VALUES (11309, 2, 2648, 390, '109.38462261817044', '24.30793503245187', '48.0', '15.0', '2020-09-01 14:53:39');
+INSERT INTO `t_order_position` VALUES (11310, 2, 2648, 390, '109.38539035456883', '24.308085669615412', '44.0', '15.0', '2020-09-01 14:53:49');
+INSERT INTO `t_order_position` VALUES (11311, 2, 2648, 390, '109.38610801565946', '24.308502829130077', '22.0', '15.0', '2020-09-01 14:53:59');
+INSERT INTO `t_order_position` VALUES (11312, 2, 2648, 390, '109.38667547728497', '24.3092364172842', '24.0', '15.0', '2020-09-01 14:54:09');
+INSERT INTO `t_order_position` VALUES (11313, 2, 2648, 390, '109.38699258767346', '24.309736527563118', '22.0', '15.0', '2020-09-01 14:54:14');
+INSERT INTO `t_order_position` VALUES (11314, 2, 2648, 390, '109.38729300474854', '24.31021995919532', '12.0', '15.0', '2020-09-01 14:54:19');
+INSERT INTO `t_order_position` VALUES (11315, 2, 2648, 390, '109.38740985284028', '24.31075322635418', '10.0', '15.0', '2020-09-01 14:54:24');
+INSERT INTO `t_order_position` VALUES (11316, 2, 2648, 390, '109.3875267052475', '24.31136980161399', '14.0', '15.0', '2020-09-01 14:54:29');
+INSERT INTO `t_order_position` VALUES (11317, 2, 2648, 390, '109.38771030962502', '24.312003091095168', '22.0', '15.0', '2020-09-01 14:54:34');
+INSERT INTO `t_order_position` VALUES (11318, 2, 2648, 390, '109.38809414799877', '24.31235328669711', '0.0', '15.0', '2020-09-01 14:54:54');
+INSERT INTO `t_order_position` VALUES (11319, 2, 2648, 390, '109.38801075090231', '24.31305301319593', '146.0', '15.0', '2020-09-01 14:56:10');
+INSERT INTO `t_order_position` VALUES (11320, 2, 2648, 390, '109.38757689815499', '24.313569185013627', '154.0', '15.0', '2020-09-01 14:56:20');
+INSERT INTO `t_order_position` VALUES (11321, 2, 2648, 390, '109.387176423783', '24.314251994151466', '150.0', '15.0', '2020-09-01 14:56:30');
+INSERT INTO `t_order_position` VALUES (11322, 2, 2648, 390, '109.38674256369411', '24.31490144668343', '146.0', '15.0', '2020-09-01 14:56:45');
+INSERT INTO `t_order_position` VALUES (11323, 2, 2648, 390, '109.38639213789799', '24.31551763915366', '152.0', '15.0', '2020-09-01 14:56:55');
+INSERT INTO `t_order_position` VALUES (11324, 2, 2648, 390, '109.38612514321704', '24.315983942612966', '152.0', '15.0', '2020-09-01 14:57:05');
+INSERT INTO `t_order_position` VALUES (11325, 2, 2648, 390, '109.38570794862227', '24.316550084816424', '150.0', '15.0', '2020-09-01 14:58:01');
+INSERT INTO `t_order_position` VALUES (11326, 2, 2648, 390, '109.38537419932935', '24.31719960284411', '154.0', '15.0', '2020-09-01 14:58:11');
+INSERT INTO `t_order_position` VALUES (11327, 2, 2648, 390, '109.38555781323421', '24.31771627744023', '32.0', '15.0', '2020-09-01 14:58:21');
+INSERT INTO `t_order_position` VALUES (11328, 2, 2648, 390, '109.38602513520537', '24.318133223535607', '30.0', '15.0', '2020-09-01 14:58:26');
+INSERT INTO `t_order_position` VALUES (11329, 2, 2648, 390, '109.3865425172239', '24.31860018877987', '34.0', '15.0', '2020-09-01 14:58:31');
+INSERT INTO `t_order_position` VALUES (11330, 2, 2648, 390, '109.38709326478602', '24.31906717140946', '30.0', '15.0', '2020-09-01 14:58:36');
+INSERT INTO `t_order_position` VALUES (11331, 2, 2648, 390, '109.3877107522535', '24.319550857439754', '34.0', '15.0', '2020-09-01 14:58:41');
+INSERT INTO `t_order_position` VALUES (11332, 2, 2648, 390, '109.388178032416', '24.31996776671953', '34.0', '15.0', '2020-09-01 14:58:46');
+INSERT INTO `t_order_position` VALUES (11333, 2, 2648, 390, '109.38879549266017', '24.32046808964656', '30.0', '15.0', '2020-09-01 14:58:51');
+INSERT INTO `t_order_position` VALUES (11334, 2, 2648, 390, '109.38929612975336', '24.320968313362517', '24.0', '15.0', '2020-09-01 14:58:56');
+INSERT INTO `t_order_position` VALUES (11335, 2, 2648, 390, '109.38962988870786', '24.321418423272128', '22.0', '15.0', '2020-09-01 14:59:01');
+INSERT INTO `t_order_position` VALUES (11336, 2, 2648, 390, '109.3899636438602', '24.321885190872912', '24.0', '15.0', '2020-09-01 14:59:06');
+INSERT INTO `t_order_position` VALUES (11337, 2, 2648, 390, '109.3902473370521', '24.322368581552265', '24.0', '15.0', '2020-09-01 14:59:11');
+INSERT INTO `t_order_position` VALUES (11338, 2, 2648, 390, '109.391031592244', '24.322768996431897', '60.0', '15.0', '2020-09-01 14:59:21');
+INSERT INTO `t_order_position` VALUES (11339, 2, 2648, 390, '109.39168231640186', '24.322752757124324', '58.0', '15.0', '2020-09-01 14:59:26');
+INSERT INTO `t_order_position` VALUES (11340, 2, 2648, 390, '109.3926166574504', '24.322736672873674', '60.0', '15.0', '2020-09-01 14:59:36');
+INSERT INTO `t_order_position` VALUES (11341, 2, 2648, 390, '109.39378452959156', '24.32272068429809', '58.0', '15.0', '2020-09-01 14:59:46');
+INSERT INTO `t_order_position` VALUES (11342, 2, 2648, 390, '109.39458532063168', '24.322704452551754', '58.0', '15.0', '2020-09-01 14:59:51');
+INSERT INTO `t_order_position` VALUES (11343, 2, 2648, 390, '109.39523594285431', '24.32270478292042', '58.0', '15.0', '2020-09-01 14:59:56');
+INSERT INTO `t_order_position` VALUES (11344, 2, 2648, 390, '109.39585318306035', '24.322721742269938', '58.0', '15.0', '2020-09-01 15:00:03');
+INSERT INTO `t_order_position` VALUES (11345, 2, 2648, 390, '109.39668726152077', '24.322705457757706', '58.0', '15.0', '2020-09-01 15:00:07');
+INSERT INTO `t_order_position` VALUES (11346, 2, 2648, 390, '109.39755467023984', '24.322705819792645', '58.0', '15.0', '2020-09-01 15:00:11');
+INSERT INTO `t_order_position` VALUES (11347, 2, 2648, 390, '109.39848876574459', '24.32273949845216', '58.0', '15.0', '2020-09-01 15:00:16');
+INSERT INTO `t_order_position` VALUES (11348, 2, 2648, 390, '109.39935610096433', '24.32272313367553', '58.0', '15.0', '2020-09-01 15:00:21');
+INSERT INTO `t_order_position` VALUES (11349, 2, 2648, 390, '109.40008997329414', '24.32272336034964', '60.0', '15.0', '2020-09-01 15:00:27');
+INSERT INTO `t_order_position` VALUES (11350, 2, 2648, 390, '109.40090721034129', '24.32272358601212', '58.0', '15.0', '2020-09-01 15:00:31');
+INSERT INTO `t_order_position` VALUES (11351, 2, 2648, 390, '109.4014575776374', '24.322740383842586', '60.0', '15.0', '2020-09-01 15:00:37');
+INSERT INTO `t_order_position` VALUES (11352, 2, 2648, 390, '109.40199125341626', '24.322757165225056', '58.0', '15.0', '2020-09-01 15:00:42');
+INSERT INTO `t_order_position` VALUES (11353, 2, 2648, 390, '109.40252491267458', '24.322723948954305', '62.0', '15.0', '2020-09-01 15:00:47');
+INSERT INTO `t_order_position` VALUES (11354, 2, 2648, 390, '109.4030919127854', '24.3227240496574', '60.0', '15.0', '2020-09-01 15:00:52');
+INSERT INTO `t_order_position` VALUES (11355, 2, 2648, 390, '109.40384232743254', '24.322674176182623', '62.0', '15.0', '2020-09-01 15:01:02');
+INSERT INTO `t_order_position` VALUES (11356, 2, 2648, 390, '109.40447598344377', '24.32252429539796', '86.0', '15.0', '2020-09-01 15:01:47');
+INSERT INTO `t_order_position` VALUES (11357, 2, 2648, 390, '109.40497620694968', '24.322107797313166', '86.0', '15.0', '2020-09-01 15:01:57');
+INSERT INTO `t_order_position` VALUES (11358, 2, 2648, 390, '109.39896999899247', '24.280552593143376', '0.0', '15.0', '2020-09-02 04:24:09');
+INSERT INTO `t_order_position` VALUES (11359, 2, 2648, 390, '109.39900339906082', '24.281252379635173', '166.0', '15.0', '2020-09-02 04:25:19');
+INSERT INTO `t_order_position` VALUES (11360, 2, 2648, 390, '109.39898675578523', '24.281868842847697', '166.0', '15.0', '2020-09-02 04:25:24');
+INSERT INTO `t_order_position` VALUES (11361, 2, 2648, 390, '109.39895342907697', '24.28241865530298', '2.0', '15.0', '2020-09-02 04:25:29');
+INSERT INTO `t_order_position` VALUES (11362, 2, 2648, 390, '109.39888674027863', '24.282918472461787', '10.0', '15.0', '2020-09-02 04:25:39');
+INSERT INTO `t_order_position` VALUES (11363, 2, 2648, 390, '109.39902020866712', '24.283468342187007', '10.0', '15.0', '2020-09-02 04:25:44');
+INSERT INTO `t_order_position` VALUES (11364, 2, 2648, 390, '109.39928712044323', '24.284184868899935', '14.0', '15.0', '2020-09-02 04:25:49');
+INSERT INTO `t_order_position` VALUES (11365, 2, 2648, 390, '109.39950399267566', '24.28491803847988', '14.0', '15.0', '2020-09-02 04:25:54');
+INSERT INTO `t_order_position` VALUES (11366, 2, 2648, 390, '109.39973753965418', '24.285617888867495', '14.0', '15.0', '2020-09-02 04:25:59');
+INSERT INTO `t_order_position` VALUES (11367, 2, 2648, 390, '109.4000044424592', '24.28633440860516', '14.0', '15.0', '2020-09-02 04:26:07');
+INSERT INTO `t_order_position` VALUES (11368, 2, 2648, 390, '109.40022130836974', '24.287084234120478', '14.0', '15.0', '2020-09-02 04:26:09');
+INSERT INTO `t_order_position` VALUES (11369, 2, 2648, 390, '109.40038812717087', '24.28766743012275', '12.0', '15.0', '2020-09-02 04:26:14');
+INSERT INTO `t_order_position` VALUES (11370, 2, 2648, 390, '109.40060497546045', '24.28818399323407', '16.0', '15.0', '2020-09-02 04:26:19');
+INSERT INTO `t_order_position` VALUES (11371, 2, 2648, 390, '109.40093857732688', '24.288867198930117', '16.0', '15.0', '2020-09-02 04:26:24');
+INSERT INTO `t_order_position` VALUES (11372, 2, 2648, 390, '109.4013055351554', '24.289650376806595', '18.0', '15.0', '2020-09-02 04:26:30');
+INSERT INTO `t_order_position` VALUES (11373, 2, 2648, 390, '109.40173919207226', '24.290366918682423', '22.0', '15.0', '2020-09-02 04:26:35');
+INSERT INTO `t_order_position` VALUES (11374, 2, 2648, 390, '109.40230625053657', '24.29100017267829', '24.0', '15.0', '2020-09-02 04:26:40');
+INSERT INTO `t_order_position` VALUES (11375, 2, 2648, 390, '109.40278990747247', '24.291566752712114', '24.0', '15.0', '2020-09-02 04:26:45');
+INSERT INTO `t_order_position` VALUES (11376, 2, 2648, 390, '109.4032735512475', '24.292100000036157', '28.0', '15.0', '2020-09-02 04:26:50');
+INSERT INTO `t_order_position` VALUES (11377, 2, 2648, 390, '109.40375718183058', '24.29259991458478', '44.0', '15.0', '2020-09-02 04:26:55');
+INSERT INTO `t_order_position` VALUES (11378, 2, 2648, 390, '109.40427413903735', '24.292883224131018', '50.0', '15.0', '2020-09-02 04:27:00');
+INSERT INTO `t_order_position` VALUES (11379, 2, 2648, 390, '109.40630841382816', '24.29270009069047', '50.0', '11.0', '2020-09-02 04:27:15');
+INSERT INTO `t_order_position` VALUES (11380, 2, 2648, 390, '109.40750891055303', '24.293199933555588', '44.0', '10.0', '2020-09-02 04:27:20');
+INSERT INTO `t_order_position` VALUES (11381, 2, 2648, 390, '109.41037649799964', '24.29474919085382', '44.0', '11.0', '2020-09-02 04:27:50');
+INSERT INTO `t_order_position` VALUES (11382, 2, 2648, 390, '109.41092660287184', '24.29461580763958', '42.0', '13.0', '2020-09-02 04:27:55');
+INSERT INTO `t_order_position` VALUES (11383, 2, 2648, 390, '109.41177677001234', '24.29499885379016', '38.0', '15.0', '2020-09-02 04:28:50');
+INSERT INTO `t_order_position` VALUES (11384, 2, 2648, 390, '109.41231019432841', '24.29531530015258', '40.0', '15.0', '2020-09-02 04:28:56');
+INSERT INTO `t_order_position` VALUES (11385, 2, 2648, 390, '109.41287694095988', '24.295631725030486', '46.0', '15.0', '2020-09-02 04:29:01');
+INSERT INTO `t_order_position` VALUES (11386, 2, 2648, 390, '109.41359367401316', '24.295831461007964', '54.0', '15.0', '2020-09-02 04:29:06');
+INSERT INTO `t_order_position` VALUES (11387, 2, 2648, 390, '109.41441037260388', '24.295847864356414', '64.0', '15.0', '2020-09-02 04:29:11');
+INSERT INTO `t_order_position` VALUES (11388, 2, 2648, 390, '109.4152436942654', '24.295697616655648', '70.0', '15.0', '2020-09-02 04:29:16');
+INSERT INTO `t_order_position` VALUES (11389, 2, 2648, 390, '109.41601030501883', '24.29531410413808', '80.0', '11.0', '2020-09-02 04:29:21');
+INSERT INTO `t_order_position` VALUES (11390, 2, 2648, 390, '109.41975963000118', '24.293846053185028', '70.0', '12.0', '2020-09-02 04:29:41');
+INSERT INTO `t_order_position` VALUES (11391, 2, 2648, 390, '109.42044276515918', '24.293595727344556', '66.0', '15.0', '2020-09-02 04:29:46');
+INSERT INTO `t_order_position` VALUES (11392, 2, 2648, 390, '109.42160907504247', '24.293778265160924', '36.0', '15.0', '2020-09-02 04:29:56');
+INSERT INTO `t_order_position` VALUES (11393, 2, 2648, 390, '109.42224220760066', '24.294244359738194', '34.0', '15.0', '2020-09-02 04:30:01');
+INSERT INTO `t_order_position` VALUES (11394, 2, 2648, 390, '109.42285865718824', '24.294660463889922', '34.0', '15.0', '2020-09-02 04:30:06');
+INSERT INTO `t_order_position` VALUES (11395, 2, 2648, 390, '109.42342510951984', '24.295076588136528', '38.0', '15.0', '2020-09-02 04:30:11');
+INSERT INTO `t_order_position` VALUES (11396, 2, 2648, 390, '109.42395822196596', '24.295392754667855', '38.0', '15.0', '2020-09-02 04:30:16');
+INSERT INTO `t_order_position` VALUES (11397, 2, 2648, 390, '109.4244580011298', '24.295675611772495', '72.0', '15.0', '2020-09-02 04:30:26');
+INSERT INTO `t_order_position` VALUES (11398, 2, 2648, 390, '109.42527421282885', '24.294991832831233', '92.0', '15.0', '2020-09-02 04:30:36');
+INSERT INTO `t_order_position` VALUES (11399, 2, 2648, 390, '109.42572393669897', '24.294424967217818', '92.0', '15.0', '2020-09-02 04:30:41');
+INSERT INTO `t_order_position` VALUES (11400, 2, 2648, 390, '109.42619031048551', '24.293908062730946', '92.0', '15.0', '2020-09-02 04:30:46');
+INSERT INTO `t_order_position` VALUES (11401, 2, 2648, 390, '109.42668998384657', '24.293341134730852', '94.0', '15.0', '2020-09-02 04:30:51');
+INSERT INTO `t_order_position` VALUES (11402, 2, 2648, 390, '109.4271729865066', '24.292740888028096', '94.0', '15.0', '2020-09-02 04:30:57');
+INSERT INTO `t_order_position` VALUES (11403, 2, 2648, 390, '109.42758934803383', '24.292040724438397', '96.0', '15.0', '2020-09-02 04:31:02');
+INSERT INTO `t_order_position` VALUES (11404, 2, 2648, 390, '109.427972389719', '24.291340584972925', '98.0', '15.0', '2020-09-02 04:31:07');
+INSERT INTO `t_order_position` VALUES (11405, 2, 2648, 390, '109.42832212032825', '24.290757101342667', '96.0', '15.0', '2020-09-02 04:31:12');
+INSERT INTO `t_order_position` VALUES (11406, 2, 2648, 390, '109.4286884989033', '24.290156934795622', '96.0', '15.0', '2020-09-02 04:31:17');
+INSERT INTO `t_order_position` VALUES (11407, 2, 2648, 390, '109.42903821706197', '24.28957344048284', '96.0', '15.0', '2020-09-02 04:31:22');
+INSERT INTO `t_order_position` VALUES (11408, 2, 2648, 390, '109.42935462317216', '24.289039958767933', '96.0', '15.0', '2020-09-02 04:31:27');
+INSERT INTO `t_order_position` VALUES (11409, 2, 2648, 390, '109.42958775897044', '24.28860652612194', '100.0', '15.0', '2020-09-02 04:31:32');
+INSERT INTO `t_order_position` VALUES (11410, 2, 2648, 390, '109.42987085231454', '24.288139716971155', '104.0', '15.0', '2020-09-02 04:31:42');
+INSERT INTO `t_order_position` VALUES (11411, 2, 2648, 390, '109.43057029834759', '24.287939048629642', '42.0', '15.0', '2020-09-02 04:32:22');
+INSERT INTO `t_order_position` VALUES (11412, 2, 2648, 390, '109.4310366047798', '24.288188469811978', '40.0', '15.0', '2020-09-02 04:32:27');
+INSERT INTO `t_order_position` VALUES (11413, 2, 2648, 390, '109.43155285755813', '24.28842116487695', '40.0', '15.0', '2020-09-02 04:32:32');
+INSERT INTO `t_order_position` VALUES (11414, 2, 2648, 390, '109.4321357070464', '24.288670434408512', '40.0', '15.0', '2020-09-02 04:32:38');
+INSERT INTO `t_order_position` VALUES (11415, 2, 2648, 390, '109.43275184520229', '24.2889529733097', '40.0', '15.0', '2020-09-02 04:32:43');
+INSERT INTO `t_order_position` VALUES (11416, 2, 2648, 390, '109.43331801018867', '24.289218893323564', '42.0', '15.0', '2020-09-02 04:32:48');
+INSERT INTO `t_order_position` VALUES (11417, 2, 2648, 390, '109.43396741412991', '24.2895013600894', '46.0', '15.0', '2020-09-02 04:32:53');
+INSERT INTO `t_order_position` VALUES (11418, 2, 2648, 390, '109.43456683914613', '24.289650579029384', '54.0', '15.0', '2020-09-02 04:32:58');
+INSERT INTO `t_order_position` VALUES (11419, 2, 2648, 390, '109.4351828915433', '24.289716454223946', '52.0', '15.0', '2020-09-02 04:33:03');
+INSERT INTO `t_order_position` VALUES (11420, 2, 2648, 390, '109.43604866326889', '24.289798650669717', '58.0', '15.0', '2020-09-02 04:33:13');
+INSERT INTO `t_order_position` VALUES (11421, 2, 2648, 390, '109.4368145057812', '24.289830964035865', '58.0', '15.0', '2020-09-02 04:33:23');
+INSERT INTO `t_order_position` VALUES (11422, 2, 2648, 390, '109.43746378138667', '24.289796765595174', '58.0', '15.0', '2020-09-02 04:35:19');
+INSERT INTO `t_order_position` VALUES (11423, 2, 2648, 390, '109.4379632090208', '24.289746095516', '50.0', '15.0', '2020-09-02 04:35:24');
+INSERT INTO `t_order_position` VALUES (11424, 2, 2648, 390, '109.43852921987815', '24.289811951043866', '62.0', '15.0', '2020-09-02 04:36:44');
+INSERT INTO `t_order_position` VALUES (11425, 2, 2648, 390, '109.43907859140876', '24.290261029455465', '0.0', '15.0', '2020-09-02 04:37:15');
+INSERT INTO `t_order_position` VALUES (11426, 2, 2648, 390, '109.43907862659354', '24.290860840798985', '2.0', '15.0', '2020-09-02 04:37:20');
+INSERT INTO `t_order_position` VALUES (11427, 2, 2648, 390, '109.4391286034913', '24.29149390373522', '2.0', '15.0', '2020-09-02 04:37:25');
+INSERT INTO `t_order_position` VALUES (11428, 2, 2648, 390, '109.43914528523578', '24.29209369173593', '2.0', '15.0', '2020-09-02 04:37:30');
+INSERT INTO `t_order_position` VALUES (11429, 2, 2648, 390, '109.4392119084828', '24.292726731171914', '2.0', '15.0', '2020-09-02 04:37:35');
+INSERT INTO `t_order_position` VALUES (11430, 2, 2648, 390, '109.43922858722932', '24.293276535266017', '2.0', '15.0', '2020-09-02 04:37:40');
+INSERT INTO `t_order_position` VALUES (11431, 2, 2648, 390, '109.43919533039018', '24.29389305721046', '2.0', '15.0', '2020-09-02 04:37:45');
+INSERT INTO `t_order_position` VALUES (11432, 2, 2648, 390, '109.43929524930705', '24.294576033805377', '2.0', '15.0', '2020-09-02 04:37:50');
+INSERT INTO `t_order_position` VALUES (11433, 2, 2648, 390, '109.43934522178236', '24.295142452043383', '4.0', '15.0', '2020-09-02 04:37:55');
+INSERT INTO `t_order_position` VALUES (11434, 2, 2648, 390, '109.4393619082422', '24.295825548903988', '2.0', '15.0', '2020-09-02 04:38:05');
+INSERT INTO `t_order_position` VALUES (11435, 2, 2648, 390, '109.43942853080564', '24.296458589428482', '2.0', '15.0', '2020-09-02 04:38:10');
+INSERT INTO `t_order_position` VALUES (11436, 2, 2648, 390, '109.43947851762566', '24.29727493073041', '2.0', '15.0', '2020-09-02 04:38:15');
+INSERT INTO `t_order_position` VALUES (11437, 2, 2648, 390, '109.43952850725942', '24.29814125696037', '8.0', '15.0', '2020-09-02 04:38:20');
+INSERT INTO `t_order_position` VALUES (11438, 2, 2648, 390, '109.43967836501577', '24.298857484602575', '10.0', '15.0', '2020-09-02 04:38:25');
+INSERT INTO `t_order_position` VALUES (11439, 2, 2648, 390, '109.43984486381328', '24.29950704117501', '12.0', '15.0', '2020-09-02 04:38:30');
+INSERT INTO `t_order_position` VALUES (11440, 2, 2648, 390, '109.44012788404898', '24.300189748301893', '12.0', '15.0', '2020-09-02 04:38:35');
+INSERT INTO `t_order_position` VALUES (11441, 2, 2648, 390, '109.44034431426613', '24.300805905161823', '14.0', '15.0', '2020-09-02 04:38:40');
+INSERT INTO `t_order_position` VALUES (11442, 2, 2648, 390, '109.44047750708786', '24.301288892077288', '10.0', '15.0', '2020-09-02 04:38:45');
+INSERT INTO `t_order_position` VALUES (11443, 2, 2648, 390, '109.44061070494065', '24.301871847791276', '10.0', '15.0', '2020-09-02 04:38:55');
+INSERT INTO `t_order_position` VALUES (11444, 2, 2648, 390, '109.44067734508423', '24.302871442203827', '166.0', '15.0', '2020-09-02 04:39:25');
+INSERT INTO `t_order_position` VALUES (11445, 2, 2648, 390, '109.44072733384948', '24.303771092638303', '0.0', '15.0', '2020-09-02 04:39:30');
+INSERT INTO `t_order_position` VALUES (11446, 2, 2648, 390, '109.44076067526223', '24.304637445385772', '0.0', '15.0', '2020-09-02 04:39:35');
+INSERT INTO `t_order_position` VALUES (11447, 2, 2648, 390, '109.44076072411984', '24.305470525465662', '166.0', '15.0', '2020-09-02 04:39:41');
+INSERT INTO `t_order_position` VALUES (11448, 2, 2648, 390, '109.44076077102336', '24.30627028282711', '164.0', '14.0', '2020-09-02 04:39:46');
+INSERT INTO `t_order_position` VALUES (11449, 2, 2648, 390, '109.44069423765262', '24.307086802225346', '166.0', '15.0', '2020-09-02 04:39:51');
+INSERT INTO `t_order_position` VALUES (11450, 2, 2648, 390, '109.44069428455717', '24.307886560549655', '0.0', '15.0', '2020-09-02 04:39:56');
+INSERT INTO `t_order_position` VALUES (11451, 2, 2648, 390, '109.4406776861169', '24.30868634430656', '166.0', '15.0', '2020-09-02 04:40:01');
+INSERT INTO `t_order_position` VALUES (11452, 2, 2648, 390, '109.44069437641252', '24.309452755320542', '166.0', '15.0', '2020-09-02 04:40:06');
+INSERT INTO `t_order_position` VALUES (11453, 2, 2648, 390, '109.44064448333576', '24.310185943227438', '164.0', '15.0', '2020-09-02 04:40:11');
+INSERT INTO `t_order_position` VALUES (11454, 2, 2648, 390, '109.44062788192643', '24.310935743304253', '166.0', '15.0', '2020-09-02 04:40:16');
+INSERT INTO `t_order_position` VALUES (11455, 2, 2648, 390, '109.44061128832232', '24.311818837274128', '0.0', '15.0', '2020-09-02 04:40:21');
+INSERT INTO `t_order_position` VALUES (11456, 2, 2648, 390, '109.44061133131997', '24.31255195165968', '166.0', '15.0', '2020-09-02 04:40:30');
+INSERT INTO `t_order_position` VALUES (11457, 2, 2648, 390, '109.44059472304541', '24.31318512112558', '2.0', '15.0', '2020-09-02 04:40:31');
+INSERT INTO `t_order_position` VALUES (11458, 2, 2648, 390, '109.44057811182651', '24.313768305751154', '0.0', '15.0', '2020-09-02 04:40:36');
+INSERT INTO `t_order_position` VALUES (11459, 2, 2648, 390, '109.44056149473153', '24.314251520319452', '2.0', '15.0', '2020-09-02 04:40:41');
+INSERT INTO `t_order_position` VALUES (11460, 2, 2648, 390, '109.44054487664658', '24.314718073330944', '2.0', '15.0', '2020-09-02 04:40:46');
+INSERT INTO `t_order_position` VALUES (11461, 2, 2648, 390, '109.44052825952615', '24.315201288225122', '0.0', '15.0', '2020-09-02 04:40:51');
+INSERT INTO `t_order_position` VALUES (11462, 2, 2648, 390, '109.44047835238433', '24.315701214662536', '162.0', '15.0', '2020-09-02 04:40:56');
+INSERT INTO `t_order_position` VALUES (11463, 2, 2648, 390, '109.440461740099', '24.316267738581285', '0.0', '15.0', '2020-09-02 04:41:16');
+INSERT INTO `t_order_position` VALUES (11464, 2, 2648, 390, '109.44044515907383', '24.31736743882678', '166.0', '15.0', '2020-09-02 04:42:06');
+INSERT INTO `t_order_position` VALUES (11465, 2, 2648, 390, '109.4404452001196', '24.31806723277967', '166.0', '15.0', '2020-09-02 04:42:11');
+INSERT INTO `t_order_position` VALUES (11466, 2, 2648, 390, '109.44042859660496', '24.31878371366318', '164.0', '15.0', '2020-09-02 04:42:16');
+INSERT INTO `t_order_position` VALUES (11467, 2, 2648, 390, '109.44042863765118', '24.319483508377758', '166.0', '15.0', '2020-09-02 04:42:22');
+INSERT INTO `t_order_position` VALUES (11468, 2, 2648, 390, '109.44036209543995', '24.320166740682215', '164.0', '15.0', '2020-09-02 04:42:27');
+INSERT INTO `t_order_position` VALUES (11469, 2, 2648, 390, '109.44036213844161', '24.320899859746007', '166.0', '15.0', '2020-09-02 04:42:32');
+INSERT INTO `t_order_position` VALUES (11470, 2, 2648, 390, '109.44036216971567', '24.321433037507973', '166.0', '15.0', '2020-09-02 04:42:37');
+INSERT INTO `t_order_position` VALUES (11471, 2, 2648, 390, '109.44026232815877', '24.321983025463727', '126.0', '15.0', '2020-09-02 04:42:47');
+INSERT INTO `t_order_position` VALUES (11472, 2, 2648, 390, '109.44014576609786', '24.32126673991342', '114.0', '15.0', '2020-09-02 04:42:57');
+INSERT INTO `t_order_position` VALUES (11473, 2, 2648, 390, '109.43969630321688', '24.32088417774077', '122.0', '15.0', '2020-09-02 04:43:12');
+INSERT INTO `t_order_position` VALUES (11474, 2, 2648, 390, '109.43906375600103', '24.32113501827071', '122.0', '15.0', '2020-09-02 04:43:17');
+INSERT INTO `t_order_position` VALUES (11475, 2, 2648, 390, '109.43841453589361', '24.321269232608024', '114.0', '15.0', '2020-09-02 04:43:22');
+INSERT INTO `t_order_position` VALUES (11476, 2, 2648, 390, '109.4375988098903', '24.321253701129578', '112.0', '15.0', '2020-09-02 04:43:27');
+INSERT INTO `t_order_position` VALUES (11477, 2, 2648, 390, '109.43671645733028', '24.321221568065507', '114.0', '15.0', '2020-09-02 04:43:32');
+INSERT INTO `t_order_position` VALUES (11478, 2, 2648, 390, '109.43598390461386', '24.32110589837803', '116.0', '15.0', '2020-09-02 04:43:42');
+INSERT INTO `t_order_position` VALUES (11479, 2, 2648, 390, '109.43593392508915', '24.320556123769244', '118.0', '15.0', '2020-09-02 04:43:47');
+INSERT INTO `t_order_position` VALUES (11480, 2, 2648, 390, '109.43571745431585', '24.320023225979977', '154.0', '15.0', '2020-09-02 04:43:57');
+INSERT INTO `t_order_position` VALUES (11481, 2, 2648, 390, '109.43533449000492', '24.319557185662806', '112.0', '15.0', '2020-09-02 04:44:12');
+INSERT INTO `t_order_position` VALUES (11482, 2, 2648, 390, '109.43533445968411', '24.319040670453873', '0.0', '15.0', '2020-09-02 04:44:22');
+INSERT INTO `t_order_position` VALUES (11483, 2, 2648, 390, '109.43538443576733', '24.31950713679397', '6.0', '15.0', '2020-09-02 04:45:08');
+INSERT INTO `t_order_position` VALUES (11484, 2, 2648, 390, '109.43518466666538', '24.31995725844852', '116.0', '15.0', '2020-09-02 04:45:28');
+INSERT INTO `t_order_position` VALUES (11485, 2, 2648, 390, '109.43450201936732', '24.3199914347981', '110.0', '15.0', '2020-09-02 04:45:38');
+INSERT INTO `t_order_position` VALUES (11486, 2, 2648, 390, '109.43331981804143', '24.320009525303867', '112.0', '15.0', '2020-09-02 04:45:53');
+INSERT INTO `t_order_position` VALUES (11487, 2, 2648, 390, '109.43255385066074', '24.320060403670336', '114.0', '15.0', '2020-09-02 04:45:58');
+INSERT INTO `t_order_position` VALUES (11488, 2, 2648, 390, '109.43202098674392', '24.320094333264763', '124.0', '15.0', '2020-09-02 04:46:03');
+INSERT INTO `t_order_position` VALUES (11489, 2, 2648, 390, '109.43165466174314', '24.32057793467704', '0.0', '15.0', '2020-09-02 04:46:13');
+INSERT INTO `t_order_position` VALUES (11490, 2, 2648, 390, '109.43172130814598', '24.321194347331616', '2.0', '15.0', '2020-09-02 04:46:18');
+INSERT INTO `t_order_position` VALUES (11491, 2, 2648, 390, '109.43177130087771', '24.321794116836994', '4.0', '15.0', '2020-09-02 04:46:28');
+INSERT INTO `t_order_position` VALUES (11492, 2, 2648, 390, '109.43177133610601', '24.322393942244158', '0.0', '15.0', '2020-09-02 04:47:14');
+INSERT INTO `t_order_position` VALUES (11493, 2, 2648, 390, '109.43178802674383', '24.32304373485165', '0.0', '15.0', '2020-09-02 04:47:19');
+INSERT INTO `t_order_position` VALUES (11494, 2, 2648, 390, '109.43178805805803', '24.32357691349511', '166.0', '15.0', '2020-09-02 04:47:24');
+INSERT INTO `t_order_position` VALUES (11495, 2, 2648, 390, '109.4317880903509', '24.324126754202958', '0.0', '15.0', '2020-09-02 04:47:29');
+INSERT INTO `t_order_position` VALUES (11496, 2, 2648, 390, '109.43182142265711', '24.324593248729915', '166.0', '15.0', '2020-09-02 04:47:34');
+INSERT INTO `t_order_position` VALUES (11497, 2, 2648, 390, '109.43187141024961', '24.325109710318262', '62.0', '15.0', '2020-09-02 04:47:44');
+INSERT INTO `t_order_position` VALUES (11498, 2, 2648, 390, '109.43170492766264', '24.325826356041546', '2.0', '15.0', '2020-09-02 04:48:34');
+INSERT INTO `t_order_position` VALUES (11499, 2, 2648, 390, '109.43175491749894', '24.326376142129234', '0.0', '15.0', '2020-09-02 04:48:54');
+INSERT INTO `t_order_position` VALUES (11500, 2, 2648, 390, '109.4316717047683', '24.32722599049215', '0.0', '15.0', '2020-09-02 04:49:14');
+INSERT INTO `t_order_position` VALUES (11501, 2, 2648, 390, '109.43168839842475', '24.32792577130381', '166.0', '15.0', '2020-09-02 04:49:19');
+INSERT INTO `t_order_position` VALUES (11502, 2, 2648, 390, '109.43167178109975', '24.328525618077045', '166.0', '15.0', '2020-09-02 04:49:24');
+INSERT INTO `t_order_position` VALUES (11503, 2, 2648, 390, '109.43175507994623', '24.329142015967783', '2.0', '15.0', '2020-09-02 04:49:30');
+INSERT INTO `t_order_position` VALUES (11504, 2, 2648, 390, '109.43175510930445', '24.329641873328345', '0.0', '15.0', '2020-09-02 04:49:35');
+INSERT INTO `t_order_position` VALUES (11505, 2, 2648, 390, '109.43173848909845', '24.330191735193857', '164.0', '15.0', '2020-09-02 04:50:10');
+INSERT INTO `t_order_position` VALUES (11506, 2, 2648, 390, '109.4317052515821', '24.331341445417912', '166.0', '15.0', '2020-09-02 04:50:20');
+INSERT INTO `t_order_position` VALUES (11507, 2, 2648, 390, '109.43172194716888', '24.332074552374124', '0.0', '15.0', '2020-09-02 04:50:25');
+INSERT INTO `t_order_position` VALUES (11508, 2, 2648, 390, '109.43173863980614', '24.332757673874646', '0.0', '15.0', '2020-09-02 04:50:30');
+INSERT INTO `t_order_position` VALUES (11509, 2, 2648, 390, '109.4317553304725', '24.33340747180359', '166.0', '15.0', '2020-09-02 04:50:35');
+INSERT INTO `t_order_position` VALUES (11510, 2, 2648, 390, '109.43173871320356', '24.334007321230715', '162.0', '15.0', '2020-09-02 04:50:40');
+INSERT INTO `t_order_position` VALUES (11511, 2, 2648, 390, '109.4316887937897', '24.334657193897456', '166.0', '15.0', '2020-09-02 04:50:50');
+INSERT INTO `t_order_position` VALUES (11512, 2, 2648, 390, '109.43137242228613', '24.335157402704006', '110.0', '15.0', '2020-09-02 04:51:41');
+INSERT INTO `t_order_position` VALUES (11513, 2, 2648, 390, '109.43075625712001', '24.335124746165032', '112.0', '15.0', '2020-09-02 04:51:45');
+INSERT INTO `t_order_position` VALUES (11514, 2, 2648, 390, '109.42995688133237', '24.335108924991527', '112.0', '15.0', '2020-09-02 04:51:50');
+INSERT INTO `t_order_position` VALUES (11515, 2, 2648, 390, '109.42924074884337', '24.335126316120597', '112.0', '15.0', '2020-09-02 04:51:55');
+INSERT INTO `t_order_position` VALUES (11516, 2, 2648, 390, '109.42855789824476', '24.335093666118293', '114.0', '15.0', '2020-09-02 04:52:00');
+INSERT INTO `t_order_position` VALUES (11517, 2, 2648, 390, '109.4279583056872', '24.335110902743075', '110.0', '15.0', '2020-09-02 04:52:05');
+INSERT INTO `t_order_position` VALUES (11518, 2, 2648, 390, '109.42717547703249', '24.335128290775934', '112.0', '15.0', '2020-09-02 04:52:11');
+INSERT INTO `t_order_position` VALUES (11519, 2, 2648, 390, '109.42622604488984', '24.335095810508538', '112.0', '15.0', '2020-09-02 04:52:16');
+INSERT INTO `t_order_position` VALUES (11520, 2, 2648, 390, '109.42515996133082', '24.33504672366769', '112.0', '15.0', '2020-09-02 04:52:21');
+INSERT INTO `t_order_position` VALUES (11521, 2, 2648, 390, '109.42406050209873', '24.334980949421432', '112.0', '15.0', '2020-09-02 04:52:26');
+INSERT INTO `t_order_position` VALUES (11522, 2, 2648, 390, '109.42296098510346', '24.33496510669146', '112.0', '15.0', '2020-09-02 04:52:31');
+INSERT INTO `t_order_position` VALUES (11523, 2, 2648, 390, '109.42186140732144', '24.334949209438626', '112.0', '15.0', '2020-09-02 04:52:36');
+INSERT INTO `t_order_position` VALUES (11524, 2, 2648, 390, '109.42072844440845', '24.334916616287668', '112.0', '15.0', '2020-09-02 04:52:41');
+INSERT INTO `t_order_position` VALUES (11525, 2, 2648, 390, '109.41959541784335', '24.33490062714582', '112.0', '15.0', '2020-09-02 04:52:46');
+INSERT INTO `t_order_position` VALUES (11526, 2, 2648, 390, '109.41844566306038', '24.334884588624295', '110.0', '15.0', '2020-09-02 04:52:51');
+INSERT INTO `t_order_position` VALUES (11527, 2, 2648, 390, '109.41734583432685', '24.334851805153807', '112.0', '15.0', '2020-09-02 04:52:56');
+INSERT INTO `t_order_position` VALUES (11528, 2, 2648, 390, '109.4163459380253', '24.334835587165948', '114.0', '15.0', '2020-09-02 04:53:01');
+INSERT INTO `t_order_position` VALUES (11529, 2, 2648, 390, '109.41524599710834', '24.334869347479028', '112.0', '15.0', '2020-09-02 04:53:06');
+INSERT INTO `t_order_position` VALUES (11530, 2, 2648, 390, '109.41446267136178', '24.334936272946738', '112.0', '15.0', '2020-09-02 04:53:11');
+INSERT INTO `t_order_position` VALUES (11531, 2, 2648, 390, '109.41369598243284', '24.335003165806345', '112.0', '15.0', '2020-09-02 04:53:16');
+INSERT INTO `t_order_position` VALUES (11532, 2, 2648, 390, '109.41294593228261', '24.33507002781738', '112.0', '15.0', '2020-09-02 04:53:26');
+INSERT INTO `t_order_position` VALUES (11533, 2, 2648, 390, '109.41216251639592', '24.335136872434504', '112.0', '15.0', '2020-09-02 04:53:31');
+INSERT INTO `t_order_position` VALUES (11534, 2, 2648, 390, '109.41137906991291', '24.335203689609422', '112.0', '15.0', '2020-09-02 04:53:36');
+INSERT INTO `t_order_position` VALUES (11535, 2, 2648, 390, '109.41066227331193', '24.335270468393084', '112.0', '15.0', '2020-09-02 04:53:41');
+INSERT INTO `t_order_position` VALUES (11536, 2, 2648, 390, '109.41009548568809', '24.335320541608976', '128.0', '15.0', '2020-09-02 04:53:46');
+INSERT INTO `t_order_position` VALUES (11537, 2, 2648, 390, '109.40921193630358', '24.335470607066753', '104.0', '15.0', '2020-09-02 04:53:56');
+INSERT INTO `t_order_position` VALUES (11538, 2, 2648, 390, '109.40867844264527', '24.335370683290407', '114.0', '15.0', '2020-09-02 04:54:01');
+INSERT INTO `t_order_position` VALUES (11539, 2, 2648, 390, '109.40791153330197', '24.335437378463556', '112.0', '15.0', '2020-09-02 04:54:06');
+INSERT INTO `t_order_position` VALUES (11540, 2, 2648, 390, '109.4072112877964', '24.335520708881276', '112.0', '15.0', '2020-09-02 04:54:11');
+INSERT INTO `t_order_position` VALUES (11541, 2, 2648, 390, '109.40654436422382', '24.335587356297335', '112.0', '15.0', '2020-09-02 04:54:16');
+INSERT INTO `t_order_position` VALUES (11542, 2, 2648, 390, '109.40596078875458', '24.335653987794537', '114.0', '15.0', '2020-09-02 04:54:21');
+INSERT INTO `t_order_position` VALUES (11543, 2, 2648, 390, '109.40541056800019', '24.336103832562245', '4.0', '15.0', '2020-09-02 04:54:32');
+INSERT INTO `t_order_position` VALUES (11544, 2, 2648, 390, '109.40546062633781', '24.336703667931843', '2.0', '15.0', '2020-09-02 04:54:37');
+INSERT INTO `t_order_position` VALUES (11545, 2, 2648, 390, '109.40554403998188', '24.337420139602767', '166.0', '15.0', '2020-09-02 04:54:42');
+INSERT INTO `t_order_position` VALUES (11546, 2, 2648, 390, '109.40549405431865', '24.338053293445935', '158.0', '15.0', '2020-09-02 04:54:47');
+INSERT INTO `t_order_position` VALUES (11547, 2, 2648, 390, '109.40527732627851', '24.33871976036908', '150.0', '15.0', '2020-09-02 04:54:52');
+INSERT INTO `t_order_position` VALUES (11548, 2, 2648, 390, '109.40494387493183', '24.33941954002844', '154.0', '15.0', '2020-09-02 04:54:57');
+INSERT INTO `t_order_position` VALUES (11549, 2, 2648, 390, '109.40457707006478', '24.340152636003246', '152.0', '15.0', '2020-09-02 04:55:02');
+INSERT INTO `t_order_position` VALUES (11550, 2, 2648, 390, '109.40424361033622', '24.340902392520928', '154.0', '15.0', '2020-09-02 04:55:07');
+INSERT INTO `t_order_position` VALUES (11551, 2, 2648, 390, '109.40384344569037', '24.341702122123372', '154.0', '15.0', '2020-09-02 04:55:12');
+INSERT INTO `t_order_position` VALUES (11552, 2, 2648, 390, '109.40355999791247', '24.34238522797333', '154.0', '15.0', '2020-09-02 04:55:17');
+INSERT INTO `t_order_position` VALUES (11553, 2, 2648, 390, '109.4032932184422', '24.343001684978574', '156.0', '15.0', '2020-09-02 04:55:22');
+INSERT INTO `t_order_position` VALUES (11554, 2, 2648, 390, '109.40307646929094', '24.34370145810311', '166.0', '15.0', '2020-09-02 04:55:27');
+INSERT INTO `t_order_position` VALUES (11555, 2, 2648, 390, '109.40299312991957', '24.344417914742245', '0.0', '15.0', '2020-09-02 04:55:32');
+INSERT INTO `t_order_position` VALUES (11556, 2, 2648, 390, '109.40299317006748', '24.345101061557866', '164.0', '15.0', '2020-09-02 04:55:37');
+INSERT INTO `t_order_position` VALUES (11557, 2, 2648, 390, '109.40299320727787', '24.34573422236161', '0.0', '15.0', '2020-09-02 04:55:42');
+INSERT INTO `t_order_position` VALUES (11558, 2, 2648, 390, '109.40294321642033', '24.346384037087887', '166.0', '15.0', '2020-09-02 04:55:47');
+INSERT INTO `t_order_position` VALUES (11559, 2, 2648, 390, '109.40294325265162', '24.347000536408583', '166.0', '15.0', '2020-09-02 04:55:52');
+INSERT INTO `t_order_position` VALUES (11560, 2, 2648, 390, '109.40297664355326', '24.34765036606298', '0.0', '15.0', '2020-09-02 04:55:57');
+INSERT INTO `t_order_position` VALUES (11561, 2, 2648, 390, '109.40296000049797', '24.348216876681164', '166.0', '15.0', '2020-09-02 04:56:02');
+INSERT INTO `t_order_position` VALUES (11562, 2, 2648, 390, '109.40296004358437', '24.348950012147256', '158.0', '15.0', '2020-09-02 04:56:12');
+INSERT INTO `t_order_position` VALUES (11563, 2, 2648, 390, '109.40280998913408', '24.349516500046693', '152.0', '15.0', '2020-09-02 04:56:17');
+INSERT INTO `t_order_position` VALUES (11564, 2, 2648, 390, '109.40259322613323', '24.35006631267939', '152.0', '15.0', '2020-09-02 04:56:22');
+INSERT INTO `t_order_position` VALUES (11565, 2, 2648, 390, '109.40242648835063', '24.350566146715725', '154.0', '15.0', '2020-09-02 04:56:27');
+INSERT INTO `t_order_position` VALUES (11566, 2, 2648, 390, '109.40217637722313', '24.35128257150796', '156.0', '15.0', '2020-09-02 04:56:37');
+INSERT INTO `t_order_position` VALUES (11567, 2, 2648, 390, '109.40190958689682', '24.35201565266328', '2.0', '15.0', '2020-09-02 04:56:47');
+INSERT INTO `t_order_position` VALUES (11568, 2, 2648, 390, '109.40266005698578', '24.352182425039054', '56.0', '15.0', '2020-09-02 04:57:07');
+INSERT INTO `t_order_position` VALUES (11569, 2, 2648, 390, '109.40326040678706', '24.352199190010747', '58.0', '15.0', '2020-09-02 04:57:18');
+INSERT INTO `t_order_position` VALUES (11570, 2, 2648, 390, '109.4038440508941', '24.351999328405316', '110.0', '15.0', '2020-09-02 04:57:33');
+INSERT INTO `t_order_position` VALUES (11571, 2, 2648, 390, '109.40389405035441', '24.35153279303063', '78.0', '15.0', '2020-09-02 04:57:43');
+INSERT INTO `t_order_position` VALUES (11572, 2, 2648, 390, '109.40449435762943', '24.35143289055007', '96.0', '15.0', '2020-09-02 04:57:58');
+INSERT INTO `t_order_position` VALUES (11573, 2, 2648, 390, '109.4046944209244', '24.350799746899817', '46.0', '15.0', '2020-09-02 04:58:23');
+INSERT INTO `t_order_position` VALUES (11574, 2, 2648, 390, '109.40437763143626', '24.351432878010733', '128.0', '15.0', '2020-09-02 04:59:54');
+INSERT INTO `t_order_position` VALUES (11575, 2, 2648, 390, '109.40384402347307', '24.35153278642846', '160.0', '15.0', '2020-09-02 05:00:09');
+INSERT INTO `t_order_position` VALUES (11576, 2, 2648, 390, '109.40377734917713', '24.352015981650936', '144.0', '15.0', '2020-09-02 05:00:19');
+INSERT INTO `t_order_position` VALUES (11577, 2, 2648, 390, '109.40307697164216', '24.35224914691859', '114.0', '15.0', '2020-09-02 05:00:34');
+INSERT INTO `t_order_position` VALUES (11578, 2, 2648, 390, '109.40239322876295', '24.35216571218181', '108.0', '15.0', '2020-09-02 05:00:44');
+INSERT INTO `t_order_position` VALUES (11579, 2, 2648, 390, '109.40187624227335', '24.35218226760905', '154.0', '15.0', '2020-09-02 05:00:59');
+INSERT INTO `t_order_position` VALUES (11580, 2, 2648, 390, '109.40165946763602', '24.352698748330532', '152.0', '15.0', '2020-09-02 05:01:04');
+INSERT INTO `t_order_position` VALUES (11581, 2, 2648, 390, '109.40144269075981', '24.35321522726766', '10.0', '15.0', '2020-09-02 05:01:14');
+INSERT INTO `t_order_position` VALUES (11582, 2, 2648, 390, '109.40194302350972', '24.35341528688319', '58.0', '15.0', '2020-09-02 05:01:24');
+INSERT INTO `t_order_position` VALUES (11583, 2, 2648, 390, '109.40262677623001', '24.353415423728368', '62.0', '15.0', '2020-09-02 05:01:29');
+INSERT INTO `t_order_position` VALUES (11584, 2, 2648, 390, '109.40326047337835', '24.353332221465017', '56.0', '15.0', '2020-09-02 05:01:35');
+INSERT INTO `t_order_position` VALUES (11585, 2, 2648, 390, '109.40384413021962', '24.353348968711494', '60.0', '15.0', '2020-09-02 05:01:39');
+INSERT INTO `t_order_position` VALUES (11586, 2, 2648, 390, '109.40439442025344', '24.353365697614013', '62.0', '15.0', '2020-09-02 05:01:45');
+INSERT INTO `t_order_position` VALUES (11587, 2, 2648, 390, '109.40542825996062', '24.353415774040112', '60.0', '14.0', '2020-09-02 05:01:55');
+INSERT INTO `t_order_position` VALUES (11588, 2, 2648, 390, '109.40622861404526', '24.353415811516832', '58.0', '15.0', '2020-09-02 05:02:00');
+INSERT INTO `t_order_position` VALUES (11589, 2, 2648, 390, '109.40682885714129', '24.353382496763892', '62.0', '15.0', '2020-09-02 05:02:05');
+INSERT INTO `t_order_position` VALUES (11590, 2, 2648, 390, '109.40736239252209', '24.353365829897008', '58.0', '15.0', '2020-09-02 05:02:10');
+INSERT INTO `t_order_position` VALUES (11591, 2, 2648, 390, '109.40791258727018', '24.35336581200819', '58.0', '15.0', '2020-09-02 05:02:15');
+INSERT INTO `t_order_position` VALUES (11592, 2, 2648, 390, '109.40849611187214', '24.353382440688268', '58.0', '15.0', '2020-09-02 05:02:20');
+INSERT INTO `t_order_position` VALUES (11593, 2, 2648, 390, '109.40906294732645', '24.353382393685354', '58.0', '15.0', '2020-09-02 05:02:25');
+INSERT INTO `t_order_position` VALUES (11594, 2, 2648, 390, '109.40969645052911', '24.353382324314875', '60.0', '15.0', '2020-09-02 05:02:30');
+INSERT INTO `t_order_position` VALUES (11595, 2, 2648, 390, '109.41032993289167', '24.35336557489764', '56.0', '15.0', '2020-09-02 05:02:35');
+INSERT INTO `t_order_position` VALUES (11596, 2, 2648, 390, '109.41084671111481', '24.35343213950246', '18.0', '15.0', '2020-09-02 05:03:15');
+INSERT INTO `t_order_position` VALUES (11597, 2, 2648, 390, '109.41108014847312', '24.35444849437042', '2.0', '15.0', '2020-09-02 05:03:25');
+INSERT INTO `t_order_position` VALUES (11598, 2, 2648, 390, '109.41111351827956', '24.354965018052887', '2.0', '15.0', '2020-09-02 05:03:30');
+INSERT INTO `t_order_position` VALUES (11599, 2, 2648, 390, '109.41118024793003', '24.355831443226936', '4.0', '15.0', '2020-09-02 05:03:40');
+INSERT INTO `t_order_position` VALUES (11600, 2, 2648, 390, '109.41119694990233', '24.35638129508956', '4.0', '15.0', '2020-09-02 05:03:45');
+INSERT INTO `t_order_position` VALUES (11601, 2, 2648, 390, '109.41149703146554', '24.356897766687943', '64.0', '15.0', '2020-09-02 05:03:55');
+INSERT INTO `t_order_position` VALUES (11602, 2, 2648, 390, '109.41241381599811', '24.356714276034285', '60.0', '15.0', '2020-09-02 05:04:05');
+INSERT INTO `t_order_position` VALUES (11603, 2, 2648, 390, '109.41339723679222', '24.356647364611526', '60.0', '15.0', '2020-09-02 05:04:16');
+INSERT INTO `t_order_position` VALUES (11604, 2, 2648, 390, '109.41436394615425', '24.35664706448517', '60.0', '15.0', '2020-09-02 05:04:26');
+INSERT INTO `t_order_position` VALUES (11605, 2, 2648, 390, '109.41524727854431', '24.356663415795502', '62.0', '15.0', '2020-09-02 05:04:36');
+INSERT INTO `t_order_position` VALUES (11606, 2, 2648, 390, '109.41581392434611', '24.356679860099835', '40.0', '15.0', '2020-09-02 05:04:46');
+INSERT INTO `t_order_position` VALUES (11607, 2, 2648, 390, '109.41611393662623', '24.357196269687133', '10.0', '15.0', '2020-09-02 05:04:56');
+INSERT INTO `t_order_position` VALUES (11608, 2, 2648, 390, '109.41628062166049', '24.357712731636333', '12.0', '15.0', '2020-09-02 05:05:01');
+INSERT INTO `t_order_position` VALUES (11609, 2, 2648, 390, '109.41649730002695', '24.358212508899754', '14.0', '15.0', '2020-09-02 05:05:06');
+INSERT INTO `t_order_position` VALUES (11610, 2, 2648, 390, '109.41666398674946', '24.358812279963388', '0.0', '15.0', '2020-09-02 05:05:16');
+INSERT INTO `t_order_position` VALUES (11611, 2, 2648, 390, '109.4163473056688', '24.358095936509475', '128.0', '15.0', '2020-09-02 05:06:06');
+INSERT INTO `t_order_position` VALUES (11612, 2, 2648, 390, '109.4161639527664', '24.357529494906544', '122.0', '15.0', '2020-09-02 05:06:11');
+INSERT INTO `t_order_position` VALUES (11613, 2, 2648, 390, '109.4159972628363', '24.356946383017313', '120.0', '15.0', '2020-09-02 05:06:16');
+INSERT INTO `t_order_position` VALUES (11614, 2, 2648, 390, '109.41589723351228', '24.356346581239006', '118.0', '15.0', '2020-09-02 05:06:21');
+INSERT INTO `t_order_position` VALUES (11615, 2, 2648, 390, '109.41583053232112', '24.355696779258572', '116.0', '15.0', '2020-09-02 05:06:26');
+INSERT INTO `t_order_position` VALUES (11616, 2, 2648, 390, '109.41574716409121', '24.35503032175148', '118.0', '15.0', '2020-09-02 05:06:31');
+INSERT INTO `t_order_position` VALUES (11617, 2, 2648, 390, '109.41569712633037', '24.354347189005225', '120.0', '15.0', '2020-09-02 05:06:37');
+INSERT INTO `t_order_position` VALUES (11618, 2, 2648, 390, '109.41563042251059', '24.353664063027196', '120.0', '15.0', '2020-09-02 05:06:42');
+INSERT INTO `t_order_position` VALUES (11619, 2, 2648, 390, '109.4155303844878', '24.352947625624065', '118.0', '15.0', '2020-09-02 05:06:47');
+INSERT INTO `t_order_position` VALUES (11620, 2, 2648, 390, '109.41543034694291', '24.352247850416816', '122.0', '15.0', '2020-09-02 05:06:52');
+INSERT INTO `t_order_position` VALUES (11621, 2, 2648, 390, '109.41528031319818', '24.351598080524635', '124.0', '15.0', '2020-09-02 05:06:57');
+INSERT INTO `t_order_position` VALUES (11622, 2, 2648, 390, '109.4151302714665', '24.35083167455957', '124.0', '15.0', '2020-09-02 05:07:02');
+INSERT INTO `t_order_position` VALUES (11623, 2, 2648, 390, '109.4149135654973', '24.35011527853304', '124.0', '15.0', '2020-09-02 05:07:07');
+INSERT INTO `t_order_position` VALUES (11624, 2, 2648, 390, '109.41461352143577', '24.349365585231872', '126.0', '15.0', '2020-09-02 05:07:12');
+INSERT INTO `t_order_position` VALUES (11625, 2, 2648, 390, '109.41439681377322', '24.34871583372186', '126.0', '15.0', '2020-09-02 05:07:17');
+INSERT INTO `t_order_position` VALUES (11626, 2, 2648, 390, '109.4141967787418', '24.34819937235242', '122.0', '15.0', '2020-09-02 05:07:22');
+INSERT INTO `t_order_position` VALUES (11627, 2, 2648, 390, '109.41399673974763', '24.34764958509102', '128.0', '15.0', '2020-09-02 05:07:27');
+INSERT INTO `t_order_position` VALUES (11628, 2, 2648, 390, '109.41374669431197', '24.34706648726369', '124.0', '15.0', '2020-09-02 05:07:32');
+INSERT INTO `t_order_position` VALUES (11629, 2, 2648, 390, '109.41349663497218', '24.346300103373046', '122.0', '15.0', '2020-09-02 05:07:37');
+INSERT INTO `t_order_position` VALUES (11630, 2, 2648, 390, '109.41337992334631', '24.345666976185', '122.0', '15.0', '2020-09-02 05:07:42');
+INSERT INTO `t_order_position` VALUES (11631, 2, 2648, 390, '109.41327987601099', '24.344983857632233', '118.0', '15.0', '2020-09-02 05:07:47');
+INSERT INTO `t_order_position` VALUES (11632, 2, 2648, 390, '109.41324650588838', '24.34440069297974', '116.0', '15.0', '2020-09-02 05:07:55');
+INSERT INTO `t_order_position` VALUES (11633, 2, 2648, 390, '109.41322980954004', '24.343917496504723', '114.0', '15.0', '2020-09-02 05:07:57');
+INSERT INTO `t_order_position` VALUES (11634, 2, 2648, 390, '109.4132797770638', '24.343300984615542', '114.0', '15.0', '2020-09-02 05:08:02');
+INSERT INTO `t_order_position` VALUES (11635, 2, 2648, 390, '109.41332973956433', '24.342601162479998', '110.0', '15.0', '2020-09-02 05:08:07');
+INSERT INTO `t_order_position` VALUES (11636, 2, 2648, 390, '109.41337970096033', '24.341884678551814', '114.0', '15.0', '2020-09-02 05:08:12');
+INSERT INTO `t_order_position` VALUES (11637, 2, 2648, 390, '109.41344633196182', '24.34120151422197', '112.0', '15.0', '2020-09-02 05:08:17');
+INSERT INTO `t_order_position` VALUES (11638, 2, 2648, 390, '109.41346296053267', '24.340535026775772', '112.0', '15.0', '2020-09-02 05:08:22');
+INSERT INTO `t_order_position` VALUES (11639, 2, 2648, 390, '109.4136295863981', '24.339668550694846', '114.0', '15.0', '2020-09-02 05:08:27');
+INSERT INTO `t_order_position` VALUES (11640, 2, 2648, 390, '109.41374622015037', '24.339002033713314', '104.0', '15.0', '2020-09-02 05:08:32');
+INSERT INTO `t_order_position` VALUES (11641, 2, 2648, 390, '109.41391285834794', '24.338385487029704', '104.0', '15.0', '2020-09-02 05:08:37');
+INSERT INTO `t_order_position` VALUES (11642, 2, 2648, 390, '109.41406282399369', '24.337702296632486', '112.0', '15.0', '2020-09-02 05:08:42');
+INSERT INTO `t_order_position` VALUES (11643, 2, 2648, 390, '109.41424613644925', '24.337252362931', '0.0', '15.0', '2020-09-02 05:08:58');
+INSERT INTO `t_order_position` VALUES (11644, 2, 2648, 390, '109.41439609273374', '24.336452536866286', '114.0', '15.0', '2020-09-02 05:09:18');
+INSERT INTO `t_order_position` VALUES (11645, 2, 2648, 390, '109.41451271808936', '24.335719369606768', '114.0', '15.0', '2020-09-02 05:09:23');
+INSERT INTO `t_order_position` VALUES (11646, 2, 2648, 390, '109.41451267890406', '24.335052889958497', '114.0', '15.0', '2020-09-02 05:09:28');
+INSERT INTO `t_order_position` VALUES (11647, 2, 2648, 390, '109.41442930419491', '24.334369776775468', '120.0', '15.0', '2020-09-02 05:09:33');
+INSERT INTO `t_order_position` VALUES (11648, 2, 2648, 390, '109.4142625899793', '24.333620043243958', '122.0', '15.0', '2020-09-02 05:09:38');
+INSERT INTO `t_order_position` VALUES (11649, 2, 2648, 390, '109.41401253612987', '24.332837011525015', '124.0', '15.0', '2020-09-02 05:09:43');
+INSERT INTO `t_order_position` VALUES (11650, 2, 2648, 390, '109.41376248502942', '24.332153949172643', '120.0', '15.0', '2020-09-02 05:09:48');
+INSERT INTO `t_order_position` VALUES (11651, 2, 2648, 390, '109.41364577888208', '24.331587478364423', '98.0', '15.0', '2020-09-02 05:09:53');
+INSERT INTO `t_order_position` VALUES (11652, 2, 2648, 390, '109.41396242937456', '24.331054199122182', '92.0', '15.0', '2020-09-02 05:09:58');
+INSERT INTO `t_order_position` VALUES (11653, 2, 2648, 390, '109.41441240997358', '24.33050420948389', '94.0', '15.0', '2020-09-02 05:10:03');
+INSERT INTO `t_order_position` VALUES (11654, 2, 2648, 390, '109.41477904636538', '24.32993757846371', '106.0', '15.0', '2020-09-02 05:10:08');
+INSERT INTO `t_order_position` VALUES (11655, 2, 2648, 390, '109.41494567397793', '24.329287704678343', '114.0', '15.0', '2020-09-02 05:10:13');
+INSERT INTO `t_order_position` VALUES (11656, 2, 2648, 390, '109.41502895934353', '24.32848790320464', '112.0', '15.0', '2020-09-02 05:10:18');
+INSERT INTO `t_order_position` VALUES (11657, 2, 2648, 390, '109.41509558092015', '24.327738093683966', '112.0', '15.0', '2020-09-02 05:10:23');
+INSERT INTO `t_order_position` VALUES (11658, 2, 2648, 390, '109.41521219924508', '24.3269549421808', '112.0', '15.0', '2020-09-02 05:10:28');
+INSERT INTO `t_order_position` VALUES (11659, 2, 2648, 390, '109.41529548741512', '24.326221788653367', '114.0', '15.0', '2020-09-02 05:10:33');
+INSERT INTO `t_order_position` VALUES (11660, 2, 2648, 390, '109.41534543997076', '24.32543866222533', '116.0', '15.0', '2020-09-02 05:10:38');
+INSERT INTO `t_order_position` VALUES (11661, 2, 2648, 390, '109.41531206350679', '24.324688891263534', '122.0', '15.0', '2020-09-02 05:10:43');
+INSERT INTO `t_order_position` VALUES (11662, 2, 2648, 390, '109.41517868835628', '24.32392249596629', '124.0', '15.0', '2020-09-02 05:10:48');
+INSERT INTO `t_order_position` VALUES (11663, 2, 2648, 390, '109.41499531688433', '24.32322276573952', '126.0', '15.0', '2020-09-02 05:10:53');
+INSERT INTO `t_order_position` VALUES (11664, 2, 2648, 390, '109.41479528493316', '24.32265633483358', '122.0', '15.0', '2020-09-02 05:10:58');
+INSERT INTO `t_order_position` VALUES (11665, 2, 2648, 390, '109.41462859141492', '24.322206523652145', '130.0', '15.0', '2020-09-02 05:11:04');
+INSERT INTO `t_order_position` VALUES (11666, 2, 2648, 390, '109.41439522481191', '24.3216900864767', '0.0', '15.0', '2020-09-02 05:11:24');
+INSERT INTO `t_order_position` VALUES (11667, 2, 2648, 390, '109.41424518428217', '24.321056987343532', '130.0', '15.0', '2020-09-02 05:12:45');
+INSERT INTO `t_order_position` VALUES (11668, 2, 2648, 390, '109.41401181907665', '24.320640517392125', '130.0', '15.0', '2020-09-02 05:12:50');
+INSERT INTO `t_order_position` VALUES (11669, 2, 2648, 390, '109.41366176958715', '24.320074124397877', '158.0', '15.0', '2020-09-02 05:13:05');
+INSERT INTO `t_order_position` VALUES (11670, 2, 2648, 390, '109.41242832550957', '24.3199911522639', '112.0', '15.0', '2020-09-02 05:13:15');
+INSERT INTO `t_order_position` VALUES (11671, 2, 2648, 390, '109.41174489790872', '24.31994132418789', '114.0', '15.0', '2020-09-02 05:13:25');
+INSERT INTO `t_order_position` VALUES (11672, 2, 2648, 390, '109.41114480050074', '24.319974768672775', '112.0', '15.0', '2020-09-02 05:13:30');
+INSERT INTO `t_order_position` VALUES (11673, 2, 2648, 390, '109.41041132337253', '24.320008218222043', '110.0', '15.0', '2020-09-02 05:13:35');
+INSERT INTO `t_order_position` VALUES (11674, 2, 2648, 390, '109.409677821522', '24.32007496741762', '110.0', '15.0', '2020-09-02 05:13:40');
+INSERT INTO `t_order_position` VALUES (11675, 2, 2648, 390, '109.40912767080596', '24.32000838110945', '134.0', '15.0', '2020-09-02 05:13:45');
+INSERT INTO `t_order_position` VALUES (11676, 2, 2648, 390, '109.40909426737039', '24.318975353811695', '112.0', '15.0', '2020-09-02 05:13:55');
+INSERT INTO `t_order_position` VALUES (11677, 2, 2648, 390, '109.40916092139518', '24.318442170509616', '110.0', '15.0', '2020-09-02 05:14:00');
+INSERT INTO `t_order_position` VALUES (11678, 2, 2648, 390, '109.40919423265437', '24.317908990633676', '112.0', '15.0', '2020-09-02 05:14:05');
+INSERT INTO `t_order_position` VALUES (11679, 2, 2648, 390, '109.40921087357201', '24.31739247439129', '110.0', '15.0', '2020-09-02 05:14:10');
+INSERT INTO `t_order_position` VALUES (11680, 2, 2648, 390, '109.40924416907815', '24.316592706906693', '110.0', '15.0', '2020-09-02 05:14:20');
+INSERT INTO `t_order_position` VALUES (11681, 2, 2648, 390, '109.40926080505764', '24.315992882453212', '144.0', '15.0', '2020-09-02 05:14:30');
+INSERT INTO `t_order_position` VALUES (11682, 2, 2648, 390, '109.40821044519637', '24.315226527873754', '150.0', '15.0', '2020-09-02 05:14:41');
+INSERT INTO `t_order_position` VALUES (11683, 2, 2648, 390, '109.40752685431205', '24.314826675702253', '150.0', '15.0', '2020-09-02 05:14:45');
+INSERT INTO `t_order_position` VALUES (11684, 2, 2648, 390, '109.40674320097611', '24.31442680263606', '150.0', '15.0', '2020-09-02 05:14:50');
+INSERT INTO `t_order_position` VALUES (11685, 2, 2648, 390, '109.40597618664157', '24.313943594868434', '150.0', '15.0', '2020-09-02 05:14:55');
+INSERT INTO `t_order_position` VALUES (11686, 2, 2648, 390, '109.40524249171872', '24.313443702294514', '144.0', '15.0', '2020-09-02 05:15:01');
+INSERT INTO `t_order_position` VALUES (11687, 2, 2648, 390, '109.40460881322916', '24.312810503081867', '140.0', '15.0', '2020-09-02 05:15:06');
+INSERT INTO `t_order_position` VALUES (11688, 2, 2648, 390, '109.40402513990172', '24.312143969677784', '142.0', '15.0', '2020-09-02 05:15:11');
+INSERT INTO `t_order_position` VALUES (11689, 2, 2648, 390, '109.40330803611397', '24.311377431346113', '142.0', '15.0', '2020-09-02 05:15:16');
+INSERT INTO `t_order_position` VALUES (11690, 2, 2648, 390, '109.40252419603324', '24.310527550383398', '142.0', '15.0', '2020-09-02 05:15:21');
+INSERT INTO `t_order_position` VALUES (11691, 2, 2648, 390, '109.40192378806755', '24.30987762377782', '142.0', '15.0', '2020-09-02 05:15:26');
+INSERT INTO `t_order_position` VALUES (11692, 2, 2648, 390, '109.4013734026773', '24.309344325668963', '142.0', '15.0', '2020-09-02 05:15:31');
+INSERT INTO `t_order_position` VALUES (11693, 2, 2648, 390, '109.40090639591978', '24.308861021546914', '140.0', '15.0', '2020-09-02 05:15:36');
+INSERT INTO `t_order_position` VALUES (11694, 2, 2648, 390, '109.40043937589978', '24.308327723413214', '132.0', '15.0', '2020-09-02 05:15:41');
+INSERT INTO `t_order_position` VALUES (11695, 2, 2648, 390, '109.40012245450448', '24.307811122203596', '120.0', '15.0', '2020-09-02 05:15:46');
+INSERT INTO `t_order_position` VALUES (11696, 2, 2648, 390, '109.39995563260422', '24.307211254173087', '120.0', '15.0', '2020-09-02 05:15:51');
+INSERT INTO `t_order_position` VALUES (11697, 2, 2648, 390, '109.39990555817903', '24.306561435823912', '120.0', '15.0', '2020-09-02 05:15:56');
+INSERT INTO `t_order_position` VALUES (11698, 2, 2648, 390, '109.39978877318384', '24.305994905419467', '122.0', '15.0', '2020-09-02 05:16:01');
+INSERT INTO `t_order_position` VALUES (11699, 2, 2648, 390, '109.39960527847836', '24.305544985083827', '142.0', '15.0', '2020-09-02 05:16:06');
+INSERT INTO `t_order_position` VALUES (11700, 2, 2648, 390, '109.39863786146506', '24.305328060999106', '116.0', '15.0', '2020-09-02 05:16:16');
+INSERT INTO `t_order_position` VALUES (11701, 2, 2648, 390, '109.39792062954125', '24.305494412175317', '118.0', '15.0', '2020-09-02 05:16:21');
+INSERT INTO `t_order_position` VALUES (11702, 2, 2648, 390, '109.39742022008349', '24.305594184349996', '118.0', '15.0', '2020-09-02 05:16:26');
+INSERT INTO `t_order_position` VALUES (11703, 2, 2648, 390, '109.39711999076967', '24.306027262765767', '10.0', '15.0', '2020-09-02 05:18:12');
+INSERT INTO `t_order_position` VALUES (11704, 2, 2648, 390, '109.39725348578375', '24.30684373739649', '6.0', '15.0', '2020-09-02 05:18:22');
+INSERT INTO `t_order_position` VALUES (11705, 2, 2648, 390, '109.39732026869689', '24.307860124199987', '162.0', '15.0', '2020-09-02 05:18:32');
+INSERT INTO `t_order_position` VALUES (11706, 2, 2648, 390, '109.39727028402358', '24.308843140563823', '166.0', '15.0', '2020-09-02 05:18:42');
+INSERT INTO `t_order_position` VALUES (11707, 2, 2648, 390, '109.39725363157228', '24.309326321587786', '166.0', '15.0', '2020-09-02 05:18:47');
+INSERT INTO `t_order_position` VALUES (11708, 2, 2648, 390, '109.39723697812965', '24.30979284111513', '164.0', '15.0', '2020-09-02 05:18:52');
+INSERT INTO `t_order_position` VALUES (11709, 2, 2648, 390, '109.39788754482203', '24.31019298065242', '58.0', '15.0', '2020-09-02 05:19:07');
+INSERT INTO `t_order_position` VALUES (11710, 2, 2648, 390, '109.39845467002957', '24.31020985432079', '56.0', '15.0', '2020-09-02 05:19:12');
+INSERT INTO `t_order_position` VALUES (11711, 2, 2648, 390, '109.39915519304147', '24.309843541082547', '94.0', '15.0', '2020-09-02 05:19:22');
+INSERT INTO `t_order_position` VALUES (11712, 2, 2648, 390, '109.39955546454229', '24.309343821173233', '94.0', '15.0', '2020-09-02 05:19:27');
+INSERT INTO `t_order_position` VALUES (11713, 2, 2648, 390, '109.40005578599646', '24.308594199723426', '94.0', '15.0', '2020-09-02 05:19:37');
+INSERT INTO `t_order_position` VALUES (11714, 2, 2648, 390, '109.40043937198463', '24.308261076847405', '46.0', '15.0', '2020-09-02 05:19:47');
+INSERT INTO `t_order_position` VALUES (11715, 2, 2648, 390, '109.40105648353423', '24.308627796858072', '78.0', '15.0', '2020-09-02 05:20:03');
+INSERT INTO `t_order_position` VALUES (11716, 2, 2648, 390, '109.40113983941299', '24.308061321930463', '110.0', '15.0', '2020-09-02 05:20:18');
+INSERT INTO `t_order_position` VALUES (11717, 2, 2648, 390, '109.40107316139255', '24.308627801062315', '20.0', '15.0', '2020-09-02 05:20:28');
+INSERT INTO `t_order_position` VALUES (11718, 2, 2648, 390, '109.40135671135226', '24.30911105853437', '26.0', '15.0', '2020-09-02 05:20:33');
+INSERT INTO `t_order_position` VALUES (11719, 2, 2648, 390, '109.40189042585477', '24.309744323283585', '28.0', '15.0', '2020-09-02 05:20:38');
+INSERT INTO `t_order_position` VALUES (11720, 2, 2648, 390, '109.40259090174506', '24.31051090127833', '28.0', '15.0', '2020-09-02 05:20:43');
+INSERT INTO `t_order_position` VALUES (11721, 2, 2648, 390, '109.40332470728463', '24.31129412554541', '28.0', '15.0', '2020-09-02 05:20:48');
+INSERT INTO `t_order_position` VALUES (11722, 2, 2648, 390, '109.40399178006932', '24.311994010282127', '28.0', '15.0', '2020-09-02 05:20:53');
+INSERT INTO `t_order_position` VALUES (11723, 2, 2648, 390, '109.40457545335771', '24.312643882758042', '28.0', '15.0', '2020-09-02 05:20:58');
+INSERT INTO `t_order_position` VALUES (11724, 2, 2648, 390, '109.4050924048762', '24.31317710368644', '34.0', '15.0', '2020-09-02 05:21:03');
+INSERT INTO `t_order_position` VALUES (11725, 2, 2648, 390, '109.4055926633329', '24.313610342005024', '38.0', '15.0', '2020-09-02 05:21:08');
+INSERT INTO `t_order_position` VALUES (11726, 2, 2648, 390, '109.40607622501693', '24.313860290119496', '54.0', '15.0', '2020-09-02 05:21:13');
+INSERT INTO `t_order_position` VALUES (11727, 2, 2648, 390, '109.40682651439909', '24.31352707054881', '124.0', '15.0', '2020-09-02 05:21:24');
+INSERT INTO `t_order_position` VALUES (11728, 2, 2648, 390, '109.40667642248955', '24.312977233378653', '86.0', '15.0', '2020-09-02 05:21:33');
+INSERT INTO `t_order_position` VALUES (11729, 2, 2648, 390, '109.40729330261877', '24.312560688520726', '70.0', '15.0', '2020-09-02 05:21:43');
+INSERT INTO `t_order_position` VALUES (11730, 2, 2648, 390, '109.40782681592759', '24.312377394304736', '64.0', '14.0', '2020-09-02 05:21:53');
+INSERT INTO `t_order_position` VALUES (11731, 2, 2648, 390, '109.4084936905883', '24.31219407857532', '78.0', '15.0', '2020-09-02 05:22:08');
+INSERT INTO `t_order_position` VALUES (11732, 2, 2648, 390, '109.40891046621425', '24.311910796692555', '86.0', '15.0', '2020-09-02 05:22:18');
+INSERT INTO `t_order_position` VALUES (11733, 2, 2648, 390, '109.40949393553467', '24.31147753354072', '66.0', '15.0', '2020-09-02 05:22:39');
+INSERT INTO `t_order_position` VALUES (11734, 2, 2648, 390, '109.4102274489306', '24.31149409916234', '54.0', '15.0', '2020-09-02 05:22:54');
+INSERT INTO `t_order_position` VALUES (11735, 2, 2648, 390, '109.41101097936298', '24.31209379079803', '0.0', '15.0', '2020-09-02 05:23:04');
+INSERT INTO `t_order_position` VALUES (11736, 2, 2648, 390, '109.41107768973859', '24.312626952711163', '4.0', '15.0', '2020-09-02 05:23:09');
+INSERT INTO `t_order_position` VALUES (11737, 2, 2648, 390, '109.41109439080499', '24.313160123991604', '4.0', '15.0', '2020-09-02 05:23:14');
+INSERT INTO `t_order_position` VALUES (11738, 2, 2648, 390, '109.41109442998344', '24.313826592260245', '0.0', '15.0', '2020-09-02 05:23:39');
+INSERT INTO `t_order_position` VALUES (11739, 2, 2648, 390, '109.4116945376945', '24.313943104674436', '0.0', '15.0', '2020-09-02 05:24:24');
+INSERT INTO `t_order_position` VALUES (11740, 2, 2648, 390, '109.41114444396928', '24.3139098914672', '0.0', '15.0', '2020-09-02 05:26:20');
+INSERT INTO `t_order_position` VALUES (11741, 2, 2648, 390, '109.41112780465035', '24.314426407769243', '0.0', '15.0', '2020-09-02 05:26:30');
+INSERT INTO `t_order_position` VALUES (11742, 2, 2648, 390, '109.41112783893176', '24.31500956804704', '4.0', '15.0', '2020-09-02 05:26:35');
+INSERT INTO `t_order_position` VALUES (11743, 2, 2648, 390, '109.41119455186005', '24.315592715992878', '4.0', '15.0', '2020-09-02 05:26:40');
+INSERT INTO `t_order_position` VALUES (11744, 2, 2648, 390, '109.41167800167798', '24.31620910305418', '58.0', '15.0', '2020-09-02 05:26:54');
+INSERT INTO `t_order_position` VALUES (11745, 2, 2648, 390, '109.41237809726674', '24.31620894375187', '56.0', '14.0', '2020-09-02 05:26:55');
+INSERT INTO `t_order_position` VALUES (11746, 2, 2648, 390, '109.41304483714467', '24.31629208035714', '40.0', '15.0', '2020-09-02 05:27:00');
+INSERT INTO `t_order_position` VALUES (11747, 2, 2648, 390, '109.41346155188589', '24.316575212326928', '2.0', '15.0', '2020-09-02 05:27:05');
+INSERT INTO `t_order_position` VALUES (11748, 2, 2648, 390, '109.41327826456677', '24.317574970197843', '156.0', '13.0', '2020-09-02 05:27:16');
+INSERT INTO `t_order_position` VALUES (11749, 2, 2648, 390, '109.41307828203766', '24.31814152592643', '0.0', '13.0', '2020-09-02 05:27:21');
+INSERT INTO `t_order_position` VALUES (11750, 2, 2648, 390, '109.41312832634388', '24.31882464472008', '12.0', '13.0', '2020-09-02 05:27:26');
+INSERT INTO `t_order_position` VALUES (11751, 2, 2648, 390, '109.41334504675356', '24.31945773127785', '18.0', '15.0', '2020-09-02 05:27:36');
+INSERT INTO `t_order_position` VALUES (11752, 2, 2648, 390, '109.41329507841259', '24.320057569865078', '110.0', '15.0', '2020-09-02 05:28:56');
+INSERT INTO `t_order_position` VALUES (11753, 2, 2648, 390, '109.41272836216693', '24.320057723769168', '110.0', '15.0', '2020-09-02 05:29:01');
+INSERT INTO `t_order_position` VALUES (11754, 2, 2648, 390, '109.41221163436433', '24.320024527977537', '106.0', '15.0', '2020-09-02 05:29:06');
+INSERT INTO `t_order_position` VALUES (11755, 2, 2648, 390, '109.41171156148413', '24.319974654904932', '112.0', '15.0', '2020-09-02 05:29:11');
+INSERT INTO `t_order_position` VALUES (11756, 2, 2648, 390, '109.41114480343924', '24.32002475404178', '112.0', '15.0', '2020-09-02 05:29:16');
+INSERT INTO `t_order_position` VALUES (11757, 2, 2648, 390, '109.41044466684876', '24.320058198386086', '112.0', '15.0', '2020-09-02 05:29:22');
+INSERT INTO `t_order_position` VALUES (11758, 2, 2648, 390, '109.40977784856365', '24.320108278492857', '110.0', '15.0', '2020-09-02 05:29:27');
+INSERT INTO `t_order_position` VALUES (11759, 2, 2648, 390, '109.4091610320712', '24.320324951847677', '164.0', '15.0', '2020-09-02 05:29:37');
+INSERT INTO `t_order_position` VALUES (11760, 2, 2648, 390, '109.40921109002711', '24.32107472773635', '0.0', '15.0', '2020-09-02 05:29:47');
+INSERT INTO `t_order_position` VALUES (11761, 2, 2648, 390, '109.40911111013425', '24.321891166358252', '164.0', '15.0', '2020-09-02 05:31:32');
+INSERT INTO `t_order_position` VALUES (11762, 2, 2648, 390, '109.40897777313188', '24.322474342615177', '166.0', '15.0', '2020-09-02 05:31:37');
+INSERT INTO `t_order_position` VALUES (11763, 2, 2648, 390, '109.40897780251525', '24.32297419735941', '166.0', '15.0', '2020-09-02 05:31:42');
+INSERT INTO `t_order_position` VALUES (11764, 2, 2648, 390, '109.40902786582193', '24.323807284386117', '164.0', '15.0', '2020-09-02 05:31:52');
+INSERT INTO `t_order_position` VALUES (11765, 2, 2648, 390, '109.4089445584818', '24.324657046129296', '164.0', '15.0', '2020-09-02 05:31:57');
+INSERT INTO `t_order_position` VALUES (11766, 2, 2648, 390, '109.4089612701255', '24.32534018064515', '160.0', '15.0', '2020-09-02 05:32:02');
+INSERT INTO `t_order_position` VALUES (11767, 2, 2648, 390, '109.4089113124353', '24.326306573317073', '164.0', '15.0', '2020-09-02 05:32:13');
+INSERT INTO `t_order_position` VALUES (11768, 2, 2648, 390, '109.40892802410681', '24.32698970873949', '6.0', '15.0', '2020-09-02 05:32:23');
+INSERT INTO `t_order_position` VALUES (11769, 2, 2648, 390, '109.4090114245651', '24.327722824064598', '4.0', '15.0', '2020-09-02 05:32:28');
+INSERT INTO `t_order_position` VALUES (11770, 2, 2648, 390, '109.40904481834664', '24.328589239500776', '4.0', '15.0', '2020-09-02 05:32:33');
+INSERT INTO `t_order_position` VALUES (11771, 2, 2648, 390, '109.40909487561414', '24.32932235857501', '4.0', '15.0', '2020-09-02 05:32:38');
+INSERT INTO `t_order_position` VALUES (11772, 2, 2648, 390, '109.40916159428504', '24.32988885710897', '4.0', '15.0', '2020-09-02 05:32:43');
+INSERT INTO `t_order_position` VALUES (11773, 2, 2648, 390, '109.40922832449058', '24.3306552988251', '4.0', '15.0', '2020-09-02 05:32:48');
+INSERT INTO `t_order_position` VALUES (11774, 2, 2648, 390, '109.40929504859986', '24.331321769181812', '4.0', '15.0', '2020-09-02 05:32:53');
+INSERT INTO `t_order_position` VALUES (11775, 2, 2648, 390, '109.40932842526489', '24.331904933567827', '4.0', '15.0', '2020-09-02 05:32:58');
+INSERT INTO `t_order_position` VALUES (11776, 2, 2648, 390, '109.4093784700797', '24.3324381104982', '6.0', '15.0', '2020-09-02 05:33:03');
+INSERT INTO `t_order_position` VALUES (11777, 2, 2648, 390, '109.4094285147711', '24.33297128754366', '4.0', '15.0', '2020-09-02 05:33:08');
+INSERT INTO `t_order_position` VALUES (11778, 2, 2648, 390, '109.40951190239869', '24.33352112284719', '4.0', '15.0', '2020-09-02 05:33:13');
+INSERT INTO `t_order_position` VALUES (11779, 2, 2648, 390, '109.40954527772787', '24.334087625958983', '2.0', '15.0', '2020-09-02 05:33:18');
+INSERT INTO `t_order_position` VALUES (11780, 2, 2648, 390, '109.40956197810587', '24.334587483320803', '12.0', '15.0', '2020-09-02 05:33:23');
+INSERT INTO `t_order_position` VALUES (11781, 2, 2648, 390, '109.40982876010557', '24.335403887678268', '130.0', '15.0', '2020-09-02 05:33:33');
+INSERT INTO `t_order_position` VALUES (11782, 2, 2648, 390, '109.40912857780475', '24.335437291440275', '104.0', '15.0', '2020-09-02 05:33:43');
+INSERT INTO `t_order_position` VALUES (11783, 2, 2648, 390, '109.40794487599966', '24.335404052967498', '110.0', '15.0', '2020-09-02 05:33:53');
+INSERT INTO `t_order_position` VALUES (11784, 2, 2648, 390, '109.40727797836806', '24.33550404586986', '114.0', '15.0', '2020-09-02 05:33:58');
+INSERT INTO `t_order_position` VALUES (11785, 2, 2648, 390, '109.40654436128561', '24.335537370316725', '112.0', '15.0', '2020-09-02 05:34:03');
+INSERT INTO `t_order_position` VALUES (11786, 2, 2648, 390, '109.40571067332266', '24.335570666201843', '110.0', '15.0', '2020-09-02 05:34:08');
+INSERT INTO `t_order_position` VALUES (11787, 2, 2648, 390, '109.4048436018737', '24.335603928781023', '112.0', '15.0', '2020-09-02 05:34:13');
+INSERT INTO `t_order_position` VALUES (11788, 2, 2648, 390, '109.40404320288611', '24.33575380104682', '10.0', '15.0', '2020-09-02 05:34:23');
+INSERT INTO `t_order_position` VALUES (11789, 2, 2648, 390, '109.40459349735124', '24.335937144914674', '74.0', '15.0', '2020-09-02 05:34:33');
+INSERT INTO `t_order_position` VALUES (11790, 2, 2648, 390, '109.40511040443525', '24.335720585126946', '0.0', '15.0', '2020-09-02 05:34:54');
+INSERT INTO `t_order_position` VALUES (11791, 2, 2648, 390, '109.40531046075438', '24.335070782219358', '110.0', '15.0', '2020-09-02 05:36:04');
+INSERT INTO `t_order_position` VALUES (11792, 2, 2648, 390, '109.4053271058295', '24.334570923860472', '106.0', '15.0', '2020-09-02 05:36:09');
+INSERT INTO `t_order_position` VALUES (11793, 2, 2648, 390, '109.40542712387459', '24.334087733174364', '0.0', '15.0', '2020-09-02 05:36:19');
+INSERT INTO `t_order_position` VALUES (11794, 2, 2648, 390, '109.405577162271', '24.333571221246984', '156.0', '15.0', '2020-09-02 05:37:19');
+INSERT INTO `t_order_position` VALUES (11795, 2, 2648, 390, '109.40536044294686', '24.3343709823777', '162.0', '15.0', '2020-09-02 05:37:30');
+INSERT INTO `t_order_position` VALUES (11796, 2, 2648, 390, '109.40534380671275', '24.335020798548825', '2.0', '15.0', '2020-09-02 05:37:40');
+INSERT INTO `t_order_position` VALUES (11797, 2, 2648, 390, '109.40579403502531', '24.335420712445472', '60.0', '15.0', '2020-09-02 05:37:50');
+INSERT INTO `t_order_position` VALUES (11798, 2, 2648, 390, '109.40637761524094', '24.335354085217507', '60.0', '15.0', '2020-09-02 05:37:55');
+INSERT INTO `t_order_position` VALUES (11799, 2, 2648, 390, '109.40696117882685', '24.335287443080173', '64.0', '15.0', '2020-09-02 05:38:00');
+INSERT INTO `t_order_position` VALUES (11800, 2, 2648, 390, '109.40752805602983', '24.33527077243138', '64.0', '15.0', '2020-09-02 05:38:05');
+INSERT INTO `t_order_position` VALUES (11801, 2, 2648, 390, '109.40812826083908', '24.33523742386772', '64.0', '15.0', '2020-09-02 05:38:10');
+INSERT INTO `t_order_position` VALUES (11802, 2, 2648, 390, '109.4086951035764', '24.335187400088255', '60.0', '15.0', '2020-09-02 05:38:15');
+INSERT INTO `t_order_position` VALUES (11803, 2, 2648, 390, '109.40939527638332', '24.33473746014917', '118.0', '15.0', '2020-09-02 05:38:25');
+INSERT INTO `t_order_position` VALUES (11804, 2, 2648, 390, '109.40934523062951', '24.334187620303926', '118.0', '15.0', '2020-09-02 05:38:30');
+INSERT INTO `t_order_position` VALUES (11805, 2, 2648, 390, '109.40931184615512', '24.333471159150854', '116.0', '15.0', '2020-09-02 05:38:35');
+INSERT INTO `t_order_position` VALUES (11806, 2, 2648, 390, '109.40926179529818', '24.332838009886732', '114.0', '15.0', '2020-09-02 05:38:40');
+INSERT INTO `t_order_position` VALUES (11807, 2, 2648, 390, '109.4092450868375', '24.332204857401443', '116.0', '15.0', '2020-09-02 05:38:45');
+INSERT INTO `t_order_position` VALUES (11808, 2, 2648, 390, '109.40921170611715', '24.33155504499038', '118.0', '15.0', '2020-09-02 05:38:50');
+INSERT INTO `t_order_position` VALUES (11809, 2, 2648, 390, '109.40917832730113', '24.33093855672897', '116.0', '15.0', '2020-09-02 05:38:55');
+INSERT INTO `t_order_position` VALUES (11810, 2, 2648, 390, '109.40912827317723', '24.33025542267184', '116.0', '15.0', '2020-09-02 05:39:00');
+INSERT INTO `t_order_position` VALUES (11811, 2, 2648, 390, '109.40909488834751', '24.32953896343512', '116.0', '15.0', '2020-09-02 05:39:10');
+INSERT INTO `t_order_position` VALUES (11812, 2, 2648, 390, '109.40904481736716', '24.328572577599623', '116.0', '15.0', '2020-09-02 05:39:20');
+INSERT INTO `t_order_position` VALUES (11813, 2, 2648, 390, '109.40897810321007', '24.328089388779794', '116.0', '15.0', '2020-09-02 05:39:25');
+INSERT INTO `t_order_position` VALUES (11814, 2, 2648, 390, '109.40899474724337', '24.327622854277593', '0.0', '15.0', '2020-09-02 05:39:45');
+INSERT INTO `t_order_position` VALUES (11815, 2, 2648, 390, '109.40906147114025', '24.328272661830933', '2.0', '15.0', '2020-09-02 05:41:06');
+INSERT INTO `t_order_position` VALUES (11816, 2, 2648, 390, '109.4090781699558', '24.328739193437915', '4.0', '15.0', '2020-09-02 05:41:11');
+INSERT INTO `t_order_position` VALUES (11817, 2, 2648, 390, '109.4091282163667', '24.329289031496756', '0.0', '15.0', '2020-09-02 05:41:21');
+INSERT INTO `t_order_position` VALUES (11818, 2, 2648, 390, '109.4091282467309', '24.32980555082613', '4.0', '15.0', '2020-09-02 05:41:57');
+INSERT INTO `t_order_position` VALUES (11819, 2, 2648, 390, '109.40924503198507', '24.331271788607356', '4.0', '15.0', '2020-09-02 05:42:07');
+INSERT INTO `t_order_position` VALUES (11820, 2, 2648, 390, '109.40932843995758', '24.332154862766938', '2.0', '15.0', '2020-09-02 05:42:12');
+INSERT INTO `t_order_position` VALUES (11821, 2, 2648, 390, '109.4093618293017', '24.332954632935984', '2.0', '15.0', '2020-09-02 05:42:17');
+INSERT INTO `t_order_position` VALUES (11822, 2, 2648, 390, '109.40949526466949', '24.334087631749757', '4.0', '15.0', '2020-09-02 05:42:22');
+INSERT INTO `t_order_position` VALUES (11823, 2, 2648, 390, '109.40957867553162', '24.335037354909254', '4.0', '15.0', '2020-09-02 05:42:27');
+INSERT INTO `t_order_position` VALUES (11824, 2, 2648, 390, '109.409678755967', '24.335970414441412', '4.0', '15.0', '2020-09-02 05:42:32');
+INSERT INTO `t_order_position` VALUES (11825, 2, 2648, 390, '109.40971215061312', '24.336870158591637', '4.0', '15.0', '2020-09-02 05:42:37');
+INSERT INTO `t_order_position` VALUES (11826, 2, 2648, 390, '109.40976221113394', '24.337686591127078', '4.0', '15.0', '2020-09-02 05:42:42');
+INSERT INTO `t_order_position` VALUES (11827, 2, 2648, 390, '109.40979559290895', '24.338369729971554', '0.0', '15.0', '2020-09-02 05:42:47');
+INSERT INTO `t_order_position` VALUES (11828, 2, 2648, 390, '109.40982897071092', '24.338986220983276', '10.0', '15.0', '2020-09-02 05:42:57');
+INSERT INTO `t_order_position` VALUES (11829, 2, 2648, 390, '109.4096955649663', '24.3383197564597', '122.0', '15.0', '2020-09-02 05:44:13');
+INSERT INTO `t_order_position` VALUES (11830, 2, 2648, 390, '109.40964551799411', '24.33773659165521', '116.0', '15.0', '2020-09-02 05:45:03');
+INSERT INTO `t_order_position` VALUES (11831, 2, 2648, 390, '109.40961213107418', '24.336970142872094', '118.0', '15.0', '2020-09-02 05:45:08');
+INSERT INTO `t_order_position` VALUES (11832, 2, 2648, 390, '109.40956206332584', '24.336037076468774', '116.0', '15.0', '2020-09-02 05:45:13');
+INSERT INTO `t_order_position` VALUES (11833, 2, 2648, 390, '109.40952867039191', '24.335170656673423', '118.0', '15.0', '2020-09-02 05:45:18');
+INSERT INTO `t_order_position` VALUES (11834, 2, 2648, 390, '109.40947860243831', '24.33423759142944', '116.0', '15.0', '2020-09-02 05:45:23');
+INSERT INTO `t_order_position` VALUES (11835, 2, 2648, 390, '109.40939518920548', '24.333254544580207', '118.0', '15.0', '2020-09-02 05:45:28');
+INSERT INTO `t_order_position` VALUES (11836, 2, 2648, 390, '109.40931179815875', '24.332654723096443', '114.0', '15.0', '2020-09-02 05:45:33');
+INSERT INTO `t_order_position` VALUES (11837, 2, 2648, 390, '109.40926174730208', '24.332021574243523', '116.0', '15.0', '2020-09-02 05:45:38');
+INSERT INTO `t_order_position` VALUES (11838, 2, 2648, 390, '109.40919501034921', '24.331138498247164', '116.0', '15.0', '2020-09-02 05:45:43');
+INSERT INTO `t_order_position` VALUES (11839, 2, 2648, 390, '109.40912827415673', '24.330272084595126', '118.0', '15.0', '2020-09-02 05:45:48');
+INSERT INTO `t_order_position` VALUES (11840, 2, 2648, 390, '109.40907822088911', '24.329605612701826', '116.0', '15.0', '2020-09-02 05:45:53');
+INSERT INTO `t_order_position` VALUES (11841, 2, 2648, 390, '109.40901148039538', '24.328672552143633', '120.0', '15.0', '2020-09-02 05:46:03');
+INSERT INTO `t_order_position` VALUES (11842, 2, 2648, 390, '109.40892807797772', '24.32790611248592', '124.0', '15.0', '2020-09-02 05:46:13');
+INSERT INTO `t_order_position` VALUES (11843, 2, 2648, 390, '109.40891136532647', '24.327206314688777', '116.0', '15.0', '2020-09-02 05:46:23');
+INSERT INTO `t_order_position` VALUES (11844, 2, 2648, 390, '109.40886131936097', '24.326673138927024', '110.0', '15.0', '2020-09-02 05:46:28');
+INSERT INTO `t_order_position` VALUES (11845, 2, 2648, 390, '109.40891128696926', '24.325873364734797', '110.0', '15.0', '2020-09-02 05:46:33');
+INSERT INTO `t_order_position` VALUES (11846, 2, 2648, 390, '109.40887790570247', '24.32522355507376', '114.0', '15.0', '2020-09-02 05:46:38');
+INSERT INTO `t_order_position` VALUES (11847, 2, 2648, 390, '109.40886118517531', '24.32439046393211', '112.0', '15.0', '2020-09-02 05:46:43');
+INSERT INTO `t_order_position` VALUES (11848, 2, 2648, 390, '109.4089444908996', '24.323507379002717', '110.0', '15.0', '2020-09-02 05:46:48');
+INSERT INTO `t_order_position` VALUES (11849, 2, 2648, 390, '109.40902779726038', '24.32264095619632', '110.0', '15.0', '2020-09-02 05:46:54');
+INSERT INTO `t_order_position` VALUES (11850, 2, 2648, 390, '109.40906109992385', '24.321957818446094', '110.0', '15.0', '2020-09-02 05:46:59');
+INSERT INTO `t_order_position` VALUES (11851, 2, 2648, 390, '109.40911106410037', '24.321108061336112', '114.0', '15.0', '2020-09-02 05:47:04');
+INSERT INTO `t_order_position` VALUES (11852, 2, 2648, 390, '109.40914437446224', '24.32055821864176', '110.0', '15.0', '2020-09-02 05:47:09');
+INSERT INTO `t_order_position` VALUES (11853, 2, 2648, 390, '109.4091776593039', '24.319575169669996', '110.0', '15.0', '2020-09-02 05:48:04');
+INSERT INTO `t_order_position` VALUES (11854, 2, 2648, 390, '109.4091776093528', '24.318725418953456', '110.0', '15.0', '2020-09-02 05:48:09');
+INSERT INTO `t_order_position` VALUES (11855, 2, 2648, 390, '109.40919423265437', '24.317908990633676', '110.0', '15.0', '2020-09-02 05:48:14');
+INSERT INTO `t_order_position` VALUES (11856, 2, 2648, 390, '109.40921085888066', '24.31714254807139', '112.0', '15.0', '2020-09-02 05:48:19');
+INSERT INTO `t_order_position` VALUES (11857, 2, 2648, 390, '109.40922749096987', '24.31647607641033', '114.0', '15.0', '2020-09-02 05:48:24');
+INSERT INTO `t_order_position` VALUES (11858, 2, 2648, 390, '109.40917744872746', '24.31599289099564', '142.0', '15.0', '2020-09-02 05:48:29');
+INSERT INTO `t_order_position` VALUES (11859, 2, 2648, 390, '109.408810658191', '24.31567635193509', '150.0', '15.0', '2020-09-02 05:48:34');
+INSERT INTO `t_order_position` VALUES (11860, 2, 2648, 390, '109.40829381235604', '24.315343155002108', '152.0', '15.0', '2020-09-02 05:48:39');
+INSERT INTO `t_order_position` VALUES (11861, 2, 2648, 390, '109.40781030118592', '24.31505993022208', '146.0', '15.0', '2020-09-02 05:48:49');
+INSERT INTO `t_order_position` VALUES (11862, 2, 2648, 390, '109.40679322569636', '24.314510111511186', '150.0', '15.0', '2020-09-02 05:49:19');
+INSERT INTO `t_order_position` VALUES (11863, 2, 2648, 390, '109.40602621127611', '24.313993581966518', '148.0', '15.0', '2020-09-02 05:49:24');
+INSERT INTO `t_order_position` VALUES (11864, 2, 2648, 390, '109.40524249269792', '24.3134603640007', '144.0', '15.0', '2020-09-02 05:49:29');
+INSERT INTO `t_order_position` VALUES (11865, 2, 2648, 390, '109.40449208379732', '24.312743844342872', '140.0', '15.0', '2020-09-02 05:49:34');
+INSERT INTO `t_order_position` VALUES (11866, 2, 2648, 390, '109.40379166988299', '24.311943999027374', '140.0', '15.0', '2020-09-02 05:49:39');
+INSERT INTO `t_order_position` VALUES (11867, 2, 2648, 390, '109.4030578798157', '24.31114412745534', '142.0', '15.0', '2020-09-02 05:49:44');
+INSERT INTO `t_order_position` VALUES (11868, 2, 2648, 390, '109.40242412972407', '24.310427561166737', '142.0', '15.0', '2020-09-02 05:49:49');
+INSERT INTO `t_order_position` VALUES (11869, 2, 2648, 390, '109.40172365021621', '24.309694301537448', '142.0', '15.0', '2020-09-02 05:49:54');
+INSERT INTO `t_order_position` VALUES (11870, 2, 2648, 390, '109.40107318194835', '24.308977695665938', '142.0', '15.0', '2020-09-02 05:50:00');
+INSERT INTO `t_order_position` VALUES (11871, 2, 2648, 390, '109.40047273355596', '24.30834439432507', '132.0', '15.0', '2020-09-02 05:50:05');
+INSERT INTO `t_order_position` VALUES (11872, 2, 2648, 390, '109.40008909238237', '24.307727804265127', '124.0', '15.0', '2020-09-02 05:50:10');
+INSERT INTO `t_order_position` VALUES (11873, 2, 2648, 390, '109.39992226141185', '24.30697798140305', '118.0', '15.0', '2020-09-02 05:50:15');
+INSERT INTO `t_order_position` VALUES (11874, 2, 2648, 390, '109.39983882145775', '24.306194860050898', '124.0', '15.0', '2020-09-02 05:50:20');
+INSERT INTO `t_order_position` VALUES (11875, 2, 2648, 390, '109.3996219555209', '24.305511667097555', '140.0', '15.0', '2020-09-02 05:50:25');
+INSERT INTO `t_order_position` VALUES (11876, 2, 2648, 390, '109.3991716013067', '24.305228274550366', '114.0', '15.0', '2020-09-02 05:50:30');
+INSERT INTO `t_order_position` VALUES (11877, 2, 2648, 390, '109.39845438134866', '24.305294672071774', '118.0', '15.0', '2020-09-02 05:50:35');
+INSERT INTO `t_order_position` VALUES (11878, 2, 2648, 390, '109.39770378236508', '24.30546100466777', '118.0', '15.0', '2020-09-02 05:50:40');
+INSERT INTO `t_order_position` VALUES (11879, 2, 2648, 390, '109.3970365614735', '24.305610687542295', '110.0', '15.0', '2020-09-02 05:50:45');
+INSERT INTO `t_order_position` VALUES (11880, 2, 2648, 390, '109.39643603427692', '24.305560442575455', '118.0', '15.0', '2020-09-02 05:50:52');
+INSERT INTO `t_order_position` VALUES (11881, 2, 2648, 390, '109.39576877256404', '24.305676767418642', '120.0', '15.0', '2020-09-02 05:50:55');
+INSERT INTO `t_order_position` VALUES (11882, 2, 2648, 390, '109.39516822133051', '24.305809768975763', '122.0', '15.0', '2020-09-02 05:51:00');
+INSERT INTO `t_order_position` VALUES (11883, 2, 2648, 390, '109.39453429187571', '24.306009384919683', '128.0', '15.0', '2020-09-02 05:51:10');
+INSERT INTO `t_order_position` VALUES (11884, 2, 2648, 390, '109.39393373450048', '24.306608881773112', '140.0', '15.0', '2020-09-02 05:51:25');
+INSERT INTO `t_order_position` VALUES (11885, 2, 2648, 390, '109.39361677495785', '24.307058570154243', '136.0', '15.0', '2020-09-02 05:51:30');
+INSERT INTO `t_order_position` VALUES (11886, 2, 2648, 390, '109.39318302090378', '24.30745820263509', '134.0', '15.0', '2020-09-02 05:51:35');
+INSERT INTO `t_order_position` VALUES (11887, 2, 2648, 390, '109.39268252045512', '24.307841126337856', '134.0', '15.0', '2020-09-02 05:51:40');
+INSERT INTO `t_order_position` VALUES (11888, 2, 2648, 390, '109.39209858743973', '24.308257311892376', '130.0', '15.0', '2020-09-02 05:51:45');
+INSERT INTO `t_order_position` VALUES (11889, 2, 2648, 390, '109.39146458391284', '24.308673451883216', '132.0', '15.0', '2020-09-02 05:51:50');
+INSERT INTO `t_order_position` VALUES (11890, 2, 2648, 390, '109.39099741173602', '24.308973055913565', '116.0', '15.0', '2020-09-02 05:51:57');
+INSERT INTO `t_order_position` VALUES (11891, 2, 2648, 390, '109.39016310012936', '24.308622594384932', '134.0', '15.0', '2020-09-02 05:52:05');
+INSERT INTO `t_order_position` VALUES (11892, 2, 2648, 390, '109.38977927800426', '24.30797252052907', '120.0', '15.0', '2020-09-02 05:52:10');
+INSERT INTO `t_order_position` VALUES (11893, 2, 2648, 390, '109.38962907158509', '24.30748922599623', '100.0', '15.0', '2020-09-02 05:52:15');
+INSERT INTO `t_order_position` VALUES (11894, 2, 2648, 390, '109.38992940428315', '24.30710622192241', '72.0', '15.0', '2020-09-02 05:53:36');
+INSERT INTO `t_order_position` VALUES (11895, 2, 2648, 390, '109.39074700050163', '24.306806875932295', '62.0', '15.0', '2020-09-02 05:53:46');
+INSERT INTO `t_order_position` VALUES (11896, 2, 2648, 390, '109.3913977267592', '24.306690674310616', '72.0', '15.0', '2020-09-02 05:53:56');
+INSERT INTO `t_order_position` VALUES (11897, 2, 2648, 390, '109.39208180494364', '24.306591138472196', '68.0', '15.0', '2020-09-02 05:54:06');
+INSERT INTO `t_order_position` VALUES (11898, 2, 2648, 390, '109.39269912063737', '24.306408236376498', '68.0', '15.0', '2020-09-02 05:54:11');
+INSERT INTO `t_order_position` VALUES (11899, 2, 2648, 390, '109.39321632122714', '24.306308569819464', '68.0', '15.0', '2020-09-02 05:54:16');
+INSERT INTO `t_order_position` VALUES (11900, 2, 2648, 390, '109.39375018948463', '24.306142255395002', '0.0', '15.0', '2020-09-02 05:54:36');
+INSERT INTO `t_order_position` VALUES (11901, 2, 2648, 390, '109.39450092213455', '24.30594272099756', '68.0', '15.0', '2020-09-02 05:54:51');
+INSERT INTO `t_order_position` VALUES (11902, 2, 2648, 390, '109.39540176913277', '24.305726575961984', '68.0', '14.0', '2020-09-02 05:55:02');
+INSERT INTO `t_order_position` VALUES (11903, 2, 2648, 390, '109.39626922002371', '24.3055770292896', '68.0', '15.0', '2020-09-02 05:55:12');
+INSERT INTO `t_order_position` VALUES (11904, 2, 2648, 390, '109.39696982171986', '24.3053440736673', '62.0', '15.0', '2020-09-02 05:55:22');
+INSERT INTO `t_order_position` VALUES (11905, 2, 2648, 390, '109.39800401531197', '24.305227858395426', '64.0', '15.0', '2020-09-02 05:55:42');
+INSERT INTO `t_order_position` VALUES (11906, 2, 2648, 390, '109.39883800298782', '24.30507820704121', '78.0', '15.0', '2020-09-02 05:55:47');
+INSERT INTO `t_order_position` VALUES (11907, 2, 2648, 390, '109.39935504689495', '24.304778471542267', '68.0', '15.0', '2020-09-02 05:55:52');
+INSERT INTO `t_order_position` VALUES (11908, 2, 2648, 390, '109.39990545149878', '24.304745320480574', '18.0', '15.0', '2020-09-02 05:55:57');
+INSERT INTO `t_order_position` VALUES (11909, 2, 2648, 390, '109.40007226889514', '24.305261879741174', '154.0', '15.0', '2020-09-02 05:56:02');
+INSERT INTO `t_order_position` VALUES (11910, 2, 2648, 390, '109.39987216244043', '24.305911622735724', '8.0', '15.0', '2020-09-02 05:56:07');
+INSERT INTO `t_order_position` VALUES (11911, 2, 2648, 390, '109.40007235404521', '24.306711440052908', '12.0', '15.0', '2020-09-02 05:56:12');
+INSERT INTO `t_order_position` VALUES (11912, 2, 2648, 390, '109.40038929380383', '24.307527950849565', '12.0', '15.0', '2020-09-02 05:56:17');
+INSERT INTO `t_order_position` VALUES (11913, 2, 2648, 390, '109.40055610740121', '24.30804450776994', '16.0', '15.0', '2020-09-02 05:56:22');
+INSERT INTO `t_order_position` VALUES (11914, 2, 2648, 390, '109.4008229921338', '24.308627736757867', '26.0', '15.0', '2020-09-02 05:56:27');
+INSERT INTO `t_order_position` VALUES (11915, 2, 2648, 390, '109.40144011204937', '24.309327679860875', '28.0', '15.0', '2020-09-02 05:56:32');
+INSERT INTO `t_order_position` VALUES (11916, 2, 2648, 390, '109.40217395794187', '24.310110939622263', '28.0', '15.0', '2020-09-02 05:56:37');
+INSERT INTO `t_order_position` VALUES (11917, 2, 2648, 390, '109.40295781018975', '24.310944170434595', '28.0', '15.0', '2020-09-02 05:56:42');
+INSERT INTO `t_order_position` VALUES (11918, 2, 2648, 390, '109.40369160280663', '24.31172738336672', '28.0', '15.0', '2020-09-02 05:56:47');
+INSERT INTO `t_order_position` VALUES (11919, 2, 2648, 390, '109.40450875009897', '24.312593890819276', '28.0', '15.0', '2020-09-02 05:56:52');
+INSERT INTO `t_order_position` VALUES (11920, 2, 2648, 390, '109.4052591593719', '24.31332707155631', '30.0', '15.0', '2020-09-02 05:56:57');
+INSERT INTO `t_order_position` VALUES (11921, 2, 2648, 390, '109.40594283387973', '24.31386028494167', '38.0', '15.0', '2020-09-02 05:57:02');
+INSERT INTO `t_order_position` VALUES (11922, 2, 2648, 390, '109.40660980732629', '24.314310169328785', '36.0', '15.0', '2020-09-02 05:57:07');
+INSERT INTO `t_order_position` VALUES (11923, 2, 2648, 390, '109.40734345232363', '24.314793356603037', '38.0', '15.0', '2020-09-02 05:57:12');
+INSERT INTO `t_order_position` VALUES (11924, 2, 2648, 390, '109.4080437225833', '24.315209875180198', '38.0', '15.0', '2020-09-02 05:57:17');
+INSERT INTO `t_order_position` VALUES (11925, 2, 2648, 390, '109.40882733076565', '24.315693012256432', '40.0', '15.0', '2020-09-02 05:57:22');
+INSERT INTO `t_order_position` VALUES (11926, 2, 2648, 390, '109.40934416594169', '24.316076182297603', '36.0', '15.0', '2020-09-02 05:58:08');
+INSERT INTO `t_order_position` VALUES (11927, 2, 2648, 390, '109.41031108496638', '24.31632598321858', '58.0', '15.0', '2020-09-02 05:58:23');
+INSERT INTO `t_order_position` VALUES (11928, 2, 2648, 390, '109.4111612546818', '24.316309177042235', '60.0', '15.0', '2020-09-02 05:58:28');
+INSERT INTO `t_order_position` VALUES (11929, 2, 2648, 390, '109.41199471853002', '24.31627568066904', '60.0', '14.0', '2020-09-02 05:58:33');
+INSERT INTO `t_order_position` VALUES (11930, 2, 2648, 390, '109.41271147046886', '24.316258845412985', '58.0', '15.0', '2020-09-02 05:58:38');
+INSERT INTO `t_order_position` VALUES (11931, 2, 2648, 390, '109.4133781933719', '24.31624200161119', '66.0', '15.0', '2020-09-02 05:58:48');
+INSERT INTO `t_order_position` VALUES (11932, 2, 2648, 390, '109.4139948775092', '24.315975227619038', '76.0', '15.0', '2020-09-02 05:58:58');
+INSERT INTO `t_order_position` VALUES (11933, 2, 2648, 390, '109.41471153526798', '24.315575108163916', '82.0', '14.0', '2020-09-02 05:59:03');
+INSERT INTO `t_order_position` VALUES (11934, 2, 2648, 390, '109.4152448441516', '24.31525834331839', '82.0', '14.0', '2020-09-02 05:59:08');
+INSERT INTO `t_order_position` VALUES (11935, 2, 2648, 390, '109.4156781436249', '24.314941605115134', '98.0', '15.0', '2020-09-02 05:59:13');
+INSERT INTO `t_order_position` VALUES (11936, 2, 2648, 390, '109.41526145163517', '24.31425863374833', '144.0', '15.0', '2020-09-02 05:59:23');
+INSERT INTO `t_order_position` VALUES (11937, 2, 2648, 390, '109.4143947693299', '24.31394236725419', '114.0', '15.0', '2020-09-02 05:59:33');
+INSERT INTO `t_order_position` VALUES (11938, 2, 2648, 390, '109.41384475267749', '24.313959205697365', '110.0', '15.0', '2020-09-02 05:59:38');
+INSERT INTO `t_order_position` VALUES (11939, 2, 2648, 390, '109.41321137637256', '24.31389274553352', '112.0', '15.0', '2020-09-02 05:59:48');
+INSERT INTO `t_order_position` VALUES (11940, 2, 2648, 390, '109.41241130818742', '24.314059572769946', '0.0', '15.0', '2020-09-02 06:00:09');
+INSERT INTO `t_order_position` VALUES (11941, 2, 2648, 390, '109.41184456500578', '24.314026380835305', '0.0', '15.0', '2020-09-02 06:01:04');
+INSERT INTO `t_order_position` VALUES (11942, 2, 2648, 390, '109.41107777593105', '24.31409318275411', '120.0', '15.0', '2020-09-02 06:02:25');
+INSERT INTO `t_order_position` VALUES (11943, 2, 2648, 390, '109.41102780487593', '24.31474299897417', '164.0', '15.0', '2020-09-02 06:02:40');
+INSERT INTO `t_order_position` VALUES (11944, 2, 2648, 390, '109.4109278408447', '24.315676073836894', '8.0', '15.0', '2020-09-02 06:02:50');
+INSERT INTO `t_order_position` VALUES (11945, 2, 2648, 390, '109.41149464515273', '24.31630911160817', '56.0', '15.0', '2020-09-02 06:03:00');
+INSERT INTO `t_order_position` VALUES (11946, 2, 2648, 390, '109.41221141789225', '24.31634227760475', '54.0', '15.0', '2020-09-02 06:03:05');
+INSERT INTO `t_order_position` VALUES (11947, 2, 2648, 390, '109.41279481412725', '24.316292147228758', '54.0', '14.0', '2020-09-02 06:03:10');
+INSERT INTO `t_order_position` VALUES (11948, 2, 2648, 390, '109.41346155188589', '24.316575212326928', '4.0', '15.0', '2020-09-02 06:03:20');
+INSERT INTO `t_order_position` VALUES (11949, 2, 2648, 390, '109.41341158677466', '24.317225035108912', '166.0', '15.0', '2020-09-02 06:03:35');
+INSERT INTO `t_order_position` VALUES (11950, 2, 2648, 390, '109.41332828094643', '24.317791558844075', '0.0', '15.0', '2020-09-02 06:03:55');
+INSERT INTO `t_order_position` VALUES (11951, 2, 2648, 390, '109.41314498065128', '24.318591375276785', '8.0', '15.0', '2020-09-02 06:12:14');
+INSERT INTO `t_order_position` VALUES (11952, 2, 2648, 390, '109.41334504087635', '24.319357760585426', '24.0', '15.0', '2020-09-02 06:12:24');
+INSERT INTO `t_order_position` VALUES (11953, 2, 2648, 390, '109.41361175110204', '24.31980755075643', '22.0', '14.0', '2020-09-02 06:12:29');
+INSERT INTO `t_order_position` VALUES (11954, 2, 2648, 390, '109.41416182217702', '24.320607145822223', '18.0', '14.0', '2020-09-02 06:12:39');
+INSERT INTO `t_order_position` VALUES (11955, 2, 2648, 390, '109.41434520424382', '24.321356866918574', '136.0', '15.0', '2020-09-02 06:12:49');
+INSERT INTO `t_order_position` VALUES (11956, 2, 2648, 390, '109.41392854219825', '24.321656913680712', '132.0', '15.0', '2020-09-02 06:12:54');
+INSERT INTO `t_order_position` VALUES (11957, 2, 2648, 390, '109.4134285356862', '24.322006962507793', '144.0', '15.0', '2020-09-02 06:12:59');
+INSERT INTO `t_order_position` VALUES (11958, 2, 2648, 390, '109.41296186674802', '24.322590256763398', '146.0', '15.0', '2020-09-02 06:13:04');
+INSERT INTO `t_order_position` VALUES (11959, 2, 2648, 390, '109.41252852401313', '24.323173533216945', '142.0', '15.0', '2020-09-02 06:13:09');
+INSERT INTO `t_order_position` VALUES (11960, 2, 2648, 390, '109.41211183686954', '24.323690150328456', '140.0', '15.0', '2020-09-02 06:13:14');
+INSERT INTO `t_order_position` VALUES (11961, 2, 2648, 390, '109.41169514009114', '24.324190098039313', '140.0', '15.0', '2020-09-02 06:13:19');
+INSERT INTO `t_order_position` VALUES (11962, 2, 2648, 390, '109.41127843270762', '24.32465671448874', '140.0', '15.0', '2020-09-02 06:13:24');
+INSERT INTO `t_order_position` VALUES (11963, 2, 2648, 390, '109.41091172439795', '24.325089990819336', '144.0', '15.0', '2020-09-02 06:13:29');
+INSERT INTO `t_order_position` VALUES (11964, 2, 2648, 390, '109.41052834314578', '24.325589911433426', '140.0', '15.0', '2020-09-02 06:13:34');
+INSERT INTO `t_order_position` VALUES (11965, 2, 2648, 390, '109.41016162215746', '24.326039837696452', '142.0', '15.0', '2020-09-02 06:13:39');
+INSERT INTO `t_order_position` VALUES (11966, 2, 2648, 390, '109.40982823312174', '24.326439768226273', '144.0', '15.0', '2020-09-02 06:13:44');
+INSERT INTO `t_order_position` VALUES (11967, 2, 2648, 390, '109.40944483421691', '24.32698965653909', '152.0', '15.0', '2020-09-02 06:13:59');
+INSERT INTO `t_order_position` VALUES (11968, 2, 2648, 390, '109.40911143237723', '24.32737291487568', '150.0', '15.0', '2020-09-02 06:14:09');
+INSERT INTO `t_order_position` VALUES (11969, 2, 2648, 390, '109.40902810774999', '24.32792276519833', '4.0', '14.0', '2020-09-02 06:14:20');
+INSERT INTO `t_order_position` VALUES (11970, 2, 2648, 390, '109.40916153159762', '24.32882249478375', '4.0', '15.0', '2020-09-02 06:14:30');
+INSERT INTO `t_order_position` VALUES (11971, 2, 2648, 390, '109.40912822910006', '24.32950563635117', '6.0', '15.0', '2020-09-02 06:14:40');
+INSERT INTO `t_order_position` VALUES (11972, 2, 2648, 390, '109.40921162285953', '24.330138780857286', '0.0', '15.0', '2020-09-02 06:14:50');
+INSERT INTO `t_order_position` VALUES (11973, 2, 2648, 390, '109.40924501043598', '24.33090522605574', '2.0', '15.0', '2020-09-02 06:15:00');
+INSERT INTO `t_order_position` VALUES (11974, 2, 2648, 390, '109.40931174134701', '24.331688330084425', '6.0', '15.0', '2020-09-02 06:15:10');
+INSERT INTO `t_order_position` VALUES (11975, 2, 2648, 390, '109.40939513141386', '24.33227148915745', '0.0', '15.0', '2020-09-02 06:15:20');
+INSERT INTO `t_order_position` VALUES (11976, 2, 2648, 390, '109.40939516961507', '24.33292130536771', '4.0', '15.0', '2020-09-02 06:15:55');
+INSERT INTO `t_order_position` VALUES (11977, 2, 2648, 390, '109.40946188533982', '24.33345448070028', '2.0', '15.0', '2020-09-02 06:16:00');
+INSERT INTO `t_order_position` VALUES (11978, 2, 2648, 390, '109.40951192786645', '24.33395433404771', '4.0', '15.0', '2020-09-02 06:16:05');
+INSERT INTO `t_order_position` VALUES (11979, 2, 2648, 390, '109.40962867075221', '24.334737433211778', '10.0', '15.0', '2020-09-02 06:16:15');
+INSERT INTO `t_order_position` VALUES (11980, 2, 2648, 390, '109.40987876548213', '24.335287247212896', '158.0', '15.0', '2020-09-02 06:16:30');
+INSERT INTO `t_order_position` VALUES (11981, 2, 2648, 390, '109.40971210261509', '24.336053720319647', '4.0', '15.0', '2020-09-02 06:16:41');
+INSERT INTO `t_order_position` VALUES (11982, 2, 2648, 390, '109.4097621543196', '24.336720194229876', '4.0', '15.0', '2020-09-02 06:16:46');
+INSERT INTO `t_order_position` VALUES (11983, 2, 2648, 390, '109.40977886529475', '24.337403334671112', '0.0', '15.0', '2020-09-02 06:16:51');
+INSERT INTO `t_order_position` VALUES (11984, 2, 2648, 390, '109.40977890349764', '24.33805315354856', '2.0', '15.0', '2020-09-02 06:16:56');
+INSERT INTO `t_order_position` VALUES (11985, 2, 2648, 390, '109.409795608582', '24.338636322497816', '4.0', '15.0', '2020-09-02 06:17:01');
+INSERT INTO `t_order_position` VALUES (11986, 2, 2648, 390, '109.4099123351404', '24.3391694924836', '0.0', '15.0', '2020-09-02 06:17:21');
+INSERT INTO `t_order_position` VALUES (11987, 2, 2648, 390, '109.40996237949385', '24.339719333270544', '2.0', '15.0', '2020-09-02 06:17:36');
+INSERT INTO `t_order_position` VALUES (11988, 2, 2648, 390, '109.40997909030496', '24.340402475214727', '2.0', '15.0', '2020-09-02 06:17:41');
+INSERT INTO `t_order_position` VALUES (11989, 2, 2648, 390, '109.41002914233034', '24.34108561293571', '2.0', '15.0', '2020-09-02 06:17:46');
+INSERT INTO `t_order_position` VALUES (11990, 2, 2648, 390, '109.41006251582962', '24.34163545665321', '4.0', '15.0', '2020-09-02 06:17:51');
+INSERT INTO `t_order_position` VALUES (11991, 2, 2648, 390, '109.4101125745062', '24.342435229467654', '2.0', '15.0', '2020-09-02 06:18:01');
+INSERT INTO `t_order_position` VALUES (11992, 2, 2648, 390, '109.40994580679008', '24.34138554156852', '118.0', '15.0', '2020-09-02 06:18:21');
+INSERT INTO `t_order_position` VALUES (11993, 2, 2648, 390, '109.40996244120748', '24.340769042818227', '116.0', '15.0', '2020-09-02 06:18:27');
+INSERT INTO `t_order_position` VALUES (11994, 2, 2648, 390, '109.40992906558418', '24.340185875226933', '114.0', '15.0', '2020-09-02 06:18:37');
+INSERT INTO `t_order_position` VALUES (11995, 2, 2648, 390, '109.40987902604596', '24.339719344402113', '114.0', '15.0', '2020-09-02 06:18:42');
+INSERT INTO `t_order_position` VALUES (11996, 2, 2648, 390, '109.40982896189479', '24.338836262637912', '116.0', '15.0', '2020-09-02 06:19:37');
+INSERT INTO `t_order_position` VALUES (11997, 2, 2648, 390, '109.40974555989806', '24.338019833713453', '118.0', '15.0', '2020-09-02 06:19:42');
+INSERT INTO `t_order_position` VALUES (11998, 2, 2648, 390, '109.40971217412245', '24.337270046920054', '118.0', '15.0', '2020-09-02 06:19:47');
+INSERT INTO `t_order_position` VALUES (11999, 2, 2648, 390, '109.40966211837585', '24.336536924576734', '118.0', '15.0', '2020-09-02 06:19:52');
+INSERT INTO `t_order_position` VALUES (12000, 2, 2648, 390, '109.40961206348538', '24.33582046455049', '114.0', '15.0', '2020-09-02 06:19:57');
+INSERT INTO `t_order_position` VALUES (12001, 2, 2648, 390, '109.40954533845905', '24.33512066876689', '120.0', '15.0', '2020-09-02 06:20:02');
+INSERT INTO `t_order_position` VALUES (12002, 2, 2648, 390, '109.40946193823434', '24.33435422715941', '118.0', '15.0', '2020-09-02 06:20:07');
+INSERT INTO `t_order_position` VALUES (12003, 2, 2648, 390, '109.40939521173452', '24.333637769783916', '116.0', '15.0', '2020-09-02 06:20:12');
+INSERT INTO `t_order_position` VALUES (12004, 2, 2648, 390, '109.40934516108344', '24.333004620620567', '118.0', '15.0', '2020-09-02 06:20:17');
+INSERT INTO `t_order_position` VALUES (12005, 2, 2648, 390, '109.4092450956531', '24.332354814950683', '116.0', '15.0', '2020-09-02 06:20:22');
+INSERT INTO `t_order_position` VALUES (12006, 2, 2648, 390, '109.40922838326081', '24.33165501492783', '116.0', '15.0', '2020-09-02 06:20:27');
+INSERT INTO `t_order_position` VALUES (12007, 2, 2648, 390, '109.40919500055419', '24.33097187890992', '118.0', '15.0', '2020-09-02 06:20:32');
+INSERT INTO `t_order_position` VALUES (12008, 2, 2648, 390, '109.40911160672577', '24.330338733925068', '116.0', '15.0', '2020-09-02 06:20:37');
+INSERT INTO `t_order_position` VALUES (12009, 2, 2648, 390, '109.40911156950504', '24.32970558096119', '116.0', '15.0', '2020-09-02 06:20:42');
+INSERT INTO `t_order_position` VALUES (12010, 2, 2648, 390, '109.4090615210939', '24.329122418867748', '118.0', '15.0', '2020-09-02 06:20:48');
+INSERT INTO `t_order_position` VALUES (12011, 2, 2648, 390, '109.40902814888813', '24.328622564876795', '116.0', '15.0', '2020-09-02 06:20:53');
+INSERT INTO `t_order_position` VALUES (12012, 2, 2648, 390, '109.4090114412162', '24.32800607622441', '120.0', '15.0', '2020-09-02 06:21:03');
+INSERT INTO `t_order_position` VALUES (12013, 2, 2648, 390, '109.40897806501056', '24.327439575052466', '94.0', '15.0', '2020-09-02 06:21:28');
+INSERT INTO `t_order_position` VALUES (12014, 2, 2648, 390, '109.4095615147962', '24.326706391179886', '92.0', '15.0', '2020-09-02 06:21:38');
+INSERT INTO `t_order_position` VALUES (12015, 2, 2648, 390, '109.40991157599933', '24.326256476688705', '92.0', '15.0', '2020-09-02 06:21:43');
+INSERT INTO `t_order_position` VALUES (12016, 2, 2648, 390, '109.41052833922772', '24.32552326398704', '92.0', '15.0', '2020-09-02 06:21:53');
+INSERT INTO `t_order_position` VALUES (12017, 2, 2648, 390, '109.41089505648104', '24.32512331748656', '90.0', '15.0', '2020-09-02 06:21:58');
+INSERT INTO `t_order_position` VALUES (12018, 2, 2648, 390, '109.41127843270762', '24.32465671448874', '94.0', '15.0', '2020-09-02 06:22:03');
+INSERT INTO `t_order_position` VALUES (12019, 2, 2648, 390, '109.41164513432928', '24.324223432305242', '94.0', '15.0', '2020-09-02 06:22:08');
+INSERT INTO `t_order_position` VALUES (12020, 2, 2648, 390, '109.41196182330368', '24.323806817386803', '92.0', '15.0', '2020-09-02 06:22:13');
+INSERT INTO `t_order_position` VALUES (12021, 2, 2648, 390, '109.4122951789474', '24.323440179636318', '90.0', '14.0', '2020-09-02 06:22:18');
+INSERT INTO `t_order_position` VALUES (12022, 2, 2648, 390, '109.41262852611061', '24.323023551531794', '90.0', '14.0', '2020-09-02 06:22:23');
+INSERT INTO `t_order_position` VALUES (12023, 2, 2648, 390, '109.41294519955407', '24.322606923069586', '92.0', '15.0', '2020-09-02 06:22:28');
+INSERT INTO `t_order_position` VALUES (12024, 2, 2648, 390, '109.41324520006484', '24.322190294955522', '90.0', '15.0', '2020-09-02 06:22:33');
+INSERT INTO `t_order_position` VALUES (12025, 2, 2648, 390, '109.41371185847454', '24.321540347710663', '84.0', '15.0', '2020-09-02 06:22:43');
+INSERT INTO `t_order_position` VALUES (12026, 2, 2648, 390, '109.41417851872275', '24.32110699445072', '126.0', '15.0', '2020-09-02 06:22:53');
+INSERT INTO `t_order_position` VALUES (12027, 2, 2648, 390, '109.41394513314751', '24.320357287856048', '124.0', '15.0', '2020-09-02 06:23:03');
+INSERT INTO `t_order_position` VALUES (12028, 2, 2648, 390, '109.41347842141188', '24.320007531619897', '114.0', '15.0', '2020-09-02 06:24:14');
+INSERT INTO `t_order_position` VALUES (12029, 2, 2648, 390, '109.41291171133675', '24.320024351971053', '110.0', '15.0', '2020-09-02 06:24:19');
+INSERT INTO `t_order_position` VALUES (12030, 2, 2648, 390, '109.41216163086942', '24.32007452508114', '110.0', '15.0', '2020-09-02 06:24:34');
+INSERT INTO `t_order_position` VALUES (12031, 2, 2648, 390, '109.41162822213958', '24.320091305065382', '112.0', '15.0', '2020-09-02 06:24:44');
+INSERT INTO `t_order_position` VALUES (12032, 2, 2648, 390, '109.41112812787973', '24.319924786434864', '0.0', '15.0', '2020-09-02 06:29:46');
+INSERT INTO `t_order_position` VALUES (12033, 2, 2648, 390, '109.41052801599307', '24.320024861573682', '104.0', '15.0', '2020-09-02 06:30:01');
+INSERT INTO `t_order_position` VALUES (12034, 2, 2648, 390, '109.4099778923462', '24.320024943194653', '104.0', '15.0', '2020-09-02 06:30:06');
+INSERT INTO `t_order_position` VALUES (12035, 2, 2648, 390, '109.40946109489377', '24.32000834583108', '0.0', '15.0', '2020-09-02 06:30:26');
+INSERT INTO `t_order_position` VALUES (12036, 2, 2648, 390, '109.40914429023077', '24.319125304905118', '112.0', '15.0', '2020-09-02 06:31:17');
+INSERT INTO `t_order_position` VALUES (12037, 2, 2648, 390, '109.40921093625536', '24.318458827227833', '122.0', '15.0', '2020-09-02 06:31:22');
+INSERT INTO `t_order_position` VALUES (12038, 2, 2648, 390, '109.4092442395967', '24.31779235317345', '110.0', '15.0', '2020-09-02 06:31:27');
+INSERT INTO `t_order_position` VALUES (12039, 2, 2648, 390, '109.40922751937309', '24.316959267092052', '108.0', '15.0', '2020-09-02 06:31:32');
+INSERT INTO `t_order_position` VALUES (12040, 2, 2648, 390, '109.4094275333384', '24.31627611402823', '70.0', '15.0', '2020-09-02 06:31:37');
+INSERT INTO `t_order_position` VALUES (12041, 2, 2648, 390, '109.40996099642396', '24.316192739408205', '58.0', '15.0', '2020-09-02 06:31:42');
+INSERT INTO `t_order_position` VALUES (12042, 2, 2648, 390, '109.41056113301796', '24.316225973626803', '64.0', '15.0', '2020-09-02 06:31:47');
+INSERT INTO `t_order_position` VALUES (12043, 2, 2648, 390, '109.41112789084383', '24.315892639818124', '118.0', '15.0', '2020-09-02 06:31:57');
+INSERT INTO `t_order_position` VALUES (12044, 2, 2648, 390, '109.41106117671508', '24.315292829811032', '118.0', '15.0', '2020-09-02 06:32:02');
+INSERT INTO `t_order_position` VALUES (12045, 2, 2648, 390, '109.41106113361847', '24.314559713916974', '112.0', '15.0', '2020-09-02 06:32:12');
+INSERT INTO `t_order_position` VALUES (12046, 2, 2648, 390, '109.4110777612391', '24.313843257063276', '116.0', '15.0', '2020-09-02 06:32:32');
+INSERT INTO `t_order_position` VALUES (12047, 2, 2648, 390, '109.41102769811465', '24.312926872470825', '112.0', '15.0', '2020-09-02 06:32:42');
+INSERT INTO `t_order_position` VALUES (12048, 2, 2648, 390, '109.41096098365551', '24.312327063518396', '114.0', '15.0', '2020-09-02 06:32:52');
+INSERT INTO `t_order_position` VALUES (12049, 2, 2648, 390, '109.41091094472804', '24.311827221794616', '0.0', '15.0', '2020-09-02 06:33:02');
+INSERT INTO `t_order_position` VALUES (12050, 2, 2648, 390, '109.41112768025879', '24.312310371216203', '0.0', '15.0', '2020-09-02 06:33:48');
+INSERT INTO `t_order_position` VALUES (12051, 2, 2648, 390, '109.41117771864806', '24.31281021263957', '164.0', '15.0', '2020-09-02 06:33:53');
+INSERT INTO `t_order_position` VALUES (12052, 2, 2648, 390, '109.41107774164986', '24.313510022882618', '0.0', '15.0', '2020-09-02 06:34:03');
+INSERT INTO `t_order_position` VALUES (12053, 2, 2648, 390, '109.41132781348152', '24.313976503078084', '54.0', '15.0', '2020-09-02 06:34:23');
+INSERT INTO `t_order_position` VALUES (12054, 2, 2648, 390, '109.41182789590403', '24.314026384485377', '54.0', '15.0', '2020-09-02 06:34:33');
+INSERT INTO `t_order_position` VALUES (12055, 2, 2648, 390, '109.41121112843743', '24.314009849102327', '0.0', '15.0', '2020-09-02 06:36:24');
+INSERT INTO `t_order_position` VALUES (12056, 2, 2648, 390, '109.41129450574994', '24.314509684515205', '162.0', '15.0', '2020-09-02 06:36:29');
+INSERT INTO `t_order_position` VALUES (12057, 2, 2648, 390, '109.41121119112351', '24.315076199182677', '4.0', '15.0', '2020-09-02 06:36:34');
+INSERT INTO `t_order_position` VALUES (12058, 2, 2648, 390, '109.41126123322424', '24.315642688404534', '6.0', '15.0', '2020-09-02 06:36:39');
+INSERT INTO `t_order_position` VALUES (12059, 2, 2648, 390, '109.41169467482227', '24.316275746482205', '64.0', '15.0', '2020-09-02 06:36:49');
+INSERT INTO `t_order_position` VALUES (12060, 2, 2648, 390, '109.41229475481417', '24.31622562560687', '58.0', '14.0', '2020-09-02 06:36:54');
+INSERT INTO `t_order_position` VALUES (12061, 2, 2648, 390, '109.41282814581237', '24.316208829765827', '58.0', '15.0', '2020-09-02 06:36:59');
+INSERT INTO `t_order_position` VALUES (12062, 2, 2648, 390, '109.41366153939778', '24.316158609495226', '74.0', '15.0', '2020-09-02 06:37:09');
+INSERT INTO `t_order_position` VALUES (12063, 2, 2648, 390, '109.41431154400428', '24.31580850801964', '76.0', '15.0', '2020-09-02 06:37:14');
+INSERT INTO `t_order_position` VALUES (12064, 2, 2648, 390, '109.41484486358098', '24.315491752711917', '80.0', '15.0', '2020-09-02 06:37:19');
+INSERT INTO `t_order_position` VALUES (12065, 2, 2648, 390, '109.41536149980338', '24.31512500579625', '82.0', '15.0', '2020-09-02 06:37:24');
+INSERT INTO `t_order_position` VALUES (12066, 2, 2648, 390, '109.4155947894681', '24.31452509451629', '140.0', '15.0', '2020-09-02 06:37:34');
+INSERT INTO `t_order_position` VALUES (12067, 2, 2648, 390, '109.41517811532647', '24.31417535606786', '134.0', '15.0', '2020-09-02 06:37:39');
+INSERT INTO `t_order_position` VALUES (12068, 2, 2648, 390, '109.41497808521542', '24.313608930750082', '116.0', '15.0', '2020-09-02 06:37:54');
+INSERT INTO `t_order_position` VALUES (12069, 2, 2648, 390, '109.41501139072984', '24.31314239098113', '116.0', '15.0', '2020-09-02 06:37:59');
+INSERT INTO `t_order_position` VALUES (12070, 2, 2648, 390, '109.41501135252923', '24.31249258475152', '160.0', '15.0', '2020-09-02 06:38:10');
+INSERT INTO `t_order_position` VALUES (12071, 2, 2648, 390, '109.41426133908062', '24.31234288792516', '110.0', '15.0', '2020-09-02 06:38:20');
+INSERT INTO `t_order_position` VALUES (12072, 2, 2648, 390, '109.41367797385149', '24.312193116215514', '0.0', '15.0', '2020-09-02 06:38:35');
+INSERT INTO `t_order_position` VALUES (12073, 2, 2648, 390, '109.41367793271277', '24.311493325407298', '110.0', '15.0', '2020-09-02 06:38:55');
+INSERT INTO `t_order_position` VALUES (12074, 2, 2648, 390, '109.41372789911719', '24.31087682820398', '110.0', '13.0', '2020-09-02 06:39:00');
+INSERT INTO `t_order_position` VALUES (12075, 2, 2648, 390, '109.41376120476012', '24.31037696793562', '114.0', '15.0', '2020-09-02 06:39:05');
+INSERT INTO `t_order_position` VALUES (12076, 2, 2648, 390, '109.41346116498342', '24.309993839189797', '102.0', '14.0', '2020-09-02 06:39:15');
+INSERT INTO `t_order_position` VALUES (12077, 2, 2648, 390, '109.41291111873697', '24.30994400789504', '102.0', '15.0', '2020-09-02 06:39:20');
+INSERT INTO `t_order_position` VALUES (12078, 2, 2648, 390, '109.4123610642396', '24.310010794682544', '162.0', '14.0', '2020-09-02 06:39:30');
+INSERT INTO `t_order_position` VALUES (12079, 2, 2648, 390, '109.41204438745768', '24.31052738087589', '108.0', '15.0', '2020-09-02 06:39:42');
+INSERT INTO `t_order_position` VALUES (12080, 2, 2648, 390, '109.4115109746549', '24.31052749628874', '112.0', '15.0', '2020-09-02 06:39:45');
+INSERT INTO `t_order_position` VALUES (12081, 2, 2648, 390, '109.41081084887111', '24.310527628496207', '116.0', '15.0', '2020-09-02 06:39:50');
+INSERT INTO `t_order_position` VALUES (12082, 2, 2648, 390, '109.41026074079979', '24.310661010414456', '106.0', '15.0', '2020-09-02 06:39:55');
+INSERT INTO `t_order_position` VALUES (12083, 2, 2648, 390, '109.40969393510787', '24.310594440897095', '150.0', '15.0', '2020-09-02 06:40:10');
+INSERT INTO `t_order_position` VALUES (12084, 2, 2648, 390, '109.4094439017877', '24.311127643959548', '10.0', '15.0', '2020-09-02 06:41:01');
+INSERT INTO `t_order_position` VALUES (12085, 2, 2648, 390, '109.40894380824682', '24.311894132019724', '124.0', '15.0', '2020-09-02 06:41:16');
+INSERT INTO `t_order_position` VALUES (12086, 2, 2648, 390, '109.40846034193962', '24.312110772448833', '120.0', '15.0', '2020-09-02 06:41:21');
+INSERT INTO `t_order_position` VALUES (12087, 2, 2648, 390, '109.40796018986742', '24.312294079989233', '124.0', '15.0', '2020-09-02 06:41:26');
+INSERT INTO `t_order_position` VALUES (12088, 2, 2648, 390, '109.40719326627847', '24.31257735174359', '122.0', '15.0', '2020-09-02 06:41:31');
+INSERT INTO `t_order_position` VALUES (12089, 2, 2648, 390, '109.40650969125525', '24.313027216267304', '136.0', '15.0', '2020-09-02 06:41:41');
+INSERT INTO `t_order_position` VALUES (12090, 2, 2648, 390, '109.40609287142902', '24.313393762876824', '138.0', '15.0', '2020-09-02 06:41:46');
+INSERT INTO `t_order_position` VALUES (12091, 2, 2648, 390, '109.40569271434819', '24.313710317744196', '142.0', '15.0', '2020-09-02 06:41:51');
+INSERT INTO `t_order_position` VALUES (12092, 2, 2648, 390, '109.40537592852793', '24.314143503390447', '158.0', '15.0', '2020-09-02 06:41:56');
+INSERT INTO `t_order_position` VALUES (12093, 2, 2648, 390, '109.40550935566036', '24.314693348577418', '76.0', '15.0', '2020-09-02 06:42:06');
+INSERT INTO `t_order_position` VALUES (12094, 2, 2648, 390, '109.40602624065367', '24.314493433452604', '120.0', '15.0', '2020-09-02 06:42:11');
+INSERT INTO `t_order_position` VALUES (12095, 2, 2648, 390, '109.40564269575599', '24.31377696189517', '144.0', '15.0', '2020-09-02 06:42:22');
+INSERT INTO `t_order_position` VALUES (12096, 2, 2648, 390, '109.4050423877625', '24.313293731613534', '142.0', '15.0', '2020-09-02 06:42:26');
+INSERT INTO `t_order_position` VALUES (12097, 2, 2648, 390, '109.4043419954169', '24.31254388776046', '142.0', '15.0', '2020-09-02 06:42:31');
+INSERT INTO `t_order_position` VALUES (12098, 2, 2648, 390, '109.4035748701662', '24.311694043415685', '142.0', '15.0', '2020-09-02 06:42:36');
+INSERT INTO `t_order_position` VALUES (12099, 2, 2648, 390, '109.40274100766355', '24.310794177255346', '142.0', '15.0', '2020-09-02 06:42:42');
+INSERT INTO `t_order_position` VALUES (12100, 2, 2648, 390, '109.40194046817513', '24.30992761235015', '142.0', '15.0', '2020-09-02 06:42:46');
+INSERT INTO `t_order_position` VALUES (12101, 2, 2648, 390, '109.40107318292719', '24.30899435731602', '138.0', '15.0', '2020-09-02 06:42:51');
+INSERT INTO `t_order_position` VALUES (12102, 2, 2648, 390, '109.4004560493511', '24.308244419847302', '132.0', '15.0', '2020-09-02 06:42:57');
+INSERT INTO `t_order_position` VALUES (12103, 2, 2648, 390, '109.40008907574368', '24.307444556510358', '122.0', '15.0', '2020-09-02 06:43:01');
+INSERT INTO `t_order_position` VALUES (12104, 2, 2648, 390, '109.39993890884419', '24.306444814511863', '122.0', '15.0', '2020-09-02 06:43:07');
+INSERT INTO `t_order_position` VALUES (12105, 2, 2648, 390, '109.39972202435251', '24.305428390187345', '118.0', '15.0', '2020-09-02 06:43:12');
+INSERT INTO `t_order_position` VALUES (12106, 2, 2648, 390, '109.39963857187176', '24.30444532989405', '110.0', '15.0', '2020-09-02 06:43:17');
+INSERT INTO `t_order_position` VALUES (12107, 2, 2648, 390, '109.39967187793573', '24.30356227611231', '116.0', '15.0', '2020-09-02 06:43:22');
+INSERT INTO `t_order_position` VALUES (12108, 2, 2648, 390, '109.39962180088928', '24.30287913577417', '116.0', '15.0', '2020-09-02 06:43:27');
+INSERT INTO `t_order_position` VALUES (12109, 2, 2648, 390, '109.39960508763617', '24.30229597556567', '118.0', '15.0', '2020-09-02 06:43:32');
+INSERT INTO `t_order_position` VALUES (12110, 2, 2648, 390, '109.39955502022055', '24.301779451323505', '116.0', '15.0', '2020-09-02 06:43:37');
+INSERT INTO `t_order_position` VALUES (12111, 2, 2648, 390, '109.39948827261831', '24.30124626030758', '116.0', '15.0', '2020-09-02 06:43:42');
+INSERT INTO `t_order_position` VALUES (12112, 2, 2648, 390, '109.39945488699536', '24.30077972620799', '114.0', '15.0', '2020-09-02 06:43:47');
+INSERT INTO `t_order_position` VALUES (12113, 2, 2648, 390, '109.39938813125181', '24.300113242970564', '112.0', '15.0', '2020-09-02 06:44:07');
+INSERT INTO `t_order_position` VALUES (12114, 2, 2648, 390, '109.39965497290247', '24.299713450730884', '64.0', '15.0', '2020-09-02 06:44:17');
+INSERT INTO `t_order_position` VALUES (12115, 2, 2648, 390, '109.40040550825863', '24.299630365115963', '64.0', '15.0', '2020-09-02 06:44:27');
+INSERT INTO `t_order_position` VALUES (12116, 2, 2648, 390, '109.40137281732557', '24.299380693149942', '84.0', '15.0', '2020-09-02 06:44:37');
+INSERT INTO `t_order_position` VALUES (12117, 2, 2648, 390, '109.40180641122369', '24.29904756216609', '90.0', '15.0', '2020-09-02 06:44:42');
+INSERT INTO `t_order_position` VALUES (12118, 2, 2648, 390, '109.40220663347961', '24.29856446276956', '96.0', '15.0', '2020-09-02 06:44:47');
+INSERT INTO `t_order_position` VALUES (12119, 2, 2648, 390, '109.40250678609665', '24.298048014805936', '100.0', '15.0', '2020-09-02 06:44:52');
+INSERT INTO `t_order_position` VALUES (12120, 2, 2648, 390, '109.40274022547108', '24.297481566700686', '106.0', '15.0', '2020-09-02 06:44:57');
+INSERT INTO `t_order_position` VALUES (12121, 2, 2648, 390, '109.40290695873054', '24.296948428025757', '108.0', '15.0', '2020-09-02 06:45:02');
+INSERT INTO `t_order_position` VALUES (12122, 2, 2648, 390, '109.40300698551545', '24.29641527718297', '110.0', '15.0', '2020-09-02 06:45:07');
+INSERT INTO `t_order_position` VALUES (12123, 2, 2648, 390, '109.40310701573544', '24.295948772074187', '108.0', '15.0', '2020-09-02 06:45:12');
+INSERT INTO `t_order_position` VALUES (12124, 2, 2648, 390, '109.40329041138082', '24.295232357669498', '122.0', '15.0', '2020-09-02 06:45:22');
+INSERT INTO `t_order_position` VALUES (12125, 2, 2648, 390, '109.40272337273433', '24.294482495376233', '164.0', '15.0', '2020-09-02 06:45:32');
+INSERT INTO `t_order_position` VALUES (12126, 2, 2648, 390, '109.4021396798733', '24.294382413478072', '104.0', '15.0', '2020-09-02 06:45:37');
+INSERT INTO `t_order_position` VALUES (12127, 2, 2648, 390, '109.40125577224008', '24.294248922756775', '102.0', '15.0', '2020-09-02 06:45:42');
+INSERT INTO `t_order_position` VALUES (12128, 2, 2648, 390, '109.40043853907332', '24.294082094540588', '102.0', '15.0', '2020-09-02 06:45:48');
+INSERT INTO `t_order_position` VALUES (12129, 2, 2648, 390, '109.39962127633393', '24.293948561005305', '100.0', '15.0', '2020-09-02 06:45:53');
+INSERT INTO `t_order_position` VALUES (12130, 2, 2648, 390, '109.39877062099414', '24.293781664829503', '102.0', '15.0', '2020-09-02 06:45:58');
+INSERT INTO `t_order_position` VALUES (12131, 2, 2648, 390, '109.3978365301467', '24.29361470621469', '156.0', '15.0', '2020-09-02 06:46:03');
+INSERT INTO `t_order_position` VALUES (12132, 2, 2648, 390, '109.39695243232961', '24.293281118071707', '152.0', '15.0', '2020-09-02 06:46:08');
+INSERT INTO `t_order_position` VALUES (12133, 2, 2648, 390, '109.39626847164075', '24.292830958976893', '148.0', '15.0', '2020-09-02 06:46:13');
+INSERT INTO `t_order_position` VALUES (12134, 2, 2648, 390, '109.39550107397132', '24.292297433402272', '146.0', '15.0', '2020-09-02 06:46:18');
+INSERT INTO `t_order_position` VALUES (12135, 2, 2648, 390, '109.3948003814084', '24.291780579748778', '148.0', '15.0', '2020-09-02 06:46:23');
+INSERT INTO `t_order_position` VALUES (12136, 2, 2648, 390, '109.39408298441163', '24.291280358821588', '148.0', '15.0', '2020-09-02 06:46:28');
+INSERT INTO `t_order_position` VALUES (12137, 2, 2648, 390, '109.3933655643141', '24.290780117373224', '148.0', '15.0', '2020-09-02 06:46:33');
+INSERT INTO `t_order_position` VALUES (12138, 2, 2648, 390, '109.39276491697085', '24.29037989369628', '146.0', '15.0', '2020-09-02 06:46:38');
+INSERT INTO `t_order_position` VALUES (12139, 2, 2648, 390, '109.39199739857723', '24.289846260878214', '152.0', '15.0', '2020-09-02 06:47:13');
+INSERT INTO `t_order_position` VALUES (12140, 2, 2648, 390, '109.3914968299774', '24.289512715250687', '148.0', '15.0', '2020-09-02 06:47:18');
+INSERT INTO `t_order_position` VALUES (12141, 2, 2648, 390, '109.39094619185089', '24.289145803806516', '148.0', '15.0', '2020-09-02 06:47:23');
+INSERT INTO `t_order_position` VALUES (12142, 2, 2648, 390, '109.39049565797293', '24.288812271999717', '148.0', '15.0', '2020-09-02 06:47:28');
+INSERT INTO `t_order_position` VALUES (12143, 2, 2648, 390, '109.39004511530224', '24.288478732397515', '146.0', '15.0', '2020-09-02 06:47:33');
+INSERT INTO `t_order_position` VALUES (12144, 2, 2648, 390, '109.38959456485824', '24.288161846435855', '148.0', '15.0', '2020-09-02 06:47:39');
+INSERT INTO `t_order_position` VALUES (12145, 2, 2648, 390, '109.38916069254942', '24.28784496500429', '148.0', '15.0', '2020-09-02 06:47:43');
+INSERT INTO `t_order_position` VALUES (12146, 2, 2648, 390, '109.38876018842619', '24.28756142426179', '146.0', '15.0', '2020-09-02 06:47:48');
+INSERT INTO `t_order_position` VALUES (12147, 2, 2648, 390, '109.3883429900751', '24.287277864709395', '146.0', '15.0', '2020-09-02 06:47:58');
+INSERT INTO `t_order_position` VALUES (12148, 2, 2648, 390, '109.38785903049427', '24.286944262259333', '148.0', '15.0', '2020-09-02 06:48:08');
+INSERT INTO `t_order_position` VALUES (12149, 2, 2648, 390, '109.38730830369994', '24.286527290583088', '144.0', '15.0', '2020-09-02 06:48:19');
+INSERT INTO `t_order_position` VALUES (12150, 2, 2648, 390, '109.38680762878354', '24.286093687554178', '142.0', '15.0', '2020-09-02 06:48:49');
+INSERT INTO `t_order_position` VALUES (12151, 2, 2648, 390, '109.38619010959806', '24.285460040403347', '144.0', '15.0', '2020-09-02 06:48:59');
+INSERT INTO `t_order_position` VALUES (12152, 2, 2648, 390, '109.38587299563409', '24.285076559054527', '140.0', '15.0', '2020-09-02 06:49:04');
+INSERT INTO `t_order_position` VALUES (12153, 2, 2648, 390, '109.38518868854456', '24.28434286418355', '142.0', '15.0', '2020-09-02 06:49:14');
+INSERT INTO `t_order_position` VALUES (12154, 2, 2648, 390, '109.38485486983387', '24.28392603390864', '140.0', '15.0', '2020-09-02 06:49:19');
+INSERT INTO `t_order_position` VALUES (12155, 2, 2648, 390, '109.3844209031619', '24.28345912474168', '0.0', '15.0', '2020-09-02 06:49:39');
+INSERT INTO `t_order_position` VALUES (12156, 2, 2648, 390, '109.3839535470876', '24.282975516691703', '142.0', '15.0', '2020-09-02 06:50:09');
+INSERT INTO `t_order_position` VALUES (12157, 2, 2648, 390, '109.38321910746959', '24.282125098534973', '136.0', '15.0', '2020-09-02 06:50:19');
+INSERT INTO `t_order_position` VALUES (12158, 2, 2648, 390, '109.38290195454435', '24.281724922772174', '132.0', '15.0', '2020-09-02 06:50:24');
+INSERT INTO `t_order_position` VALUES (12159, 2, 2648, 390, '109.38258479179926', '24.281224775668612', '128.0', '15.0', '2020-09-02 06:50:29');
+INSERT INTO `t_order_position` VALUES (12160, 2, 2648, 390, '109.38236777711846', '24.280774707744428', '126.0', '15.0', '2020-09-02 06:50:34');
+INSERT INTO `t_order_position` VALUES (12161, 2, 2648, 390, '109.38218414284428', '24.28030801004807', '124.0', '15.0', '2020-09-02 06:50:39');
+INSERT INTO `t_order_position` VALUES (12162, 2, 2648, 390, '109.38203388481966', '24.279741376737523', '124.0', '15.0', '2020-09-02 06:50:44');
+INSERT INTO `t_order_position` VALUES (12163, 2, 2648, 390, '109.3819003235633', '24.279274727308422', '124.0', '15.0', '2020-09-02 06:50:49');
+INSERT INTO `t_order_position` VALUES (12164, 2, 2648, 390, '109.38171668400064', '24.278774704526914', '152.0', '15.0', '2020-09-02 06:50:59');
+INSERT INTO `t_order_position` VALUES (12165, 2, 2648, 390, '109.38106569546107', '24.278840687861084', '120.0', '15.0', '2020-09-02 06:51:14');
+INSERT INTO `t_order_position` VALUES (12166, 2, 2648, 390, '109.38053154638584', '24.279023408167877', '122.0', '15.0', '2020-09-02 06:51:29');
+INSERT INTO `t_order_position` VALUES (12167, 2, 2648, 390, '109.37991392129804', '24.279206029863854', '122.0', '15.0', '2020-09-02 06:51:40');
+INSERT INTO `t_order_position` VALUES (12168, 2, 2648, 390, '109.37934636209823', '24.27938869316467', '0.0', '15.0', '2020-09-02 06:52:00');
+INSERT INTO `t_order_position` VALUES (12169, 2, 2648, 390, '109.3798471441171', '24.279122652080662', '68.0', '15.0', '2020-09-02 06:52:35');
+INSERT INTO `t_order_position` VALUES (12170, 2, 2648, 390, '109.38044807903017', '24.27895667557703', '70.0', '15.0', '2020-09-02 06:52:45');
+INSERT INTO `t_order_position` VALUES (12171, 2, 2648, 390, '109.38099892218024', '24.278773973999492', '72.0', '15.0', '2020-09-02 06:52:55');
+INSERT INTO `t_order_position` VALUES (12172, 2, 2648, 390, '109.38171667229162', '24.278574769070634', '60.0', '15.0', '2020-09-02 06:53:35');
+INSERT INTO `t_order_position` VALUES (12173, 2, 2648, 390, '109.38223411513185', '24.2785586233875', '60.0', '15.0', '2020-09-02 06:53:45');
+INSERT INTO `t_order_position` VALUES (12174, 2, 2648, 390, '109.38303529974588', '24.278592725853915', '58.0', '15.0', '2020-09-02 06:53:56');
+INSERT INTO `t_order_position` VALUES (12175, 2, 2648, 390, '109.38383645606497', '24.278576821793465', '58.0', '15.0', '2020-09-02 06:54:06');
+INSERT INTO `t_order_position` VALUES (12176, 2, 2648, 390, '109.38470434849002', '24.27859427753109', '58.0', '15.0', '2020-09-02 06:54:16');
+INSERT INTO `t_order_position` VALUES (12177, 2, 2648, 390, '109.38525511095706', '24.278611428886737', '58.0', '15.0', '2020-09-02 06:54:26');
+INSERT INTO `t_order_position` VALUES (12178, 2, 2648, 390, '109.3860061294257', '24.278612079343752', '58.0', '15.0', '2020-09-02 06:54:36');
+INSERT INTO `t_order_position` VALUES (12179, 2, 2648, 390, '109.38669037148543', '24.278629315215195', '62.0', '15.0', '2020-09-02 06:54:46');
+INSERT INTO `t_order_position` VALUES (12180, 2, 2648, 390, '109.38740796833942', '24.278613237876254', '58.0', '15.0', '2020-09-02 06:54:56');
+INSERT INTO `t_order_position` VALUES (12181, 2, 2648, 390, '109.38799204760687', '24.278680344111013', '130.0', '15.0', '2020-09-02 06:55:06');
+INSERT INTO `t_order_position` VALUES (12182, 2, 2648, 390, '109.38757488266504', '24.279196516091822', '0.0', '15.0', '2020-09-02 06:55:26');
+INSERT INTO `t_order_position` VALUES (12183, 2, 2648, 390, '109.3875749256475', '24.27992961320748', '166.0', '15.0', '2020-09-02 06:55:36');
+INSERT INTO `t_order_position` VALUES (12184, 2, 2648, 390, '109.387558278715', '24.28062937481349', '0.0', '15.0', '2020-09-02 06:55:46');
+INSERT INTO `t_order_position` VALUES (12185, 2, 2648, 390, '109.38770851390748', '24.281379252911627', '24.0', '15.0', '2020-09-02 06:55:56');
+INSERT INTO `t_order_position` VALUES (12186, 2, 2648, 390, '109.38829262000732', '24.28202949897493', '26.0', '15.0', '2020-09-02 06:56:06');
+INSERT INTO `t_order_position` VALUES (12187, 2, 2648, 390, '109.38882664759173', '24.28262971108122', '26.0', '15.0', '2020-09-02 06:56:16');
+INSERT INTO `t_order_position` VALUES (12188, 2, 2648, 390, '109.38919378379434', '24.28302985475178', '26.0', '15.0', '2020-09-02 06:56:21');
+INSERT INTO `t_order_position` VALUES (12189, 2, 2648, 390, '109.3896276662119', '24.283530009331457', '26.0', '15.0', '2020-09-02 06:56:31');
+INSERT INTO `t_order_position` VALUES (12190, 2, 2648, 390, '109.39022837254477', '24.28353043264688', '80.0', '15.0', '2020-09-02 06:56:52');
+INSERT INTO `t_order_position` VALUES (12191, 2, 2648, 390, '109.39062881620684', '24.2832141416137', '72.0', '15.0', '2020-09-02 06:57:02');
+INSERT INTO `t_order_position` VALUES (12192, 2, 2648, 390, '109.39146308720498', '24.28316470934881', '58.0', '15.0', '2020-09-02 07:00:18');
+INSERT INTO `t_order_position` VALUES (12193, 2, 2648, 390, '109.39228064805661', '24.283198546282698', '58.0', '15.0', '2020-09-02 07:00:28');
+INSERT INTO `t_order_position` VALUES (12194, 2, 2648, 390, '109.39304812450928', '24.283182343675893', '60.0', '15.0', '2020-09-02 07:00:38');
+INSERT INTO `t_order_position` VALUES (12195, 2, 2648, 390, '109.39379889132947', '24.283166108399655', '60.0', '15.0', '2020-09-02 07:00:48');
+INSERT INTO `t_order_position` VALUES (12196, 2, 2648, 390, '109.39448290322082', '24.283183138249875', '36.0', '15.0', '2020-09-02 07:01:23');
+INSERT INTO `t_order_position` VALUES (12197, 2, 2648, 390, '109.39476654751256', '24.283799755212186', '166.0', '15.0', '2020-09-02 07:01:33');
+INSERT INTO `t_order_position` VALUES (12198, 2, 2648, 390, '109.39474991368321', '24.284632814218597', '0.0', '15.0', '2020-09-02 07:01:43');
+INSERT INTO `t_order_position` VALUES (12199, 2, 2648, 390, '109.39469991627534', '24.285499179228665', '0.0', '15.0', '2020-09-02 07:01:53');
+INSERT INTO `t_order_position` VALUES (12200, 2, 2648, 390, '109.3947166518549', '24.28639890190875', '164.0', '14.0', '2020-09-02 07:02:04');
+INSERT INTO `t_order_position` VALUES (12201, 2, 2648, 390, '109.39469999744972', '24.286882073316843', '164.0', '14.0', '2020-09-02 07:02:09');
+INSERT INTO `t_order_position` VALUES (12202, 2, 2648, 390, '109.39466667001935', '24.287531850141416', '4.0', '15.0', '2020-09-02 07:02:19');
+INSERT INTO `t_order_position` VALUES (12203, 2, 2648, 390, '109.39511711372106', '24.287748677254946', '62.0', '15.0', '2020-09-02 07:02:39');
+INSERT INTO `t_order_position` VALUES (12204, 2, 2648, 390, '109.39585113066768', '24.287765694207252', '52.0', '15.0', '2020-09-02 07:02:54');
+INSERT INTO `t_order_position` VALUES (12205, 2, 2648, 390, '109.39618478671936', '24.288115737851307', '166.0', '15.0', '2020-09-02 07:03:14');
+INSERT INTO `t_order_position` VALUES (12206, 2, 2648, 390, '109.39618482291299', '24.288732209677516', '2.0', '15.0', '2020-09-02 07:03:24');
+INSERT INTO `t_order_position` VALUES (12207, 2, 2648, 390, '109.39611813338907', '24.28936531267869', '2.0', '15.0', '2020-09-02 07:03:34');
+INSERT INTO `t_order_position` VALUES (12208, 2, 2648, 390, '109.39611816175702', '24.28984849370332', '162.0', '15.0', '2020-09-02 07:03:44');
+INSERT INTO `t_order_position` VALUES (12209, 2, 2648, 390, '109.39583459939651', '24.290331543213327', '144.0', '15.0', '2020-09-02 07:03:54');
+INSERT INTO `t_order_position` VALUES (12210, 2, 2648, 390, '109.39553434536079', '24.290714612991817', '144.0', '15.0', '2020-09-02 07:04:09');
+INSERT INTO `t_order_position` VALUES (12211, 2, 2648, 390, '109.39528413623566', '24.291131026766955', '0.0', '15.0', '2020-09-02 07:04:29');
+INSERT INTO `t_order_position` VALUES (12212, 2, 2650, 390, '109.39515067814284', '24.29114762210225', '0.0', '15.0', '2020-09-02 07:05:30');
+INSERT INTO `t_order_position` VALUES (12213, 2, 2650, 390, '109.39471695797607', '24.29161392249191', '106.0', '15.0', '2020-09-02 07:07:31');
+INSERT INTO `t_order_position` VALUES (12214, 2, 2650, 390, '109.39394951224035', '24.291180317641366', '146.0', '15.0', '2020-09-02 07:07:41');
+INSERT INTO `t_order_position` VALUES (12215, 2, 2650, 390, '109.39333219478651', '24.29074677548003', '148.0', '14.0', '2020-09-02 07:07:47');
+INSERT INTO `t_order_position` VALUES (12216, 2, 2650, 390, '109.39286502304124', '24.290396614358933', '148.0', '15.0', '2020-09-02 07:07:51');
+INSERT INTO `t_order_position` VALUES (12217, 2, 2650, 390, '109.39243121350054', '24.29009644918537', '150.0', '15.0', '2020-09-02 07:07:56');
+INSERT INTO `t_order_position` VALUES (12218, 2, 2650, 390, '109.39171374569078', '24.28967946810929', '150.0', '15.0', '2020-09-02 07:08:06');
+INSERT INTO `t_order_position` VALUES (12219, 2, 2650, 390, '109.39127991318198', '24.289362621978704', '146.0', '15.0', '2020-09-02 07:08:11');
+INSERT INTO `t_order_position` VALUES (12220, 2, 2650, 390, '109.39082938877652', '24.28907908020233', '152.0', '15.0', '2020-09-02 07:08:17');
+INSERT INTO `t_order_position` VALUES (12221, 2, 2650, 390, '109.39037885456965', '24.288778869175662', '148.0', '15.0', '2020-09-02 07:08:21');
+INSERT INTO `t_order_position` VALUES (12222, 2, 2650, 390, '109.38994499883988', '24.288495323503586', '152.0', '15.0', '2020-09-02 07:08:26');
+INSERT INTO `t_order_position` VALUES (12223, 2, 2650, 390, '109.38929419663828', '24.288011676617298', '148.0', '15.0', '2020-09-02 07:08:36');
+INSERT INTO `t_order_position` VALUES (12224, 2, 2650, 390, '109.38872681318159', '24.287544737839305', '148.0', '15.0', '2020-09-02 07:08:46');
+INSERT INTO `t_order_position` VALUES (12225, 2, 2650, 390, '109.38829292777075', '24.287277826353215', '150.0', '15.0', '2020-09-02 07:09:12');
+INSERT INTO `t_order_position` VALUES (12226, 2, 2650, 390, '109.38772551926478', '24.286794204885624', '148.0', '15.0', '2020-09-02 07:09:22');
+INSERT INTO `t_order_position` VALUES (12227, 2, 2650, 390, '109.3872749244599', '24.286477279589064', '142.0', '15.0', '2020-09-02 07:09:27');
+INSERT INTO `t_order_position` VALUES (12228, 2, 2650, 390, '109.38689107402504', '24.286143740199257', '140.0', '15.0', '2020-09-02 07:10:42');
+INSERT INTO `t_order_position` VALUES (12229, 2, 2650, 390, '109.38652390615965', '24.285810209318665', '142.0', '15.0', '2020-09-02 07:10:47');
+INSERT INTO `t_order_position` VALUES (12230, 2, 2650, 390, '109.38615672783348', '24.28539336669584', '142.0', '15.0', '2020-09-02 07:10:52');
+INSERT INTO `t_order_position` VALUES (12231, 2, 2650, 390, '109.38567271151783', '24.28484312759395', '142.0', '15.0', '2020-09-02 07:10:57');
+INSERT INTO `t_order_position` VALUES (12232, 2, 2650, 390, '109.38498839981348', '24.284126089190313', '140.0', '15.0', '2020-09-02 07:11:02');
+INSERT INTO `t_order_position` VALUES (12233, 2, 2650, 390, '109.38448766745942', '24.283525830786434', '144.0', '15.0', '2020-09-02 07:11:07');
+INSERT INTO `t_order_position` VALUES (12234, 2, 2650, 390, '109.38403700399752', '24.283058900595726', '138.0', '15.0', '2020-09-02 07:11:12');
+INSERT INTO `t_order_position` VALUES (12235, 2, 2650, 390, '109.38360302014641', '24.282541994965847', '138.0', '15.0', '2020-09-02 07:11:17');
+INSERT INTO `t_order_position` VALUES (12236, 2, 2650, 390, '109.38326918018485', '24.282125146203168', '140.0', '15.0', '2020-09-02 07:11:22');
+INSERT INTO `t_order_position` VALUES (12237, 2, 2650, 390, '109.38286856738067', '24.28164158395796', '130.0', '15.0', '2020-09-02 07:11:27');
+INSERT INTO `t_order_position` VALUES (12238, 2, 2650, 390, '109.38256809557501', '24.281141452802924', '128.0', '15.0', '2020-09-02 07:11:32');
+INSERT INTO `t_order_position` VALUES (12239, 2, 2650, 390, '109.38230099646904', '24.2805247223911', '124.0', '15.0', '2020-09-02 07:11:37');
+INSERT INTO `t_order_position` VALUES (12240, 2, 2650, 390, '109.38213404945213', '24.27999139567849', '124.0', '15.0', '2020-09-02 07:11:42');
+INSERT INTO `t_order_position` VALUES (12241, 2, 2650, 390, '109.38196709842317', '24.279408084300098', '122.0', '15.0', '2020-09-02 07:11:47');
+INSERT INTO `t_order_position` VALUES (12242, 2, 2650, 390, '109.38181684303578', '24.278908095366422', '124.0', '15.0', '2020-09-02 07:11:52');
+INSERT INTO `t_order_position` VALUES (12243, 2, 2650, 390, '109.38164988800219', '24.27829146001455', '122.0', '15.0', '2020-09-02 07:12:03');
+INSERT INTO `t_order_position` VALUES (12244, 2, 2650, 390, '109.3814662447105', '24.277758113421857', '122.0', '15.0', '2020-09-02 07:12:08');
+INSERT INTO `t_order_position` VALUES (12245, 2, 2650, 390, '109.38131598544032', '24.277241461176956', '124.0', '15.0', '2020-09-02 07:12:13');
+INSERT INTO `t_order_position` VALUES (12246, 2, 2650, 390, '109.38114902913598', '24.276658146170416', '110.0', '15.0', '2020-09-02 07:12:28');
+INSERT INTO `t_order_position` VALUES (12247, 2, 2650, 390, '109.3808985980423', '24.27587480920727', '132.0', '15.0', '2020-09-02 07:12:43');
+INSERT INTO `t_order_position` VALUES (12248, 2, 2650, 390, '109.38066487859771', '24.27545803539536', '140.0', '15.0', '2020-09-02 07:12:48');
+INSERT INTO `t_order_position` VALUES (12249, 2, 2650, 390, '109.38001384437126', '24.275190770170564', '102.0', '15.0', '2020-09-02 07:13:03');
+INSERT INTO `t_order_position` VALUES (12250, 2, 2650, 390, '109.37934611146164', '24.27510674629253', '100.0', '15.0', '2020-09-02 07:13:08');
+INSERT INTO `t_order_position` VALUES (12251, 2, 2650, 390, '109.37857818998268', '24.27487264518586', '160.0', '15.0', '2020-09-02 07:13:13');
+INSERT INTO `t_order_position` VALUES (12252, 2, 2650, 390, '109.37799388696997', '24.27468871656726', '102.0', '14.0', '2020-09-02 07:13:18');
+INSERT INTO `t_order_position` VALUES (12253, 2, 2650, 390, '109.37719256423902', '24.27490439647129', '134.0', '15.0', '2020-09-02 07:13:28');
+INSERT INTO `t_order_position` VALUES (12254, 2, 2650, 390, '109.37644127762229', '24.274670261298514', '150.0', '15.0', '2020-09-02 07:13:43');
+INSERT INTO `t_order_position` VALUES (12255, 2, 2650, 390, '109.37584022528736', '24.27433632137778', '158.0', '15.0', '2020-09-02 07:13:53');
+INSERT INTO `t_order_position` VALUES (12256, 2, 2650, 390, '109.37518908228921', '24.274168921523355', '162.0', '15.0', '2020-09-02 07:14:03');
+INSERT INTO `t_order_position` VALUES (12257, 2, 2650, 390, '109.3760238804393', '24.27441984728655', '44.0', '15.0', '2020-09-02 07:24:32');
+INSERT INTO `t_order_position` VALUES (12258, 2, 2650, 390, '109.37665832385646', '24.274837129158833', '30.0', '15.0', '2020-09-02 07:24:42');
+INSERT INTO `t_order_position` VALUES (12259, 2, 2650, 390, '109.37707571453002', '24.275137518571366', '74.0', '15.0', '2020-09-02 07:24:58');
+INSERT INTO `t_order_position` VALUES (12260, 2, 2650, 390, '109.37762661406238', '24.27473828292051', '62.0', '15.0', '2020-09-02 07:25:08');
+INSERT INTO `t_order_position` VALUES (12261, 2, 2650, 390, '109.37846133155408', '24.274855853849765', '50.0', '15.0', '2020-09-02 07:25:18');
+INSERT INTO `t_order_position` VALUES (12262, 2, 2650, 390, '109.37927933188759', '24.275006706225504', '48.0', '15.0', '2020-09-02 07:25:28');
+INSERT INTO `t_order_position` VALUES (12263, 2, 2650, 390, '109.37981352382029', '24.27512391145762', '56.0', '15.0', '2020-09-02 07:25:38');
+INSERT INTO `t_order_position` VALUES (12264, 2, 2650, 390, '109.3803643909561', '24.27512449592925', '138.0', '15.0', '2020-09-02 07:26:08');
+INSERT INTO `t_order_position` VALUES (12265, 2, 2650, 390, '109.37979679948752', '24.274590733751065', '146.0', '15.0', '2020-09-02 07:26:18');
+INSERT INTO `t_order_position` VALUES (12266, 2, 2650, 390, '109.379262591621', '24.274206948437445', '0.0', '15.0', '2020-09-02 07:26:38');
+INSERT INTO `t_order_position` VALUES (12267, 2, 2650, 390, '109.37978007709523', '24.27409087869886', '58.0', '15.0', '2020-09-02 07:26:58');
+INSERT INTO `t_order_position` VALUES (12268, 2, 2650, 390, '109.38054794932275', '24.274075030227383', '62.0', '15.0', '2020-09-02 07:27:03');
+INSERT INTO `t_order_position` VALUES (12269, 2, 2650, 390, '109.38109880203699', '24.274092262195722', '58.0', '15.0', '2020-09-02 07:27:08');
+INSERT INTO `t_order_position` VALUES (12270, 2, 2650, 390, '109.38228392825683', '24.274093454732093', '58.0', '15.0', '2020-09-02 07:27:18');
+INSERT INTO `t_order_position` VALUES (12271, 2, 2650, 390, '109.38315187421948', '24.274110958306014', '58.0', '15.0', '2020-09-02 07:27:23');
+INSERT INTO `t_order_position` VALUES (12272, 2, 2650, 390, '109.38388626690858', '24.27412831149084', '62.0', '15.0', '2020-09-02 07:27:28');
+INSERT INTO `t_order_position` VALUES (12273, 2, 2650, 390, '109.38443704557534', '24.27411215657589', '58.0', '15.0', '2020-09-02 07:27:33');
+INSERT INTO `t_order_position` VALUES (12274, 2, 2650, 390, '109.38515470295307', '24.273996171271456', '52.0', '15.0', '2020-09-02 07:27:53');
+INSERT INTO `t_order_position` VALUES (12275, 2, 2650, 390, '109.38595579466794', '24.274046850998527', '58.0', '15.0', '2020-09-02 07:28:04');
+INSERT INTO `t_order_position` VALUES (12276, 2, 2650, 390, '109.38667341724751', '24.274097438203366', '58.0', '15.0', '2020-09-02 07:28:09');
+INSERT INTO `t_order_position` VALUES (12277, 2, 2650, 390, '109.38724082232692', '24.27409790187225', '56.0', '15.0', '2020-09-02 07:28:14');
+INSERT INTO `t_order_position` VALUES (12278, 2, 2650, 390, '109.38820871756242', '24.27409866503395', '56.0', '15.0', '2020-09-02 07:28:24');
+INSERT INTO `t_order_position` VALUES (12279, 2, 2650, 390, '109.38887621044404', '24.274132493219206', '56.0', '15.0', '2020-09-02 07:28:29');
+INSERT INTO `t_order_position` VALUES (12280, 2, 2650, 390, '109.38959373910475', '24.274083034217465', '74.0', '15.0', '2020-09-02 07:28:39');
+INSERT INTO `t_order_position` VALUES (12281, 2, 2650, 390, '109.390494797888', '24.27415031006975', '54.0', '15.0', '2020-09-02 07:28:49');
+INSERT INTO `t_order_position` VALUES (12282, 2, 2650, 390, '109.39122896573208', '24.27416746210622', '62.0', '15.0', '2020-09-02 07:28:54');
+INSERT INTO `t_order_position` VALUES (12283, 2, 2650, 390, '109.3921466372895', '24.27410140100552', '58.0', '15.0', '2020-09-02 07:28:59');
+INSERT INTO `t_order_position` VALUES (12284, 2, 2650, 390, '109.39289743703779', '24.27413517646131', '58.0', '15.0', '2020-09-02 07:29:04');
+INSERT INTO `t_order_position` VALUES (12285, 2, 2650, 390, '109.39358147546622', '24.27413556966724', '58.0', '15.0', '2020-09-02 07:29:09');
+INSERT INTO `t_order_position` VALUES (12286, 2, 2650, 390, '109.39431554418013', '24.274169293278007', '62.0', '15.0', '2020-09-02 07:29:19');
+INSERT INTO `t_order_position` VALUES (12287, 2, 2650, 390, '109.3948493947185', '24.274152910143528', '58.0', '15.0', '2020-09-02 07:29:49');
+INSERT INTO `t_order_position` VALUES (12288, 2, 2650, 390, '109.39586701637047', '24.274203391966207', '58.0', '15.0', '2020-09-02 07:29:54');
+INSERT INTO `t_order_position` VALUES (12289, 2, 2650, 390, '109.39670109487595', '24.27420376871053', '60.0', '15.0', '2020-09-02 07:29:59');
+INSERT INTO `t_order_position` VALUES (12290, 2, 2650, 390, '109.39760186279867', '24.274187482193156', '60.0', '15.0', '2020-09-02 07:30:04');
+INSERT INTO `t_order_position` VALUES (12291, 2, 2650, 390, '109.39836915486914', '24.274187774877742', '60.0', '15.0', '2020-09-02 07:30:10');
+INSERT INTO `t_order_position` VALUES (12292, 2, 2650, 390, '109.39893626717637', '24.274204636674906', '30.0', '14.0', '2020-09-02 07:30:20');
+INSERT INTO `t_order_position` VALUES (12293, 2, 2650, 390, '109.39910312830492', '24.275337657674502', '166.0', '15.0', '2020-09-02 07:30:35');
+INSERT INTO `t_order_position` VALUES (12294, 2, 2650, 390, '109.3991031586373', '24.275854156517124', '0.0', '15.0', '2020-09-02 07:30:40');
+INSERT INTO `t_order_position` VALUES (12295, 2, 2650, 390, '109.39908650956875', '24.276370649950056', '164.0', '15.0', '2020-09-02 07:30:45');
+INSERT INTO `t_order_position` VALUES (12296, 2, 2650, 390, '109.3990865457721', '24.27698711676294', '166.0', '14.0', '2020-09-02 07:30:50');
+INSERT INTO `t_order_position` VALUES (12297, 2, 2650, 390, '109.39911994272182', '24.277636917554652', '166.0', '15.0', '2020-09-02 07:30:55');
+INSERT INTO `t_order_position` VALUES (12298, 2, 2650, 390, '109.39906994365732', '24.278303351977854', '0.0', '15.0', '2020-09-02 07:31:00');
+INSERT INTO `t_order_position` VALUES (12299, 2, 2650, 390, '109.39906998181796', '24.27895314218386', '166.0', '15.0', '2020-09-02 07:31:05');
+INSERT INTO `t_order_position` VALUES (12300, 2, 2650, 390, '109.39905333565895', '24.279519620575257', '164.0', '15.0', '2020-09-02 07:31:10');
+INSERT INTO `t_order_position` VALUES (12301, 2, 2650, 390, '109.39900333545943', '24.28016939441173', '0.0', '15.0', '2020-09-02 07:31:15');
+INSERT INTO `t_order_position` VALUES (12302, 2, 2650, 390, '109.39903673645422', '24.280885841985402', '4.0', '15.0', '2020-09-02 07:31:25');
+INSERT INTO `t_order_position` VALUES (12303, 2, 2650, 390, '109.39903676678739', '24.281402342784464', '0.0', '15.0', '2020-09-02 07:31:45');
+INSERT INTO `t_order_position` VALUES (12304, 2, 2650, 390, '109.39897009586232', '24.282202063702798', '0.0', '14.0', '2020-09-02 07:32:10');
+INSERT INTO `t_order_position` VALUES (12305, 2, 2650, 390, '109.39900350180238', '24.283001819013098', '6.0', '13.0', '2020-09-02 07:32:20');
+INSERT INTO `t_order_position` VALUES (12306, 2, 2650, 390, '109.39917032621858', '24.28351837652874', '12.0', '15.0', '2020-09-02 07:32:30');
+INSERT INTO `t_order_position` VALUES (12307, 2, 2650, 390, '109.3993705116482', '24.284101589280386', '14.0', '15.0', '2020-09-02 07:32:40');
+INSERT INTO `t_order_position` VALUES (12308, 2, 2650, 390, '109.39952066098763', '24.284734768833072', '14.0', '15.0', '2020-09-02 07:32:50');
+INSERT INTO `t_order_position` VALUES (12309, 2, 2650, 390, '109.39972084509039', '24.28535130186086', '10.0', '15.0', '2020-09-02 07:33:05');
+INSERT INTO `t_order_position` VALUES (12310, 2, 2650, 390, '109.39998774321108', '24.285984514789504', '14.0', '15.0', '2020-09-02 07:33:20');
+INSERT INTO `t_order_position` VALUES (12311, 2, 2650, 390, '109.40015456384559', '24.28656771198729', '12.0', '15.0', '2020-09-02 07:33:30');
+INSERT INTO `t_order_position` VALUES (12312, 2, 2650, 390, '109.40032138219198', '24.28713424686273', '10.0', '15.0', '2020-09-02 07:33:41');
+INSERT INTO `t_order_position` VALUES (12313, 2, 2650, 390, '109.40048819629132', '24.287650796611416', '12.0', '15.0', '2020-09-02 07:34:01');
+INSERT INTO `t_order_position` VALUES (12314, 2, 2650, 390, '109.40075507987314', '24.288200694914693', '16.0', '15.0', '2020-09-02 07:34:11');
+INSERT INTO `t_order_position` VALUES (12315, 2, 2650, 390, '109.40100528023436', '24.28871726336202', '14.0', '15.0', '2020-09-02 07:34:21');
+INSERT INTO `t_order_position` VALUES (12316, 2, 2650, 390, '109.40130552047404', '24.28940045560177', '20.0', '15.0', '2020-09-02 07:34:31');
+INSERT INTO `t_order_position` VALUES (12317, 2, 2650, 390, '109.40153903291926', '24.289850369098698', '20.0', '15.0', '2020-09-02 07:34:41');
+INSERT INTO `t_order_position` VALUES (12318, 2, 2650, 390, '109.40190596756122', '24.290416939603787', '24.0', '13.0', '2020-09-02 07:34:51');
+INSERT INTO `t_order_position` VALUES (12319, 2, 2650, 390, '109.40228956680741', '24.290883539339607', '24.0', '15.0', '2020-09-02 07:35:01');
+INSERT INTO `t_order_position` VALUES (12320, 2, 2650, 390, '109.40260644771475', '24.291266813428223', '24.0', '15.0', '2020-09-02 07:35:11');
+INSERT INTO `t_order_position` VALUES (12321, 2, 2650, 390, '109.40294000214759', '24.291683409062397', '24.0', '15.0', '2020-09-02 07:35:31');
+INSERT INTO `t_order_position` VALUES (12322, 2, 2650, 390, '109.40330689950068', '24.292033359490876', '20.0', '15.0', '2020-09-02 07:36:11');
+INSERT INTO `t_order_position` VALUES (12323, 2, 2650, 390, '109.40362376789119', '24.29246660437506', '30.0', '15.0', '2020-09-02 07:36:47');
+INSERT INTO `t_order_position` VALUES (12324, 2, 2650, 390, '109.4039573050482', '24.29286652429265', '18.0', '15.0', '2020-09-02 07:37:02');
+INSERT INTO `t_order_position` VALUES (12325, 2, 2650, 390, '109.40402404629714', '24.29353299102468', '160.0', '15.0', '2020-09-02 07:37:27');
+INSERT INTO `t_order_position` VALUES (12326, 2, 2650, 390, '109.4038239716927', '24.29408279344976', '164.0', '15.0', '2020-09-02 07:37:42');
+INSERT INTO `t_order_position` VALUES (12327, 2, 2650, 390, '109.4036905973402', '24.294615942290548', '160.0', '15.0', '2020-09-02 07:38:07');
+INSERT INTO `t_order_position` VALUES (12328, 2, 2650, 390, '109.40409085586292', '24.29536576121537', '34.0', '15.0', '2020-09-02 07:38:22');
+INSERT INTO `t_order_position` VALUES (12329, 2, 2650, 390, '109.40489129488141', '24.295932335712894', '34.0', '15.0', '2020-09-02 07:38:32');
+INSERT INTO `t_order_position` VALUES (12330, 2, 2650, 390, '109.40555830336136', '24.296398906203734', '32.0', '15.0', '2020-09-02 07:38:42');
+INSERT INTO `t_order_position` VALUES (12331, 2, 2650, 390, '109.40595849924675', '24.296698833062866', '0.0', '15.0', '2020-09-02 07:39:02');
+INSERT INTO `t_order_position` VALUES (12332, 2, 2650, 390, '109.40635868733104', '24.296998752988383', '38.0', '15.0', '2020-09-02 07:39:37');
+INSERT INTO `t_order_position` VALUES (12333, 2, 2650, 390, '109.4069089353862', '24.29744861993418', '34.0', '15.0', '2020-09-02 07:39:48');
+INSERT INTO `t_order_position` VALUES (12334, 2, 2650, 390, '109.40744249493505', '24.297881812631786', '30.0', '15.0', '2020-09-02 07:40:08');
+INSERT INTO `t_order_position` VALUES (12335, 2, 2650, 390, '109.40805940276157', '24.298331650341495', '32.0', '15.0', '2020-09-02 07:40:58');
+INSERT INTO `t_order_position` VALUES (12336, 2, 2650, 390, '109.40867629090056', '24.298764809888606', '22.0', '15.0', '2020-09-02 07:41:23');
+INSERT INTO `t_order_position` VALUES (12337, 2, 2650, 390, '109.40822618202833', '24.29931467115424', '142.0', '15.0', '2020-09-02 07:41:43');
+INSERT INTO `t_order_position` VALUES (12338, 2, 2650, 390, '109.40800947026533', '24.299764544227966', '0.0', '15.0', '2020-09-02 07:41:58');
+INSERT INTO `t_order_position` VALUES (12339, 2, 2650, 390, '109.40817623035748', '24.30041433551059', '28.0', '15.0', '2020-09-02 07:42:13');
+INSERT INTO `t_order_position` VALUES (12340, 2, 2650, 390, '109.40857637986215', '24.3007975249809', '40.0', '15.0', '2020-09-02 07:42:18');
+INSERT INTO `t_order_position` VALUES (12341, 2, 2650, 390, '109.40925993537199', '24.301197341247416', '20.0', '15.0', '2020-09-02 07:42:28');
+INSERT INTO `t_order_position` VALUES (12342, 2, 2650, 390, '109.40946001559952', '24.301647181516906', '10.0', '15.0', '2020-09-02 07:42:33');
+INSERT INTO `t_order_position` VALUES (12343, 2, 2650, 390, '109.40969345619133', '24.30244690897217', '14.0', '15.0', '2020-09-02 07:42:43');
+INSERT INTO `t_order_position` VALUES (12344, 2, 2650, 390, '109.40991021556616', '24.30311334408188', '14.0', '15.0', '2020-09-02 07:42:54');
+INSERT INTO `t_order_position` VALUES (12345, 2, 2650, 390, '109.41002693947696', '24.30361317564996', '0.0', '15.0', '2020-09-02 07:43:14');
+INSERT INTO `t_order_position` VALUES (12346, 2, 2650, 390, '109.41014368719823', '24.304529546602062', '10.0', '13.0', '2020-09-02 07:43:44');
+INSERT INTO `t_order_position` VALUES (12347, 2, 2650, 390, '109.41047713758911', '24.305262606638156', '6.0', '15.0', '2020-09-02 07:43:54');
+INSERT INTO `t_order_position` VALUES (12348, 2, 2650, 390, '109.41064387834716', '24.30592904393461', '2.0', '15.0', '2020-09-02 07:44:04');
+INSERT INTO `t_order_position` VALUES (12349, 2, 2650, 390, '109.41071059679086', '24.306578835807013', '4.0', '15.0', '2020-09-02 07:44:14');
+INSERT INTO `t_order_position` VALUES (12350, 2, 2650, 390, '109.4107273040358', '24.307211974700827', '2.0', '15.0', '2020-09-02 07:44:24');
+INSERT INTO `t_order_position` VALUES (12351, 2, 2650, 390, '109.41076067245203', '24.30769515632275', '6.0', '15.0', '2020-09-02 07:44:29');
+INSERT INTO `t_order_position` VALUES (12352, 2, 2650, 390, '109.41081073035997', '24.30851156802957', '2.0', '15.0', '2020-09-02 07:44:39');
+INSERT INTO `t_order_position` VALUES (12353, 2, 2650, 390, '109.41086079597956', '24.30946127336544', '2.0', '15.0', '2020-09-02 07:44:49');
+INSERT INTO `t_order_position` VALUES (12354, 2, 2650, 390, '109.41087749722459', '24.30999444353363', '2.0', '15.0', '2020-09-02 07:44:54');
+INSERT INTO `t_order_position` VALUES (12355, 2, 2650, 390, '109.41084418482869', '24.31046097602031', '166.0', '14.0', '2020-09-02 07:44:59');
+INSERT INTO `t_order_position` VALUES (12356, 2, 2650, 390, '109.41091090261193', '24.311110769503355', '160.0', '15.0', '2020-09-02 07:45:09');
+INSERT INTO `t_order_position` VALUES (12357, 2, 2650, 390, '109.4110276364091', '24.311877185815604', '164.0', '15.0', '2020-09-02 07:46:10');
+INSERT INTO `t_order_position` VALUES (12358, 2, 2650, 390, '109.4110776828824', '24.312510320845885', '2.0', '15.0', '2020-09-02 07:46:15');
+INSERT INTO `t_order_position` VALUES (12359, 2, 2650, 390, '109.41111106149442', '24.31317678258983', '2.0', '15.0', '2020-09-02 07:46:20');
+INSERT INTO `t_order_position` VALUES (12360, 2, 2650, 390, '109.41111109283717', '24.313709957184514', '4.0', '14.0', '2020-09-02 07:46:25');
+INSERT INTO `t_order_position` VALUES (12361, 2, 2650, 390, '109.41112779289675', '24.31422646716214', '4.0', '14.0', '2020-09-02 07:46:30');
+INSERT INTO `t_order_position` VALUES (12362, 2, 2650, 390, '109.41109450834077', '24.315159529810057', '0.0', '15.0', '2020-09-02 07:46:40');
+INSERT INTO `t_order_position` VALUES (12363, 2, 2650, 390, '109.41114455660835', '24.315825989742084', '6.0', '15.0', '2020-09-02 07:46:50');
+INSERT INTO `t_order_position` VALUES (12364, 2, 2650, 390, '109.41151130571576', '24.316159152532865', '56.0', '15.0', '2020-09-02 07:47:05');
+INSERT INTO `t_order_position` VALUES (12365, 2, 2650, 390, '109.4120447243992', '24.316259007567137', '56.0', '15.0', '2020-09-02 07:47:15');
+INSERT INTO `t_order_position` VALUES (12366, 2, 2650, 390, '109.41256145551591', '24.316275545374026', '60.0', '14.0', '2020-09-02 07:47:20');
+INSERT INTO `t_order_position` VALUES (12367, 2, 2650, 390, '109.41332819964623', '24.316408633383436', '12.0', '15.0', '2020-09-02 07:47:30');
+INSERT INTO `t_order_position` VALUES (12368, 2, 2650, 390, '109.41334490080402', '24.316975128023195', '162.0', '15.0', '2020-09-02 07:47:40');
+INSERT INTO `t_order_position` VALUES (12369, 2, 2650, 390, '109.41316160360003', '24.317824929376386', '150.0', '15.0', '2020-09-02 07:47:55');
+INSERT INTO `t_order_position` VALUES (12370, 2, 2650, 390, '109.41304496644119', '24.318491432183972', '6.0', '15.0', '2020-09-02 07:48:10');
+INSERT INTO `t_order_position` VALUES (12371, 2, 2650, 390, '109.4131450051395', '24.31900791963354', '0.0', '15.0', '2020-09-02 07:48:35');
+INSERT INTO `t_order_position` VALUES (12372, 2, 2650, 390, '109.41349506857078', '24.319657629200243', '162.0', '15.0', '2020-09-02 07:49:41');
+INSERT INTO `t_order_position` VALUES (12373, 2, 2650, 390, '109.41309506078692', '24.320024302247248', '110.0', '15.0', '2020-09-02 07:49:51');
+INSERT INTO `t_order_position` VALUES (12374, 2, 2650, 390, '109.41246166368191', '24.320007805846473', '112.0', '15.0', '2020-09-02 07:50:01');
+INSERT INTO `t_order_position` VALUES (12375, 2, 2650, 390, '109.4117949132165', '24.32007460770484', '110.0', '15.0', '2020-09-02 07:50:11');
+INSERT INTO `t_order_position` VALUES (12376, 2, 2654, 583, '109.40802670071845', '24.309261652369468', '0.0', '9.0', '2020-09-02 16:35:56');
+INSERT INTO `t_order_position` VALUES (12377, 2, 2654, 583, '109.40861021798271', '24.309211630847727', '62.0', '14.0', '2020-09-02 16:38:58');
+INSERT INTO `t_order_position` VALUES (12378, 2, 2654, 583, '109.40934376242805', '24.309211563524965', '62.0', '14.0', '2020-09-02 16:39:08');
+INSERT INTO `t_order_position` VALUES (12379, 2, 2654, 583, '109.40996058310718', '24.30916150349625', '66.0', '13.0', '2020-09-02 16:39:18');
+INSERT INTO `t_order_position` VALUES (12380, 2, 2655, 73, '109.41016599956896', '24.309176173370037', '99.30000305175781', '71.38', '2020-09-02 16:43:33');
+INSERT INTO `t_order_position` VALUES (12381, 2, 2656, 583, '109.41027731717521', '24.30906148847074', '0.0', '13.0', '2020-09-02 16:47:36');
+INSERT INTO `t_order_position` VALUES (12382, 2, 2656, 583, '109.4108607714938', '24.309044732030184', '60.0', '14.0', '2020-09-02 16:48:21');
+INSERT INTO `t_order_position` VALUES (12383, 2, 2656, 583, '109.41152755978668', '24.309094590080463', '54.0', '13.0', '2020-09-02 16:48:31');
+INSERT INTO `t_order_position` VALUES (12384, 2, 2656, 583, '109.41234435051177', '24.30924436244513', '58.0', '12.0', '2020-09-02 16:48:41');
+INSERT INTO `t_order_position` VALUES (12385, 2, 2656, 583, '109.41361111638109', '24.309010757183326', '0.0', '9.0', '2020-09-02 16:48:56');
+INSERT INTO `t_order_position` VALUES (12386, 2, 2656, 583, '109.41411115356685', '24.309260527099276', '0.0', '13.0', '2020-09-02 16:49:21');
+INSERT INTO `t_order_position` VALUES (12387, 2, 2656, 583, '109.41464449905675', '24.309293672840877', '54.0', '14.0', '2020-09-02 16:54:08');
+INSERT INTO `t_order_position` VALUES (12388, 2, 2656, 583, '109.4152945010276', '24.309443394033426', '40.0', '14.0', '2020-09-02 16:54:18');
+INSERT INTO `t_order_position` VALUES (12389, 2, 2656, 583, '109.4159611592281', '24.30979302940406', '36.0', '14.0', '2020-09-02 16:54:28');
+INSERT INTO `t_order_position` VALUES (12390, 2, 2656, 583, '109.41659446487913', '24.310142659294435', '36.0', '14.0', '2020-09-02 16:54:38');
+INSERT INTO `t_order_position` VALUES (12391, 2, 2656, 583, '109.41716109479897', '24.31054228685453', '32.0', '14.0', '2020-09-02 16:54:48');
+INSERT INTO `t_order_position` VALUES (12392, 2, 2656, 583, '109.41781103029305', '24.310958521249614', '34.0', '15.0', '2020-09-02 16:54:58');
+INSERT INTO `t_order_position` VALUES (12393, 2, 2656, 583, '109.41849427556319', '24.311441366175906', '34.0', '14.0', '2020-09-02 16:55:09');
+INSERT INTO `t_order_position` VALUES (12394, 2, 2656, 583, '109.41909418429272', '24.31195755919269', '22.0', '14.0', '2020-09-02 16:55:19');
+INSERT INTO `t_order_position` VALUES (12395, 2, 2656, 583, '109.41937747935657', '24.312390606756825', '14.0', '15.0', '2020-09-02 16:55:29');
+INSERT INTO `t_order_position` VALUES (12396, 2, 2656, 583, '109.41947748528024', '24.31289040157875', '8.0', '15.0', '2020-09-02 16:55:39');
+INSERT INTO `t_order_position` VALUES (12397, 2, 2656, 583, '109.41962748342779', '24.31347347624442', '38.0', '15.0', '2020-09-02 16:55:49');
+INSERT INTO `t_order_position` VALUES (12398, 2, 2656, 583, '109.42006073540074', '24.313973076465437', '38.0', '14.0', '2020-09-02 16:56:04');
+INSERT INTO `t_order_position` VALUES (12399, 2, 2656, 583, '109.42072724164522', '24.3144558634125', '28.0', '14.0', '2020-09-02 16:56:19');
+INSERT INTO `t_order_position` VALUES (12400, 2, 2657, 583, '109.42094385094335', '24.31460568365738', '140.0', '14.0', '2020-09-02 16:57:59');
+INSERT INTO `t_order_position` VALUES (12401, 2, 2657, 583, '109.4204106488503', '24.314139484628765', '154.0', '15.0', '2020-09-02 16:58:10');
+INSERT INTO `t_order_position` VALUES (12402, 2, 2657, 583, '109.41979412429005', '24.31373996801381', '142.0', '15.0', '2020-09-02 16:58:20');
+INSERT INTO `t_order_position` VALUES (12403, 2, 2657, 583, '109.41939418132549', '24.31305706532694', '114.0', '14.0', '2020-09-02 16:58:30');
+INSERT INTO `t_order_position` VALUES (12404, 2, 2657, 583, '109.41932749285627', '24.312423958002544', '128.0', '15.0', '2020-09-02 16:58:40');
+INSERT INTO `t_order_position` VALUES (12405, 2, 2657, 583, '109.41899419994621', '24.311857643399346', '148.0', '15.0', '2020-09-02 16:58:50');
+INSERT INTO `t_order_position` VALUES (12406, 2, 2657, 583, '109.41842762129323', '24.31144140063844', '148.0', '15.0', '2020-09-02 16:59:00');
+INSERT INTO `t_order_position` VALUES (12407, 2, 2657, 583, '109.41786102550584', '24.311008481838495', '134.0', '14.0', '2020-09-02 16:59:10');
+INSERT INTO `t_order_position` VALUES (12408, 2, 2657, 583, '109.41729441160926', '24.310542225350005', '154.0', '15.0', '2020-09-02 16:59:20');
+INSERT INTO `t_order_position` VALUES (12409, 2, 2657, 583, '109.41676111941702', '24.31020923320751', '152.0', '15.0', '2020-09-02 16:59:35');
+INSERT INTO `t_order_position` VALUES (12410, 2, 2657, 583, '109.41591115728212', '24.30970974125857', '152.0', '13.0', '2020-09-02 16:59:45');
+INSERT INTO `t_order_position` VALUES (12411, 2, 2657, 583, '109.41509450147197', '24.309376821344465', '110.0', '13.0', '2020-09-02 16:59:55');
+INSERT INTO `t_order_position` VALUES (12412, 2, 2657, 583, '109.4145111694072', '24.309377026703157', '112.0', '13.0', '2020-09-02 17:00:06');
+INSERT INTO `t_order_position` VALUES (12413, 2, 2657, 583, '109.41396116086568', '24.30947717625027', '110.0', '15.0', '2020-09-02 17:00:21');
+INSERT INTO `t_order_position` VALUES (12414, 2, 2657, 583, '109.41327779342735', '24.309560688768318', '0.0', '12.0', '2020-09-02 17:00:41');
+INSERT INTO `t_order_position` VALUES (12415, 2, 2657, 583, '109.41266106173376', '24.309394238538783', '106.0', '10.0', '2020-09-02 17:00:51');
+INSERT INTO `t_order_position` VALUES (12416, 2, 2657, 583, '109.41152756762224', '24.309227883298583', '108.0', '13.0', '2020-09-02 17:01:01');
+INSERT INTO `t_order_position` VALUES (12417, 2, 2657, 583, '109.41076076255898', '24.309228027527677', '118.0', '12.0', '2020-09-02 17:01:17');
+INSERT INTO `t_order_position` VALUES (12418, 2, 2658, 73, '109.41008046085761', '24.309151826519646', '0.0', '66.52', '2020-09-02 17:03:41');
+INSERT INTO `t_order_position` VALUES (12419, 2, 2658, 73, '109.40806495118493', '24.30933603472138', '290.1000061035156', '57.64', '2020-09-02 17:05:38');
+INSERT INTO `t_order_position` VALUES (12420, 2, 2658, 73, '109.40738562693991', '24.309559172415305', '307.5', '49.88', '2020-09-02 17:09:55');
+INSERT INTO `t_order_position` VALUES (12421, 2, 2658, 73, '109.40685396637335', '24.309916240349693', '313.70001220703125', '53.19', '2020-09-02 17:10:05');
+INSERT INTO `t_order_position` VALUES (12422, 2, 2658, 73, '109.40644080081859', '24.31026719047734', '320.3900146484375', '54.75', '2020-09-02 17:10:15');
+INSERT INTO `t_order_position` VALUES (12423, 2, 2658, 73, '109.40601834437994', '24.310643165358506', '322.1000061035156', '49.4', '2020-09-02 17:10:25');
+INSERT INTO `t_order_position` VALUES (12424, 2, 2658, 73, '109.40556293517102', '24.31120460509789', '309.6000061035156', '49.41', '2020-09-02 17:10:35');
+INSERT INTO `t_order_position` VALUES (12425, 2, 2658, 73, '109.4053416087474', '24.31163840130304', '309.1000061035156', '51.66', '2020-09-02 17:10:45');
+INSERT INTO `t_order_position` VALUES (12426, 2, 2659, 924, '109.405467', '24.311815', '0.0', '0.0', '2020-09-02 17:38:36');
+INSERT INTO `t_order_position` VALUES (12427, 2, 2660, 924, '109.405459', '24.311811', '0.0', '0.0', '2020-09-02 17:43:39');
+INSERT INTO `t_order_position` VALUES (12428, 2, 2663, 73, '109.4054091088902', '24.311277693727096', '0.0', '8.0', '2020-09-03 14:07:46');
+INSERT INTO `t_order_position` VALUES (12429, 2, 2663, 73, '109.40584260586269', '24.31072788252974', '90.0', '9.0', '2020-09-03 14:08:16');
+INSERT INTO `t_order_position` VALUES (12430, 2, 2663, 73, '109.40622608336652', '24.310361340265555', '94.0', '9.0', '2020-09-03 14:08:27');
+INSERT INTO `t_order_position` VALUES (12431, 2, 2663, 73, '109.40680962768192', '24.309894823326054', '84.0', '10.0', '2020-09-03 14:08:37');
+INSERT INTO `t_order_position` VALUES (12432, 2, 2663, 73, '109.4074431774852', '24.309494937083315', '72.0', '10.0', '2020-09-03 14:08:47');
+INSERT INTO `t_order_position` VALUES (12433, 2, 2663, 73, '109.40802670169778', '24.309278314023086', '0.0', '10.0', '2020-09-03 14:09:07');
+INSERT INTO `t_order_position` VALUES (12434, 2, 2663, 73, '109.40735981761748', '24.309561585564552', '134.0', '11.0', '2020-09-03 14:13:35');
+INSERT INTO `t_order_position` VALUES (12435, 2, 2663, 73, '109.4067429365703', '24.309928146300578', '138.0', '11.0', '2020-09-03 14:13:46');
+INSERT INTO `t_order_position` VALUES (12436, 2, 2663, 73, '109.40610936898278', '24.310394659878426', '136.0', '11.0', '2020-09-03 14:13:55');
+INSERT INTO `t_order_position` VALUES (12437, 2, 2663, 73, '109.40552580864961', '24.310927805810802', '150.0', '10.0', '2020-09-03 14:14:05');
+INSERT INTO `t_order_position` VALUES (12438, 2, 2663, 73, '109.40522570263215', '24.311494282910544', '10.0', '10.0', '2020-09-03 14:14:15');
+INSERT INTO `t_order_position` VALUES (12439, 2, 2665, 203, '109.4259387032226', '24.264134546487522', '0.0', '10.0', '2020-09-04 15:27:28');
+INSERT INTO `t_order_position` VALUES (12440, 2, 2666, 203, '109.4259387032226', '24.264134546487522', '0.0', '13.0', '2020-09-04 15:28:06');
+INSERT INTO `t_order_position` VALUES (12441, 2, 2666, 203, '109.4268715092428', '24.264450291199775', '50.0', '14.0', '2020-09-04 15:30:32');
+INSERT INTO `t_order_position` VALUES (12442, 2, 2666, 203, '109.42750445913684', '24.264649648363655', '42.0', '15.0', '2020-09-04 15:30:37');
+INSERT INTO `t_order_position` VALUES (12443, 2, 2666, 203, '109.42813739493187', '24.264948954445238', '32.0', '14.0', '2020-09-04 15:30:42');
+INSERT INTO `t_order_position` VALUES (12444, 2, 2666, 203, '109.42865373163914', '24.265348323653228', '34.0', '14.0', '2020-09-04 15:30:47');
+INSERT INTO `t_order_position` VALUES (12445, 2, 2666, 203, '109.42912009214069', '24.26576439209671', '32.0', '14.0', '2020-09-04 15:30:52');
+INSERT INTO `t_order_position` VALUES (12446, 2, 2666, 203, '109.42976964788753', '24.2663468752645', '30.0', '15.0', '2020-09-04 15:30:57');
+INSERT INTO `t_order_position` VALUES (12447, 2, 2666, 203, '109.43036921406706', '24.26679610330814', '42.0', '15.0', '2020-09-04 15:31:02');
+INSERT INTO `t_order_position` VALUES (12448, 2, 2666, 203, '109.43103536907012', '24.26714527660677', '50.0', '15.0', '2020-09-04 15:31:07');
+INSERT INTO `t_order_position` VALUES (12449, 2, 2666, 203, '109.431668185345', '24.267294533416308', '56.0', '15.0', '2020-09-04 15:31:12');
+INSERT INTO `t_order_position` VALUES (12450, 2, 2666, 203, '109.43220106056918', '24.26729393560371', '62.0', '15.0', '2020-09-04 15:31:17');
+INSERT INTO `t_order_position` VALUES (12451, 2, 2666, 203, '109.43318351080086', '24.267259478325293', '62.0', '15.0', '2020-09-04 15:31:27');
+INSERT INTO `t_order_position` VALUES (12452, 2, 2666, 203, '109.43411596220717', '24.26722503963301', '60.0', '15.0', '2020-09-04 15:31:38');
+INSERT INTO `t_order_position` VALUES (12453, 2, 2666, 203, '109.43466542285458', '24.267207702839283', '60.0', '15.0', '2020-09-04 15:31:43');
+INSERT INTO `t_order_position` VALUES (12454, 2, 2666, 203, '109.43529811712024', '24.267190247410387', '62.0', '15.0', '2020-09-04 15:31:48');
+INSERT INTO `t_order_position` VALUES (12455, 2, 2666, 203, '109.43603068645359', '24.26717264489248', '60.0', '15.0', '2020-09-04 15:31:53');
+INSERT INTO `t_order_position` VALUES (12456, 2, 2666, 203, '109.43674658148463', '24.267155041379667', '60.0', '15.0', '2020-09-04 15:31:58');
+INSERT INTO `t_order_position` VALUES (12457, 2, 2666, 203, '109.4374790988315', '24.26712073198051', '60.0', '15.0', '2020-09-04 15:32:03');
+INSERT INTO `t_order_position` VALUES (12458, 2, 2666, 203, '109.43822823685673', '24.26706971523074', '72.0', '15.0', '2020-09-04 15:32:08');
+INSERT INTO `t_order_position` VALUES (12459, 2, 2666, 203, '109.43851120743781', '24.266536161671045', '110.0', '15.0', '2020-09-04 15:32:18');
+INSERT INTO `t_order_position` VALUES (12460, 2, 2666, 203, '109.4379451979619', '24.26650362910675', '110.0', '15.0', '2020-09-04 15:32:23');
+INSERT INTO `t_order_position` VALUES (12461, 2, 2666, 203, '109.43739582703765', '24.26657102715395', '154.0', '15.0', '2020-09-04 15:32:28');
+INSERT INTO `t_order_position` VALUES (12462, 2, 2666, 203, '109.43757900538799', '24.26745381881641', '18.0', '13.0', '2020-09-04 15:32:38');
+INSERT INTO `t_order_position` VALUES (12463, 2, 2666, 203, '109.43794529863453', '24.268219728774422', '16.0', '15.0', '2020-09-04 15:32:48');
+INSERT INTO `t_order_position` VALUES (12464, 2, 2666, 203, '109.43816174243695', '24.268685941292624', '10.0', '15.0', '2020-09-04 15:32:53');
+INSERT INTO `t_order_position` VALUES (12465, 2, 2666, 203, '109.43839484386953', '24.26936872399296', '10.0', '15.0', '2020-09-04 15:32:58');
+INSERT INTO `t_order_position` VALUES (12466, 2, 2666, 203, '109.43847812049206', '24.2700683770013', '2.0', '15.0', '2020-09-04 15:33:08');
+INSERT INTO `t_order_position` VALUES (12467, 2, 2666, 203, '109.43851144883617', '24.270651471986763', '166.0', '15.0', '2020-09-04 15:33:59');
+INSERT INTO `t_order_position` VALUES (12468, 2, 2666, 203, '109.43849483304888', '24.27118465384089', '162.0', '15.0', '2020-09-04 15:34:04');
+INSERT INTO `t_order_position` VALUES (12469, 2, 2666, 203, '109.43839498949491', '24.271851242433463', '164.0', '15.0', '2020-09-04 15:34:09');
+INSERT INTO `t_order_position` VALUES (12470, 2, 2666, 203, '109.43827849628082', '24.272484531729717', '162.0', '15.0', '2020-09-04 15:34:14');
+INSERT INTO `t_order_position` VALUES (12471, 2, 2666, 203, '109.43816199655836', '24.273017853366273', '160.0', '15.0', '2020-09-04 15:34:19');
+INSERT INTO `t_order_position` VALUES (12472, 2, 2666, 203, '109.43801221988822', '24.273867784195783', '164.0', '15.0', '2020-09-04 15:34:29');
+INSERT INTO `t_order_position` VALUES (12473, 2, 2666, 203, '109.43797896112657', '24.274484296100542', '160.0', '15.0', '2020-09-04 15:34:34');
+INSERT INTO `t_order_position` VALUES (12474, 2, 2666, 203, '109.43789575974473', '24.27510087724114', '156.0', '15.0', '2020-09-04 15:34:39');
+INSERT INTO `t_order_position` VALUES (12475, 2, 2666, 203, '109.43767937772125', '24.275734302675048', '152.0', '15.0', '2020-09-04 15:34:49');
+INSERT INTO `t_order_position` VALUES (12476, 2, 2666, 203, '109.43747963059228', '24.27618442981815', '154.0', '15.0', '2020-09-04 15:34:59');
+INSERT INTO `t_order_position` VALUES (12477, 2, 2666, 203, '109.43721329519067', '24.27673461309827', '154.0', '15.0', '2020-09-04 15:35:09');
+INSERT INTO `t_order_position` VALUES (12478, 2, 2666, 203, '109.43696360859765', '24.277351416311156', '154.0', '15.0', '2020-09-04 15:35:14');
+INSERT INTO `t_order_position` VALUES (12479, 2, 2666, 203, '109.43666397742066', '24.278034928616318', '152.0', '15.0', '2020-09-04 15:35:19');
+INSERT INTO `t_order_position` VALUES (12480, 2, 2666, 203, '109.43623115923097', '24.278851902487105', '148.0', '14.0', '2020-09-04 15:35:24');
+INSERT INTO `t_order_position` VALUES (12481, 2, 2666, 203, '109.43559852971487', '24.279485851471705', '148.0', '15.0', '2020-09-04 15:35:29');
+INSERT INTO `t_order_position` VALUES (12482, 2, 2666, 203, '109.43524892015967', '24.280002797411274', '154.0', '15.0', '2020-09-04 15:35:34');
+INSERT INTO `t_order_position` VALUES (12483, 2, 2666, 203, '109.43483271558239', '24.280703095914497', '142.0', '15.0', '2020-09-04 15:35:54');
+INSERT INTO `t_order_position` VALUES (12484, 2, 2666, 203, '109.43448309110808', '24.281186708025018', '146.0', '15.0', '2020-09-04 15:35:59');
+INSERT INTO `t_order_position` VALUES (12485, 2, 2666, 203, '109.43411681306638', '24.281720319221105', '150.0', '15.0', '2020-09-04 15:36:04');
+INSERT INTO `t_order_position` VALUES (12486, 2, 2666, 203, '109.4338171318693', '24.282253844630773', '152.0', '15.0', '2020-09-04 15:36:09');
+INSERT INTO `t_order_position` VALUES (12487, 2, 2666, 203, '109.43345084293156', '24.282804106903928', '146.0', '15.0', '2020-09-04 15:36:14');
+INSERT INTO `t_order_position` VALUES (12488, 2, 2666, 203, '109.4330512445975', '24.28335440253435', '148.0', '15.0', '2020-09-04 15:36:19');
+INSERT INTO `t_order_position` VALUES (12489, 2, 2666, 203, '109.4327015917306', '24.28387131100271', '148.0', '15.0', '2020-09-04 15:36:24');
+INSERT INTO `t_order_position` VALUES (12490, 2, 2666, 203, '109.43240188688493', '24.28435483456411', '150.0', '15.0', '2020-09-04 15:36:29');
+INSERT INTO `t_order_position` VALUES (12491, 2, 2666, 203, '109.43210217763557', '24.28483835433743', '148.0', '15.0', '2020-09-04 15:36:34');
+INSERT INTO `t_order_position` VALUES (12492, 2, 2666, 203, '109.43178581249077', '24.285338550260168', '150.0', '14.0', '2020-09-04 15:36:39');
+INSERT INTO `t_order_position` VALUES (12493, 2, 2666, 203, '109.43141948906579', '24.285922103761738', '150.0', '14.0', '2020-09-04 15:36:44');
+INSERT INTO `t_order_position` VALUES (12494, 2, 2666, 203, '109.43111976729982', '24.28643893383345', '150.0', '15.0', '2020-09-04 15:36:49');
+INSERT INTO `t_order_position` VALUES (12495, 2, 2666, 203, '109.43082004208532', '24.286972421503894', '154.0', '15.0', '2020-09-04 15:36:55');
+INSERT INTO `t_order_position` VALUES (12496, 2, 2666, 203, '109.43052031341732', '24.287522566787434', '154.0', '15.0', '2020-09-04 15:37:05');
+INSERT INTO `t_order_position` VALUES (12497, 2, 2666, 203, '109.43025387899107', '24.287922720877756', '150.0', '15.0', '2020-09-04 15:38:50');
+INSERT INTO `t_order_position` VALUES (12498, 2, 2666, 203, '109.42997079003555', '24.288372873372047', '152.0', '15.0', '2020-09-04 15:38:55');
+INSERT INTO `t_order_position` VALUES (12499, 2, 2666, 203, '109.4296543935883', '24.288906363505667', '150.0', '15.0', '2020-09-04 15:39:00');
+INSERT INTO `t_order_position` VALUES (12500, 2, 2666, 203, '109.42927137707001', '24.289489900593896', '150.0', '15.0', '2020-09-04 15:39:05');
+INSERT INTO `t_order_position` VALUES (12501, 2, 2666, 203, '109.42893831680274', '24.29005672062098', '150.0', '15.0', '2020-09-04 15:39:10');
+INSERT INTO `t_order_position` VALUES (12502, 2, 2666, 203, '109.42860524907023', '24.29059021308018', '150.0', '15.0', '2020-09-04 15:39:16');
+INSERT INTO `t_order_position` VALUES (12503, 2, 2666, 203, '109.42825552338715', '24.291173701061236', '150.0', '15.0', '2020-09-04 15:39:20');
+INSERT INTO `t_order_position` VALUES (12504, 2, 2666, 203, '109.42797240831585', '24.291657152278592', '150.0', '15.0', '2020-09-04 15:39:25');
+INSERT INTO `t_order_position` VALUES (12505, 2, 2666, 203, '109.42767263241822', '24.292123954171092', '150.0', '15.0', '2020-09-04 15:39:30');
+INSERT INTO `t_order_position` VALUES (12506, 2, 2666, 203, '109.42740616228191', '24.29255739866544', '146.0', '15.0', '2020-09-04 15:39:35');
+INSERT INTO `t_order_position` VALUES (12507, 2, 2666, 203, '109.42678992367819', '24.293341045732085', '140.0', '15.0', '2020-09-04 15:39:45');
+INSERT INTO `t_order_position` VALUES (12508, 2, 2666, 203, '109.42644015459948', '24.293724568880034', '142.0', '15.0', '2020-09-04 15:39:50');
+INSERT INTO `t_order_position` VALUES (12509, 2, 2666, 203, '109.42610703951533', '24.294158056697984', '140.0', '15.0', '2020-09-04 15:39:55');
+INSERT INTO `t_order_position` VALUES (12510, 2, 2666, 203, '109.42574060494574', '24.294608229341875', '140.0', '15.0', '2020-09-04 15:40:01');
+INSERT INTO `t_order_position` VALUES (12511, 2, 2666, 203, '109.42539081848771', '24.295008397844036', '142.0', '15.0', '2020-09-04 15:40:06');
+INSERT INTO `t_order_position` VALUES (12512, 2, 2666, 203, '109.4249910585279', '24.295525231985135', '140.0', '15.0', '2020-09-04 15:40:56');
+INSERT INTO `t_order_position` VALUES (12513, 2, 2666, 203, '109.42445802756504', '24.296125471994493', '140.0', '15.0', '2020-09-04 15:41:06');
+INSERT INTO `t_order_position` VALUES (12514, 2, 2666, 203, '109.42412487548623', '24.296492284889286', '144.0', '15.0', '2020-09-04 15:41:11');
+INSERT INTO `t_order_position` VALUES (12515, 2, 2666, 203, '109.42377506166812', '24.296909090006274', '144.0', '15.0', '2020-09-04 15:41:16');
+INSERT INTO `t_order_position` VALUES (12516, 2, 2666, 203, '109.42344190208277', '24.29734253888477', '148.0', '15.0', '2020-09-04 15:41:21');
+INSERT INTO `t_order_position` VALUES (12517, 2, 2666, 203, '109.42317537549154', '24.297775934344124', '150.0', '15.0', '2020-09-04 15:41:26');
+INSERT INTO `t_order_position` VALUES (12518, 2, 2666, 203, '109.42265896675698', '24.29855939667989', '150.0', '15.0', '2020-09-04 15:41:36');
+INSERT INTO `t_order_position` VALUES (12519, 2, 2666, 203, '109.42212588706522', '24.29939284340406', '150.0', '15.0', '2020-09-04 15:41:46');
+INSERT INTO `t_order_position` VALUES (12520, 2, 2666, 203, '109.42167609564893', '24.300192899700694', '150.0', '15.0', '2020-09-04 15:41:56');
+INSERT INTO `t_order_position` VALUES (12521, 2, 2666, 203, '109.42139288722689', '24.300676270289664', '150.0', '15.0', '2020-09-04 15:42:01');
+INSERT INTO `t_order_position` VALUES (12522, 2, 2666, 203, '109.42109301145723', '24.301126324923903', '148.0', '15.0', '2020-09-04 15:42:06');
+INSERT INTO `t_order_position` VALUES (12523, 2, 2666, 203, '109.42080979374494', '24.301593026825728', '152.0', '15.0', '2020-09-04 15:42:11');
+INSERT INTO `t_order_position` VALUES (12524, 2, 2666, 203, '109.42037662764794', '24.302276416647143', '150.0', '15.0', '2020-09-04 15:42:21');
+INSERT INTO `t_order_position` VALUES (12525, 2, 2666, 203, '109.42004341404426', '24.30275980082738', '148.0', '15.0', '2020-09-04 15:43:57');
+INSERT INTO `t_order_position` VALUES (12526, 2, 2666, 203, '109.41969354309727', '24.3034264670941', '160.0', '15.0', '2020-09-04 15:44:12');
+INSERT INTO `t_order_position` VALUES (12527, 2, 2666, 203, '109.41947697109418', '24.304143038283524', '160.0', '14.0', '2020-09-04 15:44:22');
+INSERT INTO `t_order_position` VALUES (12528, 2, 2666, 203, '109.41926039966792', '24.30490959253062', '160.0', '14.0', '2020-09-04 15:44:32');
+INSERT INTO `t_order_position` VALUES (12529, 2, 2666, 203, '109.41904383175681', '24.305776114751144', '162.0', '14.0', '2020-09-04 15:44:42');
+INSERT INTO `t_order_position` VALUES (12530, 2, 2666, 203, '109.41892722120586', '24.306309349457756', '160.0', '14.0', '2020-09-04 15:44:48');
+INSERT INTO `t_order_position` VALUES (12531, 2, 2666, 203, '109.41879394766869', '24.306859254257635', '160.0', '13.0', '2020-09-04 15:44:52');
+INSERT INTO `t_order_position` VALUES (12532, 2, 2666, 203, '109.41866067421685', '24.30742582011081', '160.0', '13.0', '2020-09-04 15:44:57');
+INSERT INTO `t_order_position` VALUES (12533, 2, 2666, 203, '109.41849407575792', '24.30804238762159', '160.0', '14.0', '2020-09-04 15:45:03');
+INSERT INTO `t_order_position` VALUES (12534, 2, 2666, 203, '109.41832747688144', '24.308675615808756', '160.0', '15.0', '2020-09-04 15:45:07');
+INSERT INTO `t_order_position` VALUES (12535, 2, 2666, 203, '109.41817754042013', '24.309308834646135', '158.0', '15.0', '2020-09-04 15:45:12');
+INSERT INTO `t_order_position` VALUES (12536, 2, 2666, 203, '109.41802760282745', '24.309942052768758', '160.0', '15.0', '2020-09-04 15:45:18');
+INSERT INTO `t_order_position` VALUES (12537, 2, 2666, 203, '109.41787766508293', '24.310591931847327', '160.0', '15.0', '2020-09-04 15:45:22');
+INSERT INTO `t_order_position` VALUES (12538, 2, 2666, 203, '109.41769439879415', '24.31125848800989', '162.0', '15.0', '2020-09-04 15:45:27');
+INSERT INTO `t_order_position` VALUES (12539, 2, 2666, 203, '109.41751113767188', '24.31204167480474', '164.0', '15.0', '2020-09-04 15:45:37');
+INSERT INTO `t_order_position` VALUES (12540, 2, 2666, 203, '109.41754449575583', '24.312541509724856', '44.0', '15.0', '2020-09-04 15:45:58');
+INSERT INTO `t_order_position` VALUES (12541, 2, 2666, 203, '109.41804442836177', '24.312691221561007', '72.0', '15.0', '2020-09-04 15:46:08');
+INSERT INTO `t_order_position` VALUES (12542, 2, 2666, 203, '109.41902755750073', '24.31239079940385', '70.0', '14.0', '2020-09-04 15:46:18');
+INSERT INTO `t_order_position` VALUES (12543, 2, 2666, 203, '109.41882755922992', '24.311707777774767', '148.0', '15.0', '2020-09-04 15:46:33');
+INSERT INTO `t_order_position` VALUES (12544, 2, 2666, 203, '109.41836096484079', '24.31140811153901', '148.0', '15.0', '2020-09-04 15:46:38');
+INSERT INTO `t_order_position` VALUES (12545, 2, 2666, 203, '109.41794435058107', '24.311091749240113', '148.0', '14.0', '2020-09-04 15:46:43');
+INSERT INTO `t_order_position` VALUES (12546, 2, 2666, 203, '109.41714443111431', '24.310558956155905', '146.0', '15.0', '2020-09-04 15:46:53');
+INSERT INTO `t_order_position` VALUES (12547, 2, 2666, 203, '109.41637780915087', '24.31000945868342', '150.0', '15.0', '2020-09-04 15:47:03');
+INSERT INTO `t_order_position` VALUES (12548, 2, 2666, 203, '109.41587782682616', '24.30972641629048', '152.0', '15.0', '2020-09-04 15:47:08');
+INSERT INTO `t_order_position` VALUES (12549, 2, 2666, 203, '109.41497783740311', '24.309393525295704', '110.0', '15.0', '2020-09-04 15:47:18');
+INSERT INTO `t_order_position` VALUES (12550, 2, 2666, 203, '109.4141778311026', '24.309410460492643', '114.0', '15.0', '2020-09-04 15:47:28');
+INSERT INTO `t_order_position` VALUES (12551, 2, 2666, 203, '109.41347779844463', '24.30941067625434', '154.0', '13.0', '2020-09-04 15:47:38');
+INSERT INTO `t_order_position` VALUES (12552, 2, 2666, 203, '109.41287773038118', '24.309060948977454', '160.0', '13.0', '2020-09-04 15:47:48');
+INSERT INTO `t_order_position` VALUES (12553, 2, 2666, 203, '109.41221098300322', '24.308944484553308', '110.0', '13.0', '2020-09-04 15:47:58');
+INSERT INTO `t_order_position` VALUES (12554, 2, 2666, 203, '109.41151088160723', '24.308944638640302', '110.0', '8.0', '2020-09-04 15:48:09');
+INSERT INTO `t_order_position` VALUES (12555, 2, 2666, 203, '109.41099413229124', '24.30907803153753', '110.0', '13.0', '2020-09-04 15:48:21');
+INSERT INTO `t_order_position` VALUES (12556, 2, 2666, 203, '109.41017729946891', '24.309144811457234', '110.0', '12.0', '2020-09-04 15:48:29');
+INSERT INTO `t_order_position` VALUES (12557, 2, 2666, 203, '109.40959382342784', '24.30912822686375', '110.0', '15.0', '2020-09-04 15:48:39');
+INSERT INTO `t_order_position` VALUES (12558, 2, 2666, 203, '109.40896032205279', '24.309211601687718', '110.0', '15.0', '2020-09-04 15:48:49');
+INSERT INTO `t_order_position` VALUES (12559, 2, 2666, 203, '109.4082934548905', '24.30926163752087', '118.0', '15.0', '2020-09-04 15:48:59');
+INSERT INTO `t_order_position` VALUES (12560, 2, 2666, 203, '109.40754321161856', '24.309461611142634', '124.0', '15.0', '2020-09-04 15:49:09');
+INSERT INTO `t_order_position` VALUES (12561, 2, 2666, 203, '109.40679295835187', '24.309961469904565', '136.0', '15.0', '2020-09-04 15:49:19');
+INSERT INTO `t_order_position` VALUES (12562, 2, 2666, 203, '109.40635946776183', '24.31027803545565', '140.0', '15.0', '2020-09-04 15:49:29');
+INSERT INTO `t_order_position` VALUES (12563, 2, 2666, 203, '109.40577590964473', '24.310727879357728', '142.0', '15.0', '2020-09-04 15:49:39');
+INSERT INTO `t_order_position` VALUES (12564, 2, 2666, 203, '109.405409107911', '24.31126103204842', '152.0', '15.0', '2020-09-04 15:49:50');
+INSERT INTO `t_order_position` VALUES (12565, 2, 2667, 203, '109.40517569269691', '24.311727542765542', '0.0', '15.0', '2020-09-04 15:57:10');
+INSERT INTO `t_order_position` VALUES (12566, 2, 2674, 54, '109.37196901530656', '24.315601936020343', '60.0', '15.0', '2020-09-05 09:08:03');
+INSERT INTO `t_order_position` VALUES (12567, 2, 2674, 54, '109.37248663983402', '24.315585951603424', '58.0', '15.0', '2020-09-05 09:08:18');
+INSERT INTO `t_order_position` VALUES (12568, 2, 2674, 54, '109.37268697356801', '24.314986389413104', '118.0', '15.0', '2020-09-05 09:08:38');
+INSERT INTO `t_order_position` VALUES (12569, 2, 2674, 54, '109.37265355159289', '24.314519817903722', '118.0', '15.0', '2020-09-05 09:08:48');
+INSERT INTO `t_order_position` VALUES (12570, 2, 2674, 54, '109.37257003447624', '24.314003196377385', '120.0', '15.0', '2020-09-05 09:08:58');
+INSERT INTO `t_order_position` VALUES (12571, 2, 2674, 54, '109.37250321458032', '24.313486596567465', '122.0', '15.0', '2020-09-05 09:09:08');
+INSERT INTO `t_order_position` VALUES (12572, 2, 2674, 54, '109.3724530920154', '24.31297001857213', '120.0', '15.0', '2020-09-05 09:09:19');
+INSERT INTO `t_order_position` VALUES (12573, 2, 2674, 54, '109.37253660750429', '24.313453316566466', '6.0', '15.0', '2020-09-05 09:09:49');
+INSERT INTO `t_order_position` VALUES (12574, 2, 2674, 54, '109.37267022070809', '24.31403664974747', '10.0', '15.0', '2020-09-05 09:09:59');
+INSERT INTO `t_order_position` VALUES (12575, 2, 2674, 54, '109.37280384403664', '24.314803261608777', '8.0', '15.0', '2020-09-05 09:10:09');
+INSERT INTO `t_order_position` VALUES (12576, 2, 2674, 54, '109.37285397089428', '24.315403148460238', '14.0', '15.0', '2020-09-05 09:10:29');
+INSERT INTO `t_order_position` VALUES (12577, 2, 2674, 54, '109.37333820286717', '24.315670357428704', '50.0', '15.0', '2020-09-05 09:10:39');
+INSERT INTO `t_order_position` VALUES (12578, 2, 2674, 54, '109.37390589871225', '24.31573772380082', '54.0', '15.0', '2020-09-05 09:10:44');
+INSERT INTO `t_order_position` VALUES (12579, 2, 2674, 54, '109.3744234916402', '24.31575503300885', '58.0', '15.0', '2020-09-05 09:10:49');
+INSERT INTO `t_order_position` VALUES (12580, 2, 2674, 54, '109.37494107441036', '24.315755672306484', '58.0', '15.0', '2020-09-05 09:10:54');
+INSERT INTO `t_order_position` VALUES (12581, 2, 2674, 54, '109.37550873614322', '24.315773025709593', '60.0', '15.0', '2020-09-05 09:10:59');
+INSERT INTO `t_order_position` VALUES (12582, 2, 2674, 54, '109.37609308005388', '24.315757065494704', '58.0', '15.0', '2020-09-05 09:11:04');
+INSERT INTO `t_order_position` VALUES (12583, 2, 2674, 54, '109.37664402372023', '24.315774378813817', '60.0', '15.0', '2020-09-05 09:11:09');
+INSERT INTO `t_order_position` VALUES (12584, 2, 2674, 54, '109.3771782608271', '24.31577500142788', '58.0', '15.0', '2020-09-05 09:11:14');
+INSERT INTO `t_order_position` VALUES (12585, 2, 2674, 54, '109.37816323442395', '24.315792787002547', '56.0', '15.0', '2020-09-05 09:11:24');
+INSERT INTO `t_order_position` VALUES (12586, 2, 2674, 54, '109.37873083257416', '24.315843405477242', '56.0', '15.0', '2020-09-05 09:11:34');
+INSERT INTO `t_order_position` VALUES (12587, 2, 2674, 54, '109.37938188494574', '24.315877442242044', '58.0', '15.0', '2020-09-05 09:12:00');
+INSERT INTO `t_order_position` VALUES (12588, 2, 2674, 54, '109.38031669978064', '24.315895103416423', '58.0', '15.0', '2020-09-05 09:12:10');
+INSERT INTO `t_order_position` VALUES (12589, 2, 2674, 54, '109.38088424723102', '24.315862372326325', '58.0', '15.0', '2020-09-05 09:12:15');
+INSERT INTO `t_order_position` VALUES (12590, 2, 2674, 54, '109.38141840010613', '24.315862919806897', '58.0', '15.0', '2020-09-05 09:12:20');
+INSERT INTO `t_order_position` VALUES (12591, 2, 2674, 54, '109.38195254196484', '24.315863457452384', '60.0', '15.0', '2020-09-05 09:12:25');
+INSERT INTO `t_order_position` VALUES (12592, 2, 2674, 54, '109.3825200564976', '24.3158806795723', '56.0', '15.0', '2020-09-05 09:12:30');
+INSERT INTO `t_order_position` VALUES (12593, 2, 2674, 54, '109.38342138237478', '24.315998178520253', '36.0', '15.0', '2020-09-05 09:12:40');
+INSERT INTO `t_order_position` VALUES (12594, 2, 2674, 54, '109.38402227409428', '24.316515254373503', '32.0', '15.0', '2020-09-05 09:12:50');
+INSERT INTO `t_order_position` VALUES (12595, 2, 2674, 54, '109.38463984329168', '24.317065656068827', '30.0', '15.0', '2020-09-05 09:13:10');
+INSERT INTO `t_order_position` VALUES (12596, 2, 2674, 54, '109.38502373428379', '24.31748254359353', '146.0', '15.0', '2020-09-05 09:13:20');
+INSERT INTO `t_order_position` VALUES (12597, 2, 2674, 54, '109.38455643719112', '24.31781535972272', '130.0', '15.0', '2020-09-05 09:13:30');
+INSERT INTO `t_order_position` VALUES (12598, 2, 2674, 54, '109.38372194964094', '24.318297783012873', '130.0', '15.0', '2020-09-05 09:13:40');
+INSERT INTO `t_order_position` VALUES (12599, 2, 2674, 54, '109.38325462518866', '24.318580592213827', '132.0', '15.0', '2020-09-05 09:13:45');
+INSERT INTO `t_order_position` VALUES (12600, 2, 2674, 54, '109.38253693042043', '24.31899644445044', '130.0', '15.0', '2020-09-05 09:13:55');
+INSERT INTO `t_order_position` VALUES (12601, 2, 2674, 54, '109.3818692899425', '24.319395667109642', '134.0', '15.0', '2020-09-05 09:14:16');
+INSERT INTO `t_order_position` VALUES (12602, 2, 2674, 54, '109.38130175320832', '24.319245137865998', '142.0', '15.0', '2020-09-05 09:14:36');
+INSERT INTO `t_order_position` VALUES (12603, 2, 2674, 54, '109.38083435328575', '24.31899473080315', '114.0', '15.0', '2020-09-05 09:14:46');
+INSERT INTO `t_order_position` VALUES (12604, 2, 2674, 54, '109.38030019136829', '24.31904415798991', '120.0', '15.0', '2020-09-05 09:14:56');
+INSERT INTO `t_order_position` VALUES (12605, 2, 2674, 54, '109.37971594007328', '24.3191101835669', '122.0', '15.0', '2020-09-05 09:15:11');
+INSERT INTO `t_order_position` VALUES (12606, 2, 2674, 54, '109.38026680668061', '24.319060784561792', '62.0', '15.0', '2020-09-05 09:16:26');
+INSERT INTO `t_order_position` VALUES (12607, 2, 2674, 54, '109.38100128244355', '24.31907821211596', '44.0', '15.0', '2020-09-05 09:16:41');
+INSERT INTO `t_order_position` VALUES (12608, 2, 2674, 54, '109.38146868424644', '24.319411925425417', '0.0', '15.0', '2020-09-05 09:17:06');
+INSERT INTO `t_order_position` VALUES (12609, 2, 2674, 54, '109.3808844863027', '24.31994450426543', '134.0', '15.0', '2020-09-05 09:17:47');
+INSERT INTO `t_order_position` VALUES (12610, 2, 2674, 54, '109.38030027332618', '24.320443748064093', '140.0', '15.0', '2020-09-05 09:17:57');
+INSERT INTO `t_order_position` VALUES (12611, 2, 2674, 54, '109.37981620731239', '24.32095974966093', '144.0', '15.0', '2020-09-05 09:18:07');
+INSERT INTO `t_order_position` VALUES (12612, 2, 2674, 54, '109.37931544293033', '24.3215423726836', '142.0', '15.0', '2020-09-05 09:18:17');
+INSERT INTO `t_order_position` VALUES (12613, 2, 2674, 54, '109.37884805567658', '24.322108362620607', '140.0', '15.0', '2020-09-05 09:18:27');
+INSERT INTO `t_order_position` VALUES (12614, 2, 2674, 54, '109.37831389000308', '24.322774241808528', '152.0', '15.0', '2020-09-05 09:18:37');
+INSERT INTO `t_order_position` VALUES (12615, 2, 2674, 54, '109.37787988777302', '24.323573520444466', '156.0', '15.0', '2020-09-05 09:18:47');
+INSERT INTO `t_order_position` VALUES (12616, 2, 2674, 54, '109.37774636989147', '24.324206518598658', '2.0', '15.0', '2020-09-05 09:18:57');
+INSERT INTO `t_order_position` VALUES (12617, 2, 2674, 54, '109.37776309257386', '24.324689731177415', '0.0', '15.0', '2020-09-05 09:19:07');
+INSERT INTO `t_order_position` VALUES (12618, 2, 2674, 54, '109.37769634805608', '24.32525615815482', '162.0', '15.0', '2020-09-05 09:20:33');
+INSERT INTO `t_order_position` VALUES (12619, 2, 2674, 54, '109.37762962775356', '24.326239131939595', '166.0', '15.0', '2020-09-05 09:20:43');
+INSERT INTO `t_order_position` VALUES (12620, 2, 2674, 54, '109.37761296544859', '24.326788954717692', '164.0', '15.0', '2020-09-05 09:20:48');
+INSERT INTO `t_order_position` VALUES (12621, 2, 2674, 54, '109.37757960960357', '24.327355420515598', '166.0', '15.0', '2020-09-05 09:20:53');
+INSERT INTO `t_order_position` VALUES (12622, 2, 2674, 54, '109.37756294921807', '24.327938567534066', '166.0', '15.0', '2020-09-05 09:20:58');
+INSERT INTO `t_order_position` VALUES (12623, 2, 2674, 54, '109.37754628882233', '24.32852171481105', '166.0', '15.0', '2020-09-05 09:21:03');
+INSERT INTO `t_order_position` VALUES (12624, 2, 2674, 54, '109.37754632880277', '24.329204852921333', '166.0', '15.0', '2020-09-05 09:21:08');
+INSERT INTO `t_order_position` VALUES (12625, 2, 2674, 54, '109.37756306525937', '24.329921334349113', '166.0', '15.0', '2020-09-05 09:21:13');
+INSERT INTO `t_order_position` VALUES (12626, 2, 2674, 54, '109.37754641071442', '24.33060445410279', '166.0', '15.0', '2020-09-05 09:21:18');
+INSERT INTO `t_order_position` VALUES (12627, 2, 2674, 54, '109.3775464516705', '24.331304255274688', '166.0', '15.0', '2020-09-05 09:21:23');
+INSERT INTO `t_order_position` VALUES (12628, 2, 2674, 54, '109.37752979614012', '24.331970713821605', '0.0', '15.0', '2020-09-05 09:21:28');
+INSERT INTO `t_order_position` VALUES (12629, 2, 2674, 54, '109.37751313767406', '24.33258718684847', '0.0', '15.0', '2020-09-05 09:21:33');
+INSERT INTO `t_order_position` VALUES (12630, 2, 2674, 54, '109.377546563813', '24.33322037952005', '4.0', '15.0', '2020-09-05 09:21:38');
+INSERT INTO `t_order_position` VALUES (12631, 2, 2674, 54, '109.3775966766172', '24.333720295806998', '6.0', '15.0', '2020-09-05 09:21:43');
+INSERT INTO `t_order_position` VALUES (12632, 2, 2674, 54, '109.37763011533384', '24.334570094688907', '166.0', '15.0', '2020-09-05 09:21:53');
+INSERT INTO `t_order_position` VALUES (12633, 2, 2674, 54, '109.3777303268985', '24.335336660294278', '34.0', '15.0', '2020-09-05 09:22:03');
+INSERT INTO `t_order_position` VALUES (12634, 2, 2674, 54, '109.3786986085703', '24.335720973820397', '58.0', '15.0', '2020-09-05 09:22:13');
+INSERT INTO `t_order_position` VALUES (12635, 2, 2674, 54, '109.37933296849366', '24.335754993690898', '58.0', '15.0', '2020-09-05 09:22:18');
+INSERT INTO `t_order_position` VALUES (12636, 2, 2674, 54, '109.37990054017163', '24.335772266945984', '60.0', '15.0', '2020-09-05 09:22:28');
+INSERT INTO `t_order_position` VALUES (12637, 2, 2674, 54, '109.38081864444902', '24.335789894746828', '62.0', '15.0', '2020-09-05 09:23:04');
+INSERT INTO `t_order_position` VALUES (12638, 2, 2674, 54, '109.38138618311328', '24.3357904774182', '64.0', '15.0', '2020-09-05 09:23:08');
+INSERT INTO `t_order_position` VALUES (12639, 2, 2674, 54, '109.38212062351546', '24.3357412289872', '58.0', '15.0', '2020-09-05 09:23:18');
+INSERT INTO `t_order_position` VALUES (12640, 2, 2674, 54, '109.38290511927292', '24.33574199607122', '60.0', '15.0', '2020-09-05 09:23:29');
+INSERT INTO `t_order_position` VALUES (12641, 2, 2674, 54, '109.38390656789055', '24.33574294377651', '58.0', '15.0', '2020-09-05 09:23:39');
+INSERT INTO `t_order_position` VALUES (12642, 2, 2674, 54, '109.3847076959614', '24.335710352158785', '60.0', '15.0', '2020-09-05 09:23:49');
+INSERT INTO `t_order_position` VALUES (12643, 2, 2674, 54, '109.38572575924765', '24.335677925385433', '64.0', '15.0', '2020-09-05 09:23:59');
+INSERT INTO `t_order_position` VALUES (12644, 2, 2674, 54, '109.38629318606407', '24.3356617470282', '60.0', '15.0', '2020-09-05 09:24:04');
+INSERT INTO `t_order_position` VALUES (12645, 2, 2674, 54, '109.38691066590644', '24.33566225983313', '62.0', '15.0', '2020-09-05 09:24:09');
+INSERT INTO `t_order_position` VALUES (12646, 2, 2674, 54, '109.38766163155755', '24.33562954039858', '60.0', '15.0', '2020-09-05 09:24:14');
+INSERT INTO `t_order_position` VALUES (12647, 2, 2674, 54, '109.38847932490263', '24.33563017460355', '60.0', '15.0', '2020-09-05 09:24:19');
+INSERT INTO `t_order_position` VALUES (12648, 2, 2674, 54, '109.38933036142534', '24.3355974837776', '62.0', '15.0', '2020-09-05 09:24:24');
+INSERT INTO `t_order_position` VALUES (12649, 2, 2674, 54, '109.39028148440075', '24.335581496604856', '60.0', '15.0', '2020-09-05 09:24:29');
+INSERT INTO `t_order_position` VALUES (12650, 2, 2674, 54, '109.391199200454', '24.335615438552498', '60.0', '15.0', '2020-09-05 09:24:34');
+INSERT INTO `t_order_position` VALUES (12651, 2, 2674, 54, '109.39200008257731', '24.33558262698686', '60.0', '15.0', '2020-09-05 09:24:39');
+INSERT INTO `t_order_position` VALUES (12652, 2, 2674, 54, '109.39271751725774', '24.335583064572827', '60.0', '15.0', '2020-09-05 09:24:44');
+INSERT INTO `t_order_position` VALUES (12653, 2, 2674, 54, '109.39340156065306', '24.335566800786307', '62.0', '15.0', '2020-09-05 09:24:49');
+INSERT INTO `t_order_position` VALUES (12654, 2, 2674, 54, '109.39403553337672', '24.33555049116968', '60.0', '15.0', '2020-09-05 09:24:54');
+INSERT INTO `t_order_position` VALUES (12655, 2, 2674, 54, '109.39461944056218', '24.335550801434977', '58.0', '15.0', '2020-09-05 09:24:59');
+INSERT INTO `t_order_position` VALUES (12656, 2, 2674, 54, '109.39522001475596', '24.33555110618768', '60.0', '15.0', '2020-09-05 09:25:04');
+INSERT INTO `t_order_position` VALUES (12657, 2, 2674, 54, '109.39580389064469', '24.335551388423717', '60.0', '15.0', '2020-09-05 09:25:09');
+INSERT INTO `t_order_position` VALUES (12658, 2, 2674, 54, '109.39638775098831', '24.33555165673561', '60.0', '15.0', '2020-09-05 09:25:14');
+INSERT INTO `t_order_position` VALUES (12659, 2, 2674, 54, '109.39715508652993', '24.33555198808317', '60.0', '15.0', '2020-09-05 09:25:19');
+INSERT INTO `t_order_position` VALUES (12660, 2, 2674, 54, '109.39785567353714', '24.33555226938074', '58.0', '15.0', '2020-09-05 09:25:24');
+INSERT INTO `t_order_position` VALUES (12661, 2, 2674, 54, '109.39847283750267', '24.335535838309703', '60.0', '15.0', '2020-09-05 09:25:33');
+INSERT INTO `t_order_position` VALUES (12662, 2, 2674, 54, '109.39912334448704', '24.33555272649774', '60.0', '15.0', '2020-09-05 09:25:35');
+INSERT INTO `t_order_position` VALUES (12663, 2, 2674, 54, '109.4046768479085', '24.33552060325346', '60.0', '15.0', '2020-09-05 09:26:24');
+INSERT INTO `t_order_position` VALUES (12664, 2, 2674, 54, '109.40529381272779', '24.33552065478599', '62.0', '15.0', '2020-09-05 09:26:29');
+INSERT INTO `t_order_position` VALUES (12665, 2, 2674, 54, '109.40584406011104', '24.335470700782203', '64.0', '15.0', '2020-09-05 09:26:34');
+INSERT INTO `t_order_position` VALUES (12666, 2, 2674, 54, '109.40639429274674', '24.335420733555864', '64.0', '15.0', '2020-09-05 09:26:39');
+INSERT INTO `t_order_position` VALUES (12667, 2, 2674, 54, '109.40692783843764', '24.335387415093017', '62.0', '15.0', '2020-09-05 09:26:44');
+INSERT INTO `t_order_position` VALUES (12668, 2, 2674, 54, '109.4074446964972', '24.33533742255136', '64.0', '15.0', '2020-09-05 09:26:49');
+INSERT INTO `t_order_position` VALUES (12669, 2, 2674, 54, '109.40842835953895', '24.33527072959605', '64.0', '15.0', '2020-09-05 09:27:00');
+INSERT INTO `t_order_position` VALUES (12670, 2, 2674, 54, '109.40916190185087', '24.335120710328695', '80.0', '15.0', '2020-09-05 09:27:09');
+INSERT INTO `t_order_position` VALUES (12671, 2, 2674, 54, '109.40969536905587', '24.334987354834663', '34.0', '15.0', '2020-09-05 09:27:24');
+INSERT INTO `t_order_position` VALUES (12672, 2, 2674, 54, '109.40971209575825', '24.33593708632442', '2.0', '15.0', '2020-09-05 09:27:39');
+INSERT INTO `t_order_position` VALUES (12673, 2, 2674, 54, '109.40974547173788', '24.336520252240792', '2.0', '15.0', '2020-09-05 09:27:59');
+INSERT INTO `t_order_position` VALUES (12674, 2, 2674, 54, '109.40979552238048', '24.33717006431136', '4.0', '15.0', '2020-09-05 09:27:59');
+INSERT INTO `t_order_position` VALUES (12675, 2, 2674, 54, '109.40982889430474', '24.337686582592063', '166.0', '15.0', '2020-09-05 09:28:00');
+INSERT INTO `t_order_position` VALUES (12676, 2, 2674, 54, '109.40982894328299', '24.338519683968347', '6.0', '15.0', '2020-09-05 09:28:05');
+INSERT INTO `t_order_position` VALUES (12677, 2, 2674, 54, '109.40991234101786', '24.339269464738702', '4.0', '15.0', '2020-09-05 09:28:25');
+INSERT INTO `t_order_position` VALUES (12678, 2, 2674, 54, '109.40997907365205', '24.34011922025362', '2.0', '15.0', '2020-09-05 09:28:35');
+INSERT INTO `t_order_position` VALUES (12679, 2, 2674, 54, '109.4099957736741', '24.340619079717793', '4.0', '15.0', '2020-09-05 09:28:40');
+INSERT INTO `t_order_position` VALUES (12680, 2, 2674, 54, '109.41002914233034', '24.34108561293571', '0.0', '15.0', '2020-09-05 09:28:45');
+INSERT INTO `t_order_position` VALUES (12681, 2, 2674, 54, '109.41006251582962', '24.34163545665321', '4.0', '15.0', '2020-09-05 09:28:50');
+INSERT INTO `t_order_position` VALUES (12682, 2, 2674, 54, '109.4100958853556', '24.34211865223827', '4.0', '15.0', '2020-09-05 09:28:55');
+INSERT INTO `t_order_position` VALUES (12683, 2, 2674, 54, '109.41014593415376', '24.342751804379287', '2.0', '15.0', '2020-09-05 09:29:10');
+INSERT INTO `t_order_position` VALUES (12684, 2, 2674, 54, '109.41017930550157', '24.343268324473083', '4.0', '15.0', '2020-09-05 09:29:20');
+INSERT INTO `t_order_position` VALUES (12685, 2, 2674, 54, '109.41022935017513', '24.343834828599658', '2.0', '15.0', '2020-09-05 09:29:45');
+INSERT INTO `t_order_position` VALUES (12686, 2, 2674, 54, '109.41032941466042', '24.344551284367782', '4.0', '15.0', '2020-09-05 09:29:55');
+INSERT INTO `t_order_position` VALUES (12687, 2, 2674, 54, '109.41037945602362', '24.345067802387494', '6.0', '15.0', '2020-09-05 09:30:00');
+INSERT INTO `t_order_position` VALUES (12688, 2, 2674, 54, '109.4104461743831', '24.34570095281099', '4.0', '15.0', '2020-09-05 09:30:05');
+INSERT INTO `t_order_position` VALUES (12689, 2, 2674, 54, '109.41049622721282', '24.346417416720776', '2.0', '15.0', '2020-09-05 09:30:10');
+INSERT INTO `t_order_position` VALUES (12690, 2, 2674, 54, '109.41052960679976', '24.34708389717486', '14.0', '15.0', '2020-09-05 09:30:15');
+INSERT INTO `t_order_position` VALUES (12691, 2, 2674, 54, '109.41071300937062', '24.34761705586562', '40.0', '15.0', '2020-09-05 09:30:23');
+INSERT INTO `t_order_position` VALUES (12692, 2, 2674, 54, '109.41119645222231', '24.34791688792406', '56.0', '15.0', '2020-09-05 09:30:25');
+INSERT INTO `t_order_position` VALUES (12693, 2, 2674, 54, '109.41202991668067', '24.347916713795453', '60.0', '15.0', '2020-09-05 09:30:30');
+INSERT INTO `t_order_position` VALUES (12694, 2, 2674, 54, '109.41294668367873', '24.34784983774765', '52.0', '15.0', '2020-09-05 09:30:35');
+INSERT INTO `t_order_position` VALUES (12695, 2, 2674, 54, '109.41378007731743', '24.34788292266017', '58.0', '15.0', '2020-09-05 09:30:40');
+INSERT INTO `t_order_position` VALUES (12696, 2, 2674, 54, '109.41481343570572', '24.34789924465533', '58.0', '15.0', '2020-09-05 09:30:45');
+INSERT INTO `t_order_position` VALUES (12697, 2, 2674, 54, '109.4156634153814', '24.347898928847922', '58.0', '15.0', '2020-09-05 09:30:50');
+INSERT INTO `t_order_position` VALUES (12698, 2, 2674, 54, '109.41661334974165', '24.3478985373841', '60.0', '15.0', '2020-09-05 09:30:55');
+INSERT INTO `t_order_position` VALUES (12699, 2, 2674, 54, '109.41754657441655', '24.347898113167812', '58.0', '15.0', '2020-09-05 09:31:01');
+INSERT INTO `t_order_position` VALUES (12700, 2, 2674, 54, '109.4184797562566', '24.347914311810968', '58.0', '15.0', '2020-09-05 09:31:06');
+INSERT INTO `t_order_position` VALUES (12701, 2, 2674, 54, '109.41946288250593', '24.3479304430862', '60.0', '15.0', '2020-09-05 09:31:12');
+INSERT INTO `t_order_position` VALUES (12702, 2, 2674, 54, '109.4204292971958', '24.34792987864726', '60.0', '15.0', '2020-09-05 09:31:16');
+INSERT INTO `t_order_position` VALUES (12703, 2, 2674, 54, '109.42141232497538', '24.347912599035862', '60.0', '15.0', '2020-09-05 09:31:23');
+INSERT INTO `t_order_position` VALUES (12704, 2, 2674, 54, '109.42232866390627', '24.347911984151672', '58.0', '15.0', '2020-09-05 09:31:39');
+INSERT INTO `t_order_position` VALUES (12705, 2, 2674, 54, '109.4232283010298', '24.347911343585594', '58.0', '15.0', '2020-09-05 09:31:39');
+INSERT INTO `t_order_position` VALUES (12706, 2, 2674, 54, '109.42414455823786', '24.34794397797154', '58.0', '15.0', '2020-09-05 09:31:39');
+INSERT INTO `t_order_position` VALUES (12707, 2, 2674, 54, '109.42512740239165', '24.34792653367208', '62.0', '15.0', '2020-09-05 09:31:41');
+INSERT INTO `t_order_position` VALUES (12708, 2, 2674, 54, '109.42612685331346', '24.34787570725727', '58.0', '15.0', '2020-09-05 09:31:46');
+INSERT INTO `t_order_position` VALUES (12709, 2, 2674, 54, '109.42702631904804', '24.34787491299245', '58.0', '15.0', '2020-09-05 09:31:51');
+INSERT INTO `t_order_position` VALUES (12710, 2, 2674, 54, '109.42784246693046', '24.34789082307765', '58.0', '15.0', '2020-09-05 09:31:57');
+INSERT INTO `t_order_position` VALUES (12711, 2, 2674, 54, '109.42845872010025', '24.347906897618113', '60.0', '15.0', '2020-09-05 09:32:01');
+INSERT INTO `t_order_position` VALUES (12712, 2, 2674, 54, '109.42912491645173', '24.34788958113747', '60.0', '15.0', '2020-09-05 09:32:06');
+INSERT INTO `t_order_position` VALUES (12713, 2, 2674, 54, '109.42990767113712', '24.34790544922906', '58.0', '15.0', '2020-09-05 09:32:37');
+INSERT INTO `t_order_position` VALUES (12714, 2, 2674, 54, '109.43042393790343', '24.34788824842716', '60.0', '15.0', '2020-09-05 09:32:38');
+INSERT INTO `t_order_position` VALUES (12715, 2, 2674, 54, '109.43120664227153', '24.34790407141362', '60.0', '15.0', '2020-09-05 09:32:41');
+INSERT INTO `t_order_position` VALUES (12716, 2, 2674, 54, '109.43200596775189', '24.347903186444192', '58.0', '15.0', '2020-09-05 09:32:51');
+INSERT INTO `t_order_position` VALUES (12717, 2, 2674, 54, '109.43312164433644', '24.347968552784586', '58.0', '15.0', '2020-09-05 09:33:01');
+INSERT INTO `t_order_position` VALUES (12718, 2, 2674, 54, '109.43367112844582', '24.347901252487564', '0.0', '15.0', '2020-09-05 09:33:21');
+INSERT INTO `t_order_position` VALUES (12719, 2, 2674, 54, '109.4344537071792', '24.347900301596617', '60.0', '15.0', '2020-09-05 09:34:17');
+INSERT INTO `t_order_position` VALUES (12720, 2, 2674, 54, '109.43511970916016', '24.347916133476303', '56.0', '15.0', '2020-09-05 09:34:27');
+INSERT INTO `t_order_position` VALUES (12721, 2, 2674, 54, '109.43580233984643', '24.347948586783627', '58.0', '15.0', '2020-09-05 09:34:42');
+INSERT INTO `t_order_position` VALUES (12722, 2, 2674, 54, '109.43658483682243', '24.34793090136117', '60.0', '15.0', '2020-09-05 09:34:53');
+INSERT INTO `t_order_position` VALUES (12723, 2, 2674, 54, '109.43720082710068', '24.347963401591077', '60.0', '15.0', '2020-09-05 09:34:57');
+INSERT INTO `t_order_position` VALUES (12724, 2, 2674, 54, '109.43773356301553', '24.34802932438568', '110.0', '15.0', '2020-09-05 09:35:07');
+INSERT INTO `t_order_position` VALUES (12725, 2, 2676, 323, '109.41371292232138', '24.339635201504773', '104.0', '15.0', '2020-09-05 10:48:50');
+INSERT INTO `t_order_position` VALUES (12726, 2, 2676, 323, '109.4138628973058', '24.33908530808516', '106.0', '15.0', '2020-09-05 10:49:05');
+INSERT INTO `t_order_position` VALUES (12727, 2, 2676, 323, '109.4139295374717', '24.338585426216007', '104.0', '15.0', '2020-09-05 10:49:16');
+INSERT INTO `t_order_position` VALUES (12728, 2, 2676, 323, '109.41387956667481', '24.339118626998747', '156.0', '15.0', '2020-09-05 10:50:11');
+INSERT INTO `t_order_position` VALUES (12729, 2, 2676, 323, '109.41362960893014', '24.34005177787132', '164.0', '15.0', '2020-09-05 10:50:21');
+INSERT INTO `t_order_position` VALUES (12730, 2, 2676, 323, '109.41349629992396', '24.340601665267883', '164.0', '15.0', '2020-09-05 10:50:26');
+INSERT INTO `t_order_position` VALUES (12731, 2, 2676, 323, '109.41346301049526', '24.341384792140556', '164.0', '15.0', '2020-09-05 10:50:31');
+INSERT INTO `t_order_position` VALUES (12732, 2, 2676, 323, '109.41344637996527', '24.342017955884845', '164.0', '15.0', '2020-09-05 10:50:36');
+INSERT INTO `t_order_position` VALUES (12733, 2, 2676, 323, '109.41339641383769', '24.342651129593097', '164.0', '15.0', '2020-09-05 10:50:41');
+INSERT INTO `t_order_position` VALUES (12734, 2, 2676, 323, '109.4133464436665', '24.343217655127216', '164.0', '15.0', '2020-09-05 10:50:46');
+INSERT INTO `t_order_position` VALUES (12735, 2, 2676, 323, '109.41332980324287', '24.343684198687793', '0.0', '15.0', '2020-09-05 10:50:51');
+INSERT INTO `t_order_position` VALUES (12736, 2, 2676, 323, '109.41326317969032', '24.34450066095219', '6.0', '15.0', '2020-09-05 10:51:11');
+INSERT INTO `t_order_position` VALUES (12737, 2, 2676, 323, '109.41336323886502', '24.345383724805185', '10.0', '15.0', '2020-09-05 10:51:21');
+INSERT INTO `t_order_position` VALUES (12738, 2, 2676, 323, '109.41344660627033', '24.34586690245729', '10.0', '15.0', '2020-09-05 10:51:26');
+INSERT INTO `t_order_position` VALUES (12739, 2, 2676, 323, '109.4138633469756', '24.346733208501746', '14.0', '15.0', '2020-09-05 10:51:36');
+INSERT INTO `t_order_position` VALUES (12740, 2, 2676, 323, '109.4141800675097', '24.347449580589327', '22.0', '15.0', '2020-09-05 10:51:46');
+INSERT INTO `t_order_position` VALUES (12741, 2, 2676, 323, '109.41479676221738', '24.347782615405986', '58.0', '15.0', '2020-09-05 10:51:57');
+INSERT INTO `t_order_position` VALUES (12742, 2, 2676, 323, '109.4153300894405', '24.34781574577073', '58.0', '15.0', '2020-09-05 10:52:02');
+INSERT INTO `t_order_position` VALUES (12743, 2, 2676, 323, '109.41589673189375', '24.347815525667105', '52.0', '15.0', '2020-09-05 10:52:07');
+INSERT INTO `t_order_position` VALUES (12744, 2, 2676, 323, '109.41666334503087', '24.347898515654077', '56.0', '15.0', '2020-09-05 10:52:12');
+INSERT INTO `t_order_position` VALUES (12745, 2, 2676, 323, '109.41741326026738', '24.347914838336163', '58.0', '15.0', '2020-09-05 10:52:17');
+INSERT INTO `t_order_position` VALUES (12746, 2, 2676, 323, '109.41821313762605', '24.34791444825614', '58.0', '15.0', '2020-09-05 10:52:22');
+INSERT INTO `t_order_position` VALUES (12747, 2, 2676, 323, '109.41907963509067', '24.34791399307266', '60.0', '15.0', '2020-09-05 10:52:27');
+INSERT INTO `t_order_position` VALUES (12748, 2, 2676, 323, '109.41994609377097', '24.347896841819104', '58.0', '15.0', '2020-09-05 10:52:32');
+INSERT INTO `t_order_position` VALUES (12749, 2, 2676, 323, '109.42081251660431', '24.347912980976066', '58.0', '15.0', '2020-09-05 10:52:37');
+INSERT INTO `t_order_position` VALUES (12750, 2, 2676, 323, '109.42174554500146', '24.347929041988003', '60.0', '15.0', '2020-09-05 10:52:42');
+INSERT INTO `t_order_position` VALUES (12751, 2, 2676, 323, '109.42267852664521', '24.34789507722041', '62.0', '15.0', '2020-09-05 10:52:47');
+INSERT INTO `t_order_position` VALUES (12752, 2, 2676, 323, '109.4236114654886', '24.347877735348604', '58.0', '15.0', '2020-09-05 10:52:52');
+INSERT INTO `t_order_position` VALUES (12753, 2, 2676, 323, '109.42456102101997', '24.347893665382127', '60.0', '15.0', '2020-09-05 10:52:57');
+INSERT INTO `t_order_position` VALUES (12754, 2, 2676, 323, '109.42552718798169', '24.347892878762305', '60.0', '15.0', '2020-09-05 10:53:02');
+INSERT INTO `t_order_position` VALUES (12755, 2, 2676, 323, '109.42644333758957', '24.347892094089882', '60.0', '15.0', '2020-09-05 10:53:07');
+INSERT INTO `t_order_position` VALUES (12756, 2, 2676, 323, '109.42712625816876', '24.34789148466326', '58.0', '15.0', '2020-09-05 10:53:12');
+INSERT INTO `t_order_position` VALUES (12757, 2, 2676, 323, '109.42787577932243', '24.34790745390848', '60.0', '15.0', '2020-09-05 10:53:22');
+INSERT INTO `t_order_position` VALUES (12758, 2, 2676, 323, '109.42859195839446', '24.34785678185599', '60.0', '15.0', '2020-09-05 10:53:57');
+INSERT INTO `t_order_position` VALUES (12759, 2, 2676, 323, '109.4296245499846', '24.347889077429315', '58.0', '15.0', '2020-09-05 10:54:07');
+INSERT INTO `t_order_position` VALUES (12760, 2, 2676, 323, '109.43014082594578', '24.34790520743586', '58.0', '15.0', '2020-09-05 10:54:12');
+INSERT INTO `t_order_position` VALUES (12761, 2, 2676, 323, '109.43082362000918', '24.34788782330037', '62.0', '15.0', '2020-09-05 10:54:22');
+INSERT INTO `t_order_position` VALUES (12762, 2, 2676, 323, '109.43148973933134', '24.347887099050958', '60.0', '15.0', '2020-09-05 10:55:48');
+INSERT INTO `t_order_position` VALUES (12763, 2, 2676, 323, '109.4324555725719', '24.347869351954913', '62.0', '15.0', '2020-09-05 10:55:58');
+INSERT INTO `t_order_position` VALUES (12764, 2, 2676, 323, '109.43308833372929', '24.347835294569002', '58.0', '15.0', '2020-09-05 10:56:03');
+INSERT INTO `t_order_position` VALUES (12765, 2, 2676, 323, '109.43375437802861', '24.347817841799795', '62.0', '15.0', '2020-09-05 10:56:13');
+INSERT INTO `t_order_position` VALUES (12766, 2, 2676, 323, '109.43410400497608', '24.347167594920165', '114.0', '15.0', '2020-09-05 10:56:28');
+INSERT INTO `t_order_position` VALUES (12767, 2, 2676, 323, '109.43410396975308', '24.34656775764772', '116.0', '15.0', '2020-09-05 10:56:38');
+INSERT INTO `t_order_position` VALUES (12768, 2, 2676, 323, '109.4340872898162', '24.346067913735315', '112.0', '15.0', '2020-09-05 10:56:48');
+INSERT INTO `t_order_position` VALUES (12769, 2, 2676, 323, '109.4340705883407', '24.345201503238478', '114.0', '15.0', '2020-09-05 10:56:58');
+INSERT INTO `t_order_position` VALUES (12770, 2, 2676, 323, '109.4340372342697', '24.344301789339397', '114.0', '15.0', '2020-09-05 10:57:08');
+INSERT INTO `t_order_position` VALUES (12771, 2, 2676, 323, '109.43402055623547', '24.343835270514184', '112.0', '15.0', '2020-09-05 10:57:13');
+INSERT INTO `t_order_position` VALUES (12772, 2, 2676, 323, '109.43402051220711', '24.343085476011534', '112.0', '15.0', '2020-09-05 10:57:23');
+INSERT INTO `t_order_position` VALUES (12773, 2, 2676, 323, '109.43400382828891', '24.342518985108494', '124.0', '15.0', '2020-09-05 10:57:44');
+INSERT INTO `t_order_position` VALUES (12774, 2, 2676, 323, '109.4341537228105', '24.34318528658567', '4.0', '15.0', '2020-09-05 11:00:55');
+INSERT INTO `t_order_position` VALUES (12775, 2, 2676, 323, '109.4340705022409', '24.343735237228188', '2.0', '15.0', '2020-09-05 11:01:10');
+INSERT INTO `t_order_position` VALUES (12776, 2, 2676, 323, '109.43410383571118', '24.34428504627653', '166.0', '15.0', '2020-09-05 11:01:15');
+INSERT INTO `t_order_position` VALUES (12777, 2, 2676, 323, '109.43412052346164', '24.34491818639985', '166.0', '15.0', '2020-09-05 11:01:20');
+INSERT INTO `t_order_position` VALUES (12778, 2, 2676, 323, '109.4341039139836', '24.34561801590264', '0.0', '15.0', '2020-09-05 11:01:25');
+INSERT INTO `t_order_position` VALUES (12779, 2, 2676, 323, '109.43410395996895', '24.346401136235503', '0.0', '15.0', '2020-09-05 11:01:30');
+INSERT INTO `t_order_position` VALUES (12780, 2, 2676, 323, '109.43412063989227', '24.346900980272316', '0.0', '15.0', '2020-09-05 11:01:35');
+INSERT INTO `t_order_position` VALUES (12781, 2, 2676, 323, '109.43410403041497', '24.34760081091164', '4.0', '15.0', '2020-09-05 11:01:50');
+INSERT INTO `t_order_position` VALUES (12782, 2, 2676, 323, '109.43486996130613', '24.347916447091208', '56.0', '15.0', '2020-09-05 11:02:05');
+INSERT INTO `t_order_position` VALUES (12783, 2, 2676, 323, '109.43573573997841', '24.347898686166047', '58.0', '15.0', '2020-09-05 11:02:15');
+INSERT INTO `t_order_position` VALUES (12784, 2, 2676, 323, '109.43638504997885', '24.347881178647587', '62.0', '15.0', '2020-09-05 11:02:25');
+INSERT INTO `t_order_position` VALUES (12785, 2, 2676, 323, '109.43713423366768', '24.34794682930637', '60.0', '15.0', '2020-09-05 11:02:55');
+INSERT INTO `t_order_position` VALUES (12786, 2, 2676, 323, '109.43775020871634', '24.3479959771827', '124.0', '15.0', '2020-09-05 11:03:05');
+INSERT INTO `t_order_position` VALUES (12787, 2, 2676, 323, '109.43685121531895', '24.347980533481792', '110.0', '15.0', '2020-09-05 11:03:51');
+INSERT INTO `t_order_position` VALUES (12788, 2, 2676, 323, '109.43626851141279', '24.34793131820048', '114.0', '15.0', '2020-09-05 11:03:56');
+INSERT INTO `t_order_position` VALUES (12789, 2, 2676, 323, '109.43515301255877', '24.347982740101475', '112.0', '15.0', '2020-09-05 11:04:06');
+INSERT INTO `t_order_position` VALUES (12790, 2, 2676, 323, '109.43443705883496', '24.347933646428046', '110.0', '15.0', '2020-09-05 11:04:16');
+INSERT INTO `t_order_position` VALUES (12791, 2, 2676, 323, '109.43370443516882', '24.347984523374627', '110.0', '15.0', '2020-09-05 11:05:11');
+INSERT INTO `t_order_position` VALUES (12792, 2, 2676, 323, '109.433071690148', '24.34796861136999', '114.0', '15.0', '2020-09-05 11:05:16');
+INSERT INTO `t_order_position` VALUES (12793, 2, 2676, 323, '109.4325388398264', '24.3480025537918', '114.0', '15.0', '2020-09-05 11:05:21');
+INSERT INTO `t_order_position` VALUES (12794, 2, 2676, 323, '109.43165627161763', '24.347986887892493', '112.0', '15.0', '2020-09-05 11:06:52');
+INSERT INTO `t_order_position` VALUES (12795, 2, 2676, 323, '109.4308902368416', '24.347954400401512', '112.0', '15.0', '2020-09-05 11:06:57');
+INSERT INTO `t_order_position` VALUES (12796, 2, 2676, 323, '109.43014082692467', '24.34792186959655', '114.0', '15.0', '2020-09-05 11:07:02');
+INSERT INTO `t_order_position` VALUES (12797, 2, 2676, 323, '109.42945800978669', '24.3479392330478', '114.0', '15.0', '2020-09-05 11:07:07');
+INSERT INTO `t_order_position` VALUES (12798, 2, 2676, 323, '109.42857530916312', '24.347956771022915', '112.0', '15.0', '2020-09-05 11:07:17');
+INSERT INTO `t_order_position` VALUES (12799, 2, 2676, 323, '109.42804233751552', '24.347940620838305', '114.0', '15.0', '2020-09-05 11:07:22');
+INSERT INTO `t_order_position` VALUES (12800, 2, 2676, 323, '109.42732613883084', '24.347991275309276', '110.0', '15.0', '2020-09-05 11:07:27');
+INSERT INTO `t_order_position` VALUES (12801, 2, 2676, 323, '109.42654328255942', '24.34795865485424', '112.0', '15.0', '2020-09-05 11:07:32');
+INSERT INTO `t_order_position` VALUES (12802, 2, 2676, 323, '109.42572708169071', '24.347942697256926', '112.0', '15.0', '2020-09-05 11:07:37');
+INSERT INTO `t_order_position` VALUES (12803, 2, 2676, 323, '109.42482755843028', '24.34796010121992', '114.0', '15.0', '2020-09-05 11:07:42');
+INSERT INTO `t_order_position` VALUES (12804, 2, 2676, 323, '109.42384469948553', '24.34797753225521', '114.0', '15.0', '2020-09-05 11:07:47');
+INSERT INTO `t_order_position` VALUES (12805, 2, 2676, 323, '109.42301172838054', '24.347961487614867', '114.0', '15.0', '2020-09-05 11:07:52');
+INSERT INTO `t_order_position` VALUES (12806, 2, 2676, 323, '109.42194547570574', '24.347962232378805', '112.0', '15.0', '2020-09-05 11:07:59');
+INSERT INTO `t_order_position` VALUES (12807, 2, 2676, 323, '109.42084584270556', '24.34796294666613', '112.0', '15.0', '2020-09-05 11:08:02');
+INSERT INTO `t_order_position` VALUES (12808, 2, 2676, 323, '109.41951287160579', '24.34794707708663', '114.0', '15.0', '2020-09-05 11:08:07');
+INSERT INTO `t_order_position` VALUES (12809, 2, 2676, 323, '109.41862973060266', '24.34796422013267', '114.0', '15.0', '2020-09-05 11:08:12');
+INSERT INTO `t_order_position` VALUES (12810, 2, 2676, 323, '109.41752991399305', '24.3479647697308', '114.0', '15.0', '2020-09-05 11:08:17');
+INSERT INTO `t_order_position` VALUES (12811, 2, 2676, 323, '109.41641337026743', '24.34794860965923', '114.0', '15.0', '2020-09-05 11:08:22');
+INSERT INTO `t_order_position` VALUES (12812, 2, 2676, 323, '109.41533009825784', '24.347965705212637', '112.0', '15.0', '2020-09-05 11:08:27');
+INSERT INTO `t_order_position` VALUES (12813, 2, 2676, 323, '109.41433009972953', '24.347932734058624', '114.0', '15.0', '2020-09-05 11:08:32');
+INSERT INTO `t_order_position` VALUES (12814, 2, 2676, 323, '109.41348006815126', '24.34801630972339', '110.0', '15.0', '2020-09-05 11:08:37');
+INSERT INTO `t_order_position` VALUES (12815, 2, 2676, 323, '109.41269667018315', '24.34803318726869', '112.0', '15.0', '2020-09-05 11:08:42');
+INSERT INTO `t_order_position` VALUES (12816, 2, 2676, 323, '109.41177988587314', '24.34800008009691', '110.0', '15.0', '2020-09-05 11:08:47');
+INSERT INTO `t_order_position` VALUES (12817, 2, 2676, 323, '109.41112978140966', '24.34805019780672', '124.0', '15.0', '2020-09-05 11:08:52');
+INSERT INTO `t_order_position` VALUES (12818, 2, 2676, 323, '109.41021293443517', '24.34816698598845', '122.0', '15.0', '2020-09-05 11:09:02');
+INSERT INTO `t_order_position` VALUES (12819, 2, 2676, 323, '109.41032957335979', '24.347250549915152', '116.0', '15.0', '2020-09-05 11:09:12');
+INSERT INTO `t_order_position` VALUES (12820, 2, 2676, 323, '109.41031286773377', '24.346650715134004', '116.0', '15.0', '2020-09-05 11:09:18');
+INSERT INTO `t_order_position` VALUES (12821, 2, 2676, 323, '109.41022947654571', '24.345984242015078', '116.0', '15.0', '2020-09-05 11:09:23');
+INSERT INTO `t_order_position` VALUES (12822, 2, 2676, 323, '109.4102127786744', '24.345517704796933', '114.0', '15.0', '2020-09-05 11:09:28');
+INSERT INTO `t_order_position` VALUES (12823, 2, 2676, 323, '109.41022941874812', '24.34500117649633', '118.0', '15.0', '2020-09-05 11:09:48');
+INSERT INTO `t_order_position` VALUES (12824, 2, 2676, 323, '109.41017936917616', '24.344351361268593', '118.0', '15.0', '2020-09-05 11:09:58');
+INSERT INTO `t_order_position` VALUES (12825, 2, 2676, 323, '109.41009596960129', '24.343551592092286', '116.0', '15.0', '2020-09-05 11:10:08');
+INSERT INTO `t_order_position` VALUES (12826, 2, 2676, 323, '109.41007925692634', '24.342835124306333', '120.0', '15.0', '2020-09-05 11:10:18');
+INSERT INTO `t_order_position` VALUES (12827, 2, 2676, 323, '109.41002921384057', '24.342301944474794', '120.0', '15.0', '2020-09-05 11:10:23');
+INSERT INTO `t_order_position` VALUES (12828, 2, 2676, 323, '109.4099458224635', '24.34165213474471', '118.0', '15.0', '2020-09-05 11:10:28');
+INSERT INTO `t_order_position` VALUES (12829, 2, 2676, 323, '109.40989577904782', '24.341118955128895', '118.0', '15.0', '2020-09-05 11:10:33');
+INSERT INTO `t_order_position` VALUES (12830, 2, 2676, 323, '109.40987907404529', '24.340535785084388', '116.0', '15.0', '2020-09-05 11:10:38');
+INSERT INTO `t_order_position` VALUES (12831, 2, 2676, 323, '109.4098290294853', '24.33998594374953', '120.0', '15.0', '2020-09-05 11:10:43');
+INSERT INTO `t_order_position` VALUES (12832, 2, 2676, 323, '109.40977898676084', '24.339469426639305', '118.0', '15.0', '2020-09-05 11:10:48');
+INSERT INTO `t_order_position` VALUES (12833, 2, 2676, 323, '109.40974561279452', '24.338919583465465', '116.0', '15.0', '2020-09-05 11:10:53');
+INSERT INTO `t_order_position` VALUES (12834, 2, 2676, 323, '109.4097122377938', '24.338353078455107', '120.0', '15.0', '2020-09-05 11:10:58');
+INSERT INTO `t_order_position` VALUES (12835, 2, 2676, 323, '109.40967886077914', '24.337753249607804', '118.0', '15.0', '2020-09-05 11:11:03');
+INSERT INTO `t_order_position` VALUES (12836, 2, 2676, 323, '109.40956212601684', '24.337103444916714', '118.0', '15.0', '2020-09-05 11:11:08');
+INSERT INTO `t_order_position` VALUES (12837, 2, 2676, 323, '109.4095287458166', '24.336453630432672', '118.0', '15.0', '2020-09-05 11:11:13');
+INSERT INTO `t_order_position` VALUES (12838, 2, 2676, 323, '109.40946203031065', '24.335920454019675', '124.0', '15.0', '2020-09-05 11:11:18');
+INSERT INTO `t_order_position` VALUES (12839, 2, 2676, 323, '109.40889517375022', '24.335370665239147', '112.0', '15.0', '2020-09-05 11:11:33');
+INSERT INTO `t_order_position` VALUES (12840, 2, 2676, 323, '109.40796155026644', '24.33543737617603', '112.0', '15.0', '2020-09-05 11:11:43');
+INSERT INTO `t_order_position` VALUES (12841, 2, 2676, 323, '109.40744470335335', '24.335454056490555', '106.0', '15.0', '2020-09-05 11:11:48');
+INSERT INTO `t_order_position` VALUES (12842, 2, 2676, 323, '109.40681112803767', '24.335420738935177', '112.0', '15.0', '2020-09-05 11:11:53');
+INSERT INTO `t_order_position` VALUES (12843, 2, 2676, 323, '109.40596078091963', '24.335520691843577', '110.0', '15.0', '2020-09-05 11:11:58');
+INSERT INTO `t_order_position` VALUES (12844, 2, 2676, 323, '109.40522711667751', '24.335553973999776', '114.0', '15.0', '2020-09-05 11:12:03');
+INSERT INTO `t_order_position` VALUES (12845, 2, 2676, 323, '109.40447675116584', '24.335587230961625', '114.0', '15.0', '2020-09-05 11:12:08');
+INSERT INTO `t_order_position` VALUES (12846, 2, 2676, 323, '109.40374303316835', '24.335603803802794', '112.0', '15.0', '2020-09-05 11:12:13');
+INSERT INTO `t_order_position` VALUES (12847, 2, 2676, 323, '109.40295925924494', '24.335603682881658', '114.0', '15.0', '2020-09-05 11:12:19');
+INSERT INTO `t_order_position` VALUES (12848, 2, 2676, 323, '109.40215877788346', '24.33558687012322', '112.0', '15.0', '2020-09-05 11:12:23');
+INSERT INTO `t_order_position` VALUES (12849, 2, 2676, 323, '109.40135826690488', '24.335586691930605', '114.0', '15.0', '2020-09-05 11:12:29');
+INSERT INTO `t_order_position` VALUES (12850, 2, 2676, 323, '109.40054104721038', '24.335586481875882', '114.0', '15.0', '2020-09-05 11:12:35');
+INSERT INTO `t_order_position` VALUES (12851, 2, 2676, 323, '109.39974047584326', '24.335602910671255', '112.0', '15.0', '2020-09-05 11:12:39');
+INSERT INTO `t_order_position` VALUES (12852, 2, 2676, 323, '109.39897323240717', '24.335602661852274', '112.0', '15.0', '2020-09-05 11:12:44');
+INSERT INTO `t_order_position` VALUES (12853, 2, 2676, 323, '109.39828936179707', '24.335602419288882', '112.0', '15.0', '2020-09-05 11:12:49');
+INSERT INTO `t_order_position` VALUES (12854, 2, 2676, 323, '109.39765551009462', '24.335585515072808', '114.0', '15.0', '2020-09-05 11:12:54');
+INSERT INTO `t_order_position` VALUES (12855, 2, 2676, 323, '109.39705500277857', '24.33558527022732', '114.0', '15.0', '2020-09-05 11:12:59');
+INSERT INTO `t_order_position` VALUES (12856, 2, 2676, 323, '109.39648784270214', '24.335601687310128', '114.0', '15.0', '2020-09-05 11:13:04');
+INSERT INTO `t_order_position` VALUES (12857, 2, 2676, 323, '109.39572048760233', '24.335667982914625', '114.0', '15.0', '2020-09-05 11:13:14');
+INSERT INTO `t_order_position` VALUES (12858, 2, 2676, 323, '109.39518665875667', '24.335701047590668', '110.0', '15.0', '2020-09-05 11:13:19');
+INSERT INTO `t_order_position` VALUES (12859, 2, 2676, 323, '109.39460276456082', '24.33566742672062', '106.0', '15.0', '2020-09-05 11:13:24');
+INSERT INTO `t_order_position` VALUES (12860, 2, 2676, 323, '109.39370187209708', '24.335666941675708', '114.0', '15.0', '2020-09-05 11:13:34');
+INSERT INTO `t_order_position` VALUES (12861, 2, 2676, 323, '109.39301783687499', '24.335666551662367', '112.0', '15.0', '2020-09-05 11:13:39');
+INSERT INTO `t_order_position` VALUES (12862, 2, 2676, 323, '109.39231709531477', '24.335649470826247', '114.0', '15.0', '2020-09-05 11:13:44');
+INSERT INTO `t_order_position` VALUES (12863, 2, 2676, 323, '109.3917164432622', '24.335649096361504', '114.0', '15.0', '2020-09-05 11:13:49');
+INSERT INTO `t_order_position` VALUES (12864, 2, 2676, 323, '109.39111577634752', '24.335665369713748', '118.0', '15.0', '2020-09-05 11:13:54');
+INSERT INTO `t_order_position` VALUES (12865, 2, 2676, 323, '109.39048172093868', '24.335664944195823', '112.0', '15.0', '2020-09-05 11:13:59');
+INSERT INTO `t_order_position` VALUES (12866, 2, 2676, 323, '109.38991439343005', '24.335664550248353', '114.0', '15.0', '2020-09-05 11:14:04');
+INSERT INTO `t_order_position` VALUES (12867, 2, 2676, 323, '109.38936373876349', '24.335664156022347', '112.0', '15.0', '2020-09-05 11:14:09');
+INSERT INTO `t_order_position` VALUES (12868, 2, 2676, 323, '109.38872963647009', '24.335680349675584', '114.0', '15.0', '2020-09-05 11:14:14');
+INSERT INTO `t_order_position` VALUES (12869, 2, 2676, 323, '109.38817895298952', '24.33566326855287', '110.0', '15.0', '2020-09-05 11:14:19');
+INSERT INTO `t_order_position` VALUES (12870, 2, 2676, 323, '109.38729449771614', '24.33567923345664', '112.0', '15.0', '2020-09-05 11:14:29');
+INSERT INTO `t_order_position` VALUES (12871, 2, 2676, 323, '109.38649345348168', '24.33569523888124', '114.0', '15.0', '2020-09-05 11:14:39');
+INSERT INTO `t_order_position` VALUES (12872, 2, 2676, 323, '109.38570907097147', '24.335694572977093', '114.0', '15.0', '2020-09-05 11:14:49');
+INSERT INTO `t_order_position` VALUES (12873, 2, 2676, 323, '109.38485790593542', '24.3357271488995', '114.0', '15.0', '2020-09-05 11:15:04');
+INSERT INTO `t_order_position` VALUES (12874, 2, 2676, 323, '109.38427375471366', '24.3357266203157', '114.0', '15.0', '2020-09-05 11:15:10');
+INSERT INTO `t_order_position` VALUES (12875, 2, 2676, 323, '109.38327232074819', '24.335725685698346', '110.0', '15.0', '2020-09-05 11:15:20');
+INSERT INTO `t_order_position` VALUES (12876, 2, 2676, 323, '109.382454456401', '24.335774882033864', '112.0', '15.0', '2020-09-05 11:15:30');
+INSERT INTO `t_order_position` VALUES (12877, 2, 2676, 323, '109.38177009830804', '24.33577420329487', '112.0', '15.0', '2020-09-05 11:15:40');
+INSERT INTO `t_order_position` VALUES (12878, 2, 2676, 323, '109.38105234126688', '24.335840121999478', '110.0', '15.0', '2020-09-05 11:15:55');
+INSERT INTO `t_order_position` VALUES (12879, 2, 2676, 323, '109.38026778728538', '24.335805980689006', '114.0', '15.0', '2020-09-05 11:16:05');
+INSERT INTO `t_order_position` VALUES (12880, 2, 2676, 323, '109.37973361082003', '24.33580541227858', '110.0', '15.0', '2020-09-05 11:16:10');
+INSERT INTO `t_order_position` VALUES (12881, 2, 2676, 323, '109.37913265141893', '24.335838085367318', '112.0', '15.0', '2020-09-05 11:16:15');
+INSERT INTO `t_order_position` VALUES (12882, 2, 2676, 323, '109.37843151381645', '24.33585397281323', '112.0', '15.0', '2020-09-05 11:17:25');
+INSERT INTO `t_order_position` VALUES (12883, 2, 2676, 323, '109.37773035713012', '24.3358531821158', '154.0', '15.0', '2020-09-05 11:17:35');
+INSERT INTO `t_order_position` VALUES (12884, 2, 2676, 323, '109.37732966178945', '24.335402849257452', '112.0', '15.0', '2020-09-05 11:17:45');
+INSERT INTO `t_order_position` VALUES (12885, 2, 2676, 323, '109.37734631061693', '24.334619755121974', '112.0', '15.0', '2020-09-05 11:17:55');
+INSERT INTO `t_order_position` VALUES (12886, 2, 2676, 323, '109.37734627551268', '24.334019923940456', '112.0', '15.0', '2020-09-05 11:18:06');
+INSERT INTO `t_order_position` VALUES (12887, 2, 2676, 323, '109.37744639936723', '24.33327025055006', '110.0', '15.0', '2020-09-05 11:18:26');
+INSERT INTO `t_order_position` VALUES (12888, 2, 2676, 323, '109.37747975245118', '24.332653796380946', '112.0', '15.0', '2020-09-05 11:18:36');
+INSERT INTO `t_order_position` VALUES (12889, 2, 2676, 323, '109.37749640313662', '24.331904027770673', '110.0', '15.0', '2020-09-05 11:18:46');
+INSERT INTO `t_order_position` VALUES (12890, 2, 2676, 323, '109.37751304893612', '24.33107094992398', '112.0', '15.0', '2020-09-05 11:18:56');
+INSERT INTO `t_order_position` VALUES (12891, 2, 2676, 323, '109.37751300310477', '24.330287839259256', '112.0', '15.0', '2020-09-05 11:19:06');
+INSERT INTO `t_order_position` VALUES (12892, 2, 2676, 323, '109.37751296507463', '24.32963802439513', '112.0', '15.0', '2020-09-05 11:19:16');
+INSERT INTO `t_order_position` VALUES (12893, 2, 2676, 323, '109.37754630930009', '24.328871614772794', '112.0', '15.0', '2020-09-05 11:19:26');
+INSERT INTO `t_order_position` VALUES (12894, 2, 2676, 323, '109.37754628102128', '24.3283884196129', '112.0', '15.0', '2020-09-05 11:19:31');
+INSERT INTO `t_order_position` VALUES (12895, 2, 2676, 323, '109.3775796339819', '24.327771967717663', '112.0', '15.0', '2020-09-05 11:19:41');
+INSERT INTO `t_order_position` VALUES (12896, 2, 2676, 323, '109.37756289851139', '24.327072149393437', '116.0', '15.0', '2020-09-05 11:19:51');
+INSERT INTO `t_order_position` VALUES (12897, 2, 2676, 323, '109.3775294606953', '24.326239017350925', '112.0', '15.0', '2020-09-05 11:20:01');
+INSERT INTO `t_order_position` VALUES (12898, 2, 2676, 323, '109.37756280489971', '24.32547260975812', '112.0', '15.0', '2020-09-05 11:20:11');
+INSERT INTO `t_order_position` VALUES (12899, 2, 2676, 323, '109.377596155889', '24.324822835549487', '114.0', '15.0', '2020-09-05 11:20:26');
+INSERT INTO `t_order_position` VALUES (12900, 2, 2676, 323, '109.37764621106244', '24.32433969915042', '108.0', '15.0', '2020-09-05 11:20:36');
+INSERT INTO `t_order_position` VALUES (12901, 2, 2676, 323, '109.37784649714933', '24.323540158883937', '102.0', '15.0', '2020-09-05 11:20:46');
+INSERT INTO `t_order_position` VALUES (12902, 2, 2676, 323, '109.37803010801822', '24.3230904973398', '94.0', '15.0', '2020-09-05 11:20:52');
+INSERT INTO `t_order_position` VALUES (12903, 2, 2676, 323, '109.37836396628808', '24.322674326913212', '90.0', '15.0', '2020-09-05 11:20:57');
+INSERT INTO `t_order_position` VALUES (12904, 2, 2676, 323, '109.37868112857412', '24.322291458110328', '94.0', '15.0', '2020-09-05 11:21:02');
+INSERT INTO `t_order_position` VALUES (12905, 2, 2676, 323, '109.37901498174472', '24.321925266235176', '94.0', '15.0', '2020-09-05 11:21:07');
+INSERT INTO `t_order_position` VALUES (12906, 2, 2676, 323, '109.37936551832864', '24.321459118033562', '94.0', '15.0', '2020-09-05 11:21:12');
+INSERT INTO `t_order_position` VALUES (12907, 2, 2676, 323, '109.37973274739922', '24.321059631030526', '92.0', '15.0', '2020-09-05 11:21:17');
+INSERT INTO `t_order_position` VALUES (12908, 2, 2676, 323, '109.38008327843865', '24.32066012191306', '92.0', '15.0', '2020-09-05 11:21:22');
+INSERT INTO `t_order_position` VALUES (12909, 2, 2676, 323, '109.38040042128267', '24.32029389730332', '84.0', '15.0', '2020-09-05 11:21:27');
+INSERT INTO `t_order_position` VALUES (12910, 2, 2676, 323, '109.38118493792612', '24.319761533760698', '76.0', '15.0', '2020-09-05 11:21:37');
+INSERT INTO `t_order_position` VALUES (12911, 2, 2676, 323, '109.38123498146828', '24.319195084359055', '152.0', '15.0', '2020-09-05 11:21:57');
+INSERT INTO `t_order_position` VALUES (12912, 2, 2676, 323, '109.3806841244262', '24.31906122191608', '112.0', '15.0', '2020-09-05 11:22:07');
+INSERT INTO `t_order_position` VALUES (12913, 2, 2676, 323, '109.38009987870562', '24.31907726974491', '116.0', '15.0', '2020-09-05 11:22:17');
+INSERT INTO `t_order_position` VALUES (12914, 2, 2676, 323, '109.37936537883357', '24.3190764815842', '106.0', '15.0', '2020-09-05 11:22:32');
+INSERT INTO `t_order_position` VALUES (12915, 2, 2676, 323, '109.37886457773571', '24.31917590454097', '4.0', '15.0', '2020-09-05 11:22:57');
+INSERT INTO `t_order_position` VALUES (12916, 2, 2676, 323, '109.37841386302843', '24.319508640129484', '122.0', '15.0', '2020-09-05 11:23:12');
+INSERT INTO `t_order_position` VALUES (12917, 2, 2676, 323, '109.37784627481295', '24.31974126595729', '118.0', '15.0', '2020-09-05 11:23:22');
+INSERT INTO `t_order_position` VALUES (12918, 2, 2679, 323, '109.46022826529038', '24.320895865643198', '2.0', '15.0', '2020-09-05 13:31:51');
+INSERT INTO `t_order_position` VALUES (12919, 2, 2679, 323, '109.46046113780314', '24.32144518227367', '62.0', '15.0', '2020-09-05 13:32:01');
+INSERT INTO `t_order_position` VALUES (12920, 2, 2679, 323, '109.46104322810591', '24.321410543446177', '0.0', '15.0', '2020-09-05 13:32:12');
+INSERT INTO `t_order_position` VALUES (12921, 2, 2679, 323, '109.4604944034728', '24.321495092847858', '0.0', '15.0', '2020-09-05 13:33:12');
+INSERT INTO `t_order_position` VALUES (12922, 2, 2679, 323, '109.46016172352311', '24.320629425922924', '114.0', '15.0', '2020-09-05 13:33:47');
+INSERT INTO `t_order_position` VALUES (12923, 2, 2679, 323, '109.46017831909985', '24.320012902259837', '112.0', '15.0', '2020-09-05 13:33:52');
+INSERT INTO `t_order_position` VALUES (12924, 2, 2679, 323, '109.46019491953021', '24.31947968779778', '112.0', '15.0', '2020-09-05 13:33:57');
+INSERT INTO `t_order_position` VALUES (12925, 2, 2679, 323, '109.46022815148673', '24.31894643626024', '118.0', '15.0', '2020-09-05 13:34:02');
+INSERT INTO `t_order_position` VALUES (12926, 2, 2679, 323, '109.4601782004317', '24.31798016537744', '114.0', '15.0', '2020-09-05 13:34:12');
+INSERT INTO `t_order_position` VALUES (12927, 2, 2679, 323, '109.46021142949182', '24.31739692920013', '114.0', '15.0', '2020-09-05 13:34:17');
+INSERT INTO `t_order_position` VALUES (12928, 2, 2679, 323, '109.46019475903802', '24.31673049635664', '114.0', '15.0', '2020-09-05 13:34:22');
+INSERT INTO `t_order_position` VALUES (12929, 2, 2679, 323, '109.46019472207655', '24.316097350057788', '112.0', '15.0', '2020-09-05 13:34:33');
+INSERT INTO `t_order_position` VALUES (12930, 2, 2679, 323, '109.46021131860795', '24.315497490254653', '114.0', '15.0', '2020-09-05 13:34:37');
+INSERT INTO `t_order_position` VALUES (12931, 2, 2679, 323, '109.4602279131842', '24.314864307266376', '114.0', '15.0', '2020-09-05 13:34:42');
+INSERT INTO `t_order_position` VALUES (12932, 2, 2679, 323, '109.46022787330556', '24.314181176718833', '112.0', '15.0', '2020-09-05 13:34:48');
+INSERT INTO `t_order_position` VALUES (12933, 2, 2679, 323, '109.46021120578001', '24.313564730643954', '110.0', '15.0', '2020-09-05 13:34:53');
+INSERT INTO `t_order_position` VALUES (12934, 2, 2679, 323, '109.46021116979206', '24.31294824757213', '114.0', '15.0', '2020-09-05 13:34:58');
+INSERT INTO `t_order_position` VALUES (12935, 2, 2679, 323, '109.46021112796839', '24.312231794634243', '114.0', '15.0', '2020-09-05 13:35:03');
+INSERT INTO `t_order_position` VALUES (12936, 2, 2679, 323, '109.46022772060103', '24.311565289848186', '120.0', '15.0', '2020-09-05 13:35:08');
+INSERT INTO `t_order_position` VALUES (12937, 2, 2679, 323, '109.45966220456152', '24.310916746900112', '114.0', '15.0', '2020-09-05 13:35:18');
+INSERT INTO `t_order_position` VALUES (12938, 2, 2679, 323, '109.45874743699736', '24.310952089889078', '110.0', '15.0', '2020-09-05 13:35:28');
+INSERT INTO `t_order_position` VALUES (12939, 2, 2679, 323, '109.45806549520657', '24.310920253606643', '114.0', '15.0', '2020-09-05 13:35:33');
+INSERT INTO `t_order_position` VALUES (12940, 2, 2679, 323, '109.45726710379688', '24.310921974246444', '112.0', '15.0', '2020-09-05 13:35:38');
+INSERT INTO `t_order_position` VALUES (12941, 2, 2679, 323, '109.45663502823966', '24.310956644054464', '158.0', '15.0', '2020-09-05 13:36:48');
+INSERT INTO `t_order_position` VALUES (12942, 2, 2679, 323, '109.45721720058998', '24.310872096028387', '60.0', '15.0', '2020-09-05 13:37:03');
+INSERT INTO `t_order_position` VALUES (12943, 2, 2679, 323, '109.45776609743261', '24.310854254729332', '60.0', '15.0', '2020-09-05 13:37:08');
+INSERT INTO `t_order_position` VALUES (12944, 2, 2679, 323, '109.45828171807611', '24.310853137120187', '62.0', '15.0', '2020-09-05 13:37:13');
+INSERT INTO `t_order_position` VALUES (12945, 2, 2679, 323, '109.45921313401752', '24.310817771839012', '60.0', '15.0', '2020-09-05 13:37:23');
+INSERT INTO `t_order_position` VALUES (12946, 2, 2679, 323, '109.45976198984991', '24.310816554826364', '60.0', '15.0', '2020-09-05 13:37:28');
+INSERT INTO `t_order_position` VALUES (12947, 2, 2679, 323, '109.46032746681945', '24.310831952079717', '60.0', '15.0', '2020-09-05 13:37:33');
+INSERT INTO `t_order_position` VALUES (12948, 2, 2679, 323, '109.46089292703103', '24.310764030380497', '74.0', '15.0', '2020-09-05 13:37:44');
+INSERT INTO `t_order_position` VALUES (12949, 2, 2679, 323, '109.4616579499116', '24.310795612061078', '0.0', '15.0', '2020-09-05 13:39:24');
+INSERT INTO `t_order_position` VALUES (12950, 2, 2679, 323, '109.4606268394219', '24.310964571788737', '114.0', '15.0', '2020-09-05 13:39:59');
+INSERT INTO `t_order_position` VALUES (12951, 2, 2679, 323, '109.45994494802957', '24.31096610198716', '114.0', '15.0', '2020-09-05 13:40:04');
+INSERT INTO `t_order_position` VALUES (12952, 2, 2679, 323, '109.45926304020146', '24.310984278369382', '112.0', '15.0', '2020-09-05 13:40:09');
+INSERT INTO `t_order_position` VALUES (12953, 2, 2679, 323, '109.45864764300899', '24.310968970175946', '114.0', '15.0', '2020-09-05 13:40:14');
+INSERT INTO `t_order_position` VALUES (12954, 2, 2679, 323, '109.45794906855787', '24.310987152606316', '114.0', '15.0', '2020-09-05 13:40:19');
+INSERT INTO `t_order_position` VALUES (12955, 2, 2679, 323, '109.45738354131439', '24.310988371396892', '112.0', '15.0', '2020-09-05 13:40:24');
+INSERT INTO `t_order_position` VALUES (12956, 2, 2679, 323, '109.4566682978153', '24.31098989688856', '114.0', '15.0', '2020-09-05 13:41:15');
+INSERT INTO `t_order_position` VALUES (12957, 2, 2679, 323, '109.45590313226256', '24.31100817059476', '110.0', '15.0', '2020-09-05 13:41:25');
+INSERT INTO `t_order_position` VALUES (12958, 2, 2679, 323, '109.45533755260209', '24.310892717016603', '156.0', '15.0', '2020-09-05 13:41:35');
+INSERT INTO `t_order_position` VALUES (12959, 2, 2679, 323, '109.4546721417231', '24.310644163308513', '152.0', '15.0', '2020-09-05 13:41:50');
+INSERT INTO `t_order_position` VALUES (12960, 2, 2679, 323, '109.45394016853601', '24.310362404962056', '154.0', '15.0', '2020-09-05 13:42:00');
+INSERT INTO `t_order_position` VALUES (12961, 2, 2679, 323, '109.45340780806987', '24.31011355135695', '158.0', '15.0', '2020-09-05 13:42:05');
+INSERT INTO `t_order_position` VALUES (12962, 2, 2679, 323, '109.45289207909589', '24.309981286019525', '0.0', '15.0', '2020-09-05 13:42:25');
+INSERT INTO `t_order_position` VALUES (12963, 2, 2679, 323, '109.45209351836449', '24.30993287328549', '110.0', '15.0', '2020-09-05 13:43:05');
+INSERT INTO `t_order_position` VALUES (12964, 2, 2679, 323, '109.45142803020617', '24.309884180303765', '110.0', '15.0', '2020-09-05 13:43:10');
+INSERT INTO `t_order_position` VALUES (12965, 2, 2679, 323, '109.45067933598227', '24.309868952179663', '108.0', '15.0', '2020-09-05 13:43:15');
+INSERT INTO `t_order_position` VALUES (12966, 2, 2679, 323, '109.4497975071708', '24.30980396655597', '102.0', '15.0', '2020-09-05 13:43:20');
+INSERT INTO `t_order_position` VALUES (12967, 2, 2679, 323, '109.44893227721893', '24.30962228892923', '102.0', '15.0', '2020-09-05 13:43:32');
+INSERT INTO `t_order_position` VALUES (12968, 2, 2679, 323, '109.448150216377', '24.309490417395807', '102.0', '15.0', '2020-09-05 13:43:32');
+INSERT INTO `t_order_position` VALUES (12969, 2, 2679, 323, '109.44735148748045', '24.309341889755004', '100.0', '15.0', '2020-09-05 13:43:35');
+INSERT INTO `t_order_position` VALUES (12970, 2, 2679, 323, '109.44636967896106', '24.309176993032764', '102.0', '15.0', '2020-09-05 13:43:40');
+INSERT INTO `t_order_position` VALUES (12971, 2, 2679, 323, '109.44548767970052', '24.30904521197792', '108.0', '15.0', '2020-09-05 13:43:46');
+INSERT INTO `t_order_position` VALUES (12972, 2, 2679, 323, '109.44460564937006', '24.308980046253954', '112.0', '15.0', '2020-09-05 13:43:51');
+INSERT INTO `t_order_position` VALUES (12973, 2, 2679, 323, '109.4437568727018', '24.308964779824247', '114.0', '15.0', '2020-09-05 13:43:56');
+INSERT INTO `t_order_position` VALUES (12974, 2, 2679, 323, '109.4428082011367', '24.308949642699464', '114.0', '15.0', '2020-09-05 13:44:01');
+INSERT INTO `t_order_position` VALUES (12975, 2, 2679, 323, '109.44185948913497', '24.30895113015895', '114.0', '15.0', '2020-09-05 13:44:06');
+INSERT INTO `t_order_position` VALUES (12976, 2, 2679, 323, '109.44102725225437', '24.308969065850626', '106.0', '15.0', '2020-09-05 13:44:11');
+INSERT INTO `t_order_position` VALUES (12977, 2, 2679, 323, '109.44049459916974', '24.308903219464902', '104.0', '15.0', '2020-09-05 13:44:16');
+INSERT INTO `t_order_position` VALUES (12978, 2, 2679, 323, '109.43997857869878', '24.30883733672865', '110.0', '15.0', '2020-09-05 13:44:21');
+INSERT INTO `t_order_position` VALUES (12979, 2, 2679, 323, '109.43944590135544', '24.308804790173273', '114.0', '15.0', '2020-09-05 13:44:26');
+INSERT INTO `t_order_position` VALUES (12980, 2, 2679, 323, '109.43892985832794', '24.30878886955911', '112.0', '15.0', '2020-09-05 13:44:31');
+INSERT INTO `t_order_position` VALUES (12981, 2, 2679, 323, '109.43839715555613', '24.3087729610028', '114.0', '15.0', '2020-09-05 13:44:36');
+INSERT INTO `t_order_position` VALUES (12982, 2, 2679, 323, '109.43736500839694', '24.30879104735802', '110.0', '15.0', '2020-09-05 13:44:46');
+INSERT INTO `t_order_position` VALUES (12983, 2, 2679, 323, '109.43684891231081', '24.30874175767148', '114.0', '15.0', '2020-09-05 13:44:51');
+INSERT INTO `t_order_position` VALUES (12984, 2, 2679, 323, '109.43629950976326', '24.308759146850857', '112.0', '15.0', '2020-09-05 13:44:56');
+INSERT INTO `t_order_position` VALUES (12985, 2, 2679, 323, '109.43553365030232', '24.308760139262407', '114.0', '15.0', '2020-09-05 13:45:06');
+INSERT INTO `t_order_position` VALUES (12986, 2, 2679, 323, '109.43475112712002', '24.309011051750097', '132.0', '15.0', '2020-09-05 13:45:16');
+INSERT INTO `t_order_position` VALUES (12987, 2, 2679, 323, '109.433985236652', '24.309461857344644', '132.0', '15.0', '2020-09-05 13:45:26');
+INSERT INTO `t_order_position` VALUES (12988, 2, 2679, 323, '109.4335190260935', '24.309695680773977', '134.0', '15.0', '2020-09-05 13:45:36');
+INSERT INTO `t_order_position` VALUES (12989, 2, 2679, 323, '109.43310276210559', '24.309979421172', '0.0', '15.0', '2020-09-05 13:46:01');
+INSERT INTO `t_order_position` VALUES (12990, 2, 2679, 323, '109.43260323667887', '24.31036322003538', '112.0', '15.0', '2020-09-05 13:47:17');
+INSERT INTO `t_order_position` VALUES (12991, 2, 2679, 323, '109.43173729819593', '24.30991433541536', '148.0', '15.0', '2020-09-05 13:47:32');
+INSERT INTO `t_order_position` VALUES (12992, 2, 2679, 323, '109.43110446852172', '24.30949848942281', '150.0', '15.0', '2020-09-05 13:47:47');
+INSERT INTO `t_order_position` VALUES (12993, 2, 2679, 323, '109.43058820045414', '24.3091991338994', '150.0', '15.0', '2020-09-05 13:48:02');
+INSERT INTO `t_order_position` VALUES (12994, 2, 2679, 323, '109.42993867797007', '24.308733288226517', '148.0', '15.0', '2020-09-05 13:48:12');
+INSERT INTO `t_order_position` VALUES (12995, 2, 2679, 323, '109.42920586082589', '24.30825084583529', '148.0', '15.0', '2020-09-05 13:48:22');
+INSERT INTO `t_order_position` VALUES (12996, 2, 2679, 323, '109.42862291521816', '24.30780155738024', '146.0', '15.0', '2020-09-05 13:48:32');
+INSERT INTO `t_order_position` VALUES (12997, 2, 2679, 323, '109.42802329812787', '24.307368931350688', '148.0', '15.0', '2020-09-05 13:48:42');
+INSERT INTO `t_order_position` VALUES (12998, 2, 2679, 323, '109.4276568516451', '24.307019381519865', '138.0', '15.0', '2020-09-05 13:48:52');
+INSERT INTO `t_order_position` VALUES (12999, 2, 2679, 323, '109.42724042986444', '24.306669871450687', '0.0', '15.0', '2020-09-05 13:49:23');
+INSERT INTO `t_order_position` VALUES (13000, 2, 2679, 323, '109.42655750529094', '24.306537191483677', '124.0', '15.0', '2020-09-05 13:49:38');
+INSERT INTO `t_order_position` VALUES (13001, 2, 2679, 323, '109.42582460974383', '24.306821073639345', '124.0', '15.0', '2020-09-05 13:49:48');
+INSERT INTO `t_order_position` VALUES (13002, 2, 2679, 323, '109.42499173311217', '24.307005043353442', '120.0', '15.0', '2020-09-05 13:49:58');
+INSERT INTO `t_order_position` VALUES (13003, 2, 2679, 323, '109.42425877812046', '24.307255550778507', '124.0', '15.0', '2020-09-05 13:50:08');
+INSERT INTO `t_order_position` VALUES (13004, 2, 2679, 323, '109.42364241498963', '24.307572593303156', '130.0', '15.0', '2020-09-05 13:50:18');
+INSERT INTO `t_order_position` VALUES (13005, 2, 2679, 323, '109.42287609259593', '24.307856403453712', '164.0', '15.0', '2020-09-05 13:50:28');
+INSERT INTO `t_order_position` VALUES (13006, 2, 2679, 323, '109.42185980114064', '24.307623845460483', '162.0', '10.0', '2020-09-05 13:50:38');
+INSERT INTO `t_order_position` VALUES (13007, 2, 2679, 323, '109.42122667108737', '24.30740765979266', '160.0', '15.0', '2020-09-05 13:50:43');
+INSERT INTO `t_order_position` VALUES (13008, 2, 2679, 323, '109.42076013696648', '24.307174691595534', '156.0', '15.0', '2020-09-05 13:50:48');
+INSERT INTO `t_order_position` VALUES (13009, 2, 2679, 323, '109.41991035464243', '24.30682530881205', '158.0', '15.0', '2020-09-05 13:50:58');
+INSERT INTO `t_order_position` VALUES (13010, 2, 2679, 323, '109.4192105059158', '24.306525796246806', '152.0', '15.0', '2020-09-05 13:51:08');
+INSERT INTO `t_order_position` VALUES (13011, 2, 2679, 323, '109.41862727785048', '24.306242862362186', '102.0', '15.0', '2020-09-05 13:51:23');
+INSERT INTO `t_order_position` VALUES (13012, 2, 2679, 323, '109.41786073069281', '24.305993326967695', '118.0', '15.0', '2020-09-05 13:51:33');
+INSERT INTO `t_order_position` VALUES (13013, 2, 2679, 323, '109.41769406284342', '24.305543544511394', '108.0', '15.0', '2020-09-05 13:51:48');
+INSERT INTO `t_order_position` VALUES (13014, 2, 2679, 323, '109.41699414977407', '24.30547722466714', '110.0', '15.0', '2020-09-05 13:51:59');
+INSERT INTO `t_order_position` VALUES (13015, 2, 2679, 323, '109.41606089632825', '24.305427640921508', '108.0', '15.0', '2020-09-05 13:52:09');
+INSERT INTO `t_order_position` VALUES (13016, 2, 2679, 323, '109.41516092889596', '24.30532802086947', '108.0', '15.0', '2020-09-05 13:52:19');
+INSERT INTO `t_order_position` VALUES (13017, 2, 2679, 323, '109.41457759584206', '24.30527824316441', '114.0', '15.0', '2020-09-05 13:53:14');
+INSERT INTO `t_order_position` VALUES (13018, 2, 2679, 323, '109.41402758228081', '24.305261762821672', '114.0', '15.0', '2020-09-05 13:53:24');
+INSERT INTO `t_order_position` VALUES (13019, 2, 2679, 323, '109.41324420685135', '24.30529532073845', '114.0', '15.0', '2020-09-05 13:53:34');
+INSERT INTO `t_order_position` VALUES (13020, 2, 2679, 323, '109.41249413789333', '24.30532884288375', '110.0', '15.0', '2020-09-05 13:53:44');
+INSERT INTO `t_order_position` VALUES (13021, 2, 2679, 323, '109.41176070808348', '24.305329013051722', '114.0', '15.0', '2020-09-05 13:53:54');
+INSERT INTO `t_order_position` VALUES (13022, 2, 2679, 323, '109.4109105656893', '24.305379165042492', '136.0', '15.0', '2020-09-05 13:54:04');
+INSERT INTO `t_order_position` VALUES (13023, 2, 2679, 323, '109.41069390030579', '24.306128974946674', '2.0', '15.0', '2020-09-05 13:54:14');
+INSERT INTO `t_order_position` VALUES (13024, 2, 2679, 323, '109.41074395250213', '24.306845416103627', '2.0', '15.0', '2020-09-05 13:54:19');
+INSERT INTO `t_order_position` VALUES (13025, 2, 2679, 323, '109.41076066755492', '24.307611848155446', '0.0', '15.0', '2020-09-05 13:54:24');
+INSERT INTO `t_order_position` VALUES (13026, 2, 2679, 323, '109.41079405060742', '24.30834495447992', '2.0', '15.0', '2020-09-05 13:54:29');
+INSERT INTO `t_order_position` VALUES (13027, 2, 2679, 323, '109.41082743164615', '24.309044737855036', '2.0', '15.0', '2020-09-05 13:54:38');
+INSERT INTO `t_order_position` VALUES (13028, 2, 2679, 323, '109.41087748155363', '24.309727856957345', '0.0', '15.0', '2020-09-05 13:54:39');
+INSERT INTO `t_order_position` VALUES (13029, 2, 2679, 323, '109.4108941847438', '24.310294350552432', '0.0', '15.0', '2020-09-05 13:54:44');
+INSERT INTO `t_order_position` VALUES (13030, 2, 2679, 323, '109.41089421510641', '24.310810862312607', '0.0', '15.0', '2020-09-05 13:54:49');
+INSERT INTO `t_order_position` VALUES (13031, 2, 2679, 323, '109.41104427777024', '24.311393993945433', '12.0', '15.0', '2020-09-05 13:55:40');
+INSERT INTO `t_order_position` VALUES (13032, 2, 2682, 324, '109.381953715202', '24.335891020977115', '110.0', '15.0', '2020-09-05 17:12:09');
+INSERT INTO `t_order_position` VALUES (13033, 2, 2682, 324, '109.3812526515745', '24.335890313298595', '122.0', '15.0', '2020-09-05 17:12:24');
+INSERT INTO `t_order_position` VALUES (13034, 2, 2682, 324, '109.3806517228653', '24.335856369263983', '112.0', '15.0', '2020-09-05 17:12:34');
+INSERT INTO `t_order_position` VALUES (13035, 2, 2682, 324, '109.38008416436631', '24.335789124386455', '108.0', '15.0', '2020-09-05 17:13:20');
+INSERT INTO `t_order_position` VALUES (13036, 2, 2682, 324, '109.37913264946788', '24.335804761372835', '112.0', '15.0', '2020-09-05 17:13:30');
+INSERT INTO `t_order_position` VALUES (13037, 2, 2682, 324, '109.37859845322346', '24.335854158701956', '114.0', '15.0', '2020-09-05 17:13:35');
+INSERT INTO `t_order_position` VALUES (13038, 2, 2682, 324, '109.37804755123975', '24.33588686579567', '0.0', '15.0', '2020-09-05 17:13:45');
+INSERT INTO `t_order_position` VALUES (13039, 2, 2682, 324, '109.377045880312', '24.335902380850236', '110.0', '15.0', '2020-09-05 17:16:11');
+INSERT INTO `t_order_position` VALUES (13040, 2, 2682, 324, '109.3763279912585', '24.335868215058884', '112.0', '15.0', '2020-09-05 17:16:16');
+INSERT INTO `t_order_position` VALUES (13041, 2, 2682, 324, '109.37569356415581', '24.33586745756727', '112.0', '15.0', '2020-09-05 17:16:21');
+INSERT INTO `t_order_position` VALUES (13042, 2, 2682, 324, '109.37500903583187', '24.335883288160435', '112.0', '15.0', '2020-09-05 17:16:26');
+INSERT INTO `t_order_position` VALUES (13043, 2, 2682, 324, '109.3742410070483', '24.335865676160214', '114.0', '15.0', '2020-09-05 17:16:31');
+INSERT INTO `t_order_position` VALUES (13044, 2, 2682, 324, '109.3734729600604', '24.335881370221358', '114.0', '15.0', '2020-09-05 17:16:36');
+INSERT INTO `t_order_position` VALUES (13045, 2, 2682, 324, '109.37277168250486', '24.335897133020037', '114.0', '15.0', '2020-09-05 17:16:41');
+INSERT INTO `t_order_position` VALUES (13046, 2, 2682, 324, '109.37205368996153', '24.33589619737798', '112.0', '15.0', '2020-09-05 17:16:46');
+INSERT INTO `t_order_position` VALUES (13047, 2, 2682, 324, '109.37131898052304', '24.335861900472693', '114.0', '15.0', '2020-09-05 17:16:51');
+INSERT INTO `t_order_position` VALUES (13048, 2, 2682, 324, '109.37043396890547', '24.335860708081526', '110.0', '15.0', '2020-09-05 17:16:56');
+INSERT INTO `t_order_position` VALUES (13049, 2, 2682, 324, '109.36956563255083', '24.335876178836532', '112.0', '15.0', '2020-09-05 17:17:01');
+INSERT INTO `t_order_position` VALUES (13050, 2, 2682, 324, '109.3686638729223', '24.33587491984588', '112.0', '15.0', '2020-09-05 17:17:06');
+INSERT INTO `t_order_position` VALUES (13051, 2, 2682, 324, '109.36777878758684', '24.335857000897008', '114.0', '15.0', '2020-09-05 17:17:11');
+INSERT INTO `t_order_position` VALUES (13052, 2, 2682, 324, '109.36689368093403', '24.33587238532473', '112.0', '15.0', '2020-09-05 17:17:16');
+INSERT INTO `t_order_position` VALUES (13053, 2, 2682, 324, '109.36605865286668', '24.33587116158034', '112.0', '15.0', '2020-09-05 17:17:21');
+INSERT INTO `t_order_position` VALUES (13054, 2, 2682, 324, '109.36534051187975', '24.335853433107783', '114.0', '15.0', '2020-09-05 17:17:26');
+INSERT INTO `t_order_position` VALUES (13055, 2, 2682, 324, '109.3647893713944', '24.33585260600164', '112.0', '15.0', '2020-09-05 17:17:31');
+INSERT INTO `t_order_position` VALUES (13056, 2, 2682, 324, '109.36418811867793', '24.33586835728253', '116.0', '15.0', '2020-09-05 17:18:51');
+INSERT INTO `t_order_position` VALUES (13057, 2, 2682, 324, '109.36368707034747', '24.33593423973878', '118.0', '15.0', '2020-09-05 17:18:56');
+INSERT INTO `t_order_position` VALUES (13058, 2, 2682, 324, '109.36303570023992', '24.336066531709708', '118.0', '15.0', '2020-09-05 17:19:02');
+INSERT INTO `t_order_position` VALUES (13059, 2, 2682, 324, '109.36223399693158', '24.336198578557276', '118.0', '15.0', '2020-09-05 17:19:07');
+INSERT INTO `t_order_position` VALUES (13060, 2, 2682, 324, '109.36131535821383', '24.336347087458527', '118.0', '15.0', '2020-09-05 17:19:12');
+INSERT INTO `t_order_position` VALUES (13061, 2, 2682, 324, '109.36041340175969', '24.33649560474059', '118.0', '15.0', '2020-09-05 17:19:17');
+INSERT INTO `t_order_position` VALUES (13062, 2, 2682, 324, '109.35951142564764', '24.336644104743534', '112.0', '15.0', '2020-09-05 17:19:22');
+INSERT INTO `t_order_position` VALUES (13063, 2, 2682, 324, '109.35860942463057', '24.33669261593129', '110.0', '15.0', '2020-09-05 17:19:27');
+INSERT INTO `t_order_position` VALUES (13064, 2, 2682, 324, '109.35765728931256', '24.336691041543023', '104.0', '15.0', '2020-09-05 17:19:32');
+INSERT INTO `t_order_position` VALUES (13065, 2, 2682, 324, '109.3567051253392', '24.336539491604903', '108.0', '15.0', '2020-09-05 17:19:37');
+INSERT INTO `t_order_position` VALUES (13066, 2, 2682, 324, '109.35580306092282', '24.336454657941747', '114.0', '15.0', '2020-09-05 17:19:42');
+INSERT INTO `t_order_position` VALUES (13067, 2, 2682, 324, '109.35490098661415', '24.33648644374667', '116.0', '15.0', '2020-09-05 17:19:47');
+INSERT INTO `t_order_position` VALUES (13068, 2, 2682, 324, '109.35408242879168', '24.336601669856485', '122.0', '14.0', '2020-09-05 17:19:52');
+INSERT INTO `t_order_position` VALUES (13069, 2, 2682, 324, '109.35324715721983', '24.336800165805865', '122.0', '15.0', '2020-09-05 17:19:59');
+INSERT INTO `t_order_position` VALUES (13070, 2, 2682, 324, '109.35244528681324', '24.33703203322475', '122.0', '15.0', '2020-09-05 17:20:02');
+INSERT INTO `t_order_position` VALUES (13071, 2, 2682, 324, '109.3518438740687', '24.337164272253048', '124.0', '15.0', '2020-09-05 17:20:07');
+INSERT INTO `t_order_position` VALUES (13072, 2, 2682, 324, '109.35130929992998', '24.337629864600032', '10.0', '15.0', '2020-09-05 17:20:17');
+INSERT INTO `t_order_position` VALUES (13073, 2, 2682, 324, '109.35140956997057', '24.33817988880454', '10.0', '15.0', '2020-09-05 17:20:22');
+INSERT INTO `t_order_position` VALUES (13074, 2, 2682, 324, '109.35159338197253', '24.338913343084315', '8.0', '15.0', '2020-09-05 17:20:27');
+INSERT INTO `t_order_position` VALUES (13075, 2, 2682, 324, '109.35172708146123', '24.339763343261005', '4.0', '15.0', '2020-09-05 17:20:32');
+INSERT INTO `t_order_position` VALUES (13076, 2, 2682, 324, '109.35177725051314', '24.34062985858891', '0.0', '15.0', '2020-09-05 17:20:37');
+INSERT INTO `t_order_position` VALUES (13077, 2, 2682, 324, '109.35179400030151', '24.34137968107824', '166.0', '15.0', '2020-09-05 17:20:42');
+INSERT INTO `t_order_position` VALUES (13078, 2, 2682, 324, '109.35177734537287', '24.342262741783603', '162.0', '15.0', '2020-09-05 17:20:52');
+INSERT INTO `t_order_position` VALUES (13079, 2, 2682, 324, '109.35194443263188', '24.342696250408938', '52.0', '15.0', '2020-09-05 17:21:02');
+INSERT INTO `t_order_position` VALUES (13080, 2, 2682, 324, '109.35262938404404', '24.34273077701402', '58.0', '15.0', '2020-09-05 17:21:17');
+INSERT INTO `t_order_position` VALUES (13081, 2, 2682, 324, '109.35329761837328', '24.34271528099165', '62.0', '15.0', '2020-09-05 17:21:32');
+INSERT INTO `t_order_position` VALUES (13082, 2, 2682, 324, '109.35399925849926', '24.34274982182693', '0.0', '15.0', '2020-09-05 17:22:02');
+INSERT INTO `t_order_position` VALUES (13083, 2, 2682, 324, '109.35341456161545', '24.34276547059566', '112.0', '15.0', '2020-09-05 17:28:35');
+INSERT INTO `t_order_position` VALUES (13084, 2, 2682, 324, '109.35274632580527', '24.34273098158354', '114.0', '15.0', '2020-09-05 17:28:45');
+INSERT INTO `t_order_position` VALUES (13085, 2, 2682, 324, '109.35207808389332', '24.342729809770745', '110.0', '15.0', '2020-09-05 17:28:55');
+INSERT INTO `t_order_position` VALUES (13086, 2, 2682, 324, '109.35152676682407', '24.342528892854826', '110.0', '15.0', '2020-09-05 17:29:05');
+INSERT INTO `t_order_position` VALUES (13087, 2, 2682, 324, '109.35162695520386', '24.341679303692004', '112.0', '15.0', '2020-09-05 17:29:15');
+INSERT INTO `t_order_position` VALUES (13088, 2, 2682, 324, '109.351610214081', '24.341079439585986', '114.0', '15.0', '2020-09-05 17:29:20');
+INSERT INTO `t_order_position` VALUES (13089, 2, 2682, 324, '109.3516435956595', '24.340546312497352', '118.0', '15.0', '2020-09-05 17:29:25');
+INSERT INTO `t_order_position` VALUES (13090, 2, 2682, 324, '109.3515767298868', '24.339846388131747', '122.0', '15.0', '2020-09-05 17:29:31');
+INSERT INTO `t_order_position` VALUES (13091, 2, 2682, 324, '109.35144304554325', '24.33926298027638', '120.0', '15.0', '2020-09-05 17:29:36');
+INSERT INTO `t_order_position` VALUES (13092, 2, 2682, 324, '109.35135948190961', '24.338712985202136', '122.0', '15.0', '2020-09-05 17:29:41');
+INSERT INTO `t_order_position` VALUES (13093, 2, 2682, 324, '109.3512759210636', '24.338212976358466', '124.0', '15.0', '2020-09-05 17:29:46');
+INSERT INTO `t_order_position` VALUES (13094, 2, 2682, 324, '109.35114224379241', '24.337762864868058', '0.0', '15.0', '2020-09-05 17:30:41');
+INSERT INTO `t_order_position` VALUES (13095, 2, 2682, 324, '109.35139280653091', '24.337196799907478', '74.0', '15.0', '2020-09-05 17:31:51');
+INSERT INTO `t_order_position` VALUES (13096, 2, 2682, 324, '109.35189398687592', '24.33706438846199', '68.0', '15.0', '2020-09-05 17:31:56');
+INSERT INTO `t_order_position` VALUES (13097, 2, 2682, 324, '109.35254551616454', '24.336915574776352', '68.0', '15.0', '2020-09-05 17:32:03');
+INSERT INTO `t_order_position` VALUES (13098, 2, 2682, 324, '109.353197037878', '24.336766754534928', '66.0', '15.0', '2020-09-05 17:32:07');
+INSERT INTO `t_order_position` VALUES (13099, 2, 2682, 324, '109.35388196299127', '24.336617985347434', '66.0', '14.0', '2020-09-05 17:32:12');
+INSERT INTO `t_order_position` VALUES (13100, 2, 2682, 324, '109.3545835855604', '24.3364858991593', '60.0', '14.0', '2020-09-05 17:32:17');
+INSERT INTO `t_order_position` VALUES (13101, 2, 2682, 324, '109.35526849628927', '24.336403762118564', '60.0', '15.0', '2020-09-05 17:32:22');
+INSERT INTO `t_order_position` VALUES (13102, 2, 2682, 324, '109.35598681129282', '24.336388321487593', '54.0', '14.0', '2020-09-05 17:32:27');
+INSERT INTO `t_order_position` VALUES (13103, 2, 2682, 324, '109.35675523538087', '24.336472927785135', '50.0', '15.0', '2020-09-05 17:32:33');
+INSERT INTO `t_order_position` VALUES (13104, 2, 2682, 324, '109.35752364691686', '24.336557523095923', '54.0', '15.0', '2020-09-05 17:32:37');
+INSERT INTO `t_order_position` VALUES (13105, 2, 2682, 324, '109.35830874766442', '24.33660881063811', '60.0', '15.0', '2020-09-05 17:32:42');
+INSERT INTO `t_order_position` VALUES (13106, 2, 2682, 324, '109.35904372031241', '24.336610018055747', '60.0', '15.0', '2020-09-05 17:32:47');
+INSERT INTO `t_order_position` VALUES (13107, 2, 2682, 324, '109.35976197213965', '24.336527877411694', '64.0', '15.0', '2020-09-05 17:32:52');
+INSERT INTO `t_order_position` VALUES (13108, 2, 2682, 324, '109.36046350757533', '24.3364290372171', '64.0', '15.0', '2020-09-05 17:32:57');
+INSERT INTO `t_order_position` VALUES (13109, 2, 2682, 324, '109.3610982193018', '24.336330080211027', '64.0', '15.0', '2020-09-05 17:33:02');
+INSERT INTO `t_order_position` VALUES (13110, 2, 2682, 324, '109.36178302817416', '24.33621453151214', '64.0', '15.0', '2020-09-05 17:33:07');
+INSERT INTO `t_order_position` VALUES (13111, 2, 2682, 324, '109.36240101464281', '24.33608220599438', '64.0', '15.0', '2020-09-05 17:33:12');
+INSERT INTO `t_order_position` VALUES (13112, 2, 2682, 324, '109.36298558795815', '24.335966482067114', '66.0', '15.0', '2020-09-05 17:33:17');
+INSERT INTO `t_order_position` VALUES (13113, 2, 2682, 324, '109.36348664369429', '24.335867283868115', '66.0', '15.0', '2020-09-05 17:33:57');
+INSERT INTO `t_order_position` VALUES (13114, 2, 2682, 324, '109.36430502308595', '24.33575190106606', '60.0', '15.0', '2020-09-05 17:34:07');
+INSERT INTO `t_order_position` VALUES (13115, 2, 2682, 324, '109.36527370061727', '24.335736699269475', '58.0', '15.0', '2020-09-05 17:34:17');
+INSERT INTO `t_order_position` VALUES (13116, 2, 2682, 324, '109.36592503874674', '24.335737668163834', '60.0', '15.0', '2020-09-05 17:34:27');
+INSERT INTO `t_order_position` VALUES (13117, 2, 2682, 324, '109.36676006806906', '24.335705570750807', '58.0', '15.0', '2020-09-05 17:34:37');
+INSERT INTO `t_order_position` VALUES (13118, 2, 2682, 324, '109.36749488084263', '24.335739959354463', '60.0', '15.0', '2020-09-05 17:34:43');
+INSERT INTO `t_order_position` VALUES (13119, 2, 2682, 324, '109.36824637641858', '24.335757695560968', '60.0', '15.0', '2020-09-05 17:34:48');
+INSERT INTO `t_order_position` VALUES (13120, 2, 2682, 324, '109.36893105674397', '24.33575866120057', '58.0', '15.0', '2020-09-05 17:34:53');
+INSERT INTO `t_order_position` VALUES (13121, 2, 2682, 324, '109.3698328089629', '24.335759913618165', '60.0', '15.0', '2020-09-05 17:34:58');
+INSERT INTO `t_order_position` VALUES (13122, 2, 2682, 324, '109.37056755034735', '24.33574425550336', '58.0', '15.0', '2020-09-05 17:35:03');
+INSERT INTO `t_order_position` VALUES (13123, 2, 2682, 324, '109.37118538962606', '24.335761749930406', '58.0', '15.0', '2020-09-05 17:35:08');
+INSERT INTO `t_order_position` VALUES (13124, 2, 2682, 324, '109.37190340349414', '24.33577936565893', '60.0', '15.0', '2020-09-05 17:35:13');
+INSERT INTO `t_order_position` VALUES (13125, 2, 2682, 324, '109.37262139958506', '24.33578030445597', '60.0', '15.0', '2020-09-05 17:35:18');
+INSERT INTO `t_order_position` VALUES (13126, 2, 2682, 324, '109.37328928761953', '24.335781164146372', '58.0', '15.0', '2020-09-05 17:35:23');
+INSERT INTO `t_order_position` VALUES (13127, 2, 2682, 324, '109.37399055395412', '24.33578205249918', '58.0', '15.0', '2020-09-05 17:35:28');
+INSERT INTO `t_order_position` VALUES (13128, 2, 2682, 324, '109.37464171389578', '24.33576620208481', '60.0', '15.0', '2020-09-05 17:35:33');
+INSERT INTO `t_order_position` VALUES (13129, 2, 2682, 324, '109.37525946845317', '24.335766960039145', '62.0', '15.0', '2020-09-05 17:35:38');
+INSERT INTO `t_order_position` VALUES (13130, 2, 2682, 324, '109.37586051320996', '24.33575102415357', '62.0', '15.0', '2020-09-05 17:35:43');
+INSERT INTO `t_order_position` VALUES (13131, 2, 2682, 324, '109.37637806822785', '24.335718316348185', '60.0', '15.0', '2020-09-05 17:35:48');
+INSERT INTO `t_order_position` VALUES (13132, 2, 2682, 324, '109.37706255564001', '24.335569160308452', '90.0', '15.0', '2020-09-05 17:35:58');
+INSERT INTO `t_order_position` VALUES (13133, 2, 2682, 324, '109.37736301794152', '24.33483638011664', '112.0', '15.0', '2020-09-05 17:36:08');
+INSERT INTO `t_order_position` VALUES (13134, 2, 2682, 324, '109.37736298576245', '24.334286534760842', '112.0', '15.0', '2020-09-05 17:36:13');
+INSERT INTO `t_order_position` VALUES (13135, 2, 2682, 324, '109.37739634674928', '24.33380337593848', '112.0', '15.0', '2020-09-05 17:36:18');
+INSERT INTO `t_order_position` VALUES (13136, 2, 2682, 324, '109.37746309687978', '24.333320255606676', '112.0', '15.0', '2020-09-05 17:36:23');
+INSERT INTO `t_order_position` VALUES (13137, 2, 2682, 324, '109.37747976317772', '24.332837077900866', '112.0', '15.0', '2020-09-05 17:36:28');
+INSERT INTO `t_order_position` VALUES (13138, 2, 2682, 324, '109.37747973489869', '24.332353881224158', '114.0', '15.0', '2020-09-05 17:36:33');
+INSERT INTO `t_order_position` VALUES (13139, 2, 2682, 324, '109.37742962285931', '24.331870627236', '112.0', '15.0', '2020-09-05 17:36:38');
+INSERT INTO `t_order_position` VALUES (13140, 2, 2682, 324, '109.3774295906803', '24.331320783178437', '114.0', '15.0', '2020-09-05 17:36:46');
+INSERT INTO `t_order_position` VALUES (13141, 2, 2682, 324, '109.37747963933568', '24.330721011067865', '112.0', '15.0', '2020-09-05 17:36:51');
+INSERT INTO `t_order_position` VALUES (13142, 2, 2682, 324, '109.37747960325599', '24.330104519823596', '114.0', '15.0', '2020-09-05 17:36:53');
+INSERT INTO `t_order_position` VALUES (13143, 2, 2682, 324, '109.37749626271764', '24.329504709940956', '112.0', '15.0', '2020-09-05 17:36:58');
+INSERT INTO `t_order_position` VALUES (13144, 2, 2682, 324, '109.37752961573962', '24.32888825755749', '112.0', '15.0', '2020-09-05 17:37:03');
+INSERT INTO `t_order_position` VALUES (13145, 2, 2682, 324, '109.37752958063503', '24.328288429102823', '112.0', '15.0', '2020-09-05 17:37:24');
+INSERT INTO `t_order_position` VALUES (13146, 2, 2682, 324, '109.37754624201615', '24.327721943831957', '110.0', '15.0', '2020-09-05 17:37:39');
+INSERT INTO `t_order_position` VALUES (13147, 2, 2682, 324, '109.37757958034966', '24.326855564053034', '114.0', '15.0', '2020-09-05 17:37:49');
+INSERT INTO `t_order_position` VALUES (13148, 2, 2682, 324, '109.37761291279138', '24.325889213625967', '112.0', '15.0', '2020-09-05 17:37:59');
+INSERT INTO `t_order_position` VALUES (13149, 2, 2682, 324, '109.37764626957039', '24.325339410301847', '110.0', '15.0', '2020-09-05 17:38:04');
+INSERT INTO `t_order_position` VALUES (13150, 2, 2682, 324, '109.37762953804139', '24.324706240748807', '114.0', '15.0', '2020-09-05 17:38:09');
+INSERT INTO `t_order_position` VALUES (13151, 2, 2682, 324, '109.37767958730295', '24.324123133276395', '104.0', '15.0', '2020-09-05 17:38:14');
+INSERT INTO `t_order_position` VALUES (13152, 2, 2682, 324, '109.37782980572293', '24.323590125433824', '102.0', '15.0', '2020-09-05 17:38:19');
+INSERT INTO `t_order_position` VALUES (13153, 2, 2682, 324, '109.37799672342915', '24.323157106935305', '100.0', '15.0', '2020-09-05 17:38:24');
+INSERT INTO `t_order_position` VALUES (13154, 2, 2682, 324, '109.37839735140203', '24.322624378765262', '90.0', '15.0', '2020-09-05 17:38:34');
+INSERT INTO `t_order_position` VALUES (13155, 2, 2682, 324, '109.37878128066792', '24.32210828892657', '94.0', '15.0', '2020-09-05 17:38:44');
+INSERT INTO `t_order_position` VALUES (13156, 2, 2682, 324, '109.37913182518105', '24.321725452436873', '92.0', '15.0', '2020-09-05 17:38:49');
+INSERT INTO `t_order_position` VALUES (13157, 2, 2682, 324, '109.37946567372101', '24.321375917533928', '92.0', '15.0', '2020-09-05 17:38:54');
+INSERT INTO `t_order_position` VALUES (13158, 2, 2682, 324, '109.38006658840159', '24.3207100895885', '90.0', '15.0', '2020-09-05 17:39:04');
+INSERT INTO `t_order_position` VALUES (13159, 2, 2682, 324, '109.38058403317156', '24.320160795293173', '84.0', '15.0', '2020-09-05 17:39:14');
+INSERT INTO `t_order_position` VALUES (13160, 2, 2682, 324, '109.3812350146484', '24.319761584986804', '80.0', '15.0', '2020-09-05 17:39:24');
+INSERT INTO `t_order_position` VALUES (13161, 2, 2682, 324, '109.38190267062268', '24.319345715135547', '80.0', '15.0', '2020-09-05 17:39:39');
+INSERT INTO `t_order_position` VALUES (13162, 2, 2682, 324, '109.38257031120533', '24.318963153490493', '84.0', '15.0', '2020-09-05 17:39:50');
+INSERT INTO `t_order_position` VALUES (13163, 2, 2682, 324, '109.38322124140038', '24.31854723688249', '80.0', '15.0', '2020-09-05 17:40:00');
+INSERT INTO `t_order_position` VALUES (13164, 2, 2682, 324, '109.38373863632627', '24.318231151544776', '82.0', '15.0', '2020-09-05 17:40:10');
+INSERT INTO `t_order_position` VALUES (13165, 2, 2682, 324, '109.3843394677109', '24.317848486000038', '80.0', '15.0', '2020-09-05 17:41:40');
+INSERT INTO `t_order_position` VALUES (13166, 2, 2682, 324, '109.38487352145088', '24.317399100971343', '134.0', '15.0', '2020-09-05 17:42:00');
+INSERT INTO `t_order_position` VALUES (13167, 2, 2682, 324, '109.38438948547869', '24.31694879681836', '140.0', '15.0', '2020-09-05 17:42:10');
+INSERT INTO `t_order_position` VALUES (13168, 2, 2682, 324, '109.38504040837337', '24.31721597032015', '54.0', '15.0', '2020-09-05 17:42:46');
+INSERT INTO `t_order_position` VALUES (13169, 2, 2682, 324, '109.38564119346363', '24.31658335059127', '94.0', '15.0', '2020-09-05 17:43:06');
+INSERT INTO `t_order_position` VALUES (13170, 2, 2682, 324, '109.3860583843189', '24.315933900704465', '96.0', '15.0', '2020-09-05 17:43:16');
+INSERT INTO `t_order_position` VALUES (13171, 2, 2682, 324, '109.38647556800262', '24.315284444733685', '94.0', '15.0', '2020-09-05 17:43:26');
+INSERT INTO `t_order_position` VALUES (13172, 2, 2682, 324, '109.38679262438514', '24.31481817933202', '94.0', '15.0', '2020-09-05 17:43:46');
+INSERT INTO `t_order_position` VALUES (13173, 2, 2682, 324, '109.38712636291555', '24.314318600464944', '98.0', '15.0', '2020-09-05 17:43:56');
+INSERT INTO `t_order_position` VALUES (13174, 2, 2682, 324, '109.38746009288758', '24.31375237079019', '94.0', '15.0', '2020-09-05 17:44:06');
+INSERT INTO `t_order_position` VALUES (13175, 2, 2682, 324, '109.3877604435257', '24.31320277263601', '98.0', '15.0', '2020-09-05 17:44:21');
+INSERT INTO `t_order_position` VALUES (13176, 2, 2682, 324, '109.38806078939098', '24.31263650962286', '132.0', '15.0', '2020-09-05 17:44:56');
+INSERT INTO `t_order_position` VALUES (13177, 2, 2682, 324, '109.38751004264894', '24.311802992077432', '122.0', '15.0', '2020-09-05 17:45:07');
+INSERT INTO `t_order_position` VALUES (13178, 2, 2682, 324, '109.38732643477854', '24.31113637795919', '124.0', '15.0', '2020-09-05 17:45:12');
+INSERT INTO `t_order_position` VALUES (13179, 2, 2682, 324, '109.3871762010289', '24.310453128272595', '122.0', '15.0', '2020-09-05 17:45:17');
+INSERT INTO `t_order_position` VALUES (13180, 2, 2682, 324, '109.38700928580509', '24.309903157780735', '132.0', '15.0', '2020-09-05 17:45:22');
+INSERT INTO `t_order_position` VALUES (13181, 2, 2682, 324, '109.38672555276531', '24.309403075221255', '134.0', '15.0', '2020-09-05 17:45:27');
+INSERT INTO `t_order_position` VALUES (13182, 2, 2682, 324, '109.38614140531611', '24.308702797181184', '136.0', '15.0', '2020-09-05 17:45:37');
+INSERT INTO `t_order_position` VALUES (13183, 2, 2682, 324, '109.38572415146041', '24.308252576026472', '144.0', '15.0', '2020-09-05 17:45:47');
+INSERT INTO `t_order_position` VALUES (13184, 2, 2682, 324, '109.3861914701794', '24.308669516270424', '24.0', '15.0', '2020-09-05 17:46:07');
+INSERT INTO `t_order_position` VALUES (13185, 2, 2682, 324, '109.38682568485302', '24.309419819384384', '24.0', '15.0', '2020-09-05 17:46:32');
+INSERT INTO `t_order_position` VALUES (13186, 2, 2682, 324, '109.38710941475756', '24.309886577569834', '14.0', '15.0', '2020-09-05 17:46:37');
+INSERT INTO `t_order_position` VALUES (13187, 2, 2682, 324, '109.38734307991997', '24.31040327777172', '12.0', '15.0', '2020-09-05 17:46:42');
+INSERT INTO `t_order_position` VALUES (13188, 2, 2682, 324, '109.3874599228824', '24.310853236414854', '10.0', '15.0', '2020-09-05 17:46:47');
+INSERT INTO `t_order_position` VALUES (13189, 2, 2682, 324, '109.38761015680589', '24.31156980807731', '10.0', '15.0', '2020-09-05 17:46:52');
+INSERT INTO `t_order_position` VALUES (13190, 2, 2682, 324, '109.38777706686396', '24.312103113817958', '36.0', '15.0', '2020-09-05 17:46:57');
+INSERT INTO `t_order_position` VALUES (13191, 2, 2682, 324, '109.38839451601466', '24.31223688584437', '96.0', '15.0', '2020-09-05 17:47:13');
+INSERT INTO `t_order_position` VALUES (13192, 2, 2682, 324, '109.38869485870991', '24.311753924466192', '94.0', '15.0', '2020-09-05 17:47:17');
+INSERT INTO `t_order_position` VALUES (13193, 2, 2682, 324, '109.38906193847218', '24.31115437743049', '96.0', '15.0', '2020-09-05 17:47:22');
+INSERT INTO `t_order_position` VALUES (13194, 2, 2682, 324, '109.38947906553564', '24.310438230029394', '94.0', '15.0', '2020-09-05 17:47:27');
+INSERT INTO `t_order_position` VALUES (13195, 2, 2682, 324, '109.38992955774022', '24.309722099878385', '96.0', '12.0', '2020-09-05 17:47:32');
+INSERT INTO `t_order_position` VALUES (13196, 2, 2682, 324, '109.39029661805358', '24.309122536369404', '112.0', '15.0', '2020-09-05 17:47:43');
+INSERT INTO `t_order_position` VALUES (13197, 2, 2682, 324, '109.39014640715801', '24.308505951256954', '132.0', '15.0', '2020-09-05 17:47:53');
+INSERT INTO `t_order_position` VALUES (13198, 2, 2682, 324, '109.38984602350418', '24.307972567864752', '132.0', '15.0', '2020-09-05 17:48:03');
+INSERT INTO `t_order_position` VALUES (13199, 2, 2682, 324, '109.38981260972696', '24.307272755625473', '80.0', '15.0', '2020-09-05 17:48:13');
+INSERT INTO `t_order_position` VALUES (13200, 2, 2682, 324, '109.39022974873247', '24.30698980045838', '0.0', '15.0', '2020-09-05 17:48:23');
+INSERT INTO `t_order_position` VALUES (13201, 2, 2682, 324, '109.39074699854653', '24.30677355268668', '110.0', '15.0', '2020-09-05 17:48:58');
+INSERT INTO `t_order_position` VALUES (13202, 2, 2682, 324, '109.39034649524335', '24.306040168845833', '134.0', '15.0', '2020-09-05 17:49:13');
+INSERT INTO `t_order_position` VALUES (13203, 2, 2682, 324, '109.38996268300806', '24.30550673020416', '138.0', '15.0', '2020-09-05 17:49:23');
+INSERT INTO `t_order_position` VALUES (13204, 2, 2682, 324, '109.38951213478103', '24.305256485307343', '130.0', '15.0', '2020-09-05 17:49:33');
+INSERT INTO `t_order_position` VALUES (13205, 2, 2682, 324, '109.38901155126901', '24.30558935182864', '0.0', '15.0', '2020-09-05 17:49:53');
+INSERT INTO `t_order_position` VALUES (13206, 2, 2683, 334, '109.40919428162583', '24.318742079043012', '0.0', '15.0', '2020-09-05 17:51:10');
+INSERT INTO `t_order_position` VALUES (13207, 2, 2683, 334, '109.40921098914474', '24.319358563113344', '164.0', '15.0', '2020-09-05 17:51:55');
+INSERT INTO `t_order_position` VALUES (13208, 2, 2683, 334, '109.40912767080596', '24.32000838110945', '162.0', '15.0', '2020-09-05 17:54:01');
+INSERT INTO `t_order_position` VALUES (13209, 2, 2683, 334, '109.40911103373773', '24.320591545517413', '166.0', '15.0', '2020-09-05 17:54:11');
+INSERT INTO `t_order_position` VALUES (13210, 2, 2683, 334, '109.4091110670387', '24.32115804674887', '0.0', '15.0', '2020-09-05 17:54:31');
+INSERT INTO `t_order_position` VALUES (13211, 2, 2683, 334, '109.40906108914996', '24.321774538495244', '166.0', '15.0', '2020-09-05 17:54:51');
+INSERT INTO `t_order_position` VALUES (13212, 2, 2683, 334, '109.40899445438473', '24.322640959305538', '164.0', '15.0', '2020-09-05 17:55:01');
+INSERT INTO `t_order_position` VALUES (13213, 2, 2683, 334, '109.40899448376815', '24.32314081411448', '166.0', '15.0', '2020-09-05 17:55:06');
+INSERT INTO `t_order_position` VALUES (13214, 2, 2683, 334, '109.40892784976297', '24.32402389748936', '164.0', '12.0', '2020-09-05 17:55:17');
+INSERT INTO `t_order_position` VALUES (13215, 2, 2683, 334, '109.40886119594927', '24.324573744255797', '0.0', '14.0', '2020-09-05 17:55:21');
+INSERT INTO `t_order_position` VALUES (13216, 2, 2683, 334, '109.40891124191414', '24.325106919141312', '166.0', '14.0', '2020-09-05 17:55:26');
+INSERT INTO `t_order_position` VALUES (13217, 2, 2683, 334, '109.40889460662702', '24.32572340942673', '166.0', '13.0', '2020-09-05 17:55:37');
+INSERT INTO `t_order_position` VALUES (13218, 2, 2683, 334, '109.40884463016236', '24.326373226629077', '0.0', '14.0', '2020-09-05 17:55:47');
+INSERT INTO `t_order_position` VALUES (13219, 2, 2683, 334, '109.40887800266911', '24.32687308000663', '2.0', '14.0', '2020-09-05 17:57:48');
+INSERT INTO `t_order_position` VALUES (13220, 2, 2683, 334, '109.40899475801758', '24.32780613506527', '2.0', '15.0', '2020-09-05 17:57:58');
+INSERT INTO `t_order_position` VALUES (13221, 2, 2683, 334, '109.40904481246976', '24.32848926809715', '4.0', '15.0', '2020-09-05 17:58:03');
+INSERT INTO `t_order_position` VALUES (13222, 2, 2683, 334, '109.40909486581927', '24.32915573947704', '4.0', '15.0', '2020-09-05 17:58:08');
+INSERT INTO `t_order_position` VALUES (13223, 2, 2683, 334, '109.40916158644909', '24.329755561769225', '2.0', '15.0', '2020-09-05 17:58:18');
+INSERT INTO `t_order_position` VALUES (13224, 2, 2683, 334, '109.40919495745622', '24.330238754087233', '4.0', '15.0', '2020-09-05 17:58:23');
+INSERT INTO `t_order_position` VALUES (13225, 2, 2683, 334, '109.40926168363413', '24.33093854818656', '4.0', '15.0', '2020-09-05 17:58:28');
+INSERT INTO `t_order_position` VALUES (13226, 2, 2683, 334, '109.40932841057223', '24.331655004418305', '2.0', '14.0', '2020-09-05 17:58:33');
+INSERT INTO `t_order_position` VALUES (13227, 2, 2683, 334, '109.40939513925', '24.332404784762954', '2.0', '13.0', '2020-09-05 17:58:38');
+INSERT INTO `t_order_position` VALUES (13228, 2, 2683, 334, '109.40942852456632', '24.33313790714549', '4.0', '15.0', '2020-09-05 17:58:43');
+INSERT INTO `t_order_position` VALUES (13229, 2, 2683, 334, '109.40951193472317', '24.334070967858036', '4.0', '13.0', '2020-09-05 17:58:48');
+INSERT INTO `t_order_position` VALUES (13230, 2, 2683, 334, '109.409545323766', '24.33487073897711', '4.0', '14.0', '2020-09-05 17:58:53');
+INSERT INTO `t_order_position` VALUES (13231, 2, 2683, 334, '109.40957871079509', '24.33563718656861', '4.0', '15.0', '2020-09-05 17:58:58');
+INSERT INTO `t_order_position` VALUES (13232, 2, 2683, 334, '109.40964544158898', '24.336436954570328', '4.0', '14.0', '2020-09-05 17:59:03');
+INSERT INTO `t_order_position` VALUES (13233, 2, 2683, 334, '109.40969549737677', '24.337170076891805', '4.0', '14.0', '2020-09-05 17:59:08');
+INSERT INTO `t_order_position` VALUES (13234, 2, 2683, 334, '109.40976221799086', '24.33780322528613', '4.0', '15.0', '2020-09-05 17:59:13');
+INSERT INTO `t_order_position` VALUES (13235, 2, 2683, 334, '109.4098456150209', '24.33853634383697', '10.0', '15.0', '2020-09-05 17:59:23');
+INSERT INTO `t_order_position` VALUES (13236, 2, 2683, 334, '109.40991233024253', '24.339086182277175', '4.0', '14.0', '2020-09-05 17:59:54');
+INSERT INTO `t_order_position` VALUES (13237, 2, 2683, 334, '109.40999573938868', '24.340035907707595', '4.0', '14.0', '2020-09-05 18:00:04');
+INSERT INTO `t_order_position` VALUES (13238, 2, 2683, 334, '109.41001243841737', '24.340519105065606', '0.0', '14.0', '2020-09-05 18:00:09');
+INSERT INTO `t_order_position` VALUES (13239, 2, 2683, 334, '109.41009585009019', '24.34151881744589', '2.0', '13.0', '2020-09-05 18:00:19');
+INSERT INTO `t_order_position` VALUES (13240, 2, 2683, 334, '109.41007920990563', '24.34203534418276', '4.0', '15.0', '2020-09-05 18:00:24');
+INSERT INTO `t_order_position` VALUES (13241, 2, 2683, 334, '109.41016259681388', '24.34261850526576', '4.0', '15.0', '2020-09-05 18:00:34');
+INSERT INTO `t_order_position` VALUES (13242, 2, 2683, 334, '109.41016262522236', '24.343101705923967', '10.0', '15.0', '2020-09-05 18:00:44');
+INSERT INTO `t_order_position` VALUES (13243, 2, 2683, 334, '109.41026270963016', '24.344151403699016', '4.0', '15.0', '2020-09-05 18:00:54');
+INSERT INTO `t_order_position` VALUES (13244, 2, 2683, 334, '109.41031277368978', '24.345051150431157', '4.0', '12.0', '2020-09-05 18:01:04');
+INSERT INTO `t_order_position` VALUES (13245, 2, 2683, 334, '109.41039616845158', '24.345784271255987', '4.0', '14.0', '2020-09-05 18:01:09');
+INSERT INTO `t_order_position` VALUES (13246, 2, 2683, 334, '109.41044622336462', '24.346534059608757', '2.0', '15.0', '2020-09-05 18:01:14');
+INSERT INTO `t_order_position` VALUES (13247, 2, 2683, 334, '109.41049627619462', '24.347250524007652', '166.0', '15.0', '2020-09-05 18:01:19');
+INSERT INTO `t_order_position` VALUES (13248, 2, 2683, 334, '109.41056299416891', '24.34788367521736', '4.0', '15.0', '2020-09-05 18:01:24');
+INSERT INTO `t_order_position` VALUES (13249, 2, 2683, 334, '109.41061304573027', '24.348583477980853', '4.0', '15.0', '2020-09-05 18:01:29');
+INSERT INTO `t_order_position` VALUES (13250, 2, 2683, 334, '109.41064642316557', '24.349216635090787', '2.0', '14.0', '2020-09-05 18:01:34');
+INSERT INTO `t_order_position` VALUES (13251, 2, 2683, 334, '109.41071314162377', '24.349866449066706', '2.0', '15.0', '2020-09-05 18:01:41');
+INSERT INTO `t_order_position` VALUES (13252, 2, 2683, 334, '109.41076318595583', '24.350449617266612', '4.0', '15.0', '2020-09-05 18:01:44');
+INSERT INTO `t_order_position` VALUES (13253, 2, 2683, 334, '109.4108298952112', '24.350949471728327', '2.0', '14.0', '2020-09-05 18:01:49');
+INSERT INTO `t_order_position` VALUES (13254, 2, 2683, 334, '109.41092997337566', '24.351949186650888', '4.0', '14.0', '2020-09-05 18:02:00');
+INSERT INTO `t_order_position` VALUES (13255, 2, 2683, 334, '109.41093000178634', '24.352432391011302', '4.0', '15.0', '2020-09-05 18:02:05');
+INSERT INTO `t_order_position` VALUES (13256, 2, 2683, 334, '109.41093003313614', '24.352965582254384', '4.0', '15.0', '2020-09-05 18:02:25');
+INSERT INTO `t_order_position` VALUES (13257, 2, 2683, 334, '109.41091341029815', '24.353765372529676', '0.0', '15.0', '2020-09-05 18:02:40');
+INSERT INTO `t_order_position` VALUES (13258, 2, 2683, 334, '109.4109634502158', '24.354281893173273', '4.0', '15.0', '2020-09-05 18:02:45');
+INSERT INTO `t_order_position` VALUES (13259, 2, 2683, 334, '109.41104683543386', '24.354898381366922', '4.0', '12.0', '2020-09-05 18:02:50');
+INSERT INTO `t_order_position` VALUES (13260, 2, 2683, 334, '109.41106353751638', '24.355448232900596', '6.0', '13.0', '2020-09-05 18:02:55');
+INSERT INTO `t_order_position` VALUES (13261, 2, 2683, 334, '109.4111135780414', '24.355981416205715', '0.0', '13.0', '2020-09-05 18:03:00');
+INSERT INTO `t_order_position` VALUES (13262, 2, 2683, 334, '109.4111136084123', '24.356497946744952', '8.0', '14.0', '2020-09-05 18:03:10');
+INSERT INTO `t_order_position` VALUES (13263, 2, 2683, 334, '109.41126368613514', '24.35736435707272', '166.0', '13.0', '2020-09-05 18:03:20');
+INSERT INTO `t_order_position` VALUES (13264, 2, 2683, 334, '109.41134708284744', '24.3581974556544', '4.0', '15.0', '2020-09-05 18:03:30');
+INSERT INTO `t_order_position` VALUES (13265, 2, 2683, 334, '109.4114137901715', '24.358697311606413', '4.0', '14.0', '2020-09-05 18:03:35');
+INSERT INTO `t_order_position` VALUES (13266, 2, 2683, 334, '109.41146382982693', '24.35923049558071', '4.0', '14.0', '2020-09-05 18:03:40');
+INSERT INTO `t_order_position` VALUES (13267, 2, 2683, 334, '109.41151386935805', '24.35976367968219', '8.0', '14.0', '2020-09-05 18:03:45');
+INSERT INTO `t_order_position` VALUES (13268, 2, 2683, 334, '109.41161391375641', '24.360246866523998', '14.0', '14.0', '2020-09-05 18:03:50');
+INSERT INTO `t_order_position` VALUES (13269, 2, 2683, 334, '109.41179732311139', '24.36106328198686', '4.0', '14.0', '2020-09-05 18:04:00');
+INSERT INTO `t_order_position` VALUES (13270, 2, 2683, 334, '109.41184736377258', '24.361629790867724', '164.0', '15.0', '2020-09-05 18:04:05');
+INSERT INTO `t_order_position` VALUES (13271, 2, 2683, 334, '109.41176405437152', '24.362246316135895', '162.0', '15.0', '2020-09-05 18:04:10');
+INSERT INTO `t_order_position` VALUES (13272, 2, 2683, 334, '109.41171408012593', '24.362812847222102', '2.0', '15.0', '2020-09-05 18:04:15');
+INSERT INTO `t_order_position` VALUES (13273, 2, 2683, 334, '109.41174745084342', '24.363362698338815', '2.0', '15.0', '2020-09-05 18:04:20');
+INSERT INTO `t_order_position` VALUES (13274, 2, 2683, 334, '109.41178081954615', '24.363879224896184', '2.0', '15.0', '2020-09-05 18:04:25');
+INSERT INTO `t_order_position` VALUES (13275, 2, 2683, 334, '109.41183085926981', '24.3644290727724', '2.0', '15.0', '2020-09-05 18:04:30');
+INSERT INTO `t_order_position` VALUES (13276, 2, 2683, 334, '109.41186423273328', '24.365028911663387', '2.0', '15.0', '2020-09-05 18:05:16');
+INSERT INTO `t_order_position` VALUES (13277, 2, 2683, 334, '109.4119309501012', '24.365728717846125', '8.0', '15.0', '2020-09-05 18:05:31');
+INSERT INTO `t_order_position` VALUES (13278, 2, 2683, 334, '109.41199765842978', '24.366278562488528', '6.0', '15.0', '2020-09-05 18:05:41');
+INSERT INTO `t_order_position` VALUES (13279, 2, 2683, 334, '109.4120977082602', '24.366895049228145', '6.0', '15.0', '2020-09-05 18:05:51');
+INSERT INTO `t_order_position` VALUES (13280, 2, 2683, 334, '109.41211440947454', '24.367444905540278', '6.0', '15.0', '2020-09-05 18:06:01');
+INSERT INTO `t_order_position` VALUES (13281, 2, 2683, 334, '109.41214779226607', '24.36821136997493', '2.0', '15.0', '2020-09-05 18:06:11');
+INSERT INTO `t_order_position` VALUES (13282, 2, 2683, 334, '109.4122145096732', '24.368927839663698', '4.0', '15.0', '2020-09-05 18:06:21');
+INSERT INTO `t_order_position` VALUES (13283, 2, 2683, 334, '109.41233124280207', '24.36981092225371', '2.0', '15.0', '2020-09-05 18:06:31');
+INSERT INTO `t_order_position` VALUES (13284, 2, 2683, 334, '109.41233129081284', '24.370627383406813', '4.0', '15.0', '2020-09-05 18:06:41');
+INSERT INTO `t_order_position` VALUES (13285, 2, 2683, 334, '109.41243133506279', '24.3711772209988', '6.0', '15.0', '2020-09-05 18:06:51');
+INSERT INTO `t_order_position` VALUES (13286, 2, 2683, 334, '109.41244804090014', '24.371810391548784', '12.0', '15.0', '2020-09-05 18:07:06');
+INSERT INTO `t_order_position` VALUES (13287, 2, 2683, 334, '109.41246474084483', '24.372343587408984', '2.0', '15.0', '2020-09-05 18:07:16');
+INSERT INTO `t_order_position` VALUES (13288, 2, 2683, 334, '109.41249811521732', '24.37297675443383', '4.0', '15.0', '2020-09-05 18:07:27');
+INSERT INTO `t_order_position` VALUES (13289, 2, 2683, 334, '109.41259817431349', '24.373793192737295', '4.0', '15.0', '2020-09-05 18:07:37');
+INSERT INTO `t_order_position` VALUES (13290, 2, 2683, 334, '109.41266488238671', '24.37437636425055', '6.0', '15.0', '2020-09-05 18:07:42');
+INSERT INTO `t_order_position` VALUES (13291, 2, 2683, 334, '109.41268158607109', '24.3749762112874', '6.0', '15.0', '2020-09-05 18:08:02');
+INSERT INTO `t_order_position` VALUES (13292, 2, 2683, 334, '109.41353166833517', '24.37517592744415', '56.0', '15.0', '2020-09-05 18:08:22');
+INSERT INTO `t_order_position` VALUES (13293, 2, 2683, 334, '109.41433170363244', '24.375209002356648', '60.0', '15.0', '2020-09-05 18:08:32');
+INSERT INTO `t_order_position` VALUES (13294, 2, 2683, 334, '109.41526503336364', '24.37517534904641', '30.0', '15.0', '2020-09-05 18:08:42');
+INSERT INTO `t_order_position` VALUES (13295, 2, 2683, 334, '109.41553171701037', '24.375608474282817', '8.0', '15.0', '2020-09-05 18:08:47');
+INSERT INTO `t_order_position` VALUES (13296, 2, 2683, 334, '109.41561507929195', '24.376158306343985', '6.0', '15.0', '2020-09-05 18:08:52');
+INSERT INTO `t_order_position` VALUES (13297, 2, 2683, 334, '109.41568177827294', '24.376758132581653', '6.0', '15.0', '2020-09-05 18:08:57');
+INSERT INTO `t_order_position` VALUES (13298, 2, 2683, 334, '109.41576513796727', '24.377274639478753', '6.0', '15.0', '2020-09-05 18:09:02');
+INSERT INTO `t_order_position` VALUES (13299, 2, 2683, 334, '109.41586517482342', '24.37799109063136', '0.0', '15.0', '2020-09-05 18:09:22');
+INSERT INTO `t_order_position` VALUES (13300, 2, 2683, 334, '109.41569848923848', '24.37752460435712', '120.0', '15.0', '2020-09-05 18:11:18');
+INSERT INTO `t_order_position` VALUES (13301, 2, 2683, 334, '109.4155984633038', '24.377008103565387', '118.0', '15.0', '2020-09-05 18:11:39');
+INSERT INTO `t_order_position` VALUES (13302, 2, 2683, 334, '109.41553177090286', '24.376524914882722', '118.0', '15.0', '2020-09-05 18:11:54');
+INSERT INTO `t_order_position` VALUES (13303, 2, 2683, 334, '109.41546507435939', '24.375975075979863', '120.0', '15.0', '2020-09-05 18:12:04');
+INSERT INTO `t_order_position` VALUES (13304, 2, 2683, 334, '109.41533170607974', '24.375308624458306', '148.0', '15.0', '2020-09-05 18:12:14');
+INSERT INTO `t_order_position` VALUES (13305, 2, 2683, 334, '109.4147983690595', '24.375108867882656', '112.0', '15.0', '2020-09-05 18:12:24');
+INSERT INTO `t_order_position` VALUES (13306, 2, 2683, 334, '109.41403169096718', '24.37514244936622', '110.0', '15.0', '2020-09-05 18:12:34');
+INSERT INTO `t_order_position` VALUES (13307, 2, 2683, 334, '109.41318164073806', '24.375126040233695', '114.0', '15.0', '2020-09-05 18:12:54');
+INSERT INTO `t_order_position` VALUES (13308, 2, 2683, 334, '109.41259825270072', '24.375126195395648', '140.0', '15.0', '2020-09-05 18:13:04');
+INSERT INTO `t_order_position` VALUES (13309, 2, 2683, 334, '109.41249820634197', '24.374526369078545', '114.0', '15.0', '2020-09-05 18:13:14');
+INSERT INTO `t_order_position` VALUES (13310, 2, 2683, 334, '109.41246482609007', '24.373793226062833', '118.0', '15.0', '2020-09-05 18:13:25');
+INSERT INTO `t_order_position` VALUES (13311, 2, 2683, 334, '109.41236476632844', '24.37297678716252', '116.0', '15.0', '2020-09-05 18:13:35');
+INSERT INTO `t_order_position` VALUES (13312, 2, 2683, 334, '109.41233138977456', '24.372310294933484', '114.0', '15.0', '2020-09-05 18:13:45');
+INSERT INTO `t_order_position` VALUES (13313, 2, 2683, 334, '109.41231469069888', '24.371793761483985', '116.0', '15.0', '2020-09-05 18:13:50');
+INSERT INTO `t_order_position` VALUES (13314, 2, 2683, 334, '109.41228132581998', '24.37132721970048', '118.0', '15.0', '2020-09-05 18:13:55');
+INSERT INTO `t_order_position` VALUES (13315, 2, 2683, 334, '109.41223128819601', '24.370794032077356', '118.0', '15.0', '2020-09-05 18:14:00');
+INSERT INTO `t_order_position` VALUES (13316, 2, 2683, 334, '109.41219791827972', '24.37024417820222', '116.0', '15.0', '2020-09-05 18:14:05');
+INSERT INTO `t_order_position` VALUES (13317, 2, 2683, 334, '109.41211452019168', '24.36932776198396', '118.0', '15.0', '2020-09-05 18:14:15');
+INSERT INTO `t_order_position` VALUES (13318, 2, 2683, 334, '109.41203112959613', '24.36854464575483', '118.0', '15.0', '2020-09-05 18:14:25');
+INSERT INTO `t_order_position` VALUES (13319, 2, 2683, 334, '109.41196440864039', '24.367778188439555', '124.0', '15.0', '2020-09-05 18:14:35');
+INSERT INTO `t_order_position` VALUES (13320, 2, 2683, 334, '109.41198103158236', '24.366995050377103', '120.0', '15.0', '2020-09-05 18:14:45');
+INSERT INTO `t_order_position` VALUES (13321, 2, 2683, 334, '109.4119143231982', '24.36644520534988', '118.0', '15.0', '2020-09-05 18:14:55');
+INSERT INTO `t_order_position` VALUES (13322, 2, 2683, 334, '109.41191429086543', '24.36589534565689', '116.0', '15.0', '2020-09-05 18:15:05');
+INSERT INTO `t_order_position` VALUES (13323, 2, 2683, 334, '109.41183090139998', '24.365145555773143', '116.0', '15.0', '2020-09-05 18:15:15');
+INSERT INTO `t_order_position` VALUES (13324, 2, 2683, 334, '109.41176418467987', '24.364462412029532', '122.0', '15.0', '2020-09-05 18:15:25');
+INSERT INTO `t_order_position` VALUES (13325, 2, 2683, 334, '109.41193090503147', '24.364962247296138', '2.0', '15.0', '2020-09-05 18:16:16');
+INSERT INTO `t_order_position` VALUES (13326, 2, 2683, 334, '109.41194760736356', '24.36552876523435', '2.0', '15.0', '2020-09-05 18:17:16');
+INSERT INTO `t_order_position` VALUES (13327, 2, 2683, 334, '109.41201431367716', '24.36604528490682', '4.0', '15.0', '2020-09-05 18:17:31');
+INSERT INTO `t_order_position` VALUES (13328, 2, 2682, 324, '109.39019647137391', '24.3086059559346', '26.0', '7.0', '2020-09-05 18:17:41');
+INSERT INTO `t_order_position` VALUES (13329, 2, 2683, 334, '109.41208102662786', '24.366678441556633', '6.0', '15.0', '2020-09-05 18:17:41');
+INSERT INTO `t_order_position` VALUES (13330, 2, 2682, 324, '109.39071375127055', '24.308889557945616', '72.0', '14.0', '2020-09-05 18:17:51');
+INSERT INTO `t_order_position` VALUES (13331, 2, 2683, 334, '109.4121644150554', '24.367428231486606', '4.0', '15.0', '2020-09-05 18:17:51');
+INSERT INTO `t_order_position` VALUES (13332, 2, 2682, 324, '109.39141451561227', '24.30845681816142', '80.0', '14.0', '2020-09-05 18:18:01');
+INSERT INTO `t_order_position` VALUES (13333, 2, 2682, 324, '109.39201515296126', '24.30807398198096', '82.0', '14.0', '2020-09-05 18:18:06');
+INSERT INTO `t_order_position` VALUES (13334, 2, 2682, 324, '109.39253235553849', '24.30774106642547', '80.0', '15.0', '2020-09-05 18:18:11');
+INSERT INTO `t_order_position` VALUES (13335, 2, 2682, 324, '109.39299949614069', '24.307441434410283', '82.0', '15.0', '2020-09-05 18:18:16');
+INSERT INTO `t_order_position` VALUES (13336, 2, 2683, 334, '109.41218112013367', '24.368044737763196', '166.0', '15.0', '2020-09-05 18:18:17');
+INSERT INTO `t_order_position` VALUES (13337, 2, 2682, 324, '109.39365012841992', '24.30682532606689', '94.0', '15.0', '2020-09-05 18:18:26');
+INSERT INTO `t_order_position` VALUES (13338, 2, 2683, 334, '109.4122311764979', '24.36889451082024', '0.0', '15.0', '2020-09-05 18:18:27');
+INSERT INTO `t_order_position` VALUES (13339, 2, 2683, 334, '109.4122645620354', '24.369710963424414', '2.0', '15.0', '2020-09-05 18:18:37');
+INSERT INTO `t_order_position` VALUES (13340, 2, 2683, 334, '109.41233128983303', '24.370610720928592', '4.0', '15.0', '2020-09-05 18:18:47');
+INSERT INTO `t_order_position` VALUES (13341, 2, 2682, 324, '109.39398377569952', '24.306458954530523', '94.0', '15.0', '2020-09-05 18:18:51');
+INSERT INTO `t_order_position` VALUES (13342, 2, 2683, 334, '109.41238132916715', '24.371177233216113', '0.0', '15.0', '2020-09-05 18:18:57');
+INSERT INTO `t_order_position` VALUES (13343, 2, 2682, 324, '109.39431741407004', '24.306025932165582', '70.0', '15.0', '2020-09-05 18:19:01');
+INSERT INTO `t_order_position` VALUES (13344, 2, 2683, 334, '109.41246471732903', '24.37194368740864', '4.0', '15.0', '2020-09-05 18:19:12');
+INSERT INTO `t_order_position` VALUES (13345, 2, 2683, 334, '109.41249810051988', '24.372726816781487', '2.0', '15.0', '2020-09-05 18:19:22');
+INSERT INTO `t_order_position` VALUES (13346, 2, 2682, 324, '109.3949680362297', '24.305892976664822', '72.0', '14.0', '2020-09-05 18:19:41');
+INSERT INTO `t_order_position` VALUES (13347, 2, 2683, 334, '109.41228136403292', '24.371977056926763', '116.0', '15.0', '2020-09-05 18:20:02');
+INSERT INTO `t_order_position` VALUES (13348, 2, 2683, 334, '109.41224799615912', '24.37146052754835', '118.0', '15.0', '2020-09-05 18:20:07');
+INSERT INTO `t_order_position` VALUES (13349, 2, 2683, 334, '109.41223129505471', '24.37091066944821', '116.0', '15.0', '2020-09-05 18:20:12');
+INSERT INTO `t_order_position` VALUES (13350, 2, 2683, 334, '109.41218126024559', '24.370427469329023', '116.0', '15.0', '2020-09-05 18:20:17');
+INSERT INTO `t_order_position` VALUES (13351, 2, 2683, 334, '109.41211453194931', '24.369527711518675', '118.0', '15.0', '2020-09-05 18:20:27');
+INSERT INTO `t_order_position` VALUES (13352, 2, 2682, 324, '109.39555190981969', '24.3057433103517', '68.0', '15.0', '2020-09-05 18:20:32');
+INSERT INTO `t_order_position` VALUES (13353, 2, 2683, 334, '109.41206449293041', '24.36897786188941', '114.0', '15.0', '2020-09-05 18:20:32');
+INSERT INTO `t_order_position` VALUES (13354, 2, 2683, 334, '109.41204779657322', '24.368511317058946', '118.0', '15.0', '2020-09-05 18:20:38');
+INSERT INTO `t_order_position` VALUES (13355, 2, 2683, 334, '109.41201440381755', '24.367578227918155', '116.0', '15.0', '2020-09-05 18:20:48');
+INSERT INTO `t_order_position` VALUES (13356, 2, 2683, 334, '109.41191435063216', '24.36691175316989', '116.0', '15.0', '2020-09-05 18:20:58');
+INSERT INTO `t_order_position` VALUES (13357, 2, 2682, 324, '109.39620249748762', '24.305643645445148', '70.0', '15.0', '2020-09-05 18:21:07');
+INSERT INTO `t_order_position` VALUES (13358, 2, 2683, 334, '109.41188097627146', '24.36629525097693', '112.0', '15.0', '2020-09-05 18:21:08');
+INSERT INTO `t_order_position` VALUES (13359, 2, 2683, 334, '109.41186425232877', '24.365362159686153', '114.0', '15.0', '2020-09-05 18:21:18');
+INSERT INTO `t_order_position` VALUES (13360, 2, 2682, 324, '109.39680301840274', '24.30547729528142', '62.0', '13.0', '2020-09-05 18:21:22');
+INSERT INTO `t_order_position` VALUES (13361, 2, 2683, 334, '109.41179754845632', '24.364895627056036', '116.0', '15.0', '2020-09-05 18:21:23');
+INSERT INTO `t_order_position` VALUES (13362, 2, 2683, 334, '109.41178085187846', '24.364429083648062', '124.0', '15.0', '2020-09-05 18:21:28');
+INSERT INTO `t_order_position` VALUES (13363, 2, 2682, 324, '109.39757033513564', '24.305410967006345', '66.0', '14.0', '2020-09-05 18:21:32');
+INSERT INTO `t_order_position` VALUES (13364, 2, 2683, 334, '109.41169747851598', '24.36396255468969', '122.0', '15.0', '2020-09-05 18:21:33');
+INSERT INTO `t_order_position` VALUES (13365, 2, 2682, 324, '109.39835430071338', '24.305277974028968', '64.0', '15.0', '2020-09-05 18:21:42');
+INSERT INTO `t_order_position` VALUES (13366, 2, 2683, 334, '109.41131402694218', '24.36301287744319', '130.0', '15.0', '2020-09-05 18:21:43');
+INSERT INTO `t_order_position` VALUES (13367, 2, 2683, 334, '109.41101394165922', '24.362479738372436', '126.0', '15.0', '2020-09-05 18:21:48');
+INSERT INTO `t_order_position` VALUES (13368, 2, 2682, 324, '109.39908819365169', '24.305044969090986', '84.0', '15.0', '2020-09-05 18:21:52');
+INSERT INTO `t_order_position` VALUES (13369, 2, 2683, 334, '109.41083053691477', '24.361863263758345', '118.0', '15.0', '2020-09-05 18:21:53');
+INSERT INTO `t_order_position` VALUES (13370, 2, 2683, 334, '109.41074714785796', '24.361196784125713', '114.0', '15.0', '2020-09-05 18:21:58');
+INSERT INTO `t_order_position` VALUES (13371, 2, 2682, 324, '109.39968862441263', '24.3047119309984', '48.0', '15.0', '2020-09-05 18:22:02');
+INSERT INTO `t_order_position` VALUES (13372, 2, 2683, 334, '109.41081378565148', '24.36048029206538', '106.0', '15.0', '2020-09-05 18:22:03');
+INSERT INTO `t_order_position` VALUES (13373, 2, 2683, 334, '109.41106379616069', '24.359847078807373', '104.0', '15.0', '2020-09-05 18:22:08');
+INSERT INTO `t_order_position` VALUES (13374, 2, 2682, 324, '109.40003891452486', '24.30531185471914', '156.0', '15.0', '2020-09-05 18:22:12');
+INSERT INTO `t_order_position` VALUES (13375, 2, 2683, 334, '109.411263795864', '24.359230535138394', '110.0', '15.0', '2020-09-05 18:22:13');
+INSERT INTO `t_order_position` VALUES (13376, 2, 2682, 324, '109.3999388726314', '24.3058283347704', '8.0', '15.0', '2020-09-05 18:22:18');
+INSERT INTO `t_order_position` VALUES (13377, 2, 2683, 334, '109.41133043978238', '24.358647341191585', '114.0', '15.0', '2020-09-05 18:22:18');
+INSERT INTO `t_order_position` VALUES (13378, 2, 2682, 324, '109.39997226826551', '24.306478147724448', '12.0', '13.0', '2020-09-05 18:22:23');
+INSERT INTO `t_order_position` VALUES (13379, 2, 2683, 334, '109.41129707033421', '24.358130816241662', '116.0', '15.0', '2020-09-05 18:22:23');
+INSERT INTO `t_order_position` VALUES (13380, 2, 2682, 324, '109.40022248378831', '24.30709470108131', '12.0', '14.0', '2020-09-05 18:22:28');
+INSERT INTO `t_order_position` VALUES (13381, 2, 2683, 334, '109.41124702536587', '24.357514320918185', '118.0', '15.0', '2020-09-05 18:22:28');
+INSERT INTO `t_order_position` VALUES (13382, 2, 2682, 324, '109.40045602194513', '24.307777893985467', '14.0', '14.0', '2020-09-05 18:22:33');
+INSERT INTO `t_order_position` VALUES (13383, 2, 2682, 324, '109.40063951126048', '24.308261131759846', '24.0', '15.0', '2020-09-05 18:22:38');
+INSERT INTO `t_order_position` VALUES (13384, 2, 2683, 334, '109.41121363618556', '24.356664550660685', '118.0', '15.0', '2020-09-05 18:22:38');
+INSERT INTO `t_order_position` VALUES (13385, 2, 2683, 334, '109.41111357706168', '24.355964753933964', '118.0', '15.0', '2020-09-05 18:22:43');
+INSERT INTO `t_order_position` VALUES (13386, 2, 2682, 324, '109.40123996470054', '24.309061045310294', '26.0', '15.0', '2020-09-05 18:22:48');
+INSERT INTO `t_order_position` VALUES (13387, 2, 2683, 334, '109.41101351842056', '24.355281619432102', '118.0', '15.0', '2020-09-05 18:22:48');
+INSERT INTO `t_order_position` VALUES (13388, 2, 2683, 334, '109.410980146489', '24.35473177095529', '118.0', '15.0', '2020-09-05 18:22:53');
+INSERT INTO `t_order_position` VALUES (13389, 2, 2682, 324, '109.40162357323373', '24.309477677357908', '30.0', '15.0', '2020-09-05 18:22:58');
+INSERT INTO `t_order_position` VALUES (13390, 2, 2682, 324, '109.4021906319768', '24.31006095804001', '28.0', '15.0', '2020-09-05 18:23:08');
+INSERT INTO `t_order_position` VALUES (13391, 2, 2682, 324, '109.40275767928813', '24.310710871898127', '26.0', '15.0', '2020-09-05 18:23:18');
+INSERT INTO `t_order_position` VALUES (13392, 2, 2682, 324, '109.4031245818635', '24.311094153459283', '26.0', '15.0', '2020-09-05 18:23:23');
+INSERT INTO `t_order_position` VALUES (13393, 2, 2682, 324, '109.40347480106672', '24.31146076517816', '26.0', '15.0', '2020-09-05 18:23:28');
+INSERT INTO `t_order_position` VALUES (13394, 2, 2682, 324, '109.40387504617985', '24.311910686777342', '28.0', '15.0', '2020-09-05 18:23:33');
+INSERT INTO `t_order_position` VALUES (13395, 2, 2683, 334, '109.41094677450236', '24.354181922680755', '118.0', '15.0', '2020-09-05 18:23:34');
+INSERT INTO `t_order_position` VALUES (13396, 2, 2682, 324, '109.40425860533274', '24.312310614616006', '26.0', '15.0', '2020-09-05 18:23:38');
+INSERT INTO `t_order_position` VALUES (13397, 2, 2683, 334, '109.41089673552301', '24.353682064282793', '120.0', '15.0', '2020-09-05 18:23:44');
+INSERT INTO `t_order_position` VALUES (13398, 2, 2682, 324, '109.40485894592464', '24.31296048198474', '28.0', '15.0', '2020-09-05 18:23:48');
+INSERT INTO `t_order_position` VALUES (13399, 2, 2682, 324, '109.40529251226332', '24.313393720738528', '30.0', '15.0', '2020-09-05 18:23:58');
+INSERT INTO `t_order_position` VALUES (13400, 2, 2683, 334, '109.41081334870452', '24.353048913924294', '118.0', '15.0', '2020-09-05 18:23:59');
+INSERT INTO `t_order_position` VALUES (13401, 2, 2683, 334, '109.41076331135362', '24.352582380148704', '116.0', '15.0', '2020-09-05 18:24:04');
+INSERT INTO `t_order_position` VALUES (13402, 2, 2683, 334, '109.41074660706413', '24.351999205268346', '116.0', '15.0', '2020-09-05 18:24:09');
+INSERT INTO `t_order_position` VALUES (13403, 2, 2683, 334, '109.41071323763087', '24.351499344522995', '116.0', '15.0', '2020-09-05 18:24:14');
+INSERT INTO `t_order_position` VALUES (13404, 2, 2682, 324, '109.4057260645784', '24.313743642895197', '38.0', '15.0', '2020-09-05 18:24:18');
+INSERT INTO `t_order_position` VALUES (13405, 2, 2683, 334, '109.41069653721893', '24.350982818937354', '114.0', '15.0', '2020-09-05 18:24:19');
+INSERT INTO `t_order_position` VALUES (13406, 2, 2683, 334, '109.41067983287468', '24.35039964477959', '116.0', '15.0', '2020-09-05 18:24:24');
+INSERT INTO `t_order_position` VALUES (13407, 2, 2683, 334, '109.41061311724494', '24.349799816976972', '116.0', '15.0', '2020-09-05 18:24:29');
+INSERT INTO `t_order_position` VALUES (13408, 2, 2683, 334, '109.41057974563225', '24.349266632583547', '116.0', '15.0', '2020-09-05 18:24:34');
+INSERT INTO `t_order_position` VALUES (13409, 2, 2683, 334, '109.41054637200524', '24.34870012403189', '118.0', '15.0', '2020-09-05 18:24:39');
+INSERT INTO `t_order_position` VALUES (13410, 2, 2682, 324, '109.40615960382976', '24.314026910084614', '0.0', '15.0', '2020-09-05 18:24:44');
+INSERT INTO `t_order_position` VALUES (13411, 2, 2683, 334, '109.41052966557824', '24.348083626534272', '118.0', '15.0', '2020-09-05 18:24:48');
+INSERT INTO `t_order_position` VALUES (13412, 2, 2683, 334, '109.41049629186884', '24.347517118459713', '118.0', '15.0', '2020-09-05 18:24:49');
+INSERT INTO `t_order_position` VALUES (13413, 2, 2683, 334, '109.41034620354039', '24.346567399362808', '116.0', '15.0', '2020-09-05 18:24:59');
+INSERT INTO `t_order_position` VALUES (13414, 2, 2683, 334, '109.4103295057653', '24.346100862008427', '116.0', '15.0', '2020-09-05 18:25:04');
+INSERT INTO `t_order_position` VALUES (13415, 2, 2683, 334, '109.41026278016258', '24.345351076147622', '122.0', '15.0', '2020-09-05 18:25:14');
+INSERT INTO `t_order_position` VALUES (13416, 2, 2682, 324, '109.40660980732629', '24.314310169328785', '36.0', '15.0', '2020-09-05 18:25:24');
+INSERT INTO `t_order_position` VALUES (13417, 2, 2683, 334, '109.41017938191114', '24.34456796874246', '116.0', '15.0', '2020-09-05 18:25:24');
+INSERT INTO `t_order_position` VALUES (13418, 2, 2682, 324, '109.40711002584305', '24.31469338966174', '38.0', '15.0', '2020-09-05 18:25:34');
+INSERT INTO `t_order_position` VALUES (13419, 2, 2683, 334, '109.41011264993561', '24.34371821075185', '116.0', '15.0', '2020-09-05 18:25:34');
+INSERT INTO `t_order_position` VALUES (13420, 2, 2683, 334, '109.41007928043678', '24.343235014563135', '110.0', '15.0', '2020-09-05 18:25:44');
+INSERT INTO `t_order_position` VALUES (13421, 2, 2682, 324, '109.40762689881046', '24.31497662822788', '34.0', '15.0', '2020-09-05 18:26:19');
+INSERT INTO `t_order_position` VALUES (13422, 2, 2683, 334, '109.41004590696461', '24.342685170156084', '118.0', '15.0', '2020-09-05 18:26:25');
+INSERT INTO `t_order_position` VALUES (13423, 2, 2682, 324, '109.40816043766414', '24.315376486279643', '34.0', '15.0', '2020-09-05 18:26:29');
+INSERT INTO `t_order_position` VALUES (13424, 2, 2683, 334, '109.41001253245796', '24.3421186638637', '118.0', '15.0', '2020-09-05 18:26:30');
+INSERT INTO `t_order_position` VALUES (13425, 2, 2683, 334, '109.40997915691683', '24.341535495708683', '118.0', '15.0', '2020-09-05 18:26:35');
+INSERT INTO `t_order_position` VALUES (13426, 2, 2683, 334, '109.40992909497163', '24.340685736993755', '116.0', '15.0', '2020-09-05 18:26:45');
+INSERT INTO `t_order_position` VALUES (13427, 2, 2682, 324, '109.40867729179136', '24.315792994943575', '0.0', '15.0', '2020-09-05 18:26:49');
+INSERT INTO `t_order_position` VALUES (13428, 2, 2683, 334, '109.40987903192341', '24.339819316701604', '120.0', '15.0', '2020-09-05 18:26:55');
+INSERT INTO `t_order_position` VALUES (13429, 2, 2683, 334, '109.40979563796905', '24.339136183638967', '116.0', '15.0', '2020-09-05 18:27:40');
+INSERT INTO `t_order_position` VALUES (13430, 2, 2683, 334, '109.40971223191643', '24.338253106273864', '116.0', '15.0', '2020-09-05 18:27:53');
+INSERT INTO `t_order_position` VALUES (13431, 2, 2683, 334, '109.40967885588135', '24.33766993949643', '116.0', '15.0', '2020-09-05 18:27:55');
+INSERT INTO `t_order_position` VALUES (13432, 2, 2683, 334, '109.40961212421733', '24.336853508791133', '116.0', '15.0', '2020-09-05 18:28:00');
+INSERT INTO `t_order_position` VALUES (13433, 2, 2683, 334, '109.40956206822355', '24.336120386470924', '116.0', '15.0', '2020-09-05 18:28:05');
+INSERT INTO `t_order_position` VALUES (13434, 2, 2683, 334, '109.40956202414415', '24.335370596651707', '116.0', '15.0', '2020-09-05 18:28:10');
+INSERT INTO `t_order_position` VALUES (13435, 2, 2683, 334, '109.40951196704773', '24.3346208131101', '118.0', '15.0', '2020-09-05 18:28:15');
+INSERT INTO `t_order_position` VALUES (13436, 2, 2683, 334, '109.4094285745221', '24.333987667458807', '118.0', '15.0', '2020-09-05 18:28:20');
+INSERT INTO `t_order_position` VALUES (13437, 2, 2683, 334, '109.40936185476923', '24.33338784394097', '116.0', '15.0', '2020-09-05 18:28:25');
+INSERT INTO `t_order_position` VALUES (13438, 2, 2683, 334, '109.40937849554716', '24.332871321325122', '116.0', '15.0', '2020-09-05 18:28:31');
+INSERT INTO `t_order_position` VALUES (13439, 2, 2682, 324, '109.40916078035849', '24.316042877883383', '26.0', '15.0', '2020-09-05 18:28:35');
+INSERT INTO `t_order_position` VALUES (13440, 2, 2683, 334, '109.40932845465029', '24.332404792015677', '116.0', '15.0', '2020-09-05 18:28:41');
+INSERT INTO `t_order_position` VALUES (13441, 2, 2683, 334, '109.40926173260944', '24.331771645070862', '120.0', '15.0', '2020-09-05 18:28:51');
+INSERT INTO `t_order_position` VALUES (13442, 2, 2683, 334, '109.40917834199365', '24.33118848573648', '116.0', '15.0', '2020-09-05 18:28:56');
+INSERT INTO `t_order_position` VALUES (13443, 2, 2682, 324, '109.40962758450236', '24.316259429049154', '44.0', '15.0', '2020-09-05 18:29:00');
+INSERT INTO `t_order_position` VALUES (13444, 2, 2683, 334, '109.40917830477264', '24.330555332346876', '116.0', '15.0', '2020-09-05 18:29:01');
+INSERT INTO `t_order_position` VALUES (13445, 2, 2683, 334, '109.40916160212099', '24.33002215246276', '114.0', '15.0', '2020-09-05 18:29:06');
+INSERT INTO `t_order_position` VALUES (13446, 2, 2683, 334, '109.40911155971014', '24.329538961812823', '116.0', '15.0', '2020-09-05 18:29:11');
+INSERT INTO `t_order_position` VALUES (13447, 2, 2682, 324, '109.41024440143629', '24.316292669701177', '0.0', '15.0', '2020-09-05 18:29:20');
+INSERT INTO `t_order_position` VALUES (13448, 2, 2683, 334, '109.40901148725175', '24.32878918546547', '118.0', '15.0', '2020-09-05 18:29:21');
+INSERT INTO `t_order_position` VALUES (13449, 2, 2682, 324, '109.41026111690472', '24.317059107595156', '0.0', '15.0', '2020-09-05 18:29:30');
+INSERT INTO `t_order_position` VALUES (13450, 2, 2682, 324, '109.41027781570878', '24.317542296006962', '2.0', '15.0', '2020-09-05 18:29:36');
+INSERT INTO `t_order_position` VALUES (13451, 2, 2682, 324, '109.41029451449917', '24.31802548458543', '144.0', '15.0', '2020-09-05 18:29:46');
+INSERT INTO `t_order_position` VALUES (13452, 2, 2683, 334, '109.40896144349145', '24.3282893330558', '118.0', '15.0', '2020-09-05 18:29:56');
+INSERT INTO `t_order_position` VALUES (13453, 2, 2682, 324, '109.40966103211328', '24.318058894358153', '112.0', '15.0', '2020-09-05 18:30:01');
+INSERT INTO `t_order_position` VALUES (13454, 2, 2683, 334, '109.40891140156688', '24.327822804514092', '118.0', '15.0', '2020-09-05 18:30:06');
+INSERT INTO `t_order_position` VALUES (13455, 2, 2683, 334, '109.40889468302517', '24.32702303546211', '112.0', '15.0', '2020-09-05 18:30:16');
+INSERT INTO `t_order_position` VALUES (13456, 2, 2682, 324, '109.40926096568349', '24.31872541041103', '166.0', '15.0', '2020-09-05 18:30:21');
+INSERT INTO `t_order_position` VALUES (13457, 2, 2683, 334, '109.40889465168226', '24.326489855390008', '112.0', '15.0', '2020-09-05 18:30:21');
+INSERT INTO `t_order_position` VALUES (13458, 2, 2683, 334, '109.4088946095654', '24.32577339501901', '114.0', '15.0', '2020-09-05 18:30:41');
+INSERT INTO `t_order_position` VALUES (13459, 2, 2683, 334, '109.40891123016067', '24.324906976888098', '114.0', '15.0', '2020-09-05 18:30:52');
+INSERT INTO `t_order_position` VALUES (13460, 2, 2683, 334, '109.40889452337328', '24.324307151790354', '114.0', '15.0', '2020-09-05 18:30:57');
+INSERT INTO `t_order_position` VALUES (13461, 2, 2683, 334, '109.40887782049015', '24.32377397431279', '110.0', '15.0', '2020-09-05 18:31:02');
+INSERT INTO `t_order_position` VALUES (13462, 2, 2683, 334, '109.40894447718732', '24.323274113334545', '110.0', '15.0', '2020-09-05 18:31:07');
+INSERT INTO `t_order_position` VALUES (13463, 2, 2682, 324, '109.4092276653081', '24.31944187031467', '164.0', '15.0', '2020-09-05 18:31:11');
+INSERT INTO `t_order_position` VALUES (13464, 2, 2683, 334, '109.40894444780393', '24.322774258473817', '114.0', '15.0', '2020-09-05 18:31:12');
+INSERT INTO `t_order_position` VALUES (13465, 2, 2682, 324, '109.40919435704232', '24.320025036237777', '162.0', '15.0', '2020-09-05 18:31:21');
+INSERT INTO `t_order_position` VALUES (13466, 2, 2682, 324, '109.40909437119039', '24.320741503323895', '0.0', '15.0', '2020-09-05 18:31:37');
+INSERT INTO `t_order_position` VALUES (13467, 2, 2683, 334, '109.40897776039911', '24.322257738952928', '122.0', '15.0', '2020-09-05 18:31:42');
+INSERT INTO `t_order_position` VALUES (13468, 2, 2682, 324, '109.40901106314503', '24.321574601479583', '160.0', '15.0', '2020-09-05 18:31:47');
+INSERT INTO `t_order_position` VALUES (13469, 2, 2683, 334, '109.40901107196', '24.321724557777834', '110.0', '15.0', '2020-09-05 18:31:57');
+INSERT INTO `t_order_position` VALUES (13470, 2, 2682, 324, '109.40902778158923', '24.322374367044244', '164.0', '15.0', '2020-09-05 18:32:07');
+INSERT INTO `t_order_position` VALUES (13471, 2, 2683, 334, '109.40914440286605', '24.321041410840575', '114.0', '15.0', '2020-09-05 18:32:07');
+INSERT INTO `t_order_position` VALUES (13472, 2, 2682, 324, '109.4089778093714', '24.323090830161', '6.0', '15.0', '2020-09-05 18:32:17');
+INSERT INTO `t_order_position` VALUES (13473, 2, 2683, 334, '109.40906100981533', '24.320424932385347', '120.0', '15.0', '2020-09-05 18:32:17');
+INSERT INTO `t_order_position` VALUES (13474, 2, 2682, 324, '109.40889450868151', '24.324057224134688', '166.0', '15.0', '2020-09-05 18:32:37');
+INSERT INTO `t_order_position` VALUES (13475, 2, 2682, 324, '109.4088612037849', '24.324707039053123', '166.0', '15.0', '2020-09-05 18:32:42');
+INSERT INTO `t_order_position` VALUES (13476, 2, 2682, 324, '109.40891124779088', '24.325206890279635', '164.0', '15.0', '2020-09-05 18:32:47');
+INSERT INTO `t_order_position` VALUES (13477, 2, 2682, 324, '109.40896129363257', '24.32574006531824', '166.0', '15.0', '2020-09-05 18:32:52');
+INSERT INTO `t_order_position` VALUES (13478, 2, 2683, 334, '109.40869421030675', '24.3199917578209', '112.0', '15.0', '2020-09-05 18:32:52');
+INSERT INTO `t_order_position` VALUES (13479, 2, 2683, 334, '109.40817737716495', '24.319925145711622', '110.0', '15.0', '2020-09-05 18:33:02');
+INSERT INTO `t_order_position` VALUES (13480, 2, 2683, 334, '109.40761052591346', '24.32007512670368', '122.0', '15.0', '2020-09-05 18:33:13');
+INSERT INTO `t_order_position` VALUES (13481, 2, 2683, 334, '109.40706034172509', '24.32039171138705', '136.0', '15.0', '2020-09-05 18:33:23');
+INSERT INTO `t_order_position` VALUES (13482, 2, 2682, 324, '109.40892799668174', '24.326523176176405', '2.0', '15.0', '2020-09-05 18:33:27');
+INSERT INTO `t_order_position` VALUES (13483, 2, 2683, 334, '109.40651015250334', '24.320874900848906', '134.0', '15.0', '2020-09-05 18:33:33');
+INSERT INTO `t_order_position` VALUES (13484, 2, 2682, 324, '109.40897805325689', '24.32723963243391', '6.0', '15.0', '2020-09-05 18:33:37');
+INSERT INTO `t_order_position` VALUES (13485, 2, 2682, 324, '109.40897809635374', '24.327972755522232', '2.0', '15.0', '2020-09-05 18:33:52');
+INSERT INTO `t_order_position` VALUES (13486, 2, 2683, 334, '109.40611000256771', '24.32117480302126', '0.0', '15.0', '2020-09-05 18:33:53');
+INSERT INTO `t_order_position` VALUES (13487, 2, 2682, 324, '109.40906150052473', '24.32877251884249', '2.0', '15.0', '2020-09-05 18:34:02');
+INSERT INTO `t_order_position` VALUES (13488, 2, 2682, 324, '109.40914488966085', '24.329322353671184', '2.0', '15.0', '2020-09-05 18:34:13');
+INSERT INTO `t_order_position` VALUES (13489, 2, 2682, 324, '109.40921161208507', '24.32995549973255', '6.0', '15.0', '2020-09-05 18:34:28');
+INSERT INTO `t_order_position` VALUES (13490, 2, 2682, 324, '109.40922831175709', '24.330438693773857', '6.0', '15.0', '2020-09-05 18:34:33');
+INSERT INTO `t_order_position` VALUES (13491, 2, 2683, 334, '109.4055931343498', '24.321624648188116', '136.0', '15.0', '2020-09-05 18:34:33');
+INSERT INTO `t_order_position` VALUES (13492, 2, 2683, 334, '109.40519297241356', '24.322024505394907', '140.0', '15.0', '2020-09-05 18:34:43');
+INSERT INTO `t_order_position` VALUES (13493, 2, 2682, 324, '109.40926168951115', '24.331038519783625', '2.0', '15.0', '2020-09-05 18:34:48');
+INSERT INTO `t_order_position` VALUES (13494, 2, 2683, 334, '109.40452601564213', '24.32264093338808', '134.0', '15.0', '2020-09-05 18:34:53');
+INSERT INTO `t_order_position` VALUES (13495, 2, 2682, 324, '109.4093284262444', '24.331921595512892', '2.0', '15.0', '2020-09-05 18:34:58');
+INSERT INTO `t_order_position` VALUES (13496, 2, 2683, 334, '109.40385901677915', '24.32290744395476', '140.0', '15.0', '2020-09-05 18:35:03');
+INSERT INTO `t_order_position` VALUES (13497, 2, 2683, 334, '109.4033754403466', '24.323290596990727', '114.0', '15.0', '2020-09-05 18:35:13');
+INSERT INTO `t_order_position` VALUES (13498, 2, 2683, 334, '109.40285848220199', '24.32337382119632', '160.0', '15.0', '2020-09-05 18:35:23');
+INSERT INTO `t_order_position` VALUES (13499, 2, 2683, 334, '109.40285850961638', '24.32384035261133', '10.0', '15.0', '2020-09-05 18:35:33');
+INSERT INTO `t_order_position` VALUES (13500, 2, 2682, 324, '109.40936180971133', '24.332621393803024', '164.0', '15.0', '2020-09-05 18:35:48');
+INSERT INTO `t_order_position` VALUES (13501, 2, 2683, 334, '109.4028585409472', '24.324373531578946', '6.0', '15.0', '2020-09-05 18:35:49');
+INSERT INTO `t_order_position` VALUES (13502, 2, 2682, 324, '109.40934516891959', '24.333137916303798', '4.0', '15.0', '2020-09-05 18:35:53');
+INSERT INTO `t_order_position` VALUES (13503, 2, 2682, 324, '109.40939522055024', '24.333787727504184', '4.0', '15.0', '2020-09-05 18:35:58');
+INSERT INTO `t_order_position` VALUES (13504, 2, 2682, 324, '109.40944527499614', '24.334487524867022', '2.0', '15.0', '2020-09-05 18:36:03');
+INSERT INTO `t_order_position` VALUES (13505, 2, 2683, 334, '109.40295863749631', '24.32502336108663', '10.0', '15.0', '2020-09-05 18:36:04');
+INSERT INTO `t_order_position` VALUES (13506, 2, 2682, 324, '109.40947865827172', '24.335187324415642', '2.0', '15.0', '2020-09-05 18:36:08');
+INSERT INTO `t_order_position` VALUES (13507, 2, 2682, 324, '109.40952871055305', '24.335853798381116', '2.0', '15.0', '2020-09-05 18:36:13');
+INSERT INTO `t_order_position` VALUES (13508, 2, 2683, 334, '109.40304205043142', '24.32555655466856', '10.0', '15.0', '2020-09-05 18:36:14');
+INSERT INTO `t_order_position` VALUES (13509, 2, 2682, 324, '109.40959543857326', '24.336603580646326', '2.0', '15.0', '2020-09-05 18:36:18');
+INSERT INTO `t_order_position` VALUES (13510, 2, 2682, 324, '109.40962882062277', '24.337286719142682', '4.0', '15.0', '2020-09-05 18:36:23');
+INSERT INTO `t_order_position` VALUES (13511, 2, 2683, 334, '109.40345899946205', '24.326339728522967', '24.0', '15.0', '2020-09-05 18:36:24');
+INSERT INTO `t_order_position` VALUES (13512, 2, 2682, 324, '109.40971221624345', '24.337986513829893', '8.0', '15.0', '2020-09-05 18:36:28');
+INSERT INTO `t_order_position` VALUES (13513, 2, 2682, 324, '109.40974558928494', '24.33851969460627', '166.0', '15.0', '2020-09-05 18:36:33');
+INSERT INTO `t_order_position` VALUES (13514, 2, 2683, 334, '109.40390927763632', '24.326889633398938', '28.0', '15.0', '2020-09-05 18:36:34');
+INSERT INTO `t_order_position` VALUES (13515, 2, 2683, 334, '109.40430952028795', '24.32743952415477', '20.0', '15.0', '2020-09-05 18:36:49');
+INSERT INTO `t_order_position` VALUES (13516, 2, 2683, 334, '109.40470975324202', '24.327956084420453', '14.0', '15.0', '2020-09-05 18:36:59');
+INSERT INTO `t_order_position` VALUES (13517, 2, 2683, 334, '109.40480983009932', '24.328422626844777', '4.0', '15.0', '2020-09-05 18:37:09');
+INSERT INTO `t_order_position` VALUES (13518, 2, 2682, 324, '109.40981231365278', '24.33921949170883', '4.0', '15.0', '2020-09-05 18:37:19');
+INSERT INTO `t_order_position` VALUES (13519, 2, 2683, 334, '109.40490990647203', '24.32888916900555', '10.0', '15.0', '2020-09-05 18:37:19');
+INSERT INTO `t_order_position` VALUES (13520, 2, 2682, 324, '109.40991238999669', '24.340102567178427', '2.0', '15.0', '2020-09-05 18:37:29');
+INSERT INTO `t_order_position` VALUES (13521, 2, 2683, 334, '109.4050099892148', '24.329472344287407', '8.0', '15.0', '2020-09-05 18:37:29');
+INSERT INTO `t_order_position` VALUES (13522, 2, 2682, 324, '109.4099457587904', '24.340569100324757', '4.0', '15.0', '2020-09-05 18:37:34');
+INSERT INTO `t_order_position` VALUES (13523, 2, 2682, 324, '109.40999580600045', '24.341168927865255', '6.0', '15.0', '2020-09-05 18:37:39');
+INSERT INTO `t_order_position` VALUES (13524, 2, 2682, 324, '109.4100791981505', '24.341835399233048', '2.0', '15.0', '2020-09-05 18:37:44');
+INSERT INTO `t_order_position` VALUES (13525, 2, 2682, 324, '109.41014591260254', '24.342385238449623', '4.0', '15.0', '2020-09-05 18:37:49');
+INSERT INTO `t_order_position` VALUES (13526, 2, 2682, 324, '109.41019597401176', '24.343234997855244', '4.0', '15.0', '2020-09-05 18:37:59');
+INSERT INTO `t_order_position` VALUES (13527, 2, 2682, 324, '109.41019600535921', '24.3437681850668', '2.0', '15.0', '2020-09-05 18:38:19');
+INSERT INTO `t_order_position` VALUES (13528, 2, 2683, 334, '109.40512674413065', '24.33002219685776', '12.0', '15.0', '2020-09-05 18:38:20');
+INSERT INTO `t_order_position` VALUES (13529, 2, 2682, 324, '109.410279399623', '24.344484643442314', '2.0', '15.0', '2020-09-05 18:38:39');
+INSERT INTO `t_order_position` VALUES (13530, 2, 2682, 324, '109.41031276977131', '24.344984501947284', '4.0', '15.0', '2020-09-05 18:38:44');
+INSERT INTO `t_order_position` VALUES (13531, 2, 2682, 324, '109.41037948933084', '24.345634314654703', '4.0', '15.0', '2020-09-05 18:38:49');
+INSERT INTO `t_order_position` VALUES (13532, 2, 2682, 324, '109.4104628808784', '24.346317449165', '4.0', '15.0', '2020-09-05 18:38:54');
+INSERT INTO `t_order_position` VALUES (13533, 2, 2682, 324, '109.41051292582988', '24.346900616219084', '6.0', '15.0', '2020-09-05 18:38:59');
+INSERT INTO `t_order_position` VALUES (13534, 2, 2682, 324, '109.41062964628654', '24.347400461763385', '20.0', '15.0', '2020-09-05 18:39:04');
+INSERT INTO `t_order_position` VALUES (13535, 2, 2682, 324, '109.41124645616638', '24.347833567550826', '56.0', '15.0', '2020-09-05 18:39:15');
+INSERT INTO `t_order_position` VALUES (13536, 2, 2682, 324, '109.41182988346674', '24.34783344761571', '58.0', '15.0', '2020-09-05 18:39:20');
+INSERT INTO `t_order_position` VALUES (13537, 2, 2682, 324, '109.41244663299328', '24.347866628610632', '58.0', '15.0', '2020-09-05 18:39:25');
+INSERT INTO `t_order_position` VALUES (13538, 2, 2682, 324, '109.4130966996824', '24.347899783432588', '52.0', '15.0', '2020-09-05 18:39:30');
+INSERT INTO `t_order_position` VALUES (13539, 2, 2682, 324, '109.41374674329687', '24.34789959499487', '56.0', '15.0', '2020-09-05 18:39:35');
+INSERT INTO `t_order_position` VALUES (13540, 2, 2682, 324, '109.41443010066259', '24.347916038604627', '60.0', '15.0', '2020-09-05 18:39:40');
+INSERT INTO `t_order_position` VALUES (13541, 2, 2682, 324, '109.41524676516656', '24.347932412039487', '58.0', '15.0', '2020-09-05 18:39:45');
+INSERT INTO `t_order_position` VALUES (13542, 2, 2682, 324, '109.41616339040414', '24.34796537652651', '60.0', '15.0', '2020-09-05 18:39:50');
+INSERT INTO `t_order_position` VALUES (13543, 2, 2682, 324, '109.41712996460932', '24.347948293886738', '58.0', '15.0', '2020-09-05 18:39:55');
+INSERT INTO `t_order_position` VALUES (13544, 2, 2682, 324, '109.41794651639697', '24.347931243652432', '58.0', '15.0', '2020-09-05 18:40:00');
+INSERT INTO `t_order_position` VALUES (13545, 2, 2682, 324, '109.4189463322082', '24.347947389629457', '60.0', '15.0', '2020-09-05 18:40:05');
+INSERT INTO `t_order_position` VALUES (13546, 2, 2682, 324, '109.41979613524343', '24.34794691537859', '58.0', '15.0', '2020-09-05 18:40:10');
+INSERT INTO `t_order_position` VALUES (13547, 2, 2682, 324, '109.42067922535422', '24.347946387966683', '58.0', '15.0', '2020-09-05 18:40:15');
+INSERT INTO `t_order_position` VALUES (13548, 2, 2682, 324, '109.42159559908129', '24.34796246557426', '58.0', '15.0', '2020-09-05 18:40:20');
+INSERT INTO `t_order_position` VALUES (13549, 2, 2683, 334, '109.40534354131805', '24.330505408380095', '10.0', '15.0', '2020-09-05 18:40:21');
+INSERT INTO `t_order_position` VALUES (13550, 2, 2682, 324, '109.42256190902842', '24.347945145906344', '60.0', '15.0', '2020-09-05 18:40:25');
+INSERT INTO `t_order_position` VALUES (13551, 2, 2682, 324, '109.42349485432123', '24.34794447110072', '58.0', '15.0', '2020-09-05 18:40:30');
+INSERT INTO `t_order_position` VALUES (13552, 2, 2683, 334, '109.40544361608112', '24.330988610917597', '10.0', '15.0', '2020-09-05 18:40:31');
+INSERT INTO `t_order_position` VALUES (13553, 2, 2682, 324, '109.4242944869002', '24.34794386147242', '60.0', '15.0', '2020-09-05 18:40:35');
+INSERT INTO `t_order_position` VALUES (13554, 2, 2682, 324, '109.42501079716006', '24.347943290901256', '60.0', '15.0', '2020-09-05 18:40:40');
+INSERT INTO `t_order_position` VALUES (13555, 2, 2683, 334, '109.40557704083413', '24.331505139032675', '2.0', '15.0', '2020-09-05 18:40:41');
+INSERT INTO `t_order_position` VALUES (13556, 2, 2682, 324, '109.42572708169071', '24.347942697256926', '60.0', '15.0', '2020-09-05 18:40:47');
+INSERT INTO `t_order_position` VALUES (13557, 2, 2682, 324, '109.42645999642488', '24.34792540379565', '60.0', '15.0', '2020-09-05 18:40:50');
+INSERT INTO `t_order_position` VALUES (13558, 2, 2682, 324, '109.42710960282564', '24.347908161936346', '58.0', '15.0', '2020-09-05 18:40:55');
+INSERT INTO `t_order_position` VALUES (13559, 2, 2682, 324, '109.4279923707902', '24.347940668185956', '58.0', '15.0', '2020-09-05 18:41:05');
+INSERT INTO `t_order_position` VALUES (13560, 2, 2683, 333, '109.40557713484964', '24.333104686256636', '0.0', '15.0', '2020-09-05 18:41:14');
+INSERT INTO `t_order_position` VALUES (13561, 2, 2683, 333, '109.4055271580815', '24.33388779571738', '160.0', '15.0', '2020-09-05 18:41:24');
+INSERT INTO `t_order_position` VALUES (13562, 2, 2683, 333, '109.40546049314761', '24.334437636794906', '162.0', '15.0', '2020-09-05 18:41:34');
+INSERT INTO `t_order_position` VALUES (13563, 2, 2682, 324, '109.42850868860268', '24.347956835713116', '40.0', '15.0', '2020-09-05 18:41:40');
+INSERT INTO `t_order_position` VALUES (13564, 2, 2683, 333, '109.40541050728132', '24.335070788942232', '12.0', '15.0', '2020-09-05 18:41:49');
+INSERT INTO `t_order_position` VALUES (13565, 2, 2682, 324, '109.42869192202586', '24.34842319794355', '0.0', '15.0', '2020-09-05 18:41:50');
+INSERT INTO `t_order_position` VALUES (13566, 2, 2682, 324, '109.42869197195708', '24.34927296879093', '0.0', '15.0', '2020-09-05 18:42:01');
+INSERT INTO `t_order_position` VALUES (13567, 2, 2683, 333, '109.40617753308238', '24.33538740376768', '64.0', '15.0', '2020-09-05 18:42:04');
+INSERT INTO `t_order_position` VALUES (13568, 2, 2683, 333, '109.40671108246607', '24.335320766392982', '62.0', '15.0', '2020-09-05 18:42:09');
+INSERT INTO `t_order_position` VALUES (13569, 2, 2683, 333, '109.40759475046244', '24.335337418443846', '64.0', '15.0', '2020-09-05 18:42:19');
+INSERT INTO `t_order_position` VALUES (13570, 2, 2683, 333, '109.40811159160641', '24.3352874107337', '64.0', '15.0', '2020-09-05 18:42:24');
+INSERT INTO `t_order_position` VALUES (13571, 2, 2683, 333, '109.40892850895534', '24.335237366356825', '68.0', '15.0', '2020-09-05 18:42:34');
+INSERT INTO `t_order_position` VALUES (13572, 2, 2683, 333, '109.40954532964321', '24.334970710887028', '46.0', '15.0', '2020-09-05 18:42:49');
+INSERT INTO `t_order_position` VALUES (13573, 2, 2683, 333, '109.40987876744124', '24.335320571193083', '150.0', '15.0', '2020-09-05 18:42:59');
+INSERT INTO `t_order_position` VALUES (13574, 2, 2683, 333, '109.40971209967644', '24.336003734320357', '4.0', '15.0', '2020-09-05 18:43:09');
+INSERT INTO `t_order_position` VALUES (13575, 2, 2683, 333, '109.4097621435445', '24.33653691214432', '4.0', '15.0', '2020-09-05 18:43:14');
+INSERT INTO `t_order_position` VALUES (13576, 2, 2683, 333, '109.40977884864226', '24.337120080394882', '2.0', '15.0', '2020-09-05 18:43:19');
+INSERT INTO `t_order_position` VALUES (13577, 2, 2683, 333, '109.40981222451224', '24.337703246766374', '0.0', '15.0', '2020-09-05 18:43:24');
+INSERT INTO `t_order_position` VALUES (13578, 2, 2683, 333, '109.4098289227121', '24.338169781322247', '4.0', '15.0', '2020-09-05 18:43:30');
+INSERT INTO `t_order_position` VALUES (13579, 2, 2683, 333, '109.40986230241816', '24.338819596259114', '0.0', '15.0', '2020-09-05 18:43:40');
+INSERT INTO `t_order_position` VALUES (13580, 2, 2683, 333, '109.40987901820935', '24.339586048015352', '2.0', '15.0', '2020-09-05 18:44:30');
+INSERT INTO `t_order_position` VALUES (13581, 2, 2683, 333, '109.4099957609395', '24.340402472939033', '2.0', '15.0', '2020-09-05 18:44:40');
+INSERT INTO `t_order_position` VALUES (13582, 2, 2683, 333, '109.41004582663787', '24.34131887959227', '4.0', '15.0', '2020-09-05 18:44:50');
+INSERT INTO `t_order_position` VALUES (13583, 2, 2683, 333, '109.41006252856434', '24.341852063648385', '4.0', '15.0', '2020-09-05 18:44:55');
+INSERT INTO `t_order_position` VALUES (13584, 2, 2683, 333, '109.41012924111226', '24.342368578751344', '4.0', '15.0', '2020-09-05 18:45:00');
+INSERT INTO `t_order_position` VALUES (13585, 2, 2683, 333, '109.41019597107294', '24.343185011566025', '0.0', '15.0', '2020-09-05 18:45:10');
+INSERT INTO `t_order_position` VALUES (13586, 2, 2683, 333, '109.4102126718964', '24.343701534216432', '0.0', '15.0', '2020-09-05 18:45:15');
+INSERT INTO `t_order_position` VALUES (13587, 2, 2683, 333, '109.41022936976736', '24.344168070742604', '0.0', '15.0', '2020-09-05 18:45:35');
+INSERT INTO `t_order_position` VALUES (13588, 2, 2683, 333, '109.41029610625564', '24.34510113930684', '4.0', '15.0', '2020-09-05 18:46:01');
+INSERT INTO `t_order_position` VALUES (13589, 2, 2683, 333, '109.410346146722', '24.34560099550375', '4.0', '15.0', '2020-09-05 18:46:06');
+INSERT INTO `t_order_position` VALUES (13590, 2, 2683, 333, '109.41039619000341', '24.346150838201986', '4.0', '15.0', '2020-09-05 18:46:11');
+INSERT INTO `t_order_position` VALUES (13591, 2, 2683, 333, '109.41044623512022', '24.34673400532482', '2.0', '15.0', '2020-09-05 18:46:16');
+INSERT INTO `t_order_position` VALUES (13592, 2, 2683, 333, '109.41049628305208', '24.347367159073247', '4.0', '15.0', '2020-09-05 18:46:21');
+INSERT INTO `t_order_position` VALUES (13593, 2, 2683, 333, '109.41054633575834', '24.348083623850783', '0.0', '15.0', '2020-09-05 18:46:26');
+INSERT INTO `t_order_position` VALUES (13594, 2, 2682, 324, '109.42874196729282', '24.349789447552244', '166.0', '13.0', '2020-09-05 18:46:28');
+INSERT INTO `t_order_position` VALUES (13595, 2, 2683, 333, '109.41056304706983', '24.348783432195297', '4.0', '15.0', '2020-09-05 18:46:31');
+INSERT INTO `t_order_position` VALUES (13596, 2, 2683, 333, '109.41062976972232', '24.34949989491386', '4.0', '15.0', '2020-09-05 18:46:36');
+INSERT INTO `t_order_position` VALUES (13597, 2, 2683, 333, '109.41069649313408', '24.350233020049906', '2.0', '15.0', '2020-09-05 18:46:41');
+INSERT INTO `t_order_position` VALUES (13598, 2, 2683, 333, '109.41077988239384', '24.35089949376714', '4.0', '15.0', '2020-09-05 18:46:46');
+INSERT INTO `t_order_position` VALUES (13599, 2, 2682, 324, '109.4288252840911', '24.35050584002019', '60.0', '15.0', '2020-09-05 18:46:48');
+INSERT INTO `t_order_position` VALUES (13600, 2, 2683, 333, '109.41084659845185', '24.35151598382971', '4.0', '15.0', '2020-09-05 18:46:52');
+INSERT INTO `t_order_position` VALUES (13601, 2, 2683, 333, '109.41089664343292', '24.352115814746146', '4.0', '15.0', '2020-09-05 18:46:56');
+INSERT INTO `t_order_position` VALUES (13602, 2, 2682, 324, '109.42975794600638', '24.350654862999672', '54.0', '15.0', '2020-09-05 18:46:58');
+INSERT INTO `t_order_position` VALUES (13603, 2, 2683, 333, '109.4109466814322', '24.35259901026892', '2.0', '15.0', '2020-09-05 18:47:01');
+INSERT INTO `t_order_position` VALUES (13604, 2, 2682, 324, '109.43062393949525', '24.350603971921643', '60.0', '15.0', '2020-09-05 18:47:08');
+INSERT INTO `t_order_position` VALUES (13605, 2, 2683, 333, '109.41098007007312', '24.353432115806978', '2.0', '15.0', '2020-09-05 18:47:11');
+INSERT INTO `t_order_position` VALUES (13606, 2, 2683, 333, '109.4110134390653', '24.353931976957742', '4.0', '15.0', '2020-09-05 18:47:16');
+INSERT INTO `t_order_position` VALUES (13607, 2, 2683, 333, '109.41108015043251', '24.354481818872024', '2.0', '15.0', '2020-09-05 18:47:21');
+INSERT INTO `t_order_position` VALUES (13608, 2, 2682, 324, '109.431206798877', '24.350570020032055', '60.0', '15.0', '2020-09-05 18:47:23');
+INSERT INTO `t_order_position` VALUES (13609, 2, 2683, 333, '109.41111351827956', '24.354965018052887', '0.0', '15.0', '2020-09-05 18:47:26');
+INSERT INTO `t_order_position` VALUES (13610, 2, 2683, 333, '109.41116358023366', '24.355864770920892', '4.0', '15.0', '2020-09-05 18:47:36');
+INSERT INTO `t_order_position` VALUES (13611, 2, 2682, 324, '109.43162309172224', '24.350119683387774', '112.0', '15.0', '2020-09-05 18:47:38');
+INSERT INTO `t_order_position` VALUES (13612, 2, 2682, 324, '109.43167300541833', '24.349369829622404', '112.0', '15.0', '2020-09-05 18:47:48');
+INSERT INTO `t_order_position` VALUES (13613, 2, 2683, 333, '109.4112136303073', '24.356564576976616', '4.0', '15.0', '2020-09-05 18:47:56');
+INSERT INTO `t_order_position` VALUES (13614, 2, 2682, 324, '109.43162301440194', '24.34880337101379', '116.0', '15.0', '2020-09-05 18:48:03');
+INSERT INTO `t_order_position` VALUES (13615, 2, 2683, 333, '109.41123033323187', '24.35713109143908', '2.0', '15.0', '2020-09-05 18:48:06');
+INSERT INTO `t_order_position` VALUES (13616, 2, 2683, 333, '109.41133040157315', '24.35799751131594', '4.0', '15.0', '2020-09-05 18:48:16');
+INSERT INTO `t_order_position` VALUES (13617, 2, 2683, 333, '109.41134709852302', '24.358464052528312', '2.0', '15.0', '2020-09-05 18:48:21');
+INSERT INTO `t_order_position` VALUES (13618, 2, 2682, 324, '109.43163962980368', '24.348170190152775', '0.0', '15.0', '2020-09-05 18:48:24');
+INSERT INTO `t_order_position` VALUES (13619, 2, 2683, 333, '109.41138046788836', '24.35898057754826', '2.0', '15.0', '2020-09-05 18:48:27');
+INSERT INTO `t_order_position` VALUES (13620, 2, 2683, 333, '109.41143051154573', '24.35958041101032', '6.0', '15.0', '2020-09-05 18:48:32');
+INSERT INTO `t_order_position` VALUES (13621, 2, 2683, 333, '109.41154723648776', '24.36024688035478', '14.0', '15.0', '2020-09-05 18:48:37');
+INSERT INTO `t_order_position` VALUES (13622, 2, 2683, 333, '109.41174730485999', '24.360880007030342', '8.0', '15.0', '2020-09-05 18:48:47');
+INSERT INTO `t_order_position` VALUES (13623, 2, 2683, 333, '109.41186402796268', '24.36154647545391', '162.0', '15.0', '2020-09-05 18:48:58');
+INSERT INTO `t_order_position` VALUES (13624, 2, 2683, 333, '109.41179738385605', '24.36209634769644', '160.0', '15.0', '2020-09-05 18:49:02');
+INSERT INTO `t_order_position` VALUES (13625, 2, 2683, 333, '109.41173073952798', '24.36264621999564', '166.0', '15.0', '2020-09-05 18:49:07');
+INSERT INTO `t_order_position` VALUES (13626, 2, 2683, 333, '109.41174743810652', '24.36314608748038', '2.0', '15.0', '2020-09-05 18:49:12');
+INSERT INTO `t_order_position` VALUES (13627, 2, 2683, 333, '109.41176414157015', '24.36372926706325', '4.0', '15.0', '2020-09-05 18:49:17');
+INSERT INTO `t_order_position` VALUES (13628, 2, 2683, 333, '109.4117975102453', '24.364245793756158', '4.0', '15.0', '2020-09-05 18:49:22');
+INSERT INTO `t_order_position` VALUES (13629, 2, 2683, 333, '109.41186422195578', '24.364845625291043', '6.0', '15.0', '2020-09-05 18:49:32');
+INSERT INTO `t_order_position` VALUES (13630, 2, 2682, 324, '109.43170617936102', '24.347137062465293', '112.0', '15.0', '2020-09-05 18:49:45');
+INSERT INTO `t_order_position` VALUES (13631, 2, 2682, 324, '109.43173943644156', '24.346320580338872', '114.0', '15.0', '2020-09-05 18:49:50');
+INSERT INTO `t_order_position` VALUES (13632, 2, 2682, 324, '109.43170608931963', '24.345604145619717', '114.0', '15.0', '2020-09-05 18:49:55');
+INSERT INTO `t_order_position` VALUES (13633, 2, 2682, 324, '109.4316893986108', '24.344954341259', '114.0', '15.0', '2020-09-05 18:50:00');
+INSERT INTO `t_order_position` VALUES (13634, 2, 2682, 324, '109.43163940861346', '24.344404546851255', '116.0', '15.0', '2020-09-05 18:50:05');
+INSERT INTO `t_order_position` VALUES (13635, 2, 2683, 333, '109.411864251349', '24.365345497282778', '2.0', '15.0', '2020-09-05 18:50:07');
+INSERT INTO `t_order_position` VALUES (13636, 2, 2682, 324, '109.43162271980728', '24.343788067286535', '112.0', '15.0', '2020-09-05 18:50:10');
+INSERT INTO `t_order_position` VALUES (13637, 2, 2682, 324, '109.43167264231546', '24.34318817626982', '114.0', '15.0', '2020-09-05 18:50:15');
+INSERT INTO `t_order_position` VALUES (13638, 2, 2683, 333, '109.41196430478306', '24.36601197136635', '6.0', '15.0', '2020-09-05 18:50:17');
+INSERT INTO `t_order_position` VALUES (13639, 2, 2682, 324, '109.43163930291365', '24.342605039984186', '112.0', '15.0', '2020-09-05 18:50:20');
+INSERT INTO `t_order_position` VALUES (13640, 2, 2682, 324, '109.43163926768064', '24.342005204947267', '112.0', '15.0', '2020-09-05 18:50:25');
+INSERT INTO `t_order_position` VALUES (13641, 2, 2683, 333, '109.41201435874726', '24.36681175616241', '4.0', '15.0', '2020-09-05 18:50:27');
+INSERT INTO `t_order_position` VALUES (13642, 2, 2682, 324, '109.43163924027725', '24.341538666787187', '112.0', '15.0', '2020-09-05 18:50:30');
+INSERT INTO `t_order_position` VALUES (13643, 2, 2683, 333, '109.41204772504828', '24.36729495897312', '2.0', '15.0', '2020-09-05 18:50:32');
+INSERT INTO `t_order_position` VALUES (13644, 2, 2682, 324, '109.43162254951397', '24.340888864527965', '114.0', '15.0', '2020-09-05 18:50:35');
+INSERT INTO `t_order_position` VALUES (13645, 2, 2683, 333, '109.41208109227382', '24.367794824370964', '2.0', '15.0', '2020-09-05 18:50:37');
+INSERT INTO `t_order_position` VALUES (13646, 2, 2682, 324, '109.43160585482231', '24.34017241437449', '114.0', '15.0', '2020-09-05 18:50:40');
+INSERT INTO `t_order_position` VALUES (13647, 2, 2683, 333, '109.41213113027108', '24.368328010961715', '4.0', '15.0', '2020-09-05 18:50:42');
+INSERT INTO `t_order_position` VALUES (13648, 2, 2682, 324, '109.43162246045368', '24.33937261752323', '112.0', '15.0', '2020-09-05 18:50:45');
+INSERT INTO `t_order_position` VALUES (13649, 2, 2683, 333, '109.41216450029776', '24.368877864035035', '4.0', '15.0', '2020-09-05 18:50:47');
+INSERT INTO `t_order_position` VALUES (13650, 2, 2683, 333, '109.41219786928934', '24.369411054855863', '2.0', '15.0', '2020-09-05 18:50:52');
+INSERT INTO `t_order_position` VALUES (13651, 2, 2682, 324, '109.43163908564533', '24.33890606190166', '0.0', '15.0', '2020-09-05 18:50:55');
+INSERT INTO `t_order_position` VALUES (13652, 2, 2683, 333, '109.41223123724585', '24.36992758340163', '2.0', '15.0', '2020-09-05 18:50:57');
+INSERT INTO `t_order_position` VALUES (13653, 2, 2683, 333, '109.41226460612685', '24.370460774601884', '4.0', '15.0', '2020-09-05 18:51:03');
+INSERT INTO `t_order_position` VALUES (13654, 2, 2683, 333, '109.41233131236878', '24.37099395798783', '2.0', '15.0', '2020-09-05 18:51:08');
+INSERT INTO `t_order_position` VALUES (13655, 2, 2683, 333, '109.41236469970035', '24.37184373690194', '4.0', '15.0', '2020-09-05 18:51:18');
+INSERT INTO `t_order_position` VALUES (13656, 2, 2683, 333, '109.41244809577037', '24.37274349165648', '2.0', '15.0', '2020-09-05 18:51:28');
+INSERT INTO `t_order_position` VALUES (13657, 2, 2682, 324, '109.43170566457013', '24.338372802840123', '114.0', '15.0', '2020-09-05 18:51:30');
+INSERT INTO `t_order_position` VALUES (13658, 2, 2682, 324, '109.43170562640228', '24.337722983787234', '114.0', '15.0', '2020-09-05 18:51:35');
+INSERT INTO `t_order_position` VALUES (13659, 2, 2683, 333, '109.41251481708034', '24.373543275831068', '2.0', '15.0', '2020-09-05 18:51:38');
+INSERT INTO `t_order_position` VALUES (13660, 2, 2682, 324, '109.43170557257606', '24.336806572879553', '114.0', '15.0', '2020-09-05 18:51:40');
+INSERT INTO `t_order_position` VALUES (13661, 2, 2683, 333, '109.41254818157158', '24.374009818155393', '2.0', '15.0', '2020-09-05 18:51:43');
+INSERT INTO `t_order_position` VALUES (13662, 2, 2682, 324, '109.43165557968246', '24.336206796126643', '114.0', '15.0', '2020-09-05 18:51:45');
+INSERT INTO `t_order_position` VALUES (13663, 2, 2683, 333, '109.41258154600746', '24.374476360617525', '2.0', '15.0', '2020-09-05 18:51:48');
+INSERT INTO `t_order_position` VALUES (13664, 2, 2682, 324, '109.43167219995452', '24.335656931690362', '0.0', '15.0', '2020-09-05 18:52:06');
+INSERT INTO `t_order_position` VALUES (13665, 2, 2682, 324, '109.43163886250979', '24.33510712292332', '114.0', '15.0', '2020-09-05 18:52:36');
+INSERT INTO `t_order_position` VALUES (13666, 2, 2682, 324, '109.43165546518011', '24.334257343372606', '114.0', '15.0', '2020-09-05 18:52:46');
+INSERT INTO `t_order_position` VALUES (13667, 2, 2682, 324, '109.4316387842178', '24.333774164618646', '112.0', '15.0', '2020-09-05 18:52:51');
+INSERT INTO `t_order_position` VALUES (13668, 2, 2682, 324, '109.43165540352554', '24.333207639300838', '114.0', '15.0', '2020-09-05 18:52:56');
+INSERT INTO `t_order_position` VALUES (13669, 2, 2682, 324, '109.43167202477716', '24.332674438136625', '114.0', '15.0', '2020-09-05 18:53:01');
+INSERT INTO `t_order_position` VALUES (13670, 2, 2682, 324, '109.43165533991409', '24.332124612209938', '112.0', '15.0', '2020-09-05 18:53:06');
+INSERT INTO `t_order_position` VALUES (13671, 2, 2682, 324, '109.43165530957646', '24.33160809192565', '114.0', '15.0', '2020-09-05 18:53:11');
+INSERT INTO `t_order_position` VALUES (13672, 2, 2683, 333, '109.41259826053947', '24.375259495745784', '164.0', '15.0', '2020-09-05 18:53:13');
+INSERT INTO `t_order_position` VALUES (13673, 2, 2683, 333, '109.41253163651078', '24.37610930260093', '164.0', '15.0', '2020-09-05 18:53:24');
+INSERT INTO `t_order_position` VALUES (13674, 2, 2682, 324, '109.43162197504009', '24.331108270710473', '0.0', '15.0', '2020-09-05 18:53:31');
+INSERT INTO `t_order_position` VALUES (13675, 2, 2683, 333, '109.4123316621693', '24.37694247984208', '156.0', '15.0', '2020-09-05 18:53:34');
+INSERT INTO `t_order_position` VALUES (13676, 2, 2683, 333, '109.41218166981471', '24.37739240493694', '152.0', '15.0', '2020-09-05 18:53:39');
+INSERT INTO `t_order_position` VALUES (13677, 2, 2683, 333, '109.41199833940229', '24.37785899934362', '152.0', '15.0', '2020-09-05 18:53:49');
+INSERT INTO `t_order_position` VALUES (13678, 2, 2683, 333, '109.4116316686511', '24.378708871240264', '152.0', '15.0', '2020-09-05 18:53:54');
+INSERT INTO `t_order_position` VALUES (13679, 2, 2683, 333, '109.4114316657377', '24.379208790228816', '152.0', '15.0', '2020-09-05 18:53:59');
+INSERT INTO `t_order_position` VALUES (13680, 2, 2683, 333, '109.41126499708143', '24.379658713403614', '150.0', '15.0', '2020-09-05 18:54:04');
+INSERT INTO `t_order_position` VALUES (13681, 2, 2683, 333, '109.41088163913113', '24.38044192708758', '154.0', '15.0', '2020-09-05 18:54:14');
+INSERT INTO `t_order_position` VALUES (13682, 2, 2683, 333, '109.4106316292796', '24.381125137358254', '152.0', '15.0', '2020-09-05 18:54:24');
+INSERT INTO `t_order_position` VALUES (13683, 2, 2682, 324, '109.43170520656548', '24.330574996515747', '112.0', '15.0', '2020-09-05 18:54:34');
+INSERT INTO `t_order_position` VALUES (13684, 2, 2683, 333, '109.4102148889972', '24.38140846701787', '154.0', '15.0', '2020-09-05 18:54:34');
+INSERT INTO `t_order_position` VALUES (13685, 2, 2682, 324, '109.43167184470975', '24.329608642080668', '112.0', '15.0', '2020-09-05 18:54:42');
+INSERT INTO `t_order_position` VALUES (13686, 2, 2683, 333, '109.40961472232088', '24.381041969063148', '148.0', '15.0', '2020-09-05 18:54:49');
+INSERT INTO `t_order_position` VALUES (13687, 2, 2682, 324, '109.43167180752232', '24.32897548947392', '110.0', '15.0', '2020-09-05 18:55:02');
+INSERT INTO `t_order_position` VALUES (13688, 2, 2683, 333, '109.4089145010958', '24.380542163374663', '146.0', '15.0', '2020-09-05 18:55:04');
+INSERT INTO `t_order_position` VALUES (13689, 2, 2682, 324, '109.43173836285804', '24.32804234900902', '114.0', '15.0', '2020-09-05 18:55:12');
+INSERT INTO `t_order_position` VALUES (13690, 2, 2683, 333, '109.40816424127549', '24.38007566427277', '154.0', '15.0', '2020-09-05 18:55:15');
+INSERT INTO `t_order_position` VALUES (13691, 2, 2682, 324, '109.43183825025532', '24.32757570462515', '118.0', '15.0', '2020-09-05 18:55:17');
+INSERT INTO `t_order_position` VALUES (13692, 2, 2683, 333, '109.407313927762', '24.379792431260398', '156.0', '15.0', '2020-09-05 18:55:25');
+INSERT INTO `t_order_position` VALUES (13693, 2, 2683, 333, '109.40639688455929', '24.379509165152253', '158.0', '15.0', '2020-09-05 18:55:35');
+INSERT INTO `t_order_position` VALUES (13694, 2, 2682, 324, '109.43172165162795', '24.327042654272883', '116.0', '15.0', '2020-09-05 18:56:32');
+INSERT INTO `t_order_position` VALUES (13695, 2, 2682, 324, '109.43187149049263', '24.326475983239032', '74.0', '15.0', '2020-09-05 18:56:42');
+INSERT INTO `t_order_position` VALUES (13696, 2, 2683, 333, '109.40579661498938', '24.379309192786724', '158.0', '15.0', '2020-09-05 18:56:51');
+INSERT INTO `t_order_position` VALUES (13697, 2, 2683, 333, '109.40476277791379', '24.37899253015572', '154.0', '15.0', '2020-09-05 18:57:01');
+INSERT INTO `t_order_position` VALUES (13698, 2, 2683, 333, '109.40422915921381', '24.378742535233894', '152.0', '15.0', '2020-09-05 18:57:06');
+INSERT INTO `t_order_position` VALUES (13699, 2, 2683, 333, '109.40377890151733', '24.37842588915253', '144.0', '15.0', '2020-09-05 18:57:11');
+INSERT INTO `t_order_position` VALUES (13700, 2, 2683, 333, '109.40322856958613', '24.37797591795861', '146.0', '15.0', '2020-09-05 18:57:16');
+INSERT INTO `t_order_position` VALUES (13701, 2, 2683, 333, '109.40272826063118', '24.377659243639933', '144.0', '15.0', '2020-09-05 18:57:21');
+INSERT INTO `t_order_position` VALUES (13702, 2, 2682, 324, '109.43243766220357', '24.326442018923363', '66.0', '15.0', '2020-09-05 18:57:23');
+INSERT INTO `t_order_position` VALUES (13703, 2, 2683, 333, '109.40231132521643', '24.37735923798085', '144.0', '15.0', '2020-09-05 18:57:26');
+INSERT INTO `t_order_position` VALUES (13704, 2, 2683, 333, '109.40161085428113', '24.376842548342147', '148.0', '15.0', '2020-09-05 18:57:36');
+INSERT INTO `t_order_position` VALUES (13705, 2, 2682, 324, '109.43323694042661', '24.326457752480632', '80.0', '15.0', '2020-09-05 18:57:38');
+INSERT INTO `t_order_position` VALUES (13706, 2, 2683, 333, '109.40107714315037', '24.37639253082204', '146.0', '15.0', '2020-09-05 18:57:46');
+INSERT INTO `t_order_position` VALUES (13707, 2, 2682, 324, '109.43390297213537', '24.326307000647816', '60.0', '15.0', '2020-09-05 18:57:48');
+INSERT INTO `t_order_position` VALUES (13708, 2, 2683, 333, '109.40051006388312', '24.37597581730325', '150.0', '15.0', '2020-09-05 18:57:56');
+INSERT INTO `t_order_position` VALUES (13709, 2, 2682, 324, '109.43468555484186', '24.326522646148053', '56.0', '15.0', '2020-09-05 18:57:58');
+INSERT INTO `t_order_position` VALUES (13710, 2, 2683, 333, '109.39984289961072', '24.37560904775792', '154.0', '15.0', '2020-09-05 18:58:06');
+INSERT INTO `t_order_position` VALUES (13711, 2, 2682, 324, '109.4356845420695', '24.326604692766306', '54.0', '15.0', '2020-09-05 18:58:08');
+INSERT INTO `t_order_position` VALUES (13712, 2, 2683, 333, '109.39900892511592', '24.375325516331657', '152.0', '15.0', '2020-09-05 18:58:16');
+INSERT INTO `t_order_position` VALUES (13713, 2, 2683, 333, '109.39817491515575', '24.374991968207944', '154.0', '15.0', '2020-09-05 18:58:26');
+INSERT INTO `t_order_position` VALUES (13714, 2, 2682, 324, '109.43610073428584', '24.32598766461438', '112.0', '15.0', '2020-09-05 18:58:28');
+INSERT INTO `t_order_position` VALUES (13715, 2, 2683, 333, '109.39755772578482', '24.37472512895667', '142.0', '15.0', '2020-09-05 18:58:37');
+INSERT INTO `t_order_position` VALUES (13716, 2, 2682, 324, '109.43608405205731', '24.325421182944737', '112.0', '15.0', '2020-09-05 18:58:48');
+INSERT INTO `t_order_position` VALUES (13717, 2, 2683, 333, '109.39727410952526', '24.373975200094478', '110.0', '15.0', '2020-09-05 18:58:52');
+INSERT INTO `t_order_position` VALUES (13718, 2, 2683, 333, '109.39727405666879', '24.37307542402337', '112.0', '15.0', '2020-09-05 18:59:02');
+INSERT INTO `t_order_position` VALUES (13719, 2, 2683, 333, '109.39729070910398', '24.372592218088776', '110.0', '15.0', '2020-09-05 18:59:07');
+INSERT INTO `t_order_position` VALUES (13720, 2, 2682, 324, '109.43635040766466', '24.324970964166788', '58.0', '15.0', '2020-09-05 18:59:08');
+INSERT INTO `t_order_position` VALUES (13721, 2, 2683, 333, '109.39729066114191', '24.371775755558694', '108.0', '15.0', '2020-09-05 18:59:17');
+INSERT INTO `t_order_position` VALUES (13722, 2, 2682, 324, '109.43716618723526', '24.325069848599586', '74.0', '15.0', '2020-09-05 18:59:18');
+INSERT INTO `t_order_position` VALUES (13723, 2, 2683, 333, '109.39729062688343', '24.371192568387627', '112.0', '15.0', '2020-09-05 18:59:27');
+INSERT INTO `t_order_position` VALUES (13724, 2, 2682, 324, '109.43793195727685', '24.324568946886924', '62.0', '15.0', '2020-09-05 18:59:33');
+INSERT INTO `t_order_position` VALUES (13725, 2, 2683, 333, '109.3973072587508', '24.37035945120507', '110.0', '15.0', '2020-09-05 18:59:37');
+INSERT INTO `t_order_position` VALUES (13726, 2, 2682, 324, '109.43858119615747', '24.32450139293023', '0.0', '15.0', '2020-09-05 18:59:43');
+INSERT INTO `t_order_position` VALUES (13727, 2, 2683, 333, '109.39729053487551', '24.369626295713996', '110.0', '15.0', '2020-09-05 18:59:47');
+INSERT INTO `t_order_position` VALUES (13728, 2, 2683, 333, '109.39729049376587', '24.36892647243207', '114.0', '15.0', '2020-09-05 18:59:57');
+INSERT INTO `t_order_position` VALUES (13729, 2, 2683, 333, '109.39725708219349', '24.3680766738631', '114.0', '15.0', '2020-09-05 19:00:07');
+INSERT INTO `t_order_position` VALUES (13730, 2, 2683, 333, '109.39727372485396', '24.367426845668998', '112.0', '15.0', '2020-09-05 19:00:17');
+INSERT INTO `t_order_position` VALUES (13731, 2, 2682, 324, '109.43938023870906', '24.32453357626965', '58.0', '15.0', '2020-09-05 19:00:19');
+INSERT INTO `t_order_position` VALUES (13732, 2, 2683, 333, '109.39732372323087', '24.366677056957844', '112.0', '15.0', '2020-09-05 19:00:27');
+INSERT INTO `t_order_position` VALUES (13733, 2, 2682, 324, '109.4400960163996', '24.32446588438113', '114.0', '15.0', '2020-09-05 19:00:34');
+INSERT INTO `t_order_position` VALUES (13734, 2, 2683, 333, '109.3973904169168', '24.36617721160503', '110.0', '15.0', '2020-09-05 19:00:37');
+INSERT INTO `t_order_position` VALUES (13735, 2, 2682, 324, '109.44004603788065', '24.323766160538074', '112.0', '15.0', '2020-09-05 19:00:44');
+INSERT INTO `t_order_position` VALUES (13736, 2, 2683, 333, '109.39754050876779', '24.365594087760552', '106.0', '15.0', '2020-09-05 19:00:53');
+INSERT INTO `t_order_position` VALUES (13737, 2, 2683, 333, '109.39775731855507', '24.364961002267297', '100.0', '15.0', '2020-09-05 19:01:08');
+INSERT INTO `t_order_position` VALUES (13738, 2, 2682, 324, '109.44001271684783', '24.323266354464845', '112.0', '15.0', '2020-09-05 19:01:24');
+INSERT INTO `t_order_position` VALUES (13739, 2, 2683, 333, '109.39802417283335', '24.364427908571102', '104.0', '15.0', '2020-09-05 19:01:28');
+INSERT INTO `t_order_position` VALUES (13740, 2, 2682, 324, '109.44007926405565', '24.322649768794584', '110.0', '15.0', '2020-09-05 19:01:34');
+INSERT INTO `t_order_position` VALUES (13741, 2, 2683, 333, '109.39834105994838', '24.363828181034872', '102.0', '15.0', '2020-09-05 19:01:43');
+INSERT INTO `t_order_position` VALUES (13742, 2, 2682, 324, '109.44007923375719', '24.322133252347466', '112.0', '15.0', '2020-09-05 19:01:44');
+INSERT INTO `t_order_position` VALUES (13743, 2, 2683, 333, '109.39865793749193', '24.36314513775184', '114.0', '15.0', '2020-09-05 19:01:53');
+INSERT INTO `t_order_position` VALUES (13744, 2, 2682, 324, '109.44014578075814', '24.321516667032842', '116.0', '15.0', '2020-09-05 19:01:54');
+INSERT INTO `t_order_position` VALUES (13745, 2, 2682, 324, '109.44027891420883', '24.320966630448474', '116.0', '15.0', '2020-09-05 19:02:14');
+INSERT INTO `t_order_position` VALUES (13746, 2, 2683, 333, '109.398924773724', '24.362495398306354', '100.0', '15.0', '2020-09-05 19:02:23');
+INSERT INTO `t_order_position` VALUES (13747, 2, 2682, 324, '109.43936339390686', '24.321151249481055', '122.0', '15.0', '2020-09-05 19:02:34');
+INSERT INTO `t_order_position` VALUES (13748, 2, 2682, 324, '109.43839789267126', '24.321335903186593', '112.0', '15.0', '2020-09-05 19:02:44');
+INSERT INTO `t_order_position` VALUES (13749, 2, 2682, 324, '109.43789846864324', '24.32126995101337', '112.0', '15.0', '2020-09-05 19:02:49');
+INSERT INTO `t_order_position` VALUES (13750, 2, 2682, 324, '109.43698283027597', '24.321204550369757', '112.0', '15.0', '2020-09-05 19:03:00');
+INSERT INTO `t_order_position` VALUES (13751, 2, 2682, 324, '109.43643342934799', '24.321188619243785', '120.0', '15.0', '2020-09-05 19:03:10');
+INSERT INTO `t_order_position` VALUES (13752, 2, 2683, 333, '109.39924165143421', '24.361962309243758', '84.0', '15.0', '2020-09-05 19:03:34');
+INSERT INTO `t_order_position` VALUES (13753, 2, 2682, 324, '109.43596724185167', '24.32087265475659', '0.0', '15.0', '2020-09-05 19:03:40');
+INSERT INTO `t_order_position` VALUES (13754, 2, 2683, 333, '109.39995884923255', '24.361962534542315', '62.0', '15.0', '2020-09-05 19:03:49');
+INSERT INTO `t_order_position` VALUES (13755, 2, 2683, 333, '109.40060931001675', '24.361962720119934', '60.0', '15.0', '2020-09-05 19:03:54');
+INSERT INTO `t_order_position` VALUES (13756, 2, 2683, 333, '109.40147655209093', '24.36182964081675', '62.0', '15.0', '2020-09-05 19:03:59');
+INSERT INTO `t_order_position` VALUES (13757, 2, 2683, 333, '109.40206025492547', '24.361779783482568', '64.0', '15.0', '2020-09-05 19:04:04');
+INSERT INTO `t_order_position` VALUES (13758, 2, 2683, 333, '109.40302749217508', '24.36159668047629', '60.0', '15.0', '2020-09-05 19:04:14');
+INSERT INTO `t_order_position` VALUES (13759, 2, 2683, 333, '109.40364450625957', '24.361596776114183', '62.0', '15.0', '2020-09-05 19:04:19');
+INSERT INTO `t_order_position` VALUES (13760, 2, 2683, 333, '109.40446160086817', '24.361530228061152', '60.0', '15.0', '2020-09-05 19:04:29');
+INSERT INTO `t_order_position` VALUES (13761, 2, 2683, 333, '109.4050618936588', '24.361463634678742', '64.0', '15.0', '2020-09-05 19:04:44');
+INSERT INTO `t_order_position` VALUES (13762, 2, 2682, 324, '109.43618371490611', '24.321488859603917', '4.0', '15.0', '2020-09-05 19:04:51');
+INSERT INTO `t_order_position` VALUES (13763, 2, 2683, 333, '109.40567884509231', '24.361430351213585', '56.0', '15.0', '2020-09-05 19:04:54');
+INSERT INTO `t_order_position` VALUES (13764, 2, 2682, 324, '109.43620040781167', '24.322238619460958', '10.0', '15.0', '2020-09-05 19:05:01');
+INSERT INTO `t_order_position` VALUES (13765, 2, 2683, 333, '109.40656255782774', '24.361447043671067', '62.0', '15.0', '2020-09-05 19:05:04');
+INSERT INTO `t_order_position` VALUES (13766, 2, 2683, 333, '109.40766297177241', '24.361380383913946', '60.0', '15.0', '2020-09-05 19:05:14');
+INSERT INTO `t_order_position` VALUES (13767, 2, 2682, 324, '109.43694962075215', '24.32268749656244', '56.0', '15.0', '2020-09-05 19:05:16');
+INSERT INTO `t_order_position` VALUES (13768, 2, 2683, 333, '109.40821315744014', '24.36136369640283', '58.0', '15.0', '2020-09-05 19:05:19');
+INSERT INTO `t_order_position` VALUES (13769, 2, 2682, 324, '109.43754895157788', '24.322703347357216', '56.0', '15.0', '2020-09-05 19:05:21');
+INSERT INTO `t_order_position` VALUES (13770, 2, 2682, 324, '109.43824815098428', '24.322752367208537', '54.0', '15.0', '2020-09-05 19:05:26');
+INSERT INTO `t_order_position` VALUES (13771, 2, 2683, 333, '109.4090967632653', '24.361430277407187', '60.0', '15.0', '2020-09-05 19:05:30');
+INSERT INTO `t_order_position` VALUES (13772, 2, 2682, 324, '109.43894732909303', '24.322834689888122', '56.0', '15.0', '2020-09-05 19:05:31');
+INSERT INTO `t_order_position` VALUES (13773, 2, 2683, 333, '109.40969692371026', '24.36143021124444', '58.0', '15.0', '2020-09-05 19:05:34');
+INSERT INTO `t_order_position` VALUES (13774, 2, 2683, 333, '109.41034707740832', '24.36143012152787', '62.0', '15.0', '2020-09-05 19:05:40');
+INSERT INTO `t_order_position` VALUES (13775, 2, 2682, 324, '109.43962983593822', '24.32288369241045', '46.0', '15.0', '2020-09-05 19:05:41');
+INSERT INTO `t_order_position` VALUES (13776, 2, 2683, 333, '109.4110305487363', '24.36141334459028', '62.0', '15.0', '2020-09-05 19:05:45');
+INSERT INTO `t_order_position` VALUES (13777, 2, 2683, 333, '109.41166398818534', '24.3613798950991', '62.0', '15.0', '2020-09-05 19:05:50');
+INSERT INTO `t_order_position` VALUES (13778, 2, 2683, 333, '109.41243075698621', '24.361346395360275', '62.0', '15.0', '2020-09-05 19:05:55');
+INSERT INTO `t_order_position` VALUES (13779, 2, 2683, 333, '109.41316416048038', '24.361312878616946', '62.0', '15.0', '2020-09-05 19:06:00');
+INSERT INTO `t_order_position` VALUES (13780, 2, 2683, 333, '109.41383086840385', '24.361296020758385', '60.0', '15.0', '2020-09-05 19:06:05');
+INSERT INTO `t_order_position` VALUES (13781, 2, 2683, 333, '109.41443088641579', '24.361279165391743', '60.0', '15.0', '2020-09-05 19:06:10');
+INSERT INTO `t_order_position` VALUES (13782, 2, 2683, 333, '109.41496421854654', '24.361228993198136', '56.0', '15.0', '2020-09-05 19:06:15');
+INSERT INTO `t_order_position` VALUES (13783, 2, 2682, 324, '109.43888075780735', '24.323101373983395', '110.0', '15.0', '2020-09-05 19:06:16');
+INSERT INTO `t_order_position` VALUES (13784, 2, 2683, 333, '109.41593084905', '24.361178637945383', '60.0', '15.0', '2020-09-05 19:06:25');
+INSERT INTO `t_order_position` VALUES (13785, 2, 2682, 324, '109.43811498716502', '24.323002480152386', '104.0', '15.0', '2020-09-05 19:06:26');
+INSERT INTO `t_order_position` VALUES (13786, 2, 2683, 333, '109.41648080430375', '24.361095097937618', '62.0', '15.0', '2020-09-05 19:06:30');
+INSERT INTO `t_order_position` VALUES (13787, 2, 2682, 324, '109.43731589361336', '24.322920268328737', '102.0', '15.0', '2020-09-05 19:06:41');
+INSERT INTO `t_order_position` VALUES (13788, 2, 2682, 324, '109.43674984813542', '24.322821058084067', '110.0', '15.0', '2020-09-05 19:06:51');
+INSERT INTO `t_order_position` VALUES (13789, 2, 2682, 324, '109.43620044106316', '24.32280512142525', '108.0', '15.0', '2020-09-05 19:06:56');
+INSERT INTO `t_order_position` VALUES (13790, 2, 2682, 324, '109.43561772076842', '24.322789214485404', '108.0', '15.0', '2020-09-05 19:07:02');
+INSERT INTO `t_order_position` VALUES (13791, 2, 2682, 324, '109.43495173379075', '24.322756735561523', '108.0', '15.0', '2020-09-05 19:07:07');
+INSERT INTO `t_order_position` VALUES (13792, 2, 2682, 324, '109.43423577297608', '24.322707636677656', '110.0', '15.0', '2020-09-05 19:07:12');
+INSERT INTO `t_order_position` VALUES (13793, 2, 2682, 324, '109.43350313616284', '24.32265853527897', '108.0', '15.0', '2020-09-05 19:07:17');
+INSERT INTO `t_order_position` VALUES (13794, 2, 2682, 324, '109.43283707871416', '24.322592671310247', '112.0', '15.0', '2020-09-05 19:07:22');
+INSERT INTO `t_order_position` VALUES (13795, 2, 2682, 324, '109.43213769716525', '24.32256014920005', '106.0', '15.0', '2020-09-05 19:07:32');
+INSERT INTO `t_order_position` VALUES (13796, 2, 2683, 333, '109.41734737830522', '24.36111137288086', '56.0', '15.0', '2020-09-05 19:07:50');
+INSERT INTO `t_order_position` VALUES (13797, 2, 2682, 324, '109.43185464530927', '24.32319361693881', '166.0', '15.0', '2020-09-05 19:07:57');
+INSERT INTO `t_order_position` VALUES (13798, 2, 2683, 333, '109.41824724107329', '24.3611109347183', '62.0', '15.0', '2020-09-05 19:08:06');
+INSERT INTO `t_order_position` VALUES (13799, 2, 2682, 324, '109.43182137470718', '24.323776818375915', '0.0', '15.0', '2020-09-05 19:08:07');
+INSERT INTO `t_order_position` VALUES (13800, 2, 2683, 333, '109.41901375574909', '24.361060545603827', '56.0', '15.0', '2020-09-05 19:08:16');
+INSERT INTO `t_order_position` VALUES (13801, 2, 2682, 324, '109.43180476140371', '24.32444331068519', '0.0', '15.0', '2020-09-05 19:08:22');
+INSERT INTO `t_order_position` VALUES (13802, 2, 2683, 333, '109.41971359381905', '24.361060155308365', '60.0', '15.0', '2020-09-05 19:08:26');
+INSERT INTO `t_order_position` VALUES (13803, 2, 2682, 324, '109.43182145592861', '24.32515975173016', '164.0', '15.0', '2020-09-05 19:08:32');
+INSERT INTO `t_order_position` VALUES (13804, 2, 2683, 333, '109.4204633919705', '24.361043050242653', '62.0', '15.0', '2020-09-05 19:08:36');
+INSERT INTO `t_order_position` VALUES (13805, 2, 2682, 324, '109.43178817940148', '24.325642982831344', '166.0', '15.0', '2020-09-05 19:08:37');
+INSERT INTO `t_order_position` VALUES (13806, 2, 2682, 324, '109.43177155530707', '24.326126195513094', '164.0', '15.0', '2020-09-05 19:08:42');
+INSERT INTO `t_order_position` VALUES (13807, 2, 2683, 333, '109.42121316180878', '24.361025919784666', '62.0', '15.0', '2020-09-05 19:08:46');
+INSERT INTO `t_order_position` VALUES (13808, 2, 2683, 333, '109.42222947065976', '24.36099192001869', '60.0', '15.0', '2020-09-05 19:08:56');
+INSERT INTO `t_order_position` VALUES (13809, 2, 2683, 333, '109.42317908822506', '24.360941260053508', '62.0', '15.0', '2020-09-05 19:09:06');
+INSERT INTO `t_order_position` VALUES (13810, 2, 2683, 333, '109.42402870828525', '24.36090729880289', '62.0', '15.0', '2020-09-05 19:09:16');
+INSERT INTO `t_order_position` VALUES (13811, 2, 2683, 333, '109.42501155715955', '24.360873197142222', '62.0', '15.0', '2020-09-05 19:09:26');
+INSERT INTO `t_order_position` VALUES (13812, 2, 2683, 333, '109.42561123699117', '24.36083937702933', '62.0', '15.0', '2020-09-05 19:09:31');
+INSERT INTO `t_order_position` VALUES (13813, 2, 2682, 324, '109.43172164379918', '24.326909359230218', '166.0', '15.0', '2020-09-05 19:09:32');
+INSERT INTO `t_order_position` VALUES (13814, 2, 2682, 324, '109.43177163555151', '24.327492469521985', '0.0', '15.0', '2020-09-05 19:09:38');
+INSERT INTO `t_order_position` VALUES (13815, 2, 2683, 333, '109.42657735114378', '24.360805220184428', '60.0', '15.0', '2020-09-05 19:09:41');
+INSERT INTO `t_order_position` VALUES (13816, 2, 2682, 324, '109.4317883183611', '24.328008969561292', '166.0', '15.0', '2020-09-05 19:09:43');
+INSERT INTO `t_order_position` VALUES (13817, 2, 2682, 324, '109.43175504471647', '24.32854218739528', '164.0', '15.0', '2020-09-05 19:09:48');
+INSERT INTO `t_order_position` VALUES (13818, 2, 2683, 333, '109.42744348453238', '24.360804438531282', '62.0', '15.0', '2020-09-05 19:09:51');
+INSERT INTO `t_order_position` VALUES (13819, 2, 2682, 324, '109.43175507896761', '24.329125354059162', '166.0', '15.0', '2020-09-05 19:09:53');
+INSERT INTO `t_order_position` VALUES (13820, 2, 2682, 324, '109.43172180429039', '24.32964191039803', '166.0', '15.0', '2020-09-05 19:09:58');
+INSERT INTO `t_order_position` VALUES (13821, 2, 2683, 333, '109.42852609374702', '24.360720102590776', '62.0', '15.0', '2020-09-05 19:10:01');
+INSERT INTO `t_order_position` VALUES (13822, 2, 2683, 333, '109.42919228686398', '24.360686121618077', '62.0', '15.0', '2020-09-05 19:10:06');
+INSERT INTO `t_order_position` VALUES (13823, 2, 2683, 333, '109.42980849670987', '24.360668834618842', '62.0', '15.0', '2020-09-05 19:10:11');
+INSERT INTO `t_order_position` VALUES (13824, 2, 2683, 333, '109.43040803512794', '24.360668210651674', '62.0', '15.0', '2020-09-05 19:10:16');
+INSERT INTO `t_order_position` VALUES (13825, 2, 2683, 333, '109.43112412423214', '24.360617457469452', '60.0', '15.0', '2020-09-05 19:10:26');
+INSERT INTO `t_order_position` VALUES (13826, 2, 2682, 324, '109.43172183658467', '24.330191753722584', '0.0', '15.0', '2020-09-05 19:10:43');
+INSERT INTO `t_order_position` VALUES (13827, 2, 2682, 324, '109.43095582771971', '24.330559155159758', '112.0', '15.0', '2020-09-05 19:10:58');
+INSERT INTO `t_order_position` VALUES (13828, 2, 2682, 324, '109.43032299718817', '24.33054316681716', '110.0', '15.0', '2020-09-05 19:11:03');
+INSERT INTO `t_order_position` VALUES (13829, 2, 2682, 324, '109.42975676546432', '24.330560416375395', '112.0', '15.0', '2020-09-05 19:11:08');
+INSERT INTO `t_order_position` VALUES (13830, 2, 2682, 324, '109.4291572066597', '24.330544361119465', '114.0', '15.0', '2020-09-05 19:11:13');
+INSERT INTO `t_order_position` VALUES (13831, 2, 2682, 324, '109.42822452664713', '24.330561934940693', '110.0', '15.0', '2020-09-05 19:11:23');
+INSERT INTO `t_order_position` VALUES (13832, 2, 2682, 324, '109.42774152978548', '24.330828982782496', '166.0', '15.0', '2020-09-05 19:11:33');
+INSERT INTO `t_order_position` VALUES (13833, 2, 2682, 324, '109.42772491509314', '24.331528799645625', '166.0', '15.0', '2020-09-05 19:11:43');
+INSERT INTO `t_order_position` VALUES (13834, 2, 2682, 324, '109.42774161104512', '24.33221192380424', '164.0', '15.0', '2020-09-05 19:11:53');
+INSERT INTO `t_order_position` VALUES (13835, 2, 2682, 324, '109.42777495395579', '24.33274507510959', '6.0', '15.0', '2020-09-05 19:12:03');
+INSERT INTO `t_order_position` VALUES (13836, 2, 2682, 324, '109.4277916449711', '24.333344890067906', '162.0', '15.0', '2020-09-05 19:12:24');
+INSERT INTO `t_order_position` VALUES (13837, 2, 2683, 333, '109.43182353855349', '24.360616687233854', '62.0', '15.0', '2020-09-05 19:12:27');
+INSERT INTO `t_order_position` VALUES (13838, 2, 2683, 333, '109.43240636250209', '24.360566041886912', '60.0', '15.0', '2020-09-05 19:12:32');
+INSERT INTO `t_order_position` VALUES (13839, 2, 2682, 324, '109.42774170601203', '24.333828133912228', '162.0', '15.0', '2020-09-05 19:12:34');
+INSERT INTO `t_order_position` VALUES (13840, 2, 2683, 333, '109.4331556849109', '24.360531848839084', '60.0', '15.0', '2020-09-05 19:12:37');
+INSERT INTO `t_order_position` VALUES (13841, 2, 2683, 333, '109.43397158270227', '24.3604975506217', '62.0', '15.0', '2020-09-05 19:12:42');
+INSERT INTO `t_order_position` VALUES (13842, 2, 2682, 324, '109.42774174125772', '24.334427964997356', '166.0', '15.0', '2020-09-05 19:12:44');
+INSERT INTO `t_order_position` VALUES (13843, 2, 2683, 333, '109.43453769815298', '24.360496858014855', '62.0', '15.0', '2020-09-05 19:12:47');
+INSERT INTO `t_order_position` VALUES (13844, 2, 2683, 333, '109.43530358938729', '24.360412587087446', '60.0', '15.0', '2020-09-05 19:12:57');
+INSERT INTO `t_order_position` VALUES (13845, 2, 2683, 333, '109.43606945418884', '24.360361615400286', '60.0', '15.0', '2020-09-05 19:13:12');
+INSERT INTO `t_order_position` VALUES (13846, 2, 2683, 333, '109.43655225757368', '24.360161033615285', '0.0', '15.0', '2020-09-05 19:13:38');
+INSERT INTO `t_order_position` VALUES (13847, 2, 2683, 333, '109.43680195872628', '24.359710819007372', '112.0', '15.0', '2020-09-05 19:14:03');
+INSERT INTO `t_order_position` VALUES (13848, 2, 2683, 333, '109.43683522323094', '24.359160917995922', '112.0', '15.0', '2020-09-05 19:14:08');
+INSERT INTO `t_order_position` VALUES (13849, 2, 2683, 333, '109.43688513896176', '24.35866098185745', '114.0', '15.0', '2020-09-05 19:14:18');
+INSERT INTO `t_order_position` VALUES (13850, 2, 2682, 324, '109.42764183653306', '24.33494457968486', '4.0', '15.0', '2020-09-05 19:14:24');
+INSERT INTO `t_order_position` VALUES (13851, 2, 2683, 333, '109.43696833745017', '24.35792772897932', '112.0', '15.0', '2020-09-05 19:14:28');
+INSERT INTO `t_order_position` VALUES (13852, 2, 2683, 333, '109.4370348961982', '24.35734445924508', '110.0', '15.0', '2020-09-05 19:14:34');
+INSERT INTO `t_order_position` VALUES (13853, 2, 2682, 324, '109.42774181860284', '24.335744261997277', '166.0', '15.0', '2020-09-05 19:14:39');
+INSERT INTO `t_order_position` VALUES (13854, 2, 2683, 333, '109.43705151702451', '24.356877892803343', '114.0', '15.0', '2020-09-05 19:14:40');
+INSERT INTO `t_order_position` VALUES (13855, 2, 2683, 333, '109.43708478504522', '24.35639464184995', '114.0', '15.0', '2020-09-05 19:14:43');
+INSERT INTO `t_order_position` VALUES (13856, 2, 2682, 324, '109.42777515955542', '24.3362440907999', '0.0', '15.0', '2020-09-05 19:14:45');
+INSERT INTO `t_order_position` VALUES (13857, 2, 2683, 333, '109.43715134537923', '24.355844697070317', '112.0', '15.0', '2020-09-05 19:14:48');
+INSERT INTO `t_order_position` VALUES (13858, 2, 2682, 324, '109.42777519578055', '24.336860585055508', '166.0', '15.0', '2020-09-05 19:14:50');
+INSERT INTO `t_order_position` VALUES (13859, 2, 2682, 324, '109.42779188385916', '24.337410415931863', '0.0', '15.0', '2020-09-05 19:14:55');
+INSERT INTO `t_order_position` VALUES (13860, 2, 2683, 333, '109.43725117228023', '24.354794839544187', '110.0', '15.0', '2020-09-05 19:14:58');
+INSERT INTO `t_order_position` VALUES (13861, 2, 2682, 324, '109.42779191714729', '24.33797692468616', '0.0', '15.0', '2020-09-05 19:15:00');
+INSERT INTO `t_order_position` VALUES (13862, 2, 2682, 324, '109.42777529074976', '24.338476801175247', '0.0', '15.0', '2020-09-05 19:15:05');
+INSERT INTO `t_order_position` VALUES (13863, 2, 2682, 324, '109.42777531816373', '24.33894333817825', '2.0', '15.0', '2020-09-05 19:15:10');
+INSERT INTO `t_order_position` VALUES (13864, 2, 2683, 333, '109.43713460628967', '24.35429512938599', '110.0', '15.0', '2020-09-05 19:15:13');
+INSERT INTO `t_order_position` VALUES (13865, 2, 2683, 333, '109.43596920393138', '24.354296671360036', '114.0', '15.0', '2020-09-05 19:15:23');
+INSERT INTO `t_order_position` VALUES (13866, 2, 2682, 324, '109.42795855925993', '24.33942636502084', '56.0', '15.0', '2020-09-05 19:15:25');
+INSERT INTO `t_order_position` VALUES (13867, 2, 2683, 333, '109.43530322936795', '24.354280863922405', '114.0', '15.0', '2020-09-05 19:15:29');
+INSERT INTO `t_order_position` VALUES (13868, 2, 2683, 333, '109.43463723627333', '24.354315024000755', '100.0', '15.0', '2020-09-05 19:15:39');
+INSERT INTO `t_order_position` VALUES (13869, 2, 2682, 324, '109.42859146398774', '24.339442420034903', '0.0', '15.0', '2020-09-05 19:15:50');
+INSERT INTO `t_order_position` VALUES (13870, 2, 2683, 333, '109.43408777022896', '24.354249049835094', '106.0', '15.0', '2020-09-05 19:16:19');
+INSERT INTO `t_order_position` VALUES (13871, 2, 2683, 333, '109.43313866364586', '24.35423352215255', '114.0', '15.0', '2020-09-05 19:16:29');
+INSERT INTO `t_order_position` VALUES (13872, 2, 2683, 333, '109.43260581410864', '24.35425080405602', '114.0', '15.0', '2020-09-05 19:16:35');
+INSERT INTO `t_order_position` VALUES (13873, 2, 2683, 333, '109.43208960287583', '24.354268054699805', '112.0', '15.0', '2020-09-05 19:16:39');
+INSERT INTO `t_order_position` VALUES (13874, 2, 2683, 333, '109.43125697591216', '24.354285641236903', '110.0', '15.0', '2020-09-05 19:16:49');
+INSERT INTO `t_order_position` VALUES (13875, 2, 2682, 324, '109.42792525287909', '24.339509706704515', '110.0', '15.0', '2020-09-05 19:16:50');
+INSERT INTO `t_order_position` VALUES (13876, 2, 2682, 324, '109.4277087018012', '24.339060034768604', '110.0', '15.0', '2020-09-05 19:17:05');
+INSERT INTO `t_order_position` VALUES (13877, 2, 2682, 324, '109.42770867340798', '24.33857683568759', '118.0', '15.0', '2020-09-05 19:17:15');
+INSERT INTO `t_order_position` VALUES (13878, 2, 2682, 324, '109.42774195469255', '24.3380602816088', '112.0', '15.0', '2020-09-05 19:17:26');
+INSERT INTO `t_order_position` VALUES (13879, 2, 2682, 324, '109.42775857328523', '24.33742710915606', '112.0', '15.0', '2020-09-05 19:17:36');
+INSERT INTO `t_order_position` VALUES (13880, 2, 2682, 324, '109.4277751996968', '24.336927233101413', '116.0', '15.0', '2020-09-05 19:17:46');
+INSERT INTO `t_order_position` VALUES (13881, 2, 2682, 324, '109.42775850083474', '24.336194120389187', '112.0', '15.0', '2020-09-05 19:18:01');
+INSERT INTO `t_order_position` VALUES (13882, 2, 2683, 333, '109.43170654540711', '24.35336872259931', '114.0', '15.0', '2020-09-05 19:18:10');
+INSERT INTO `t_order_position` VALUES (13883, 2, 2682, 324, '109.42779178105826', '24.335660905229524', '116.0', '15.0', '2020-09-05 19:18:11');
+INSERT INTO `t_order_position` VALUES (13884, 2, 2683, 333, '109.43170651212964', '24.35280220671448', '116.0', '15.0', '2020-09-05 19:18:15');
+INSERT INTO `t_order_position` VALUES (13885, 2, 2683, 333, '109.4317064680861', '24.35205240668814', '112.0', '15.0', '2020-09-05 19:18:20');
+INSERT INTO `t_order_position` VALUES (13886, 2, 2683, 333, '109.43170643383014', '24.35146922921198', '116.0', '15.0', '2020-09-05 19:18:25');
+INSERT INTO `t_order_position` VALUES (13887, 2, 2683, 333, '109.4316731013345', '24.35100272442994', '0.0', '15.0', '2020-09-05 19:18:46');
+INSERT INTO `t_order_position` VALUES (13888, 2, 2683, 333, '109.43168971277984', '24.350302893608017', '114.0', '15.0', '2020-09-05 19:19:01');
+INSERT INTO `t_order_position` VALUES (13889, 2, 2683, 333, '109.43167303282286', '24.34983637077142', '112.0', '15.0', '2020-09-05 19:19:06');
+INSERT INTO `t_order_position` VALUES (13890, 2, 2683, 333, '109.4316730044396', '24.34935316744183', '116.0', '15.0', '2020-09-05 19:19:11');
+INSERT INTO `t_order_position` VALUES (13891, 2, 2683, 333, '109.43163965231447', '24.348553419990512', '114.0', '15.0', '2020-09-05 19:19:21');
+INSERT INTO `t_order_position` VALUES (13892, 2, 2682, 324, '109.42787503032834', '24.335160967248203', '92.0', '15.0', '2020-09-05 19:19:21');
+INSERT INTO `t_order_position` VALUES (13893, 2, 2682, 324, '109.42854124311033', '24.335093682297057', '54.0', '15.0', '2020-09-05 19:20:06');
+INSERT INTO `t_order_position` VALUES (13894, 2, 2682, 324, '109.4293240205047', '24.335109570520537', '58.0', '15.0', '2020-09-05 19:20:16');
+INSERT INTO `t_order_position` VALUES (13895, 2, 2683, 333, '109.4316396014206', '24.347686987485993', '112.0', '15.0', '2020-09-05 19:20:26');
+INSERT INTO `t_order_position` VALUES (13896, 2, 2682, 324, '109.430206690334', '24.33512532726851', '54.0', '15.0', '2020-09-05 19:20:27');
+INSERT INTO `t_order_position` VALUES (13897, 2, 2683, 333, '109.4316229126141', '24.34707050626556', '114.0', '15.0', '2020-09-05 19:20:31');
+INSERT INTO `t_order_position` VALUES (13898, 2, 2683, 333, '109.4316561766817', '24.34637065927786', '112.0', '15.0', '2020-09-05 19:20:36');
+INSERT INTO `t_order_position` VALUES (13899, 2, 2682, 324, '109.43088948318466', '24.335124603277', '60.0', '15.0', '2020-09-05 19:20:37');
+INSERT INTO `t_order_position` VALUES (13900, 2, 2683, 333, '109.43165613459698', '24.345654187484246', '114.0', '15.0', '2020-09-05 19:20:41');
+INSERT INTO `t_order_position` VALUES (13901, 2, 2683, 333, '109.43165609251244', '24.344937716110564', '112.0', '15.0', '2020-09-05 19:20:46');
+INSERT INTO `t_order_position` VALUES (13902, 2, 2683, 333, '109.43163939784769', '24.344221263623734', '114.0', '15.0', '2020-09-05 19:20:51');
+INSERT INTO `t_order_position` VALUES (13903, 2, 2683, 333, '109.4316227012119', '24.343471487342583', '112.0', '15.0', '2020-09-05 19:20:56');
+INSERT INTO `t_order_position` VALUES (13904, 2, 2683, 333, '109.43165597115336', '24.342871614960238', '112.0', '15.0', '2020-09-05 19:21:01');
+INSERT INTO `t_order_position` VALUES (13905, 2, 2683, 333, '109.43163928040366', '24.342221812010216', '112.0', '15.0', '2020-09-05 19:21:06');
+INSERT INTO `t_order_position` VALUES (13906, 2, 2683, 333, '109.43163925104285', '24.34172194961473', '112.0', '15.0', '2020-09-05 19:21:12');
+INSERT INTO `t_order_position` VALUES (13907, 2, 2683, 333, '109.4316558517531', '24.340838841410463', '114.0', '15.0', '2020-09-05 19:21:22');
+INSERT INTO `t_order_position` VALUES (13908, 2, 2683, 333, '109.43167247300244', '24.340305636980396', '114.0', '15.0', '2020-09-05 19:21:27');
+INSERT INTO `t_order_position` VALUES (13909, 2, 2683, 333, '109.43167244462077', '24.339822437411588', '112.0', '15.0', '2020-09-05 19:21:32');
+INSERT INTO `t_order_position` VALUES (13910, 2, 2683, 333, '109.43162245947501', '24.339355955478553', '114.0', '15.0', '2020-09-05 19:21:37');
+INSERT INTO `t_order_position` VALUES (13911, 2, 2683, 333, '109.43162242130656', '24.338706135910904', '132.0', '15.0', '2020-09-05 19:21:52');
+INSERT INTO `t_order_position` VALUES (13912, 2, 2683, 333, '109.4308563744585', '24.338490365169854', '112.0', '15.0', '2020-09-05 19:22:07');
+INSERT INTO `t_order_position` VALUES (13913, 2, 2683, 333, '109.42999039284696', '24.338574588775398', '114.0', '15.0', '2020-09-05 19:22:18');
+INSERT INTO `t_order_position` VALUES (13914, 2, 2683, 333, '109.42902444100889', '24.33857556833182', '110.0', '15.0', '2020-09-05 19:22:27');
+INSERT INTO `t_order_position` VALUES (13915, 2, 2683, 333, '109.42850813838841', '24.338592736890444', '114.0', '15.0', '2020-09-05 19:22:32');
+INSERT INTO `t_order_position` VALUES (13916, 2, 2683, 333, '109.42795850834906', '24.338559938960174', '162.0', '15.0', '2020-09-05 19:22:37');
+INSERT INTO `t_order_position` VALUES (13917, 2, 2683, 333, '109.42775860755253', '24.33801027994426', '110.0', '15.0', '2020-09-05 19:22:47');
+INSERT INTO `t_order_position` VALUES (13918, 2, 2683, 333, '109.42779189169164', '24.337543712086124', '114.0', '15.0', '2020-09-05 19:22:52');
+INSERT INTO `t_order_position` VALUES (13919, 2, 2682, 324, '109.4314390324251', '24.3351406675554', '112.0', '15.0', '2020-09-05 19:22:53');
+INSERT INTO `t_order_position` VALUES (13920, 2, 2683, 333, '109.42779184078056', '24.336677287338613', '114.0', '15.0', '2020-09-05 19:23:02');
+INSERT INTO `t_order_position` VALUES (13921, 2, 2682, 324, '109.43087282997449', '24.335124621180956', '112.0', '15.0', '2020-09-05 19:23:03');
+INSERT INTO `t_order_position` VALUES (13922, 2, 2682, 324, '109.43032326537573', '24.335108543134933', '112.0', '15.0', '2020-09-05 19:23:08');
+INSERT INTO `t_order_position` VALUES (13923, 2, 2683, 333, '109.42777514291149', '24.335960836784654', '112.0', '15.0', '2020-09-05 19:23:12');
+INSERT INTO `t_order_position` VALUES (13924, 2, 2682, 324, '109.42977368583959', '24.335092451697893', '112.0', '15.0', '2020-09-05 19:23:13');
+INSERT INTO `t_order_position` VALUES (13925, 2, 2682, 324, '109.42900758068261', '24.33507656263031', '112.0', '15.0', '2020-09-05 19:23:23');
+INSERT INTO `t_order_position` VALUES (13926, 2, 2683, 333, '109.42772514027332', '24.335361051717285', '124.0', '15.0', '2020-09-05 19:23:28');
+INSERT INTO `t_order_position` VALUES (13927, 2, 2682, 324, '109.42817482372392', '24.3350440491375', '112.0', '15.0', '2020-09-05 19:23:33');
+INSERT INTO `t_order_position` VALUES (13928, 2, 2683, 333, '109.42702557097661', '24.335145088665982', '106.0', '15.0', '2020-09-05 19:23:43');
+INSERT INTO `t_order_position` VALUES (13929, 2, 2682, 324, '109.42742531666092', '24.335078076074602', '108.0', '15.0', '2020-09-05 19:23:43');
+INSERT INTO `t_order_position` VALUES (13930, 2, 2683, 333, '109.42650921299305', '24.33509556310451', '112.0', '15.0', '2020-09-05 19:23:48');
+INSERT INTO `t_order_position` VALUES (13931, 2, 2682, 324, '109.42652586589881', '24.335028900491334', '114.0', '15.0', '2020-09-05 19:23:53');
+INSERT INTO `t_order_position` VALUES (13932, 2, 2683, 333, '109.4256263786065', '24.33504633658367', '112.0', '15.0', '2020-09-05 19:23:58');
+INSERT INTO `t_order_position` VALUES (13933, 2, 2683, 333, '109.4251099883839', '24.33506342654792', '110.0', '15.0', '2020-09-05 19:24:03');
+INSERT INTO `t_order_position` VALUES (13934, 2, 2682, 324, '109.4256763512396', '24.335046294530645', '114.0', '15.0', '2020-09-05 19:24:03');
+INSERT INTO `t_order_position` VALUES (13935, 2, 2683, 333, '109.42459358185468', '24.33503051856179', '112.0', '15.0', '2020-09-05 19:24:08');
+INSERT INTO `t_order_position` VALUES (13936, 2, 2682, 324, '109.4250933294014', '24.33504677816719', '112.0', '15.0', '2020-09-05 19:24:08');
+INSERT INTO `t_order_position` VALUES (13937, 2, 2682, 324, '109.42456026595069', '24.335047206974362', '112.0', '15.0', '2020-09-05 19:24:13');
+INSERT INTO `t_order_position` VALUES (13938, 2, 2683, 333, '109.42359404915696', '24.334997965624815', '110.0', '15.0', '2020-09-05 19:24:18');
+INSERT INTO `t_order_position` VALUES (13939, 2, 2683, 333, '109.42306094557443', '24.334998358437414', '112.0', '15.0', '2020-09-05 19:24:23');
+INSERT INTO `t_order_position` VALUES (13940, 2, 2682, 324, '109.42361070841379', '24.334997953143006', '110.0', '15.0', '2020-09-05 19:24:23');
+INSERT INTO `t_order_position` VALUES (13941, 2, 2683, 333, '109.42249450638255', '24.334982099772066', '112.0', '15.0', '2020-09-05 19:24:28');
+INSERT INTO `t_order_position` VALUES (13942, 2, 2682, 324, '109.42299430662213', '24.33499840663803', '110.0', '15.0', '2020-09-05 19:24:28');
+INSERT INTO `t_order_position` VALUES (13943, 2, 2683, 333, '109.42191139136379', '24.334982499833107', '110.0', '15.0', '2020-09-05 19:24:33');
+INSERT INTO `t_order_position` VALUES (13944, 2, 2682, 324, '109.42237788474733', '24.33498218101184', '110.0', '15.0', '2020-09-05 19:24:33');
+INSERT INTO `t_order_position` VALUES (13945, 2, 2683, 333, '109.42134491843008', '24.334949549795123', '112.0', '15.0', '2020-09-05 19:24:38');
+INSERT INTO `t_order_position` VALUES (13946, 2, 2682, 324, '109.42176144375688', '24.334965938239552', '112.0', '15.0', '2020-09-05 19:24:38');
+INSERT INTO `t_order_position` VALUES (13947, 2, 2683, 333, '109.42074510802614', '24.334949929930726', '112.0', '15.0', '2020-09-05 19:24:43');
+INSERT INTO `t_order_position` VALUES (13948, 2, 2682, 324, '109.42116164593004', '24.334966329657004', '112.0', '15.0', '2020-09-05 19:24:43');
+INSERT INTO `t_order_position` VALUES (13949, 2, 2683, 333, '109.4201952649295', '24.33493360212814', '112.0', '15.0', '2020-09-05 19:24:48');
+INSERT INTO `t_order_position` VALUES (13950, 2, 2682, 324, '109.42057849081034', '24.334950032640272', '112.0', '15.0', '2020-09-05 19:24:48');
+INSERT INTO `t_order_position` VALUES (13951, 2, 2683, 333, '109.41962874500707', '24.334933932154005', '112.0', '15.0', '2020-09-05 19:24:53');
+INSERT INTO `t_order_position` VALUES (13952, 2, 2682, 324, '109.42002864310055', '24.334933700699498', '112.0', '15.0', '2020-09-05 19:24:53');
+INSERT INTO `t_order_position` VALUES (13953, 2, 2683, 333, '109.419095534043', '24.3349175675379', '112.0', '15.0', '2020-09-05 19:24:58');
+INSERT INTO `t_order_position` VALUES (13954, 2, 2682, 324, '109.41942879196097', '24.334917383187225', '112.0', '15.0', '2020-09-05 19:24:58');
+INSERT INTO `t_order_position` VALUES (13955, 2, 2683, 333, '109.41846232761385', '24.33490124199962', '112.0', '15.0', '2020-09-05 19:25:03');
+INSERT INTO `t_order_position` VALUES (13956, 2, 2682, 324, '109.41886224821404', '24.334884369629098', '112.0', '15.0', '2020-09-05 19:25:03');
+INSERT INTO `t_order_position` VALUES (13957, 2, 2683, 333, '109.417945749345', '24.334884841074352', '112.0', '15.0', '2020-09-05 19:25:08');
+INSERT INTO `t_order_position` VALUES (13958, 2, 2682, 324, '109.41832901765187', '24.334884648538576', '110.0', '15.0', '2020-09-05 19:25:08');
+INSERT INTO `t_order_position` VALUES (13959, 2, 2683, 333, '109.41737916428472', '24.33486845156146', '112.0', '15.0', '2020-09-05 19:25:13');
+INSERT INTO `t_order_position` VALUES (13960, 2, 2682, 324, '109.41776244351848', '24.334868268827993', '108.0', '15.0', '2020-09-05 19:25:13');
+INSERT INTO `t_order_position` VALUES (13961, 2, 2683, 333, '109.4167958990995', '24.33486871691585', '112.0', '15.0', '2020-09-05 19:25:18');
+INSERT INTO `t_order_position` VALUES (13962, 2, 2682, 324, '109.41717918761783', '24.334835220300818', '112.0', '15.0', '2020-09-05 19:25:18');
+INSERT INTO `t_order_position` VALUES (13963, 2, 2683, 333, '109.41619594939267', '24.334835649877075', '110.0', '15.0', '2020-09-05 19:25:23');
+INSERT INTO `t_order_position` VALUES (13964, 2, 2682, 324, '109.41657925044962', '24.3348188256159', '112.0', '15.0', '2020-09-05 19:25:23');
+INSERT INTO `t_order_position` VALUES (13965, 2, 2683, 333, '109.4155959845419', '24.33485255256865', '114.0', '15.0', '2020-09-05 19:25:28');
+INSERT INTO `t_order_position` VALUES (13966, 2, 2682, 324, '109.41587930203289', '24.334819116954165', '110.0', '15.0', '2020-09-05 19:25:28');
+INSERT INTO `t_order_position` VALUES (13967, 2, 2682, 324, '109.41522933084012', '24.33486935367131', '110.0', '15.0', '2020-09-05 19:25:34');
+INSERT INTO `t_order_position` VALUES (13968, 2, 2683, 333, '109.41501266808514', '24.334869433033454', '114.0', '15.0', '2020-09-05 19:25:34');
+INSERT INTO `t_order_position` VALUES (13969, 2, 2683, 333, '109.4143793366086', '24.334936300847282', '112.0', '15.0', '2020-09-05 19:25:39');
+INSERT INTO `t_order_position` VALUES (13970, 2, 2682, 324, '109.4146460046346', '24.334902886496753', '110.0', '15.0', '2020-09-05 19:25:39');
+INSERT INTO `t_order_position` VALUES (13971, 2, 2683, 333, '109.4137959845776', '24.33495314940033', '112.0', '15.0', '2020-09-05 19:25:44');
+INSERT INTO `t_order_position` VALUES (13972, 2, 2682, 324, '109.41402932684677', '24.33493641462201', '112.0', '15.0', '2020-09-05 19:25:44');
+INSERT INTO `t_order_position` VALUES (13973, 2, 2683, 333, '109.41326262226958', '24.335019954551523', '118.0', '15.0', '2020-09-05 19:25:49');
+INSERT INTO `t_order_position` VALUES (13974, 2, 2682, 324, '109.41344596557573', '24.334969915992886', '112.0', '15.0', '2020-09-05 19:25:49');
+INSERT INTO `t_order_position` VALUES (13975, 2, 2683, 333, '109.41257923189133', '24.335120109256565', '112.0', '15.0', '2020-09-05 19:25:54');
+INSERT INTO `t_order_position` VALUES (13976, 2, 2682, 324, '109.41269590703337', '24.335053431581827', '112.0', '15.0', '2020-09-05 19:25:54');
+INSERT INTO `t_order_position` VALUES (13977, 2, 2683, 333, '109.41184580706437', '24.33515360613307', '112.0', '15.0', '2020-09-05 19:25:59');
+INSERT INTO `t_order_position` VALUES (13978, 2, 2682, 324, '109.41181246688697', '24.33512028944504', '112.0', '15.0', '2020-09-05 19:25:59');
+INSERT INTO `t_order_position` VALUES (13979, 2, 2683, 333, '109.41114569874188', '24.335253720686186', '112.0', '15.0', '2020-09-05 19:26:04');
+INSERT INTO `t_order_position` VALUES (13980, 2, 2682, 324, '109.411045676519', '24.335187091319355', '110.0', '15.0', '2020-09-05 19:26:04');
+INSERT INTO `t_order_position` VALUES (13981, 2, 2683, 333, '109.4104789035974', '24.335303822163432', '114.0', '15.0', '2020-09-05 19:26:09');
+INSERT INTO `t_order_position` VALUES (13982, 2, 2682, 324, '109.4103622067659', '24.335220530394288', '112.0', '15.0', '2020-09-05 19:26:09');
+INSERT INTO `t_order_position` VALUES (13983, 2, 2682, 324, '109.40974539827167', '24.335270602391894', '114.0', '15.0', '2020-09-05 19:26:14');
+INSERT INTO `t_order_position` VALUES (13984, 2, 2683, 333, '109.40989544501505', '24.335437202929104', '132.0', '15.0', '2020-09-05 19:26:19');
+INSERT INTO `t_order_position` VALUES (13985, 2, 2682, 324, '109.4090452140652', '24.33532066555257', '112.0', '15.0', '2020-09-05 19:26:19');
+INSERT INTO `t_order_position` VALUES (13986, 2, 2682, 324, '109.40844503634757', '24.335354038416547', '112.0', '15.0', '2020-09-05 19:26:24');
+INSERT INTO `t_order_position` VALUES (13987, 2, 2683, 333, '109.40937865129193', '24.335520575405642', '154.0', '15.0', '2020-09-05 19:26:29');
+INSERT INTO `t_order_position` VALUES (13988, 2, 2682, 324, '109.40777815314951', '24.33542072203275', '112.0', '15.0', '2020-09-05 19:26:29');
+INSERT INTO `t_order_position` VALUES (13989, 2, 2682, 324, '109.40707790012257', '24.335454062361784', '112.0', '15.0', '2020-09-05 19:26:34');
+INSERT INTO `t_order_position` VALUES (13990, 2, 2683, 333, '109.40887850318853', '24.335387328692576', '112.0', '15.0', '2020-09-05 19:26:39');
+INSERT INTO `t_order_position` VALUES (13991, 2, 2682, 324, '109.40636095241247', '24.335537366743583', '112.0', '15.0', '2020-09-05 19:26:39');
+INSERT INTO `t_order_position` VALUES (13992, 2, 2683, 333, '109.40836168253188', '24.335454015894936', '110.0', '15.0', '2020-09-05 19:26:44');
+INSERT INTO `t_order_position` VALUES (13993, 2, 2682, 324, '109.40559395598933', '24.33560398383145', '110.0', '15.0', '2020-09-05 19:26:44');
+INSERT INTO `t_order_position` VALUES (13994, 2, 2682, 324, '109.40489362633157', '24.335603933213388', '114.0', '15.0', '2020-09-05 19:26:49');
+INSERT INTO `t_order_position` VALUES (13995, 2, 2683, 333, '109.4073946890372', '24.335520705609692', '112.0', '15.0', '2020-09-05 19:26:54');
+INSERT INTO `t_order_position` VALUES (13996, 2, 2682, 324, '109.40430999815692', '24.335570550753072', '120.0', '15.0', '2020-09-05 19:26:54');
+INSERT INTO `t_order_position` VALUES (13997, 2, 2683, 333, '109.40687783068998', '24.33558735901636', '112.0', '15.0', '2020-09-05 19:26:59');
+INSERT INTO `t_order_position` VALUES (13998, 2, 2683, 333, '109.40634428467344', '24.335637338308917', '112.0', '15.0', '2020-09-05 19:27:04');
+INSERT INTO `t_order_position` VALUES (13999, 2, 2682, 324, '109.40405989403246', '24.33602039508119', '60.0', '15.0', '2020-09-05 19:27:04');
+INSERT INTO `t_order_position` VALUES (14000, 2, 2683, 333, '109.40556061631254', '24.335753939861497', '152.0', '15.0', '2020-09-05 19:27:14');
+INSERT INTO `t_order_position` VALUES (14001, 2, 2683, 333, '109.40544393142466', '24.336353764742757', '6.0', '15.0', '2020-09-05 19:27:24');
+INSERT INTO `t_order_position` VALUES (14002, 2, 2682, 324, '109.40332616911472', '24.336170250707276', '114.0', '15.0', '2020-09-05 19:27:24');
+INSERT INTO `t_order_position` VALUES (14003, 2, 2683, 333, '109.40547732613429', '24.337136881277157', '166.0', '15.0', '2020-09-05 19:27:34');
+INSERT INTO `t_order_position` VALUES (14004, 2, 2682, 324, '109.4025423892877', '24.336336735744585', '150.0', '15.0', '2020-09-05 19:27:35');
+INSERT INTO `t_order_position` VALUES (14005, 2, 2683, 333, '109.40547737216383', '24.33791999620867', '164.0', '15.0', '2020-09-05 19:27:44');
+INSERT INTO `t_order_position` VALUES (14006, 2, 2682, 324, '109.40235898701546', '24.33705316671306', '164.0', '15.0', '2020-09-05 19:27:44');
+INSERT INTO `t_order_position` VALUES (14007, 2, 2683, 333, '109.40524397335626', '24.338653109841363', '152.0', '15.0', '2020-09-05 19:27:54');
+INSERT INTO `t_order_position` VALUES (14008, 2, 2682, 324, '109.40225897570396', '24.337902909770328', '0.0', '15.0', '2020-09-05 19:27:55');
+INSERT INTO `t_order_position` VALUES (14009, 2, 2682, 324, '109.40229236475449', '24.33850274949701', '2.0', '15.0', '2020-09-05 19:28:05');
+INSERT INTO `t_order_position` VALUES (14010, 2, 2683, 333, '109.40501056014881', '24.339186277013017', '104.0', '15.0', '2020-09-05 19:28:15');
+INSERT INTO `t_order_position` VALUES (14011, 2, 2682, 324, '109.4022757299624', '24.33921921378048', '162.0', '15.0', '2020-09-05 19:28:15');
+INSERT INTO `t_order_position` VALUES (14012, 2, 2682, 324, '109.40209233415979', '24.340085602792954', '164.0', '15.0', '2020-09-05 19:28:25');
+INSERT INTO `t_order_position` VALUES (14013, 2, 2682, 324, '109.4020256532794', '24.340552126403974', '162.0', '15.0', '2020-09-05 19:28:30');
+INSERT INTO `t_order_position` VALUES (14014, 2, 2682, 324, '109.40199232744615', '24.34103531918365', '162.0', '15.0', '2020-09-05 19:28:35');
+INSERT INTO `t_order_position` VALUES (14015, 2, 2683, 333, '109.40534402804359', '24.338786413141356', '100.0', '15.0', '2020-09-05 19:28:40');
+INSERT INTO `t_order_position` VALUES (14016, 2, 2682, 324, '109.401925647226', '24.3415185049414', '162.0', '15.0', '2020-09-05 19:28:40');
+INSERT INTO `t_order_position` VALUES (14017, 2, 2683, 333, '109.40554409384657', '24.338336550950764', '108.0', '15.0', '2020-09-05 19:28:50');
+INSERT INTO `t_order_position` VALUES (14018, 2, 2682, 324, '109.4017922783156', '24.342351579769165', '162.0', '15.0', '2020-09-05 19:28:50');
+INSERT INTO `t_order_position` VALUES (14019, 2, 2683, 333, '109.40561075753071', '24.337770045889286', '112.0', '15.0', '2020-09-05 19:29:00');
+INSERT INTO `t_order_position` VALUES (14020, 2, 2682, 324, '109.40157552240825', '24.34320129743001', '162.0', '15.0', '2020-09-05 19:29:00');
+INSERT INTO `t_order_position` VALUES (14021, 2, 2683, 333, '109.40551066790515', '24.33702024922764', '114.0', '15.0', '2020-09-05 19:29:10');
+INSERT INTO `t_order_position` VALUES (14022, 2, 2682, 324, '109.40145882882867', '24.344034375335617', '166.0', '15.0', '2020-09-05 19:29:10');
+INSERT INTO `t_order_position` VALUES (14023, 2, 2682, 324, '109.40147553574585', '24.344534242585627', '164.0', '15.0', '2020-09-05 19:29:16');
+INSERT INTO `t_order_position` VALUES (14024, 2, 2683, 333, '109.40541058562832', '24.33640374861205', '116.0', '15.0', '2020-09-05 19:29:35');
+INSERT INTO `t_order_position` VALUES (14025, 2, 2682, 324, '109.40140885877692', '24.34510073885458', '2.0', '15.0', '2020-09-05 19:29:39');
+INSERT INTO `t_order_position` VALUES (14026, 2, 2683, 333, '109.40532717242387', '24.33570393903587', '108.0', '15.0', '2020-09-05 19:29:50');
+INSERT INTO `t_order_position` VALUES (14027, 2, 2682, 324, '109.40184249320964', '24.345467404587882', '60.0', '15.0', '2020-09-05 19:29:55');
+INSERT INTO `t_order_position` VALUES (14028, 2, 2683, 333, '109.40582737824047', '24.335337404076014', '60.0', '15.0', '2020-09-05 19:30:05');
+INSERT INTO `t_order_position` VALUES (14029, 2, 2682, 324, '109.40267634091005', '24.345500896618486', '56.0', '15.0', '2020-09-05 19:30:10');
+INSERT INTO `t_order_position` VALUES (14030, 2, 2683, 333, '109.40659436886988', '24.335320765142562', '62.0', '15.0', '2020-09-05 19:30:15');
+INSERT INTO `t_order_position` VALUES (14031, 2, 2683, 333, '109.40727796661474', '24.335304101972756', '64.0', '15.0', '2020-09-05 19:30:25');
+INSERT INTO `t_order_position` VALUES (14032, 2, 2682, 324, '109.4029932327377', '24.346167437837344', '0.0', '15.0', '2020-09-05 19:30:31');
+INSERT INTO `t_order_position` VALUES (14033, 2, 2683, 333, '109.40796154341011', '24.335320742238387', '62.0', '15.0', '2020-09-05 19:30:35');
+INSERT INTO `t_order_position` VALUES (14034, 2, 2682, 324, '109.40295992999334', '24.347017201416985', '166.0', '15.0', '2020-09-05 19:30:41');
+INSERT INTO `t_order_position` VALUES (14035, 2, 2683, 333, '109.40866176406934', '24.335254050661483', '64.0', '15.0', '2020-09-05 19:30:45');
+INSERT INTO `t_order_position` VALUES (14036, 2, 2682, 324, '109.40295997405867', '24.34776699831856', '166.0', '15.0', '2020-09-05 19:30:51');
+INSERT INTO `t_order_position` VALUES (14037, 2, 2683, 333, '109.40929526605282', '24.335020724689674', '70.0', '15.0', '2020-09-05 19:30:55');
+INSERT INTO `t_order_position` VALUES (14038, 2, 2682, 324, '109.40296001322803', '24.348433484841024', '164.0', '15.0', '2020-09-05 19:31:01');
+INSERT INTO `t_order_position` VALUES (14039, 2, 2683, 333, '109.40986208887412', '24.335187277466954', '160.0', '15.0', '2020-09-05 19:31:06');
+INSERT INTO `t_order_position` VALUES (14040, 2, 2683, 333, '109.40972876171504', '24.33585377425627', '2.0', '15.0', '2020-09-05 19:31:16');
+INSERT INTO `t_order_position` VALUES (14041, 2, 2682, 324, '109.40249308276546', '24.348650008434593', '112.0', '15.0', '2020-09-05 19:31:16');
+INSERT INTO `t_order_position` VALUES (14042, 2, 2683, 333, '109.40976213472851', '24.336386954094372', '2.0', '15.0', '2020-09-05 19:31:21');
+INSERT INTO `t_order_position` VALUES (14043, 2, 2683, 333, '109.40979551062578', '24.336970120147154', '4.0', '15.0', '2020-09-05 19:31:26');
+INSERT INTO `t_order_position` VALUES (14044, 2, 2683, 333, '109.4098455533083', '24.337486636180255', '2.0', '15.0', '2020-09-05 19:31:31');
+INSERT INTO `t_order_position` VALUES (14045, 2, 2682, 324, '109.40175928892776', '24.348566545749147', '112.0', '15.0', '2020-09-05 19:31:31');
+INSERT INTO `t_order_position` VALUES (14046, 2, 2682, 324, '109.40114222123567', '24.348599724609254', '108.0', '15.0', '2020-09-05 19:31:46');
+INSERT INTO `t_order_position` VALUES (14047, 2, 2683, 333, '109.40979557625634', '24.338086475475134', '0.0', '15.0', '2020-09-05 19:32:21');
+INSERT INTO `t_order_position` VALUES (14048, 2, 2682, 324, '109.40069193338186', '24.348899527320143', '0.0', '15.0', '2020-09-05 19:32:21');
+INSERT INTO `t_order_position` VALUES (14049, 2, 2683, 333, '109.40986229849989', '24.338752948112333', '2.0', '15.0', '2020-09-05 19:32:31');
+INSERT INTO `t_order_position` VALUES (14050, 2, 2683, 333, '109.4099790246731', '24.339286117802683', '60.0', '15.0', '2020-09-05 19:32:41');
+INSERT INTO `t_order_position` VALUES (14051, 2, 2683, 333, '109.41059582995574', '24.339302687417256', '64.0', '15.0', '2020-09-05 19:32:51');
+INSERT INTO `t_order_position` VALUES (14052, 2, 2682, 324, '109.4007586987792', '24.349799302836416', '2.0', '15.0', '2020-09-05 19:32:51');
+INSERT INTO `t_order_position` VALUES (14053, 2, 2683, 333, '109.41129596232997', '24.339285899930253', '62.0', '15.0', '2020-09-05 19:33:01');
+INSERT INTO `t_order_position` VALUES (14054, 2, 2682, 324, '109.40085879557044', '24.350282532661808', '56.0', '15.0', '2020-09-05 19:33:03');
+INSERT INTO `t_order_position` VALUES (14055, 2, 2683, 333, '109.41204607815604', '24.339285741260607', '60.0', '15.0', '2020-09-05 19:33:11');
+INSERT INTO `t_order_position` VALUES (14056, 2, 2682, 324, '109.4015592688972', '24.350416002563694', '50.0', '15.0', '2020-09-05 19:33:12');
+INSERT INTO `t_order_position` VALUES (14057, 2, 2683, 333, '109.4128795053365', '24.339252211373076', '64.0', '15.0', '2020-09-05 19:33:22');
+INSERT INTO `t_order_position` VALUES (14058, 2, 2682, 324, '109.40210962610537', '24.350549420875232', '54.0', '15.0', '2020-09-05 19:33:22');
+INSERT INTO `t_order_position` VALUES (14059, 2, 2683, 333, '109.41357956096981', '24.33928533854344', '58.0', '15.0', '2020-09-05 19:33:32');
+INSERT INTO `t_order_position` VALUES (14060, 2, 2682, 324, '109.40260991550572', '24.350282924280567', '100.0', '15.0', '2020-09-05 19:33:37');
+INSERT INTO `t_order_position` VALUES (14061, 2, 2683, 333, '109.41362960305221', '24.339951805552968', '164.0', '15.0', '2020-09-05 19:33:47');
+INSERT INTO `t_order_position` VALUES (14062, 2, 2682, 324, '109.40289337624391', '24.349599825622096', '106.0', '15.0', '2020-09-05 19:33:47');
+INSERT INTO `t_order_position` VALUES (14063, 2, 2683, 333, '109.41351298723261', '24.340934901641656', '0.0', '15.0', '2020-09-05 19:33:57');
+INSERT INTO `t_order_position` VALUES (14064, 2, 2682, 324, '109.40304342323896', '24.348916701920235', '112.0', '15.0', '2020-09-05 19:33:57');
+INSERT INTO `t_order_position` VALUES (14065, 2, 2683, 333, '109.4134130346126', '24.34185134476929', '164.0', '15.0', '2020-09-05 19:34:07');
+INSERT INTO `t_order_position` VALUES (14066, 2, 2683, 333, '109.41339639620368', '24.342351212030497', '162.0', '15.0', '2020-09-05 19:34:12');
+INSERT INTO `t_order_position` VALUES (14067, 2, 2683, 333, '109.41334642113411', '24.342834426967013', '166.0', '15.0', '2020-09-05 19:34:17');
+INSERT INTO `t_order_position` VALUES (14068, 2, 2682, 324, '109.40301004321502', '24.348450155517824', '110.0', '15.0', '2020-09-05 19:34:17');
+INSERT INTO `t_order_position` VALUES (14069, 2, 2683, 333, '109.41336311738506', '24.34331762292853', '164.0', '15.0', '2020-09-05 19:34:22');
+INSERT INTO `t_order_position` VALUES (14070, 2, 2682, 324, '109.40302668623012', '24.347883644755115', '112.0', '15.0', '2020-09-05 19:34:28');
+INSERT INTO `t_order_position` VALUES (14071, 2, 2683, 333, '109.41334649950787', '24.344167394996166', '166.0', '15.0', '2020-09-05 19:34:32');
+INSERT INTO `t_order_position` VALUES (14072, 2, 2682, 324, '109.40304333216959', '24.347367120702227', '112.0', '15.0', '2020-09-05 19:34:38');
+INSERT INTO `t_order_position` VALUES (14073, 2, 2683, 333, '109.41337988807773', '24.34506713965855', '2.0', '15.0', '2020-09-05 19:34:42');
+INSERT INTO `t_order_position` VALUES (14074, 2, 2682, 324, '109.40307665044783', '24.34678395105088', '112.0', '15.0', '2020-09-05 19:34:48');
+INSERT INTO `t_order_position` VALUES (14075, 2, 2683, 333, '109.41347994470992', '24.345916879130225', '10.0', '15.0', '2020-09-05 19:34:52');
+INSERT INTO `t_order_position` VALUES (14076, 2, 2682, 324, '109.4031099657349', '24.34615079522025', '114.0', '15.0', '2020-09-05 19:34:58');
+INSERT INTO `t_order_position` VALUES (14077, 2, 2683, 333, '109.41376333634697', '24.346633266387553', '14.0', '15.0', '2020-09-05 19:35:02');
+INSERT INTO `t_order_position` VALUES (14078, 2, 2682, 324, '109.40309325913643', '24.345634266348178', '112.0', '15.0', '2020-09-05 19:35:08');
+INSERT INTO `t_order_position` VALUES (14079, 2, 2683, 333, '109.41411339878863', '24.347449602085927', '14.0', '15.0', '2020-09-05 19:35:12');
+INSERT INTO `t_order_position` VALUES (14080, 2, 2682, 324, '109.40309322388421', '24.34503442983812', '114.0', '15.0', '2020-09-05 19:35:18');
+INSERT INTO `t_order_position` VALUES (14081, 2, 2683, 333, '109.41439678242261', '24.3481826443504', '10.0', '15.0', '2020-09-05 19:35:22');
+INSERT INTO `t_order_position` VALUES (14082, 2, 2683, 333, '109.41454681301425', '24.348665796650348', '12.0', '15.0', '2020-09-05 19:35:27');
+INSERT INTO `t_order_position` VALUES (14083, 2, 2682, 324, '109.40312654012385', '24.344417937002294', '112.0', '15.0', '2020-09-05 19:35:28');
+INSERT INTO `t_order_position` VALUES (14084, 2, 2683, 333, '109.41471350919232', '24.349148942338598', '14.0', '15.0', '2020-09-05 19:35:33');
+INSERT INTO `t_order_position` VALUES (14085, 2, 2683, 333, '109.41488020691705', '24.34968207352343', '10.0', '15.0', '2020-09-05 19:35:37');
+INSERT INTO `t_order_position` VALUES (14086, 2, 2682, 324, '109.40314318500408', '24.343884752237013', '112.0', '15.0', '2020-09-05 19:35:38');
+INSERT INTO `t_order_position` VALUES (14087, 2, 2683, 333, '109.41503023289462', '24.350148560968957', '8.0', '15.0', '2020-09-05 19:35:43');
+INSERT INTO `t_order_position` VALUES (14088, 2, 2683, 333, '109.41514692508193', '24.350615059853915', '12.0', '15.0', '2020-09-05 19:35:48');
+INSERT INTO `t_order_position` VALUES (14089, 2, 2682, 324, '109.40324320676372', '24.343284932703654', '102.0', '15.0', '2020-09-05 19:35:48');
+INSERT INTO `t_order_position` VALUES (14090, 2, 2683, 333, '109.41524695033222', '24.351081564511013', '10.0', '15.0', '2020-09-05 19:35:53');
+INSERT INTO `t_order_position` VALUES (14091, 2, 2683, 333, '109.41536364027169', '24.351531400407936', '14.0', '15.0', '2020-09-05 19:35:58');
+INSERT INTO `t_order_position` VALUES (14092, 2, 2682, 324, '109.40344328604915', '24.342718452468404', '102.0', '15.0', '2020-09-05 19:35:58');
+INSERT INTO `t_order_position` VALUES (14093, 2, 2683, 333, '109.4154970132223', '24.3522811494133', '6.0', '15.0', '2020-09-05 19:36:08');
+INSERT INTO `t_order_position` VALUES (14094, 2, 2682, 324, '109.4036933946859', '24.34221862613176', '104.0', '15.0', '2020-09-05 19:36:08');
+INSERT INTO `t_order_position` VALUES (14095, 2, 2683, 333, '109.4155637057313', '24.352764328262975', '4.0', '15.0', '2020-09-05 19:36:13');
+INSERT INTO `t_order_position` VALUES (14096, 2, 2682, 324, '109.40404354562773', '24.341585513356247', '102.0', '15.0', '2020-09-05 19:36:18');
+INSERT INTO `t_order_position` VALUES (14097, 2, 2683, 333, '109.41568042026947', '24.35366404351253', '4.0', '15.0', '2020-09-05 19:36:23');
+INSERT INTO `t_order_position` VALUES (14098, 2, 2682, 324, '109.40431032033962', '24.34105235874011', '104.0', '15.0', '2020-09-05 19:36:28');
+INSERT INTO `t_order_position` VALUES (14099, 2, 2683, 333, '109.415747134699', '24.354530454095507', '6.0', '15.0', '2020-09-05 19:36:33');
+INSERT INTO `t_order_position` VALUES (14100, 2, 2683, 333, '109.41586383346751', '24.35518023576654', '2.0', '15.0', '2020-09-05 19:36:43');
+INSERT INTO `t_order_position` VALUES (14101, 2, 2682, 324, '109.4045604145889', '24.340485875454842', '102.0', '15.0', '2020-09-05 19:36:43');
+INSERT INTO `t_order_position` VALUES (14102, 2, 2682, 324, '109.40479383681146', '24.340019360504108', '100.0', '15.0', '2020-09-05 19:36:48');
+INSERT INTO `t_order_position` VALUES (14103, 2, 2683, 333, '109.41594720414844', '24.355896679730172', '4.0', '15.0', '2020-09-05 19:36:53');
+INSERT INTO `t_order_position` VALUES (14104, 2, 2683, 333, '109.41598056290445', '24.35636320992824', '10.0', '15.0', '2020-09-05 19:37:03');
+INSERT INTO `t_order_position` VALUES (14105, 2, 2682, 324, '109.40512729254611', '24.339352906771346', '102.0', '15.0', '2020-09-05 19:37:09');
+INSERT INTO `t_order_position` VALUES (14106, 2, 2683, 333, '109.41601392160472', '24.356829740258107', '8.0', '15.0', '2020-09-05 19:37:18');
+INSERT INTO `t_order_position` VALUES (14107, 2, 2683, 333, '109.41621395114542', '24.35756279877804', '14.0', '15.0', '2020-09-05 19:37:28');
+INSERT INTO `t_order_position` VALUES (14108, 2, 2683, 333, '109.41636396708338', '24.358029280275403', '14.0', '15.0', '2020-09-05 19:37:33');
+INSERT INTO `t_order_position` VALUES (14109, 2, 2683, 333, '109.4165639764511', '24.358479077129704', '16.0', '15.0', '2020-09-05 19:37:38');
+INSERT INTO `t_order_position` VALUES (14110, 2, 2682, 324, '109.40537738472119', '24.338919711683037', '104.0', '15.0', '2020-09-05 19:37:39');
+INSERT INTO `t_order_position` VALUES (14111, 2, 2683, 333, '109.41674731783006', '24.35891221736873', '22.0', '15.0', '2020-09-05 19:37:43');
+INSERT INTO `t_order_position` VALUES (14112, 2, 2682, 324, '109.40566080167149', '24.338136613211894', '112.0', '15.0', '2020-09-05 19:37:49');
+INSERT INTO `t_order_position` VALUES (14113, 2, 2683, 333, '109.41694732824277', '24.35944532269834', '12.0', '15.0', '2020-09-05 19:37:53');
+INSERT INTO `t_order_position` VALUES (14114, 2, 2682, 324, '109.40562741117589', '24.337420144386908', '118.0', '15.0', '2020-09-05 19:37:59');
+INSERT INTO `t_order_position` VALUES (14115, 2, 2683, 333, '109.41716399738851', '24.359911769522437', '10.0', '15.0', '2020-09-05 19:38:03');
+INSERT INTO `t_order_position` VALUES (14116, 2, 2682, 324, '109.40552733338384', '24.33687029212487', '120.0', '15.0', '2020-09-05 19:38:09');
+INSERT INTO `t_order_position` VALUES (14117, 2, 2683, 333, '109.41721402852531', '24.36054491513839', '2.0', '15.0', '2020-09-05 19:38:29');
+INSERT INTO `t_order_position` VALUES (14118, 2, 2682, 324, '109.40541058660766', '24.336420410616928', '116.0', '15.0', '2020-09-05 19:38:29');
+INSERT INTO `t_order_position` VALUES (14119, 2, 2683, 333, '109.41754734741187', '24.361044629297375', '54.0', '15.0', '2020-09-05 19:38:39');
+INSERT INTO `t_order_position` VALUES (14120, 2, 2683, 333, '109.4184638676358', '24.361094161431815', '60.0', '15.0', '2020-09-05 19:38:49');
+INSERT INTO `t_order_position` VALUES (14121, 2, 2683, 333, '109.41904708389023', '24.361093852206245', '62.0', '15.0', '2020-09-05 19:38:54');
+INSERT INTO `t_order_position` VALUES (14122, 2, 2683, 333, '109.41974691980586', '24.361076798514073', '62.0', '15.0', '2020-09-05 19:38:59');
+INSERT INTO `t_order_position` VALUES (14123, 2, 2683, 333, '109.42048005679081', '24.361093027145007', '62.0', '15.0', '2020-09-05 19:39:04');
+INSERT INTO `t_order_position` VALUES (14124, 2, 2683, 333, '109.42116317894794', '24.36104261412477', '62.0', '15.0', '2020-09-05 19:39:09');
+INSERT INTO `t_order_position` VALUES (14125, 2, 2683, 333, '109.42189626070918', '24.36100880883673', '62.0', '15.0', '2020-09-05 19:39:14');
+INSERT INTO `t_order_position` VALUES (14126, 2, 2683, 333, '109.4226626365163', '24.360991618109352', '62.0', '15.0', '2020-09-05 19:39:19');
+INSERT INTO `t_order_position` VALUES (14127, 2, 2683, 333, '109.42349561831548', '24.360941026702843', '62.0', '15.0', '2020-09-05 19:39:24');
+INSERT INTO `t_order_position` VALUES (14128, 2, 2683, 333, '109.42436188251229', '24.360890377950685', '62.0', '15.0', '2020-09-05 19:39:29');
+INSERT INTO `t_order_position` VALUES (14129, 2, 2683, 333, '109.42524476888678', '24.36087300639469', '62.0', '15.0', '2020-09-05 19:39:34');
+INSERT INTO `t_order_position` VALUES (14130, 2, 2683, 333, '109.42611095805363', '24.360838951828356', '62.0', '15.0', '2020-09-05 19:39:39');
+INSERT INTO `t_order_position` VALUES (14131, 2, 2683, 333, '109.42689382828297', '24.360821600815328', '62.0', '15.0', '2020-09-05 19:39:44');
+INSERT INTO `t_order_position` VALUES (14132, 2, 2683, 333, '109.42761004141417', '24.36075429734665', '62.0', '15.0', '2020-09-05 19:39:49');
+INSERT INTO `t_order_position` VALUES (14133, 2, 2683, 333, '109.42850943760828', '24.360703456406615', '64.0', '15.0', '2020-09-05 19:39:54');
+INSERT INTO `t_order_position` VALUES (14134, 2, 2683, 333, '109.42927555773991', '24.36065271351615', '62.0', '15.0', '2020-09-05 19:39:59');
+INSERT INTO `t_order_position` VALUES (14135, 2, 2682, 324, '109.40534385665866', '24.335870560139902', '114.0', '15.0', '2020-09-05 19:40:00');
+INSERT INTO `t_order_position` VALUES (14136, 2, 2683, 333, '109.42994172704952', '24.360635372663467', '62.0', '15.0', '2020-09-05 19:40:04');
+INSERT INTO `t_order_position` VALUES (14137, 2, 2682, 324, '109.40532714206462', '24.335187417284452', '110.0', '15.0', '2020-09-05 19:40:10');
+INSERT INTO `t_order_position` VALUES (14138, 2, 2683, 333, '109.43054125857766', '24.360584758142686', '62.0', '15.0', '2020-09-05 19:40:14');
+INSERT INTO `t_order_position` VALUES (14139, 2, 2682, 324, '109.40539380253468', '24.334554266362176', '108.0', '15.0', '2020-09-05 19:40:20');
+INSERT INTO `t_order_position` VALUES (14140, 2, 2683, 333, '109.43120738812694', '24.360600704570793', '62.0', '15.0', '2020-09-05 19:40:25');
+INSERT INTO `t_order_position` VALUES (14141, 2, 2682, 324, '109.40562720159488', '24.333854477552695', '108.0', '15.0', '2020-09-05 19:40:30');
+INSERT INTO `t_order_position` VALUES (14142, 2, 2683, 333, '109.4319067976228', '24.360566607092096', '60.0', '15.0', '2020-09-05 19:40:35');
+INSERT INTO `t_order_position` VALUES (14143, 2, 2682, 324, '109.40571053131715', '24.33315467945513', '112.0', '15.0', '2020-09-05 19:40:40');
+INSERT INTO `t_order_position` VALUES (14144, 2, 2683, 333, '109.43282265525512', '24.360532237826934', '64.0', '15.0', '2020-09-05 19:40:45');
+INSERT INTO `t_order_position` VALUES (14145, 2, 2682, 324, '109.4056604804443', '24.332671480012177', '112.0', '15.0', '2020-09-05 19:40:45');
+INSERT INTO `t_order_position` VALUES (14146, 2, 2682, 324, '109.40566045106426', '24.332171621458443', '112.0', '15.0', '2020-09-05 19:40:50');
+INSERT INTO `t_order_position` VALUES (14147, 2, 2683, 333, '109.43365521433341', '24.360447944570627', '58.0', '15.0', '2020-09-05 19:40:55');
+INSERT INTO `t_order_position` VALUES (14148, 2, 2682, 324, '109.40562707134347', '24.331638437391156', '124.0', '15.0', '2020-09-05 19:40:55');
+INSERT INTO `t_order_position` VALUES (14149, 2, 2682, 324, '109.405543668813', '24.331105250594035', '124.0', '15.0', '2020-09-05 19:41:00');
+INSERT INTO `t_order_position` VALUES (14150, 2, 2683, 333, '109.43450439376186', '24.36043024980403', '60.0', '15.0', '2020-09-05 19:41:05');
+INSERT INTO `t_order_position` VALUES (14151, 2, 2682, 324, '109.40536022455942', '24.330655366853755', '122.0', '15.0', '2020-09-05 19:41:05');
+INSERT INTO `t_order_position` VALUES (14152, 2, 2682, 324, '109.40521012680425', '24.330188822368473', '124.0', '15.0', '2020-09-05 19:41:10');
+INSERT INTO `t_order_position` VALUES (14153, 2, 2683, 333, '109.43537018477213', '24.360362515469514', '64.0', '15.0', '2020-09-05 19:41:15');
+INSERT INTO `t_order_position` VALUES (14154, 2, 2682, 324, '109.40506001032911', '24.329422362619443', '122.0', '15.0', '2020-09-05 19:41:20');
+INSERT INTO `t_order_position` VALUES (14155, 2, 2682, 324, '109.40495993468387', '24.328955820915404', '122.0', '15.0', '2020-09-05 19:41:25');
+INSERT INTO `t_order_position` VALUES (14156, 2, 2683, 333, '109.4361526999545', '24.360378169174858', '72.0', '15.0', '2020-09-05 19:41:35');
+INSERT INTO `t_order_position` VALUES (14157, 2, 2682, 324, '109.4048932032815', '24.32840597239352', '122.0', '15.0', '2020-09-05 19:41:35');
+INSERT INTO `t_order_position` VALUES (14158, 2, 2683, 333, '109.43675201834395', '24.35979419719976', '114.0', '15.0', '2020-09-05 19:41:45');
+INSERT INTO `t_order_position` VALUES (14159, 2, 2682, 324, '109.40475977018771', '24.327822794006135', '134.0', '15.0', '2020-09-05 19:41:45');
+INSERT INTO `t_order_position` VALUES (14160, 2, 2683, 333, '109.43681858462752', '24.359327563398207', '110.0', '15.0', '2020-09-05 19:41:50');
+INSERT INTO `t_order_position` VALUES (14161, 2, 2683, 333, '109.43685185301824', '24.35884431178654', '114.0', '15.0', '2020-09-05 19:41:55');
+INSERT INTO `t_order_position` VALUES (14162, 2, 2682, 324, '109.40420945080268', '24.3271395987313', '136.0', '15.0', '2020-09-05 19:41:55');
+INSERT INTO `t_order_position` VALUES (14163, 2, 2683, 333, '109.43693504577071', '24.35801108510776', '110.0', '15.0', '2020-09-05 19:42:05');
+INSERT INTO `t_order_position` VALUES (14164, 2, 2682, 324, '109.40372582573228', '24.326556371257933', '138.0', '15.0', '2020-09-05 19:42:05');
+INSERT INTO `t_order_position` VALUES (14165, 2, 2682, 324, '109.40339228672919', '24.32618976160972', '134.0', '15.0', '2020-09-05 19:42:10');
+INSERT INTO `t_order_position` VALUES (14166, 2, 2683, 333, '109.43706818674043', '24.357244440730437', '114.0', '15.0', '2020-09-05 19:42:15');
+INSERT INTO `t_order_position` VALUES (14167, 2, 2682, 324, '109.40312544345097', '24.325756510846155', '124.0', '15.0', '2020-09-05 19:42:16');
+INSERT INTO `t_order_position` VALUES (14168, 2, 2683, 333, '109.43710145571252', '24.35677785188829', '114.0', '15.0', '2020-09-05 19:42:21');
+INSERT INTO `t_order_position` VALUES (14169, 2, 2683, 333, '109.43716801697124', '24.356244569160786', '114.0', '15.0', '2020-09-05 19:42:26');
+INSERT INTO `t_order_position` VALUES (14170, 2, 2682, 324, '109.4029252867197', '24.325056679063838', '120.0', '15.0', '2020-09-05 19:42:26');
+INSERT INTO `t_order_position` VALUES (14171, 2, 2683, 333, '109.43721793190821', '24.355744633528616', '112.0', '15.0', '2020-09-05 19:42:31');
+INSERT INTO `t_order_position` VALUES (14172, 2, 2682, 324, '109.40285855269627', '24.32457347374895', '122.0', '15.0', '2020-09-05 19:42:36');
+INSERT INTO `t_order_position` VALUES (14173, 2, 2683, 333, '109.43728448106054', '24.355011403806962', '110.0', '15.0', '2020-09-05 19:42:41');
+INSERT INTO `t_order_position` VALUES (14174, 2, 2682, 324, '109.40270842214957', '24.323856987632222', '116.0', '15.0', '2020-09-05 19:42:56');
+INSERT INTO `t_order_position` VALUES (14175, 2, 2682, 324, '109.40274173019337', '24.323090549287503', '110.0', '15.0', '2020-09-05 19:43:06');
+INSERT INTO `t_order_position` VALUES (14176, 2, 2683, 333, '109.43735103293571', '24.354328161089793', '112.0', '15.0', '2020-09-05 19:43:16');
+INSERT INTO `t_order_position` VALUES (14177, 2, 2682, 324, '109.4027750499327', '24.32252405320287', '102.0', '15.0', '2020-09-05 19:43:21');
+INSERT INTO `t_order_position` VALUES (14178, 2, 2683, 333, '109.43748416832562', '24.35351152997597', '112.0', '15.0', '2020-09-05 19:43:26');
+INSERT INTO `t_order_position` VALUES (14179, 2, 2683, 333, '109.43755072934668', '24.35299490983714', '112.0', '15.0', '2020-09-05 19:43:31');
+INSERT INTO `t_order_position` VALUES (14180, 2, 2682, 324, '109.4033253534793', '24.322290879731725', '28.0', '15.0', '2020-09-05 19:43:36');
+INSERT INTO `t_order_position` VALUES (14181, 2, 2683, 333, '109.43761728135506', '24.35232832972669', '114.0', '15.0', '2020-09-05 19:43:41');
+INSERT INTO `t_order_position` VALUES (14182, 2, 2682, 324, '109.40367557226975', '24.322707477042883', '56.0', '15.0', '2020-09-05 19:43:46');
+INSERT INTO `t_order_position` VALUES (14183, 2, 2683, 333, '109.43770048476007', '24.35172837580304', '112.0', '15.0', '2020-09-05 19:43:46');
+INSERT INTO `t_order_position` VALUES (14184, 2, 2683, 333, '109.43776703727195', '24.351078458169408', '114.0', '15.0', '2020-09-05 19:43:51');
+INSERT INTO `t_order_position` VALUES (14185, 2, 2682, 324, '109.40460938507103', '24.322540970923768', '82.0', '15.0', '2020-09-05 19:43:56');
+INSERT INTO `t_order_position` VALUES (14186, 2, 2683, 333, '109.43781694296099', '24.350445225828775', '110.0', '15.0', '2020-09-05 19:43:56');
+INSERT INTO `t_order_position` VALUES (14187, 2, 2683, 333, '109.43785020585746', '24.349895327611495', '114.0', '15.0', '2020-09-05 19:44:01');
+INSERT INTO `t_order_position` VALUES (14188, 2, 2682, 324, '109.40525966661004', '24.3219578630031', '80.0', '15.0', '2020-09-05 19:44:06');
+INSERT INTO `t_order_position` VALUES (14189, 2, 2683, 333, '109.43790011428315', '24.349312082250677', '110.0', '15.0', '2020-09-05 19:44:06');
+INSERT INTO `t_order_position` VALUES (14190, 2, 2683, 333, '109.43795002552419', '24.348778823580716', '114.0', '15.0', '2020-09-05 19:44:11');
+INSERT INTO `t_order_position` VALUES (14191, 2, 2683, 333, '109.43801657822492', '24.348145568982126', '112.0', '15.0', '2020-09-05 19:44:16');
+INSERT INTO `t_order_position` VALUES (14192, 2, 2683, 333, '109.43809978102804', '24.347562277863968', '112.0', '15.0', '2020-09-05 19:44:22');
+INSERT INTO `t_order_position` VALUES (14193, 2, 2683, 333, '109.43816633325547', '24.346929023472637', '112.0', '15.0', '2020-09-05 19:44:27');
+INSERT INTO `t_order_position` VALUES (14194, 2, 2682, 324, '109.40572652580686', '24.32159133178527', '82.0', '15.0', '2020-09-05 19:44:31');
+INSERT INTO `t_order_position` VALUES (14195, 2, 2683, 333, '109.43824953253348', '24.346295745987707', '114.0', '15.0', '2020-09-05 19:44:32');
+INSERT INTO `t_order_position` VALUES (14196, 2, 2683, 333, '109.43831608917712', '24.345745802481716', '114.0', '15.0', '2020-09-05 19:44:37');
+INSERT INTO `t_order_position` VALUES (14197, 2, 2682, 324, '109.40622671597642', '24.321124821329956', '86.0', '15.0', '2020-09-05 19:44:42');
+INSERT INTO `t_order_position` VALUES (14198, 2, 2683, 333, '109.4383826465885', '24.34521252115812', '114.0', '15.0', '2020-09-05 19:44:42');
+INSERT INTO `t_order_position` VALUES (14199, 2, 2682, 324, '109.40666020646805', '24.320758270294107', '86.0', '15.0', '2020-09-05 19:44:47');
+INSERT INTO `t_order_position` VALUES (14200, 2, 2682, 324, '109.4070603397664', '24.320358387798077', '90.0', '15.0', '2020-09-05 19:44:52');
+INSERT INTO `t_order_position` VALUES (14201, 2, 2683, 333, '109.43846582350214', '24.344212677312303', '114.0', '15.0', '2020-09-05 19:44:52');
+INSERT INTO `t_order_position` VALUES (14202, 2, 2683, 333, '109.43853237653046', '24.343612747820785', '114.0', '15.0', '2020-09-05 19:44:57');
+INSERT INTO `t_order_position` VALUES (14203, 2, 2682, 324, '109.40739377525333', '24.319975161737837', '80.0', '15.0', '2020-09-05 19:45:02');
+INSERT INTO `t_order_position` VALUES (14204, 2, 2683, 333, '109.43859893228233', '24.343062804717064', '112.0', '15.0', '2020-09-05 19:45:02');
+INSERT INTO `t_order_position` VALUES (14205, 2, 2683, 333, '109.43864883991469', '24.342496223111844', '114.0', '15.0', '2020-09-05 19:45:12');
+INSERT INTO `t_order_position` VALUES (14206, 2, 2682, 324, '109.40786059261622', '24.319725219914943', '64.0', '15.0', '2020-09-05 19:45:22');
+INSERT INTO `t_order_position` VALUES (14207, 2, 2682, 324, '109.40862750773366', '24.31972517440081', '62.0', '15.0', '2020-09-05 19:45:32');
+INSERT INTO `t_order_position` VALUES (14208, 2, 2683, 333, '109.43873204511263', '24.341996242842193', '114.0', '15.0', '2020-09-05 19:45:37');
+INSERT INTO `t_order_position` VALUES (14209, 2, 2683, 333, '109.4387985777489', '24.341063072278715', '114.0', '15.0', '2020-09-05 19:45:47');
+INSERT INTO `t_order_position` VALUES (14210, 2, 2682, 324, '109.40911096811554', '24.319475205580908', '106.0', '15.0', '2020-09-05 19:45:52');
+INSERT INTO `t_order_position` VALUES (14211, 2, 2683, 333, '109.43886513070768', '24.340479805439603', '114.0', '15.0', '2020-09-05 19:45:52');
+INSERT INTO `t_order_position` VALUES (14212, 2, 2683, 333, '109.4389483203899', '24.339729894450777', '112.0', '15.0', '2020-09-05 19:45:57');
+INSERT INTO `t_order_position` VALUES (14213, 2, 2682, 324, '109.4092276378839', '24.318975340488578', '112.0', '15.0', '2020-09-05 19:46:02');
+INSERT INTO `t_order_position` VALUES (14214, 2, 2683, 333, '109.43901487287813', '24.339146627817026', '114.0', '15.0', '2020-09-05 19:46:02');
+INSERT INTO `t_order_position` VALUES (14215, 2, 2683, 333, '109.43908142906788', '24.338630009407783', '114.0', '15.0', '2020-09-05 19:46:07');
+INSERT INTO `t_order_position` VALUES (14216, 2, 2682, 324, '109.40917758682592', '24.31834219822384', '114.0', '15.0', '2020-09-05 19:46:12');
+INSERT INTO `t_order_position` VALUES (14217, 2, 2683, 333, '109.4391479830934', '24.33808006697012', '112.0', '15.0', '2020-09-05 19:46:12');
+INSERT INTO `t_order_position` VALUES (14218, 2, 2682, 324, '109.40922757324147', '24.317875663703735', '114.0', '15.0', '2020-09-05 19:46:17');
+INSERT INTO `t_order_position` VALUES (14219, 2, 2683, 333, '109.43919789138785', '24.33754681052441', '112.0', '15.0', '2020-09-05 19:46:17');
+INSERT INTO `t_order_position` VALUES (14220, 2, 2682, 324, '109.40927755169801', '24.317275835194884', '112.0', '15.0', '2020-09-05 19:46:22');
+INSERT INTO `t_order_position` VALUES (14221, 2, 2682, 324, '109.40931086668269', '24.316809302616964', '110.0', '15.0', '2020-09-05 19:46:27');
+INSERT INTO `t_order_position` VALUES (14222, 2, 2683, 333, '109.43929771642317', '24.33663025606623', '114.0', '15.0', '2020-09-05 19:46:27');
+INSERT INTO `t_order_position` VALUES (14223, 2, 2683, 333, '109.43936424826396', '24.33571374993814', '112.0', '15.0', '2020-09-05 19:46:37');
+INSERT INTO `t_order_position` VALUES (14224, 2, 2683, 333, '109.4394308062908', '24.335247117936124', '110.0', '15.0', '2020-09-05 19:46:42');
+INSERT INTO `t_order_position` VALUES (14225, 2, 2683, 333, '109.43958057379655', '24.33441380158611', '114.0', '15.0', '2020-09-05 19:46:52');
+INSERT INTO `t_order_position` VALUES (14226, 2, 2683, 333, '109.43966375383286', '24.333547257953846', '112.0', '15.0', '2020-09-05 19:47:03');
+INSERT INTO `t_order_position` VALUES (14227, 2, 2683, 333, '109.4397469354994', '24.33271403853916', '114.0', '15.0', '2020-09-05 19:47:13');
+INSERT INTO `t_order_position` VALUES (14228, 2, 2683, 333, '109.43976352878465', '24.331814268932423', '114.0', '15.0', '2020-09-05 19:47:23');
+INSERT INTO `t_order_position` VALUES (14229, 2, 2682, 324, '109.40966092829271', '24.31629274848772', '62.0', '15.0', '2020-09-05 19:47:33');
+INSERT INTO `t_order_position` VALUES (14230, 2, 2682, 324, '109.41017771670637', '24.316242694245208', '58.0', '15.0', '2020-09-05 19:47:43');
+INSERT INTO `t_order_position` VALUES (14231, 2, 2683, 333, '109.43979678862763', '24.3312643762564', '0.0', '15.0', '2020-09-05 19:47:43');
+INSERT INTO `t_order_position` VALUES (14232, 2, 2682, 324, '109.41091120722322', '24.316292561122474', '60.0', '15.0', '2020-09-05 19:47:53');
+INSERT INTO `t_order_position` VALUES (14233, 2, 2682, 324, '109.41172801127442', '24.316242415884627', '60.0', '15.0', '2020-09-05 19:48:03');
+INSERT INTO `t_order_position` VALUES (14234, 2, 2682, 324, '109.41264479588024', '24.316242200781954', '60.0', '15.0', '2020-09-05 19:48:13');
+INSERT INTO `t_order_position` VALUES (14235, 2, 2682, 324, '109.41319485435402', '24.3163753476034', '62.0', '15.0', '2020-09-05 19:48:23');
+INSERT INTO `t_order_position` VALUES (14236, 2, 2683, 333, '109.43987998541519', '24.330697748726504', '110.0', '15.0', '2020-09-05 19:48:33');
+INSERT INTO `t_order_position` VALUES (14237, 2, 2683, 333, '109.43994652619037', '24.32996452639318', '114.0', '15.0', '2020-09-05 19:48:43');
+INSERT INTO `t_order_position` VALUES (14238, 2, 2682, 324, '109.41364486886899', '24.31610862928079', '74.0', '15.0', '2020-09-05 19:48:53');
+INSERT INTO `t_order_position` VALUES (14239, 2, 2683, 333, '109.43997978672594', '24.329431296177898', '112.0', '15.0', '2020-09-05 19:48:53');
+INSERT INTO `t_order_position` VALUES (14240, 2, 2683, 333, '109.44004633794187', '24.328881355244842', '116.0', '15.0', '2020-09-05 19:48:58');
+INSERT INTO `t_order_position` VALUES (14241, 2, 2683, 333, '109.440029659839', '24.328331536984198', '114.0', '15.0', '2020-09-05 19:49:03');
+INSERT INTO `t_order_position` VALUES (14242, 2, 2682, 324, '109.41417821310799', '24.31590852203239', '0.0', '15.0', '2020-09-05 19:49:08');
+INSERT INTO `t_order_position` VALUES (14243, 2, 2683, 333, '109.43999633682598', '24.327798405318596', '112.0', '15.0', '2020-09-05 19:49:08');
+INSERT INTO `t_order_position` VALUES (14244, 2, 2683, 333, '109.44001295240069', '24.327281862316827', '114.0', '15.0', '2020-09-05 19:49:13');
+INSERT INTO `t_order_position` VALUES (14245, 2, 2683, 333, '109.43999627524903', '24.326748706601954', '114.0', '15.0', '2020-09-05 19:49:18');
+INSERT INTO `t_order_position` VALUES (14246, 2, 2683, 333, '109.43994631017935', '24.326282247479064', '114.0', '15.0', '2020-09-05 19:49:23');
+INSERT INTO `t_order_position` VALUES (14247, 2, 2682, 324, '109.41469487051305', '24.315608437422995', '80.0', '15.0', '2020-09-05 19:49:33');
+INSERT INTO `t_order_position` VALUES (14248, 2, 2683, 333, '109.43997955898797', '24.325549076449906', '112.0', '15.0', '2020-09-05 19:49:33');
+INSERT INTO `t_order_position` VALUES (14249, 2, 2682, 324, '109.41539483112356', '24.31510833147182', '82.0', '15.0', '2020-09-05 19:49:43');
+INSERT INTO `t_order_position` VALUES (14250, 2, 2683, 333, '109.4400460984786', '24.324799194952295', '110.0', '15.0', '2020-09-05 19:49:44');
+INSERT INTO `t_order_position` VALUES (14251, 2, 2682, 324, '109.41597810991597', '24.3146415746449', '82.0', '15.0', '2020-09-05 19:49:53');
+INSERT INTO `t_order_position` VALUES (14252, 2, 2683, 333, '109.44007935788375', '24.324249304914197', '112.0', '15.0', '2020-09-05 19:49:54');
+INSERT INTO `t_order_position` VALUES (14253, 2, 2682, 324, '109.41657804265344', '24.31427476575701', '82.0', '15.0', '2020-09-05 19:50:04');
+INSERT INTO `t_order_position` VALUES (14254, 2, 2682, 324, '109.41711129470184', '24.31384132439802', '106.0', '15.0', '2020-09-05 19:50:14');
+INSERT INTO `t_order_position` VALUES (14255, 2, 2683, 333, '109.44017920127254', '24.32371597859679', '48.0', '15.0', '2020-09-05 19:50:14');
+INSERT INTO `t_order_position` VALUES (14256, 2, 2682, 324, '109.41724456776998', '24.313091486406012', '112.0', '15.0', '2020-09-05 19:50:24');
+INSERT INTO `t_order_position` VALUES (14257, 2, 2683, 333, '109.44034568341753', '24.324148939877784', '166.0', '15.0', '2020-09-05 19:50:24');
+INSERT INTO `t_order_position` VALUES (14258, 2, 2682, 324, '109.41731118976661', '24.312474972685663', '110.0', '15.0', '2020-09-05 19:50:34');
+INSERT INTO `t_order_position` VALUES (14259, 2, 2683, 333, '109.44034573717106', '24.32506534160659', '2.0', '15.0', '2020-09-05 19:50:34');
+INSERT INTO `t_order_position` VALUES (14260, 2, 2683, 333, '109.44034577137799', '24.32564850668463', '164.0', '15.0', '2020-09-05 19:50:39');
+INSERT INTO `t_order_position` VALUES (14261, 2, 2682, 324, '109.4173611450985', '24.311825143475158', '104.0', '15.0', '2020-09-05 19:50:44');
+INSERT INTO `t_order_position` VALUES (14262, 2, 2683, 333, '109.44032915410645', '24.32613172551845', '0.0', '15.0', '2020-09-05 19:50:44');
+INSERT INTO `t_order_position` VALUES (14263, 2, 2683, 333, '109.44031253682216', '24.326614944523524', '166.0', '15.0', '2020-09-05 19:50:49');
+INSERT INTO `t_order_position` VALUES (14264, 2, 2682, 324, '109.41756107389136', '24.311075273468767', '108.0', '15.0', '2020-09-05 19:50:54');
+INSERT INTO `t_order_position` VALUES (14265, 2, 2683, 333, '109.44029593809498', '24.32741473949933', '166.0', '15.0', '2020-09-05 19:50:59');
+INSERT INTO `t_order_position` VALUES (14266, 2, 2682, 324, '109.41767769735736', '24.310625352407698', '106.0', '15.0', '2020-09-05 19:50:59');
+INSERT INTO `t_order_position` VALUES (14267, 2, 2682, 324, '109.41782764052833', '24.310042121318233', '108.0', '15.0', '2020-09-05 19:51:04');
+INSERT INTO `t_order_position` VALUES (14268, 2, 2683, 333, '109.44026268000594', '24.32798129309724', '2.0', '15.0', '2020-09-05 19:51:09');
+INSERT INTO `t_order_position` VALUES (14269, 2, 2682, 324, '109.41797758844474', '24.309558859408966', '106.0', '15.0', '2020-09-05 19:51:09');
+INSERT INTO `t_order_position` VALUES (14270, 2, 2682, 324, '109.41811087039632', '24.30905894336706', '108.0', '15.0', '2020-09-05 19:51:14');
+INSERT INTO `t_order_position` VALUES (14271, 2, 2682, 324, '109.41836077482918', '24.308175749459448', '106.0', '15.0', '2020-09-05 19:51:24');
+INSERT INTO `t_order_position` VALUES (14272, 2, 2682, 324, '109.41846072612388', '24.30765918725095', '106.0', '15.0', '2020-09-05 19:51:29');
+INSERT INTO `t_order_position` VALUES (14273, 2, 2682, 324, '109.41869396377083', '24.30679266073762', '106.0', '15.0', '2020-09-05 19:51:39');
+INSERT INTO `t_order_position` VALUES (14274, 2, 2682, 324, '109.41881057764984', '24.30629275030107', '106.0', '15.0', '2020-09-05 19:51:44');
+INSERT INTO `t_order_position` VALUES (14275, 2, 2682, 324, '109.41902714908333', '24.30544289163662', '104.0', '15.0', '2020-09-05 19:51:54');
+INSERT INTO `t_order_position` VALUES (14276, 2, 2682, 324, '109.41919375090698', '24.304959614099964', '108.0', '15.0', '2020-09-05 19:51:59');
+INSERT INTO `t_order_position` VALUES (14277, 2, 2682, 324, '109.41929369703143', '24.304426387771713', '106.0', '15.0', '2020-09-05 19:52:05');
+INSERT INTO `t_order_position` VALUES (14278, 2, 2683, 333, '109.44022941600112', '24.32844787549843', '6.0', '15.0', '2020-09-05 19:52:09');
+INSERT INTO `t_order_position` VALUES (14279, 2, 2682, 324, '109.4194103005342', '24.30380984394601', '108.0', '15.0', '2020-09-05 19:52:10');
+INSERT INTO `t_order_position` VALUES (14280, 2, 2683, 333, '109.44026274158047', '24.329030992831985', '166.0', '15.0', '2020-09-05 19:52:25');
+INSERT INTO `t_order_position` VALUES (14281, 2, 2683, 333, '109.44024612717764', '24.32956419863459', '0.0', '15.0', '2020-09-05 19:53:00');
+INSERT INTO `t_order_position` VALUES (14282, 2, 2683, 333, '109.44021286510248', '24.33006410543651', '0.0', '15.0', '2020-09-05 19:54:46');
+INSERT INTO `t_order_position` VALUES (14283, 2, 2682, 324, '109.41962687914042', '24.303193243051446', '92.0', '15.0', '2020-09-05 19:54:56');
+INSERT INTO `t_order_position` VALUES (14284, 2, 2682, 324, '109.42014336764568', '24.30242651033993', '96.0', '15.0', '2020-09-05 19:55:06');
+INSERT INTO `t_order_position` VALUES (14285, 2, 2682, 324, '109.42045991670972', '24.301926473337193', '94.0', '15.0', '2020-09-05 19:55:11');
+INSERT INTO `t_order_position` VALUES (14286, 2, 2682, 324, '109.4208097829725', '24.301409749691988', '96.0', '15.0', '2020-09-05 19:55:17');
+INSERT INTO `t_order_position` VALUES (14287, 2, 2682, 324, '109.42112631847985', '24.30085971888242', '94.0', '15.0', '2020-09-05 19:55:22');
+INSERT INTO `t_order_position` VALUES (14288, 2, 2682, 324, '109.42145951392091', '24.300376319076108', '96.0', '15.0', '2020-09-05 19:55:27');
+INSERT INTO `t_order_position` VALUES (14289, 2, 2683, 333, '109.44049586279607', '24.33044690940318', '52.0', '15.0', '2020-09-05 19:55:31');
+INSERT INTO `t_order_position` VALUES (14290, 2, 2682, 324, '109.42175937436733', '24.29975964435133', '94.0', '15.0', '2020-09-05 19:55:32');
+INSERT INTO `t_order_position` VALUES (14291, 2, 2682, 324, '109.42207589866645', '24.29927624675127', '94.0', '15.0', '2020-09-05 19:55:42');
+INSERT INTO `t_order_position` VALUES (14292, 2, 2683, 333, '109.44129483922863', '24.330579000054673', '52.0', '15.0', '2020-09-05 19:55:46');
+INSERT INTO `t_order_position` VALUES (14293, 2, 2682, 324, '109.42235910029495', '24.298842852497373', '96.0', '15.0', '2020-09-05 19:55:47');
+INSERT INTO `t_order_position` VALUES (14294, 2, 2682, 324, '109.42267561700505', '24.29839276969093', '94.0', '15.0', '2020-09-05 19:55:52');
+INSERT INTO `t_order_position` VALUES (14295, 2, 2682, 324, '109.42297546596576', '24.297892709988393', '94.0', '15.0', '2020-09-05 19:55:57');
+INSERT INTO `t_order_position` VALUES (14296, 2, 2682, 324, '109.42334194841996', '24.29739259735998', '90.0', '15.0', '2020-09-05 19:56:02');
+INSERT INTO `t_order_position` VALUES (14297, 2, 2683, 333, '109.44181083277483', '24.330728165184173', '0.0', '15.0', '2020-09-05 19:56:06');
+INSERT INTO `t_order_position` VALUES (14298, 2, 2682, 324, '109.42369176495086', '24.29689249141414', '94.0', '15.0', '2020-09-05 19:56:07');
+INSERT INTO `t_order_position` VALUES (14299, 2, 2682, 324, '109.42407489504647', '24.296425677474467', '90.0', '15.0', '2020-09-05 19:56:12');
+INSERT INTO `t_order_position` VALUES (14300, 2, 2683, 333, '109.44244331239172', '24.330710517058435', '62.0', '15.0', '2020-09-05 19:56:21');
+INSERT INTO `t_order_position` VALUES (14301, 2, 2683, 333, '109.44302583615452', '24.330576298669023', '60.0', '15.0', '2020-09-05 19:56:31');
+INSERT INTO `t_order_position` VALUES (14302, 2, 2683, 333, '109.44349183846789', '24.330375607135704', '60.0', '15.0', '2020-09-05 19:56:56');
+INSERT INTO `t_order_position` VALUES (14303, 2, 2683, 333, '109.44419083601669', '24.330291158228626', '64.0', '15.0', '2020-09-05 19:57:16');
+INSERT INTO `t_order_position` VALUES (14304, 2, 2683, 333, '109.4446901030169', '24.330173698810146', '74.0', '13.0', '2020-09-05 19:57:21');
+INSERT INTO `t_order_position` VALUES (14305, 2, 2683, 333, '109.44528920207658', '24.329922765523946', '82.0', '15.0', '2020-09-05 19:57:27');
+INSERT INTO `t_order_position` VALUES (14306, 2, 2683, 333, '109.44593818560838', '24.3292718463441', '94.0', '15.0', '2020-09-05 19:57:37');
+INSERT INTO `t_order_position` VALUES (14307, 2, 2683, 333, '109.44627096595117', '24.32852148762594', '112.0', '15.0', '2020-09-05 19:57:47');
+INSERT INTO `t_order_position` VALUES (14308, 2, 2683, 333, '109.44627091518763', '24.327655069074634', '114.0', '15.0', '2020-09-05 19:57:57');
+INSERT INTO `t_order_position` VALUES (14309, 2, 2683, 333, '109.44625422430393', '24.32680534174473', '114.0', '15.0', '2020-09-05 19:58:07');
+INSERT INTO `t_order_position` VALUES (14310, 2, 2682, 324, '109.42459127587175', '24.295792136781955', '92.0', '15.0', '2020-09-05 19:58:14');
+INSERT INTO `t_order_position` VALUES (14311, 2, 2683, 333, '109.44628746255538', '24.32605549991936', '112.0', '15.0', '2020-09-05 19:58:17');
+INSERT INTO `t_order_position` VALUES (14312, 2, 2682, 324, '109.42495773545389', '24.295408628618954', '90.0', '15.0', '2020-09-05 19:58:18');
+INSERT INTO `t_order_position` VALUES (14313, 2, 2682, 324, '109.42550741269645', '24.294841685986974', '92.0', '15.0', '2020-09-05 19:58:23');
+INSERT INTO `t_order_position` VALUES (14314, 2, 2683, 333, '109.44627077266057', '24.325222435523635', '114.0', '15.0', '2020-09-05 19:58:27');
+INSERT INTO `t_order_position` VALUES (14315, 2, 2682, 324, '109.42595713425273', '24.294324800134714', '92.0', '15.0', '2020-09-05 19:58:28');
+INSERT INTO `t_order_position` VALUES (14316, 2, 2682, 324, '109.42629025281293', '24.293907975971415', '94.0', '15.0', '2020-09-05 19:58:33');
+INSERT INTO `t_order_position` VALUES (14317, 2, 2683, 333, '109.44628736981613', '24.324472623379748', '110.0', '15.0', '2020-09-05 19:58:37');
+INSERT INTO `t_order_position` VALUES (14318, 2, 2682, 324, '109.42670664345653', '24.29339110430687', '92.0', '15.0', '2020-09-05 19:58:38');
+INSERT INTO `t_order_position` VALUES (14319, 2, 2682, 324, '109.42707305935392', '24.292924254724706', '100.0', '15.0', '2020-09-05 19:58:43');
+INSERT INTO `t_order_position` VALUES (14320, 2, 2682, 324, '109.42735619102886', '24.292507460251393', '98.0', '15.0', '2020-09-05 19:58:58');
+INSERT INTO `t_order_position` VALUES (14321, 2, 2682, 324, '109.42765597067495', '24.292024001029613', '96.0', '15.0', '2020-09-05 19:59:08');
+INSERT INTO `t_order_position` VALUES (14322, 2, 2682, 324, '109.4281555908584', '24.291173796611975', '96.0', '15.0', '2020-09-05 19:59:18');
+INSERT INTO `t_order_position` VALUES (14323, 2, 2682, 324, '109.42847201377833', '24.29069031102339', '98.0', '15.0', '2020-09-05 19:59:23');
+INSERT INTO `t_order_position` VALUES (14324, 2, 2682, 324, '109.42875512572981', '24.290273499514328', '98.0', '15.0', '2020-09-05 19:59:28');
+INSERT INTO `t_order_position` VALUES (14325, 2, 2682, 324, '109.4290049251862', '24.28987337903564', '100.0', '15.0', '2020-09-05 19:59:33');
+INSERT INTO `t_order_position` VALUES (14326, 2, 2682, 324, '109.42928801888023', '24.289273285513953', '96.0', '15.0', '2020-09-05 19:59:38');
+INSERT INTO `t_order_position` VALUES (14327, 2, 2682, 324, '109.42957111349284', '24.28875649570132', '98.0', '15.0', '2020-09-05 19:59:48');
+INSERT INTO `t_order_position` VALUES (14328, 2, 2683, 333, '109.44630397184082', '24.323806120857473', '106.0', '15.0', '2020-09-05 19:59:58');
+INSERT INTO `t_order_position` VALUES (14329, 2, 2682, 324, '109.42978759366235', '24.28833973940257', '94.0', '15.0', '2020-09-05 19:59:58');
+INSERT INTO `t_order_position` VALUES (14330, 2, 2683, 333, '109.44653692018002', '24.323372509097403', '64.0', '15.0', '2020-09-05 20:00:08');
+INSERT INTO `t_order_position` VALUES (14331, 2, 2683, 333, '109.44726911052375', '24.32342121081244', '50.0', '15.0', '2020-09-05 20:00:18');
+INSERT INTO `t_order_position` VALUES (14332, 2, 2682, 324, '109.4298708288287', '24.287739843487543', '152.0', '15.0', '2020-09-05 20:00:18');
+INSERT INTO `t_order_position` VALUES (14333, 2, 2683, 333, '109.44810111878199', '24.32351969727174', '50.0', '15.0', '2020-09-05 20:00:28');
+INSERT INTO `t_order_position` VALUES (14334, 2, 2683, 333, '109.44866684941258', '24.32328540659701', '106.0', '15.0', '2020-09-05 20:00:48');
+INSERT INTO `t_order_position` VALUES (14335, 2, 2683, 333, '109.448683459469', '24.322785521378286', '110.0', '15.0', '2020-09-05 20:00:58');
+INSERT INTO `t_order_position` VALUES (14336, 2, 2682, 324, '109.42923794073991', '24.287323951919216', '146.0', '15.0', '2020-09-05 20:01:04');
+INSERT INTO `t_order_position` VALUES (14337, 2, 2683, 333, '109.44874997958013', '24.32215225068718', '110.0', '15.0', '2020-09-05 20:01:08');
+INSERT INTO `t_order_position` VALUES (14338, 2, 2682, 324, '109.42882155561982', '24.287041121786313', '152.0', '15.0', '2020-09-05 20:01:19');
+INSERT INTO `t_order_position` VALUES (14339, 2, 2683, 333, '109.44878321127035', '24.32135242288077', '112.0', '15.0', '2020-09-05 20:01:23');
+INSERT INTO `t_order_position` VALUES (14340, 2, 2683, 333, '109.44873326517661', '24.32086932171815', '112.0', '15.0', '2020-09-05 20:01:28');
+INSERT INTO `t_order_position` VALUES (14341, 2, 2683, 333, '109.44874987713749', '24.320402760982855', '110.0', '15.0', '2020-09-05 20:01:33');
+INSERT INTO `t_order_position` VALUES (14342, 2, 2682, 324, '109.42838850368663', '24.286708315909117', '138.0', '15.0', '2020-09-05 20:01:34');
+INSERT INTO `t_order_position` VALUES (14343, 2, 2683, 333, '109.44879973636446', '24.319402962440673', '112.0', '15.0', '2020-09-05 20:01:43');
+INSERT INTO `t_order_position` VALUES (14344, 2, 2683, 333, '109.44881634242445', '24.318836431534255', '110.0', '15.0', '2020-09-05 20:01:48');
+INSERT INTO `t_order_position` VALUES (14345, 2, 2682, 324, '109.4279720872804', '24.286192210864513', '134.0', '15.0', '2020-09-05 20:01:49');
+INSERT INTO `t_order_position` VALUES (14346, 2, 2683, 333, '109.44881629949748', '24.31810331362694', '122.0', '15.0', '2020-09-05 20:01:58');
+INSERT INTO `t_order_position` VALUES (14347, 2, 2683, 333, '109.44871643173343', '24.31755365783871', '104.0', '15.0', '2020-09-05 20:02:09');
+INSERT INTO `t_order_position` VALUES (14348, 2, 2682, 324, '109.42837184645225', '24.286675009203233', '30.0', '15.0', '2020-09-05 20:02:14');
+INSERT INTO `t_order_position` VALUES (14349, 2, 2683, 333, '109.44786780890175', '24.317505207018318', '114.0', '15.0', '2020-09-05 20:02:19');
+INSERT INTO `t_order_position` VALUES (14350, 2, 2683, 333, '109.44733532342389', '24.31747283187564', '112.0', '15.0', '2020-09-05 20:02:24');
+INSERT INTO `t_order_position` VALUES (14351, 2, 2682, 324, '109.4290047676208', '24.287190893296014', '40.0', '15.0', '2020-09-05 20:02:24');
+INSERT INTO `t_order_position` VALUES (14352, 2, 2683, 333, '109.44648665286873', '24.317490981938167', '104.0', '15.0', '2020-09-05 20:02:34');
+INSERT INTO `t_order_position` VALUES (14353, 2, 2682, 324, '109.42948776650765', '24.287473652654512', '38.0', '15.0', '2020-09-05 20:02:35');
+INSERT INTO `t_order_position` VALUES (14354, 2, 2683, 333, '109.44573779158245', '24.317375639033965', '160.0', '15.0', '2020-09-05 20:02:44');
+INSERT INTO `t_order_position` VALUES (14355, 2, 2683, 333, '109.44465604894269', '24.31704422664762', '156.0', '15.0', '2020-09-05 20:02:59');
+INSERT INTO `t_order_position` VALUES (14356, 2, 2683, 333, '109.44395704951313', '24.316845438190917', '156.0', '15.0', '2020-09-05 20:03:14');
+INSERT INTO `t_order_position` VALUES (14357, 2, 2683, 333, '109.44329132036835', '24.31674654684554', '108.0', '15.0', '2020-09-05 20:03:29');
+INSERT INTO `t_order_position` VALUES (14358, 2, 2683, 333, '109.44254235543157', '24.316714415657636', '112.0', '15.0', '2020-09-05 20:03:39');
+INSERT INTO `t_order_position` VALUES (14359, 2, 2683, 333, '109.44169349552696', '24.316649091952204', '112.0', '15.0', '2020-09-05 20:03:49');
+INSERT INTO `t_order_position` VALUES (14360, 2, 2683, 333, '109.44112757100315', '24.316616634023937', '112.0', '15.0', '2020-09-05 20:04:00');
+INSERT INTO `t_order_position` VALUES (14361, 2, 2682, 324, '109.42997075382858', '24.287756401697173', '40.0', '15.0', '2020-09-05 20:04:00');
+INSERT INTO `t_order_position` VALUES (14362, 2, 2682, 324, '109.43043707309548', '24.287989173838177', '42.0', '15.0', '2020-09-05 20:04:10');
+INSERT INTO `t_order_position` VALUES (14363, 2, 2682, 324, '109.43106991777239', '24.288305063537642', '40.0', '15.0', '2020-09-05 20:04:25');
+INSERT INTO `t_order_position` VALUES (14364, 2, 2682, 324, '109.43153621075983', '24.288521151679724', '40.0', '15.0', '2020-09-05 20:04:45');
+INSERT INTO `t_order_position` VALUES (14365, 2, 2682, 324, '109.43203579662774', '24.28872053137003', '40.0', '15.0', '2020-09-05 20:04:56');
+INSERT INTO `t_order_position` VALUES (14366, 2, 2682, 324, '109.43266858760246', '24.288969730960957', '40.0', '15.0', '2020-09-05 20:05:06');
+INSERT INTO `t_order_position` VALUES (14367, 2, 2683, 333, '109.4403951716018', '24.31650110209199', '130.0', '15.0', '2020-09-05 20:05:15');
+INSERT INTO `t_order_position` VALUES (14368, 2, 2682, 324, '109.43335131847182', '24.289318822379066', '42.0', '15.0', '2020-09-05 20:05:16');
+INSERT INTO `t_order_position` VALUES (14369, 2, 2683, 333, '109.44037848888786', '24.31586798067074', '112.0', '15.0', '2020-09-05 20:05:25');
+INSERT INTO `t_order_position` VALUES (14370, 2, 2682, 324, '109.43423383033972', '24.28961766579407', '50.0', '15.0', '2020-09-05 20:05:26');
+INSERT INTO `t_order_position` VALUES (14371, 2, 2683, 333, '109.44041173409768', '24.315084829753946', '110.0', '15.0', '2020-09-05 20:05:35');
+INSERT INTO `t_order_position` VALUES (14372, 2, 2682, 324, '109.43476664556121', '24.289733638034363', '54.0', '15.0', '2020-09-05 20:05:36');
+INSERT INTO `t_order_position` VALUES (14373, 2, 2683, 333, '109.44044498023356', '24.314318340975323', '112.0', '15.0', '2020-09-05 20:05:45');
+INSERT INTO `t_order_position` VALUES (14374, 2, 2682, 324, '109.43573233251588', '24.28984904449238', '62.0', '15.0', '2020-09-05 20:05:46');
+INSERT INTO `t_order_position` VALUES (14375, 2, 2683, 333, '109.44046157689644', '24.31348523057082', '112.0', '15.0', '2020-09-05 20:05:55');
+INSERT INTO `t_order_position` VALUES (14376, 2, 2682, 324, '109.43661472791646', '24.28989787548239', '60.0', '15.0', '2020-09-05 20:05:56');
+INSERT INTO `t_order_position` VALUES (14377, 2, 2683, 333, '109.44039495660215', '24.31283552325656', '146.0', '15.0', '2020-09-05 20:06:05');
+INSERT INTO `t_order_position` VALUES (14378, 2, 2682, 324, '109.43758032211583', '24.28989657502889', '62.0', '15.0', '2020-09-05 20:06:06');
+INSERT INTO `t_order_position` VALUES (14379, 2, 2683, 333, '109.43977905276274', '24.312686475798955', '110.0', '15.0', '2020-09-05 20:06:15');
+INSERT INTO `t_order_position` VALUES (14380, 2, 2682, 324, '109.43836274882759', '24.289812184854384', '56.0', '15.0', '2020-09-05 20:06:16');
+INSERT INTO `t_order_position` VALUES (14381, 2, 2683, 333, '109.43881355676598', '24.312637881572083', '110.0', '15.0', '2020-09-05 20:06:25');
+INSERT INTO `t_order_position` VALUES (14382, 2, 2682, 324, '109.43889545351604', '24.289844755349606', '20.0', '15.0', '2020-09-05 20:06:26');
+INSERT INTO `t_order_position` VALUES (14383, 2, 2683, 333, '109.43829750122782', '24.31267193214888', '112.0', '15.0', '2020-09-05 20:06:30');
+INSERT INTO `t_order_position` VALUES (14384, 2, 2682, 324, '109.43907860020494', '24.290410982267385', '0.0', '15.0', '2020-09-05 20:06:36');
+INSERT INTO `t_order_position` VALUES (14385, 2, 2683, 333, '109.43754836003616', '24.312622982456695', '114.0', '15.0', '2020-09-05 20:06:40');
+INSERT INTO `t_order_position` VALUES (14386, 2, 2682, 324, '109.43906200148311', '24.291227416123775', '0.0', '15.0', '2020-09-05 20:06:46');
+INSERT INTO `t_order_position` VALUES (14387, 2, 2682, 324, '109.4390786910993', '24.291960495593585', '166.0', '15.0', '2020-09-05 20:06:56');
+INSERT INTO `t_order_position` VALUES (14388, 2, 2682, 324, '109.43911203022024', '24.292743535944894', '164.0', '15.0', '2020-09-05 20:07:06');
+INSERT INTO `t_order_position` VALUES (14389, 2, 2682, 324, '109.43921195637284', '24.29354314255523', '2.0', '15.0', '2020-09-05 20:07:16');
+INSERT INTO `t_order_position` VALUES (14390, 2, 2683, 333, '109.43693238574582', '24.312690462582232', '108.0', '15.0', '2020-09-05 20:07:26');
+INSERT INTO `t_order_position` VALUES (14391, 2, 2682, 324, '109.43927859309211', '24.29440944304979', '2.0', '15.0', '2020-09-05 20:07:27');
+INSERT INTO `t_order_position` VALUES (14392, 2, 2682, 324, '109.4393618535114', '24.294892505831765', '2.0', '15.0', '2020-09-05 20:07:32');
+INSERT INTO `t_order_position` VALUES (14393, 2, 2683, 333, '109.4360000568557', '24.3126417077415', '110.0', '15.0', '2020-09-05 20:07:36');
+INSERT INTO `t_order_position` VALUES (14394, 2, 2683, 333, '109.43548392788563', '24.312609049249254', '110.0', '15.0', '2020-09-05 20:07:41');
+INSERT INTO `t_order_position` VALUES (14395, 2, 2682, 324, '109.43934524719316', '24.2955756506126', '12.0', '15.0', '2020-09-05 20:07:42');
+INSERT INTO `t_order_position` VALUES (14396, 2, 2683, 333, '109.43491783926727', '24.31262642692137', '112.0', '15.0', '2020-09-05 20:07:46');
+INSERT INTO `t_order_position` VALUES (14397, 2, 2683, 333, '109.43433508277059', '24.312610487716213', '110.0', '15.0', '2020-09-05 20:07:51');
+INSERT INTO `t_order_position` VALUES (14398, 2, 2683, 333, '109.4337856114663', '24.312594493672083', '112.0', '15.0', '2020-09-05 20:07:56');
+INSERT INTO `t_order_position` VALUES (14399, 2, 2683, 333, '109.43320282284552', '24.312578525674947', '112.0', '15.0', '2020-09-05 20:08:01');
+INSERT INTO `t_order_position` VALUES (14400, 2, 2683, 333, '109.43263666744623', '24.312529200218197', '112.0', '15.0', '2020-09-05 20:08:06');
+INSERT INTO `t_order_position` VALUES (14401, 2, 2683, 333, '109.43185402296423', '24.312596735645265', '112.0', '15.0', '2020-09-05 20:08:16');
+INSERT INTO `t_order_position` VALUES (14402, 2, 2683, 333, '109.43122121846203', '24.312547449304713', '148.0', '15.0', '2020-09-05 20:08:51');
+INSERT INTO `t_order_position` VALUES (14403, 2, 2682, 324, '109.4393952175955', '24.29610874616815', '2.0', '15.0', '2020-09-05 20:08:57');
+INSERT INTO `t_order_position` VALUES (14404, 2, 2683, 333, '109.4309713837958', '24.31188125262613', '114.0', '15.0', '2020-09-05 20:09:06');
+INSERT INTO `t_order_position` VALUES (14405, 2, 2682, 324, '109.43947850687506', '24.29709165417093', '2.0', '15.0', '2020-09-05 20:09:07');
+INSERT INTO `t_order_position` VALUES (14406, 2, 2682, 324, '109.43952848771296', '24.297808026660814', '4.0', '15.0', '2020-09-05 20:09:12');
+INSERT INTO `t_order_position` VALUES (14407, 2, 2683, 333, '109.4309713485664', '24.31128143204562', '110.0', '15.0', '2020-09-05 20:09:16');
+INSERT INTO `t_order_position` VALUES (14408, 2, 2682, 324, '109.4395618134183', '24.298374469905458', '12.0', '15.0', '2020-09-05 20:09:17');
+INSERT INTO `t_order_position` VALUES (14409, 2, 2682, 324, '109.43967836403847', '24.29884082307699', '10.0', '15.0', '2020-09-05 20:09:22');
+INSERT INTO `t_order_position` VALUES (14410, 2, 2683, 333, '109.43105457396126', '24.31059821337088', '110.0', '15.0', '2020-09-05 20:09:27');
+INSERT INTO `t_order_position` VALUES (14411, 2, 2682, 324, '109.43986149905979', '24.299323739945354', '10.0', '15.0', '2020-09-05 20:09:27');
+INSERT INTO `t_order_position` VALUES (14412, 2, 2682, 324, '109.43999469294896', '24.29977340596504', '14.0', '15.0', '2020-09-05 20:09:32');
+INSERT INTO `t_order_position` VALUES (14413, 2, 2683, 333, '109.43110449592164', '24.30996501589124', '106.0', '15.0', '2020-09-05 20:09:37');
+INSERT INTO `t_order_position` VALUES (14414, 2, 2682, 324, '109.44012788698068', '24.30023973292849', '14.0', '15.0', '2020-09-05 20:09:37');
+INSERT INTO `t_order_position` VALUES (14415, 2, 2682, 324, '109.44041091126962', '24.30105572946739', '0.0', '15.0', '2020-09-05 20:09:47');
+INSERT INTO `t_order_position` VALUES (14416, 2, 2683, 333, '109.43112112056464', '24.30948180969051', '152.0', '15.0', '2020-09-05 20:09:52');
+INSERT INTO `t_order_position` VALUES (14417, 2, 2683, 333, '109.43058819556101', '24.30911582563742', '150.0', '15.0', '2020-09-05 20:10:17');
+INSERT INTO `t_order_position` VALUES (14418, 2, 2683, 333, '109.43013852874796', '24.30879972741639', '148.0', '15.0', '2020-09-05 20:10:27');
+INSERT INTO `t_order_position` VALUES (14419, 2, 2682, 324, '109.44064398399797', '24.301671859228673', '10.0', '15.0', '2020-09-05 20:10:28');
+INSERT INTO `t_order_position` VALUES (14420, 2, 2683, 333, '109.42958892260467', '24.308417075652066', '150.0', '15.0', '2020-09-05 20:10:37');
+INSERT INTO `t_order_position` VALUES (14421, 2, 2682, 324, '109.44076053259937', '24.302204854490174', '6.0', '15.0', '2020-09-05 20:10:43');
+INSERT INTO `t_order_position` VALUES (14422, 2, 2683, 333, '109.4289893342974', '24.307984475232136', '146.0', '15.0', '2020-09-05 20:10:47');
+INSERT INTO `t_order_position` VALUES (14423, 2, 2683, 333, '109.42830644672733', '24.30746863093474', '146.0', '15.0', '2020-09-05 20:10:57');
+INSERT INTO `t_order_position` VALUES (14424, 2, 2682, 324, '109.44072728401493', '24.302921352030406', '166.0', '15.0', '2020-09-05 20:10:58');
+INSERT INTO `t_order_position` VALUES (14425, 2, 2683, 333, '109.42770681725308', '24.30698601166473', '154.0', '15.0', '2020-09-05 20:11:07');
+INSERT INTO `t_order_position` VALUES (14426, 2, 2682, 324, '109.44071067680368', '24.303571178601544', '0.0', '15.0', '2020-09-05 20:11:09');
+INSERT INTO `t_order_position` VALUES (14427, 2, 2683, 333, '109.42725708510054', '24.306653194617365', '144.0', '15.0', '2020-09-05 20:11:17');
+INSERT INTO `t_order_position` VALUES (14428, 2, 2682, 324, '109.44071071588985', '24.30423764209816', '166.0', '15.0', '2020-09-05 20:11:24');
+INSERT INTO `t_order_position` VALUES (14429, 2, 2683, 333, '109.42669075623046', '24.306487088656993', '122.0', '15.0', '2020-09-05 20:11:27');
+INSERT INTO `t_order_position` VALUES (14430, 2, 2682, 324, '109.44074405048855', '24.304987363957597', '166.0', '15.0', '2020-09-05 20:11:34');
+INSERT INTO `t_order_position` VALUES (14431, 2, 2683, 333, '109.42610777571565', '24.306687538334547', '124.0', '15.0', '2020-09-05 20:11:38');
+INSERT INTO `t_order_position` VALUES (14432, 2, 2682, 324, '109.44074408664333', '24.30560384332718', '164.0', '15.0', '2020-09-05 20:11:44');
+INSERT INTO `t_order_position` VALUES (14433, 2, 2683, 333, '109.42559140673191', '24.306854593745022', '122.0', '15.0', '2020-09-05 20:11:48');
+INSERT INTO `t_order_position` VALUES (14434, 2, 2682, 324, '109.440727479446', '24.306253671200857', '0.0', '15.0', '2020-09-05 20:11:54');
+INSERT INTO `t_order_position` VALUES (14435, 2, 2683, 333, '109.4249750759887', '24.30702171849791', '120.0', '15.0', '2020-09-05 20:11:58');
+INSERT INTO `t_order_position` VALUES (14436, 2, 2683, 333, '109.42435872815993', '24.307222149442865', '124.0', '15.0', '2020-09-05 20:12:08');
+INSERT INTO `t_order_position` VALUES (14437, 2, 2682, 324, '109.4407275175555', '24.30690347439936', '2.0', '15.0', '2020-09-05 20:12:09');
+INSERT INTO `t_order_position` VALUES (14438, 2, 2682, 324, '109.44069426501358', '24.30755332785649', '166.0', '15.0', '2020-09-05 20:12:19');
+INSERT INTO `t_order_position` VALUES (14439, 2, 2683, 333, '109.4238423168361', '24.307439149191584', '126.0', '15.0', '2020-09-05 20:12:23');
+INSERT INTO `t_order_position` VALUES (14440, 2, 2683, 333, '109.42324259841992', '24.307722844716885', '120.0', '15.0', '2020-09-05 20:12:33');
+INSERT INTO `t_order_position` VALUES (14441, 2, 2682, 324, '109.44066100851167', '24.30813653502146', '4.0', '15.0', '2020-09-05 20:12:39');
+INSERT INTO `t_order_position` VALUES (14442, 2, 2683, 333, '109.42222633940564', '24.307723566413486', '158.0', '12.0', '2020-09-05 20:12:43');
+INSERT INTO `t_order_position` VALUES (14443, 2, 2683, 333, '109.42124331763809', '24.307157724655454', '158.0', '13.0', '2020-09-05 20:12:53');
+INSERT INTO `t_order_position` VALUES (14444, 2, 2683, 333, '109.42037691067955', '24.307091618106913', '160.0', '15.0', '2020-09-05 20:13:06');
+INSERT INTO `t_order_position` VALUES (14445, 2, 2683, 333, '109.41962708774767', '24.306742163899916', '152.0', '15.0', '2020-09-05 20:13:13');
+INSERT INTO `t_order_position` VALUES (14446, 2, 2683, 333, '109.41917717707224', '24.30647582972406', '152.0', '15.0', '2020-09-05 20:13:23');
+INSERT INTO `t_order_position` VALUES (14447, 2, 2683, 333, '109.41866060957534', '24.306326152937533', '100.0', '15.0', '2020-09-05 20:13:33');
+INSERT INTO `t_order_position` VALUES (14448, 2, 2683, 333, '109.41799404966672', '24.306109892547347', '132.0', '15.0', '2020-09-05 20:13:43');
+INSERT INTO `t_order_position` VALUES (14449, 2, 2683, 333, '109.41784404604716', '24.305643441300695', '150.0', '15.0', '2020-09-05 20:13:53');
+INSERT INTO `t_order_position` VALUES (14450, 2, 2683, 333, '109.41721078997384', '24.305460464337393', '110.0', '15.0', '2020-09-05 20:14:03');
+INSERT INTO `t_order_position` VALUES (14451, 2, 2682, 324, '109.44067769686596', '24.308869622432884', '164.0', '15.0', '2020-09-05 20:14:10');
+INSERT INTO `t_order_position` VALUES (14452, 2, 2683, 333, '109.41631087255674', '24.305327567709835', '110.0', '15.0', '2020-09-05 20:14:14');
+INSERT INTO `t_order_position` VALUES (14453, 2, 2682, 324, '109.44067772422729', '24.309336148686224', '164.0', '15.0', '2020-09-05 20:14:15');
+INSERT INTO `t_order_position` VALUES (14454, 2, 2682, 324, '109.44067775549746', '24.30986932174719', '0.0', '15.0', '2020-09-05 20:14:20');
+INSERT INTO `t_order_position` VALUES (14455, 2, 2683, 333, '109.415260921734', '24.305244675807568', '106.0', '15.0', '2020-09-05 20:14:24');
+INSERT INTO `t_order_position` VALUES (14456, 2, 2682, 324, '109.44071108135299', '24.310469091775484', '166.0', '15.0', '2020-09-05 20:14:25');
+INSERT INTO `t_order_position` VALUES (14457, 2, 2683, 333, '109.41474425745302', '24.305178215932024', '104.0', '13.0', '2020-09-05 20:14:29');
+INSERT INTO `t_order_position` VALUES (14458, 2, 2682, 324, '109.4406778307417', '24.3111522703012', '164.0', '15.0', '2020-09-05 20:14:31');
+INSERT INTO `t_order_position` VALUES (14459, 2, 2682, 324, '109.4406612215408', '24.31176877745807', '166.0', '15.0', '2020-09-05 20:14:36');
+INSERT INTO `t_order_position` VALUES (14460, 2, 2682, 324, '109.44062796987565', '24.31243529489033', '166.0', '15.0', '2020-09-05 20:14:41');
+INSERT INTO `t_order_position` VALUES (14461, 2, 2682, 324, '109.44061135575053', '24.312968494105387', '166.0', '15.0', '2020-09-05 20:14:46');
+INSERT INTO `t_order_position` VALUES (14462, 2, 2682, 324, '109.44061138702175', '24.31350166862775', '166.0', '15.0', '2020-09-05 20:14:51');
+INSERT INTO `t_order_position` VALUES (14463, 2, 2682, 324, '109.44057812843951', '24.314051554861216', '166.0', '15.0', '2020-09-05 20:14:56');
+INSERT INTO `t_order_position` VALUES (14464, 2, 2682, 324, '109.44054486882862', '24.314584779556945', '166.0', '15.0', '2020-09-05 20:15:01');
+INSERT INTO `t_order_position` VALUES (14465, 2, 2682, 324, '109.44054490010049', '24.315117954734113', '166.0', '15.0', '2020-09-05 20:15:06');
+INSERT INTO `t_order_position` VALUES (14466, 2, 2682, 324, '109.44052828786647', '24.31568447844723', '0.0', '15.0', '2020-09-05 20:15:11');
+INSERT INTO `t_order_position` VALUES (14467, 2, 2682, 324, '109.44056161297826', '24.316267589585788', '0.0', '15.0', '2020-09-05 20:15:31');
+INSERT INTO `t_order_position` VALUES (14468, 2, 2683, 333, '109.41409424932034', '24.3052284183673', '112.0', '15.0', '2020-09-05 20:15:44');
+INSERT INTO `t_order_position` VALUES (14469, 2, 2683, 333, '109.41316086310795', '24.305228697672135', '110.0', '15.0', '2020-09-05 20:15:54');
+INSERT INTO `t_order_position` VALUES (14470, 2, 2683, 333, '109.41231078295436', '24.30532888768099', '112.0', '15.0', '2020-09-05 20:16:05');
+INSERT INTO `t_order_position` VALUES (14471, 2, 2683, 333, '109.41151066906995', '24.305329065568973', '124.0', '15.0', '2020-09-05 20:16:15');
+INSERT INTO `t_order_position` VALUES (14472, 2, 2683, 333, '109.41084389002242', '24.305445823213883', '144.0', '15.0', '2020-09-05 20:16:30');
+INSERT INTO `t_order_position` VALUES (14473, 2, 2683, 333, '109.41066055528536', '24.306045672453926', '0.0', '15.0', '2020-09-05 20:16:40');
+INSERT INTO `t_order_position` VALUES (14474, 2, 2683, 333, '109.41071059679086', '24.306578835807013', '2.0', '15.0', '2020-09-05 20:16:45');
+INSERT INTO `t_order_position` VALUES (14475, 2, 2683, 333, '109.4107272971799', '24.307095343310117', '2.0', '15.0', '2020-09-05 20:16:50');
+INSERT INTO `t_order_position` VALUES (14476, 2, 2683, 333, '109.41074399461701', '24.3075618661019', '4.0', '15.0', '2020-09-05 20:16:55');
+INSERT INTO `t_order_position` VALUES (14477, 2, 2683, 333, '109.410777365944', '24.308095032741274', '2.0', '15.0', '2020-09-05 20:17:00');
+INSERT INTO `t_order_position` VALUES (14478, 2, 2682, 324, '109.4404784256793', '24.316950845390014', '0.0', '15.0', '2020-09-05 20:17:07');
+INSERT INTO `t_order_position` VALUES (14479, 2, 2683, 333, '109.41082742576958', '24.30894476795394', '2.0', '15.0', '2020-09-05 20:17:11');
+INSERT INTO `t_order_position` VALUES (14480, 2, 2682, 324, '109.44049511124655', '24.317633952544433', '166.0', '15.0', '2020-09-05 20:17:12');
+INSERT INTO `t_order_position` VALUES (14481, 2, 2682, 324, '109.44049515326928', '24.31835040840927', '0.0', '15.0', '2020-09-05 20:17:17');
+INSERT INTO `t_order_position` VALUES (14482, 2, 2682, 324, '109.4404951904058', '24.31898355578089', '0.0', '15.0', '2020-09-05 20:17:22');
+INSERT INTO `t_order_position` VALUES (14483, 2, 2683, 333, '109.41082746886451', '24.309677880736086', '2.0', '15.0', '2020-09-05 20:17:24');
+INSERT INTO `t_order_position` VALUES (14484, 2, 2682, 324, '109.4404952255879', '24.319583379891228', '164.0', '15.0', '2020-09-05 20:17:27');
+INSERT INTO `t_order_position` VALUES (14485, 2, 2683, 333, '109.41082751293905', '24.310427655589894', '160.0', '15.0', '2020-09-05 20:17:30');
+INSERT INTO `t_order_position` VALUES (14486, 2, 2682, 324, '109.44041203119238', '24.32015000465398', '164.0', '15.0', '2020-09-05 20:17:32');
+INSERT INTO `t_order_position` VALUES (14487, 2, 2682, 324, '109.44042870899382', '24.320699819137175', '166.0', '15.0', '2020-09-05 20:17:37');
+INSERT INTO `t_order_position` VALUES (14488, 2, 2683, 333, '109.41084421617073', '24.310994149520408', '2.0', '15.0', '2020-09-05 20:17:40');
+INSERT INTO `t_order_position` VALUES (14489, 2, 2682, 324, '109.44039544915366', '24.32123304634232', '164.0', '15.0', '2020-09-05 20:17:42');
+INSERT INTO `t_order_position` VALUES (14490, 2, 2682, 324, '109.44032889706713', '24.321749661340878', '166.0', '15.0', '2020-09-05 20:17:47');
+INSERT INTO `t_order_position` VALUES (14491, 2, 2682, 324, '109.44034557102474', '24.322232829285884', '164.0', '15.0', '2020-09-05 20:17:52');
+INSERT INTO `t_order_position` VALUES (14492, 2, 2683, 333, '109.41101095095895', '24.311610601903656', '2.0', '15.0', '2020-09-05 20:19:06');
+INSERT INTO `t_order_position` VALUES (14493, 2, 2682, 324, '109.44032895961601', '24.322816017787364', '166.0', '15.0', '2020-09-05 20:19:13');
+INSERT INTO `t_order_position` VALUES (14494, 2, 2683, 333, '109.41096097679936', '24.312210431679585', '2.0', '15.0', '2020-09-05 20:19:16');
+INSERT INTO `t_order_position` VALUES (14495, 2, 2682, 324, '109.4403123423306', '24.323299235541775', '4.0', '15.0', '2020-09-05 20:19:18');
+INSERT INTO `t_order_position` VALUES (14496, 2, 2682, 324, '109.44029572600978', '24.32379911530518', '164.0', '15.0', '2020-09-05 20:19:23');
+INSERT INTO `t_order_position` VALUES (14497, 2, 2683, 333, '109.41097768677731', '24.312893558162312', '2.0', '15.0', '2020-09-05 20:19:26');
+INSERT INTO `t_order_position` VALUES (14498, 2, 2682, 324, '109.44027912531378', '24.324565584808983', '166.0', '15.0', '2020-09-05 20:19:33');
+INSERT INTO `t_order_position` VALUES (14499, 2, 2683, 333, '109.41101107241126', '24.31367665220652', '4.0', '15.0', '2020-09-05 20:19:36');
+INSERT INTO `t_order_position` VALUES (14500, 2, 2682, 324, '109.4402625255826', '24.325348716618702', '164.0', '15.0', '2020-09-05 20:19:43');
+INSERT INTO `t_order_position` VALUES (14501, 2, 2683, 333, '109.41109445447003', '24.3142431350994', '4.0', '15.0', '2020-09-05 20:19:46');
+INSERT INTO `t_order_position` VALUES (14502, 2, 2682, 324, '109.44024590824638', '24.32583193528092', '0.0', '15.0', '2020-09-05 20:19:48');
+INSERT INTO `t_order_position` VALUES (14503, 2, 2682, 324, '109.44024594147672', '24.326398438835668', '166.0', '15.0', '2020-09-05 20:19:53');
+INSERT INTO `t_order_position` VALUES (14504, 2, 2683, 333, '109.41104448345638', '24.314892951430753', '0.0', '15.0', '2020-09-05 20:19:56');
+INSERT INTO `t_order_position` VALUES (14505, 2, 2682, 324, '109.44022932901478', '24.32696496728259', '162.0', '15.0', '2020-09-05 20:19:58');
+INSERT INTO `t_order_position` VALUES (14506, 2, 2682, 324, '109.44021271751753', '24.327548157857624', '166.0', '15.0', '2020-09-05 20:20:03');
+INSERT INTO `t_order_position` VALUES (14507, 2, 2683, 333, '109.41106119434556', '24.315592740976648', '4.0', '15.0', '2020-09-05 20:20:06');
+INSERT INTO `t_order_position` VALUES (14508, 2, 2682, 324, '109.44024604019098', '24.32808128911544', '166.0', '15.0', '2020-09-05 20:20:08');
+INSERT INTO `t_order_position` VALUES (14509, 2, 2682, 324, '109.44031265215061', '24.328581047384155', '164.0', '15.0', '2020-09-05 20:20:13');
+INSERT INTO `t_order_position` VALUES (14510, 2, 2682, 324, '109.44016288001745', '24.329247745386194', '166.0', '15.0', '2020-09-05 20:20:23');
+INSERT INTO `t_order_position` VALUES (14511, 2, 2683, 333, '109.41137795030131', '24.31615917940078', '54.0', '15.0', '2020-09-05 20:20:26');
+INSERT INTO `t_order_position` VALUES (14512, 2, 2683, 333, '109.41197805347076', '24.316342331400644', '6.0', '15.0', '2020-09-05 20:20:51');
+INSERT INTO `t_order_position` VALUES (14513, 2, 2682, 324, '109.44017955997022', '24.32983088778655', '164.0', '15.0', '2020-09-05 20:20:58');
+INSERT INTO `t_order_position` VALUES (14514, 2, 2683, 333, '109.41206143446006', '24.31695879709883', '162.0', '15.0', '2020-09-05 20:21:02');
+INSERT INTO `t_order_position` VALUES (14515, 2, 2683, 333, '109.41209481633999', '24.317708568436636', '166.0', '15.0', '2020-09-05 20:21:12');
+INSERT INTO `t_order_position` VALUES (14516, 2, 2682, 324, '109.44014629681408', '24.330314132676172', '164.0', '15.0', '2020-09-05 20:21:14');
+INSERT INTO `t_order_position` VALUES (14517, 2, 2683, 333, '109.41206151282051', '24.318291737837953', '166.0', '15.0', '2020-09-05 20:21:22');
+INSERT INTO `t_order_position` VALUES (14518, 2, 2682, 324, '109.44002980547451', '24.330814162255276', '162.0', '15.0', '2020-09-05 20:21:24');
+INSERT INTO `t_order_position` VALUES (14519, 2, 2682, 324, '109.43996325127593', '24.33131411816842', '162.0', '15.0', '2020-09-05 20:21:29');
+INSERT INTO `t_order_position` VALUES (14520, 2, 2683, 333, '109.41206156571417', '24.319191473608196', '0.0', '15.0', '2020-09-05 20:21:32');
+INSERT INTO `t_order_position` VALUES (14521, 2, 2682, 324, '109.43996328255409', '24.3318473002818', '160.0', '15.0', '2020-09-05 20:21:34');
+INSERT INTO `t_order_position` VALUES (14522, 2, 2682, 324, '109.43984679901166', '24.332497287139894', '162.0', '15.0', '2020-09-05 20:21:39');
+INSERT INTO `t_order_position` VALUES (14523, 2, 2683, 333, '109.41222829041399', '24.31980792079003', '56.0', '15.0', '2020-09-05 20:21:42');
+INSERT INTO `t_order_position` VALUES (14524, 2, 2682, 324, '109.43978024717433', '24.333047229087715', '164.0', '15.0', '2020-09-05 20:21:44');
+INSERT INTO `t_order_position` VALUES (14525, 2, 2683, 333, '109.41281169498143', '24.319907745933605', '56.0', '15.0', '2020-09-05 20:21:52');
+INSERT INTO `t_order_position` VALUES (14526, 2, 2682, 324, '109.43974698241882', '24.333513812683602', '162.0', '15.0', '2020-09-05 20:22:04');
+INSERT INTO `t_order_position` VALUES (14527, 2, 2682, 324, '109.43968044395484', '24.334297022453175', '164.0', '15.0', '2020-09-05 20:22:19');
+INSERT INTO `t_order_position` VALUES (14528, 2, 2682, 324, '109.43961388768781', '24.33478031678655', '0.0', '15.0', '2020-09-05 20:22:39');
+INSERT INTO `t_order_position` VALUES (14529, 2, 2682, 324, '109.43924769887334', '24.335297368014107', '114.0', '15.0', '2020-09-05 20:23:14');
+INSERT INTO `t_order_position` VALUES (14530, 2, 2682, 324, '109.43858183066011', '24.335314978422495', '110.0', '15.0', '2020-09-05 20:23:24');
+INSERT INTO `t_order_position` VALUES (14531, 2, 2682, 324, '109.43764957450252', '24.335249626563282', '112.0', '15.0', '2020-09-05 20:23:34');
+INSERT INTO `t_order_position` VALUES (14532, 2, 2682, 324, '109.43683381779721', '24.335217406190463', '110.0', '15.0', '2020-09-05 20:23:44');
+INSERT INTO `t_order_position` VALUES (14533, 2, 2682, 324, '109.43603468014534', '24.335218459542023', '112.0', '15.0', '2020-09-05 20:24:05');
+INSERT INTO `t_order_position` VALUES (14534, 2, 2682, 324, '109.43551855308266', '24.33520246319395', '112.0', '15.0', '2020-09-05 20:24:10');
+INSERT INTO `t_order_position` VALUES (14535, 2, 2682, 324, '109.43480261395254', '24.335186705407335', '110.0', '15.0', '2020-09-05 20:24:15');
+INSERT INTO `t_order_position` VALUES (14536, 2, 2682, 324, '109.43418655522369', '24.335204127597848', '112.0', '15.0', '2020-09-05 20:24:20');
+INSERT INTO `t_order_position` VALUES (14537, 2, 2682, 324, '109.43362042904207', '24.335188149581032', '114.0', '15.0', '2020-09-05 20:24:25');
+INSERT INTO `t_order_position` VALUES (14538, 2, 2682, 324, '109.43268795341835', '24.33518924555217', '114.0', '15.0', '2020-09-05 20:24:40');
+INSERT INTO `t_order_position` VALUES (14539, 2, 2682, 324, '109.43198857070571', '24.33522336645601', '134.0', '15.0', '2020-09-05 20:24:50');
+INSERT INTO `t_order_position` VALUES (14540, 2, 2683, 333, '109.41336174887763', '24.320040889021975', '0.0', '15.0', '2020-09-05 20:24:59');
+INSERT INTO `t_order_position` VALUES (14541, 2, 2682, 324, '109.43177213366856', '24.335973398500137', '0.0', '15.0', '2020-09-05 20:25:05');
+INSERT INTO `t_order_position` VALUES (14542, 2, 2682, 324, '109.4317721649852', '24.336506582589678', '0.0', '15.0', '2020-09-05 20:25:10');
+INSERT INTO `t_order_position` VALUES (14543, 2, 2682, 324, '109.43173889621015', '24.337123114071634', '0.0', '15.0', '2020-09-05 20:25:15');
+INSERT INTO `t_order_position` VALUES (14544, 2, 2682, 324, '109.43172228088615', '24.33775628931648', '162.0', '15.0', '2020-09-05 20:25:21');
+INSERT INTO `t_order_position` VALUES (14545, 2, 2683, 333, '109.41281170183814', '24.32002437845829', '110.0', '15.0', '2020-09-05 20:25:29');
+INSERT INTO `t_order_position` VALUES (14546, 2, 2682, 324, '109.43172230828864', '24.338222826050494', '0.0', '15.0', '2020-09-05 20:25:35');
+INSERT INTO `t_order_position` VALUES (14547, 2, 2683, 333, '109.41209495151283', '24.320007893389942', '114.0', '15.0', '2020-09-05 20:25:39');
+INSERT INTO `t_order_position` VALUES (14548, 2, 2683, 333, '109.4114781961473', '24.32005801243609', '112.0', '15.0', '2020-09-05 20:25:49');
+INSERT INTO `t_order_position` VALUES (14549, 2, 2683, 333, '109.41059469956598', '24.320074836136392', '112.0', '15.0', '2020-09-05 20:26:00');
+INSERT INTO `t_order_position` VALUES (14550, 2, 2683, 333, '109.40992788427985', '24.320091597109347', '120.0', '15.0', '2020-09-05 20:26:10');
+INSERT INTO `t_order_position` VALUES (14551, 2, 2682, 324, '109.4316890462834', '24.338955992578864', '166.0', '15.0', '2020-09-05 20:26:10');
+INSERT INTO `t_order_position` VALUES (14552, 2, 2682, 324, '109.43177234114309', '24.33950574735052', '164.0', '15.0', '2020-09-05 20:26:15');
+INSERT INTO `t_order_position` VALUES (14553, 2, 2682, 324, '109.43173907041202', '24.340088956212355', '166.0', '15.0', '2020-09-05 20:26:20');
+INSERT INTO `t_order_position` VALUES (14554, 2, 2683, 333, '109.40931106550786', '24.320191642016564', '140.0', '15.0', '2020-09-05 20:26:25');
+INSERT INTO `t_order_position` VALUES (14555, 2, 2682, 324, '109.43175575814315', '24.340688771776545', '0.0', '15.0', '2020-09-05 20:26:25');
+INSERT INTO `t_order_position` VALUES (14556, 2, 2682, 324, '109.43173913696185', '24.341221976433218', '166.0', '15.0', '2020-09-05 20:26:30');
+INSERT INTO `t_order_position` VALUES (14557, 2, 2682, 324, '109.43175582273574', '24.34178846839274', '0.0', '15.0', '2020-09-05 20:26:35');
+INSERT INTO `t_order_position` VALUES (14558, 2, 2682, 324, '109.43175586188295', '24.34245495166789', '166.0', '15.0', '2020-09-05 20:26:40');
+INSERT INTO `t_order_position` VALUES (14559, 2, 2683, 333, '109.4091610702694', '24.320974761970774', '164.0', '15.0', '2020-09-05 20:26:45');
+INSERT INTO `t_order_position` VALUES (14560, 2, 2682, 324, '109.43175589320084', '24.34298813854788', '166.0', '15.0', '2020-09-05 20:26:45');
+INSERT INTO `t_order_position` VALUES (14561, 2, 2682, 324, '109.4316726648255', '24.343571404545024', '166.0', '15.0', '2020-09-05 20:26:50');
+INSERT INTO `t_order_position` VALUES (14562, 2, 2683, 333, '109.40909442310078', '24.32162457898352', '2.0', '15.0', '2020-09-05 20:26:55');
+INSERT INTO `t_order_position` VALUES (14563, 2, 2682, 324, '109.43170600612996', '24.344187865459947', '164.0', '15.0', '2020-09-05 20:26:56');
+INSERT INTO `t_order_position` VALUES (14564, 2, 2683, 333, '109.4090444363559', '24.32209111455753', '164.0', '15.0', '2020-09-05 20:27:05');
+INSERT INTO `t_order_position` VALUES (14565, 2, 2682, 324, '109.43175599596333', '24.344737659623718', '122.0', '15.0', '2020-09-05 20:27:06');
+INSERT INTO `t_order_position` VALUES (14566, 2, 2682, 324, '109.43103992913504', '24.344788432183787', '114.0', '15.0', '2020-09-05 20:27:16');
+INSERT INTO `t_order_position` VALUES (14567, 2, 2683, 333, '109.40901114835671', '24.323024179759905', '164.0', '15.0', '2020-09-05 20:27:20');
+INSERT INTO `t_order_position` VALUES (14568, 2, 2682, 324, '109.43047371457494', '24.344755713550853', '112.0', '15.0', '2020-09-05 20:27:21');
+INSERT INTO `t_order_position` VALUES (14569, 2, 2683, 333, '109.40902785015068', '24.323540694992293', '166.0', '15.0', '2020-09-05 20:27:25');
+INSERT INTO `t_order_position` VALUES (14570, 2, 2682, 324, '109.42994079607658', '24.344789594787873', '114.0', '15.0', '2020-09-05 20:27:26');
+INSERT INTO `t_order_position` VALUES (14571, 2, 2683, 333, '109.40894454672835', '24.324457103946305', '2.0', '15.0', '2020-09-05 20:27:36');
+INSERT INTO `t_order_position` VALUES (14572, 2, 2682, 324, '109.42912473338114', '24.34477376113331', '112.0', '15.0', '2020-09-05 20:27:36');
+INSERT INTO `t_order_position` VALUES (14573, 2, 2683, 333, '109.40891123114012', '24.324923638741343', '166.0', '15.0', '2020-09-05 20:27:41');
+INSERT INTO `t_order_position` VALUES (14574, 2, 2683, 333, '109.40889458899676', '24.325423495914098', '166.0', '15.0', '2020-09-05 20:27:46');
+INSERT INTO `t_order_position` VALUES (14575, 2, 2683, 333, '109.40892795946212', '24.32589002511369', '0.0', '15.0', '2020-09-05 20:27:51');
+INSERT INTO `t_order_position` VALUES (14576, 2, 2682, 324, '109.4287417137236', '24.345473948932746', '14.0', '15.0', '2020-09-05 20:27:51');
+INSERT INTO `t_order_position` VALUES (14577, 2, 2683, 333, '109.40896134750317', '24.326656468166224', '164.0', '15.0', '2020-09-05 20:28:01');
+INSERT INTO `t_order_position` VALUES (14578, 2, 2682, 324, '109.42874174407324', '24.345990474989573', '162.0', '15.0', '2020-09-05 20:28:01');
+INSERT INTO `t_order_position` VALUES (14579, 2, 2682, 324, '109.429324679328', '24.346323138921065', '0.0', '15.0', '2020-09-05 20:28:27');
+INSERT INTO `t_order_position` VALUES (14580, 2, 2683, 333, '109.40899474430493', '24.32757286861281', '2.0', '15.0', '2020-09-05 20:29:27');
+INSERT INTO `t_order_position` VALUES (14581, 2, 2683, 333, '109.40899478152504', '24.328206020511914', '2.0', '15.0', '2020-09-05 20:29:32');
+INSERT INTO `t_order_position` VALUES (14582, 2, 2683, 333, '109.40904483205941', '24.328822506139847', '2.0', '15.0', '2020-09-05 20:29:37');
+INSERT INTO `t_order_position` VALUES (14583, 2, 2683, 333, '109.40907820325832', '24.329305698274215', '4.0', '15.0', '2020-09-05 20:29:42');
+INSERT INTO `t_order_position` VALUES (14584, 2, 2682, 324, '109.4287250979028', '24.34614045052304', '104.0', '15.0', '2020-09-05 20:29:47');
+INSERT INTO `t_order_position` VALUES (14585, 2, 2683, 333, '109.40921161992104', '24.330088795093364', '4.0', '15.0', '2020-09-05 20:29:52');
+INSERT INTO `t_order_position` VALUES (14586, 2, 2683, 333, '109.40924499280494', '24.330605311319953', '4.0', '15.0', '2020-09-05 20:29:57');
+INSERT INTO `t_order_position` VALUES (14587, 2, 2682, 324, '109.42874170980751', '24.34540730042518', '112.0', '15.0', '2020-09-05 20:29:57');
+INSERT INTO `t_order_position` VALUES (14588, 2, 2682, 324, '109.42872502251817', '24.34485746669109', '96.0', '15.0', '2020-09-05 20:30:08');
+INSERT INTO `t_order_position` VALUES (14589, 2, 2683, 333, '109.40931171098225', '24.33117180998546', '0.0', '15.0', '2020-09-05 20:30:17');
+INSERT INTO `t_order_position` VALUES (14590, 2, 2682, 324, '109.42927462278658', '24.3447402869517', '62.0', '15.0', '2020-09-05 20:30:18');
+INSERT INTO `t_order_position` VALUES (14591, 2, 2682, 324, '109.42984087192595', '24.344789697822566', '64.0', '15.0', '2020-09-05 20:30:23');
+INSERT INTO `t_order_position` VALUES (14592, 2, 2682, 324, '109.43044040941571', '24.34478907296804', '58.0', '15.0', '2020-09-05 20:30:28');
+INSERT INTO `t_order_position` VALUES (14593, 2, 2682, 324, '109.43100662392827', '24.34480513031837', '62.0', '15.0', '2020-09-05 20:30:33');
+INSERT INTO `t_order_position` VALUES (14594, 2, 2683, 333, '109.40936175779706', '24.33173831052758', '2.0', '15.0', '2020-09-05 20:30:43');
+INSERT INTO `t_order_position` VALUES (14595, 2, 2682, 324, '109.4316893653349', '24.34438782929922', '112.0', '15.0', '2020-09-05 20:30:43');
+INSERT INTO `t_order_position` VALUES (14596, 2, 2683, 333, '109.40941180350895', '24.332288149263384', '0.0', '15.0', '2020-09-05 20:30:48');
+INSERT INTO `t_order_position` VALUES (14597, 2, 2682, 324, '109.43167266776159', '24.343621390850608', '112.0', '15.0', '2020-09-05 20:30:48');
+INSERT INTO `t_order_position` VALUES (14598, 2, 2682, 324, '109.43165597800423', '24.342988249609988', '116.0', '15.0', '2020-09-05 20:30:53');
+INSERT INTO `t_order_position` VALUES (14599, 2, 2683, 333, '109.40942852750489', '24.333187893030345', '4.0', '15.0', '2020-09-05 20:30:58');
+INSERT INTO `t_order_position` VALUES (14600, 2, 2682, 324, '109.43165594081381', '24.342355090215737', '112.0', '15.0', '2020-09-05 20:30:58');
+INSERT INTO `t_order_position` VALUES (14601, 2, 2683, 333, '109.40949524605843', '24.333771054285624', '4.0', '15.0', '2020-09-05 20:31:03');
+INSERT INTO `t_order_position` VALUES (14602, 2, 2682, 324, '109.43163925300024', '24.34175527376812', '112.0', '15.0', '2020-09-05 20:31:03');
+INSERT INTO `t_order_position` VALUES (14603, 2, 2683, 333, '109.40954529535946', '24.334387541525086', '2.0', '15.0', '2020-09-05 20:31:08');
+INSERT INTO `t_order_position` VALUES (14604, 2, 2682, 324, '109.43165586936945', '24.341138758608658', '114.0', '15.0', '2020-09-05 20:31:08');
+INSERT INTO `t_order_position` VALUES (14605, 2, 2682, 324, '109.431639181556', '24.340538942752666', '112.0', '15.0', '2020-09-05 20:31:13');
+INSERT INTO `t_order_position` VALUES (14606, 2, 2683, 333, '109.40979539405913', '24.334987342254212', '38.0', '15.0', '2020-09-05 20:31:18');
+INSERT INTO `t_order_position` VALUES (14607, 2, 2682, 324, '109.43170575265034', '24.339872386568867', '112.0', '15.0', '2020-09-05 20:31:18');
+INSERT INTO `t_order_position` VALUES (14608, 2, 2683, 333, '109.4105955821211', '24.335087197526505', '62.0', '15.0', '2020-09-05 20:31:28');
+INSERT INTO `t_order_position` VALUES (14609, 2, 2682, 324, '109.43175567789235', '24.339322483404843', '114.0', '15.0', '2020-09-05 20:31:28');
+INSERT INTO `t_order_position` VALUES (14610, 2, 2683, 333, '109.41122903519407', '24.335053760997393', '64.0', '15.0', '2020-09-05 20:31:33');
+INSERT INTO `t_order_position` VALUES (14611, 2, 2683, 333, '109.41184579726836', '24.33498698626322', '64.0', '15.0', '2020-09-05 20:31:38');
+INSERT INTO `t_order_position` VALUES (14612, 2, 2683, 333, '109.41241253556498', '24.334936868814268', '62.0', '15.0', '2020-09-05 20:31:43');
+INSERT INTO `t_order_position` VALUES (14613, 2, 2683, 333, '109.41336262462254', '24.334936616118306', '64.0', '15.0', '2020-09-05 20:31:53');
+INSERT INTO `t_order_position` VALUES (14614, 2, 2683, 333, '109.41387931882613', '24.334903137728176', '64.0', '15.0', '2020-09-05 20:31:58');
+INSERT INTO `t_order_position` VALUES (14615, 2, 2683, 333, '109.41447933239289', '24.3348362954219', '64.0', '15.0', '2020-09-05 20:32:04');
+INSERT INTO `t_order_position` VALUES (14616, 2, 2682, 324, '109.43173899016135', '24.338722668502736', '114.0', '15.0', '2020-09-05 20:32:04');
+INSERT INTO `t_order_position` VALUES (14617, 2, 2683, 333, '109.41504599803105', '24.334819435009404', '60.0', '15.0', '2020-09-05 20:32:09');
+INSERT INTO `t_order_position` VALUES (14618, 2, 2682, 324, '109.43173893339906', '24.33775627078777', '112.0', '15.0', '2020-09-05 20:32:14');
+INSERT INTO `t_order_position` VALUES (14619, 2, 2683, 333, '109.4159792971503', '24.334835738669934', '58.0', '15.0', '2020-09-05 20:32:19');
+INSERT INTO `t_order_position` VALUES (14620, 2, 2682, 324, '109.43173890012476', '24.337189762131842', '116.0', '15.0', '2020-09-05 20:32:19');
+INSERT INTO `t_order_position` VALUES (14621, 2, 2682, 324, '109.4316889053559', '24.33655666125332', '114.0', '15.0', '2020-09-05 20:32:24');
+INSERT INTO `t_order_position` VALUES (14622, 2, 2683, 333, '109.4165459191512', '24.33480217800636', '58.0', '15.0', '2020-09-05 20:32:24');
+INSERT INTO `t_order_position` VALUES (14623, 2, 2682, 324, '109.43165556598126', '24.33597352811552', '114.0', '15.0', '2020-09-05 20:32:29');
+INSERT INTO `t_order_position` VALUES (14624, 2, 2682, 324, '109.43163887816826', '24.335373714754628', '112.0', '15.0', '2020-09-05 20:32:34');
+INSERT INTO `t_order_position` VALUES (14625, 2, 2683, 333, '109.41749580939103', '24.334768424746784', '58.0', '15.0', '2020-09-05 20:32:34');
+INSERT INTO `t_order_position` VALUES (14626, 2, 2682, 324, '109.43167215297929', '24.334857156185723', '112.0', '15.0', '2020-09-05 20:32:39');
+INSERT INTO `t_order_position` VALUES (14627, 2, 2682, 324, '109.43168877421682', '24.334323954308026', '112.0', '15.0', '2020-09-05 20:32:44');
+INSERT INTO `t_order_position` VALUES (14628, 2, 2683, 333, '109.41852897491255', '24.334784573548923', '58.0', '15.0', '2020-09-05 20:32:44');
+INSERT INTO `t_order_position` VALUES (14629, 2, 2682, 324, '109.43168874094299', '24.33375744720942', '114.0', '15.0', '2020-09-05 20:32:49');
+INSERT INTO `t_order_position` VALUES (14630, 2, 2683, 333, '109.41911219021475', '24.33480092454999', '60.0', '15.0', '2020-09-05 20:32:49');
+INSERT INTO `t_order_position` VALUES (14631, 2, 2682, 324, '109.43170536021', '24.333190921862435', '112.0', '15.0', '2020-09-05 20:32:54');
+INSERT INTO `t_order_position` VALUES (14632, 2, 2682, 324, '109.43168867831021', '24.332691081600057', '112.0', '15.0', '2020-09-05 20:32:59');
+INSERT INTO `t_order_position` VALUES (14633, 2, 2683, 333, '109.41972871342857', '24.33481724107653', '56.0', '15.0', '2020-09-05 20:32:59');
+INSERT INTO `t_order_position` VALUES (14634, 2, 2682, 324, '109.43168864895124', '24.332191223032154', '112.0', '15.0', '2020-09-05 20:33:04');
+INSERT INTO `t_order_position` VALUES (14635, 2, 2683, 333, '109.42036187948335', '24.334833530395414', '58.0', '15.0', '2020-09-05 20:33:04');
+INSERT INTO `t_order_position` VALUES (14636, 2, 2682, 324, '109.43165531153372', '24.33164141580857', '114.0', '15.0', '2020-09-05 20:33:09');
+INSERT INTO `t_order_position` VALUES (14637, 2, 2683, 333, '109.42099502535204', '24.334849801606815', '58.0', '15.0', '2020-09-05 20:33:09');
+INSERT INTO `t_order_position` VALUES (14638, 2, 2683, 333, '109.42162815103902', '24.33486605471497', '58.0', '15.0', '2020-09-05 20:33:14');
+INSERT INTO `t_order_position` VALUES (14639, 2, 2682, 324, '109.431638626657', '24.33109159032061', '112.0', '15.0', '2020-09-05 20:33:19');
+INSERT INTO `t_order_position` VALUES (14640, 2, 2683, 333, '109.42222793576292', '24.334882312649857', '56.0', '15.0', '2020-09-05 20:33:19');
+INSERT INTO `t_order_position` VALUES (14641, 2, 2683, 333, '109.42284436228667', '24.3348985424445', '58.0', '15.0', '2020-09-05 20:33:24');
+INSERT INTO `t_order_position` VALUES (14642, 2, 2683, 333, '109.4234441103212', '24.334914767470472', '58.0', '15.0', '2020-09-05 20:33:29');
+INSERT INTO `t_order_position` VALUES (14643, 2, 2683, 333, '109.42411047571844', '24.33493092493158', '56.0', '15.0', '2020-09-05 20:33:34');
+INSERT INTO `t_order_position` VALUES (14644, 2, 2683, 333, '109.42462689476507', '24.334963844141487', '58.0', '15.0', '2020-09-05 20:33:39');
+INSERT INTO `t_order_position` VALUES (14645, 2, 2683, 333, '109.42514329847303', '24.334963427380163', '58.0', '15.0', '2020-09-05 20:33:45');
+INSERT INTO `t_order_position` VALUES (14646, 2, 2683, 333, '109.4256930048393', '24.334979632542705', '58.0', '15.0', '2020-09-05 20:33:50');
+INSERT INTO `t_order_position` VALUES (14647, 2, 2683, 333, '109.4262593501799', '24.33494582371082', '58.0', '15.0', '2020-09-05 20:33:55');
+INSERT INTO `t_order_position` VALUES (14648, 2, 2683, 333, '109.42684234191015', '24.33501195750401', '60.0', '15.0', '2020-09-05 20:34:00');
+INSERT INTO `t_order_position` VALUES (14649, 2, 2683, 333, '109.42742531764', '24.33509473806194', '0.0', '15.0', '2020-09-05 20:34:20');
+INSERT INTO `t_order_position` VALUES (14650, 2, 2682, 324, '109.4316718985339', '24.33052504773024', '116.0', '15.0', '2020-09-05 20:34:30');
+INSERT INTO `t_order_position` VALUES (14651, 2, 2682, 324, '109.43167186819662', '24.330008528100656', '114.0', '15.0', '2020-09-05 20:34:35');
+INSERT INTO `t_order_position` VALUES (14652, 2, 2682, 324, '109.43167183003048', '24.329358713382312', '114.0', '15.0', '2020-09-05 20:34:40');
+INSERT INTO `t_order_position` VALUES (14653, 2, 2682, 324, '109.43167179088589', '24.32869223709433', '114.0', '15.0', '2020-09-05 20:34:45');
+INSERT INTO `t_order_position` VALUES (14654, 2, 2683, 333, '109.42817482861898', '24.3351273590742', '58.0', '15.0', '2020-09-05 20:34:45');
+INSERT INTO `t_order_position` VALUES (14655, 2, 2682, 324, '109.4316550972156', '24.32799245584848', '112.0', '15.0', '2020-09-05 20:34:50');
+INSERT INTO `t_order_position` VALUES (14656, 2, 2683, 333, '109.42869114176047', '24.335143522206238', '54.0', '15.0', '2020-09-05 20:34:50');
+INSERT INTO `t_order_position` VALUES (14657, 2, 2682, 324, '109.43167171063993', '24.32732596179769', '114.0', '15.0', '2020-09-05 20:34:55');
+INSERT INTO `t_order_position` VALUES (14658, 2, 2683, 333, '109.42929071344771', '24.335142927978264', '62.0', '15.0', '2020-09-05 20:34:55');
+INSERT INTO `t_order_position` VALUES (14659, 2, 2682, 324, '109.43163837808788', '24.32685946605304', '112.0', '15.0', '2020-09-05 20:35:00');
+INSERT INTO `t_order_position` VALUES (14660, 2, 2682, 324, '109.43165499739777', '24.326292943831838', '114.0', '15.0', '2020-09-05 20:35:05');
+INSERT INTO `t_order_position` VALUES (14661, 2, 2683, 333, '109.42989026827436', '24.335158979743966', '0.0', '15.0', '2020-09-05 20:35:05');
+INSERT INTO `t_order_position` VALUES (14662, 2, 2682, 324, '109.43163831154287', '24.325726458797277', '120.0', '15.0', '2020-09-05 20:35:10');
+INSERT INTO `t_order_position` VALUES (14663, 2, 2682, 324, '109.43167158244346', '24.325143256742333', '112.0', '15.0', '2020-09-05 20:35:20');
+INSERT INTO `t_order_position` VALUES (14664, 2, 2682, 324, '109.43170485818278', '24.324643364151058', '112.0', '15.0', '2020-09-05 20:35:26');
+INSERT INTO `t_order_position` VALUES (14665, 2, 2682, 324, '109.4316881743263', '24.324110203569006', '114.0', '15.0', '2020-09-05 20:35:30');
+INSERT INTO `t_order_position` VALUES (14666, 2, 2682, 324, '109.43165483788702', '24.323577061676136', '110.0', '15.0', '2020-09-05 20:35:35');
+INSERT INTO `t_order_position` VALUES (14667, 2, 2683, 333, '109.43042318714407', '24.335108437958947', '0.0', '15.0', '2020-09-05 20:36:51');
+INSERT INTO `t_order_position` VALUES (14668, 2, 2682, 324, '109.43167145327004', '24.322943893581833', '112.0', '15.0', '2020-09-05 20:37:15');
+INSERT INTO `t_order_position` VALUES (14669, 2, 2682, 324, '109.43195450571774', '24.32227710461222', '56.0', '15.0', '2020-09-05 20:37:31');
+INSERT INTO `t_order_position` VALUES (14670, 2, 2682, 324, '109.43257063458739', '24.322309728226763', '54.0', '15.0', '2020-09-05 20:37:36');
+INSERT INTO `t_order_position` VALUES (14671, 2, 2682, 324, '109.43331995990515', '24.32242548711366', '54.0', '15.0', '2020-09-05 20:37:41');
+INSERT INTO `t_order_position` VALUES (14672, 2, 2682, 324, '109.43415250772553', '24.322491134616065', '58.0', '15.0', '2020-09-05 20:37:46');
+INSERT INTO `t_order_position` VALUES (14673, 2, 2682, 324, '109.43491842321608', '24.32257349722533', '56.0', '14.0', '2020-09-05 20:37:51');
+INSERT INTO `t_order_position` VALUES (14674, 2, 2682, 324, '109.43555111149469', '24.32258935792759', '54.0', '14.0', '2020-09-05 20:37:56');
+INSERT INTO `t_order_position` VALUES (14675, 2, 2682, 324, '109.43625037984782', '24.32267176143616', '54.0', '15.0', '2020-09-05 20:38:01');
+INSERT INTO `t_order_position` VALUES (14676, 2, 2682, 324, '109.43691632218933', '24.322654217518973', '56.0', '15.0', '2020-09-05 20:38:06');
+INSERT INTO `t_order_position` VALUES (14677, 2, 2682, 324, '109.43749900710235', '24.322686753706183', '56.0', '15.0', '2020-09-05 20:38:11');
+INSERT INTO `t_order_position` VALUES (14678, 2, 2682, 324, '109.4380317325848', '24.322702682846664', '56.0', '15.0', '2020-09-05 20:38:16');
+INSERT INTO `t_order_position` VALUES (14679, 2, 2682, 324, '109.43861438844705', '24.32276851491318', '56.0', '15.0', '2020-09-05 20:38:21');
+INSERT INTO `t_order_position` VALUES (14680, 2, 2682, 324, '109.43911379549188', '24.32283445195998', '58.0', '15.0', '2020-09-05 20:38:26');
+INSERT INTO `t_order_position` VALUES (14681, 2, 2682, 324, '109.43967977340823', '24.32286695788653', '62.0', '15.0', '2020-09-05 20:38:46');
+INSERT INTO `t_order_position` VALUES (14682, 2, 2682, 324, '109.44007924450824', '24.322316532353387', '114.0', '15.0', '2020-09-05 20:39:06');
+INSERT INTO `t_order_position` VALUES (14683, 2, 2682, 324, '109.44011250386282', '24.32176664333052', '110.0', '15.0', '2020-09-05 20:39:16');
+INSERT INTO `t_order_position` VALUES (14684, 2, 2682, 324, '109.44017904978284', '24.32113339629301', '114.0', '15.0', '2020-09-05 20:39:31');
+INSERT INTO `t_order_position` VALUES (14685, 2, 2682, 324, '109.44022895468893', '24.32058348300502', '112.0', '15.0', '2020-09-05 20:39:52');
+INSERT INTO `t_order_position` VALUES (14686, 2, 2682, 324, '109.44024554956133', '24.319717045181754', '110.0', '15.0', '2020-09-05 20:40:02');
+INSERT INTO `t_order_position` VALUES (14687, 2, 2682, 324, '109.44022887454788', '24.31921721632659', '110.0', '15.0', '2020-09-05 20:40:07');
+INSERT INTO `t_order_position` VALUES (14688, 2, 2682, 324, '109.44027875686037', '24.318284083025414', '112.0', '15.0', '2020-09-05 20:40:17');
+INSERT INTO `t_order_position` VALUES (14689, 2, 2683, 333, '109.43093944371176', '24.33514121147951', '0.0', '15.0', '2020-09-05 20:40:17');
+INSERT INTO `t_order_position` VALUES (14690, 2, 2682, 324, '109.44031200613301', '24.317567577834446', '112.0', '15.0', '2020-09-05 20:40:27');
+INSERT INTO `t_order_position` VALUES (14691, 2, 2682, 324, '109.44036191463952', '24.317084312785337', '122.0', '15.0', '2020-09-05 20:40:42');
+INSERT INTO `t_order_position` VALUES (14692, 2, 2682, 324, '109.44034523874038', '24.316567823276028', '112.0', '15.0', '2020-09-05 20:42:27');
+INSERT INTO `t_order_position` VALUES (14693, 2, 2682, 324, '109.44032854425966', '24.31573476094635', '110.0', '15.0', '2020-09-05 20:42:37');
+INSERT INTO `t_order_position` VALUES (14694, 2, 2682, 324, '109.44037844881942', '24.315184849623666', '112.0', '15.0', '2020-09-05 20:42:42');
+INSERT INTO `t_order_position` VALUES (14695, 2, 2682, 324, '109.44042835033116', '24.314584953263044', '110.0', '15.0', '2020-09-05 20:42:48');
+INSERT INTO `t_order_position` VALUES (14696, 2, 2682, 324, '109.44044496557466', '24.314068415236182', '112.0', '15.0', '2020-09-05 20:42:53');
+INSERT INTO `t_order_position` VALUES (14697, 2, 2682, 324, '109.44041164028013', '24.313485304911698', '114.0', '15.0', '2020-09-05 20:42:58');
+INSERT INTO `t_order_position` VALUES (14698, 2, 2682, 324, '109.44041160998508', '24.312968792096434', '112.0', '15.0', '2020-09-05 20:43:03');
+INSERT INTO `t_order_position` VALUES (14699, 2, 2682, 324, '109.44041158164461', '24.312485602871632', '112.0', '15.0', '2020-09-05 20:43:08');
+INSERT INTO `t_order_position` VALUES (14700, 2, 2682, 324, '109.44042819690175', '24.31196906567872', '112.0', '15.0', '2020-09-05 20:43:13');
+INSERT INTO `t_order_position` VALUES (14701, 2, 2682, 324, '109.44042816953879', '24.31150253850109', '110.0', '15.0', '2020-09-05 20:43:18');
+INSERT INTO `t_order_position` VALUES (14702, 2, 2682, 324, '109.4404447877151', '24.31103598670744', '112.0', '15.0', '2020-09-05 20:43:23');
+INSERT INTO `t_order_position` VALUES (14703, 2, 2682, 324, '109.44046140099248', '24.31048612671755', '114.0', '15.0', '2020-09-05 20:43:28');
+INSERT INTO `t_order_position` VALUES (14704, 2, 2682, 324, '109.44047801621163', '24.309969590268658', '114.0', '15.0', '2020-09-05 20:43:33');
+INSERT INTO `t_order_position` VALUES (14705, 2, 2682, 324, '109.44052792531184', '24.309502989313238', '112.0', '15.0', '2020-09-05 20:43:38');
+INSERT INTO `t_order_position` VALUES (14706, 2, 2682, 324, '109.44049460601029', '24.30901985101585', '110.0', '15.0', '2020-09-05 20:45:09');
+INSERT INTO `t_order_position` VALUES (14707, 2, 2683, 333, '109.43155560331253', '24.3351738630301', '26.0', '15.0', '2020-09-05 20:45:14');
+INSERT INTO `t_order_position` VALUES (14708, 2, 2682, 324, '109.44049455324047', '24.30812012217244', '112.0', '15.0', '2020-09-05 20:45:19');
+INSERT INTO `t_order_position` VALUES (14709, 2, 2682, 324, '109.44051116550304', '24.307553601717895', '114.0', '15.0', '2020-09-05 20:45:24');
+INSERT INTO `t_order_position` VALUES (14710, 2, 2683, 333, '109.43175548118273', '24.335973417053307', '0.0', '15.0', '2020-09-05 20:45:24');
+INSERT INTO `t_order_position` VALUES (14711, 2, 2682, 324, '109.44054442223778', '24.306970395015888', '112.0', '15.0', '2020-09-05 20:45:29');
+INSERT INTO `t_order_position` VALUES (14712, 2, 2683, 333, '109.43175551249944', '24.336506601142847', '166.0', '15.0', '2020-09-05 20:45:29');
+INSERT INTO `t_order_position` VALUES (14713, 2, 2682, 324, '109.4405443899902', '24.306420561492498', '114.0', '15.0', '2020-09-05 20:45:34');
+INSERT INTO `t_order_position` VALUES (14714, 2, 2682, 324, '109.44057765058261', '24.305904001683007', '114.0', '15.0', '2020-09-05 20:45:39');
+INSERT INTO `t_order_position` VALUES (14715, 2, 2683, 333, '109.43177221293898', '24.337323021168864', '166.0', '15.0', '2020-09-05 20:45:39');
+INSERT INTO `t_order_position` VALUES (14716, 2, 2682, 324, '109.44061091307795', '24.305420765237212', '112.0', '15.0', '2020-09-05 20:45:44');
+INSERT INTO `t_order_position` VALUES (14717, 2, 2683, 333, '109.43177224425587', '24.33785620583621', '2.0', '15.0', '2020-09-05 20:45:44');
+INSERT INTO `t_order_position` VALUES (14718, 2, 2683, 333, '109.43180558343899', '24.338439339685042', '0.0', '15.0', '2020-09-05 20:45:54');
+INSERT INTO `t_order_position` VALUES (14719, 2, 2682, 324, '109.4405775616588', '24.304387795834405', '116.0', '15.0', '2020-09-05 20:45:54');
+INSERT INTO `t_order_position` VALUES (14720, 2, 2682, 324, '109.44056088690681', '24.303887972999036', '116.0', '15.0', '2020-09-05 20:45:59');
+INSERT INTO `t_order_position` VALUES (14721, 2, 2682, 324, '109.44049427766926', '24.30342154801457', '114.0', '15.0', '2020-09-05 20:46:04');
+INSERT INTO `t_order_position` VALUES (14722, 2, 2682, 324, '109.44047758917132', '24.302688463443435', '124.0', '15.0', '2020-09-05 20:46:15');
+INSERT INTO `t_order_position` VALUES (14723, 2, 2683, 333, '109.43178896914836', '24.339089177690617', '166.0', '15.0', '2020-09-05 20:46:25');
+INSERT INTO `t_order_position` VALUES (14724, 2, 2683, 333, '109.4317723489724', '24.33963904373035', '0.0', '15.0', '2020-09-05 20:46:31');
+INSERT INTO `t_order_position` VALUES (14725, 2, 2683, 333, '109.4317890386334', '24.340272183165226', '2.0', '15.0', '2020-09-05 20:46:35');
+INSERT INTO `t_order_position` VALUES (14726, 2, 2683, 333, '109.43180572143008', '24.340788688459554', '166.0', '15.0', '2020-09-05 20:46:40');
+INSERT INTO `t_order_position` VALUES (14727, 2, 2683, 333, '109.43183907328108', '24.341588430592466', '166.0', '15.0', '2020-09-05 20:47:00');
+INSERT INTO `t_order_position` VALUES (14728, 2, 2683, 333, '109.43180579874507', '24.342104992207314', '166.0', '15.0', '2020-09-05 20:47:05');
+INSERT INTO `t_order_position` VALUES (14729, 2, 2683, 333, '109.43180583299875', '24.342688165203306', '166.0', '15.0', '2020-09-05 20:47:10');
+INSERT INTO `t_order_position` VALUES (14730, 2, 2683, 333, '109.43180587018857', '24.34332132476917', '166.0', '15.0', '2020-09-05 20:47:15');
+INSERT INTO `t_order_position` VALUES (14731, 2, 2683, 333, '109.43180590444248', '24.343904498342244', '166.0', '15.0', '2020-09-05 20:47:20');
+INSERT INTO `t_order_position` VALUES (14732, 2, 2683, 333, '109.4318059318457', '24.34437103740028', '0.0', '15.0', '2020-09-05 20:47:25');
+INSERT INTO `t_order_position` VALUES (14733, 2, 2683, 333, '109.43178930972755', '24.34488758157071', '0.0', '15.0', '2020-09-05 20:47:30');
+INSERT INTO `t_order_position` VALUES (14734, 2, 2683, 333, '109.43175603804733', '24.345454130880327', '0.0', '15.0', '2020-09-05 20:47:35');
+INSERT INTO `t_order_position` VALUES (14735, 2, 2682, 324, '109.4404276232725', '24.30218869073748', '118.0', '15.0', '2020-09-05 20:47:36');
+INSERT INTO `t_order_position` VALUES (14736, 2, 2683, 333, '109.43175606838706', '24.345970656930334', '0.0', '15.0', '2020-09-05 20:47:40');
+INSERT INTO `t_order_position` VALUES (14737, 2, 2683, 333, '109.43173944524993', '24.346470539598553', '166.0', '15.0', '2020-09-05 20:47:45');
+INSERT INTO `t_order_position` VALUES (14738, 2, 2682, 324, '109.44031106698972', '24.301555724501004', '122.0', '15.0', '2020-09-05 20:47:46');
+INSERT INTO `t_order_position` VALUES (14739, 2, 2683, 333, '109.43170617055259', '24.346987103123677', '166.0', '15.0', '2020-09-05 20:47:50');
+INSERT INTO `t_order_position` VALUES (14740, 2, 2682, 324, '109.44006134381769', '24.300922954508724', '122.0', '15.0', '2020-09-05 20:47:56');
+INSERT INTO `t_order_position` VALUES (14741, 2, 2682, 324, '109.43987821052072', '24.300440038616603', '124.0', '15.0', '2020-09-05 20:48:01');
+INSERT INTO `t_order_position` VALUES (14742, 2, 2682, 324, '109.4397283619957', '24.299857103705683', '120.0', '15.0', '2020-09-05 20:48:06');
+INSERT INTO `t_order_position` VALUES (14743, 2, 2682, 324, '109.43966174917215', '24.299374016239994', '124.0', '15.0', '2020-09-05 20:48:11');
+INSERT INTO `t_order_position` VALUES (14744, 2, 2683, 333, '109.43183942267154', '24.347536805659153', '0.0', '15.0', '2020-09-05 20:48:15');
+INSERT INTO `t_order_position` VALUES (14745, 2, 2682, 324, '109.43952852680592', '24.29847448734065', '122.0', '15.0', '2020-09-05 20:48:21');
+INSERT INTO `t_order_position` VALUES (14746, 2, 2682, 324, '109.43944526117966', '24.297891454804883', '116.0', '15.0', '2020-09-05 20:48:26');
+INSERT INTO `t_order_position` VALUES (14747, 2, 2682, 324, '109.43937863573724', '24.297208429152178', '116.0', '15.0', '2020-09-05 20:48:31');
+INSERT INTO `t_order_position` VALUES (14748, 2, 2682, 324, '109.43934531462983', '24.296725293626235', '112.0', '15.0', '2020-09-05 20:48:36');
+INSERT INTO `t_order_position` VALUES (14749, 2, 2683, 333, '109.43180616771217', '24.348386613081434', '166.0', '15.0', '2020-09-05 20:48:45');
+INSERT INTO `t_order_position` VALUES (14750, 2, 2683, 333, '109.43180619903096', '24.348919802548842', '166.0', '15.0', '2020-09-05 20:48:51');
+INSERT INTO `t_order_position` VALUES (14751, 2, 2683, 333, '109.4318228837719', '24.349469635842503', '166.0', '15.0', '2020-09-05 20:48:55');
+INSERT INTO `t_order_position` VALUES (14752, 2, 2683, 333, '109.43178960823319', '24.3499695385748', '166.0', '15.0', '2020-09-05 20:49:01');
+INSERT INTO `t_order_position` VALUES (14753, 2, 2683, 333, '109.43177298316692', '24.35043609852009', '166.0', '15.0', '2020-09-05 20:49:06');
+INSERT INTO `t_order_position` VALUES (14754, 2, 2683, 333, '109.43177303895446', '24.35138584402778', '0.0', '15.0', '2020-09-05 20:49:16');
+INSERT INTO `t_order_position` VALUES (14755, 2, 2682, 324, '109.43941186003582', '24.29604207614316', '84.0', '15.0', '2020-09-05 20:49:17');
+INSERT INTO `t_order_position` VALUES (14756, 2, 2683, 333, '109.43175641778996', '24.351919053368448', '166.0', '15.0', '2020-09-05 20:49:21');
+INSERT INTO `t_order_position` VALUES (14757, 2, 2683, 333, '109.43177310355097', '24.352485550285124', '0.0', '15.0', '2020-09-05 20:49:26');
+INSERT INTO `t_order_position` VALUES (14758, 2, 2682, 324, '109.44019420126993', '24.29565771803041', '72.0', '15.0', '2020-09-05 20:49:27');
+INSERT INTO `t_order_position` VALUES (14759, 2, 2683, 333, '109.43175648238677', '24.35301876011179', '0.0', '15.0', '2020-09-05 20:49:31');
+INSERT INTO `t_order_position` VALUES (14760, 2, 2683, 333, '109.43177316325415', '24.35350194635416', '0.0', '15.0', '2020-09-05 20:49:36');
+INSERT INTO `t_order_position` VALUES (14761, 2, 2682, 324, '109.44086000250587', '24.295356817529086', '76.0', '15.0', '2020-09-05 20:49:37');
+INSERT INTO `t_order_position` VALUES (14762, 2, 2682, 324, '109.44179208576821', '24.294872212190864', '74.0', '15.0', '2020-09-05 20:49:47');
+INSERT INTO `t_order_position` VALUES (14763, 2, 2682, 324, '109.44252441037086', '24.294521178279606', '80.0', '15.0', '2020-09-05 20:49:57');
+INSERT INTO `t_order_position` VALUES (14764, 2, 2683, 333, '109.4317898558528', '24.35418507972733', '6.0', '15.0', '2020-09-05 20:50:06');
+INSERT INTO `t_order_position` VALUES (14765, 2, 2682, 324, '109.44335656337464', '24.29405333145676', '92.0', '15.0', '2020-09-05 20:50:07');
+INSERT INTO `t_order_position` VALUES (14766, 2, 2682, 324, '109.4436394740211', '24.293652999089257', '92.0', '15.0', '2020-09-05 20:50:12');
+INSERT INTO `t_order_position` VALUES (14767, 2, 2683, 333, '109.43187315127564', '24.354751503253418', '2.0', '15.0', '2020-09-05 20:50:16');
+INSERT INTO `t_order_position` VALUES (14768, 2, 2682, 324, '109.44397230757976', '24.29321925904804', '94.0', '15.0', '2020-09-05 20:50:22');
+INSERT INTO `t_order_position` VALUES (14769, 2, 2683, 333, '109.43188983987714', '24.355367988207895', '0.0', '15.0', '2020-09-05 20:50:26');
+INSERT INTO `t_order_position` VALUES (14770, 2, 2683, 333, '109.43188987413313', '24.35595116757423', '166.0', '15.0', '2020-09-05 20:50:41');
+INSERT INTO `t_order_position` VALUES (14771, 2, 2683, 333, '109.43188991034674', '24.356567671784518', '0.0', '15.0', '2020-09-05 20:50:51');
+INSERT INTO `t_order_position` VALUES (14772, 2, 2683, 333, '109.43190659501973', '24.35711750850809', '52.0', '15.0', '2020-09-05 20:51:02');
+INSERT INTO `t_order_position` VALUES (14773, 2, 2683, 333, '109.43262264107712', '24.357233330991914', '64.0', '15.0', '2020-09-05 20:51:12');
+INSERT INTO `t_order_position` VALUES (14774, 2, 2683, 333, '109.43348851342911', '24.357198992520075', '60.0', '15.0', '2020-09-05 20:52:43');
+INSERT INTO `t_order_position` VALUES (14775, 2, 2683, 333, '109.43383821534286', '24.35774842942223', '0.0', '15.0', '2020-09-05 20:52:58');
+INSERT INTO `t_order_position` VALUES (14776, 2, 2683, 333, '109.43382161151264', '24.3585482399963', '2.0', '15.0', '2020-09-05 20:53:08');
+INSERT INTO `t_order_position` VALUES (14777, 2, 2683, 333, '109.43380500473373', '24.359298064138617', '0.0', '15.0', '2020-09-05 20:53:18');
+INSERT INTO `t_order_position` VALUES (14778, 2, 2683, 333, '109.43378839892023', '24.360064551070135', '12.0', '15.0', '2020-09-05 20:53:28');
+INSERT INTO `t_order_position` VALUES (14779, 2, 2683, 333, '109.43412143537468', '24.360447381639993', '116.0', '15.0', '2020-09-05 20:53:38');
+INSERT INTO `t_order_position` VALUES (14780, 2, 2683, 333, '109.43325559470668', '24.360565055866395', '112.0', '15.0', '2020-09-05 20:53:48');
+INSERT INTO `t_order_position` VALUES (14781, 2, 2683, 333, '109.43262283974786', '24.360615780564736', '114.0', '15.0', '2020-09-05 20:53:54');
+INSERT INTO `t_order_position` VALUES (14782, 2, 2683, 333, '109.43207332452651', '24.360633069257624', '110.0', '15.0', '2020-09-05 20:54:18');
+INSERT INTO `t_order_position` VALUES (14783, 2, 2683, 333, '109.4311574331592', '24.360667408293036', '114.0', '15.0', '2020-09-05 20:54:28');
+INSERT INTO `t_order_position` VALUES (14784, 2, 2683, 333, '109.43062453172085', '24.36068464375068', '114.0', '15.0', '2020-09-05 20:54:33');
+INSERT INTO `t_order_position` VALUES (14785, 2, 2683, 333, '109.43010826814317', '24.360668524628924', '110.0', '15.0', '2020-09-05 20:54:38');
+INSERT INTO `t_order_position` VALUES (14786, 2, 2683, 333, '109.42912567030697', '24.36071951281335', '110.0', '15.0', '2020-09-05 20:54:48');
+INSERT INTO `t_order_position` VALUES (14787, 2, 2683, 333, '109.4285927162057', '24.36075336252815', '114.0', '15.0', '2020-09-05 20:54:53');
+INSERT INTO `t_order_position` VALUES (14788, 2, 2683, 333, '109.42794315690274', '24.360753985290867', '110.0', '15.0', '2020-09-05 20:54:58');
+INSERT INTO `t_order_position` VALUES (14789, 2, 2683, 333, '109.42727692234945', '24.360787929118427', '114.0', '15.0', '2020-09-05 20:55:03');
+INSERT INTO `t_order_position` VALUES (14790, 2, 2683, 333, '109.42669394820618', '24.360805116919238', '114.0', '15.0', '2020-09-05 20:55:09');
+INSERT INTO `t_order_position` VALUES (14791, 2, 2683, 333, '109.42609429990696', '24.36082230384257', '110.0', '15.0', '2020-09-05 20:55:14');
+INSERT INTO `t_order_position` VALUES (14792, 2, 2683, 333, '109.4254280028009', '24.360839530126274', '110.0', '15.0', '2020-09-05 20:55:19');
+INSERT INTO `t_order_position` VALUES (14793, 2, 2683, 333, '109.424794999991', '24.36085670973469', '110.0', '15.0', '2020-09-05 20:55:24');
+INSERT INTO `t_order_position` VALUES (14794, 2, 2683, 333, '109.42414531828267', '24.36087388421131', '110.0', '15.0', '2020-09-05 20:55:29');
+INSERT INTO `t_order_position` VALUES (14795, 2, 2683, 333, '109.42351227667491', '24.36092435195497', '114.0', '15.0', '2020-09-05 20:55:34');
+INSERT INTO `t_order_position` VALUES (14796, 2, 2683, 333, '109.42291253266274', '24.3609414530555', '110.0', '15.0', '2020-09-05 20:55:39');
+INSERT INTO `t_order_position` VALUES (14797, 2, 2683, 333, '109.42232943089006', '24.360958526415295', '110.0', '15.0', '2020-09-05 20:55:44');
+INSERT INTO `t_order_position` VALUES (14798, 2, 2683, 333, '109.42171299035624', '24.360975606578275', '114.0', '15.0', '2020-09-05 20:55:49');
+INSERT INTO `t_order_position` VALUES (14799, 2, 2683, 333, '109.42114651568053', '24.361009300080674', '110.0', '15.0', '2020-09-05 20:55:54');
+INSERT INTO `t_order_position` VALUES (14800, 2, 2683, 333, '109.42018014078795', '24.361093207507285', '110.0', '15.0', '2020-09-05 20:56:04');
+INSERT INTO `t_order_position` VALUES (14801, 2, 2683, 333, '109.41943033291912', '24.36112696532359', '112.0', '15.0', '2020-09-05 20:56:14');
+INSERT INTO `t_order_position` VALUES (14802, 2, 2683, 333, '109.4185471921503', '24.361210754606525', '110.0', '15.0', '2020-09-05 20:56:24');
+INSERT INTO `t_order_position` VALUES (14803, 2, 2683, 333, '109.41763067968932', '24.3612278752937', '110.0', '15.0', '2020-09-05 20:56:34');
+INSERT INTO `t_order_position` VALUES (14804, 2, 2683, 333, '109.41709741801185', '24.361261449209007', '110.0', '15.0', '2020-09-05 20:56:39');
+INSERT INTO `t_order_position` VALUES (14805, 2, 2683, 333, '109.41644748361578', '24.361261735606696', '114.0', '15.0', '2020-09-05 20:56:44');
+INSERT INTO `t_order_position` VALUES (14806, 2, 2683, 333, '109.4158308615208', '24.36129531440551', '112.0', '15.0', '2020-09-05 20:56:49');
+INSERT INTO `t_order_position` VALUES (14807, 2, 2683, 333, '109.41523088563113', '24.361312207551066', '110.0', '15.0', '2020-09-05 20:56:54');
+INSERT INTO `t_order_position` VALUES (14808, 2, 2683, 333, '109.41461422587372', '24.361345752572312', '110.0', '15.0', '2020-09-05 20:56:59');
+INSERT INTO `t_order_position` VALUES (14809, 2, 2683, 333, '109.41398087680162', '24.361329298712015', '110.0', '15.0', '2020-09-05 20:57:04');
+INSERT INTO `t_order_position` VALUES (14810, 2, 2683, 333, '109.41334751058425', '24.361362813878944', '114.0', '15.0', '2020-09-05 20:57:09');
+INSERT INTO `t_order_position` VALUES (14811, 2, 2683, 333, '109.41276412839095', '24.36137963574542', '110.0', '15.0', '2020-09-05 20:57:14');
+INSERT INTO `t_order_position` VALUES (14812, 2, 2683, 333, '109.41213072366332', '24.36141311637567', '114.0', '15.0', '2020-09-05 20:57:19');
+INSERT INTO `t_order_position` VALUES (14813, 2, 2683, 333, '109.41158064373181', '24.361413237237812', '110.0', '15.0', '2020-09-05 20:57:24');
+INSERT INTO `t_order_position` VALUES (14814, 2, 2683, 333, '109.41099721112148', '24.361446675358838', '110.0', '15.0', '2020-09-05 20:57:30');
+INSERT INTO `t_order_position` VALUES (14815, 2, 2683, 333, '109.41039709032286', '24.361463438544916', '110.0', '15.0', '2020-09-05 20:57:35');
+INSERT INTO `t_order_position` VALUES (14816, 2, 2683, 333, '109.40979695263773', '24.36149684805809', '110.0', '15.0', '2020-09-05 20:57:40');
+INSERT INTO `t_order_position` VALUES (14817, 2, 2683, 333, '109.40916345647575', '24.36156356963601', '110.0', '15.0', '2020-09-05 20:57:45');
+INSERT INTO `t_order_position` VALUES (14818, 2, 2683, 333, '109.40854661133848', '24.361613609884596', '112.0', '15.0', '2020-09-05 20:57:50');
+INSERT INTO `t_order_position` VALUES (14819, 2, 2683, 333, '109.40801310892392', '24.36166362938351', '110.0', '15.0', '2020-09-05 20:57:55');
+INSERT INTO `t_order_position` VALUES (14820, 2, 2683, 333, '109.40734620950809', '24.361696976994846', '112.0', '15.0', '2020-09-05 20:58:00');
+INSERT INTO `t_order_position` VALUES (14821, 2, 2683, 333, '109.40679600042772', '24.361713643518275', '112.0', '15.0', '2020-09-05 20:58:05');
+INSERT INTO `t_order_position` VALUES (14822, 2, 2683, 333, '109.40601234333279', '24.361730288890264', '112.0', '13.0', '2020-09-05 20:58:15');
+INSERT INTO `t_order_position` VALUES (14823, 2, 2683, 333, '109.40546209938253', '24.361763585624995', '114.0', '12.0', '2020-09-05 20:58:25');
+INSERT INTO `t_order_position` VALUES (14824, 2, 2683, 333, '109.40457834128682', '24.361780175446416', '112.0', '12.0', '2020-09-05 20:58:35');
+INSERT INTO `t_order_position` VALUES (14825, 2, 2683, 333, '109.40402806296605', '24.361880087273573', '110.0', '13.0', '2020-09-05 20:58:45');
+INSERT INTO `t_order_position` VALUES (14826, 2, 2683, 333, '109.40322762448466', '24.36189663563657', '110.0', '13.0', '2020-09-05 20:58:55');
+INSERT INTO `t_order_position` VALUES (14827, 2, 2683, 333, '109.4026939800829', '24.361879881946344', '114.0', '15.0', '2020-09-05 20:59:40');
+INSERT INTO `t_order_position` VALUES (14828, 2, 2683, 333, '109.40192684181179', '24.361846404527736', '112.0', '15.0', '2020-09-05 20:59:50');
+INSERT INTO `t_order_position` VALUES (14829, 2, 2683, 333, '109.40135980507345', '24.361762963714504', '110.0', '15.0', '2020-09-05 20:59:55');
+INSERT INTO `t_order_position` VALUES (14830, 2, 2683, 333, '109.40075939784735', '24.361696162743506', '112.0', '15.0', '2020-09-05 21:00:00');
+INSERT INTO `t_order_position` VALUES (14831, 2, 2683, 333, '109.4001089436319', '24.361729306000548', '118.0', '15.0', '2020-09-05 21:00:05');
+INSERT INTO `t_order_position` VALUES (14832, 2, 2683, 333, '109.39957523383144', '24.361945754370765', '0.0', '15.0', '2020-09-05 21:00:26');
+INSERT INTO `t_order_position` VALUES (14833, 2, 2683, 333, '109.39934169860454', '24.36147913376719', '100.0', '15.0', '2020-09-05 21:01:06');
+INSERT INTO `t_order_position` VALUES (14834, 2, 2683, 333, '109.39955848429848', '24.360746060132506', '112.0', '15.0', '2020-09-05 21:01:16');
+INSERT INTO `t_order_position` VALUES (14835, 2, 2683, 333, '109.39960848223328', '24.360079582535295', '110.0', '15.0', '2020-09-05 21:01:26');
+INSERT INTO `t_order_position` VALUES (14836, 2, 2683, 333, '109.39964180107101', '24.359413100001934', '110.0', '15.0', '2020-09-05 21:01:36');
+INSERT INTO `t_order_position` VALUES (14837, 2, 2683, 333, '109.39969179783036', '24.3587299606657', '112.0', '15.0', '2020-09-05 21:01:46');
+INSERT INTO `t_order_position` VALUES (14838, 2, 2683, 333, '109.39979182330242', '24.35791353858523', '110.0', '15.0', '2020-09-05 21:01:56');
+INSERT INTO `t_order_position` VALUES (14839, 2, 2683, 333, '109.39980845712957', '24.357147078185314', '114.0', '15.0', '2020-09-05 21:02:06');
+INSERT INTO `t_order_position` VALUES (14840, 2, 2683, 333, '109.39984176684172', '24.356330636509544', '112.0', '15.0', '2020-09-05 21:02:16');
+INSERT INTO `t_order_position` VALUES (14841, 2, 2683, 333, '109.40005854645004', '24.35558089920609', '90.0', '15.0', '2020-09-05 21:02:26');
+INSERT INTO `t_order_position` VALUES (14842, 2, 2683, 333, '109.40047547649633', '24.355031163799467', '90.0', '15.0', '2020-09-05 21:02:36');
+INSERT INTO `t_order_position` VALUES (14843, 2, 2683, 333, '109.40082568817505', '24.354514728378845', '94.0', '15.0', '2020-09-05 21:02:46');
+INSERT INTO `t_order_position` VALUES (14844, 2, 2683, 333, '109.40110918674695', '24.354064920349654', '92.0', '15.0', '2020-09-05 21:03:02');
+INSERT INTO `t_order_position` VALUES (14845, 2, 2683, 333, '109.40137599508009', '24.35346514494969', '104.0', '15.0', '2020-09-05 21:03:27');
+INSERT INTO `t_order_position` VALUES (14846, 2, 2683, 333, '109.40150938524864', '24.35294864721796', '98.0', '15.0', '2020-09-05 21:03:37');
+INSERT INTO `t_order_position` VALUES (14847, 2, 2683, 333, '109.40175951413165', '24.352398850782052', '102.0', '15.0', '2020-09-05 21:03:52');
+INSERT INTO `t_order_position` VALUES (14848, 2, 2683, 333, '109.4019929609525', '24.35181572395596', '104.0', '15.0', '2020-09-05 21:04:12');
+INSERT INTO `t_order_position` VALUES (14849, 2, 2683, 333, '109.40220973116035', '24.351282578314517', '100.0', '15.0', '2020-09-05 21:04:37');
+INSERT INTO `t_order_position` VALUES (14850, 2, 2683, 333, '109.40234311112653', '24.350682765768486', '100.0', '15.0', '2020-09-05 21:04:47');
+INSERT INTO `t_order_position` VALUES (14851, 2, 2683, 333, '109.40267660529646', '24.349999679357634', '102.0', '15.0', '2020-09-05 21:04:57');
+INSERT INTO `t_order_position` VALUES (14852, 2, 2683, 333, '109.40289336057613', '24.349333230713253', '110.0', '15.0', '2020-09-05 21:05:07');
+INSERT INTO `t_order_position` VALUES (14853, 2, 2683, 333, '109.402993385498', '24.34876673392393', '112.0', '15.0', '2020-09-05 21:05:18');
+INSERT INTO `t_order_position` VALUES (14854, 2, 2683, 333, '109.40306004468388', '24.34798362330874', '114.0', '15.0', '2020-09-05 21:05:33');
+INSERT INTO `t_order_position` VALUES (14855, 2, 2683, 333, '109.40305999768043', '24.347183839821223', '112.0', '15.0', '2020-09-05 21:05:43');
+INSERT INTO `t_order_position` VALUES (14856, 2, 2683, 333, '109.40302660397448', '24.3464840241113', '112.0', '15.0', '2020-09-05 21:05:53');
+INSERT INTO `t_order_position` VALUES (14857, 2, 2683, 333, '109.40295986242687', '24.345867513730038', '112.0', '15.0', '2020-09-05 21:06:03');
+INSERT INTO `t_order_position` VALUES (14858, 2, 2683, 333, '109.40297651037854', '24.34538431483004', '110.0', '15.0', '2020-09-05 21:06:13');
+INSERT INTO `t_order_position` VALUES (14859, 2, 2683, 333, '109.4030932160504', '24.344901132875815', '118.0', '15.0', '2020-09-05 21:06:23');
+INSERT INTO `t_order_position` VALUES (14860, 2, 2683, 333, '109.40305983610773', '24.344434588080937', '112.0', '15.0', '2020-09-05 21:06:38');
+INSERT INTO `t_order_position` VALUES (14861, 2, 2683, 333, '109.40307648006232', '24.34388474125062', '112.0', '15.0', '2020-09-05 21:06:48');
+INSERT INTO `t_order_position` VALUES (14862, 2, 2683, 333, '109.4032265267116', '24.34321828165899', '102.0', '15.0', '2020-09-05 21:06:58');
+INSERT INTO `t_order_position` VALUES (14863, 2, 2683, 333, '109.40347664383388', '24.34281843000082', '64.0', '15.0', '2020-09-05 21:07:08');
+INSERT INTO `t_order_position` VALUES (14864, 2, 2683, 333, '109.4042103761965', '24.34288517598845', '64.0', '15.0', '2020-09-05 21:07:18');
+INSERT INTO `t_order_position` VALUES (14865, 2, 2683, 333, '109.4048106820886', '24.34291856270511', '56.0', '15.0', '2020-09-05 21:07:28');
+INSERT INTO `t_order_position` VALUES (14866, 2, 2683, 333, '109.4055943869118', '24.34293528286338', '60.0', '15.0', '2020-09-05 21:07:38');
+INSERT INTO `t_order_position` VALUES (14867, 2, 2683, 333, '109.406294690769', '24.34290198790059', '58.0', '15.0', '2020-09-05 21:07:49');
+INSERT INTO `t_order_position` VALUES (14868, 2, 2683, 333, '109.40712835890899', '24.34293531887912', '58.0', '15.0', '2020-09-05 21:07:59');
+INSERT INTO `t_order_position` VALUES (14869, 2, 2683, 333, '109.40797866333448', '24.342935294350738', '58.0', '15.0', '2020-09-05 21:08:09');
+INSERT INTO `t_order_position` VALUES (14870, 2, 2683, 333, '109.40882893123205', '24.342918575849623', '58.0', '15.0', '2020-09-05 21:08:21');
+INSERT INTO `t_order_position` VALUES (14871, 2, 2683, 333, '109.40957913788459', '24.342901837427124', '60.0', '15.0', '2020-09-05 21:08:39');
+INSERT INTO `t_order_position` VALUES (14872, 2, 2683, 333, '109.4099958667351', '24.34220197656267', '116.0', '15.0', '2020-09-05 21:08:54');
+INSERT INTO `t_order_position` VALUES (14873, 2, 2683, 333, '109.40999583440855', '24.341652127954664', '116.0', '15.0', '2020-09-05 21:08:59');
+INSERT INTO `t_order_position` VALUES (14874, 2, 2683, 333, '109.40994578621876', '24.341035638112213', '116.0', '15.0', '2020-09-05 21:09:04');
+INSERT INTO `t_order_position` VALUES (14875, 2, 2683, 333, '109.40989574280326', '24.340502458762728', '118.0', '15.0', '2020-09-05 21:09:09');
+INSERT INTO `t_order_position` VALUES (14876, 2, 2683, 333, '109.40984569828453', '24.33995261747971', '118.0', '15.0', '2020-09-05 21:09:15');
+INSERT INTO `t_order_position` VALUES (14877, 2, 2683, 333, '109.40976231300873', '24.33941944261792', '116.0', '15.0', '2020-09-05 21:09:20');
+INSERT INTO `t_order_position` VALUES (14878, 2, 2683, 333, '109.40974561083539', '24.33888625938894', '114.0', '15.0', '2020-09-05 21:09:25');
+INSERT INTO `t_order_position` VALUES (14879, 2, 2683, 333, '109.40974557753017', '24.338319750224993', '116.0', '15.0', '2020-09-05 21:09:30');
+INSERT INTO `t_order_position` VALUES (14880, 2, 2683, 333, '109.4097288714251', '24.337719919364883', '118.0', '15.0', '2020-09-05 21:09:35');
+INSERT INTO `t_order_position` VALUES (14881, 2, 2683, 333, '109.40964548077103', '24.3371034349572', '118.0', '15.0', '2020-09-05 21:09:40');
+INSERT INTO `t_order_position` VALUES (14882, 2, 2683, 333, '109.40959543269598', '24.33650360860568', '116.0', '15.0', '2020-09-05 21:09:45');
+INSERT INTO `t_order_position` VALUES (14883, 2, 2683, 333, '109.40952871545075', '24.335937108371034', '118.0', '15.0', '2020-09-05 21:09:50');
+INSERT INTO `t_order_position` VALUES (14884, 2, 2683, 333, '109.4094786710057', '24.335403930285405', '118.0', '15.0', '2020-09-05 21:09:55');
+INSERT INTO `t_order_position` VALUES (14885, 2, 2683, 333, '109.4094619646817', '24.33480410063126', '116.0', '15.0', '2020-09-05 21:10:00');
+INSERT INTO `t_order_position` VALUES (14886, 2, 2683, 333, '109.40939524699745', '24.334237600772592', '116.0', '15.0', '2020-09-05 21:10:05');
+INSERT INTO `t_order_position` VALUES (14887, 2, 2683, 333, '109.40931185790937', '24.333671102755304', '118.0', '15.0', '2020-09-05 21:10:10');
+INSERT INTO `t_order_position` VALUES (14888, 2, 2683, 333, '109.40926180607285', '24.333021291430512', '108.0', '15.0', '2020-09-05 21:10:20');
+INSERT INTO `t_order_position` VALUES (14889, 2, 2683, 333, '109.4093284615069', '24.332521425682078', '114.0', '15.0', '2020-09-05 21:10:50');
+INSERT INTO `t_order_position` VALUES (14890, 2, 2683, 333, '109.40926172477337', '24.33163834953238', '118.0', '15.0', '2020-09-05 21:11:00');
+INSERT INTO `t_order_position` VALUES (14891, 2, 2683, 333, '109.40919501230822', '24.331171822117252', '120.0', '15.0', '2020-09-05 21:11:05');
+INSERT INTO `t_order_position` VALUES (14892, 2, 2683, 333, '109.40919496039471', '24.33028873985709', '116.0', '15.0', '2020-09-05 21:11:15');
+INSERT INTO `t_order_position` VALUES (14893, 2, 2683, 333, '109.40912824281294', '24.32973890315889', '120.0', '15.0', '2020-09-05 21:11:25');
+INSERT INTO `t_order_position` VALUES (14894, 2, 2683, 333, '109.40902818121107', '24.32917240775196', '0.0', '15.0', '2020-09-05 21:11:50');
+INSERT INTO `t_order_position` VALUES (14895, 2, 2683, 333, '109.40897812671754', '24.328489274315586', '120.0', '15.0', '2020-09-05 21:12:21');
+INSERT INTO `t_order_position` VALUES (14896, 2, 2683, 333, '109.40897809047688', '24.327872784167123', '118.0', '15.0', '2020-09-05 21:12:36');
+INSERT INTO `t_order_position` VALUES (14897, 2, 2683, 333, '109.40894471519593', '24.327322944889882', '118.0', '15.0', '2020-09-05 21:12:46');
+INSERT INTO `t_order_position` VALUES (14898, 2, 2683, 333, '109.40882796249824', '24.326439875545248', '110.0', '15.0', '2020-09-05 21:12:56');
+INSERT INTO `t_order_position` VALUES (14899, 2, 2683, 333, '109.40882793507336', '24.325973343183254', '114.0', '15.0', '2020-09-05 21:13:01');
+INSERT INTO `t_order_position` VALUES (14900, 2, 2683, 333, '109.40884456257976', '24.325223557961543', '114.0', '15.0', '2020-09-05 21:13:11');
+INSERT INTO `t_order_position` VALUES (14901, 2, 2683, 333, '109.40891119587978', '24.324323812161154', '112.0', '15.0', '2020-09-05 21:13:21');
+INSERT INTO `t_order_position` VALUES (14902, 2, 2683, 333, '109.40896116140601', '24.323490715656327', '112.0', '15.0', '2020-09-05 21:13:31');
+INSERT INTO `t_order_position` VALUES (14903, 2, 2683, 333, '109.40896111439254', '24.322690947837696', '114.0', '15.0', '2020-09-05 21:13:41');
+INSERT INTO `t_order_position` VALUES (14904, 2, 2683, 333, '109.40899441030976', '24.32189117745589', '120.0', '15.0', '2020-09-05 21:13:51');
+INSERT INTO `t_order_position` VALUES (14905, 2, 2683, 333, '109.40907772821812', '24.321224697201178', '120.0', '15.0', '2020-09-05 21:14:01');
+INSERT INTO `t_order_position` VALUES (14906, 2, 2683, 333, '109.40924441589526', '24.32079147367857', '116.0', '15.0', '2020-09-05 21:14:11');
+INSERT INTO `t_order_position` VALUES (14907, 2, 2683, 333, '109.40922771721836', '24.320324945087624', '124.0', '15.0', '2020-09-05 21:14:21');
+INSERT INTO `t_order_position` VALUES (14908, 2, 2683, 333, '109.40882758149507', '24.319958423281278', '104.0', '15.0', '2020-09-05 21:14:31');
+INSERT INTO `t_order_position` VALUES (14909, 2, 2683, 333, '109.40831075370778', '24.319925137796663', '110.0', '15.0', '2020-09-05 21:14:37');
+INSERT INTO `t_order_position` VALUES (14910, 2, 2683, 333, '109.40779391668933', '24.31995848767327', '122.0', '15.0', '2020-09-05 21:14:42');
+INSERT INTO `t_order_position` VALUES (14911, 2, 2683, 333, '109.40709368287476', '24.320308402151262', '132.0', '15.0', '2020-09-05 21:14:52');
+INSERT INTO `t_order_position` VALUES (14912, 2, 2683, 333, '109.40667687003129', '24.32059165247706', '140.0', '15.0', '2020-09-05 21:14:57');
+INSERT INTO `t_order_position` VALUES (14913, 2, 2683, 333, '109.40614334526663', '24.32109149512426', '136.0', '15.0', '2020-09-05 21:15:07');
+INSERT INTO `t_order_position` VALUES (14914, 2, 2683, 333, '109.40564314816868', '24.321474694699194', '138.0', '15.0', '2020-09-05 21:15:17');
+INSERT INTO `t_order_position` VALUES (14915, 2, 2683, 333, '109.40529300775175', '24.32182457085291', '136.0', '15.0', '2020-09-05 21:15:27');
+INSERT INTO `t_order_position` VALUES (14916, 2, 2683, 333, '109.40487616419776', '24.322207759607153', '136.0', '15.0', '2020-09-05 21:15:37');
+INSERT INTO `t_order_position` VALUES (14917, 2, 2683, 333, '109.40449266150948', '24.322574282620753', '130.0', '15.0', '2020-09-05 21:15:47');
+INSERT INTO `t_order_position` VALUES (14918, 2, 2683, 333, '109.40400908615058', '24.32272418324248', '114.0', '15.0', '2020-09-05 21:15:57');
+INSERT INTO `t_order_position` VALUES (14919, 2, 2683, 333, '109.40285844989226', '24.322823980817446', '110.0', '15.0', '2020-09-05 21:16:07');
+INSERT INTO `t_order_position` VALUES (14920, 2, 2683, 333, '109.4020579647491', '24.322807164790962', '114.0', '15.0', '2020-09-05 21:16:12');
+INSERT INTO `t_order_position` VALUES (14921, 2, 2683, 333, '109.40122409456818', '24.32280697501894', '114.0', '15.0', '2020-09-05 21:16:17');
+INSERT INTO `t_order_position` VALUES (14922, 2, 2683, 333, '109.40022340582003', '24.322790046424096', '112.0', '15.0', '2020-09-05 21:16:25');
+INSERT INTO `t_order_position` VALUES (14923, 2, 2683, 333, '109.39940614145377', '24.322773135326056', '114.0', '15.0', '2020-09-05 21:16:27');
+INSERT INTO `t_order_position` VALUES (14924, 2, 2683, 333, '109.39863888609615', '24.322772875767633', '114.0', '15.0', '2020-09-05 21:16:32');
+INSERT INTO `t_order_position` VALUES (14925, 2, 2683, 333, '109.39795500393979', '24.322755961857492', '112.0', '15.0', '2020-09-05 21:16:37');
+INSERT INTO `t_order_position` VALUES (14926, 2, 2683, 333, '109.39730446463956', '24.322789027675494', '114.0', '15.0', '2020-09-05 21:16:43');
+INSERT INTO `t_order_position` VALUES (14927, 2, 2683, 333, '109.3966872664131', '24.322788766883384', '112.0', '15.0', '2020-09-05 21:16:48');
+INSERT INTO `t_order_position` VALUES (14928, 2, 2683, 333, '109.39608673242509', '24.32278849809265', '114.0', '15.0', '2020-09-05 21:16:52');
+INSERT INTO `t_order_position` VALUES (14929, 2, 2683, 333, '109.39550286413333', '24.32278822261064', '112.0', '15.0', '2020-09-05 21:16:57');
+INSERT INTO `t_order_position` VALUES (14930, 2, 2683, 333, '109.39483556710535', '24.322787890772048', '112.0', '15.0', '2020-09-05 21:17:02');
+INSERT INTO `t_order_position` VALUES (14931, 2, 2683, 333, '109.39403478410497', '24.322787468770553', '114.0', '15.0', '2020-09-05 21:17:07');
+INSERT INTO `t_order_position` VALUES (14932, 2, 2683, 333, '109.39318392062984', '24.322786992150597', '112.0', '15.0', '2020-09-05 21:17:12');
+INSERT INTO `t_order_position` VALUES (14933, 2, 2683, 333, '109.39238307946661', '24.322803179014905', '112.0', '15.0', '2020-09-05 21:17:18');
+INSERT INTO `t_order_position` VALUES (14934, 2, 2683, 333, '109.3916990033735', '24.322786091390796', '114.0', '15.0', '2020-09-05 21:17:23');
+INSERT INTO `t_order_position` VALUES (14935, 2, 2683, 333, '109.39113170598561', '24.32278572433841', '114.0', '15.0', '2020-09-05 21:17:28');
+INSERT INTO `t_order_position` VALUES (14936, 2, 2683, 333, '109.39051433601381', '24.32276864879326', '154.0', '15.0', '2020-09-05 21:19:13');
+INSERT INTO `t_order_position` VALUES (14937, 2, 2683, 333, '109.39006377983314', '24.322201835609352', '132.0', '15.0', '2020-09-05 21:19:28');
+INSERT INTO `t_order_position` VALUES (14938, 2, 2683, 333, '109.3897133318546', '24.32160176279819', '136.0', '15.0', '2020-09-05 21:19:38');
+INSERT INTO `t_order_position` VALUES (14939, 2, 2683, 333, '109.38929613268557', '24.321018298770163', '140.0', '15.0', '2020-09-05 21:19:48');
+INSERT INTO `t_order_position` VALUES (14940, 2, 2683, 333, '109.38881218366724', '24.320534749310273', '142.0', '15.0', '2020-09-05 21:19:58');
+INSERT INTO `t_order_position` VALUES (14941, 2, 2683, 333, '109.38806121739064', '24.31993435275964', '140.0', '15.0', '2020-09-05 21:20:09');
+INSERT INTO `t_order_position` VALUES (14942, 2, 2683, 333, '109.38767737942385', '24.31960081643455', '146.0', '15.0', '2020-09-05 21:20:14');
+INSERT INTO `t_order_position` VALUES (14943, 2, 2683, 333, '109.38724347171683', '24.3192838961072', '144.0', '15.0', '2020-09-05 21:20:19');
+INSERT INTO `t_order_position` VALUES (14944, 2, 2683, 333, '109.38659259103288', '24.318733524602518', '144.0', '15.0', '2020-09-05 21:20:29');
+INSERT INTO `t_order_position` VALUES (14945, 2, 2683, 333, '109.38619204064337', '24.31839995344938', '146.0', '15.0', '2020-09-05 21:20:39');
+INSERT INTO `t_order_position` VALUES (14946, 2, 2683, 333, '109.38572472382644', '24.3180163336604', '146.0', '15.0', '2020-09-05 21:20:49');
+INSERT INTO `t_order_position` VALUES (14947, 2, 2683, 333, '109.38519063972092', '24.31763264716725', '164.0', '15.0', '2020-09-05 21:21:29');
+INSERT INTO `t_order_position` VALUES (14948, 2, 2683, 333, '109.38452305904725', '24.317848653011538', '132.0', '15.0', '2020-09-05 21:21:44');
+INSERT INTO `t_order_position` VALUES (14949, 2, 2683, 333, '109.3839556129944', '24.318231353468146', '134.0', '15.0', '2020-09-05 21:21:49');
+INSERT INTO `t_order_position` VALUES (14950, 2, 2683, 333, '109.38335476847796', '24.318547363799606', '134.0', '15.0', '2020-09-05 21:21:54');
+INSERT INTO `t_order_position` VALUES (14951, 2, 2683, 333, '109.38282067350438', '24.318846764264467', '132.0', '15.0', '2020-09-05 21:21:59');
+INSERT INTO `t_order_position` VALUES (14952, 2, 2683, 333, '109.38233663795988', '24.31907955695688', '134.0', '15.0', '2020-09-05 21:22:04');
+INSERT INTO `t_order_position` VALUES (14953, 2, 2683, 333, '109.38190267159871', '24.319362376917113', '130.0', '15.0', '2020-09-05 21:22:09');
+INSERT INTO `t_order_position` VALUES (14954, 2, 2683, 333, '109.38105140733533', '24.31989469103814', '130.0', '15.0', '2020-09-05 21:22:19');
+INSERT INTO `t_order_position` VALUES (14955, 2, 2683, 333, '109.38030027820464', '24.32052705704474', '140.0', '15.0', '2020-09-05 21:22:29');
+INSERT INTO `t_order_position` VALUES (14956, 2, 2683, 333, '109.37994974809048', '24.320893245082903', '140.0', '15.0', '2020-09-05 21:22:34');
+INSERT INTO `t_order_position` VALUES (14957, 2, 2683, 333, '109.3795491364234', '24.321309360500056', '140.0', '15.0', '2020-09-05 21:22:40');
+INSERT INTO `t_order_position` VALUES (14958, 2, 2683, 333, '109.37923198437498', '24.32169223813428', '142.0', '15.0', '2020-09-05 21:22:45');
+INSERT INTO `t_order_position` VALUES (14959, 2, 2683, 333, '109.37874790090456', '24.32224154656788', '142.0', '15.0', '2020-09-05 21:22:55');
+INSERT INTO `t_order_position` VALUES (14960, 2, 2683, 333, '109.37936551832864', '24.321459118033562', '92.0', '15.0', '2020-09-05 21:23:15');
+INSERT INTO `t_order_position` VALUES (14961, 2, 2683, 333, '109.37978282493957', '24.321026361120612', '92.0', '15.0', '2020-09-05 21:23:20');
+INSERT INTO `t_order_position` VALUES (14962, 2, 2683, 333, '109.38020012498855', '24.32059359850244', '92.0', '15.0', '2020-09-05 21:23:25');
+INSERT INTO `t_order_position` VALUES (14963, 2, 2683, 333, '109.38063410909562', '24.320127523965006', '84.0', '15.0', '2020-09-05 21:23:30');
+INSERT INTO `t_order_position` VALUES (14964, 2, 2683, 333, '109.38111817076472', '24.31979478889929', '80.0', '15.0', '2020-09-05 21:23:35');
+INSERT INTO `t_order_position` VALUES (14965, 2, 2683, 333, '109.38155215131408', '24.31952864242004', '78.0', '15.0', '2020-09-05 21:23:40');
+INSERT INTO `t_order_position` VALUES (14966, 2, 2683, 333, '109.38228656533123', '24.31911283119885', '76.0', '15.0', '2020-09-05 21:23:55');
+INSERT INTO `t_order_position` VALUES (14967, 2, 2683, 333, '109.3830209572693', '24.31868033949997', '82.0', '15.0', '2020-09-05 21:24:05');
+INSERT INTO `t_order_position` VALUES (14968, 2, 2683, 333, '109.3836051151937', '24.318297673519556', '78.0', '15.0', '2020-09-05 21:24:15');
+INSERT INTO `t_order_position` VALUES (14969, 2, 2683, 333, '109.38427271079435', '24.31791507201851', '80.0', '15.0', '2020-09-05 21:24:25');
+INSERT INTO `t_order_position` VALUES (14970, 2, 2683, 333, '109.38484015350133', '24.317599012211915', '74.0', '15.0', '2020-09-05 21:25:06');
+INSERT INTO `t_order_position` VALUES (14971, 2, 2683, 333, '109.38557450258658', '24.3177162919357', '28.0', '15.0', '2020-09-05 21:25:21');
+INSERT INTO `t_order_position` VALUES (14972, 2, 2683, 333, '109.38615865691233', '24.318299954593115', '32.0', '15.0', '2020-09-05 21:25:31');
+INSERT INTO `t_order_position` VALUES (14973, 2, 2683, 333, '109.38672609886434', '24.31871697341792', '30.0', '15.0', '2020-09-05 21:25:41');
+INSERT INTO `t_order_position` VALUES (14974, 2, 2683, 333, '109.38727684124505', '24.31916729054906', '30.0', '15.0', '2020-09-05 21:25:51');
+INSERT INTO `t_order_position` VALUES (14975, 2, 2683, 333, '109.3877608167844', '24.319567558682692', '34.0', '15.0', '2020-09-05 21:26:01');
+INSERT INTO `t_order_position` VALUES (14976, 2, 2683, 333, '109.38814465438003', '24.31991775558167', '30.0', '15.0', '2020-09-05 21:26:06');
+INSERT INTO `t_order_position` VALUES (14977, 2, 2683, 333, '109.38874542836375', '24.320418066760084', '34.0', '15.0', '2020-09-05 21:26:16');
+INSERT INTO `t_order_position` VALUES (14978, 2, 2683, 333, '109.38942962921595', '24.321068381160735', '22.0', '15.0', '2020-09-05 21:26:26');
+INSERT INTO `t_order_position` VALUES (14979, 2, 2683, 333, '109.38988020161113', '24.321701852110525', '22.0', '15.0', '2020-09-05 21:26:36');
+INSERT INTO `t_order_position` VALUES (14980, 2, 2683, 333, '109.39026401626819', '24.3222519603646', '24.0', '15.0', '2020-09-05 21:26:46');
+INSERT INTO `t_order_position` VALUES (14981, 2, 2683, 333, '109.39058107549586', '24.322702046934285', '50.0', '15.0', '2020-09-05 21:27:01');
+INSERT INTO `t_order_position` VALUES (14982, 2, 2683, 333, '109.39133192824546', '24.322752531674563', '58.0', '15.0', '2020-09-05 21:27:12');
+INSERT INTO `t_order_position` VALUES (14983, 2, 2683, 333, '109.3922662846807', '24.32275312214805', '58.0', '15.0', '2020-09-05 21:27:22');
+INSERT INTO `t_order_position` VALUES (14984, 2, 2683, 333, '109.3932673361353', '24.322720392857374', '58.0', '15.0', '2020-09-05 21:27:32');
+INSERT INTO `t_order_position` VALUES (14985, 2, 2683, 333, '109.39381789747864', '24.3227373645578', '60.0', '15.0', '2020-09-05 21:27:37');
+INSERT INTO `t_order_position` VALUES (14986, 2, 2683, 333, '109.39451859004379', '24.322721079523646', '58.0', '15.0', '2020-09-05 21:27:42');
+INSERT INTO `t_order_position` VALUES (14987, 2, 2683, 333, '109.39505243791882', '24.322738015126806', '58.0', '15.0', '2020-09-05 21:27:47');
+INSERT INTO `t_order_position` VALUES (14988, 2, 2683, 333, '109.39561963609948', '24.32273829334429', '58.0', '15.0', '2020-09-05 21:27:52');
+INSERT INTO `t_order_position` VALUES (14989, 2, 2683, 333, '109.39625354516501', '24.32272192694016', '60.0', '15.0', '2020-09-05 21:27:58');
+INSERT INTO `t_order_position` VALUES (14990, 2, 2683, 333, '109.3969875223081', '24.32270558659251', '58.0', '15.0', '2020-09-05 21:28:02');
+INSERT INTO `t_order_position` VALUES (14991, 2, 2683, 333, '109.39777151894911', '24.32273922908766', '60.0', '15.0', '2020-09-05 21:28:07');
+INSERT INTO `t_order_position` VALUES (14992, 2, 2683, 333, '109.3986555638955', '24.322739558021812', '58.0', '15.0', '2020-09-05 21:28:12');
+INSERT INTO `t_order_position` VALUES (14993, 2, 2683, 333, '109.39947285605115', '24.32273983307872', '60.0', '15.0', '2020-09-05 21:28:17');
+INSERT INTO `t_order_position` VALUES (14994, 2, 2683, 333, '109.4003401532079', '24.322756756082732', '60.0', '15.0', '2020-09-05 21:28:22');
+INSERT INTO `t_order_position` VALUES (14995, 2, 2683, 333, '109.4011740583692', '24.322756977213434', '58.0', '15.0', '2020-09-05 21:28:27');
+INSERT INTO `t_order_position` VALUES (14996, 2, 2683, 333, '109.40212467097453', '24.322773855038474', '60.0', '15.0', '2020-09-05 21:28:32');
+INSERT INTO `t_order_position` VALUES (14997, 2, 2683, 333, '109.40284176855629', '24.3227406687576', '60.0', '15.0', '2020-09-05 21:28:37');
+INSERT INTO `t_order_position` VALUES (14998, 2, 2683, 333, '109.40335873298801', '24.322757415911692', '60.0', '15.0', '2020-09-05 21:28:42');
+INSERT INTO `t_order_position` VALUES (14999, 2, 2683, 333, '109.40400908810891', '24.32275750689253', '66.0', '15.0', '2020-09-05 21:29:12');
+INSERT INTO `t_order_position` VALUES (15000, 2, 2683, 333, '109.40454268583385', '24.3225576259911', '80.0', '15.0', '2020-09-05 21:29:22');
+INSERT INTO `t_order_position` VALUES (15001, 2, 2683, 333, '109.40509292581764', '24.322041159543375', '82.0', '15.0', '2020-09-05 21:29:32');
+INSERT INTO `t_order_position` VALUES (15002, 2, 2683, 333, '109.40554311257502', '24.321641307091937', '86.0', '14.0', '2020-09-05 21:29:42');
+INSERT INTO `t_order_position` VALUES (15003, 2, 2683, 333, '109.40594327259102', '24.321324752922344', '80.0', '15.0', '2020-09-05 21:29:53');
+INSERT INTO `t_order_position` VALUES (15004, 2, 2683, 333, '109.40661018239973', '24.32069162252567', '86.0', '15.0', '2020-09-05 21:30:03');
+INSERT INTO `t_order_position` VALUES (15005, 2, 2683, 333, '109.40696030032115', '24.320341726505735', '84.0', '15.0', '2020-09-05 21:30:08');
+INSERT INTO `t_order_position` VALUES (15006, 2, 2683, 333, '109.40741044311403', '24.31989185242302', '80.0', '15.0', '2020-09-05 21:30:18');
+INSERT INTO `t_order_position` VALUES (15007, 2, 2683, 333, '109.40819403752792', '24.319725203316175', '58.0', '15.0', '2020-09-05 21:30:33');
+INSERT INTO `t_order_position` VALUES (15008, 2, 2683, 333, '109.40874421064842', '24.319741826983446', '52.0', '15.0', '2020-09-05 21:31:03');
+INSERT INTO `t_order_position` VALUES (15009, 2, 2683, 333, '109.40922770938283', '24.32019165074372', '166.0', '15.0', '2020-09-05 21:31:18');
+INSERT INTO `t_order_position` VALUES (15010, 2, 2683, 333, '109.40917773178238', '24.320808142287834', '2.0', '15.0', '2020-09-05 21:31:43');
+INSERT INTO `t_order_position` VALUES (15011, 2, 2683, 333, '109.40912774720228', '24.32130800136414', '2.0', '15.0', '2020-09-05 21:31:53');
+INSERT INTO `t_order_position` VALUES (15012, 2, 2683, 333, '109.40887770589539', '24.321824540696177', '162.0', '15.0', '2020-09-05 21:34:09');
+INSERT INTO `t_order_position` VALUES (15013, 2, 2683, 333, '109.40904439326042', '24.32135799483459', '110.0', '15.0', '2020-09-05 21:34:34');
+INSERT INTO `t_order_position` VALUES (15014, 2, 2683, 333, '109.4091277227162', '24.320891456268548', '114.0', '15.0', '2020-09-05 21:34:39');
+INSERT INTO `t_order_position` VALUES (15015, 2, 2683, 333, '109.40917770827578', '24.320408259148042', '0.0', '15.0', '2020-09-05 21:34:49');
+INSERT INTO `t_order_position` VALUES (15016, 2, 2683, 333, '109.40916100954412', '24.319941730645912', '92.0', '15.0', '2020-09-05 21:35:04');
+INSERT INTO `t_order_position` VALUES (15017, 2, 2683, 333, '109.40972781649502', '24.319775049023242', '58.0', '15.0', '2020-09-05 21:35:15');
+INSERT INTO `t_order_position` VALUES (15018, 2, 2683, 333, '109.41022793963468', '24.319841628085484', '58.0', '15.0', '2020-09-05 21:35:20');
+INSERT INTO `t_order_position` VALUES (15019, 2, 2683, 333, '109.41077805450114', '24.31980821677041', '60.0', '15.0', '2020-09-05 21:35:25');
+INSERT INTO `t_order_position` VALUES (15020, 2, 2683, 333, '109.41132815532218', '24.31979145376421', '54.0', '15.0', '2020-09-05 21:35:35');
+INSERT INTO `t_order_position` VALUES (15021, 2, 2683, 333, '109.41206160587434', '24.319874606738864', '58.0', '15.0', '2020-09-05 21:35:45');
+INSERT INTO `t_order_position` VALUES (15022, 2, 2683, 333, '109.41261167056821', '24.319841150411953', '62.0', '15.0', '2020-09-05 21:35:55');
+INSERT INTO `t_order_position` VALUES (15023, 2, 2683, 333, '109.41322840184816', '24.319974279769138', '50.0', '15.0', '2020-09-05 21:36:05');
+INSERT INTO `t_order_position` VALUES (15024, 2, 2683, 333, '109.41386178448408', '24.320157372306515', '30.0', '15.0', '2020-09-05 21:36:15');
+INSERT INTO `t_order_position` VALUES (15025, 2, 2683, 333, '109.4145784842513', '24.320390403906018', '36.0', '15.0', '2020-09-05 21:36:30');
+INSERT INTO `t_order_position` VALUES (15026, 2, 2683, 333, '109.41507850016923', '24.320690139661945', '36.0', '15.0', '2020-09-05 21:36:40');
+INSERT INTO `t_order_position` VALUES (15027, 2, 2683, 333, '109.41552850553933', '24.320989883528604', '46.0', '15.0', '2020-09-05 21:36:50');
+INSERT INTO `t_order_position` VALUES (15028, 2, 2683, 333, '109.4163618001025', '24.321172827174067', '54.0', '15.0', '2020-09-05 21:37:15');
+INSERT INTO `t_order_position` VALUES (15029, 2, 2683, 333, '109.41699507147301', '24.32115588893124', '0.0', '15.0', '2020-09-05 21:37:35');
+INSERT INTO `t_order_position` VALUES (15030, 2, 2683, 333, '109.41801160591744', '24.321288701789666', '52.0', '15.0', '2020-09-05 21:37:50');
+INSERT INTO `t_order_position` VALUES (15031, 2, 2683, 333, '109.41874481280668', '24.321404958109838', '54.0', '15.0', '2020-09-05 21:37:56');
+INSERT INTO `t_order_position` VALUES (15032, 2, 2683, 333, '109.41974458938304', '24.32143772942512', '54.0', '15.0', '2020-09-05 21:38:01');
+INSERT INTO `t_order_position` VALUES (15033, 2, 2683, 333, '109.42062768470751', '24.32148718943094', '54.0', '15.0', '2020-09-05 21:38:11');
+INSERT INTO `t_order_position` VALUES (15034, 2, 2683, 333, '109.42154406374205', '24.32155325418104', '54.0', '15.0', '2020-09-05 21:38:16');
+INSERT INTO `t_order_position` VALUES (15035, 2, 2683, 333, '109.4279575391337', '24.322064633782027', '56.0', '15.0', '2020-09-05 21:38:54');
+INSERT INTO `t_order_position` VALUES (15036, 2, 2683, 333, '109.42882361398749', '24.322080460417663', '56.0', '15.0', '2020-09-05 21:38:59');
+INSERT INTO `t_order_position` VALUES (15037, 2, 2683, 333, '109.42948980125078', '24.322113118857114', '56.0', '15.0', '2020-09-05 21:39:04');
+INSERT INTO `t_order_position` VALUES (15038, 2, 2683, 333, '109.4300060826595', '24.322162575208765', '54.0', '15.0', '2020-09-05 21:39:09');
+INSERT INTO `t_order_position` VALUES (15039, 2, 2683, 333, '109.43073884725126', '24.322245113010815', '52.0', '15.0', '2020-09-05 21:39:19');
+INSERT INTO `t_order_position` VALUES (15040, 2, 2683, 333, '109.43152154344791', '24.322327571976693', '56.0', '15.0', '2020-09-05 21:39:29');
+INSERT INTO `t_order_position` VALUES (15041, 2, 2683, 333, '109.43253733677699', '24.32240973741466', '56.0', '15.0', '2020-09-05 21:39:39');
+INSERT INTO `t_order_position` VALUES (15042, 2, 2683, 333, '109.43310349392564', '24.322442403911605', '54.0', '15.0', '2020-09-05 21:39:44');
+INSERT INTO `t_order_position` VALUES (15043, 2, 2683, 333, '109.43376954563938', '24.322558245568867', '54.0', '15.0', '2020-09-05 21:39:50');
+INSERT INTO `t_order_position` VALUES (15044, 2, 2683, 333, '109.43441892149268', '24.322607441053997', '58.0', '15.0', '2020-09-05 21:39:55');
+INSERT INTO `t_order_position` VALUES (15045, 2, 2683, 333, '109.43500167363067', '24.32259005463026', '56.0', '15.0', '2020-09-05 21:40:00');
+INSERT INTO `t_order_position` VALUES (15046, 2, 2683, 333, '109.43555111442893', '24.322639343398574', '54.0', '15.0', '2020-09-05 21:40:05');
+INSERT INTO `t_order_position` VALUES (15047, 2, 2683, 333, '109.4361671373895', '24.3227051940037', '54.0', '15.0', '2020-09-05 21:40:10');
+INSERT INTO `t_order_position` VALUES (15048, 2, 2683, 333, '109.43674984129008', '24.322704425304817', '56.0', '15.0', '2020-09-05 21:40:15');
+INSERT INTO `t_order_position` VALUES (15049, 2, 2683, 333, '109.43733253182673', '24.32275362748081', '56.0', '15.0', '2020-09-05 21:40:20');
+INSERT INTO `t_order_position` VALUES (15050, 2, 2683, 333, '109.43794850113943', '24.322802769080738', '54.0', '13.0', '2020-09-05 21:40:25');
+INSERT INTO `t_order_position` VALUES (15051, 2, 2683, 333, '109.43861439529037', '24.322885147698507', '54.0', '15.0', '2020-09-05 21:40:30');
+INSERT INTO `t_order_position` VALUES (15052, 2, 2683, 333, '109.43921367861208', '24.322900955947684', '58.0', '15.0', '2020-09-05 21:40:35');
+INSERT INTO `t_order_position` VALUES (15053, 2, 2683, 333, '109.43991281989828', '24.322899940898726', '40.0', '15.0', '2020-09-05 21:41:20');
+INSERT INTO `t_order_position` VALUES (15054, 2, 2683, 333, '109.44029569962161', '24.323349245727847', '0.0', '15.0', '2020-09-05 21:41:30');
+INSERT INTO `t_order_position` VALUES (15055, 2, 2683, 333, '109.44027910185746', '24.324165700493637', '166.0', '15.0', '2020-09-05 21:41:40');
+INSERT INTO `t_order_position` VALUES (15056, 2, 2683, 333, '109.44026250505816', '24.32499881762202', '164.0', '15.0', '2020-09-05 21:41:50');
+INSERT INTO `t_order_position` VALUES (15057, 2, 2683, 333, '109.44017932930757', '24.325898681237582', '166.0', '14.0', '2020-09-05 21:42:01');
+INSERT INTO `t_order_position` VALUES (15058, 2, 2683, 333, '109.44019600533765', '24.326415174595702', '164.0', '14.0', '2020-09-05 21:42:05');
+INSERT INTO `t_order_position` VALUES (15059, 2, 2683, 333, '109.44017939088225', '24.326948379254368', '164.0', '15.0', '2020-09-05 21:42:10');
+INSERT INTO `t_order_position` VALUES (15060, 2, 2683, 333, '109.44014612870203', '24.327448284933098', '0.0', '15.0', '2020-09-05 21:42:15');
+INSERT INTO `t_order_position` VALUES (15061, 2, 2683, 333, '109.4401461580237', '24.327948141631705', '0.0', '15.0', '2020-09-05 21:42:25');
+INSERT INTO `t_order_position` VALUES (15062, 2, 2683, 333, '109.4401461941872', '24.32856463183073', '164.0', '15.0', '2020-09-05 21:43:06');
+INSERT INTO `t_order_position` VALUES (15063, 2, 2683, 333, '109.44016287610786', '24.329181097746787', '0.0', '15.0', '2020-09-05 21:43:26');
+INSERT INTO `t_order_position` VALUES (15064, 2, 2683, 333, '109.44016290347496', '24.329647631296268', '0.0', '13.0', '2020-09-05 21:43:56');
+INSERT INTO `t_order_position` VALUES (15065, 2, 2683, 333, '109.44016294354832', '24.33033077001822', '36.0', '15.0', '2020-09-05 21:45:17');
+INSERT INTO `t_order_position` VALUES (15066, 2, 2683, 333, '109.44072890229941', '24.330513208478262', '60.0', '15.0', '2020-09-05 21:45:27');
+INSERT INTO `t_order_position` VALUES (15067, 2, 2683, 333, '109.44157779818687', '24.33054524312225', '58.0', '15.0', '2020-09-05 21:45:37');
+INSERT INTO `t_order_position` VALUES (15068, 2, 2683, 333, '109.44245994757519', '24.330560533524796', '64.0', '15.0', '2020-09-05 21:45:47');
+INSERT INTO `t_order_position` VALUES (15069, 2, 2683, 333, '109.44304247186943', '24.33044297667765', '60.0', '15.0', '2020-09-05 21:45:57');
+INSERT INTO `t_order_position` VALUES (15070, 2, 2683, 333, '109.44354176795304', '24.33037552642035', '64.0', '15.0', '2020-09-05 21:46:47');
+INSERT INTO `t_order_position` VALUES (15071, 2, 2683, 333, '109.44404105263351', '24.330308065963216', '66.0', '15.0', '2020-09-05 21:46:57');
+INSERT INTO `t_order_position` VALUES (15072, 2, 2683, 333, '109.44454032205357', '24.330173947659112', '64.0', '14.0', '2020-09-05 21:47:02');
+INSERT INTO `t_order_position` VALUES (15073, 2, 2683, 333, '109.4451893538465', '24.329972919701266', '82.0', '15.0', '2020-09-05 21:47:07');
+INSERT INTO `t_order_position` VALUES (15074, 2, 2683, 333, '109.44565530060433', '24.32960556812881', '94.0', '15.0', '2020-09-05 21:47:12');
+INSERT INTO `t_order_position` VALUES (15075, 2, 2683, 333, '109.44598810175485', '24.329138465404107', '102.0', '15.0', '2020-09-05 21:47:17');
+INSERT INTO `t_order_position` VALUES (15076, 2, 2683, 333, '109.4462044093019', '24.328654897785505', '110.0', '15.0', '2020-09-05 21:47:22');
+INSERT INTO `t_order_position` VALUES (15077, 2, 2683, 333, '109.4462709425218', '24.328121602067313', '114.0', '15.0', '2020-09-05 21:47:27');
+INSERT INTO `t_order_position` VALUES (15078, 2, 2683, 333, '109.44625426335274', '24.327471817055837', '112.0', '15.0', '2020-09-05 21:47:32');
+INSERT INTO `t_order_position` VALUES (15079, 2, 2683, 333, '109.44623758905229', '24.326905341761044', '114.0', '15.0', '2020-09-05 21:47:37');
+INSERT INTO `t_order_position` VALUES (15080, 2, 2683, 333, '109.44622092059669', '24.32643883794491', '112.0', '15.0', '2020-09-05 21:47:42');
+INSERT INTO `t_order_position` VALUES (15081, 2, 2683, 333, '109.44622087178564', '24.325605744535306', '114.0', '15.0', '2020-09-05 21:47:52');
+INSERT INTO `t_order_position` VALUES (15082, 2, 2683, 333, '109.44625410520601', '24.32477259419596', '110.0', '15.0', '2020-09-05 21:48:03');
+INSERT INTO `t_order_position` VALUES (15083, 2, 2683, 333, '109.4462707013978', '24.324006120484327', '112.0', '15.0', '2020-09-05 21:48:13');
+INSERT INTO `t_order_position` VALUES (15084, 2, 2683, 333, '109.44663676727231', '24.32340565895652', '54.0', '15.0', '2020-09-05 21:50:19');
+INSERT INTO `t_order_position` VALUES (15085, 2, 2683, 333, '109.44715263360766', '24.323521387482486', '56.0', '15.0', '2020-09-05 21:50:24');
+INSERT INTO `t_order_position` VALUES (15086, 2, 2683, 333, '109.44781824138201', '24.323520205073216', '58.0', '15.0', '2020-09-05 21:50:29');
+INSERT INTO `t_order_position` VALUES (15087, 2, 2683, 333, '109.44843391123428', '24.323519095846194', '86.0', '15.0', '2020-09-05 21:50:39');
+INSERT INTO `t_order_position` VALUES (15088, 2, 2683, 333, '109.44868346044467', '24.32280218320458', '114.0', '15.0', '2020-09-05 21:50:55');
+INSERT INTO `t_order_position` VALUES (15089, 2, 2683, 333, '109.44879988758704', '24.32198554131618', '122.0', '15.0', '2020-09-05 21:51:04');
+INSERT INTO `t_order_position` VALUES (15090, 2, 2683, 333, '109.44874991811442', '24.321102556580307', '114.0', '15.0', '2020-09-05 21:51:15');
+INSERT INTO `t_order_position` VALUES (15091, 2, 2683, 333, '109.44869997194805', '24.320619455446494', '112.0', '15.0', '2020-09-05 21:51:20');
+INSERT INTO `t_order_position` VALUES (15092, 2, 2683, 333, '109.44879975392568', '24.319702874561845', '112.0', '15.0', '2020-09-05 21:51:30');
+INSERT INTO `t_order_position` VALUES (15093, 2, 2683, 333, '109.44883299822891', '24.31911965131262', '114.0', '15.0', '2020-09-05 21:51:35');
+INSERT INTO `t_order_position` VALUES (15094, 2, 2683, 333, '109.44883296798494', '24.31860313626785', '112.0', '15.0', '2020-09-05 21:51:40');
+INSERT INTO `t_order_position` VALUES (15095, 2, 2683, 333, '109.44881628388771', '24.317836725399378', '124.0', '15.0', '2020-09-05 21:51:50');
+INSERT INTO `t_order_position` VALUES (15096, 2, 2683, 333, '109.44838364336678', '24.317554262939897', '112.0', '15.0', '2020-09-05 21:52:05');
+INSERT INTO `t_order_position` VALUES (15097, 2, 2683, 333, '109.44765148799947', '24.31748893188315', '108.0', '15.0', '2020-09-05 21:52:15');
+INSERT INTO `t_order_position` VALUES (15098, 2, 2683, 333, '109.44688602973446', '24.3174569616021', '114.0', '15.0', '2020-09-05 21:52:25');
+INSERT INTO `t_order_position` VALUES (15099, 2, 2683, 333, '109.4462370365257', '24.317474752468794', '164.0', '15.0', '2020-09-05 21:52:35');
+INSERT INTO `t_order_position` VALUES (15100, 2, 2683, 333, '109.44560465048677', '24.317225910109173', '160.0', '15.0', '2020-09-05 21:52:46');
+INSERT INTO `t_order_position` VALUES (15101, 2, 2683, 333, '109.44487239193097', '24.316943895375832', '158.0', '15.0', '2020-09-05 21:52:56');
+INSERT INTO `t_order_position` VALUES (15102, 2, 2683, 333, '109.44407353826523', '24.31666196824447', '104.0', '14.0', '2020-09-05 21:53:06');
+INSERT INTO `t_order_position` VALUES (15103, 2, 2683, 333, '109.44352431214907', '24.316512906748205', '118.0', '15.0', '2020-09-05 21:53:26');
+INSERT INTO `t_order_position` VALUES (15104, 2, 2683, 333, '109.44349099455277', '24.31597978480042', '128.0', '14.0', '2020-09-05 21:53:52');
+INSERT INTO `t_order_position` VALUES (15105, 2, 2683, 333, '109.44345768081234', '24.315513309953733', '124.0', '13.0', '2020-09-05 21:54:02');
+INSERT INTO `t_order_position` VALUES (15106, 2, 2683, 333, '109.44354085470059', '24.314796721171565', '118.0', '15.0', '2020-09-05 21:54:17');
+INSERT INTO `t_order_position` VALUES (15107, 2, 2683, 333, '109.44352417638743', '24.314196926173135', '112.0', '15.0', '2020-09-05 21:54:27');
+INSERT INTO `t_order_position` VALUES (15108, 2, 2683, 333, '109.44360736369786', '24.313713601800195', '0.0', '15.0', '2020-09-05 21:54:37');
+INSERT INTO `t_order_position` VALUES (15109, 2, 2683, 333, '109.44350746485391', '24.31303063347073', '114.0', '15.0', '2020-09-05 21:55:22');
+INSERT INTO `t_order_position` VALUES (15110, 2, 2683, 333, '109.44357406771522', '24.31354703862369', '2.0', '14.0', '2020-09-05 21:55:53');
+INSERT INTO `t_order_position` VALUES (15111, 2, 2683, 333, '109.44355745779563', '24.31411356375111', '0.0', '15.0', '2020-09-05 21:56:03');
+INSERT INTO `t_order_position` VALUES (15112, 2, 2683, 333, '109.4435741380366', '24.314746682134494', '2.0', '15.0', '2020-09-05 21:56:13');
+INSERT INTO `t_order_position` VALUES (15113, 2, 2683, 333, '109.44352424377966', '24.315346585084082', '166.0', '14.0', '2020-09-05 21:56:23');
+INSERT INTO `t_order_position` VALUES (15114, 2, 2683, 333, '109.44342441976393', '24.315946568785343', '6.0', '14.0', '2020-09-05 21:56:33');
+INSERT INTO `t_order_position` VALUES (15115, 2, 2683, 333, '109.44337452418996', '24.316529810231916', '132.0', '15.0', '2020-09-05 21:56:43');
+INSERT INTO `t_order_position` VALUES (15116, 2, 2683, 333, '109.44289187470017', '24.316713862119514', '112.0', '13.0', '2020-09-05 21:56:53');
+INSERT INTO `t_order_position` VALUES (15117, 2, 2683, 333, '109.44195980492754', '24.316615356524196', '112.0', '12.0', '2020-09-05 21:57:03');
+INSERT INTO `t_order_position` VALUES (15118, 2, 2683, 333, '109.44136059681712', '24.316566293990984', '112.0', '11.0', '2020-09-05 21:57:08');
+INSERT INTO `t_order_position` VALUES (15119, 2, 2683, 333, '109.4405949263109', '24.316650759956463', '140.0', '15.0', '2020-09-05 21:57:18');
+INSERT INTO `t_order_position` VALUES (15120, 2, 2683, 333, '109.44047844815653', '24.317334065719148', '160.0', '15.0', '2020-09-05 21:57:34');
+INSERT INTO `t_order_position` VALUES (15121, 2, 2683, 333, '109.4404452108697', '24.31825051221039', '166.0', '15.0', '2020-09-05 21:57:44');
+INSERT INTO `t_order_position` VALUES (15122, 2, 2683, 333, '109.44039531037677', '24.31886707206367', '166.0', '15.0', '2020-09-05 21:57:49');
+INSERT INTO `t_order_position` VALUES (15123, 2, 2683, 333, '109.44036205341578', '24.319450283816177', '162.0', '15.0', '2020-09-05 21:57:54');
+INSERT INTO `t_order_position` VALUES (15124, 2, 2683, 333, '109.44034543908698', '24.319983485703244', '162.0', '15.0', '2020-09-05 21:58:04');
+INSERT INTO `t_order_position` VALUES (15125, 2, 2683, 333, '109.44032882279083', '24.320483364205067', '166.0', '15.0', '2020-09-05 21:58:09');
+INSERT INTO `t_order_position` VALUES (15126, 2, 2683, 333, '109.44031222798306', '24.321349802599613', '0.0', '14.0', '2020-09-05 21:58:19');
+INSERT INTO `t_order_position` VALUES (15127, 2, 2683, 333, '109.44027897871266', '24.322066309880476', '164.0', '13.0', '2020-09-05 21:58:29');
+INSERT INTO `t_order_position` VALUES (15128, 2, 2683, 333, '109.44024573720966', '24.322916112127324', '166.0', '15.0', '2020-09-05 21:58:39');
+INSERT INTO `t_order_position` VALUES (15129, 2, 2683, 333, '109.4402457841223', '24.323715880104086', '166.0', '15.0', '2020-09-05 21:58:49');
+INSERT INTO `t_order_position` VALUES (15130, 2, 2683, 333, '109.44022918241029', '24.324465687675303', '4.0', '15.0', '2020-09-05 21:58:59');
+INSERT INTO `t_order_position` VALUES (15131, 2, 2683, 333, '109.44024587012937', '24.3251821226892', '0.0', '15.0', '2020-09-05 21:59:10');
+INSERT INTO `t_order_position` VALUES (15132, 2, 2683, 333, '109.44029585892902', '24.326065127428325', '0.0', '15.0', '2020-09-05 21:59:20');
+INSERT INTO `t_order_position` VALUES (15133, 2, 2683, 333, '109.44026260083925', '24.326631680426086', '164.0', '15.0', '2020-09-05 21:59:25');
+INSERT INTO `t_order_position` VALUES (15134, 2, 2683, 333, '109.44019604931954', '24.327164959108906', '0.0', '15.0', '2020-09-05 21:59:30');
+INSERT INTO `t_order_position` VALUES (15135, 2, 2683, 333, '109.44016278716536', '24.32766486489598', '166.0', '15.0', '2020-09-05 21:59:35');
+INSERT INTO `t_order_position` VALUES (15136, 2, 2683, 333, '109.44014617072978', '24.328164746262132', '166.0', '15.0', '2020-09-05 21:59:40');
+INSERT INTO `t_order_position` VALUES (15137, 2, 2683, 333, '109.4401628438539', '24.328631254855345', '0.0', '15.0', '2020-09-05 21:59:45');
+INSERT INTO `t_order_position` VALUES (15138, 2, 2683, 333, '109.44011293782033', '24.329164509549702', '0.0', '15.0', '2020-09-05 22:00:05');
+INSERT INTO `t_order_position` VALUES (15139, 2, 2683, 333, '109.4401462684694', '24.329830936962978', '166.0', '14.0', '2020-09-05 22:00:20');
+INSERT INTO `t_order_position` VALUES (15140, 2, 2683, 333, '109.44019623600033', '24.33034738274316', '0.0', '15.0', '2020-09-05 22:00:35');
+INSERT INTO `t_order_position` VALUES (15141, 2, 2683, 333, '109.44067896436003', '24.330479959522965', '60.0', '15.0', '2020-09-05 22:00:55');
+INSERT INTO `t_order_position` VALUES (15142, 2, 2683, 333, '109.44151121850648', '24.330528683395364', '58.0', '15.0', '2020-09-05 22:01:05');
+INSERT INTO `t_order_position` VALUES (15143, 2, 2683, 333, '109.44224357488379', '24.330560872920465', '56.0', '15.0', '2020-09-05 22:01:15');
+INSERT INTO `t_order_position` VALUES (15144, 2, 2683, 333, '109.44302583224697', '24.330509650959367', '62.0', '15.0', '2020-09-05 22:01:25');
+INSERT INTO `t_order_position` VALUES (15145, 2, 2683, 333, '109.44355841011262', '24.33035883756745', '68.0', '15.0', '2020-09-05 22:01:41');
+INSERT INTO `t_order_position` VALUES (15146, 2, 2683, 333, '109.44430732742114', '24.330174332948022', '72.0', '15.0', '2020-09-05 22:01:51');
+INSERT INTO `t_order_position` VALUES (15147, 2, 2683, 333, '109.44483987222233', '24.329990167917106', '74.0', '14.0', '2020-09-05 22:01:56');
+INSERT INTO `t_order_position` VALUES (15148, 2, 2683, 333, '109.44557209368257', '24.329622371646398', '88.0', '15.0', '2020-09-05 22:02:06');
+INSERT INTO `t_order_position` VALUES (15149, 2, 2683, 333, '109.44600474207272', '24.32912177491938', '102.0', '15.0', '2020-09-05 22:02:16');
+INSERT INTO `t_order_position` VALUES (15150, 2, 2683, 333, '109.44615447606523', '24.328488364862853', '110.0', '15.0', '2020-09-05 22:02:41');
+INSERT INTO `t_order_position` VALUES (15151, 2, 2683, 333, '109.44622101236209', '24.328005055028708', '114.0', '15.0', '2020-09-05 22:02:46');
+INSERT INTO `t_order_position` VALUES (15152, 2, 2683, 333, '109.4462209840514', '24.327521860190927', '116.0', '15.0', '2020-09-05 22:02:51');
+INSERT INTO `t_order_position` VALUES (15153, 2, 2683, 333, '109.44620428727272', '24.32657216166067', '112.0', '15.0', '2020-09-05 22:03:01');
+INSERT INTO `t_order_position` VALUES (15154, 2, 2683, 333, '109.44625417451692', '24.325955586228435', '110.0', '15.0', '2020-09-05 22:03:06');
+INSERT INTO `t_order_position` VALUES (15155, 2, 2683, 333, '109.44625413546845', '24.32528911170937', '114.0', '15.0', '2020-09-05 22:03:11');
+INSERT INTO `t_order_position` VALUES (15156, 2, 2683, 333, '109.44625410813462', '24.324822579752666', '116.0', '15.0', '2020-09-05 22:03:16');
+INSERT INTO `t_order_position` VALUES (15157, 2, 2683, 333, '109.44622079856953', '24.324356105438635', '112.0', '15.0', '2020-09-05 22:03:21');
+INSERT INTO `t_order_position` VALUES (15158, 2, 2683, 333, '109.44620412912512', '24.323872940701097', '126.0', '15.0', '2020-09-05 22:03:26');
+INSERT INTO `t_order_position` VALUES (15159, 2, 2683, 333, '109.445638300731', '24.323490688313402', '106.0', '15.0', '2020-09-05 22:03:36');
+INSERT INTO `t_order_position` VALUES (15160, 2, 2683, 333, '109.44502254951861', '24.32340841998832', '108.0', '15.0', '2020-09-05 22:03:41');
+INSERT INTO `t_order_position` VALUES (15161, 2, 2683, 333, '109.44434021503992', '24.323392893636807', '108.0', '15.0', '2020-09-05 22:03:47');
+INSERT INTO `t_order_position` VALUES (15162, 2, 2683, 333, '109.44367449855189', '24.32331067402293', '106.0', '15.0', '2020-09-05 22:03:52');
+INSERT INTO `t_order_position` VALUES (15163, 2, 2683, 333, '109.4430254063343', '24.323245071564127', '110.0', '15.0', '2020-09-05 22:03:57');
+INSERT INTO `t_order_position` VALUES (15164, 2, 2683, 333, '109.4423929397664', '24.323196087489187', '108.0', '15.0', '2020-09-05 22:04:02');
+INSERT INTO `t_order_position` VALUES (15165, 2, 2683, 333, '109.44176045472702', '24.323147086884926', '110.0', '15.0', '2020-09-05 22:04:07');
+INSERT INTO `t_order_position` VALUES (15166, 2, 2683, 333, '109.44107801606629', '24.323098145398447', '110.0', '15.0', '2020-09-05 22:04:12');
+INSERT INTO `t_order_position` VALUES (15167, 2, 2683, 333, '109.44011257618776', '24.32299961806742', '108.0', '15.0', '2020-09-05 22:04:17');
+INSERT INTO `t_order_position` VALUES (15168, 2, 2683, 333, '109.43938014780196', '24.322984025282157', '106.0', '15.0', '2020-09-05 22:04:22');
+INSERT INTO `t_order_position` VALUES (15169, 2, 2683, 333, '109.43869763094449', '24.322901691884677', '108.0', '15.0', '2020-09-05 22:04:27');
+INSERT INTO `t_order_position` VALUES (15170, 2, 2683, 333, '109.43808168654581', '24.322902555449947', '108.0', '15.0', '2020-09-05 22:04:32');
+INSERT INTO `t_order_position` VALUES (15171, 2, 2683, 333, '109.43711610885741', '24.3227872437732', '108.0', '15.0', '2020-09-05 22:04:42');
+INSERT INTO `t_order_position` VALUES (15172, 2, 2683, 333, '109.43660000568096', '24.32272128619177', '108.0', '15.0', '2020-09-05 22:04:47');
+INSERT INTO `t_order_position` VALUES (15173, 2, 2683, 333, '109.43603394465443', '24.322688705826202', '108.0', '15.0', '2020-09-05 22:04:52');
+INSERT INTO `t_order_position` VALUES (15174, 2, 2683, 333, '109.43550116515756', '24.322622745452012', '108.0', '15.0', '2020-09-05 22:04:57');
+INSERT INTO `t_order_position` VALUES (15175, 2, 2683, 333, '109.4345687699557', '24.322540608846793', '110.0', '15.0', '2020-09-05 22:05:07');
+INSERT INTO `t_order_position` VALUES (15176, 2, 2683, 333, '109.43368628828051', '24.322508360049746', '110.0', '15.0', '2020-09-05 22:05:17');
+INSERT INTO `t_order_position` VALUES (15177, 2, 2683, 333, '109.43290367917352', '24.322492622916705', '106.0', '15.0', '2020-09-05 22:05:27');
+INSERT INTO `t_order_position` VALUES (15178, 2, 2683, 333, '109.43237082342601', '24.322509898943046', '112.0', '15.0', '2020-09-05 22:05:37');
+INSERT INTO `t_order_position` VALUES (15179, 2, 2683, 333, '109.43183794885493', '24.32244385337228', '108.0', '15.0', '2020-09-05 22:07:08');
+INSERT INTO `t_order_position` VALUES (15180, 2, 2683, 333, '109.4310219577203', '24.322344779559824', '106.0', '15.0', '2020-09-05 22:07:18');
+INSERT INTO `t_order_position` VALUES (15181, 2, 2683, 333, '109.430505704211', '24.32232867009917', '108.0', '15.0', '2020-09-05 22:07:23');
+INSERT INTO `t_order_position` VALUES (15182, 2, 2683, 333, '109.42993947367574', '24.322279276874394', '108.0', '15.0', '2020-09-05 22:07:28');
+INSERT INTO `t_order_position` VALUES (15183, 2, 2683, 333, '109.42928995580273', '24.32224661503288', '108.0', '15.0', '2020-09-05 22:07:33');
+INSERT INTO `t_order_position` VALUES (15184, 2, 2683, 333, '109.42854048540929', '24.322197369860895', '108.0', '15.0', '2020-09-05 22:07:38');
+INSERT INTO `t_order_position` VALUES (15185, 2, 2683, 333, '109.42794088839577', '24.322147958599885', '108.0', '15.0', '2020-09-05 22:07:43');
+INSERT INTO `t_order_position` VALUES (15186, 2, 2683, 333, '109.42729130401786', '24.322081915247647', '108.0', '15.0', '2020-09-05 22:07:48');
+INSERT INTO `t_order_position` VALUES (15187, 2, 2683, 333, '109.42669166965847', '24.322032470499835', '110.0', '15.0', '2020-09-05 22:07:53');
+INSERT INTO `t_order_position` VALUES (15188, 2, 2683, 333, '109.42605870294882', '24.321983038310123', '108.0', '15.0', '2020-09-05 22:07:58');
+INSERT INTO `t_order_position` VALUES (15189, 2, 2683, 333, '109.42544237391692', '24.32193357428558', '108.0', '15.0', '2020-09-05 22:08:03');
+INSERT INTO `t_order_position` VALUES (15190, 2, 2683, 333, '109.42479270935887', '24.321884119969237', '108.0', '15.0', '2020-09-05 22:08:08');
+INSERT INTO `t_order_position` VALUES (15191, 2, 2683, 333, '109.42417634219265', '24.32185128267935', '108.0', '15.0', '2020-09-05 22:08:13');
+INSERT INTO `t_order_position` VALUES (15192, 2, 2683, 333, '109.4235599539956', '24.32178510465663', '110.0', '15.0', '2020-09-05 22:08:18');
+INSERT INTO `t_order_position` VALUES (15193, 2, 2683, 333, '109.42291022902324', '24.321752257088644', '108.0', '15.0', '2020-09-05 22:08:23');
+INSERT INTO `t_order_position` VALUES (15194, 2, 2683, 333, '109.42224382047972', '24.32168607832653', '108.0', '15.0', '2020-09-05 22:08:28');
+INSERT INTO `t_order_position` VALUES (15195, 2, 2683, 333, '109.42154406961842', '24.321653225043374', '108.0', '15.0', '2020-09-05 22:08:33');
+INSERT INTO `t_order_position` VALUES (15196, 2, 2683, 333, '109.42094426229224', '24.321603625163156', '108.0', '15.0', '2020-09-05 22:08:38');
+INSERT INTO `t_order_position` VALUES (15197, 2, 2683, 333, '109.4202444627176', '24.321520745388003', '108.0', '15.0', '2020-09-05 22:08:43');
+INSERT INTO `t_order_position` VALUES (15198, 2, 2683, 333, '109.41974459134198', '24.321471053042025', '110.0', '15.0', '2020-09-05 22:08:48');
+INSERT INTO `t_order_position` VALUES (15199, 2, 2683, 333, '109.41921138251617', '24.32143802960391', '108.0', '15.0', '2020-09-05 22:08:53');
+INSERT INTO `t_order_position` VALUES (15200, 2, 2683, 333, '109.41839487882298', '24.321388478941795', '108.0', '15.0', '2020-09-05 22:09:03');
+INSERT INTO `t_order_position` VALUES (15201, 2, 2683, 333, '109.41781164247449', '24.321372109246596', '106.0', '15.0', '2020-09-05 22:09:13');
+INSERT INTO `t_order_position` VALUES (15202, 2, 2683, 333, '109.41711173352292', '24.321305792285642', '106.0', '15.0', '2020-09-05 22:09:39');
+INSERT INTO `t_order_position` VALUES (15203, 2, 2683, 333, '109.41654512275322', '24.321256058038806', '108.0', '15.0', '2020-09-05 22:09:49');
+INSERT INTO `t_order_position` VALUES (15204, 2, 2683, 333, '109.41577850609123', '24.32118972759945', '110.0', '15.0', '2020-09-05 22:09:59');
+INSERT INTO `t_order_position` VALUES (15205, 2, 2683, 333, '109.4152285275767', '24.321206600352564', '114.0', '15.0', '2020-09-05 22:10:09');
+INSERT INTO `t_order_position` VALUES (15206, 2, 2683, 333, '109.41469520355503', '24.321273439129612', '110.0', '15.0', '2020-09-05 22:10:19');
+INSERT INTO `t_order_position` VALUES (15207, 2, 2683, 333, '109.41407850674243', '24.320957070394165', '132.0', '15.0', '2020-09-05 22:10:34');
+INSERT INTO `t_order_position` VALUES (15208, 2, 2683, 333, '109.41382845745954', '24.320290676946243', '130.0', '15.0', '2020-09-05 22:10:44');
+INSERT INTO `t_order_position` VALUES (15209, 2, 2683, 333, '109.41342841520232', '24.319957560821482', '110.0', '15.0', '2020-09-05 22:10:54');
+INSERT INTO `t_order_position` VALUES (15210, 2, 2683, 333, '109.41291170545956', '24.31992438123497', '114.0', '15.0', '2020-09-05 22:11:04');
+INSERT INTO `t_order_position` VALUES (15211, 2, 2683, 333, '109.41212828828026', '24.319991223890312', '110.0', '15.0', '2020-09-05 22:11:19');
+INSERT INTO `t_order_position` VALUES (15212, 2, 2683, 333, '109.41162821920105', '24.32004131969381', '112.0', '15.0', '2020-09-05 22:11:39');
+INSERT INTO `t_order_position` VALUES (15213, 2, 2683, 333, '109.4111114640604', '24.320024760287716', '156.0', '12.0', '2020-09-05 22:11:49');
+INSERT INTO `t_order_position` VALUES (15214, 2, 2683, 333, '109.41036131246247', '24.32000822593868', '110.0', '15.0', '2020-09-05 22:11:59');
+INSERT INTO `t_order_position` VALUES (15215, 2, 2683, 333, '109.40984452971814', '24.320074946326773', '110.0', '15.0', '2020-09-05 22:12:10');
+INSERT INTO `t_order_position` VALUES (15216, 2, 2683, 333, '109.40931106256953', '24.320141656641137', '136.0', '15.0', '2020-09-05 22:12:25');
+INSERT INTO `t_order_position` VALUES (15217, 2, 2683, 333, '109.40919440503494', '24.32084146420454', '4.0', '15.0', '2020-09-05 22:12:40');
+INSERT INTO `t_order_position` VALUES (15218, 2, 2683, 333, '109.40914442147547', '24.321357985137713', '0.0', '15.0', '2020-09-05 22:13:00');
+INSERT INTO `t_order_position` VALUES (15219, 2, 2683, 333, '109.40912777756506', '24.32182451746922', '162.0', '11.0', '2020-09-05 22:20:34');
+INSERT INTO `t_order_position` VALUES (15220, 2, 2683, 333, '109.40902777571256', '24.32227439612644', '126.0', '14.0', '2020-09-05 22:20:59');
+INSERT INTO `t_order_position` VALUES (15221, 2, 2683, 333, '109.40901106608335', '24.3216245869104', '112.0', '14.0', '2020-09-05 22:21:09');
+INSERT INTO `t_order_position` VALUES (15222, 2, 2683, 333, '109.40909439077919', '24.32107473935098', '114.0', '14.0', '2020-09-05 22:21:14');
+INSERT INTO `t_order_position` VALUES (15223, 2, 2683, 333, '109.40909435943712', '24.32054156174885', '0.0', '14.0', '2020-09-05 22:21:34');
+INSERT INTO `t_order_position` VALUES (15224, 2, 2683, 333, '109.40902764348833', '24.320025052522357', '114.0', '14.0', '2020-09-05 22:21:49');
+INSERT INTO `t_order_position` VALUES (15225, 2, 2683, 333, '109.40911095048577', '24.319175293522914', '112.0', '15.0', '2020-09-05 22:22:00');
+INSERT INTO `t_order_position` VALUES (15226, 2, 2683, 333, '109.40917760739394', '24.318692095407265', '112.0', '15.0', '2020-09-05 22:22:05');
+INSERT INTO `t_order_position` VALUES (15227, 2, 2683, 333, '109.4091942512635', '24.318225564166415', '114.0', '15.0', '2020-09-05 22:22:10');
+INSERT INTO `t_order_position` VALUES (15228, 2, 2683, 333, '109.40922756540604', '24.31774236961111', '112.0', '15.0', '2020-09-05 22:22:15');
+INSERT INTO `t_order_position` VALUES (15229, 2, 2683, 333, '109.40926088047311', '24.317275836940315', '110.0', '15.0', '2020-09-05 22:22:20');
+INSERT INTO `t_order_position` VALUES (15230, 2, 2683, 333, '109.40934420315978', '24.316709328550818', '108.0', '15.0', '2020-09-05 22:22:30');
+INSERT INTO `t_order_position` VALUES (15231, 2, 2683, 333, '109.40972761081125', '24.31627607850664', '60.0', '15.0', '2020-09-05 22:22:45');
+INSERT INTO `t_order_position` VALUES (15232, 2, 2683, 333, '109.41044444157066', '24.316225992238184', '62.0', '15.0', '2020-09-05 22:22:55');
+INSERT INTO `t_order_position` VALUES (15233, 2, 2683, 333, '109.41126126848549', '24.316242510964585', '60.0', '15.0', '2020-09-05 22:23:05');
+INSERT INTO `t_order_position` VALUES (15234, 2, 2683, 333, '109.4119613776232', '24.31622570295516', '62.0', '15.0', '2020-09-05 22:23:20');
+INSERT INTO `t_order_position` VALUES (15235, 2, 2683, 333, '109.41256145061837', '24.316192236666573', '62.0', '14.0', '2020-09-05 22:23:30');
+INSERT INTO `t_order_position` VALUES (15236, 2, 2683, 333, '109.4130781723316', '24.316275409487165', '0.0', '15.0', '2020-09-05 22:24:15');
+INSERT INTO `t_order_position` VALUES (15237, 2, 2683, 333, '109.41341157110232', '24.316958447070046', '164.0', '15.0', '2020-09-05 22:24:51');
+INSERT INTO `t_order_position` VALUES (15238, 2, 2683, 333, '109.4132782655463', '24.317591631956542', '160.0', '15.0', '2020-09-05 22:25:01');
+INSERT INTO `t_order_position` VALUES (15239, 2, 2683, 333, '109.41301161062871', '24.31815820589826', '6.0', '15.0', '2020-09-05 22:25:11');
+INSERT INTO `t_order_position` VALUES (15240, 2, 2683, 333, '109.41316166433064', '24.318857959017325', '14.0', '15.0', '2020-09-05 22:25:21');
+INSERT INTO `t_order_position` VALUES (15241, 2, 2683, 333, '109.41346172918036', '24.319590991811523', '166.0', '15.0', '2020-09-05 22:25:31');
+INSERT INTO `t_order_position` VALUES (15242, 2, 2683, 333, '109.41311172687641', '24.319990974072645', '110.0', '15.0', '2020-09-05 22:25:41');
+INSERT INTO `t_order_position` VALUES (15243, 2, 2683, 333, '109.41254500446234', '24.319974461532006', '114.0', '15.0', '2020-09-05 22:25:46');
+INSERT INTO `t_order_position` VALUES (15244, 2, 2683, 333, '109.41197826896237', '24.32000791998352', '114.0', '15.0', '2020-09-05 22:25:51');
+INSERT INTO `t_order_position` VALUES (15245, 2, 2683, 333, '109.41112813277722', '24.32000809538106', '106.0', '14.0', '2020-09-05 22:26:01');
+INSERT INTO `t_order_position` VALUES (15246, 2, 2683, 333, '109.41057802648959', '24.32002485348607', '114.0', '15.0', '2020-09-05 22:26:11');
+INSERT INTO `t_order_position` VALUES (15247, 2, 2683, 333, '109.40979451936263', '24.320108276365268', '116.0', '15.0', '2020-09-05 22:26:21');
+INSERT INTO `t_order_position` VALUES (15248, 2, 2683, 333, '109.40919437956944', '24.320408257464187', '162.0', '15.0', '2020-09-05 22:26:31');
+INSERT INTO `t_order_position` VALUES (15249, 2, 2683, 333, '109.40912775405837', '24.321424634014967', '164.0', '15.0', '2020-09-05 22:26:41');
+INSERT INTO `t_order_position` VALUES (15250, 2, 2683, 333, '109.40911111699037', '24.322007799061776', '164.0', '15.0', '2020-09-05 22:26:46');
+INSERT INTO `t_order_position` VALUES (15251, 2, 2683, 333, '109.40902779530148', '24.322607632549293', '0.0', '15.0', '2020-09-05 22:26:51');
+INSERT INTO `t_order_position` VALUES (15252, 2, 2683, 333, '109.4090111561923', '24.323157474396332', '166.0', '14.0', '2020-09-05 22:26:56');
+INSERT INTO `t_order_position` VALUES (15253, 2, 2683, 333, '109.4089778583439', '24.32392392190869', '164.0', '15.0', '2020-09-05 22:27:06');
+INSERT INTO `t_order_position` VALUES (15254, 2, 2683, 333, '109.40886119203147', '24.324507096862334', '162.0', '15.0', '2020-09-05 22:27:12');
+INSERT INTO `t_order_position` VALUES (15255, 2, 2683, 333, '109.40886122729178', '24.325106923528335', '160.0', '15.0', '2020-09-05 22:27:16');
+INSERT INTO `t_order_position` VALUES (15256, 2, 2683, 333, '109.40892794281127', '24.325606773424102', '166.0', '15.0', '2020-09-05 22:27:21');
+INSERT INTO `t_order_position` VALUES (15257, 2, 2683, 333, '109.40897801016023', '24.326506509767675', '166.0', '15.0', '2020-09-05 22:27:31');
+INSERT INTO `t_order_position` VALUES (15258, 2, 2683, 333, '109.40894470148334', '24.327089678525983', '4.0', '14.0', '2020-09-05 22:28:12');
+INSERT INTO `t_order_position` VALUES (15259, 2, 2683, 333, '109.4090114167293', '24.327589528952394', '2.0', '15.0', '2020-09-05 22:28:17');
+INSERT INTO `t_order_position` VALUES (15260, 2, 2683, 333, '109.4090447899417', '24.328106044456174', '0.0', '14.0', '2020-09-05 22:28:22');
+INSERT INTO `t_order_position` VALUES (15261, 2, 2683, 333, '109.40907816309941', '24.328622560120674', '6.0', '14.0', '2020-09-05 22:28:27');
+INSERT INTO `t_order_position` VALUES (15262, 2, 2683, 333, '109.40914488084543', '24.32917239648203', '0.0', '14.0', '2020-09-05 22:28:32');
+INSERT INTO `t_order_position` VALUES (15263, 2, 2683, 333, '109.40917825775682', '24.32975556009768', '2.0', '15.0', '2020-09-05 22:28:42');
+INSERT INTO `t_order_position` VALUES (15264, 2, 2683, 333, '109.40926166110556', '24.330555323804468', '2.0', '15.0', '2020-09-05 22:28:52');
+INSERT INTO `t_order_position` VALUES (15265, 2, 2683, 333, '109.40929503390726', '24.331071840147896', '8.0', '13.0', '2020-09-05 22:28:57');
+INSERT INTO `t_order_position` VALUES (15266, 2, 2683, 333, '109.40937842404252', '24.331654998997244', '4.0', '13.0', '2020-09-05 22:29:02');
+INSERT INTO `t_order_position` VALUES (15267, 2, 2683, 333, '109.40941180154992', '24.332254825363773', '2.0', '14.0', '2020-09-05 22:29:07');
+INSERT INTO `t_order_position` VALUES (15268, 2, 2683, 333, '109.40941182995594', '24.332738021994523', '8.0', '14.0', '2020-09-05 22:29:12');
+INSERT INTO `t_order_position` VALUES (15269, 2, 2683, 333, '109.40944522112208', '24.333571116345077', '2.0', '15.0', '2020-09-05 22:29:22');
+INSERT INTO `t_order_position` VALUES (15270, 2, 2683, 333, '109.40949528034199', '24.334354223360524', '4.0', '15.0', '2020-09-05 22:29:27');
+INSERT INTO `t_order_position` VALUES (15271, 2, 2683, 333, '109.40957868532702', '24.33520397478576', '4.0', '15.0', '2020-09-05 22:29:32');
+INSERT INTO `t_order_position` VALUES (15272, 2, 2683, 333, '109.40961207426038', '24.336003746530753', '2.0', '15.0', '2020-09-05 22:29:37');
+INSERT INTO `t_order_position` VALUES (15273, 2, 2683, 333, '109.40969547778569', '24.33683683663597', '2.0', '15.0', '2020-09-05 22:29:43');
+INSERT INTO `t_order_position` VALUES (15274, 2, 2683, 333, '109.40976220623612', '24.33760328102017', '4.0', '15.0', '2020-09-05 22:29:48');
+INSERT INTO `t_order_position` VALUES (15275, 2, 2683, 333, '109.40979558409286', '24.338219771700697', '4.0', '15.0', '2020-09-05 22:29:52');
+INSERT INTO `t_order_position` VALUES (15276, 2, 2683, 333, '109.40989564876392', '24.338902902056713', '160.0', '14.0', '2020-09-05 22:30:02');
+INSERT INTO `t_order_position` VALUES (15277, 2, 2683, 333, '109.40986233866232', '24.33943609178668', '2.0', '14.0', '2020-09-05 22:30:13');
+INSERT INTO `t_order_position` VALUES (15278, 2, 2683, 333, '109.40991238999669', '24.340102567178427', '4.0', '15.0', '2020-09-05 22:30:17');
+INSERT INTO `t_order_position` VALUES (15279, 2, 2683, 333, '109.40999578346995', '24.340785700342686', '4.0', '15.0', '2020-09-05 22:30:23');
+INSERT INTO `t_order_position` VALUES (15280, 2, 2683, 333, '109.41006251093165', '24.341552146280584', '4.0', '15.0', '2020-09-05 22:30:28');
+INSERT INTO `t_order_position` VALUES (15281, 2, 2683, 333, '109.41011256666941', '24.342301932787617', '2.0', '15.0', '2020-09-05 22:30:33');
+INSERT INTO `t_order_position` VALUES (15282, 2, 2683, 333, '109.41016261542632', '24.342935084985893', '4.0', '15.0', '2020-09-05 22:30:38');
+INSERT INTO `t_order_position` VALUES (15283, 2, 2683, 333, '109.4101959936039', '24.343568239835335', '4.0', '15.0', '2020-09-05 22:30:44');
+INSERT INTO `t_order_position` VALUES (15284, 2, 2683, 333, '109.41024603725661', '24.344118081954427', '6.0', '15.0', '2020-09-05 22:30:48');
+INSERT INTO `t_order_position` VALUES (15285, 2, 2683, 333, '109.41032944502864', '24.345067810029935', '2.0', '15.0', '2020-09-05 22:31:08');
+INSERT INTO `t_order_position` VALUES (15286, 2, 2683, 333, '109.41036283370732', '24.34588424918058', '4.0', '15.0', '2020-09-05 22:31:13');
+INSERT INTO `t_order_position` VALUES (15287, 2, 2683, 333, '109.41042956681669', '24.346767332223312', '4.0', '15.0', '2020-09-05 22:31:18');
+INSERT INTO `t_order_position` VALUES (15288, 2, 2683, 333, '109.41047963242343', '24.347700404825744', '2.0', '14.0', '2020-09-05 22:31:23');
+INSERT INTO `t_order_position` VALUES (15289, 2, 2683, 333, '109.41051302869228', '24.34865014287368', '4.0', '14.0', '2020-09-05 22:31:28');
+INSERT INTO `t_order_position` VALUES (15290, 2, 2683, 333, '109.41061310352976', '24.349566546390072', '2.0', '15.0', '2020-09-05 22:31:33');
+INSERT INTO `t_order_position` VALUES (15291, 2, 2683, 333, '109.41069649901205', '24.350332993208063', '4.0', '15.0', '2020-09-05 22:31:38');
+INSERT INTO `t_order_position` VALUES (15292, 2, 2683, 333, '109.41076321926447', '24.35101613204007', '2.0', '15.0', '2020-09-05 22:31:43');
+INSERT INTO `t_order_position` VALUES (15293, 2, 2683, 333, '109.41082993635737', '24.351649284423374', '2.0', '15.0', '2020-09-05 22:31:48');
+INSERT INTO `t_order_position` VALUES (15294, 2, 2683, 333, '109.4108633075569', '24.35218246949548', '2.0', '15.0', '2020-09-05 22:31:53');
+INSERT INTO `t_order_position` VALUES (15295, 2, 2683, 333, '109.41091335151708', '24.352765638478715', '10.0', '15.0', '2020-09-05 22:31:58');
+INSERT INTO `t_order_position` VALUES (15296, 2, 2683, 333, '109.41098007693094', '24.353548751468047', '2.0', '15.0', '2020-09-05 22:32:38');
+INSERT INTO `t_order_position` VALUES (15297, 2, 2683, 333, '109.4110468040836', '24.354365189267245', '4.0', '15.0', '2020-09-05 22:32:49');
+INSERT INTO `t_order_position` VALUES (15298, 2, 2683, 333, '109.41109684171066', '24.354848385358743', '4.0', '15.0', '2020-09-05 22:32:54');
+INSERT INTO `t_order_position` VALUES (15299, 2, 2683, 333, '109.41114688313237', '24.355398230586434', '2.0', '15.0', '2020-09-05 22:32:59');
+INSERT INTO `t_order_position` VALUES (15300, 2, 2683, 333, '109.41116358415249', '24.355931420003717', '4.0', '13.0', '2020-09-05 22:33:04');
+INSERT INTO `t_order_position` VALUES (15301, 2, 2683, 333, '109.41123029992164', '24.35656457378551', '4.0', '14.0', '2020-09-05 22:33:09');
+INSERT INTO `t_order_position` VALUES (15302, 2, 2683, 333, '109.4112970135105', '24.35716440312693', '2.0', '14.0', '2020-09-05 22:33:14');
+INSERT INTO `t_order_position` VALUES (15303, 2, 2683, 333, '109.41138040126704', '24.35784754075486', '2.0', '14.0', '2020-09-05 22:33:19');
+INSERT INTO `t_order_position` VALUES (15304, 2, 2683, 333, '109.41141378233368', '24.358564013135922', '2.0', '15.0', '2020-09-05 22:33:24');
+INSERT INTO `t_order_position` VALUES (15305, 2, 2683, 333, '109.41144716040606', '24.359230498945383', '0.0', '15.0', '2020-09-05 22:33:29');
+INSERT INTO `t_order_position` VALUES (15306, 2, 2683, 333, '109.41148053646386', '24.359863660425745', '10.0', '14.0', '2020-09-05 22:33:34');
+INSERT INTO `t_order_position` VALUES (15307, 2, 2683, 333, '109.41159725523715', '24.36043015566028', '10.0', '15.0', '2020-09-05 22:33:39');
+INSERT INTO `t_order_position` VALUES (15308, 2, 2683, 333, '109.41186401424613', '24.361313202581265', '166.0', '14.0', '2020-09-05 22:33:49');
+INSERT INTO `t_order_position` VALUES (15309, 2, 2683, 333, '109.41181404024964', '24.361879733444603', '2.0', '14.0', '2020-09-05 22:33:54');
+INSERT INTO `t_order_position` VALUES (15310, 2, 2683, 333, '109.41171405955104', '24.36246293755628', '164.0', '14.0', '2020-09-05 22:33:59');
+INSERT INTO `t_order_position` VALUES (15311, 2, 2683, 333, '109.41169744030525', '24.3633127219036', '8.0', '15.0', '2020-09-05 22:34:09');
+INSERT INTO `t_order_position` VALUES (15312, 2, 2683, 333, '109.41179748967019', '24.363895883666032', '6.0', '15.0', '2020-09-05 22:34:14');
+INSERT INTO `t_order_position` VALUES (15313, 2, 2683, 333, '109.41188087045565', '24.364495711348102', '4.0', '15.0', '2020-09-05 22:34:19');
+INSERT INTO `t_order_position` VALUES (15314, 2, 2683, 333, '109.41191423893724', '24.36501223820284', '4.0', '15.0', '2020-09-05 22:34:25');
+INSERT INTO `t_order_position` VALUES (15315, 2, 2683, 333, '109.41193093736408', '24.36551210655316', '4.0', '15.0', '2020-09-05 22:34:35');
+INSERT INTO `t_order_position` VALUES (15316, 2, 2683, 333, '109.41238102052917', '24.365928561844466', '58.0', '15.0', '2020-09-05 22:34:50');
+INSERT INTO `t_order_position` VALUES (15317, 2, 2683, 333, '109.41309776368712', '24.365995025679968', '58.0', '15.0', '2020-09-05 22:35:00');
+INSERT INTO `t_order_position` VALUES (15318, 2, 2683, 333, '109.41373113880715', '24.3659781798989', '56.0', '15.0', '2020-09-05 22:35:10');
+INSERT INTO `t_order_position` VALUES (15319, 2, 2683, 333, '109.41439782782254', '24.365961305015794', '56.0', '15.0', '2020-09-05 22:35:20');
+INSERT INTO `t_order_position` VALUES (15320, 2, 2683, 333, '109.41469786142973', '24.366477737773668', '6.0', '15.0', '2020-09-05 22:35:40');
+INSERT INTO `t_order_position` VALUES (15321, 2, 2683, 333, '109.41511454959573', '24.366894149772747', '166.0', '15.0', '2020-09-05 22:35:55');
+INSERT INTO `t_order_position` VALUES (15322, 2, 2683, 333, '109.41504792612564', '24.367610658569774', '164.0', '15.0', '2020-09-05 22:36:06');
+INSERT INTO `t_order_position` VALUES (15323, 2, 2683, 333, '109.41499796009155', '24.36817719959915', '52.0', '15.0', '2020-09-05 22:36:16');
+INSERT INTO `t_order_position` VALUES (15324, 2, 2683, 333, '109.41554795189795', '24.36827696909419', '52.0', '15.0', '2020-09-05 22:36:26');
+INSERT INTO `t_order_position` VALUES (15325, 2, 2683, 333, '109.41629791509078', '24.36839330448597', '22.0', '15.0', '2020-09-05 22:36:36');
+INSERT INTO `t_order_position` VALUES (15326, 2, 2683, 333, '109.41633127424217', '24.36887650153647', '164.0', '15.0', '2020-09-05 22:36:46');
+INSERT INTO `t_order_position` VALUES (15327, 2, 2683, 333, '109.41628125068127', '24.368409973912996', '106.0', '15.0', '2020-09-05 22:38:12');
+INSERT INTO `t_order_position` VALUES (15328, 2, 2683, 333, '109.41543129144463', '24.368310338643017', '106.0', '15.0', '2020-09-05 22:38:22');
+INSERT INTO `t_order_position` VALUES (15329, 2, 2683, 333, '109.41506461312325', '24.367960563710394', '110.0', '15.0', '2020-09-05 22:38:37');
+INSERT INTO `t_order_position` VALUES (15330, 2, 2683, 333, '109.41511456723237', '24.367194073464972', '112.0', '15.0', '2020-09-05 22:38:52');
+INSERT INTO `t_order_position` VALUES (15331, 2, 2683, 333, '109.4150812050648', '24.366694212859155', '100.0', '15.0', '2020-09-05 22:39:02');
+INSERT INTO `t_order_position` VALUES (15332, 2, 2683, 333, '109.41466452502051', '24.366427762064088', '0.0', '15.0', '2020-09-05 22:39:37');
+INSERT INTO `t_order_position` VALUES (15333, 2, 2683, 333, '109.41458116366772', '24.365961243085472', '108.0', '15.0', '2020-09-05 22:40:28');
+INSERT INTO `t_order_position` VALUES (15334, 2, 2683, 333, '109.41388114501675', '24.365961471421105', '110.0', '15.0', '2020-09-05 22:40:38');
+INSERT INTO `t_order_position` VALUES (15335, 2, 2683, 333, '109.41321443875933', '24.365978330840957', '110.0', '15.0', '2020-09-05 22:40:48');
+INSERT INTO `t_order_position` VALUES (15336, 2, 2683, 333, '109.41258104336201', '24.36592851230375', '110.0', '15.0', '2020-09-05 22:41:23');
+INSERT INTO `t_order_position` VALUES (15337, 2, 2683, 333, '109.41194762793893', '24.365878675809295', '138.0', '15.0', '2020-09-05 22:41:33');
+INSERT INTO `t_order_position` VALUES (15338, 2, 2683, 333, '109.41181423326314', '24.365162221811325', '120.0', '15.0', '2020-09-05 22:41:43');
+INSERT INTO `t_order_position` VALUES (15339, 2, 2683, 333, '109.41173085611976', '24.3646290431126', '122.0', '15.0', '2020-09-05 22:41:48');
+INSERT INTO `t_order_position` VALUES (15340, 2, 2683, 333, '109.41164748254968', '24.364162513889003', '120.0', '15.0', '2020-09-05 22:41:53');
+INSERT INTO `t_order_position` VALUES (15341, 2, 2683, 333, '109.41149742532042', '24.363596023946098', '132.0', '15.0', '2020-09-05 22:41:58');
+INSERT INTO `t_order_position` VALUES (15342, 2, 2683, 333, '109.4111806682326', '24.36297957838059', '130.0', '15.0', '2020-09-05 22:42:04');
+INSERT INTO `t_order_position` VALUES (15343, 2, 2683, 333, '109.4109139197484', '24.36242976927954', '126.0', '15.0', '2020-09-05 22:42:09');
+INSERT INTO `t_order_position` VALUES (15344, 2, 2683, 333, '109.41071385092226', '24.36192993317369', '142.0', '15.0', '2020-09-05 22:42:14');
+INSERT INTO `t_order_position` VALUES (15345, 2, 2683, 333, '109.41031374747952', '24.3616134124284', '104.0', '15.0', '2020-09-05 22:42:19');
+INSERT INTO `t_order_position` VALUES (15346, 2, 2683, 333, '109.40971359947791', '24.361513520921697', '112.0', '15.0', '2020-09-05 22:42:24');
+INSERT INTO `t_order_position` VALUES (15347, 2, 2683, 333, '109.40891338225542', '24.361513606183312', '110.0', '15.0', '2020-09-05 22:42:29');
+INSERT INTO `t_order_position` VALUES (15348, 2, 2683, 333, '109.40797975751681', '24.361546994540788', '110.0', '15.0', '2020-09-05 22:42:34');
+INSERT INTO `t_order_position` VALUES (15349, 2, 2683, 333, '109.40689603090715', '24.361563682589917', '114.0', '15.0', '2020-09-05 22:42:39');
+INSERT INTO `t_order_position` VALUES (15350, 2, 2683, 333, '109.40556213735363', '24.361630292879028', '110.0', '15.0', '2020-09-05 22:42:44');
+INSERT INTO `t_order_position` VALUES (15351, 2, 2683, 333, '109.40444493354583', '24.361663525084975', '110.0', '15.0', '2020-09-05 22:42:49');
+INSERT INTO `t_order_position` VALUES (15352, 2, 2683, 333, '109.40329431817833', '24.36171336030531', '110.0', '15.0', '2020-09-05 22:42:54');
+INSERT INTO `t_order_position` VALUES (15353, 2, 2683, 333, '109.4021436401382', '24.36177980082629', '110.0', '15.0', '2020-09-05 22:42:59');
+INSERT INTO `t_order_position` VALUES (15354, 2, 2683, 333, '109.40094286406078', '24.36182950950117', '110.0', '15.0', '2020-09-05 22:43:04');
+INSERT INTO `t_order_position` VALUES (15355, 2, 2683, 333, '109.3997586975667', '24.36186249971753', '110.0', '15.0', '2020-09-05 22:43:09');
+INSERT INTO `t_order_position` VALUES (15356, 2, 2683, 333, '109.3986078257305', '24.36191210510275', '112.0', '15.0', '2020-09-05 22:43:14');
+INSERT INTO `t_order_position` VALUES (15357, 2, 2683, 333, '109.39744021339305', '24.36199497312745', '110.0', '15.0', '2020-09-05 22:43:19');
+INSERT INTO `t_order_position` VALUES (15358, 2, 2683, 333, '109.39638930594694', '24.362027850186593', '104.0', '15.0', '2020-09-05 22:43:24');
+INSERT INTO `t_order_position` VALUES (15359, 2, 2683, 333, '109.39543842973835', '24.361860782538677', '160.0', '15.0', '2020-09-05 22:43:29');
+INSERT INTO `t_order_position` VALUES (15360, 2, 2683, 333, '109.39460428589386', '24.361577102675522', '154.0', '15.0', '2020-09-05 22:43:34');
+INSERT INTO `t_order_position` VALUES (15361, 2, 2683, 333, '109.39380347367948', '24.36122676383555', '152.0', '15.0', '2020-09-05 22:43:39');
+INSERT INTO `t_order_position` VALUES (15362, 2, 2683, 333, '109.39305268386954', '24.36085976623799', '152.0', '15.0', '2020-09-05 22:43:44');
+INSERT INTO `t_order_position` VALUES (15363, 2, 2683, 333, '109.39230187094138', '24.36052607097524', '152.0', '15.0', '2020-09-05 22:43:49');
+INSERT INTO `t_order_position` VALUES (15364, 2, 2683, 333, '109.39163446055025', '24.360225731589434', '152.0', '15.0', '2020-09-05 22:43:54');
+INSERT INTO `t_order_position` VALUES (15365, 2, 2683, 333, '109.39091697293334', '24.359908679146642', '154.0', '15.0', '2020-09-05 22:43:59');
+INSERT INTO `t_order_position` VALUES (15366, 2, 2683, 333, '109.39018277483281', '24.359558270492197', '152.0', '15.0', '2020-09-05 22:44:04');
+INSERT INTO `t_order_position` VALUES (15367, 2, 2683, 333, '109.38923162212276', '24.35914103403503', '154.0', '15.0', '2020-09-05 22:44:09');
+INSERT INTO `t_order_position` VALUES (15368, 2, 2683, 333, '109.38838055928976', '24.358790489043574', '152.0', '15.0', '2020-09-05 22:44:14');
+INSERT INTO `t_order_position` VALUES (15369, 2, 2683, 333, '109.38756283981839', '24.35840661865804', '152.0', '15.0', '2020-09-05 22:44:19');
+INSERT INTO `t_order_position` VALUES (15370, 2, 2683, 333, '109.38674509230665', '24.358022723319554', '152.0', '15.0', '2020-09-05 22:44:24');
+INSERT INTO `t_order_position` VALUES (15371, 2, 2683, 333, '109.38594400711538', '24.357655479845143', '154.0', '15.0', '2020-09-05 22:44:29');
+INSERT INTO `t_order_position` VALUES (15372, 2, 2683, 333, '109.38520965209874', '24.357254947258802', '144.0', '15.0', '2020-09-05 22:44:35');
+INSERT INTO `t_order_position` VALUES (15373, 2, 2683, 333, '109.38460878971179', '24.35675454242036', '140.0', '15.0', '2020-09-05 22:44:40');
+INSERT INTO `t_order_position` VALUES (15374, 2, 2683, 333, '109.38409135979335', '24.356170890446943', '132.0', '15.0', '2020-09-05 22:44:45');
+INSERT INTO `t_order_position` VALUES (15375, 2, 2683, 333, '109.38365736666032', '24.355487333924962', '130.0', '15.0', '2020-09-05 22:44:50');
+INSERT INTO `t_order_position` VALUES (15376, 2, 2683, 333, '109.38332350753433', '24.35473721730896', '130.0', '15.0', '2020-09-05 22:44:55');
+INSERT INTO `t_order_position` VALUES (15377, 2, 2683, 333, '109.38297295289432', '24.353987081163233', '130.0', '15.0', '2020-09-05 22:45:00');
+INSERT INTO `t_order_position` VALUES (15378, 2, 2683, 333, '109.38260570206967', '24.35323692488825', '130.0', '15.0', '2020-09-05 22:45:05');
+INSERT INTO `t_order_position` VALUES (15379, 2, 2683, 333, '109.38227182811993', '24.352470135069318', '130.0', '15.0', '2020-09-05 22:45:10');
+INSERT INTO `t_order_position` VALUES (15380, 2, 2683, 333, '109.38192125705801', '24.351686662972178', '130.0', '15.0', '2020-09-05 22:45:15');
+INSERT INTO `t_order_position` VALUES (15381, 2, 2683, 333, '109.3815206031732', '24.350869812061887', '130.0', '15.0', '2020-09-05 22:45:20');
+INSERT INTO `t_order_position` VALUES (15382, 2, 2683, 333, '109.3811366344137', '24.35003631109508', '130.0', '15.0', '2020-09-05 22:45:25');
+INSERT INTO `t_order_position` VALUES (15383, 2, 2683, 333, '109.38075265901803', '24.34918614346399', '130.0', '15.0', '2020-09-05 22:45:30');
+INSERT INTO `t_order_position` VALUES (15384, 2, 2683, 333, '109.38036868092291', '24.348385957899676', '130.0', '15.0', '2020-09-05 22:45:35');
+INSERT INTO `t_order_position` VALUES (15385, 2, 2683, 333, '109.37998469528199', '24.34755244355105', '128.0', '15.0', '2020-09-05 22:45:40');
+INSERT INTO `t_order_position` VALUES (15386, 2, 2683, 333, '109.37961739441734', '24.34666895635526', '130.0', '15.0', '2020-09-05 22:45:45');
+INSERT INTO `t_order_position` VALUES (15387, 2, 2683, 333, '109.37913322407026', '24.345618716466408', '130.0', '15.0', '2020-09-05 22:45:50');
+INSERT INTO `t_order_position` VALUES (15388, 2, 2683, 333, '109.37873252588184', '24.344768507549972', '130.0', '15.0', '2020-09-05 22:45:55');
+INSERT INTO `t_order_position` VALUES (15389, 2, 2683, 333, '109.37833182273533', '24.34393495603049', '130.0', '15.0', '2020-09-05 22:46:00');
+INSERT INTO `t_order_position` VALUES (15390, 2, 2683, 333, '109.37793111271921', '24.343084737718446', '128.0', '15.0', '2020-09-05 22:46:05');
+INSERT INTO `t_order_position` VALUES (15391, 2, 2683, 333, '109.37754708651124', '24.34215122347296', '124.0', '15.0', '2020-09-05 22:46:10');
+INSERT INTO `t_order_position` VALUES (15392, 2, 2683, 333, '109.37739678069013', '24.341217974805588', '112.0', '15.0', '2020-09-05 22:46:15');
+INSERT INTO `t_order_position` VALUES (15393, 2, 2683, 333, '109.37739672803113', '24.340318223368307', '112.0', '15.0', '2020-09-05 22:46:20');
+INSERT INTO `t_order_position` VALUES (15394, 2, 2683, 333, '109.37741338266835', '24.339635098388598', '112.0', '15.0', '2020-09-05 22:46:25');
+INSERT INTO `t_order_position` VALUES (15395, 2, 2683, 333, '109.3774300382705', '24.338968635816176', '112.0', '15.0', '2020-09-05 22:46:30');
+INSERT INTO `t_order_position` VALUES (15396, 2, 2683, 333, '109.37743000023917', '24.33831881644897', '112.0', '15.0', '2020-09-05 22:46:35');
+INSERT INTO `t_order_position` VALUES (15397, 2, 2683, 333, '109.3774633504192', '24.337652373740323', '114.0', '15.0', '2020-09-05 22:46:40');
+INSERT INTO `t_order_position` VALUES (15398, 2, 2683, 333, '109.37744661682474', '24.33698587388296', '112.0', '15.0', '2020-09-05 22:46:45');
+INSERT INTO `t_order_position` VALUES (15399, 2, 2683, 333, '109.37746326460514', '24.33618611668941', '116.0', '14.0', '2020-09-05 22:46:50');
+INSERT INTO `t_order_position` VALUES (15400, 2, 2683, 333, '109.37741313010409', '24.335319635354924', '112.0', '15.0', '2020-09-05 22:46:55');
+INSERT INTO `t_order_position` VALUES (15401, 2, 2683, 333, '109.37747986166737', '24.334519936743636', '112.0', '15.0', '2020-09-05 22:47:00');
+INSERT INTO `t_order_position` VALUES (15402, 2, 2683, 333, '109.37749651625336', '24.333836814900696', '112.0', '15.0', '2020-09-05 22:47:05');
+INSERT INTO `t_order_position` VALUES (15403, 2, 2683, 333, '109.37751317375455', '24.33320367930722', '112.0', '15.0', '2020-09-05 22:47:10');
+INSERT INTO `t_order_position` VALUES (15404, 2, 2683, 333, '109.37751313572377', '24.332553862940397', '112.0', '15.0', '2020-09-05 22:47:15');
+INSERT INTO `t_order_position` VALUES (15405, 2, 2683, 333, '109.37751309671799', '24.33188738496423', '112.0', '15.0', '2020-09-05 22:47:20');
+INSERT INTO `t_order_position` VALUES (15406, 2, 2683, 333, '109.37751304601072', '24.33102096412236', '112.0', '15.0', '2020-09-05 22:47:26');
+INSERT INTO `t_order_position` VALUES (15407, 2, 2683, 333, '109.37752969862593', '24.330304520312893', '112.0', '15.0', '2020-09-05 22:47:31');
+INSERT INTO `t_order_position` VALUES (15408, 2, 2683, 333, '109.37752965669512', '24.32958805777983', '112.0', '15.0', '2020-09-05 22:47:36');
+INSERT INTO `t_order_position` VALUES (15409, 2, 2683, 333, '109.37754631222549', '24.32892160048949', '112.0', '15.0', '2020-09-05 22:47:41');
+INSERT INTO `t_order_position` VALUES (15410, 2, 2683, 333, '109.37756296872072', '24.328271805437634', '112.0', '15.0', '2020-09-05 22:47:46');
+INSERT INTO `t_order_position` VALUES (15411, 2, 2683, 333, '109.37756292971548', '24.32760532971785', '114.0', '15.0', '2020-09-05 22:47:51');
+INSERT INTO `t_order_position` VALUES (15412, 2, 2683, 333, '109.37754620301119', '24.32705546840026', '114.0', '15.0', '2020-09-05 22:47:56');
+INSERT INTO `t_order_position` VALUES (15413, 2, 2683, 333, '109.37754615132984', '24.326172388990273', '116.0', '15.0', '2020-09-05 22:48:06');
+INSERT INTO `t_order_position` VALUES (15414, 2, 2683, 333, '109.37759618611778', '24.32533935307517', '114.0', '15.0', '2020-09-05 22:48:16');
+INSERT INTO `t_order_position` VALUES (15415, 2, 2683, 333, '109.37762954681754', '24.32485619741468', '114.0', '15.0', '2020-09-05 22:48:21');
+INSERT INTO `t_order_position` VALUES (15416, 2, 2683, 333, '109.37766290845154', '24.32438970374697', '108.0', '15.0', '2020-09-05 22:48:26');
+INSERT INTO `t_order_position` VALUES (15417, 2, 2683, 333, '109.37772965695068', '24.32388992458387', '106.0', '15.0', '2020-09-05 22:48:31');
+INSERT INTO `t_order_position` VALUES (15418, 2, 2683, 333, '109.37789657526818', '24.323456906528065', '102.0', '15.0', '2020-09-05 22:48:36');
+INSERT INTO `t_order_position` VALUES (15419, 2, 2683, 333, '109.37836396628808', '24.322674326913212', '92.0', '15.0', '2020-09-05 22:48:46');
+INSERT INTO `t_order_position` VALUES (15420, 2, 2683, 333, '109.3788647513537', '24.32214170465568', '94.0', '15.0', '2020-09-05 22:48:56');
+INSERT INTO `t_order_position` VALUES (15421, 2, 2683, 333, '109.37944898231981', '24.32140922308267', '90.0', '15.0', '2020-09-05 22:49:06');
+INSERT INTO `t_order_position` VALUES (15422, 2, 2683, 333, '109.37981620926357', '24.320993073265853', '94.0', '15.0', '2020-09-05 22:49:11');
+INSERT INTO `t_order_position` VALUES (15423, 2, 2683, 333, '109.3802168149411', '24.32054363075619', '90.0', '15.0', '2020-09-05 22:49:16');
+INSERT INTO `t_order_position` VALUES (15424, 2, 2683, 333, '109.38063410714409', '24.320094200382393', '84.0', '15.0', '2020-09-05 22:49:21');
+INSERT INTO `t_order_position` VALUES (15425, 2, 2683, 333, '109.38111817076472', '24.31979478889929', '80.0', '15.0', '2020-09-05 22:49:26');
+INSERT INTO `t_order_position` VALUES (15426, 2, 2683, 333, '109.38171906707353', '24.319462163590785', '80.0', '14.0', '2020-09-05 22:49:31');
+INSERT INTO `t_order_position` VALUES (15427, 2, 2683, 333, '109.38220311040678', '24.31916273414974', '78.0', '14.0', '2020-09-05 22:49:36');
+INSERT INTO `t_order_position` VALUES (15428, 2, 2683, 333, '109.38270383781152', '24.318896636369228', '82.0', '13.0', '2020-09-05 22:49:41');
+INSERT INTO `t_order_position` VALUES (15429, 2, 2683, 333, '109.38315448150158', '24.318613820273633', '78.0', '11.0', '2020-09-05 22:49:46');
+INSERT INTO `t_order_position` VALUES (15430, 2, 2683, 333, '109.38362180879143', '24.31834767449618', '82.0', '12.0', '2020-09-05 22:49:51');
+INSERT INTO `t_order_position` VALUES (15431, 2, 2683, 333, '109.38407243506353', '24.318048182073117', '78.0', '14.0', '2020-09-05 22:49:56');
+INSERT INTO `t_order_position` VALUES (15432, 2, 2683, 333, '109.3845564342615', '24.31776537443824', '84.0', '15.0', '2020-09-05 22:50:06');
+INSERT INTO `t_order_position` VALUES (15433, 2, 2683, 333, '109.38502372842402', '24.317382573052033', '88.0', '15.0', '2020-09-05 22:50:47');
+INSERT INTO `t_order_position` VALUES (15434, 2, 2683, 333, '109.38534080959683', '24.317016294318442', '90.0', '15.0', '2020-09-05 22:50:57');
+INSERT INTO `t_order_position` VALUES (15435, 2, 2683, 333, '109.385657885689', '24.316633350274962', '94.0', '15.0', '2020-09-05 22:51:07');
+INSERT INTO `t_order_position` VALUES (15436, 2, 2683, 333, '109.3860750723512', '24.315917253155693', '94.0', '15.0', '2020-09-05 22:51:17');
+INSERT INTO `t_order_position` VALUES (15437, 2, 2683, 333, '109.38654231500466', '24.31515120657011', '96.0', '15.0', '2020-09-05 22:51:27');
+INSERT INTO `t_order_position` VALUES (15438, 2, 2683, 333, '109.38697617870879', '24.31450175714517', '94.0', '15.0', '2020-09-05 22:51:37');
+INSERT INTO `t_order_position` VALUES (15439, 2, 2683, 333, '109.38742671873233', '24.31378566753924', '94.0', '15.0', '2020-09-05 22:51:47');
+INSERT INTO `t_order_position` VALUES (15440, 2, 2683, 333, '109.38782718987689', '24.313119516588106', '94.0', '15.0', '2020-09-05 22:51:57');
+INSERT INTO `t_order_position` VALUES (15441, 2, 2683, 333, '109.38817759952165', '24.312586614917485', '96.0', '15.0', '2020-09-05 22:52:07');
+INSERT INTO `t_order_position` VALUES (15442, 2, 2683, 333, '109.38854468832963', '24.312003736405178', '96.0', '15.0', '2020-09-05 22:52:17');
+INSERT INTO `t_order_position` VALUES (15443, 2, 2683, 333, '109.38886171812365', '24.311554109210128', '94.0', '15.0', '2020-09-05 22:52:23');
+INSERT INTO `t_order_position` VALUES (15444, 2, 2683, 333, '109.38922880113738', '24.311054529981604', '96.0', '15.0', '2020-09-05 22:52:27');
+INSERT INTO `t_order_position` VALUES (15445, 2, 2683, 333, '109.3895124446051', '24.310538224117682', '94.0', '10.0', '2020-09-05 22:52:32');
+INSERT INTO `t_order_position` VALUES (15446, 2, 2683, 333, '109.38986283105005', '24.310038624322758', '80.0', '9.0', '2020-09-05 22:52:37');
+INSERT INTO `t_order_position` VALUES (15447, 2, 2683, 333, '109.39034671127017', '24.309722390489448', '92.0', '15.0', '2020-09-05 22:52:42');
+INSERT INTO `t_order_position` VALUES (15448, 2, 2683, 333, '109.39024656285129', '24.309172486710846', '102.0', '15.0', '2020-09-05 22:52:48');
+INSERT INTO `t_order_position` VALUES (15449, 2, 2683, 333, '109.39016309133211', '24.308472639582778', '138.0', '15.0', '2020-09-05 22:53:03');
+INSERT INTO `t_order_position` VALUES (15450, 2, 2683, 333, '109.38966246412197', '24.30782248254985', '122.0', '15.0', '2020-09-05 22:53:13');
+INSERT INTO `t_order_position` VALUES (15451, 2, 2683, 333, '109.38972917868031', '24.307289357950808', '82.0', '15.0', '2020-09-05 22:53:23');
+INSERT INTO `t_order_position` VALUES (15452, 2, 2683, 333, '109.39029649488982', '24.30702316988437', '74.0', '15.0', '2020-09-05 22:54:08');
+INSERT INTO `t_order_position` VALUES (15453, 2, 2683, 333, '109.38982930684736', '24.30745604538349', '12.0', '15.0', '2020-09-05 22:55:03');
+INSERT INTO `t_order_position` VALUES (15454, 2, 2683, 333, '109.3902298239982', '24.30827274622005', '24.0', '15.0', '2020-09-05 22:55:13');
+INSERT INTO `t_order_position` VALUES (15455, 2, 2683, 333, '109.39051350996867', '24.308689482368507', '16.0', '15.0', '2020-09-05 22:55:18');
+INSERT INTO `t_order_position` VALUES (15456, 2, 2683, 333, '109.39039675061562', '24.309405853420234', '148.0', '15.0', '2020-09-05 22:56:09');
+INSERT INTO `t_order_position` VALUES (15457, 2, 2683, 333, '109.38984616034357', '24.31030519915558', '150.0', '14.0', '2020-09-05 22:56:19');
+INSERT INTO `t_order_position` VALUES (15458, 2, 2683, 333, '109.38947909192473', '24.310888095150712', '146.0', '15.0', '2020-09-05 22:56:24');
+INSERT INTO `t_order_position` VALUES (15459, 2, 2683, 333, '109.38901190015955', '24.311537559073717', '150.0', '15.0', '2020-09-05 22:56:29');
+INSERT INTO `t_order_position` VALUES (15460, 2, 2683, 333, '109.38867819107566', '24.312087145652633', '152.0', '15.0', '2020-09-05 22:56:34');
+INSERT INTO `t_order_position` VALUES (15461, 2, 2683, 333, '109.38832778298864', '24.312520083585042', '146.0', '15.0', '2020-09-05 22:57:09');
+INSERT INTO `t_order_position` VALUES (15462, 2, 2683, 333, '109.38802742975888', '24.312903070867847', '146.0', '15.0', '2020-09-05 22:57:15');
+INSERT INTO `t_order_position` VALUES (15463, 2, 2683, 333, '109.3876603280445', '24.31340263407712', '150.0', '15.0', '2020-09-05 22:57:20');
+INSERT INTO `t_order_position` VALUES (15464, 2, 2683, 333, '109.387376658389', '24.313852274297457', '150.0', '15.0', '2020-09-05 22:57:25');
+INSERT INTO `t_order_position` VALUES (15465, 2, 2683, 333, '109.38705961167297', '24.314351869682568', '146.0', '15.0', '2020-09-05 22:57:30');
+INSERT INTO `t_order_position` VALUES (15466, 2, 2683, 333, '109.38654231598156', '24.315167868298058', '150.0', '15.0', '2020-09-05 22:57:45');
+INSERT INTO `t_order_position` VALUES (15467, 2, 2683, 333, '109.38629200888826', '24.31558420196854', '150.0', '15.0', '2020-09-05 22:57:50');
+INSERT INTO `t_order_position` VALUES (15468, 2, 2683, 333, '109.38592488648518', '24.316183712915105', '152.0', '15.0', '2020-09-05 22:58:00');
+INSERT INTO `t_order_position` VALUES (15469, 2, 2683, 333, '109.38555775853753', '24.31678321918397', '154.0', '15.0', '2020-09-05 22:58:10');
+INSERT INTO `t_order_position` VALUES (15470, 2, 2683, 333, '109.3852740719928', '24.317366132536602', '18.0', '15.0', '2020-09-05 22:58:30');
+INSERT INTO `t_order_position` VALUES (15471, 2, 2683, 333, '109.38565795796814', '24.317866320113648', '28.0', '15.0', '2020-09-05 22:58:40');
+INSERT INTO `t_order_position` VALUES (15472, 2, 2683, 333, '109.38637562006033', '24.318433431598297', '34.0', '15.0', '2020-09-05 22:58:50');
+INSERT INTO `t_order_position` VALUES (15473, 2, 2683, 333, '109.3869931289152', '24.318967119233598', '30.0', '15.0', '2020-09-05 22:59:00');
+INSERT INTO `t_order_position` VALUES (15474, 2, 2683, 333, '109.38742704311618', '24.319317367107487', '14.0', '15.0', '2020-09-05 22:59:10');
+INSERT INTO `t_order_position` VALUES (15475, 2, 2683, 333, '109.38667603803253', '24.31880024089388', '142.0', '15.0', '2020-09-05 22:59:30');
+INSERT INTO `t_order_position` VALUES (15476, 2, 2683, 333, '109.38590831263423', '24.318149785548904', '144.0', '12.0', '2020-09-05 22:59:40');
+INSERT INTO `t_order_position` VALUES (15477, 2, 2683, 333, '109.3855244423091', '24.317849542509833', '144.0', '14.0', '2020-09-05 22:59:45');
+INSERT INTO `t_order_position` VALUES (15478, 2, 2683, 333, '109.38482346755639', '24.31766564430835', '134.0', '15.0', '2020-09-05 22:59:56');
+INSERT INTO `t_order_position` VALUES (15479, 2, 2683, 333, '109.3843394716169', '24.317915133050704', '130.0', '15.0', '2020-09-05 23:00:01');
+INSERT INTO `t_order_position` VALUES (15480, 2, 2683, 333, '109.38383878061417', '24.318247906716397', '132.0', '15.0', '2020-09-05 23:00:06');
+INSERT INTO `t_order_position` VALUES (15481, 2, 2683, 333, '109.38330469590676', '24.318547316279744', '134.0', '15.0', '2020-09-05 23:00:11');
+INSERT INTO `t_order_position` VALUES (15482, 2, 2683, 333, '109.38277059987533', '24.318846715799836', '132.0', '15.0', '2020-09-05 23:00:16');
+INSERT INTO `t_order_position` VALUES (15483, 2, 2683, 333, '109.3822531851511', '24.31916278361019', '134.0', '15.0', '2020-09-05 23:00:21');
+INSERT INTO `t_order_position` VALUES (15484, 2, 2683, 333, '109.3817691427619', '24.319462213894028', '132.0', '15.0', '2020-09-05 23:00:26');
+INSERT INTO `t_order_position` VALUES (15485, 2, 2683, 333, '109.3813017805335', '24.319711667794728', '132.0', '15.0', '2020-09-05 23:00:31');
+INSERT INTO `t_order_position` VALUES (15486, 2, 2683, 333, '109.38080102587384', '24.31997774141719', '138.0', '15.0', '2020-09-05 23:00:36');
+INSERT INTO `t_order_position` VALUES (15487, 2, 2683, 333, '109.38031696126382', '24.320360456677562', '142.0', '15.0', '2020-09-05 23:00:41');
+INSERT INTO `t_order_position` VALUES (15488, 2, 2683, 333, '109.3799664352745', '24.320793292064888', '142.0', '15.0', '2020-09-05 23:00:46');
+INSERT INTO `t_order_position` VALUES (15489, 2, 2683, 333, '109.37961590659218', '24.32125944706881', '142.0', '15.0', '2020-09-05 23:00:51');
+INSERT INTO `t_order_position` VALUES (15490, 2, 2683, 333, '109.37926536938915', '24.321658950877527', '140.0', '15.0', '2020-09-05 23:00:56');
+INSERT INTO `t_order_position` VALUES (15491, 2, 2683, 333, '109.37893152127863', '24.322058469080442', '144.0', '15.0', '2020-09-05 23:01:01');
+INSERT INTO `t_order_position` VALUES (15492, 2, 2683, 333, '109.37861436095537', '24.32242467861085', '142.0', '15.0', '2020-09-05 23:01:06');
+INSERT INTO `t_order_position` VALUES (15493, 2, 2683, 333, '109.37826381167525', '24.32284083297582', '148.0', '15.0', '2020-09-05 23:01:11');
+INSERT INTO `t_order_position` VALUES (15494, 2, 2683, 333, '109.37801342353043', '24.323257096790492', '152.0', '15.0', '2020-09-05 23:01:16');
+INSERT INTO `t_order_position` VALUES (15495, 2, 2683, 333, '109.37779644526825', '24.32407328083392', '6.0', '15.0', '2020-09-05 23:01:26');
+INSERT INTO `t_order_position` VALUES (15496, 2, 2683, 333, '109.37808027064499', '24.324456824630555', '0.0', '13.0', '2020-09-05 23:02:01');
+INSERT INTO `t_order_position` VALUES (15497, 2, 2691, 456, '109.48910576790236', '24.34248038186224', '124.0', '15.0', '2020-09-05 23:12:04');
+INSERT INTO `t_order_position` VALUES (15498, 2, 2691, 456, '109.48900602690928', '24.341980810761658', '126.0', '15.0', '2020-09-05 23:12:09');
+INSERT INTO `t_order_position` VALUES (15499, 2, 2691, 456, '109.4888231949853', '24.341531468640913', '130.0', '15.0', '2020-09-05 23:12:14');
+INSERT INTO `t_order_position` VALUES (15500, 2, 2691, 456, '109.4884076826879', '24.340799549557687', '132.0', '15.0', '2020-09-05 23:12:24');
+INSERT INTO `t_order_position` VALUES (15501, 2, 2691, 456, '109.48790907378681', '24.340084532333677', '132.0', '15.0', '2020-09-05 23:12:34');
+INSERT INTO `t_order_position` VALUES (15502, 2, 2691, 456, '109.4874270771025', '24.33931947776547', '132.0', '15.0', '2020-09-05 23:12:44');
+INSERT INTO `t_order_position` VALUES (15503, 2, 2691, 456, '109.48719438498675', '24.338903601276883', '132.0', '15.0', '2020-09-05 23:12:49');
+INSERT INTO `t_order_position` VALUES (15504, 2, 2691, 456, '109.48667914393044', '24.33813863862537', '134.0', '15.0', '2020-09-05 23:12:59');
+INSERT INTO `t_order_position` VALUES (15505, 2, 2691, 456, '109.48634672665554', '24.337623075651557', '130.0', '15.0', '2020-09-05 23:13:04');
+INSERT INTO `t_order_position` VALUES (15506, 2, 2691, 456, '109.48606417271878', '24.337224001734754', '134.0', '15.0', '2020-09-05 23:13:09');
+INSERT INTO `t_order_position` VALUES (15507, 2, 2691, 456, '109.48556554210766', '24.336475645675108', '132.0', '15.0', '2020-09-05 23:13:20');
+INSERT INTO `t_order_position` VALUES (15508, 2, 2691, 456, '109.48510014560807', '24.335710528940957', '132.0', '15.0', '2020-09-05 23:13:30');
+INSERT INTO `t_order_position` VALUES (15509, 2, 2691, 456, '109.4848342041908', '24.335294740604756', '132.0', '15.0', '2020-09-05 23:13:35');
+INSERT INTO `t_order_position` VALUES (15510, 2, 2691, 456, '109.4845516385917', '24.334829012792365', '132.0', '15.0', '2020-09-05 23:13:40');
+INSERT INTO `t_order_position` VALUES (15511, 2, 2691, 456, '109.48423583135843', '24.334363378649368', '130.0', '15.0', '2020-09-05 23:13:45');
+INSERT INTO `t_order_position` VALUES (15512, 2, 2691, 456, '109.48392002220001', '24.333897743021616', '132.0', '15.0', '2020-09-05 23:13:50');
+INSERT INTO `t_order_position` VALUES (15513, 2, 2691, 456, '109.48348785847018', '24.33324915468287', '134.0', '15.0', '2020-09-05 23:14:00');
+INSERT INTO `t_order_position` VALUES (15514, 2, 2691, 456, '109.48315541940617', '24.332700252747582', '136.0', '15.0', '2020-09-05 23:14:05');
+INSERT INTO `t_order_position` VALUES (15515, 2, 2691, 456, '109.48280636433053', '24.332268029768976', '142.0', '15.0', '2020-09-05 23:14:10');
+INSERT INTO `t_order_position` VALUES (15516, 2, 2691, 456, '109.48240744669828', '24.331869269302313', '142.0', '15.0', '2020-09-05 23:14:15');
+INSERT INTO `t_order_position` VALUES (15517, 2, 2691, 456, '109.47692217435265', '24.329901673760624', '164.0', '15.0', '2020-09-05 23:15:04');
+INSERT INTO `t_order_position` VALUES (15518, 2, 2691, 456, '109.47634036420793', '24.329753288893333', '160.0', '15.0', '2020-09-05 23:15:09');
+INSERT INTO `t_order_position` VALUES (15519, 2, 2691, 456, '109.47579179090303', '24.32958814526768', '100.0', '15.0', '2020-09-05 23:15:14');
+INSERT INTO `t_order_position` VALUES (15520, 2, 2691, 456, '109.47529308308063', '24.329472847259773', '162.0', '15.0', '2020-09-05 23:15:19');
+INSERT INTO `t_order_position` VALUES (15521, 2, 2691, 456, '109.47466137589785', '24.3293079112753', '162.0', '15.0', '2020-09-05 23:15:24');
+INSERT INTO `t_order_position` VALUES (15522, 2, 2691, 456, '109.47412940398276', '24.32917602600612', '164.0', '15.0', '2020-09-05 23:15:29');
+INSERT INTO `t_order_position` VALUES (15523, 2, 2691, 456, '109.47358079906328', '24.329027515730353', '162.0', '15.0', '2020-09-05 23:15:34');
+INSERT INTO `t_order_position` VALUES (15524, 2, 2691, 456, '109.47298231216818', '24.328879128564086', '162.0', '15.0', '2020-09-05 23:15:39');
+INSERT INTO `t_order_position` VALUES (15525, 2, 2691, 456, '109.47236719027939', '24.32873077568899', '162.0', '15.0', '2020-09-05 23:15:44');
+INSERT INTO `t_order_position` VALUES (15526, 2, 2691, 456, '109.47178530770238', '24.328582327256346', '162.0', '15.0', '2020-09-05 23:15:49');
+INSERT INTO `t_order_position` VALUES (15527, 2, 2691, 456, '109.47122004156269', '24.32845048925809', '162.0', '15.0', '2020-09-05 23:15:54');
+INSERT INTO `t_order_position` VALUES (15528, 2, 2691, 456, '109.47070464191862', '24.328301853494512', '162.0', '15.0', '2020-09-05 23:15:59');
+INSERT INTO `t_order_position` VALUES (15529, 2, 2691, 456, '109.47017260933944', '24.328169914860673', '160.0', '15.0', '2020-09-05 23:16:04');
+INSERT INTO `t_order_position` VALUES (15530, 2, 2691, 456, '109.46967381853231', '24.32800456074088', '158.0', '15.0', '2020-09-05 23:16:09');
+INSERT INTO `t_order_position` VALUES (15531, 2, 2691, 456, '109.4691750190743', '24.32782253796285', '158.0', '15.0', '2020-09-05 23:16:14');
+INSERT INTO `t_order_position` VALUES (15532, 2, 2691, 456, '109.46867621087422', '24.327623846450685', '156.0', '15.0', '2020-09-05 23:16:19');
+INSERT INTO `t_order_position` VALUES (15533, 2, 2691, 456, '109.46776170674873', '24.32722623687249', '150.0', '15.0', '2020-09-05 23:16:29');
+INSERT INTO `t_order_position` VALUES (15534, 2, 2691, 456, '109.46689705665486', '24.326795157584808', '154.0', '15.0', '2020-09-05 23:16:39');
+INSERT INTO `t_order_position` VALUES (15535, 2, 2691, 456, '109.46643146471519', '24.326546367167396', '154.0', '15.0', '2020-09-05 23:16:44');
+INSERT INTO `t_order_position` VALUES (15536, 2, 2691, 456, '109.46593260926187', '24.32629765099159', '152.0', '14.0', '2020-09-05 23:16:49');
+INSERT INTO `t_order_position` VALUES (15537, 2, 2691, 456, '109.46540048660556', '24.32601568376856', '152.0', '15.0', '2020-09-05 23:16:54');
+INSERT INTO `t_order_position` VALUES (15538, 2, 2691, 456, '109.46486835532014', '24.325750369963224', '154.0', '15.0', '2020-09-05 23:16:59');
+INSERT INTO `t_order_position` VALUES (15539, 2, 2691, 456, '109.4642364406938', '24.325501946154173', '156.0', '15.0', '2020-09-05 23:17:04');
+INSERT INTO `t_order_position` VALUES (15540, 2, 2691, 456, '109.46375418021053', '24.32530314346564', '158.0', '15.0', '2020-09-05 23:17:09');
+INSERT INTO `t_order_position` VALUES (15541, 2, 2691, 456, '109.46323865412492', '24.325137735124496', '158.0', '15.0', '2020-09-05 23:17:14');
+INSERT INTO `t_order_position` VALUES (15542, 2, 2691, 456, '109.46268985859311', '24.3249723957168', '162.0', '15.0', '2020-09-05 23:17:19');
+INSERT INTO `t_order_position` VALUES (15543, 2, 2691, 456, '109.46212442193844', '24.32480708510079', '162.0', '15.0', '2020-09-05 23:17:27');
+INSERT INTO `t_order_position` VALUES (15544, 2, 2691, 456, '109.46154234303064', '24.324641802268868', '100.0', '15.0', '2020-09-05 23:17:30');
+INSERT INTO `t_order_position` VALUES (15545, 2, 2691, 456, '109.46077730929251', '24.324476922533883', '102.0', '15.0', '2020-09-05 23:17:40');
+INSERT INTO `t_order_position` VALUES (15546, 2, 2691, 456, '109.45989583106696', '24.32429562172078', '102.0', '15.0', '2020-09-05 23:18:15');
+INSERT INTO `t_order_position` VALUES (15547, 2, 2691, 456, '109.45931370906773', '24.324213605534293', '102.0', '15.0', '2020-09-05 23:18:20');
+INSERT INTO `t_order_position` VALUES (15548, 2, 2691, 456, '109.45849871864797', '24.32413208737494', '108.0', '15.0', '2020-09-05 23:18:25');
+INSERT INTO `t_order_position` VALUES (15549, 2, 2691, 456, '109.45794983260701', '24.32406663347233', '108.0', '15.0', '2020-09-05 23:18:30');
+INSERT INTO `t_order_position` VALUES (15550, 2, 2691, 456, '109.45726787188703', '24.324068101812102', '110.0', '14.0', '2020-09-05 23:18:35');
+INSERT INTO `t_order_position` VALUES (15551, 2, 2691, 456, '109.45660252587922', '24.32405285690251', '114.0', '13.0', '2020-09-05 23:18:40');
+INSERT INTO `t_order_position` VALUES (15552, 2, 2691, 456, '109.45603696693162', '24.324020725383203', '114.0', '14.0', '2020-09-05 23:18:45');
+INSERT INTO `t_order_position` VALUES (15553, 2, 2691, 456, '109.45543812898197', '24.324038637160296', '114.0', '14.0', '2020-09-05 23:18:50');
+INSERT INTO `t_order_position` VALUES (15554, 2, 2691, 456, '109.45485591068746', '24.32403984008333', '112.0', '14.0', '2020-09-05 23:18:55');
+INSERT INTO `t_order_position` VALUES (15555, 2, 2691, 456, '109.45422377244945', '24.32404113227474', '112.0', '15.0', '2020-09-05 23:19:00');
+INSERT INTO `t_order_position` VALUES (15556, 2, 2691, 456, '109.45359161792015', '24.324042409934062', '112.0', '15.0', '2020-09-05 23:19:05');
+INSERT INTO `t_order_position` VALUES (15557, 2, 2691, 456, '109.4530592645274', '24.324043474494044', '114.0', '15.0', '2020-09-05 23:19:10');
+INSERT INTO `t_order_position` VALUES (15558, 2, 2691, 456, '109.45246035293515', '24.32404465960774', '164.0', '15.0', '2020-09-05 23:20:51');
+INSERT INTO `t_order_position` VALUES (15559, 2, 2691, 456, '109.45147876123168', '24.32387995454195', '108.0', '15.0', '2020-09-05 23:21:01');
+INSERT INTO `t_order_position` VALUES (15560, 2, 2691, 456, '109.45031411188525', '24.323748882771653', '110.0', '15.0', '2020-09-05 23:21:11');
+INSERT INTO `t_order_position` VALUES (15561, 2, 2691, 456, '109.44949882832069', '24.323750408035774', '108.0', '15.0', '2020-09-05 23:21:16');
+INSERT INTO `t_order_position` VALUES (15562, 2, 2691, 456, '109.44889982425315', '24.32371818863593', '108.0', '15.0', '2020-09-05 23:21:21');
+INSERT INTO `t_order_position` VALUES (15563, 2, 2691, 456, '109.44828416303642', '24.323652661715943', '108.0', '15.0', '2020-09-05 23:21:26');
+INSERT INTO `t_order_position` VALUES (15564, 2, 2691, 456, '109.44756864368341', '24.323570636030926', '102.0', '15.0', '2020-09-05 23:21:31');
+INSERT INTO `t_order_position` VALUES (15565, 2, 2691, 456, '109.4484505556084', '24.323602374842455', '54.0', '15.0', '2020-09-05 23:21:51');
+INSERT INTO `t_order_position` VALUES (15566, 2, 2691, 456, '109.44924923818965', '24.323617575135756', '58.0', '13.0', '2020-09-05 23:21:56');
+INSERT INTO `t_order_position` VALUES (15567, 2, 2691, 456, '109.45001461742964', '24.32364947500857', '54.0', '13.0', '2020-09-05 23:22:01');
+INSERT INTO `t_order_position` VALUES (15568, 2, 2691, 456, '109.45059695383308', '24.32366503846061', '60.0', '14.0', '2020-09-05 23:22:06');
+INSERT INTO `t_order_position` VALUES (15569, 2, 2691, 456, '109.45142884042708', '24.323730094309244', '54.0', '13.0', '2020-09-05 23:22:27');
+INSERT INTO `t_order_position` VALUES (15570, 2, 2691, 456, '109.45197786795288', '24.323745691445126', '0.0', '14.0', '2020-09-05 23:22:52');
+INSERT INTO `t_order_position` VALUES (15571, 2, 2691, 456, '109.45267661268971', '24.323777643730566', '56.0', '15.0', '2020-09-05 23:23:12');
+INSERT INTO `t_order_position` VALUES (15572, 2, 2691, 456, '109.45320897743152', '24.32382657220556', '58.0', '14.0', '2020-09-05 23:23:17');
+INSERT INTO `t_order_position` VALUES (15573, 2, 2691, 456, '109.45375796329446', '24.323825471188027', '60.0', '15.0', '2020-09-05 23:23:22');
+INSERT INTO `t_order_position` VALUES (15574, 2, 2691, 456, '109.45432357411225', '24.323857648951527', '58.0', '15.0', '2020-09-05 23:23:27');
+INSERT INTO `t_order_position` VALUES (15575, 2, 2691, 456, '109.45493907387603', '24.323839726886963', '56.0', '15.0', '2020-09-05 23:23:32');
+INSERT INTO `t_order_position` VALUES (15576, 2, 2691, 456, '109.45565436828382', '24.323871568852677', '58.0', '15.0', '2020-09-05 23:23:37');
+INSERT INTO `t_order_position` VALUES (15577, 2, 2691, 456, '109.45641954028221', '24.323836639899177', '58.0', '15.0', '2020-09-05 23:23:42');
+INSERT INTO `t_order_position` VALUES (15578, 2, 2691, 456, '109.45720132453468', '24.323834978419253', '58.0', '14.0', '2020-09-05 23:23:47');
+INSERT INTO `t_order_position` VALUES (15579, 2, 2691, 456, '109.45803298660839', '24.32388317304696', '54.0', '13.0', '2020-09-05 23:23:52');
+INSERT INTO `t_order_position` VALUES (15580, 2, 2691, 456, '109.4588147257545', '24.32394811528479', '50.0', '14.0', '2020-09-05 23:23:57');
+INSERT INTO `t_order_position` VALUES (15581, 2, 2691, 456, '109.45972950248546', '24.32411271202483', '54.0', '14.0', '2020-09-05 23:24:02');
+INSERT INTO `t_order_position` VALUES (15582, 2, 2691, 456, '109.46049456200996', '24.324210970720436', '52.0', '15.0', '2020-09-05 23:24:07');
+INSERT INTO `t_order_position` VALUES (15583, 2, 2691, 456, '109.46127623459691', '24.324375819636053', '52.0', '15.0', '2020-09-05 23:24:13');
+INSERT INTO `t_order_position` VALUES (15584, 2, 2691, 456, '109.46245702157437', '24.324706345855148', '46.0', '15.0', '2020-09-05 23:24:22');
+INSERT INTO `t_order_position` VALUES (15585, 2, 2691, 456, '109.46315549184047', '24.32490466356627', '46.0', '15.0', '2020-09-05 23:24:27');
+INSERT INTO `t_order_position` VALUES (15586, 2, 2691, 456, '109.46382068999894', '24.325169691834123', '42.0', '15.0', '2020-09-05 23:24:32');
+INSERT INTO `t_order_position` VALUES (15587, 2, 2691, 456, '109.46450250069614', '24.325418005011812', '40.0', '14.0', '2020-09-05 23:24:37');
+INSERT INTO `t_order_position` VALUES (15588, 2, 2691, 456, '109.46518429923668', '24.325732951465486', '44.0', '15.0', '2020-09-05 23:24:42');
+INSERT INTO `t_order_position` VALUES (15589, 2, 2691, 456, '109.4658494547105', '24.32606458607132', '40.0', '15.0', '2020-09-05 23:24:50');
+INSERT INTO `t_order_position` VALUES (15590, 2, 2691, 456, '109.46639819435109', '24.326296520080813', '44.0', '15.0', '2020-09-05 23:24:52');
+INSERT INTO `t_order_position` VALUES (15591, 2, 2691, 456, '109.46703006677458', '24.326611550698605', '62.0', '14.0', '2020-09-05 23:25:02');
+INSERT INTO `t_order_position` VALUES (15592, 2, 2691, 456, '109.46781156977477', '24.326909537585074', '42.0', '14.0', '2020-09-05 23:25:33');
+INSERT INTO `t_order_position` VALUES (15593, 2, 2691, 456, '109.46831040039525', '24.327258198045467', '32.0', '15.0', '2020-09-05 23:25:43');
+INSERT INTO `t_order_position` VALUES (15594, 2, 2691, 456, '109.46887572752631', '24.327573361139052', '152.0', '15.0', '2020-09-05 23:25:53');
+INSERT INTO `t_order_position` VALUES (15595, 2, 2691, 456, '109.4683270389091', '24.3274580992581', '152.0', '15.0', '2020-09-05 23:26:03');
+INSERT INTO `t_order_position` VALUES (15596, 2, 2691, 456, '109.46772844948391', '24.327176333526083', '154.0', '15.0', '2020-09-05 23:26:08');
+INSERT INTO `t_order_position` VALUES (15597, 2, 2691, 456, '109.46704670986368', '24.326878099936405', '154.0', '15.0', '2020-09-05 23:26:13');
+INSERT INTO `t_order_position` VALUES (15598, 2, 2691, 456, '109.46643146471519', '24.326546367167396', '150.0', '15.0', '2020-09-05 23:26:18');
+INSERT INTO `t_order_position` VALUES (15599, 2, 2691, 456, '109.46579957973493', '24.326231325440464', '152.0', '15.0', '2020-09-05 23:26:23');
+INSERT INTO `t_order_position` VALUES (15600, 2, 2691, 456, '109.46516768035555', '24.325899610024624', '154.0', '15.0', '2020-09-05 23:26:28');
+INSERT INTO `t_order_position` VALUES (15601, 2, 2691, 456, '109.46451914035438', '24.325601245932948', '156.0', '15.0', '2020-09-05 23:26:33');
+INSERT INTO `t_order_position` VALUES (15602, 2, 2691, 456, '109.4637874399823', '24.325319726960526', '158.0', '15.0', '2020-09-05 23:26:40');
+INSERT INTO `t_order_position` VALUES (15603, 2, 2691, 456, '109.46305572184949', '24.325054853280967', '160.0', '15.0', '2020-09-05 23:26:43');
+INSERT INTO `t_order_position` VALUES (15604, 2, 2691, 456, '109.46229072808613', '24.324856687036004', '164.0', '15.0', '2020-09-05 23:26:50');
+INSERT INTO `t_order_position` VALUES (15605, 2, 2691, 456, '109.46167539141685', '24.32469148348583', '100.0', '15.0', '2020-09-05 23:26:53');
+INSERT INTO `t_order_position` VALUES (15606, 2, 2691, 456, '109.46117645979729', '24.324559326981202', '164.0', '15.0', '2020-09-05 23:26:58');
+INSERT INTO `t_order_position` VALUES (15607, 2, 2691, 456, '109.46052783541793', '24.324394176138046', '102.0', '14.0', '2020-09-05 23:27:18');
+INSERT INTO `t_order_position` VALUES (15608, 2, 2691, 456, '109.45954656037212', '24.32426307521689', '104.0', '15.0', '2020-09-05 23:27:28');
+INSERT INTO `t_order_position` VALUES (15609, 2, 2691, 456, '109.45879810598366', '24.324164755739755', '106.0', '15.0', '2020-09-05 23:27:33');
+INSERT INTO `t_order_position` VALUES (15610, 2, 2691, 456, '109.45798309949559', '24.324083223278254', '108.0', '15.0', '2020-09-05 23:27:38');
+INSERT INTO `t_order_position` VALUES (15611, 2, 2691, 456, '109.45718470081252', '24.324001632403743', '110.0', '14.0', '2020-09-05 23:27:43');
+INSERT INTO `t_order_position` VALUES (15612, 2, 2691, 456, '109.45638628109701', '24.323986666693592', '112.0', '14.0', '2020-09-05 23:27:48');
+INSERT INTO `t_order_position` VALUES (15613, 2, 2691, 456, '109.45558783908227', '24.3240216640318', '114.0', '14.0', '2020-09-05 23:27:53');
+INSERT INTO `t_order_position` VALUES (15614, 2, 2691, 456, '109.45492245061257', '24.324039703223008', '112.0', '12.0', '2020-09-05 23:27:58');
+INSERT INTO `t_order_position` VALUES (15615, 2, 2691, 456, '109.45420713701327', '24.32404116608409', '114.0', '12.0', '2020-09-05 23:28:03');
+INSERT INTO `t_order_position` VALUES (15616, 2, 2691, 456, '109.45362488961955', '24.32404234305317', '114.0', '13.0', '2020-09-05 23:28:08');
+INSERT INTO `t_order_position` VALUES (15617, 2, 2691, 456, '109.45282635428475', '24.324010613266804', '110.0', '15.0', '2020-09-05 23:28:18');
+INSERT INTO `t_order_position` VALUES (15618, 2, 2691, 456, '109.45217755957445', '24.324578393684458', '158.0', '15.0', '2020-09-05 23:28:28');
+INSERT INTO `t_order_position` VALUES (15619, 2, 2691, 456, '109.45201122864795', '24.325228531058283', '160.0', '15.0', '2020-09-05 23:28:34');
+INSERT INTO `t_order_position` VALUES (15620, 2, 2691, 456, '109.45184489851391', '24.32591199145931', '160.0', '14.0', '2020-09-05 23:28:39');
+INSERT INTO `t_order_position` VALUES (15621, 2, 2691, 456, '109.45167856624528', '24.326578789311583', '156.0', '14.0', '2020-09-05 23:28:44');
+INSERT INTO `t_order_position` VALUES (15622, 2, 2691, 456, '109.45151222793938', '24.327162277052715', '160.0', '14.0', '2020-09-05 23:28:49');
+INSERT INTO `t_order_position` VALUES (15623, 2, 2691, 456, '109.45136252393077', '24.327712408192', '158.0', '15.0', '2020-09-05 23:28:54');
+INSERT INTO `t_order_position` VALUES (15624, 2, 2691, 456, '109.45117954685547', '24.328312588307835', '154.0', '15.0', '2020-09-05 23:28:59');
+INSERT INTO `t_order_position` VALUES (15625, 2, 2691, 456, '109.45089674704428', '24.328996267703452', '148.0', '15.0', '2020-09-05 23:29:04');
+INSERT INTO `t_order_position` VALUES (15626, 2, 2691, 456, '109.45046420097198', '24.329663566288694', '144.0', '15.0', '2020-09-05 23:29:09');
+INSERT INTO `t_order_position` VALUES (15627, 2, 2691, 456, '109.44999836726696', '24.33028093470697', '146.0', '15.0', '2020-09-05 23:29:14');
+INSERT INTO `t_order_position` VALUES (15628, 2, 2691, 456, '109.44953252425088', '24.33089829510151', '146.0', '15.0', '2020-09-05 23:29:19');
+INSERT INTO `t_order_position` VALUES (15629, 2, 2691, 456, '109.44906667382607', '24.331548971309225', '144.0', '15.0', '2020-09-05 23:29:24');
+INSERT INTO `t_order_position` VALUES (15630, 2, 2691, 456, '109.44856753423586', '24.33218303804249', '144.0', '14.0', '2020-09-05 23:29:29');
+INSERT INTO `t_order_position` VALUES (15631, 2, 2691, 456, '109.44810166427006', '24.332833697436186', '144.0', '14.0', '2020-09-05 23:29:34');
+INSERT INTO `t_order_position` VALUES (15632, 2, 2691, 456, '109.44770233819824', '24.333367596182143', '146.0', '13.0', '2020-09-05 23:29:39');
+INSERT INTO `t_order_position` VALUES (15633, 2, 2691, 456, '109.44730300608924', '24.333918150853076', '144.0', '13.0', '2020-09-05 23:29:44');
+INSERT INTO `t_order_position` VALUES (15634, 2, 2691, 456, '109.4468870272879', '24.334485390616518', '144.0', '13.0', '2020-09-05 23:29:49');
+INSERT INTO `t_order_position` VALUES (15635, 2, 2691, 456, '109.44652095772238', '24.334952565129065', '144.0', '13.0', '2020-09-05 23:29:54');
+INSERT INTO `t_order_position` VALUES (15636, 2, 2691, 456, '109.44597182851672', '24.335420049300904', '112.0', '14.0', '2020-09-05 23:30:14');
+INSERT INTO `t_order_position` VALUES (15637, 2, 2691, 456, '109.44542265847731', '24.33542098570769', '112.0', '14.0', '2020-09-05 23:30:19');
+INSERT INTO `t_order_position` VALUES (15638, 2, 2691, 456, '109.44470705192637', '24.335405525663525', '112.0', '15.0', '2020-09-05 23:30:24');
+INSERT INTO `t_order_position` VALUES (15639, 2, 2691, 456, '109.44390820997806', '24.33542350485663', '112.0', '15.0', '2020-09-05 23:30:29');
+INSERT INTO `t_order_position` VALUES (15640, 2, 2691, 456, '109.44312597946178', '24.335391445405318', '112.0', '15.0', '2020-09-05 23:30:34');
+INSERT INTO `t_order_position` VALUES (15641, 2, 2691, 456, '109.44234372280944', '24.335392684804287', '114.0', '15.0', '2020-09-05 23:30:39');
+INSERT INTO `t_order_position` VALUES (15642, 2, 2691, 456, '109.44159472620805', '24.335377185765964', '112.0', '15.0', '2020-09-05 23:30:44');
+INSERT INTO `t_order_position` VALUES (15643, 2, 2691, 456, '109.44082905831351', '24.335361688453588', '110.0', '15.0', '2020-09-05 23:30:49');
+INSERT INTO `t_order_position` VALUES (15644, 2, 2691, 456, '109.4401632387278', '24.335362681285762', '112.0', '15.0', '2020-09-05 23:30:54');
+INSERT INTO `t_order_position` VALUES (15645, 2, 2691, 456, '109.43948075106775', '24.335347017602896', '112.0', '15.0', '2020-09-05 23:32:20');
+INSERT INTO `t_order_position` VALUES (15646, 2, 2691, 456, '109.43841536105516', '24.335331874575935', '110.0', '15.0', '2020-09-05 23:32:30');
+INSERT INTO `t_order_position` VALUES (15647, 2, 2691, 456, '109.4377827608191', '24.335332753627675', '110.0', '15.0', '2020-09-05 23:32:35');
+INSERT INTO `t_order_position` VALUES (15648, 2, 2691, 456, '109.43715014051253', '24.335316953588375', '114.0', '15.0', '2020-09-05 23:32:40');
+INSERT INTO `t_order_position` VALUES (15649, 2, 2691, 456, '109.43628441885191', '24.33530144327508', '110.0', '15.0', '2020-09-05 23:32:50');
+INSERT INTO `t_order_position` VALUES (15650, 2, 2691, 456, '109.43521886497534', '24.33526949236119', '112.0', '15.0', '2020-09-05 23:33:00');
+INSERT INTO `t_order_position` VALUES (15651, 2, 2691, 456, '109.4346028157594', '24.33523693973692', '110.0', '15.0', '2020-09-05 23:33:05');
+INSERT INTO `t_order_position` VALUES (15652, 2, 2691, 456, '109.43398674908997', '24.335221032586855', '110.0', '15.0', '2020-09-05 23:33:10');
+INSERT INTO `t_order_position` VALUES (15653, 2, 2691, 456, '109.43338731607777', '24.33522175112307', '110.0', '15.0', '2020-09-05 23:33:15');
+INSERT INTO `t_order_position` VALUES (15654, 2, 2691, 456, '109.43282116878332', '24.33522241529719', '112.0', '15.0', '2020-09-05 23:33:20');
+INSERT INTO `t_order_position` VALUES (15655, 2, 2691, 456, '109.4321717442232', '24.33520649782829', '112.0', '15.0', '2020-09-05 23:33:30');
+INSERT INTO `t_order_position` VALUES (15656, 2, 2691, 456, '109.43168886033781', '24.33579020916555', '0.0', '15.0', '2020-09-05 23:33:45');
+INSERT INTO `t_order_position` VALUES (15657, 2, 2691, 456, '109.43177215519874', '24.33633996253721', '166.0', '12.0', '2020-09-05 23:33:50');
+INSERT INTO `t_order_position` VALUES (15658, 2, 2691, 456, '109.43178883800888', '24.336856466206967', '0.0', '12.0', '2020-09-05 23:33:55');
+INSERT INTO `t_order_position` VALUES (15659, 2, 2691, 456, '109.43175556828254', '24.337456335867437', '0.0', '12.0', '2020-09-05 23:34:00');
+INSERT INTO `t_order_position` VALUES (15660, 2, 2691, 456, '109.43175560742877', '24.338122816808813', '0.0', '13.0', '2020-09-05 23:34:05');
+INSERT INTO `t_order_position` VALUES (15661, 2, 2691, 456, '109.43178894663922', '24.338705950807306', '166.0', '13.0', '2020-09-05 23:34:10');
+INSERT INTO `t_order_position` VALUES (15662, 2, 2691, 456, '109.43177233135646', '24.339339126895908', '166.0', '13.0', '2020-09-05 23:34:16');
+INSERT INTO `t_order_position` VALUES (15663, 2, 2691, 456, '109.43177237050304', '24.3400056088489', '166.0', '13.0', '2020-09-05 23:34:21');
+INSERT INTO `t_order_position` VALUES (15664, 2, 2691, 456, '109.43177241552179', '24.340772063538797', '164.0', '15.0', '2020-09-05 23:34:25');
+INSERT INTO `t_order_position` VALUES (15665, 2, 2691, 456, '109.43173913989789', '24.34127196264338', '0.0', '13.0', '2020-09-05 23:34:45');
+INSERT INTO `t_order_position` VALUES (15666, 2, 2691, 456, '109.43100643600407', '24.341606007779', '110.0', '15.0', '2020-09-05 23:35:26');
+INSERT INTO `t_order_position` VALUES (15667, 2, 2691, 456, '109.43044022245847', '24.341606612547093', '114.0', '13.0', '2020-09-05 23:35:31');
+INSERT INTO `t_order_position` VALUES (15668, 2, 2691, 456, '109.42990730307109', '24.341640492911555', '114.0', '13.0', '2020-09-05 23:35:36');
+INSERT INTO `t_order_position` VALUES (15669, 2, 2691, 456, '109.42890803761414', '24.341641501804528', '114.0', '12.0', '2020-09-05 23:35:46');
+INSERT INTO `t_order_position` VALUES (15670, 2, 2691, 456, '109.42807527752616', '24.34162564649846', '108.0', '10.0', '2020-09-05 23:35:56');
+INSERT INTO `t_order_position` VALUES (15671, 2, 2691, 456, '109.42702595381772', '24.34165994307343', '112.0', '13.0', '2020-09-05 23:36:06');
+INSERT INTO `t_order_position` VALUES (15672, 2, 2691, 456, '109.42649294195255', '24.3416604181276', '112.0', '13.0', '2020-09-05 23:36:11');
+INSERT INTO `t_order_position` VALUES (15673, 2, 2691, 456, '109.42584331453357', '24.341660979875112', '114.0', '14.0', '2020-09-05 23:36:21');
+INSERT INTO `t_order_position` VALUES (15674, 2, 2694, 801, '109.32380244205594', '24.254787353475518', '0.0', '15.0', '2020-09-06 05:33:54');
+INSERT INTO `t_order_position` VALUES (15675, 2, 2694, 801, '109.32442065348431', '24.25458858254623', '70.0', '15.0', '2020-09-06 05:36:05');
+INSERT INTO `t_order_position` VALUES (15676, 2, 2694, 801, '109.32488848694538', '24.254372869731927', '62.0', '15.0', '2020-09-06 05:36:25');
+INSERT INTO `t_order_position` VALUES (15677, 2, 2694, 801, '109.32569051230365', '24.254391043208237', '58.0', '15.0', '2020-09-06 05:36:30');
+INSERT INTO `t_order_position` VALUES (15678, 2, 2694, 801, '109.3263421595051', '24.254392274630938', '56.0', '15.0', '2020-09-06 05:36:35');
+INSERT INTO `t_order_position` VALUES (15679, 2, 2694, 801, '109.32696039352038', '24.254443427887633', '60.0', '15.0', '2020-09-06 05:36:40');
+INSERT INTO `t_order_position` VALUES (15680, 2, 2694, 801, '109.32766217216634', '24.25446141924758', '62.0', '15.0', '2020-09-06 05:36:45');
+INSERT INTO `t_order_position` VALUES (15681, 2, 2694, 801, '109.3283472414788', '24.254446058709213', '62.0', '15.0', '2020-09-06 05:36:50');
+INSERT INTO `t_order_position` VALUES (15682, 2, 2694, 801, '109.32894876478451', '24.254397218815424', '60.0', '15.0', '2020-09-06 05:38:56');
+INSERT INTO `t_order_position` VALUES (15683, 2, 2694, 801, '109.32945003338861', '24.254331528162883', '60.0', '15.0', '2020-09-06 05:39:01');
+INSERT INTO `t_order_position` VALUES (15684, 2, 2694, 801, '109.33016852657283', '24.25436621786464', '62.0', '15.0', '2020-09-06 05:39:06');
+INSERT INTO `t_order_position` VALUES (15685, 2, 2694, 801, '109.33092043380756', '24.254317667103308', '64.0', '15.0', '2020-09-06 05:39:11');
+INSERT INTO `t_order_position` VALUES (15686, 2, 2694, 801, '109.33137155027264', '24.253802035221025', '106.0', '15.0', '2020-09-06 05:39:21');
+INSERT INTO `t_order_position` VALUES (15687, 2, 2694, 801, '109.33150518770036', '24.253185832453646', '108.0', '15.0', '2020-09-06 05:39:26');
+INSERT INTO `t_order_position` VALUES (15688, 2, 2694, 801, '109.33167224336724', '24.25256969364024', '102.0', '15.0', '2020-09-06 05:39:31');
+INSERT INTO `t_order_position` VALUES (15689, 2, 2694, 801, '109.33192285711615', '24.25217030735258', '70.0', '15.0', '2020-09-06 05:39:36');
+INSERT INTO `t_order_position` VALUES (15690, 2, 2694, 801, '109.33242412104428', '24.25200465301959', '54.0', '15.0', '2020-09-06 05:39:41');
+INSERT INTO `t_order_position` VALUES (15691, 2, 2694, 801, '109.33292543187663', '24.252655387836967', '4.0', '15.0', '2020-09-06 05:39:52');
+INSERT INTO `t_order_position` VALUES (15692, 2, 2694, 801, '109.33295889141765', '24.25337187497643', '6.0', '15.0', '2020-09-06 05:39:57');
+INSERT INTO `t_order_position` VALUES (15693, 2, 2694, 801, '109.33302576340482', '24.253988460023432', '4.0', '15.0', '2020-09-06 05:40:02');
+INSERT INTO `t_order_position` VALUES (15694, 2, 2694, 801, '109.33364405389233', '24.254922655988832', '30.0', '15.0', '2020-09-06 05:40:12');
+INSERT INTO `t_order_position` VALUES (15695, 2, 2694, 801, '109.33417877144419', '24.255390183950144', '30.0', '15.0', '2020-09-06 05:40:17');
+INSERT INTO `t_order_position` VALUES (15696, 2, 2694, 801, '109.33483045363025', '24.25589125655737', '30.0', '15.0', '2020-09-06 05:40:22');
+INSERT INTO `t_order_position` VALUES (15697, 2, 2694, 801, '109.33551555170432', '24.256375731139233', '30.0', '15.0', '2020-09-06 05:40:27');
+INSERT INTO `t_order_position` VALUES (15698, 2, 2694, 801, '109.33608368539683', '24.256859982371672', '22.0', '15.0', '2020-09-06 05:40:32');
+INSERT INTO `t_order_position` VALUES (15699, 2, 2694, 801, '109.33658498594154', '24.25741075008657', '14.0', '15.0', '2020-09-06 05:40:37');
+INSERT INTO `t_order_position` VALUES (15700, 2, 2694, 801, '109.33686907724548', '24.25809439319495', '18.0', '15.0', '2020-09-06 05:40:42');
+INSERT INTO `t_order_position` VALUES (15701, 2, 2694, 801, '109.33718658406247', '24.258744777629907', '24.0', '15.0', '2020-09-06 05:40:47');
+INSERT INTO `t_order_position` VALUES (15702, 2, 2694, 801, '109.33758762992589', '24.259312015074194', '24.0', '15.0', '2020-09-06 05:40:52');
+INSERT INTO `t_order_position` VALUES (15703, 2, 2694, 801, '109.33802209262214', '24.259879315425735', '30.0', '15.0', '2020-09-06 05:40:57');
+INSERT INTO `t_order_position` VALUES (15704, 2, 2694, 801, '109.33845653983879', '24.260196698881433', '44.0', '15.0', '2020-09-06 05:41:02');
+INSERT INTO `t_order_position` VALUES (15705, 2, 2694, 801, '109.33900794033761', '24.26039767507052', '42.0', '15.0', '2020-09-06 05:41:07');
+INSERT INTO `t_order_position` VALUES (15706, 2, 2694, 801, '109.33967630433497', '24.260682175949416', '42.0', '15.0', '2020-09-06 05:41:12');
+INSERT INTO `t_order_position` VALUES (15707, 2, 2694, 801, '109.34037808044616', '24.26093341513994', '52.0', '15.0', '2020-09-06 05:41:17');
+INSERT INTO `t_order_position` VALUES (15708, 2, 2694, 801, '109.34104642913981', '24.26106796092536', '58.0', '15.0', '2020-09-06 05:41:27');
+INSERT INTO `t_order_position` VALUES (15709, 2, 2694, 801, '109.34178159905443', '24.2610526791444', '64.0', '15.0', '2020-09-06 05:41:37');
+INSERT INTO `t_order_position` VALUES (15710, 2, 2694, 801, '109.34229954981811', '24.26092035986732', '68.0', '15.0', '2020-09-06 05:42:07');
+INSERT INTO `t_order_position` VALUES (15711, 2, 2694, 801, '109.34315165708732', '24.260705356123385', '72.0', '15.0', '2020-09-06 05:42:17');
+INSERT INTO `t_order_position` VALUES (15712, 2, 2694, 801, '109.34376984752129', '24.26053989535136', '70.0', '15.0', '2020-09-06 05:42:22');
+INSERT INTO `t_order_position` VALUES (15713, 2, 2694, 801, '109.34445486282057', '24.260324571761092', '72.0', '15.0', '2020-09-06 05:42:27');
+INSERT INTO `t_order_position` VALUES (15714, 2, 2694, 801, '109.34515657977043', '24.260092613586547', '72.0', '15.0', '2020-09-06 05:42:33');
+INSERT INTO `t_order_position` VALUES (15715, 2, 2694, 801, '109.34585829291449', '24.259893972770016', '70.0', '15.0', '2020-09-06 05:42:38');
+INSERT INTO `t_order_position` VALUES (15716, 2, 2694, 801, '109.3465265830626', '24.259661943542632', '70.0', '15.0', '2020-09-06 05:42:43');
+INSERT INTO `t_order_position` VALUES (15717, 2, 2694, 801, '109.34717816300937', '24.259479862252423', '60.0', '15.0', '2020-09-06 05:42:48');
+INSERT INTO `t_order_position` VALUES (15718, 2, 2694, 801, '109.34772950156056', '24.259430882658005', '54.0', '15.0', '2020-09-06 05:42:53');
+INSERT INTO `t_order_position` VALUES (15719, 2, 2694, 801, '109.34831425788315', '24.2595152485791', '48.0', '15.0', '2020-09-06 05:42:58');
+INSERT INTO `t_order_position` VALUES (15720, 2, 2694, 801, '109.34896584394602', '24.259716358314552', '164.0', '15.0', '2020-09-06 05:43:08');
+INSERT INTO `t_order_position` VALUES (15721, 2, 2694, 801, '109.34803023922936', '24.259564717210818', '112.0', '15.0', '2020-09-06 05:43:23');
+INSERT INTO `t_order_position` VALUES (15722, 2, 2694, 801, '109.34729512133194', '24.259596702985014', '116.0', '15.0', '2020-09-06 05:43:33');
+INSERT INTO `t_order_position` VALUES (15723, 2, 2694, 801, '109.3465265878914', '24.259745248941577', '120.0', '15.0', '2020-09-06 05:43:43');
+INSERT INTO `t_order_position` VALUES (15724, 2, 2694, 801, '109.34604207890995', '24.25992763252842', '120.0', '15.0', '2020-09-06 05:43:48');
+INSERT INTO `t_order_position` VALUES (15725, 2, 2694, 801, '109.34525683134488', '24.26017610390803', '122.0', '15.0', '2020-09-06 05:43:58');
+INSERT INTO `t_order_position` VALUES (15726, 2, 2694, 801, '109.34442144887636', '24.26035783205541', '120.0', '15.0', '2020-09-06 05:44:08');
+INSERT INTO `t_order_position` VALUES (15727, 2, 2694, 801, '109.34375314525165', '24.260639830845804', '122.0', '15.0', '2020-09-06 05:44:18');
+INSERT INTO `t_order_position` VALUES (15728, 2, 2694, 801, '109.343201785421', '24.26077209386049', '134.0', '15.0', '2020-09-06 05:44:28');
+INSERT INTO `t_order_position` VALUES (15729, 2, 2694, 801, '109.34311827644771', '24.261321754334546', '20.0', '15.0', '2020-09-06 05:45:18');
+INSERT INTO `t_order_position` VALUES (15730, 2, 2694, 801, '109.3435193025533', '24.26185565604474', '20.0', '15.0', '2020-09-06 05:45:23');
+INSERT INTO `t_order_position` VALUES (15731, 2, 2694, 801, '109.34393703794521', '24.262439570905244', '20.0', '15.0', '2020-09-06 05:45:29');
+INSERT INTO `t_order_position` VALUES (15732, 2, 2694, 801, '109.34438819029367', '24.263073529681893', '20.0', '15.0', '2020-09-06 05:45:34');
+INSERT INTO `t_order_position` VALUES (15733, 2, 2694, 801, '109.34482263158853', '24.263690794838503', '20.0', '15.0', '2020-09-06 05:45:39');
+INSERT INTO `t_order_position` VALUES (15734, 2, 2694, 801, '109.34530719794739', '24.26437479536595', '20.0', '15.0', '2020-09-06 05:45:44');
+INSERT INTO `t_order_position` VALUES (15735, 2, 2694, 801, '109.34584188553728', '24.26507554713957', '26.0', '15.0', '2020-09-06 05:45:49');
+INSERT INTO `t_order_position` VALUES (15736, 2, 2694, 801, '109.34646010834759', '24.265793110452204', '22.0', '15.0', '2020-09-06 05:45:54');
+INSERT INTO `t_order_position` VALUES (15737, 2, 2694, 801, '109.34706161986702', '24.2665273006238', '20.0', '15.0', '2020-09-06 05:45:59');
+INSERT INTO `t_order_position` VALUES (15738, 2, 2694, 801, '109.34741251420645', '24.267211047618236', '20.0', '15.0', '2020-09-06 05:46:04');
+INSERT INTO `t_order_position` VALUES (15739, 2, 2694, 801, '109.34788035560238', '24.267861683546467', '20.0', '15.0', '2020-09-06 05:46:09');
+INSERT INTO `t_order_position` VALUES (15740, 2, 2694, 801, '109.34839831817506', '24.26856239135543', '20.0', '15.0', '2020-09-06 05:46:14');
+INSERT INTO `t_order_position` VALUES (15741, 2, 2694, 801, '109.34888286101763', '24.26922971357346', '20.0', '15.0', '2020-09-06 05:46:19');
+INSERT INTO `t_order_position` VALUES (15742, 2, 2694, 801, '109.34933398280627', '24.26983032829817', '20.0', '15.0', '2020-09-06 05:46:24');
+INSERT INTO `t_order_position` VALUES (15743, 2, 2694, 801, '109.34973498027385', '24.270414189613234', '20.0', '15.0', '2020-09-06 05:46:29');
+INSERT INTO `t_order_position` VALUES (15744, 2, 2694, 801, '109.35013597429223', '24.27098138780429', '20.0', '15.0', '2020-09-06 05:46:34');
+INSERT INTO `t_order_position` VALUES (15745, 2, 2694, 801, '109.35053696577431', '24.271548584012155', '24.0', '15.0', '2020-09-06 05:46:39');
+INSERT INTO `t_order_position` VALUES (15746, 2, 2694, 801, '109.35092124725132', '24.272099087311453', '20.0', '15.0', '2020-09-06 05:46:44');
+INSERT INTO `t_order_position` VALUES (15747, 2, 2694, 801, '109.35140577298542', '24.27279971705717', '20.0', '15.0', '2020-09-06 05:46:49');
+INSERT INTO `t_order_position` VALUES (15748, 2, 2694, 801, '109.35177334367027', '24.273366847768358', '24.0', '15.0', '2020-09-06 05:46:54');
+INSERT INTO `t_order_position` VALUES (15749, 2, 2694, 801, '109.35217432617546', '24.273967357871335', '20.0', '15.0', '2020-09-06 05:47:00');
+INSERT INTO `t_order_position` VALUES (15750, 2, 2694, 801, '109.35259201184688', '24.27456789502165', '20.0', '15.0', '2020-09-06 05:47:04');
+INSERT INTO `t_order_position` VALUES (15751, 2, 2694, 801, '109.35299298856297', '24.275168400565224', '20.0', '15.0', '2020-09-06 05:47:09');
+INSERT INTO `t_order_position` VALUES (15752, 2, 2694, 801, '109.35339396042677', '24.2757355812967', '20.0', '15.0', '2020-09-06 05:47:14');
+INSERT INTO `t_order_position` VALUES (15753, 2, 2694, 801, '109.35377822371542', '24.276302730723206', '20.0', '15.0', '2020-09-06 05:47:19');
+INSERT INTO `t_order_position` VALUES (15754, 2, 2694, 801, '109.35422930903903', '24.27691997701418', '20.0', '15.0', '2020-09-06 05:47:24');
+INSERT INTO `t_order_position` VALUES (15755, 2, 2694, 801, '109.35464698078427', '24.27755382406252', '24.0', '15.0', '2020-09-06 05:47:29');
+INSERT INTO `t_order_position` VALUES (15756, 2, 2694, 801, '109.35511476468264', '24.278187754092585', '20.0', '15.0', '2020-09-06 05:47:34');
+INSERT INTO `t_order_position` VALUES (15757, 2, 2694, 801, '109.35554913611989', '24.278854946324074', '20.0', '15.0', '2020-09-06 05:47:39');
+INSERT INTO `t_order_position` VALUES (15758, 2, 2694, 801, '109.35598350180398', '24.279488812918377', '24.0', '15.0', '2020-09-06 05:47:44');
+INSERT INTO `t_order_position` VALUES (15759, 2, 2694, 801, '109.35645127499512', '24.280156055311974', '20.0', '15.0', '2020-09-06 05:47:50');
+INSERT INTO `t_order_position` VALUES (15760, 2, 2694, 801, '109.3568856306042', '24.280756592705742', '24.0', '15.0', '2020-09-06 05:47:54');
+INSERT INTO `t_order_position` VALUES (15761, 2, 2694, 801, '109.35730327971957', '24.2813904215698', '24.0', '15.0', '2020-09-06 05:48:00');
+INSERT INTO `t_order_position` VALUES (15762, 2, 2694, 801, '109.35798821382366', '24.282391240011528', '24.0', '15.0', '2020-09-06 05:48:10');
+INSERT INTO `t_order_position` VALUES (15763, 2, 2694, 801, '109.35850608454943', '24.28315851651528', '18.0', '14.0', '2020-09-06 05:48:15');
+INSERT INTO `t_order_position` VALUES (15764, 2, 2694, 801, '109.3587566724986', '24.28365876863454', '20.0', '15.0', '2020-09-06 05:48:20');
+INSERT INTO `t_order_position` VALUES (15765, 2, 2694, 801, '109.35917430328767', '24.284275922143046', '24.0', '15.0', '2020-09-06 05:48:25');
+INSERT INTO `t_order_position` VALUES (15766, 2, 2694, 801, '109.35960863553427', '24.284926422209736', '24.0', '15.0', '2020-09-06 05:48:37');
+INSERT INTO `t_order_position` VALUES (15767, 2, 2694, 801, '109.35999284834935', '24.285493530887585', '24.0', '15.0', '2020-09-06 05:48:37');
+INSERT INTO `t_order_position` VALUES (15768, 2, 2694, 801, '109.36034364727946', '24.285993937481603', '24.0', '15.0', '2020-09-06 05:48:41');
+INSERT INTO `t_order_position` VALUES (15769, 2, 2694, 801, '109.3606777401351', '24.286494314895826', '24.0', '15.0', '2020-09-06 05:48:46');
+INSERT INTO `t_order_position` VALUES (15770, 2, 2694, 801, '109.3609951243807', '24.286944679308522', '20.0', '15.0', '2020-09-06 05:48:53');
+INSERT INTO `t_order_position` VALUES (15771, 2, 2694, 801, '109.36134591574039', '24.28746174026146', '20.0', '15.0', '2020-09-06 05:48:59');
+INSERT INTO `t_order_position` VALUES (15772, 2, 2694, 801, '109.36171341450753', '24.28811211625194', '16.0', '15.0', '2020-09-06 05:49:00');
+INSERT INTO `t_order_position` VALUES (15773, 2, 2694, 801, '109.36203080224415', '24.28876241081693', '12.0', '15.0', '2020-09-06 05:49:10');
+INSERT INTO `t_order_position` VALUES (15774, 2, 2694, 801, '109.36224796985091', '24.2893625622769', '10.0', '15.0', '2020-09-06 05:49:10');
+INSERT INTO `t_order_position` VALUES (15775, 2, 2698, 215, '109.42702372453637', '24.303720964325716', '0.0', '15.0', '2020-09-07 08:31:56');
+INSERT INTO `t_order_position` VALUES (15776, 2, 2698, 215, '109.42644073609782', '24.303621513760216', '100.0', '15.0', '2020-09-07 08:32:26');
+INSERT INTO `t_order_position` VALUES (15777, 2, 2698, 215, '109.42575778715856', '24.303538794360488', '110.0', '15.0', '2020-09-07 08:32:56');
+INSERT INTO `t_order_position` VALUES (15778, 2, 2698, 215, '109.42500818656913', '24.303522754598376', '110.0', '15.0', '2020-09-07 08:33:06');
+INSERT INTO `t_order_position` VALUES (15779, 2, 2698, 215, '109.42435850785256', '24.30347328832396', '108.0', '15.0', '2020-09-07 08:33:16');
+INSERT INTO `t_order_position` VALUES (15780, 2, 2698, 215, '109.4235755341642', '24.303423903154748', '106.0', '15.0', '2020-09-07 08:33:26');
+INSERT INTO `t_order_position` VALUES (15781, 2, 2698, 215, '109.42299244789777', '24.303374346957746', '112.0', '15.0', '2020-09-07 08:33:36');
+INSERT INTO `t_order_position` VALUES (15782, 2, 2698, 215, '109.42227606008639', '24.303291544564882', '106.0', '15.0', '2020-09-07 08:33:46');
+INSERT INTO `t_order_position` VALUES (15783, 2, 2698, 215, '109.4215596503784', '24.303275365332656', '108.0', '15.0', '2020-09-07 08:33:56');
+INSERT INTO `t_order_position` VALUES (15784, 2, 2698, 215, '109.42100982983577', '24.303259058211054', '108.0', '15.0', '2020-09-07 08:34:07');
+INSERT INTO `t_order_position` VALUES (15785, 2, 2698, 215, '109.42039334640295', '24.30324277781863', '164.0', '15.0', '2020-09-07 08:34:22');
+INSERT INTO `t_order_position` VALUES (15786, 2, 2698, 215, '109.41979349943865', '24.303109839600374', '124.0', '15.0', '2020-09-07 08:34:32');
+INSERT INTO `t_order_position` VALUES (15787, 2, 2698, 215, '109.42006005669029', '24.302426559594476', '94.0', '15.0', '2020-09-07 08:34:42');
+INSERT INTO `t_order_position` VALUES (15788, 2, 2698, 215, '109.42034328998834', '24.302043174818344', '92.0', '15.0', '2020-09-07 08:34:47');
+INSERT INTO `t_order_position` VALUES (15789, 2, 2698, 215, '109.42065984076314', '24.301626442890434', '94.0', '15.0', '2020-09-07 08:34:52');
+INSERT INTO `t_order_position` VALUES (15790, 2, 2698, 215, '109.42054323480204', '24.30207637665138', '0.0', '15.0', '2020-09-07 08:37:13');
+INSERT INTO `t_order_position` VALUES (15791, 2, 2698, 215, '109.42022668412771', '24.30252643018917', '150.0', '15.0', '2020-09-07 08:37:28');
+INSERT INTO `t_order_position` VALUES (15792, 2, 2698, 215, '109.41987680661528', '24.30302648346507', '144.0', '15.0', '2020-09-07 08:38:18');
+INSERT INTO `t_order_position` VALUES (15793, 2, 2698, 215, '109.41959357841792', '24.30360980153599', '162.0', '15.0', '2020-09-07 08:38:28');
+INSERT INTO `t_order_position` VALUES (15794, 2, 2698, 215, '109.41937701609807', '24.304509649371877', '158.0', '15.0', '2020-09-07 08:38:38');
+INSERT INTO `t_order_position` VALUES (15795, 2, 2698, 215, '109.41916044456141', '24.305292864452984', '160.0', '15.0', '2020-09-07 08:38:48');
+INSERT INTO `t_order_position` VALUES (15796, 2, 2698, 215, '109.41891055214612', '24.306209388721115', '160.0', '15.0', '2020-09-07 08:38:59');
+INSERT INTO `t_order_position` VALUES (15797, 2, 2698, 215, '109.41874395382384', '24.306792634307627', '160.0', '15.0', '2020-09-07 08:39:04');
+INSERT INTO `t_order_position` VALUES (15798, 2, 2698, 215, '109.4185940175672', '24.307375870183854', '160.0', '15.0', '2020-09-07 08:39:08');
+INSERT INTO `t_order_position` VALUES (15799, 2, 2698, 215, '109.4184774082936', '24.307975749704323', '160.0', '15.0', '2020-09-07 08:39:13');
+INSERT INTO `t_order_position` VALUES (15800, 2, 2698, 215, '109.41824417104273', '24.30889225964733', '160.0', '15.0', '2020-09-07 08:39:23');
+INSERT INTO `t_order_position` VALUES (15801, 2, 2698, 215, '109.4181108899852', '24.309392176429125', '160.0', '15.0', '2020-09-07 08:39:28');
+INSERT INTO `t_order_position` VALUES (15802, 2, 2698, 215, '109.41799427297894', '24.309908745999287', '162.0', '15.0', '2020-09-07 08:39:38');
+INSERT INTO `t_order_position` VALUES (15803, 2, 2698, 215, '109.41784432420893', '24.31037534648085', '160.0', '15.0', '2020-09-07 08:39:48');
+INSERT INTO `t_order_position` VALUES (15804, 2, 2698, 215, '109.41771104928489', '24.31102521648509', '158.0', '15.0', '2020-09-07 08:40:04');
+INSERT INTO `t_order_position` VALUES (15805, 2, 2698, 215, '109.4175444409054', '24.311608455149212', '162.0', '15.0', '2020-09-07 08:40:14');
+INSERT INTO `t_order_position` VALUES (15806, 2, 2698, 215, '109.41744448696112', '24.312158338132996', '0.0', '15.0', '2020-09-07 08:40:34');
+INSERT INTO `t_order_position` VALUES (15807, 2, 2698, 215, '109.41724455601619', '24.312891546001154', '162.0', '15.0', '2020-09-07 08:42:00');
+INSERT INTO `t_order_position` VALUES (15808, 2, 2698, 215, '109.41701130429766', '24.3138080463528', '146.0', '15.0', '2020-09-07 08:42:09');
+INSERT INTO `t_order_position` VALUES (15809, 2, 2698, 215, '109.41642806263354', '24.31439146206737', '130.0', '15.0', '2020-09-07 08:42:19');
+INSERT INTO `t_order_position` VALUES (15810, 2, 2698, 215, '109.41576146706831', '24.314841601993674', '138.0', '15.0', '2020-09-07 08:42:29');
+INSERT INTO `t_order_position` VALUES (15811, 2, 2698, 215, '109.41537817085776', '24.315208308143607', '130.0', '15.0', '2020-09-07 08:42:34');
+INSERT INTO `t_order_position` VALUES (15812, 2, 2698, 215, '109.41486153212868', '24.315525070271615', '134.0', '15.0', '2020-09-07 08:42:39');
+INSERT INTO `t_order_position` VALUES (15813, 2, 2698, 215, '109.41437821009805', '24.31577516245211', '132.0', '15.0', '2020-09-07 08:42:44');
+INSERT INTO `t_order_position` VALUES (15814, 2, 2698, 215, '109.41389487636573', '24.31602524418135', '130.0', '15.0', '2020-09-07 08:42:49');
+INSERT INTO `t_order_position` VALUES (15815, 2, 2698, 215, '109.41351154723725', '24.316441903722254', '164.0', '15.0', '2020-09-07 08:43:10');
+INSERT INTO `t_order_position` VALUES (15816, 2, 2698, 215, '109.41337824234782', '24.31707508895643', '160.0', '15.0', '2020-09-07 08:44:00');
+INSERT INTO `t_order_position` VALUES (15817, 2, 2698, 215, '109.41327826750535', '24.317624955474592', '0.0', '15.0', '2020-09-07 08:44:30');
+INSERT INTO `t_order_position` VALUES (15818, 2, 2698, 215, '109.41307827714004', '24.318058217099885', '164.0', '15.0', '2020-09-07 08:46:16');
+INSERT INTO `t_order_position` VALUES (15819, 2, 2698, 215, '109.41314498946703', '24.318741331229845', '14.0', '15.0', '2020-09-07 08:46:41');
+INSERT INTO `t_order_position` VALUES (15820, 2, 2698, 215, '109.41342838091855', '24.31937439833293', '0.0', '15.0', '2020-09-07 08:47:01');
+INSERT INTO `t_order_position` VALUES (15821, 2, 2698, 215, '109.41334507711916', '24.319974246644755', '116.0', '15.0', '2020-09-07 08:49:17');
+INSERT INTO `t_order_position` VALUES (15822, 2, 2698, 215, '109.41257834244064', '24.319991114940272', '110.0', '15.0', '2020-09-07 08:49:27');
+INSERT INTO `t_order_position` VALUES (15823, 2, 2698, 215, '109.41199493598064', '24.319974592642577', '114.0', '15.0', '2020-09-07 08:49:32');
+INSERT INTO `t_order_position` VALUES (15824, 2, 2698, 215, '109.41106144999107', '24.31994146061643', '114.0', '15.0', '2020-09-07 08:49:42');
+INSERT INTO `t_order_position` VALUES (15825, 2, 2698, 215, '109.4103279747253', '24.320058216391583', '112.0', '15.0', '2020-09-07 08:49:47');
+INSERT INTO `t_order_position` VALUES (15826, 2, 2698, 215, '109.40959446886717', '24.32010830108217', '120.0', '15.0', '2020-09-07 08:49:57');
+INSERT INTO `t_order_position` VALUES (15827, 2, 2698, 215, '109.4091777063169', '24.320374935558636', '166.0', '15.0', '2020-09-07 08:50:07');
+INSERT INTO `t_order_position` VALUES (15828, 2, 2698, 215, '109.40912772075733', '24.320858132666697', '166.0', '15.0', '2020-09-07 08:50:12');
+INSERT INTO `t_order_position` VALUES (15829, 2, 2698, 215, '109.40909441722413', '24.32152460812383', '164.0', '15.0', '2020-09-07 08:50:17');
+INSERT INTO `t_order_position` VALUES (15830, 2, 2698, 215, '109.40899442402196', '24.322124442873484', '166.0', '15.0', '2020-09-07 08:50:22');
+INSERT INTO `t_order_position` VALUES (15831, 2, 2698, 215, '109.40897779272079', '24.322807579089766', '164.0', '15.0', '2020-09-07 08:50:27');
+INSERT INTO `t_order_position` VALUES (15832, 2, 2698, 215, '109.40901117676077', '24.323507372882716', '162.0', '15.0', '2020-09-07 08:50:32');
+INSERT INTO `t_order_position` VALUES (15833, 2, 2698, 215, '109.4089278634753', '24.32425716329374', '162.0', '15.0', '2020-09-07 08:50:37');
+INSERT INTO `t_order_position` VALUES (15834, 2, 2698, 215, '109.40889456157197', '24.324956963923118', '0.0', '15.0', '2020-09-07 08:50:42');
+INSERT INTO `t_order_position` VALUES (15835, 2, 2698, 215, '109.40887792235324', '24.325506806678444', '0.0', '15.0', '2020-09-07 08:50:47');
+INSERT INTO `t_order_position` VALUES (15836, 2, 2698, 215, '109.4088279458474', '24.326156623733702', '2.0', '15.0', '2020-09-07 08:50:52');
+INSERT INTO `t_order_position` VALUES (15837, 2, 2698, 215, '109.40887799287445', '24.326706461229744', '0.0', '15.0', '2020-09-07 08:51:02');
+INSERT INTO `t_order_position` VALUES (15838, 2, 2698, 215, '109.40894473870325', '24.327722830184594', '2.0', '15.0', '2020-09-07 08:52:48');
+INSERT INTO `t_order_position` VALUES (15839, 2, 2698, 215, '109.40897812965598', '24.32853926001641', '2.0', '15.0', '2020-09-07 08:52:53');
+INSERT INTO `t_order_position` VALUES (15840, 2, 2698, 215, '109.4090448585055', '24.32927237763636', '2.0', '15.0', '2020-09-07 08:52:58');
+INSERT INTO `t_order_position` VALUES (15841, 2, 2698, 215, '109.40909491577325', '24.330005497105823', '4.0', '15.0', '2020-09-07 08:53:03');
+INSERT INTO `t_order_position` VALUES (15842, 2, 2698, 215, '109.40916165109584', '24.330855248742335', '4.0', '15.0', '2020-09-07 08:53:08');
+INSERT INTO `t_order_position` VALUES (15843, 2, 2698, 215, '109.4092117139532', '24.33168834052005', '2.0', '15.0', '2020-09-07 08:53:13');
+INSERT INTO `t_order_position` VALUES (15844, 2, 2698, 215, '109.40929511324754', '24.3324214575198', '10.0', '15.0', '2020-09-07 08:53:18');
+INSERT INTO `t_order_position` VALUES (15845, 2, 2698, 215, '109.40941185738254', '24.333204556848717', '4.0', '15.0', '2020-09-07 08:53:23');
+INSERT INTO `t_order_position` VALUES (15846, 2, 2698, 215, '109.40949525095607', '24.333854364136855', '2.0', '15.0', '2020-09-07 08:53:28');
+INSERT INTO `t_order_position` VALUES (15847, 2, 2698, 215, '109.40952862239467', '24.33435421951234', '2.0', '15.0', '2020-09-07 08:53:33');
+INSERT INTO `t_order_position` VALUES (15848, 2, 2698, 215, '109.40979540189551', '24.33512063814831', '14.0', '15.0', '2020-09-07 08:53:43');
+INSERT INTO `t_order_position` VALUES (15849, 2, 2698, 215, '109.40937865227146', '24.335537237398732', '154.0', '15.0', '2020-09-07 08:53:58');
+INSERT INTO `t_order_position` VALUES (15850, 2, 2698, 215, '109.40886183261314', '24.33540399213393', '112.0', '15.0', '2020-09-07 08:54:08');
+INSERT INTO `t_order_position` VALUES (15851, 2, 2698, 215, '109.40802823936106', '24.335437372954406', '114.0', '15.0', '2020-09-07 08:54:18');
+INSERT INTO `t_order_position` VALUES (15852, 2, 2698, 215, '109.40717794095967', '24.335504047324363', '112.0', '15.0', '2020-09-07 08:54:28');
+INSERT INTO `t_order_position` VALUES (15853, 2, 2698, 215, '109.40626091149595', '24.33555402616701', '112.0', '15.0', '2020-09-07 08:54:38');
+INSERT INTO `t_order_position` VALUES (15854, 2, 2698, 215, '109.40552726482949', '24.33570395189992', '146.0', '15.0', '2020-09-07 08:54:48');
+INSERT INTO `t_order_position` VALUES (15855, 2, 2698, 215, '109.40542725020885', '24.336237129653547', '4.0', '15.0', '2020-09-07 08:54:58');
+INSERT INTO `t_order_position` VALUES (15856, 2, 2698, 215, '109.40542727958912', '24.33673698983007', '4.0', '15.0', '2020-09-07 08:55:04');
+INSERT INTO `t_order_position` VALUES (15857, 2, 2698, 215, '109.40551069238894', '24.337436799622697', '166.0', '15.0', '2020-09-07 08:55:14');
+INSERT INTO `t_order_position` VALUES (15858, 2, 2698, 215, '109.4054773770606', '24.338003306336795', '152.0', '15.0', '2020-09-07 08:55:24');
+INSERT INTO `t_order_position` VALUES (15859, 2, 2698, 215, '109.40529399390526', '24.33860312729896', '150.0', '15.0', '2020-09-07 08:55:34');
+INSERT INTO `t_order_position` VALUES (15860, 2, 2698, 215, '109.40511060911483', '24.33920294708558', '154.0', '15.0', '2020-09-07 08:55:49');
+INSERT INTO `t_order_position` VALUES (15861, 2, 2698, 215, '109.40484384278436', '24.339702786073406', '154.0', '15.0', '2020-09-07 08:55:59');
+INSERT INTO `t_order_position` VALUES (15862, 2, 2706, 73, '109.3987913007145', '24.36187884496067', '0.0', '15.0', '2020-09-08 15:08:44');
+INSERT INTO `t_order_position` VALUES (15863, 2, 2706, 73, '109.39945848122254', '24.36196237963934', '32.0', '15.0', '2020-09-08 15:09:09');
+INSERT INTO `t_order_position` VALUES (15864, 2, 2706, 73, '109.40009229241953', '24.362195847067966', '62.0', '15.0', '2020-09-08 15:09:19');
+INSERT INTO `t_order_position` VALUES (15865, 2, 2706, 73, '109.40064268210723', '24.362229326872775', '62.0', '14.0', '2020-09-08 15:09:24');
+INSERT INTO `t_order_position` VALUES (15866, 2, 2706, 73, '109.40119305355013', '24.362196144401562', '56.0', '12.0', '2020-09-08 15:09:29');
+INSERT INTO `t_order_position` VALUES (15867, 2, 2706, 73, '109.40184347532092', '24.362179633535895', '0.0', '14.0', '2020-09-08 15:09:49');
+INSERT INTO `t_order_position` VALUES (15868, 2, 2706, 73, '109.40242716500377', '24.36207977995941', '60.0', '15.0', '2020-09-08 15:10:19');
+INSERT INTO `t_order_position` VALUES (15869, 2, 2706, 73, '109.40331101580696', '24.362079934715442', '56.0', '15.0', '2020-09-08 15:10:31');
+INSERT INTO `t_order_position` VALUES (15870, 2, 2706, 73, '109.40404475413007', '24.362146687053922', '56.0', '14.0', '2020-09-08 15:10:36');
+INSERT INTO `t_order_position` VALUES (15871, 2, 2706, 73, '109.40487851265463', '24.362163438068876', '56.0', '13.0', '2020-09-08 15:10:46');
+INSERT INTO `t_order_position` VALUES (15872, 2, 2706, 73, '109.40567888623146', '24.362130170038057', '60.0', '15.0', '2020-09-08 15:10:56');
+INSERT INTO `t_order_position` VALUES (15873, 2, 2706, 73, '109.40657926947071', '24.36209687567164', '62.0', '15.0', '2020-09-08 15:11:12');
+INSERT INTO `t_order_position` VALUES (15874, 2, 2706, 73, '109.4074629433153', '24.362113533267483', '56.0', '15.0', '2020-09-08 15:11:22');
+INSERT INTO `t_order_position` VALUES (15875, 2, 2706, 73, '109.40836324886376', '24.36209683072193', '62.0', '15.0', '2020-09-08 15:11:32');
+INSERT INTO `t_order_position` VALUES (15876, 2, 2706, 73, '109.40891341556411', '24.362080126192044', '62.0', '15.0', '2020-09-08 15:11:37');
+INSERT INTO `t_order_position` VALUES (15877, 2, 2706, 73, '109.40948023838773', '24.362063406373675', '62.0', '15.0', '2020-09-08 15:11:42');
+INSERT INTO `t_order_position` VALUES (15878, 2, 2706, 73, '109.41008038548928', '24.362030005288233', '62.0', '15.0', '2020-09-08 15:11:47');
+INSERT INTO `t_order_position` VALUES (15879, 2, 2706, 73, '109.41069718479862', '24.361996585403055', '62.0', '15.0', '2020-09-08 15:11:52');
+INSERT INTO `t_order_position` VALUES (15880, 2, 2706, 73, '109.41136397377124', '24.361963138745082', '60.0', '15.0', '2020-09-08 15:11:57');
+INSERT INTO `t_order_position` VALUES (15881, 2, 2706, 73, '109.41209741726716', '24.36194631933548', '62.0', '15.0', '2020-09-08 15:12:02');
+INSERT INTO `t_order_position` VALUES (15882, 2, 2706, 73, '109.41298084690737', '24.361912773510717', '60.0', '15.0', '2020-09-08 15:12:07');
+INSERT INTO `t_order_position` VALUES (15883, 2, 2706, 73, '109.41363089333962', '24.36189592612', '62.0', '15.0', '2020-09-08 15:12:12');
+INSERT INTO `t_order_position` VALUES (15884, 2, 2706, 73, '109.41426425155461', '24.361879065236458', '62.0', '15.0', '2020-09-08 15:12:17');
+INSERT INTO `t_order_position` VALUES (15885, 2, 2706, 73, '109.4148475889706', '24.36184554172831', '62.0', '15.0', '2020-09-08 15:12:22');
+INSERT INTO `t_order_position` VALUES (15886, 2, 2706, 73, '109.4153809119158', '24.36182868422188', '64.0', '15.0', '2020-09-08 15:12:42');
+INSERT INTO `t_order_position` VALUES (15887, 2, 2706, 73, '109.41604754478584', '24.36179509756778', '60.0', '15.0', '2020-09-08 15:12:57');
+INSERT INTO `t_order_position` VALUES (15888, 2, 2706, 73, '109.41663082998897', '24.361761527233156', '62.0', '15.0', '2020-09-08 15:13:07');
+INSERT INTO `t_order_position` VALUES (15889, 2, 2706, 73, '109.41728075643402', '24.361727910757047', '62.0', '15.0', '2020-09-08 15:13:17');
+INSERT INTO `t_order_position` VALUES (15890, 2, 2706, 73, '109.41786400546414', '24.361694307981182', '62.0', '15.0', '2020-09-08 15:13:27');
+INSERT INTO `t_order_position` VALUES (15891, 2, 2706, 73, '109.41853055607952', '24.36167730903053', '58.0', '15.0', '2020-09-08 15:13:37');
+INSERT INTO `t_order_position` VALUES (15892, 2, 2706, 73, '109.41943036426974', '24.361660160446302', '62.0', '15.0', '2020-09-08 15:13:47');
+INSERT INTO `t_order_position` VALUES (15893, 2, 2706, 73, '109.41994690100363', '24.361626540087734', '62.0', '15.0', '2020-09-08 15:13:52');
+INSERT INTO `t_order_position` VALUES (15894, 2, 2706, 73, '109.42056339537758', '24.361592846729838', '62.0', '15.0', '2020-09-08 15:13:57');
+INSERT INTO `t_order_position` VALUES (15895, 2, 2706, 73, '109.4211798706109', '24.361559136206736', '62.0', '15.0', '2020-09-08 15:14:03');
+INSERT INTO `t_order_position` VALUES (15896, 2, 2706, 73, '109.4217963257287', '24.361508746173687', '62.0', '15.0', '2020-09-08 15:14:08');
+INSERT INTO `t_order_position` VALUES (15897, 2, 2706, 73, '109.42239610145779', '24.36145835056859', '62.0', '15.0', '2020-09-08 15:14:13');
+INSERT INTO `t_order_position` VALUES (15898, 2, 2706, 73, '109.42297919931565', '24.361407950752703', '62.0', '15.0', '2020-09-08 15:14:18');
+INSERT INTO `t_order_position` VALUES (15899, 2, 2706, 73, '109.42351230312188', '24.361374235248277', '62.0', '15.0', '2020-09-08 15:14:23');
+INSERT INTO `t_order_position` VALUES (15900, 2, 2706, 73, '109.42404539264456', '24.36134050693604', '62.0', '15.0', '2020-09-08 15:14:28');
+INSERT INTO `t_order_position` VALUES (15901, 2, 2706, 73, '109.42456180944733', '24.36130677903237', '62.0', '15.0', '2020-09-08 15:14:33');
+INSERT INTO `t_order_position` VALUES (15902, 2, 2706, 73, '109.42551131478294', '24.361239356948055', '62.0', '15.0', '2020-09-08 15:14:43');
+INSERT INTO `t_order_position` VALUES (15903, 2, 2706, 73, '109.42601103540765', '24.361188946954325', '62.0', '15.0', '2020-09-08 15:14:48');
+INSERT INTO `t_order_position` VALUES (15904, 2, 2706, 73, '109.42692715987792', '24.361138155396137', '62.0', '15.0', '2020-09-08 15:14:58');
+INSERT INTO `t_order_position` VALUES (15905, 2, 2706, 73, '109.42752678322026', '24.36112094609362', '62.0', '15.0', '2020-09-08 15:15:03');
+INSERT INTO `t_order_position` VALUES (15906, 2, 2706, 73, '109.42810973215646', '24.36108707422464', '62.0', '15.0', '2020-09-08 15:15:08');
+INSERT INTO `t_order_position` VALUES (15907, 2, 2706, 73, '109.42867600914482', '24.361053203460028', '62.0', '15.0', '2020-09-08 15:15:13');
+INSERT INTO `t_order_position` VALUES (15908, 2, 2711, 179, '109.41072727073573', '24.306645479469502', '0.0', '15.0', '2020-09-09 10:08:29');
+INSERT INTO `t_order_position` VALUES (15909, 2, 2711, 179, '109.41072731480938', '24.307395252621028', '2.0', '15.0', '2020-09-09 10:08:39');
+INSERT INTO `t_order_position` VALUES (15910, 2, 2711, 179, '109.41077737377937', '24.30822832585959', '2.0', '15.0', '2020-09-09 10:08:49');
+INSERT INTO `t_order_position` VALUES (15911, 2, 2711, 179, '109.41081076366048', '24.309078064050926', '2.0', '15.0', '2020-09-09 10:09:06');
+INSERT INTO `t_order_position` VALUES (15912, 2, 2712, 932, '109.40543715854807', '24.311902508632983', '206.27999877929688', '60.86', '2020-09-09 10:11:53');
+INSERT INTO `t_order_position` VALUES (15913, 2, 2718, 140, '109.40222769778765', '24.37322691001764', '156.0', '14.0', '2020-09-10 08:50:24');
+INSERT INTO `t_order_position` VALUES (15914, 2, 2718, 140, '109.40166065639609', '24.372926862999613', '150.0', '13.0', '2020-09-10 08:50:34');
+INSERT INTO `t_order_position` VALUES (15915, 2, 2718, 140, '109.4011769916914', '24.372676810645935', '152.0', '14.0', '2020-09-10 08:50:44');
+INSERT INTO `t_order_position` VALUES (15916, 2, 2718, 140, '109.40064328036325', '24.372410072428796', '152.0', '14.0', '2020-09-10 08:50:54');
+INSERT INTO `t_order_position` VALUES (15917, 2, 2718, 140, '109.40005951964203', '24.372143307500746', '158.0', '15.0', '2020-09-10 08:51:04');
+INSERT INTO `t_order_position` VALUES (15918, 2, 2718, 140, '109.39944238558353', '24.371893180065452', '0.0', '15.0', '2020-09-10 08:51:24');
+INSERT INTO `t_order_position` VALUES (15919, 2, 2718, 140, '109.39902538333467', '24.37155979276485', '148.0', '15.0', '2020-09-10 08:52:10');
+INSERT INTO `t_order_position` VALUES (15920, 2, 2718, 140, '109.39849161701228', '24.3712763439141', '100.0', '15.0', '2020-09-10 08:52:25');
+INSERT INTO `t_order_position` VALUES (15921, 2, 2718, 140, '109.39790780722903', '24.37117615136443', '112.0', '15.0', '2020-09-10 08:52:40');
+INSERT INTO `t_order_position` VALUES (15922, 2, 2718, 140, '109.39727394802024', '24.37122588650787', '120.0', '15.0', '2020-09-10 08:53:05');
+INSERT INTO `t_order_position` VALUES (15923, 2, 2718, 140, '109.39724055110312', '24.37062602339266', '120.0', '15.0', '2020-09-10 08:53:25');
+INSERT INTO `t_order_position` VALUES (15924, 2, 2718, 140, '109.39724051390867', '24.369992849387398', '114.0', '15.0', '2020-09-10 08:53:35');
+INSERT INTO `t_order_position` VALUES (15925, 2, 2718, 140, '109.39719042626815', '24.36922635535331', '116.0', '15.0', '2020-09-10 08:53:45');
+INSERT INTO `t_order_position` VALUES (15926, 2, 2718, 140, '109.39715702824509', '24.368609830699896', '110.0', '15.0', '2020-09-10 08:54:05');
+INSERT INTO `t_order_position` VALUES (15927, 2, 2718, 140, '109.39717368077078', '24.368126626694654', '112.0', '15.0', '2020-09-10 08:54:31');
+INSERT INTO `t_order_position` VALUES (15928, 2, 2718, 140, '109.39668991350764', '24.367859821905643', '112.0', '15.0', '2020-09-10 08:54:51');
+INSERT INTO `t_order_position` VALUES (15929, 2, 2718, 140, '109.39585583574996', '24.367892769473826', '114.0', '15.0', '2020-09-10 08:55:01');
+INSERT INTO `t_order_position` VALUES (15930, 2, 2718, 140, '109.39527196202576', '24.367909150869327', '114.0', '15.0', '2020-09-10 08:55:11');
+INSERT INTO `t_order_position` VALUES (15931, 2, 2718, 140, '109.39453792322645', '24.36785879058323', '114.0', '15.0', '2020-09-10 08:55:21');
+INSERT INTO `t_order_position` VALUES (15932, 2, 2718, 140, '109.39403743321763', '24.367908511118603', '114.0', '15.0', '2020-09-10 08:55:31');
+INSERT INTO `t_order_position` VALUES (15933, 2, 2718, 140, '109.3948715789145', '24.367858962820655', '58.0', '15.0', '2020-09-10 08:57:52');
+INSERT INTO `t_order_position` VALUES (15934, 2, 2718, 140, '109.39582246994232', '24.36785942891041', '58.0', '15.0', '2020-09-10 08:58:02');
+INSERT INTO `t_order_position` VALUES (15935, 2, 2718, 140, '109.39668991448636', '24.367876484344702', '58.0', '15.0', '2020-09-10 08:58:12');
+INSERT INTO `t_order_position` VALUES (15936, 2, 2718, 140, '109.39727375519645', '24.36794338119913', '14.0', '15.0', '2020-09-10 08:58:52');
+INSERT INTO `t_order_position` VALUES (15937, 2, 2718, 140, '109.39727380119976', '24.36872651614672', '166.0', '15.0', '2020-09-10 08:59:02');
+INSERT INTO `t_order_position` VALUES (15938, 2, 2718, 140, '109.39727383350008', '24.369276377167587', '0.0', '15.0', '2020-09-10 08:59:07');
+INSERT INTO `t_order_position` VALUES (15939, 2, 2718, 140, '109.3973072342806', '24.369942889415974', '162.0', '15.0', '2020-09-10 08:59:17');
+INSERT INTO `t_order_position` VALUES (15940, 2, 2718, 140, '109.39734062424323', '24.370426114753784', '0.0', '15.0', '2020-09-10 08:59:37');
+INSERT INTO `t_order_position` VALUES (15941, 2, 2718, 140, '109.39722383011308', '24.369942855092933', '112.0', '15.0', '2020-09-10 09:01:28');
+INSERT INTO `t_order_position` VALUES (15942, 2, 2718, 140, '109.39720710323778', '24.369159712432296', '114.0', '15.0', '2020-09-10 09:01:38');
+INSERT INTO `t_order_position` VALUES (15943, 2, 2718, 140, '109.39725710959966', '24.36854322233255', '114.0', '15.0', '2020-09-10 09:01:48');
+INSERT INTO `t_order_position` VALUES (15944, 2, 2718, 140, '109.39724037883525', '24.367693430883158', '114.0', '15.0', '2020-09-10 09:01:58');
+INSERT INTO `t_order_position` VALUES (15945, 2, 2718, 140, '109.39722365099479', '24.36689362731257', '110.0', '15.0', '2020-09-10 09:02:08');
+INSERT INTO `t_order_position` VALUES (15946, 2, 2718, 140, '109.39729033128651', '24.366160508313126', '106.0', '15.0', '2020-09-10 09:02:18');
+INSERT INTO `t_order_position` VALUES (15947, 2, 2718, 140, '109.39749046097451', '24.36549409324835', '104.0', '15.0', '2020-09-10 09:02:33');
+INSERT INTO `t_order_position` VALUES (15948, 2, 2718, 140, '109.39784070793556', '24.3647444235938', '100.0', '15.0', '2020-09-10 09:02:48');
+INSERT INTO `t_order_position` VALUES (15949, 2, 2718, 140, '109.39825766663387', '24.363944786971107', '102.0', '15.0', '2020-09-10 09:02:58');
+INSERT INTO `t_order_position` VALUES (15950, 2, 2718, 140, '109.39855786264653', '24.363211751640364', '102.0', '15.0', '2020-09-10 09:03:08');
+INSERT INTO `t_order_position` VALUES (15951, 2, 2718, 140, '109.3987579932704', '24.36276193843689', '100.0', '15.0', '2020-09-10 09:03:13');
+INSERT INTO `t_order_position` VALUES (15952, 2, 2718, 140, '109.39890808144462', '24.362278781888143', '0.0', '15.0', '2020-09-10 09:03:34');
+INSERT INTO `t_order_position` VALUES (15953, 2, 2718, 140, '109.3992082849779', '24.361828999401585', '86.0', '15.0', '2020-09-10 09:03:59');
+INSERT INTO `t_order_position` VALUES (15954, 2, 2718, 140, '109.3997753676434', '24.361712543662254', '56.0', '15.0', '2020-09-10 09:04:14');
+INSERT INTO `t_order_position` VALUES (15955, 2, 2718, 140, '109.40104291886718', '24.3616129244677', '64.0', '14.0', '2020-09-10 09:04:24');
+INSERT INTO `t_order_position` VALUES (15956, 2, 2718, 140, '109.40172669998621', '24.361596425266384', '60.0', '15.0', '2020-09-10 09:04:29');
+INSERT INTO `t_order_position` VALUES (15957, 2, 2718, 140, '109.40251051545907', '24.361513275983864', '62.0', '15.0', '2020-09-10 09:04:34');
+INSERT INTO `t_order_position` VALUES (15958, 2, 2718, 140, '109.40324427613795', '24.361480079501458', '62.0', '14.0', '2020-09-10 09:04:39');
+INSERT INTO `t_order_position` VALUES (15959, 2, 2718, 140, '109.40384460814467', '24.361480167157413', '62.0', '15.0', '2020-09-10 09:04:44');
+INSERT INTO `t_order_position` VALUES (15960, 2, 2718, 140, '109.4043782180892', '24.361413582603788', '0.0', '15.0', '2020-09-10 09:04:54');
+INSERT INTO `t_order_position` VALUES (15961, 2, 2718, 140, '109.40506188778203', '24.361363660591877', '58.0', '15.0', '2020-09-10 09:05:14');
+INSERT INTO `t_order_position` VALUES (15962, 2, 2718, 140, '109.40581223406804', '24.361363708555725', '64.0', '15.0', '2020-09-10 09:05:24');
+INSERT INTO `t_order_position` VALUES (15963, 2, 2718, 140, '109.40631244675706', '24.361313739837275', '62.0', '15.0', '2020-09-10 09:05:29');
+INSERT INTO `t_order_position` VALUES (15964, 2, 2718, 140, '109.40724615282699', '24.361363731753656', '60.0', '14.0', '2020-09-10 09:05:39');
+INSERT INTO `t_order_position` VALUES (15965, 2, 2718, 140, '109.40779635269968', '24.36139704138634', '60.0', '15.0', '2020-09-10 09:05:44');
+INSERT INTO `t_order_position` VALUES (15966, 2, 2718, 140, '109.40871331908937', '24.36144697367228', '60.0', '15.0', '2020-09-10 09:05:54');
+INSERT INTO `t_order_position` VALUES (15967, 2, 2718, 140, '109.40948020017989', '24.361413574630927', '62.0', '15.0', '2020-09-10 09:05:59');
+INSERT INTO `t_order_position` VALUES (15968, 2, 2718, 140, '109.41056378771178', '24.361380100403235', '62.0', '15.0', '2020-09-10 09:06:04');
+INSERT INTO `t_order_position` VALUES (15969, 2, 2718, 140, '109.41141394594942', '24.361346621805197', '62.0', '15.0', '2020-09-10 09:06:09');
+INSERT INTO `t_order_position` VALUES (15970, 2, 2718, 140, '109.4122140628932', '24.36132978514732', '62.0', '15.0', '2020-09-10 09:06:14');
+INSERT INTO `t_order_position` VALUES (15971, 2, 2718, 140, '109.41294747530151', '24.36131293786669', '62.0', '15.0', '2020-09-10 09:06:19');
+INSERT INTO `t_order_position` VALUES (15972, 2, 2718, 140, '109.41359752281694', '24.361296091456047', '62.0', '15.0', '2020-09-10 09:06:25');
+INSERT INTO `t_order_position` VALUES (15973, 2, 2718, 140, '109.41444755237279', '24.361262497453346', '62.0', '15.0', '2020-09-10 09:06:35');
+INSERT INTO `t_order_position` VALUES (15974, 2, 2718, 140, '109.41498088405788', '24.361212324860734', '54.0', '15.0', '2020-09-10 09:07:00');
+INSERT INTO `t_order_position` VALUES (15975, 2, 2718, 140, '109.41546418860192', '24.360912223475292', '112.0', '15.0', '2020-09-10 09:07:20');
+INSERT INTO `t_order_position` VALUES (15976, 2, 2718, 140, '109.41543082898042', '24.360445690721832', '112.0', '15.0', '2020-09-10 09:07:25');
+INSERT INTO `t_order_position` VALUES (15977, 2, 2718, 140, '109.41539746832343', '24.359962495773996', '114.0', '15.0', '2020-09-10 09:07:30');
+INSERT INTO `t_order_position` VALUES (15978, 2, 2718, 140, '109.41594742753281', '24.359695683490003', '64.0', '15.0', '2020-09-10 09:07:40');
+INSERT INTO `t_order_position` VALUES (15979, 2, 2718, 140, '109.41678069386165', '24.35969533165224', '90.0', '15.0', '2020-09-10 09:07:50');
+INSERT INTO `t_order_position` VALUES (15980, 2, 2718, 140, '109.41679732748005', '24.35916213005604', '128.0', '15.0', '2020-09-10 09:08:00');
+INSERT INTO `t_order_position` VALUES (15981, 2, 2718, 140, '109.41643064199475', '24.358262524257196', '128.0', '15.0', '2020-09-10 09:08:10');
+INSERT INTO `t_order_position` VALUES (15982, 2, 2718, 140, '109.41619728078744', '24.35747949422915', '124.0', '15.0', '2020-09-10 09:08:20');
+INSERT INTO `t_order_position` VALUES (15983, 2, 2718, 140, '109.41601392846296', '24.356946376249688', '0.0', '15.0', '2020-09-10 09:08:40');
+INSERT INTO `t_order_position` VALUES (15984, 2, 2718, 140, '109.41596389627011', '24.35634655439375', '120.0', '15.0', '2020-09-10 09:09:10');
+INSERT INTO `t_order_position` VALUES (15985, 2, 2718, 140, '109.41581385282456', '24.355463514160245', '118.0', '15.0', '2020-09-10 09:09:21');
+INSERT INTO `t_order_position` VALUES (15986, 2, 2718, 140, '109.41573049040339', '24.354897030256968', '120.0', '15.0', '2020-09-10 09:09:36');
+INSERT INTO `t_order_position` VALUES (15987, 2, 2718, 140, '109.41568044378312', '24.354063937332313', '118.0', '15.0', '2020-09-10 09:09:46');
+INSERT INTO `t_order_position` VALUES (15988, 2, 2718, 140, '109.41561374578599', '24.3534807848841', '118.0', '15.0', '2020-09-10 09:09:51');
+INSERT INTO `t_order_position` VALUES (15989, 2, 2718, 140, '109.41553038644726', '24.352980950084135', '120.0', '15.0', '2020-09-10 09:09:56');
+INSERT INTO `t_order_position` VALUES (15990, 2, 2718, 140, '109.41543036261857', '24.3525144459684', '120.0', '15.0', '2020-09-10 09:10:06');
+INSERT INTO `t_order_position` VALUES (15991, 2, 2718, 140, '109.41536366280536', '24.351914631304346', '120.0', '15.0', '2020-09-10 09:10:21');
+INSERT INTO `t_order_position` VALUES (15992, 2, 2718, 140, '109.41524695425112', '24.35114821332902', '120.0', '15.0', '2020-09-10 09:10:31');
+INSERT INTO `t_order_position` VALUES (15993, 2, 2718, 140, '109.41508023901706', '24.350265178148625', '122.0', '15.0', '2020-09-10 09:10:41');
+INSERT INTO `t_order_position` VALUES (15994, 2, 2718, 140, '109.41491354688269', '24.34979869695039', '124.0', '15.0', '2020-09-10 09:10:46');
+INSERT INTO `t_order_position` VALUES (15995, 2, 2718, 140, '109.414630172544', '24.349098984644307', '126.0', '15.0', '2020-09-10 09:10:51');
+INSERT INTO `t_order_position` VALUES (15996, 2, 2718, 140, '109.41441346898132', '24.348515882112537', '126.0', '15.0', '2020-09-10 09:10:56');
+INSERT INTO `t_order_position` VALUES (15997, 2, 2718, 140, '109.41419676796505', '24.34801608855747', '134.0', '15.0', '2020-09-10 09:11:01');
+INSERT INTO `t_order_position` VALUES (15998, 2, 2718, 140, '109.41399673386942', '24.347549612153706', '124.0', '15.0', '2020-09-10 09:11:06');
+INSERT INTO `t_order_position` VALUES (15999, 2, 2718, 140, '109.41378001363708', '24.34679988273552', '126.0', '15.0', '2020-09-10 09:11:16');
+INSERT INTO `t_order_position` VALUES (16000, 2, 2718, 140, '109.41411339193074', '24.347332967012342', '14.0', '15.0', '2020-09-10 09:11:36');
+INSERT INTO `t_order_position` VALUES (16001, 2, 2718, 140, '109.41456342694944', '24.347766034078603', '56.0', '15.0', '2020-09-10 09:11:46');
+INSERT INTO `t_order_position` VALUES (16002, 2, 2718, 140, '109.41519675456374', '24.347732484665837', '58.0', '15.0', '2020-09-10 09:11:51');
+INSERT INTO `t_order_position` VALUES (16003, 2, 2718, 140, '109.41578006663154', '24.34773226137156', '58.0', '15.0', '2020-09-10 09:11:56');
+INSERT INTO `t_order_position` VALUES (16004, 2, 2718, 140, '109.4164466900326', '24.347765311728267', '52.0', '15.0', '2020-09-10 09:12:01');
+INSERT INTO `t_order_position` VALUES (16005, 2, 2718, 140, '109.41724661118025', '24.347848267327848', '58.0', '15.0', '2020-09-10 09:12:07');
+INSERT INTO `t_order_position` VALUES (16006, 2, 2718, 140, '109.41826312889185', '24.34791442291716', '58.0', '15.0', '2020-09-10 09:12:12');
+INSERT INTO `t_order_position` VALUES (16007, 2, 2718, 140, '109.41921294001725', '24.347930582195488', '58.0', '15.0', '2020-09-10 09:12:17');
+INSERT INTO `t_order_position` VALUES (16008, 2, 2718, 140, '109.42017936589168', '24.347913366506603', '58.0', '15.0', '2020-09-10 09:12:22');
+INSERT INTO `t_order_position` VALUES (16009, 2, 2718, 140, '109.42112908439077', '24.347912781421137', '60.0', '15.0', '2020-09-10 09:12:27');
+INSERT INTO `t_order_position` VALUES (16010, 2, 2718, 140, '109.42211207851817', '24.347912132908466', '60.0', '15.0', '2020-09-10 09:12:32');
+INSERT INTO `t_order_position` VALUES (16011, 2, 2718, 140, '109.42304504491682', '24.347911477031886', '58.0', '15.0', '2020-09-10 09:12:37');
+INSERT INTO `t_order_position` VALUES (16012, 2, 2718, 140, '109.42389467168725', '24.34789418340508', '60.0', '15.0', '2020-09-10 09:12:42');
+INSERT INTO `t_order_position` VALUES (16013, 2, 2718, 140, '109.42472760389136', '24.347876870593105', '58.0', '15.0', '2020-09-10 09:12:47');
+INSERT INTO `t_order_position` VALUES (16014, 2, 2718, 140, '109.42557716086212', '24.347892836933717', '58.0', '15.0', '2020-09-10 09:12:53');
+INSERT INTO `t_order_position` VALUES (16015, 2, 2718, 140, '109.42636005299723', '24.347892166980106', '60.0', '15.0', '2020-09-10 09:12:57');
+INSERT INTO `t_order_position` VALUES (16016, 2, 2718, 140, '109.42704297739797', '24.34790822226262', '60.0', '15.0', '2020-09-10 09:13:02');
+INSERT INTO `t_order_position` VALUES (16017, 2, 2718, 140, '109.42757597363617', '24.34789107192915', '60.0', '15.0', '2020-09-10 09:13:07');
+INSERT INTO `t_order_position` VALUES (16018, 2, 2718, 140, '109.42840875343171', '24.347890283734028', '58.0', '15.0', '2020-09-10 09:13:17');
+INSERT INTO `t_order_position` VALUES (16019, 2, 2718, 140, '109.42939138823169', '24.34787265171473', '58.0', '15.0', '2020-09-10 09:13:27');
+INSERT INTO `t_order_position` VALUES (16020, 2, 2718, 140, '109.42997428609249', '24.347888718231047', '58.0', '15.0', '2020-09-10 09:13:32');
+INSERT INTO `t_order_position` VALUES (16021, 2, 2718, 140, '109.43052386014878', '24.347904804969296', '60.0', '15.0', '2020-09-10 09:13:37');
+INSERT INTO `t_order_position` VALUES (16022, 2, 2718, 140, '109.43105676230357', '24.347854247724', '0.0', '14.0', '2020-09-10 09:13:57');
+INSERT INTO `t_order_position` VALUES (16023, 2, 2718, 140, '109.43187274706446', '24.347870011575285', '58.0', '15.0', '2020-09-10 09:14:37');
+INSERT INTO `t_order_position` VALUES (16024, 2, 2718, 140, '109.43240561675333', '24.347869409079493', '60.0', '15.0', '2020-09-10 09:14:42');
+INSERT INTO `t_order_position` VALUES (16025, 2, 2718, 140, '109.43295512500725', '24.347885436839114', '60.0', '15.0', '2020-09-10 09:14:47');
+INSERT INTO `t_order_position` VALUES (16026, 2, 2718, 140, '109.4334713124115', '24.347834842340873', '50.0', '15.0', '2020-09-10 09:14:52');
+INSERT INTO `t_order_position` VALUES (16027, 2, 2718, 140, '109.43403744560857', '24.347900810716713', '58.0', '15.0', '2020-09-10 09:15:23');
+INSERT INTO `t_order_position` VALUES (16028, 2, 2718, 140, '109.43508640864266', '24.347899513287405', '58.0', '15.0', '2020-09-10 09:15:33');
+INSERT INTO `t_order_position` VALUES (16029, 2, 2718, 140, '109.43565249351043', '24.34789879322779', '60.0', '15.0', '2020-09-10 09:15:39');
+INSERT INTO `t_order_position` VALUES (16030, 2, 2718, 140, '109.43620191499804', '24.347914743245607', '60.0', '15.0', '2020-09-10 09:15:43');
+INSERT INTO `t_order_position` VALUES (16031, 2, 2718, 140, '109.4368179146478', '24.347913929298986', '60.0', '15.0', '2020-09-10 09:15:48');
+INSERT INTO `t_order_position` VALUES (16032, 2, 2718, 140, '109.43740059928027', '24.34789648217605', '58.0', '15.0', '2020-09-10 09:15:53');
+INSERT INTO `t_order_position` VALUES (16033, 2, 2718, 140, '109.43796661335905', '24.34776240843838', '106.0', '15.0', '2020-09-10 09:16:03');
+INSERT INTO `t_order_position` VALUES (16034, 2, 2718, 140, '109.43808311409198', '24.347229057915882', '114.0', '15.0', '2020-09-10 09:16:08');
+INSERT INTO `t_order_position` VALUES (16035, 2, 2718, 140, '109.43816630489856', '24.34644582129437', '114.0', '15.0', '2020-09-10 09:16:13');
+INSERT INTO `t_order_position` VALUES (16036, 2, 2718, 140, '109.43823285104943', '24.34571259450472', '114.0', '15.0', '2020-09-10 09:16:18');
+INSERT INTO `t_order_position` VALUES (16037, 2, 2718, 140, '109.43833269041583', '24.344962659272184', '114.0', '15.0', '2020-09-10 09:16:23');
+INSERT INTO `t_order_position` VALUES (16038, 2, 2718, 140, '109.43841588023788', '24.344179423216996', '114.0', '15.0', '2020-09-10 09:16:28');
+INSERT INTO `t_order_position` VALUES (16039, 2, 2718, 140, '109.43849907364314', '24.343462835766044', '112.0', '15.0', '2020-09-10 09:16:33');
+INSERT INTO `t_order_position` VALUES (16040, 2, 2718, 140, '109.43858226769842', '24.34276291052902', '114.0', '15.0', '2020-09-10 09:16:38');
+INSERT INTO `t_order_position` VALUES (16041, 2, 2718, 140, '109.4385988863289', '24.342279686512665', '102.0', '15.0', '2020-09-10 09:16:48');
+INSERT INTO `t_order_position` VALUES (16042, 2, 2718, 140, '109.4386987415631', '24.341829669189014', '112.0', '15.0', '2020-09-10 09:17:43');
+INSERT INTO `t_order_position` VALUES (16043, 2, 2718, 140, '109.43873200795983', '24.341363083952682', '114.0', '15.0', '2020-09-10 09:17:48');
+INSERT INTO `t_order_position` VALUES (16044, 2, 2718, 140, '109.4388152069646', '24.340763131462253', '112.0', '15.0', '2020-09-10 09:17:53');
+INSERT INTO `t_order_position` VALUES (16045, 2, 2718, 140, '109.43891504260088', '24.339996534719916', '114.0', '15.0', '2020-09-10 09:17:58');
+INSERT INTO `t_order_position` VALUES (16046, 2, 2718, 140, '109.43899822817654', '24.339179975676412', '114.0', '15.0', '2020-09-10 09:18:03');
+INSERT INTO `t_order_position` VALUES (16047, 2, 2718, 140, '109.43904813486813', '24.338613395005446', '114.0', '15.0', '2020-09-10 09:18:09');
+INSERT INTO `t_order_position` VALUES (16048, 2, 2718, 140, '109.43911469290884', '24.33813010078028', '114.0', '15.0', '2020-09-10 09:18:14');
+INSERT INTO `t_order_position` VALUES (16049, 2, 2718, 140, '109.43916460323693', '24.337630168426173', '0.0', '15.0', '2020-09-10 09:18:34');
+INSERT INTO `t_order_position` VALUES (16050, 2, 2718, 140, '109.43923115406888', '24.337030240154576', '114.0', '15.0', '2020-09-10 09:18:54');
+INSERT INTO `t_order_position` VALUES (16051, 2, 2718, 140, '109.43926441865312', '24.33654699396576', '114.0', '15.0', '2020-09-10 09:18:59');
+INSERT INTO `t_order_position` VALUES (16052, 2, 2718, 140, '109.43929768416298', '24.336080409918075', '114.0', '15.0', '2020-09-10 09:19:04');
+INSERT INTO `t_order_position` VALUES (16053, 2, 2718, 140, '109.43939751361762', '24.335247166061194', '114.0', '15.0', '2020-09-10 09:19:19');
+INSERT INTO `t_order_position` VALUES (16054, 2, 2718, 140, '109.4394640656751', '24.33468056224267', '114.0', '15.0', '2020-09-10 09:19:24');
+INSERT INTO `t_order_position` VALUES (16055, 2, 2718, 140, '109.43956390901104', '24.33409724820632', '114.0', '15.0', '2020-09-10 09:19:29');
+INSERT INTO `t_order_position` VALUES (16056, 2, 2718, 140, '109.43959716818755', '24.33353069284562', '114.0', '15.0', '2020-09-10 09:19:34');
+INSERT INTO `t_order_position` VALUES (16057, 2, 2718, 140, '109.43968036379967', '24.332930741078922', '114.0', '15.0', '2020-09-10 09:19:39');
+INSERT INTO `t_order_position` VALUES (16058, 2, 2718, 140, '109.43974690617488', '24.33221417995732', '114.0', '15.0', '2020-09-10 09:19:44');
+INSERT INTO `t_order_position` VALUES (16059, 2, 2718, 140, '109.43979681306438', '24.331680924746678', '114.0', '15.0', '2020-09-10 09:19:49');
+INSERT INTO `t_order_position` VALUES (16060, 2, 2718, 140, '109.43989664897445', '24.330997639095173', '110.0', '15.0', '2020-09-10 09:20:00');
+INSERT INTO `t_order_position` VALUES (16061, 2, 2718, 140, '109.44001314397475', '24.33054759587783', '0.0', '15.0', '2020-09-10 09:21:40');
+INSERT INTO `t_order_position` VALUES (16062, 2, 2718, 140, '109.4408953508308', '24.33044631035772', '60.0', '15.0', '2020-09-10 09:21:55');
+INSERT INTO `t_order_position` VALUES (16063, 2, 2718, 140, '109.44174424208967', '24.330511662960344', '58.0', '15.0', '2020-09-10 09:22:05');
+INSERT INTO `t_order_position` VALUES (16064, 2, 2718, 140, '109.44267631029027', '24.330426896781397', '60.0', '15.0', '2020-09-10 09:22:25');
+INSERT INTO `t_order_position` VALUES (16065, 2, 2718, 140, '109.44345854622028', '24.330275689341875', '62.0', '15.0', '2020-09-10 09:22:30');
+INSERT INTO `t_order_position` VALUES (16066, 2, 2718, 140, '109.44429067996987', '24.330091050774076', '68.0', '15.0', '2020-09-10 09:22:35');
+INSERT INTO `t_order_position` VALUES (16067, 2, 2718, 140, '109.4451227822513', '24.329906384078814', '82.0', '15.0', '2020-09-10 09:22:40');
+INSERT INTO `t_order_position` VALUES (16068, 2, 2718, 140, '109.44572186181729', '24.32952214507386', '94.0', '15.0', '2020-09-10 09:22:45');
+INSERT INTO `t_order_position` VALUES (16069, 2, 2718, 140, '109.44613786124127', '24.328938264930574', '102.0', '15.0', '2020-09-10 09:22:50');
+INSERT INTO `t_order_position` VALUES (16070, 2, 2718, 140, '109.44628759727286', '24.3283548398639', '112.0', '15.0', '2020-09-10 09:23:01');
+INSERT INTO `t_order_position` VALUES (16071, 2, 2718, 140, '109.44628755822413', '24.327688364090168', '114.0', '15.0', '2020-09-10 09:23:01');
+INSERT INTO `t_order_position` VALUES (16072, 2, 2718, 140, '109.44625423601856', '24.327005284301443', '114.0', '15.0', '2020-09-10 09:23:06');
+INSERT INTO `t_order_position` VALUES (16073, 2, 2718, 140, '109.44620427653422', '24.326388881044767', '114.0', '15.0', '2020-09-10 09:23:11');
+INSERT INTO `t_order_position` VALUES (16074, 2, 2718, 140, '109.44623752852668', '24.325872305636427', '114.0', '15.0', '2020-09-10 09:23:16');
+INSERT INTO `t_order_position` VALUES (16075, 2, 2718, 140, '109.44622084347534', '24.325122550606597', '114.0', '15.0', '2020-09-10 09:23:31');
+INSERT INTO `t_order_position` VALUES (16076, 2, 2718, 140, '109.44622079271227', '24.32425613436357', '114.0', '15.0', '2020-09-10 09:23:41');
+INSERT INTO `t_order_position` VALUES (16077, 2, 2718, 140, '109.44622076440218', '24.323772940943904', '110.0', '15.0', '2020-09-10 09:25:21');
+INSERT INTO `t_order_position` VALUES (16078, 2, 2718, 140, '109.44648699646744', '24.323355934019386', '58.0', '15.0', '2020-09-10 09:25:31');
+INSERT INTO `t_order_position` VALUES (16079, 2, 2718, 140, '109.4474854360334', '24.323454151120107', '52.0', '15.0', '2020-09-10 09:25:41');
+INSERT INTO `t_order_position` VALUES (16080, 2, 2718, 140, '109.44815103795885', '24.323519607334084', '64.0', '15.0', '2020-09-10 09:25:47');
+INSERT INTO `t_order_position` VALUES (16081, 2, 2718, 140, '109.44875005275408', '24.32340188764341', '120.0', '15.0', '2020-09-10 09:25:58');
+INSERT INTO `t_order_position` VALUES (16082, 2, 2718, 140, '109.448750007874', '24.322635443499735', '112.0', '15.0', '2020-09-10 09:26:12');
+INSERT INTO `t_order_position` VALUES (16083, 2, 2718, 140, '109.44886644248507', '24.32195209593187', '122.0', '15.0', '2020-09-10 09:26:22');
+INSERT INTO `t_order_position` VALUES (16084, 2, 2718, 140, '109.44873329932426', '24.321452484900153', '114.0', '15.0', '2020-09-10 09:28:12');
+INSERT INTO `t_order_position` VALUES (16085, 2, 2718, 140, '109.44869999243674', '24.320969353256476', '112.0', '15.0', '2020-09-10 09:28:17');
+INSERT INTO `t_order_position` VALUES (16086, 2, 2718, 140, '109.44871660442149', '24.320502792506673', '112.0', '15.0', '2020-09-10 09:28:22');
+INSERT INTO `t_order_position` VALUES (16087, 2, 2718, 140, '109.44874982542875', '24.319519686125815', '112.0', '15.0', '2020-09-10 09:28:33');
+INSERT INTO `t_order_position` VALUES (16088, 2, 2718, 140, '109.44871651173544', '24.318919922784836', '112.0', '15.0', '2020-09-10 09:28:38');
+INSERT INTO `t_order_position` VALUES (16089, 2, 2718, 140, '109.44873312175774', '24.318420039221092', '120.0', '15.0', '2020-09-10 09:28:43');
+INSERT INTO `t_order_position` VALUES (16090, 2, 2718, 140, '109.44878300638867', '24.31785344799552', '112.0', '15.0', '2020-09-10 09:29:03');
+INSERT INTO `t_order_position` VALUES (16091, 2, 2718, 140, '109.44816732345585', '24.317471345145616', '112.0', '15.0', '2020-09-10 09:29:18');
+INSERT INTO `t_order_position` VALUES (16092, 2, 2718, 140, '109.44730204376432', '24.31748955253582', '108.0', '15.0', '2020-09-10 09:29:28');
+INSERT INTO `t_order_position` VALUES (16093, 2, 2718, 140, '109.44675290229729', '24.317423871065024', '110.0', '15.0', '2020-09-10 09:29:33');
+INSERT INTO `t_order_position` VALUES (16094, 2, 2718, 140, '109.4461870965237', '24.317191588775962', '118.0', '15.0', '2020-09-10 09:29:43');
+INSERT INTO `t_order_position` VALUES (16095, 2, 2718, 140, '109.44620368398238', '24.316275163907363', '114.0', '15.0', '2020-09-10 09:29:53');
+INSERT INTO `t_order_position` VALUES (16096, 2, 2718, 140, '109.44622027728632', '24.31545871005858', '114.0', '15.0', '2020-09-10 09:30:03');
+INSERT INTO `t_order_position` VALUES (16097, 2, 2718, 140, '109.4461702981994', '24.314509077796846', '114.0', '15.0', '2020-09-10 09:30:13');
+INSERT INTO `t_order_position` VALUES (16098, 2, 2718, 140, '109.44620354634358', '24.313925860316893', '112.0', '15.0', '2020-09-10 09:30:18');
+INSERT INTO `t_order_position` VALUES (16099, 2, 2718, 140, '109.44620351510667', '24.313392685618638', '116.0', '15.0', '2020-09-10 09:30:23');
+INSERT INTO `t_order_position` VALUES (16100, 2, 2718, 140, '109.44610363093335', '24.312759713031127', '100.0', '15.0', '2020-09-10 09:30:33');
+INSERT INTO `t_order_position` VALUES (16101, 2, 2718, 140, '109.44505520668234', '24.312711510711654', '110.0', '15.0', '2020-09-10 09:30:43');
+INSERT INTO `t_order_position` VALUES (16102, 2, 2718, 140, '109.44447272800763', '24.312695820294376', '114.0', '15.0', '2020-09-10 09:30:48');
+INSERT INTO `t_order_position` VALUES (16103, 2, 2718, 140, '109.44394016349975', '24.312696696271093', '112.0', '15.0', '2020-09-10 09:31:08');
+INSERT INTO `t_order_position` VALUES (16104, 2, 2718, 140, '109.443607276774', '24.312230710448986', '114.0', '15.0', '2020-09-10 09:31:24');
+INSERT INTO `t_order_position` VALUES (16105, 2, 2718, 140, '109.44362387005341', '24.311380937496388', '118.0', '15.0', '2020-09-10 09:31:34');
+INSERT INTO `t_order_position` VALUES (16106, 2, 2718, 140, '109.44354061052958', '24.310631296837375', '112.0', '15.0', '2020-09-10 09:31:44');
+INSERT INTO `t_order_position` VALUES (16107, 2, 2718, 140, '109.44362379875747', '24.310164635375592', '72.0', '15.0', '2020-09-10 09:31:54');
+INSERT INTO `t_order_position` VALUES (16108, 2, 2718, 140, '109.44435608414565', '24.31019676069381', '60.0', '15.0', '2020-09-10 09:32:09');
+INSERT INTO `t_order_position` VALUES (16109, 2, 2718, 140, '109.44497184908653', '24.310195736402626', '8.0', '15.0', '2020-09-10 09:32:29');
+INSERT INTO `t_order_position` VALUES (16110, 2, 2718, 140, '109.4441563699738', '24.31014710459548', '112.0', '15.0', '2020-09-10 09:33:44');
+INSERT INTO `t_order_position` VALUES (16111, 2, 2718, 140, '109.44365710345501', '24.31048115307282', '166.0', '15.0', '2020-09-10 09:34:09');
+INSERT INTO `t_order_position` VALUES (16112, 2, 2718, 140, '109.44360722501071', '24.311347641108956', '0.0', '15.0', '2020-09-10 09:34:20');
+INSERT INTO `t_order_position` VALUES (16113, 2, 2718, 140, '109.44357397004747', '24.311880868892036', '166.0', '15.0', '2020-09-10 09:34:25');
+INSERT INTO `t_order_position` VALUES (16114, 2, 2718, 140, '109.44357401497452', '24.312647306707515', '0.0', '15.0', '2020-09-10 09:34:35');
+INSERT INTO `t_order_position` VALUES (16115, 2, 2718, 140, '109.44355742165821', '24.313497080440317', '2.0', '15.0', '2020-09-10 09:34:45');
+INSERT INTO `t_order_position` VALUES (16116, 2, 2718, 140, '109.44362403608704', '24.314213426220185', '0.0', '15.0', '2020-09-10 09:34:55');
+INSERT INTO `t_order_position` VALUES (16117, 2, 2718, 140, '109.44364072604363', '24.31501316185994', '0.0', '15.0', '2020-09-10 09:35:05');
+INSERT INTO `t_order_position` VALUES (16118, 2, 2718, 140, '109.44362412691837', '24.31576296674724', '6.0', '15.0', '2020-09-10 09:35:15');
+INSERT INTO `t_order_position` VALUES (16119, 2, 2718, 140, '109.44365744235785', '24.31626276494044', '2.0', '15.0', '2020-09-10 09:35:25');
+INSERT INTO `t_order_position` VALUES (16120, 2, 2718, 140, '109.44330795979057', '24.316679873095808', '114.0', '15.0', '2020-09-10 09:35:45');
+INSERT INTO `t_order_position` VALUES (16121, 2, 2718, 140, '109.44277536792544', '24.316697385443664', '114.0', '15.0', '2020-09-10 09:35:50');
+INSERT INTO `t_order_position` VALUES (16122, 2, 2718, 140, '109.44222611690427', '24.31668158863765', '114.0', '15.0', '2020-09-10 09:35:55');
+INSERT INTO `t_order_position` VALUES (16123, 2, 2718, 140, '109.44127737548693', '24.31661640620225', '114.0', '15.0', '2020-09-10 09:36:05');
+INSERT INTO `t_order_position` VALUES (16124, 2, 2718, 140, '109.44061157953729', '24.316784029044165', '162.0', '15.0', '2020-09-10 09:36:15');
+INSERT INTO `t_order_position` VALUES (16125, 2, 2718, 140, '109.44046183000813', '24.31780061977093', '166.0', '15.0', '2020-09-10 09:36:25');
+INSERT INTO `t_order_position` VALUES (16126, 2, 2718, 140, '109.44046187203115', '24.31851707572743', '166.0', '15.0', '2020-09-10 09:36:30');
+INSERT INTO `t_order_position` VALUES (16127, 2, 2718, 140, '109.44046191503165', '24.319250193858828', '164.0', '15.0', '2020-09-10 09:36:35');
+INSERT INTO `t_order_position` VALUES (16128, 2, 2718, 140, '109.44037872343803', '24.3198668037238', '164.0', '15.0', '2020-09-10 09:36:40');
+INSERT INTO `t_order_position` VALUES (16129, 2, 2718, 140, '109.44032882181352', '24.32046670240891', '164.0', '15.0', '2020-09-10 09:36:45');
+INSERT INTO `t_order_position` VALUES (16130, 2, 2718, 140, '109.44034549479382', '24.320933208071807', '166.0', '15.0', '2020-09-10 09:36:51');
+INSERT INTO `t_order_position` VALUES (16131, 2, 2718, 140, '109.44031223091503', '24.32139978802286', '164.0', '15.0', '2020-09-10 09:36:56');
+INSERT INTO `t_order_position` VALUES (16132, 2, 2718, 140, '109.44021240769395', '24.322266350281957', '166.0', '15.0', '2020-09-10 09:37:06');
+INSERT INTO `t_order_position` VALUES (16133, 2, 2718, 140, '109.44016250959164', '24.322932897041877', '0.0', '15.0', '2020-09-10 09:37:16');
+INSERT INTO `t_order_position` VALUES (16134, 2, 2718, 140, '109.44022913061056', '24.323582610047374', '0.0', '15.0', '2020-09-10 09:37:31');
+INSERT INTO `t_order_position` VALUES (16135, 2, 2718, 140, '109.4402624679188', '24.324365667299645', '2.0', '15.0', '2020-09-10 09:37:41');
+INSERT INTO `t_order_position` VALUES (16136, 2, 2718, 140, '109.44031245277007', '24.325182024010235', '2.0', '15.0', '2020-09-10 09:37:51');
+INSERT INTO `t_order_position` VALUES (16137, 2, 2718, 140, '109.4402958550196', '24.325998479955647', '164.0', '15.0', '2020-09-10 09:38:01');
+INSERT INTO `t_order_position` VALUES (16138, 2, 2718, 140, '109.44024594538617', '24.326465086329225', '166.0', '15.0', '2020-09-10 09:38:06');
+INSERT INTO `t_order_position` VALUES (16139, 2, 2718, 140, '109.4401627783689', '24.327514907899165', '166.0', '15.0', '2020-09-10 09:38:16');
+INSERT INTO `t_order_position` VALUES (16140, 2, 2718, 140, '109.440179459299', '24.328114711398474', '162.0', '15.0', '2020-09-10 09:38:21');
+INSERT INTO `t_order_position` VALUES (16141, 2, 2718, 140, '109.44021278202459', '24.328647842940573', '166.0', '15.0', '2020-09-10 09:38:26');
+INSERT INTO `t_order_position` VALUES (16142, 2, 2718, 140, '109.44016287415307', '24.329147773928398', '0.0', '15.0', '2020-09-10 09:38:31');
+INSERT INTO `t_order_position` VALUES (16143, 2, 2718, 140, '109.44016292400032', '24.329997531571184', '164.0', '15.0', '2020-09-10 09:38:41');
+INSERT INTO `t_order_position` VALUES (16144, 2, 2718, 140, '109.44012967059238', '24.330647395777405', '160.0', '15.0', '2020-09-10 09:39:47');
+INSERT INTO `t_order_position` VALUES (16145, 2, 2718, 140, '109.44001319284627', '24.33138069252283', '164.0', '15.0', '2020-09-10 09:39:52');
+INSERT INTO `t_order_position` VALUES (16146, 2, 2718, 140, '109.4398967154413', '24.3321306510712', '160.0', '15.0', '2020-09-10 09:39:57');
+INSERT INTO `t_order_position` VALUES (16147, 2, 2718, 140, '109.43983017451205', '24.33286387452382', '162.0', '15.0', '2020-09-10 09:40:02');
+INSERT INTO `t_order_position` VALUES (16148, 2, 2718, 140, '109.43974698632879', '24.33358046055197', '162.0', '15.0', '2020-09-10 09:40:07');
+INSERT INTO `t_order_position` VALUES (16149, 2, 2718, 140, '109.43969708909844', '24.33428033622062', '162.0', '15.0', '2020-09-10 09:40:12');
+INSERT INTO `t_order_position` VALUES (16150, 2, 2718, 140, '109.43961389746302', '24.33494693663251', '160.0', '15.0', '2020-09-10 09:40:17');
+INSERT INTO `t_order_position` VALUES (16151, 2, 2718, 140, '109.43953070354722', '24.335580213118355', '160.0', '15.0', '2020-09-10 09:40:22');
+INSERT INTO `t_order_position` VALUES (16152, 2, 2718, 140, '109.43944751223853', '24.336263475641353', '162.0', '15.0', '2020-09-10 09:40:27');
+INSERT INTO `t_order_position` VALUES (16153, 2, 2718, 140, '109.43938097577134', '24.337096672333146', '162.0', '15.0', '2020-09-10 09:40:32');
+INSERT INTO `t_order_position` VALUES (16154, 2, 2718, 140, '109.43931442638753', '24.337713263081522', '164.0', '15.0', '2020-09-10 09:40:37');
+INSERT INTO `t_order_position` VALUES (16155, 2, 2718, 140, '109.43924788461602', '24.338463150202667', '160.0', '15.0', '2020-09-10 09:40:42');
+INSERT INTO `t_order_position` VALUES (16156, 2, 2718, 140, '109.43916469513279', '24.339196399438993', '162.0', '15.0', '2020-09-10 09:40:47');
+INSERT INTO `t_order_position` VALUES (16157, 2, 2718, 140, '109.43911479360445', '24.339846290876874', '162.0', '15.0', '2020-09-10 09:40:52');
+INSERT INTO `t_order_position` VALUES (16158, 2, 2718, 140, '109.4390648870707', '24.340412872252816', '162.0', '15.0', '2020-09-10 09:40:57');
+INSERT INTO `t_order_position` VALUES (16159, 2, 2718, 140, '109.43899833474067', '24.340996139624583', '0.0', '15.0', '2020-09-10 09:41:17');
+INSERT INTO `t_order_position` VALUES (16160, 2, 2718, 140, '109.43893177731329', '24.34149609671328', '160.0', '15.0', '2020-09-10 09:41:52');
+INSERT INTO `t_order_position` VALUES (16161, 2, 2718, 140, '109.43881530668912', '24.342462663126746', '164.0', '15.0', '2020-09-10 09:42:03');
+INSERT INTO `t_order_position` VALUES (16162, 2, 2718, 140, '109.43871545787347', '24.343012653736622', '160.0', '15.0', '2020-09-10 09:42:08');
+INSERT INTO `t_order_position` VALUES (16163, 2, 2718, 140, '109.43864890346691', '24.34357925924938', '160.0', '15.0', '2020-09-10 09:42:13');
+INSERT INTO `t_order_position` VALUES (16164, 2, 2718, 140, '109.43861564085113', '24.344112493642786', '162.0', '15.0', '2020-09-10 09:42:18');
+INSERT INTO `t_order_position` VALUES (16165, 2, 2718, 140, '109.43854908417492', '24.344645775147672', '164.0', '15.0', '2020-09-10 09:42:23');
+INSERT INTO `t_order_position` VALUES (16166, 2, 2718, 140, '109.43844923898959', '24.34527907622661', '160.0', '15.0', '2020-09-10 09:42:28');
+INSERT INTO `t_order_position` VALUES (16167, 2, 2718, 140, '109.43838269352213', '24.34601230337006', '162.0', '15.0', '2020-09-10 09:42:33');
+INSERT INTO `t_order_position` VALUES (16168, 2, 2718, 140, '109.43828285341606', '24.346745577314188', '160.0', '15.0', '2020-09-10 09:42:38');
+INSERT INTO `t_order_position` VALUES (16169, 2, 2718, 140, '109.43823295176422', '24.347428795181052', '0.0', '15.0', '2020-09-10 09:42:53');
+INSERT INTO `t_order_position` VALUES (16170, 2, 2718, 140, '109.43794997663076', '24.347945715231173', '116.0', '15.0', '2020-09-10 09:44:28');
+INSERT INTO `t_order_position` VALUES (16171, 2, 2718, 140, '109.43743390097755', '24.347996409849014', '114.0', '15.0', '2020-09-10 09:44:33');
+INSERT INTO `t_order_position` VALUES (16172, 2, 2718, 140, '109.43685121629699', '24.347997195643643', '112.0', '15.0', '2020-09-10 09:44:38');
+INSERT INTO `t_order_position` VALUES (16173, 2, 2718, 140, '109.43621856778972', '24.347981370107135', '0.0', '15.0', '2020-09-10 09:44:49');
+INSERT INTO `t_order_position` VALUES (16174, 2, 2718, 140, '109.43580237017032', '24.348465113892882', '112.0', '15.0', '2020-09-10 09:45:54');
+INSERT INTO `t_order_position` VALUES (16175, 2, 2718, 140, '109.43596883417808', '24.347998357766595', '158.0', '15.0', '2020-09-10 09:48:55');
+INSERT INTO `t_order_position` VALUES (16176, 2, 2718, 140, '109.43506976276608', '24.34796618289944', '114.0', '15.0', '2020-09-10 09:49:10');
+INSERT INTO `t_order_position` VALUES (16177, 2, 2718, 140, '109.43455361261574', '24.347966826928513', '112.0', '15.0', '2020-09-10 09:49:15');
+INSERT INTO `t_order_position` VALUES (16178, 2, 2718, 140, '109.43412073186364', '24.348467223089052', '164.0', '15.0', '2020-09-10 09:49:50');
+INSERT INTO `t_order_position` VALUES (16179, 2, 2718, 140, '109.43405417059418', '24.34916711536111', '0.0', '15.0', '2020-09-10 09:50:00');
+INSERT INTO `t_order_position` VALUES (16180, 2, 2718, 140, '109.43403754736592', '24.349633676653102', '166.0', '15.0', '2020-09-10 09:50:05');
+INSERT INTO `t_order_position` VALUES (16181, 2, 2718, 140, '109.4340875324658', '24.3502001303582', '0.0', '15.0', '2020-09-10 09:50:16');
+INSERT INTO `t_order_position` VALUES (16182, 2, 2718, 140, '109.43410421142441', '24.35068331377085', '12.0', '15.0', '2020-09-10 09:50:26');
+INSERT INTO `t_order_position` VALUES (16183, 2, 2718, 140, '109.43437065219709', '24.35124950292232', '14.0', '15.0', '2020-09-10 09:50:36');
+INSERT INTO `t_order_position` VALUES (16184, 2, 2718, 140, '109.43460378919818', '24.351815730520183', '8.0', '15.0', '2020-09-10 09:50:46');
+INSERT INTO `t_order_position` VALUES (16185, 2, 2718, 140, '109.43465377389815', '24.352398846238057', '0.0', '15.0', '2020-09-10 09:50:56');
+INSERT INTO `t_order_position` VALUES (16186, 2, 2718, 140, '109.43465381401158', '24.353081997552877', '166.0', '15.0', '2020-09-10 09:51:06');
+INSERT INTO `t_order_position` VALUES (16187, 2, 2718, 140, '109.43465385021165', '24.353698500291546', '162.0', '15.0', '2020-09-10 09:51:16');
+INSERT INTO `t_order_position` VALUES (16188, 2, 2718, 140, '109.43472047998263', '24.354198284869902', '150.0', '15.0', '2020-09-10 09:51:31');
+INSERT INTO `t_order_position` VALUES (16189, 2, 2718, 140, '109.43470388175213', '24.355081405008253', '166.0', '15.0', '2020-09-10 09:51:46');
+INSERT INTO `t_order_position` VALUES (16190, 2, 2718, 140, '109.43473722593492', '24.35583116550825', '2.0', '15.0', '2020-09-10 09:52:02');
+INSERT INTO `t_order_position` VALUES (16191, 2, 2718, 140, '109.43467066568431', '24.356514401562308', '162.0', '15.0', '2020-09-10 09:52:12');
+INSERT INTO `t_order_position` VALUES (16192, 2, 2718, 140, '109.43432103371863', '24.35691472780386', '132.0', '15.0', '2020-09-10 09:52:22');
+INSERT INTO `t_order_position` VALUES (16193, 2, 2718, 140, '109.43380488339714', '24.357231938447413', '166.0', '15.0', '2020-09-10 09:52:32');
+INSERT INTO `t_order_position` VALUES (16194, 2, 2718, 140, '109.43382157530745', '24.357931734762804', '0.0', '15.0', '2020-09-10 09:52:42');
+INSERT INTO `t_order_position` VALUES (16195, 2, 2718, 140, '109.43385491994671', '24.358664836020665', '0.0', '15.0', '2020-09-10 09:52:52');
+INSERT INTO `t_order_position` VALUES (16196, 2, 2718, 140, '109.43387161279487', '24.35938129546007', '8.0', '15.0', '2020-09-10 09:53:02');
+INSERT INTO `t_order_position` VALUES (16197, 2, 2718, 140, '109.43387165193569', '24.36004778842955', '4.0', '15.0', '2020-09-10 09:53:12');
+INSERT INTO `t_order_position` VALUES (16198, 2, 2718, 140, '109.43447109420903', '24.360446953218315', '56.0', '15.0', '2020-09-10 09:53:27');
+INSERT INTO `t_order_position` VALUES (16199, 2, 2718, 140, '109.43530359232228', '24.36046257409065', '56.0', '15.0', '2020-09-10 09:53:37');
+INSERT INTO `t_order_position` VALUES (16200, 2, 2718, 140, '109.43447109910126', '24.36053026489381', '114.0', '15.0', '2020-09-10 09:53:57');
+INSERT INTO `t_order_position` VALUES (16201, 2, 2718, 140, '109.43390498377279', '24.360564280528507', '110.0', '15.0', '2020-09-10 09:54:02');
+INSERT INTO `t_order_position` VALUES (16202, 2, 2718, 140, '109.43332220063985', '24.36058163953005', '112.0', '15.0', '2020-09-10 09:54:07');
+INSERT INTO `t_order_position` VALUES (16203, 2, 2718, 140, '109.43278935786284', '24.360632250476378', '116.0', '15.0', '2020-09-10 09:54:12');
+INSERT INTO `t_order_position` VALUES (16204, 2, 2718, 140, '109.43200671940966', '24.36069979362676', '130.0', '15.0', '2020-09-10 09:54:22');
+INSERT INTO `t_order_position` VALUES (16205, 2, 2718, 140, '109.4318735378851', '24.36133311209176', '166.0', '15.0', '2020-09-10 09:54:38');
+INSERT INTO `t_order_position` VALUES (16206, 2, 2718, 140, '109.43185692561407', '24.362016287138182', '166.0', '15.0', '2020-09-10 09:54:48');
+INSERT INTO `t_order_position` VALUES (16207, 2, 2718, 140, '109.43182367166828', '24.362882767209957', '164.0', '15.0', '2020-09-10 09:54:58');
+INSERT INTO `t_order_position` VALUES (16208, 2, 2718, 140, '109.43182371473522', '24.363615911660396', '0.0', '15.0', '2020-09-10 09:55:08');
+INSERT INTO `t_order_position` VALUES (16209, 2, 2718, 140, '109.43184040925149', '24.364332375574627', '0.0', '15.0', '2020-09-10 09:55:18');
+INSERT INTO `t_order_position` VALUES (16210, 2, 2718, 140, '109.43184043763668', '24.36481558495916', '166.0', '15.0', '2020-09-10 09:55:23');
+INSERT INTO `t_order_position` VALUES (16211, 2, 2718, 140, '109.43180718268638', '24.36566540465263', '0.0', '15.0', '2020-09-10 09:55:33');
+INSERT INTO `t_order_position` VALUES (16212, 2, 2718, 140, '109.43179056253213', '24.366215282822886', '166.0', '15.0', '2020-09-10 09:55:43');
+INSERT INTO `t_order_position` VALUES (16213, 2, 2718, 140, '109.43179059091779', '24.366698492980262', '0.0', '15.0', '2020-09-10 09:55:48');
+INSERT INTO `t_order_position` VALUES (16214, 2, 2718, 140, '109.43179062419765', '24.367265015486854', '0.0', '15.0', '2020-09-10 09:55:53');
+INSERT INTO `t_order_position` VALUES (16215, 2, 2718, 140, '109.43180730993244', '24.367831519689364', '166.0', '15.0', '2020-09-10 09:55:58');
+INSERT INTO `t_order_position` VALUES (16216, 2, 2718, 140, '109.4317740402469', '24.368431404780043', '0.0', '15.0', '2020-09-10 09:56:03');
+INSERT INTO `t_order_position` VALUES (16217, 2, 2718, 140, '109.43179072501668', '24.36898124710341', '164.0', '15.0', '2020-09-10 09:56:08');
+INSERT INTO `t_order_position` VALUES (16218, 2, 2718, 140, '109.43177410387102', '24.369514464352967', '166.0', '15.0', '2020-09-10 09:56:13');
+INSERT INTO `t_order_position` VALUES (16219, 2, 2718, 140, '109.43177413910917', '24.370114313163405', '124.0', '15.0', '2020-09-10 09:56:23');
+INSERT INTO `t_order_position` VALUES (16220, 2, 2718, 140, '109.43099146259105', '24.370198484285925', '106.0', '15.0', '2020-09-10 09:56:38');
+INSERT INTO `t_order_position` VALUES (16221, 2, 2718, 140, '109.43035863424343', '24.37019915880038', '114.0', '15.0', '2020-09-10 09:56:48');
+INSERT INTO `t_order_position` VALUES (16222, 2, 2718, 140, '109.42980905671375', '24.370199730160557', '110.0', '15.0', '2020-09-10 09:56:58');
+INSERT INTO `t_order_position` VALUES (16223, 2, 2718, 140, '109.42920950149693', '24.370217000633204', '114.0', '15.0', '2020-09-10 09:57:08');
+INSERT INTO `t_order_position` VALUES (16224, 2, 2718, 140, '109.42850999474805', '24.370184364798824', '134.0', '15.0', '2020-09-10 09:57:19');
+INSERT INTO `t_order_position` VALUES (16225, 2, 2718, 140, '109.42822688431384', '24.3706845117947', '4.0', '15.0', '2020-09-10 09:57:29');
+INSERT INTO `t_order_position` VALUES (16226, 2, 2718, 140, '109.42841006350588', '24.370184461462653', '58.0', '15.0', '2020-09-10 10:02:46');
+INSERT INTO `t_order_position` VALUES (16227, 2, 2718, 140, '109.42920950051781', '24.37020033816067', '58.0', '15.0', '2020-09-10 10:02:56');
+INSERT INTO `t_order_position` VALUES (16228, 2, 2718, 140, '109.42987567394762', '24.370216324091338', '58.0', '15.0', '2020-09-10 10:03:06');
+INSERT INTO `t_order_position` VALUES (16229, 2, 2718, 140, '109.43057513135781', '24.370215592513834', '60.0', '15.0', '2020-09-10 10:03:16');
+INSERT INTO `t_order_position` VALUES (16230, 2, 2718, 140, '109.43129121648634', '24.370198158594533', '60.0', '15.0', '2020-09-10 10:03:26');
+INSERT INTO `t_order_position` VALUES (16231, 2, 2718, 140, '109.43037528689561', '24.370182478804978', '114.0', '15.0', '2020-09-10 10:09:18');
+INSERT INTO `t_order_position` VALUES (16232, 2, 2718, 140, '109.42954259047382', '24.370216664828494', '114.0', '15.0', '2020-09-10 10:09:28');
+INSERT INTO `t_order_position` VALUES (16233, 2, 2718, 140, '109.42869320073494', '24.37018418642508', '116.0', '15.0', '2020-09-10 10:09:38');
+INSERT INTO `t_order_position` VALUES (16234, 2, 2718, 140, '109.42822687745937', '24.37056787444535', '162.0', '15.0', '2020-09-10 10:09:48');
+INSERT INTO `t_order_position` VALUES (16235, 2, 2718, 140, '109.42821025142857', '24.371067764812945', '4.0', '15.0', '2020-09-10 10:09:53');
+INSERT INTO `t_order_position` VALUES (16236, 2, 2718, 140, '109.4282269450252', '24.37171758596954', '166.0', '15.0', '2020-09-10 10:10:03');
+INSERT INTO `t_order_position` VALUES (16237, 2, 2718, 140, '109.42819359992446', '24.37113443067275', '110.0', '15.0', '2020-09-10 10:10:44');
+INSERT INTO `t_order_position` VALUES (16238, 2, 2718, 140, '109.42821022205213', '24.370567890376496', '112.0', '15.0', '2020-09-10 10:10:54');
+INSERT INTO `t_order_position` VALUES (16239, 2, 2718, 140, '109.42849333663798', '24.370134393524935', '62.0', '15.0', '2020-09-10 10:11:04');
+INSERT INTO `t_order_position` VALUES (16240, 2, 2718, 140, '109.42902629727436', '24.370167195804445', '56.0', '15.0', '2020-09-10 10:11:09');
+INSERT INTO `t_order_position` VALUES (16241, 2, 2718, 140, '109.42959255334556', '24.370216614032223', '58.0', '15.0', '2020-09-10 10:11:14');
+INSERT INTO `t_order_position` VALUES (16242, 2, 2718, 140, '109.43037528689561', '24.370182478804978', '62.0', '15.0', '2020-09-10 10:11:24');
+INSERT INTO `t_order_position` VALUES (16243, 2, 2718, 140, '109.43104142286035', '24.370215092752414', '56.0', '15.0', '2020-09-10 10:11:34');
+INSERT INTO `t_order_position` VALUES (16244, 2, 2718, 140, '109.43160759899355', '24.36986456110215', '114.0', '15.0', '2020-09-10 10:11:59');
+INSERT INTO `t_order_position` VALUES (16245, 2, 2718, 140, '109.43159091407287', '24.369314718229194', '114.0', '15.0', '2020-09-10 10:12:04');
+INSERT INTO `t_order_position` VALUES (16246, 2, 2718, 140, '109.43155757257729', '24.368698244202708', '114.0', '15.0', '2020-09-10 10:12:09');
+INSERT INTO `t_order_position` VALUES (16247, 2, 2718, 140, '109.43154088565784', '24.36811507695512', '114.0', '15.0', '2020-09-10 10:12:14');
+INSERT INTO `t_order_position` VALUES (16248, 2, 2718, 140, '109.43155750601531', '24.36756519807902', '112.0', '15.0', '2020-09-10 10:12:19');
+INSERT INTO `t_order_position` VALUES (16249, 2, 2718, 140, '109.43155747664986', '24.3670653251372', '112.0', '15.0', '2020-09-10 10:12:25');
+INSERT INTO `t_order_position` VALUES (16250, 2, 2718, 140, '109.43157410188826', '24.36659875884388', '112.0', '15.0', '2020-09-10 10:12:29');
+INSERT INTO `t_order_position` VALUES (16251, 2, 2718, 140, '109.4316573335912', '24.36606546927047', '74.0', '15.0', '2020-09-10 10:12:39');
+INSERT INTO `t_order_position` VALUES (16252, 2, 2718, 140, '109.43230676761748', '24.365964765027858', '56.0', '15.0', '2020-09-10 10:12:50');
+INSERT INTO `t_order_position` VALUES (16253, 2, 2718, 140, '109.433156006881', '24.36601376997069', '60.0', '15.0', '2020-09-10 10:12:54');
+INSERT INTO `t_order_position` VALUES (16254, 2, 2718, 140, '109.43372214580585', '24.366029759954007', '60.0', '15.0', '2020-09-10 10:13:00');
+INSERT INTO `t_order_position` VALUES (16255, 2, 2718, 140, '109.43447142003663', '24.365995523613737', '58.0', '15.0', '2020-09-10 10:13:05');
+INSERT INTO `t_order_position` VALUES (16256, 2, 2718, 140, '109.43517071985606', '24.365994650808783', '60.0', '15.0', '2020-09-10 10:13:10');
+INSERT INTO `t_order_position` VALUES (16257, 2, 2718, 140, '109.43601983388983', '24.36592691280953', '94.0', '15.0', '2020-09-10 10:13:20');
+INSERT INTO `t_order_position` VALUES (16258, 2, 2718, 140, '109.43626951110265', '24.364960167287038', '114.0', '15.0', '2020-09-10 10:13:30');
+INSERT INTO `t_order_position` VALUES (16259, 2, 2718, 140, '109.43635270911011', '24.36417692555938', '114.0', '15.0', '2020-09-10 10:13:35');
+INSERT INTO `t_order_position` VALUES (16260, 2, 2718, 140, '109.43640261132154', '24.363427052671064', '114.0', '15.0', '2020-09-10 10:13:40');
+INSERT INTO `t_order_position` VALUES (16261, 2, 2718, 140, '109.43650245940457', '24.36267711422696', '114.0', '15.0', '2020-09-10 10:13:45');
+INSERT INTO `t_order_position` VALUES (16262, 2, 2718, 140, '109.43656901376778', '24.36199386935614', '114.0', '15.0', '2020-09-10 10:13:50');
+INSERT INTO `t_order_position` VALUES (16263, 2, 2718, 140, '109.43665221644936', '24.36131060259435', '114.0', '15.0', '2020-09-10 10:13:55');
+INSERT INTO `t_order_position` VALUES (16264, 2, 2718, 140, '109.43673542075545', '24.360660660602548', '114.0', '15.0', '2020-09-10 10:14:00');
+INSERT INTO `t_order_position` VALUES (16265, 2, 2718, 140, '109.43678532400885', '24.359944113771007', '114.0', '15.0', '2020-09-10 10:14:05');
+INSERT INTO `t_order_position` VALUES (16266, 2, 2718, 140, '109.43681858560562', '24.3593442257172', '114.0', '15.0', '2020-09-10 10:14:10');
+INSERT INTO `t_order_position` VALUES (16267, 2, 2718, 140, '109.43693508782826', '24.35872756424338', '0.0', '15.0', '2020-09-10 10:14:20');
+INSERT INTO `t_order_position` VALUES (16268, 2, 2718, 140, '109.43700162809844', '24.357827710511053', '114.0', '15.0', '2020-09-10 10:14:55');
+INSERT INTO `t_order_position` VALUES (16269, 2, 2718, 140, '109.43708483199165', '24.357194431458403', '114.0', '15.0', '2020-09-10 10:15:00');
+INSERT INTO `t_order_position` VALUES (16270, 2, 2718, 140, '109.43711808920074', '24.356527895237722', '112.0', '15.0', '2020-09-10 10:15:05');
+INSERT INTO `t_order_position` VALUES (16271, 2, 2718, 140, '109.43720129165304', '24.355877954186077', '114.0', '15.0', '2020-09-10 10:15:10');
+INSERT INTO `t_order_position` VALUES (16272, 2, 2718, 140, '109.43725119966466', '24.355261382794577', '112.0', '15.0', '2020-09-10 10:15:16');
+INSERT INTO `t_order_position` VALUES (16273, 2, 2718, 140, '109.43735105053965', '24.35462808161339', '114.0', '15.0', '2020-09-10 10:15:21');
+INSERT INTO `t_order_position` VALUES (16274, 2, 2718, 140, '109.43740095623886', '24.35397818605388', '114.0', '15.0', '2020-09-10 10:15:26');
+INSERT INTO `t_order_position` VALUES (16275, 2, 2718, 140, '109.43746750970035', '24.35332826806171', '114.0', '15.0', '2020-09-10 10:15:31');
+INSERT INTO `t_order_position` VALUES (16276, 2, 2718, 140, '109.43753406197284', '24.35266168800416', '114.0', '15.0', '2020-09-10 10:15:36');
+INSERT INTO `t_order_position` VALUES (16277, 2, 2718, 140, '109.43760061794616', '24.352061756995', '114.0', '15.0', '2020-09-10 10:15:41');
+INSERT INTO `t_order_position` VALUES (16278, 2, 2718, 140, '109.43766716979678', '24.351395177257718', '114.0', '15.0', '2020-09-10 10:15:46');
+INSERT INTO `t_order_position` VALUES (16279, 2, 2718, 140, '109.43773372241459', '24.350745259898016', '114.0', '15.0', '2020-09-10 10:15:51');
+INSERT INTO `t_order_position` VALUES (16280, 2, 2718, 140, '109.43780027384379', '24.350078680507107', '114.0', '15.0', '2020-09-10 10:15:56');
+INSERT INTO `t_order_position` VALUES (16281, 2, 2718, 140, '109.43788347456882', '24.349445402683305', '114.0', '15.0', '2020-09-10 10:16:01');
+INSERT INTO `t_order_position` VALUES (16282, 2, 2718, 140, '109.43793338487144', '24.348895481815873', '110.0', '15.0', '2020-09-10 10:16:06');
+INSERT INTO `t_order_position` VALUES (16283, 2, 2718, 140, '109.43796664856217', '24.348362246302102', '114.0', '15.0', '2020-09-10 10:16:11');
+INSERT INTO `t_order_position` VALUES (16284, 2, 2718, 140, '109.43804984569574', '24.34767898230757', '112.0', '15.0', '2020-09-10 10:16:16');
+INSERT INTO `t_order_position` VALUES (16285, 2, 2718, 140, '109.43813304543403', '24.34704570484673', '112.0', '15.0', '2020-09-10 10:16:21');
+INSERT INTO `t_order_position` VALUES (16286, 2, 2718, 140, '109.43819960537911', '24.34654574775902', '114.0', '15.0', '2020-09-10 10:16:26');
+INSERT INTO `t_order_position` VALUES (16287, 2, 2718, 140, '109.43823287060562', '24.3460458371657', '114.0', '15.0', '2020-09-10 10:16:31');
+INSERT INTO `t_order_position` VALUES (16288, 2, 2718, 140, '109.43829942730211', '24.345495893819404', '114.0', '15.0', '2020-09-10 10:16:36');
+INSERT INTO `t_order_position` VALUES (16289, 2, 2718, 140, '109.43834933759766', '24.344962635967967', '112.0', '15.0', '2020-09-10 10:16:41');
+INSERT INTO `t_order_position` VALUES (16290, 2, 2718, 140, '109.43841589392667', '24.344412692777972', '112.0', '15.0', '2020-09-10 10:16:46');
+INSERT INTO `t_order_position` VALUES (16291, 2, 2718, 140, '109.4384990961315', '24.343846064130105', '112.0', '15.0', '2020-09-10 10:16:51');
+INSERT INTO `t_order_position` VALUES (16292, 2, 2718, 140, '109.43856565198826', '24.343296121016206', '112.0', '15.0', '2020-09-10 10:16:56');
+INSERT INTO `t_order_position` VALUES (16293, 2, 2718, 140, '109.43861556361011', '24.34279618773696', '112.0', '15.0', '2020-09-10 10:17:01');
+INSERT INTO `t_order_position` VALUES (16294, 2, 2718, 140, '109.43868211518918', '24.342179596429823', '114.0', '15.0', '2020-09-10 10:17:52');
+INSERT INTO `t_order_position` VALUES (16295, 2, 2718, 140, '109.43874864309402', '24.34116311552072', '114.0', '15.0', '2020-09-10 10:18:02');
+INSERT INTO `t_order_position` VALUES (16296, 2, 2718, 140, '109.43881518936627', '24.340463214352717', '114.0', '15.0', '2020-09-10 10:18:07');
+INSERT INTO `t_order_position` VALUES (16297, 2, 2718, 140, '109.4388983841334', '24.33979661380074', '114.0', '15.0', '2020-09-10 10:18:12');
+INSERT INTO `t_order_position` VALUES (16298, 2, 2718, 140, '109.43896492797988', '24.33906338890055', '114.0', '15.0', '2020-09-10 10:18:17');
+INSERT INTO `t_order_position` VALUES (16299, 2, 2718, 140, '109.43903147650575', '24.338413474403406', '112.0', '15.0', '2020-09-10 10:18:22');
+INSERT INTO `t_order_position` VALUES (16300, 2, 2718, 140, '109.43909802971088', '24.337846870177977', '114.0', '15.0', '2020-09-10 10:18:27');
+INSERT INTO `t_order_position` VALUES (16301, 2, 2718, 140, '109.43918121750193', '24.337080297944155', '114.0', '15.0', '2020-09-10 10:19:17');
+INSERT INTO `t_order_position` VALUES (16302, 2, 2718, 140, '109.4392311286514', '24.336597027878586', '114.0', '15.0', '2020-09-10 10:19:22');
+INSERT INTO `t_order_position` VALUES (16303, 2, 2718, 140, '109.43929767243202', '24.335880465924298', '114.0', '15.0', '2020-09-10 10:19:32');
+INSERT INTO `t_order_position` VALUES (16304, 2, 2718, 140, '109.43941414529742', '24.33499721218398', '112.0', '15.0', '2020-09-10 10:19:42');
+INSERT INTO `t_order_position` VALUES (16305, 2, 2718, 140, '109.43948069632535', '24.334413946453058', '114.0', '15.0', '2020-09-10 10:19:47');
+INSERT INTO `t_order_position` VALUES (16306, 2, 2718, 140, '109.43951395660945', '24.33386405303751', '112.0', '15.0', '2020-09-10 10:19:52');
+INSERT INTO `t_order_position` VALUES (16307, 2, 2718, 140, '109.43958050732518', '24.33328078755291', '114.0', '15.0', '2020-09-10 10:19:57');
+INSERT INTO `t_order_position` VALUES (16308, 2, 2718, 140, '109.43966369811527', '24.33259752618881', '114.0', '15.0', '2020-09-10 10:20:02');
+INSERT INTO `t_order_position` VALUES (16309, 2, 2718, 140, '109.43973024738528', '24.331997598924197', '114.0', '15.0', '2020-09-10 10:20:07');
+INSERT INTO `t_order_position` VALUES (16310, 2, 2718, 140, '109.43979679937979', '24.33144765757517', '112.0', '15.0', '2020-09-10 10:20:13');
+INSERT INTO `t_order_position` VALUES (16311, 2, 2718, 140, '109.4398633540988', '24.330947702076067', '110.0', '15.0', '2020-09-10 10:20:18');
+INSERT INTO `t_order_position` VALUES (16312, 2, 2718, 140, '109.43984667682898', '24.330414544715364', '122.0', '15.0', '2020-09-10 10:22:23');
+INSERT INTO `t_order_position` VALUES (16313, 2, 2718, 140, '109.43978005949955', '24.329848136743387', '0.0', '15.0', '2020-09-10 10:22:48');
+INSERT INTO `t_order_position` VALUES (16314, 2, 2718, 140, '109.43984659863284', '24.329081591365988', '116.0', '15.0', '2020-09-10 10:23:34');
+INSERT INTO `t_order_position` VALUES (16315, 2, 2718, 140, '109.43984657126434', '24.328615058025036', '116.0', '15.0', '2020-09-10 10:23:39');
+INSERT INTO `t_order_position` VALUES (16316, 2, 2718, 140, '109.4398798163175', '24.3278152382257', '112.0', '15.0', '2020-09-10 10:23:49');
+INSERT INTO `t_order_position` VALUES (16317, 2, 2718, 140, '109.4398963840889', '24.326482263209368', '114.0', '15.0', '2020-09-10 10:24:04');
+INSERT INTO `t_order_position` VALUES (16318, 2, 2718, 140, '109.43992964763645', '24.325999020126996', '114.0', '15.0', '2020-09-10 10:24:09');
+INSERT INTO `t_order_position` VALUES (16319, 2, 2718, 140, '109.43994623882831', '24.325065931443685', '112.0', '15.0', '2020-09-10 10:24:19');
+INSERT INTO `t_order_position` VALUES (16320, 2, 2718, 140, '109.43996283391738', '24.3241994908044', '114.0', '15.0', '2020-09-10 10:24:29');
+INSERT INTO `t_order_position` VALUES (16321, 2, 2718, 140, '109.43996280166323', '24.323649650060084', '110.0', '15.0', '2020-09-10 10:24:50');
+INSERT INTO `t_order_position` VALUES (16322, 2, 2718, 140, '109.44012921415296', '24.32286629888525', '110.0', '15.0', '2020-09-10 10:26:15');
+INSERT INTO `t_order_position` VALUES (16323, 2, 2718, 140, '109.44017912210667', '24.32236637042446', '112.0', '15.0', '2020-09-10 10:26:20');
+INSERT INTO `t_order_position` VALUES (16324, 2, 2718, 140, '109.44016244606352', '24.321849878684915', '112.0', '15.0', '2020-09-10 10:26:26');
+INSERT INTO `t_order_position` VALUES (16325, 2, 2718, 140, '109.44016241283359', '24.32128337713746', '112.0', '15.0', '2020-09-10 10:26:31');
+INSERT INTO `t_order_position` VALUES (16326, 2, 2718, 140, '109.44021230018643', '24.3204335514648', '112.0', '15.0', '2020-09-10 10:26:46');
+INSERT INTO `t_order_position` VALUES (16327, 2, 2718, 140, '109.44022890679969', '24.319767055182588', '110.0', '15.0', '2020-09-10 10:26:51');
+INSERT INTO `t_order_position` VALUES (16328, 2, 2718, 140, '109.44027880181682', '24.319050524580515', '112.0', '15.0', '2020-09-10 10:26:56');
+INSERT INTO `t_order_position` VALUES (16329, 2, 2718, 140, '109.44027876076962', '24.318350730099233', '110.0', '15.0', '2020-09-10 10:27:01');
+INSERT INTO `t_order_position` VALUES (16330, 2, 2718, 140, '109.44027872949566', '24.317817553604197', '112.0', '15.0', '2020-09-10 10:27:06');
+INSERT INTO `t_order_position` VALUES (16331, 2, 2718, 140, '109.44036191073036', '24.317017665776255', '112.0', '15.0', '2020-09-10 10:27:16');
+INSERT INTO `t_order_position` VALUES (16332, 2, 2718, 140, '109.44064485467943', '24.31651739126165', '56.0', '15.0', '2020-09-10 10:27:26');
+INSERT INTO `t_order_position` VALUES (16333, 2, 2718, 140, '109.4413605948629', '24.316532970499185', '58.0', '15.0', '2020-09-10 10:27:41');
+INSERT INTO `t_order_position` VALUES (16334, 2, 2718, 140, '109.44225939736657', '24.31654824259774', '66.0', '15.0', '2020-09-10 10:27:51');
+INSERT INTO `t_order_position` VALUES (16335, 2, 2718, 140, '109.4432247332497', '24.316513389304806', '58.0', '15.0', '2020-09-10 10:28:01');
+INSERT INTO `t_order_position` VALUES (16336, 2, 2718, 140, '109.44372402620377', '24.31646259776674', '120.0', '15.0', '2020-09-10 10:28:11');
+INSERT INTO `t_order_position` VALUES (16337, 2, 2718, 140, '109.44372399592704', '24.315946083778464', '126.0', '15.0', '2020-09-10 10:28:22');
+INSERT INTO `t_order_position` VALUES (16338, 2, 2718, 140, '109.44372396565042', '24.31542956999392', '112.0', '15.0', '2020-09-10 10:28:32');
+INSERT INTO `t_order_position` VALUES (16339, 2, 2718, 140, '109.44367398774092', '24.31459656476272', '114.0', '15.0', '2020-09-10 10:28:42');
+INSERT INTO `t_order_position` VALUES (16340, 2, 2718, 140, '109.44359074208326', '24.314080186431813', '120.0', '15.0', '2020-09-10 10:28:52');
+INSERT INTO `t_order_position` VALUES (16341, 2, 2718, 140, '109.4436073500244', '24.313480337881654', '114.0', '15.0', '2020-09-10 10:29:47');
+INSERT INTO `t_order_position` VALUES (16342, 2, 2718, 140, '109.44360731388747', '24.31286385486703', '144.0', '15.0', '2020-09-10 10:29:57');
+INSERT INTO `t_order_position` VALUES (16343, 2, 2718, 140, '109.44299150286045', '24.31273155130891', '112.0', '15.0', '2020-09-10 10:30:07');
+INSERT INTO `t_order_position` VALUES (16344, 2, 2718, 140, '109.44205944320305', '24.31273302004267', '112.0', '15.0', '2020-09-10 10:30:17');
+INSERT INTO `t_order_position` VALUES (16345, 2, 2718, 140, '109.44122721310508', '24.31273430099987', '112.0', '15.0', '2020-09-10 10:30:27');
+INSERT INTO `t_order_position` VALUES (16346, 2, 2718, 140, '109.44062798648837', '24.312718543714105', '164.0', '15.0', '2020-09-10 10:30:37');
+INSERT INTO `t_order_position` VALUES (16347, 2, 2718, 140, '109.44051151437316', '24.313501817832417', '0.0', '15.0', '2020-09-10 10:30:48');
+INSERT INTO `t_order_position` VALUES (16348, 2, 2718, 140, '109.4404782556358', '24.31405170392647', '166.0', '15.0', '2020-09-10 10:30:53');
+INSERT INTO `t_order_position` VALUES (16349, 2, 2718, 140, '109.44047828690795', '24.314584878887306', '164.0', '15.0', '2020-09-10 10:30:58');
+INSERT INTO `t_order_position` VALUES (16350, 2, 2718, 140, '109.4405282605034', '24.315217949953954', '0.0', '15.0', '2020-09-10 10:31:03');
+INSERT INTO `t_order_position` VALUES (16351, 2, 2718, 140, '109.44054493528148', '24.315717777067377', '0.0', '15.0', '2020-09-10 10:31:08');
+INSERT INTO `t_order_position` VALUES (16352, 2, 2718, 140, '109.44052831718412', '24.316184330588637', '166.0', '15.0', '2020-09-10 10:31:13');
+INSERT INTO `t_order_position` VALUES (16353, 2, 2718, 140, '109.44049507020125', '24.316934158823972', '166.0', '15.0', '2020-09-10 10:31:23');
+INSERT INTO `t_order_position` VALUES (16354, 2, 2718, 140, '109.44047846965654', '24.317700624400153', '166.0', '15.0', '2020-09-10 10:31:33');
+INSERT INTO `t_order_position` VALUES (16355, 2, 2718, 140, '109.44044523041538', '24.318583747605103', '166.0', '15.0', '2020-09-10 10:31:43');
+INSERT INTO `t_order_position` VALUES (16356, 2, 2718, 140, '109.44039533969567', '24.319366925424806', '166.0', '15.0', '2020-09-10 10:31:54');
+INSERT INTO `t_order_position` VALUES (16357, 2, 2718, 140, '109.4403454498374', '24.320166765404338', '166.0', '15.0', '2020-09-10 10:32:03');
+INSERT INTO `t_order_position` VALUES (16358, 2, 2718, 140, '109.44032884526914', '24.320866585575796', '166.0', '15.0', '2020-09-10 10:32:13');
+INSERT INTO `t_order_position` VALUES (16359, 2, 2718, 140, '109.44029559700164', '24.32159975442238', '162.0', '15.0', '2020-09-10 10:32:23');
+INSERT INTO `t_order_position` VALUES (16360, 2, 2718, 140, '109.44016246463323', '24.322166453187414', '162.0', '15.0', '2020-09-10 10:32:33');
+INSERT INTO `t_order_position` VALUES (16361, 2, 2718, 140, '109.44022908858456', '24.322866151285943', '166.0', '15.0', '2020-09-10 10:33:28');
+INSERT INTO `t_order_position` VALUES (16362, 2, 2718, 140, '109.44031235210396', '24.3234658538789', '2.0', '15.0', '2020-09-10 10:33:39');
+INSERT INTO `t_order_position` VALUES (16363, 2, 2718, 140, '109.4402125200894', '24.32418246092347', '160.0', '15.0', '2020-09-10 10:33:49');
+INSERT INTO `t_order_position` VALUES (16364, 2, 2718, 140, '109.44017927066537', '24.32489896964265', '164.0', '15.0', '2020-09-10 10:33:59');
+INSERT INTO `t_order_position` VALUES (16365, 2, 2718, 140, '109.44022924984809', '24.32561535568762', '162.0', '15.0', '2020-09-10 10:34:09');
+INSERT INTO `t_order_position` VALUES (16366, 2, 2718, 140, '109.44024593072571', '24.326215158246328', '164.0', '15.0', '2020-09-10 10:34:19');
+INSERT INTO `t_order_position` VALUES (16367, 2, 2718, 140, '109.44019605029692', '24.32718162099199', '164.0', '15.0', '2020-09-10 10:34:29');
+INSERT INTO `t_order_position` VALUES (16368, 2, 2718, 140, '109.44019607766351', '24.32764815380683', '166.0', '15.0', '2020-09-10 10:34:34');
+INSERT INTO `t_order_position` VALUES (16369, 2, 2718, 140, '109.44024607048962', '24.32859780796472', '0.0', '15.0', '2020-09-10 10:34:44');
+INSERT INTO `t_order_position` VALUES (16370, 2, 2718, 140, '109.44017952282927', '24.32919773506227', '0.0', '15.0', '2020-09-10 10:34:54');
+INSERT INTO `t_order_position` VALUES (16371, 2, 2718, 140, '109.44024614281578', '24.329830789293926', '166.0', '15.0', '2020-09-10 10:35:09');
+INSERT INTO `t_order_position` VALUES (16372, 2, 2718, 140, '109.44036269259324', '24.33034713604597', '54.0', '15.0', '2020-09-10 10:35:55');
+INSERT INTO `t_order_position` VALUES (16373, 2, 2718, 140, '109.44126154457845', '24.330495741149136', '62.0', '15.0', '2020-09-10 10:36:05');
+INSERT INTO `t_order_position` VALUES (16374, 2, 2718, 140, '109.44226021608269', '24.33051086109993', '60.0', '15.0', '2020-09-10 10:36:15');
+INSERT INTO `t_order_position` VALUES (16375, 2, 2718, 140, '109.44289267866432', '24.3304265535218', '60.0', '15.0', '2020-09-10 10:36:20');
+INSERT INTO `t_order_position` VALUES (16376, 2, 2718, 140, '109.4434918355375', '24.330325621361037', '64.0', '15.0', '2020-09-10 10:36:25');
+INSERT INTO `t_order_position` VALUES (16377, 2, 2718, 140, '109.44400776317471', '24.330241472768016', '66.0', '15.0', '2020-09-10 10:36:30');
+INSERT INTO `t_order_position` VALUES (16378, 2, 2718, 140, '109.4445403191238', '24.33012396189234', '70.0', '15.0', '2020-09-10 10:36:35');
+INSERT INTO `t_order_position` VALUES (16379, 2, 2718, 140, '109.44503957528791', '24.329956509655087', '80.0', '15.0', '2020-09-10 10:36:40');
+INSERT INTO `t_order_position` VALUES (16380, 2, 2718, 140, '109.4454888864498', '24.329639174886008', '84.0', '15.0', '2020-09-10 10:36:45');
+INSERT INTO `t_order_position` VALUES (16381, 2, 2718, 140, '109.44605466197577', '24.32905504149202', '102.0', '15.0', '2020-09-10 10:36:55');
+INSERT INTO `t_order_position` VALUES (16382, 2, 2718, 140, '109.44623766910284', '24.328271616631838', '112.0', '15.0', '2020-09-10 10:37:07');
+INSERT INTO `t_order_position` VALUES (16383, 2, 2718, 140, '109.44622097917025', '24.32743855075469', '114.0', '15.0', '2020-09-10 10:37:15');
+INSERT INTO `t_order_position` VALUES (16384, 2, 2718, 140, '109.44622093035892', '24.326605456692082', '114.0', '15.0', '2020-09-10 10:37:25');
+INSERT INTO `t_order_position` VALUES (16385, 2, 2718, 140, '109.44625417646935', '24.325988909963517', '114.0', '15.0', '2020-09-10 10:37:35');
+INSERT INTO `t_order_position` VALUES (16386, 2, 2718, 140, '109.44623749435917', '24.325289140451254', '114.0', '15.0', '2020-09-10 10:37:45');
+INSERT INTO `t_order_position` VALUES (16387, 2, 2718, 140, '109.44620416426882', '24.324472767089173', '114.0', '15.0', '2020-09-10 10:37:55');
+INSERT INTO `t_order_position` VALUES (16388, 2, 2718, 140, '109.44622077025944', '24.323872911981322', '112.0', '15.0', '2020-09-10 10:38:05');
+INSERT INTO `t_order_position` VALUES (16389, 2, 2718, 140, '109.44640379361233', '24.323389402058943', '62.0', '15.0', '2020-09-10 10:38:15');
+INSERT INTO `t_order_position` VALUES (16390, 2, 2718, 140, '109.44706942735601', '24.32345488671279', '54.0', '15.0', '2020-09-10 10:38:26');
+INSERT INTO `t_order_position` VALUES (16391, 2, 2718, 140, '109.44785152223433', '24.323536807330647', '54.0', '15.0', '2020-09-10 10:38:36');
+INSERT INTO `t_order_position` VALUES (16392, 2, 2718, 140, '109.44840063318271', '24.323535818019316', '70.0', '15.0', '2020-09-10 10:38:46');
+INSERT INTO `t_order_position` VALUES (16393, 2, 2718, 140, '109.44898300919004', '24.323534755887163', '54.0', '15.0', '2020-09-10 10:49:16');
+INSERT INTO `t_order_position` VALUES (16394, 2, 2718, 140, '109.44988151112378', '24.32366638608294', '54.0', '15.0', '2020-09-10 10:49:41');
+INSERT INTO `t_order_position` VALUES (16395, 2, 2718, 140, '109.45081324908651', '24.32371461270855', '54.0', '15.0', '2020-09-10 10:49:51');
+INSERT INTO `t_order_position` VALUES (16396, 2, 2718, 140, '109.44979832453878', '24.32376651254021', '112.0', '15.0', '2020-09-10 10:50:11');
+INSERT INTO `t_order_position` VALUES (16397, 2, 2718, 140, '109.44888318605898', '24.323734880950223', '108.0', '15.0', '2020-09-10 10:50:21');
+INSERT INTO `t_order_position` VALUES (16398, 2, 2718, 140, '109.44788480889306', '24.32365338056539', '112.0', '15.0', '2020-09-10 10:50:32');
+INSERT INTO `t_order_position` VALUES (16399, 2, 2718, 140, '109.4471859193409', '24.323604637958386', '108.0', '15.0', '2020-09-10 10:50:47');
+INSERT INTO `t_order_position` VALUES (16400, 2, 2718, 140, '109.44630395817416', '24.323572855127708', '110.0', '15.0', '2020-09-10 10:50:57');
+INSERT INTO `t_order_position` VALUES (16401, 2, 2718, 140, '109.44537203414244', '24.323491140283576', '106.0', '15.0', '2020-09-10 10:51:07');
+INSERT INTO `t_order_position` VALUES (16402, 2, 2718, 140, '109.44483949040749', '24.323475373819004', '106.0', '15.0', '2020-09-10 10:51:12');
+INSERT INTO `t_order_position` VALUES (16403, 2, 2718, 140, '109.44424036056218', '24.323409720054656', '108.0', '15.0', '2020-09-10 10:51:17');
+INSERT INTO `t_order_position` VALUES (16404, 2, 2718, 140, '109.44359128513332', '24.323344132611474', '108.0', '15.0', '2020-09-10 10:51:22');
+INSERT INTO `t_order_position` VALUES (16405, 2, 2718, 140, '109.44289225860207', '24.32326194559099', '106.0', '15.0', '2020-09-10 10:51:27');
+INSERT INTO `t_order_position` VALUES (16406, 2, 2718, 140, '109.44225978913047', '24.323229619873995', '108.0', '15.0', '2020-09-10 10:51:37');
+INSERT INTO `t_order_position` VALUES (16407, 2, 2718, 140, '109.44161065459441', '24.323163979548198', '106.0', '15.0', '2020-09-10 10:51:45');
+INSERT INTO `t_order_position` VALUES (16408, 2, 2718, 140, '109.44091156308177', '24.323065073427824', '112.0', '15.0', '2020-09-10 10:51:47');
+INSERT INTO `t_order_position` VALUES (16409, 2, 2718, 140, '109.44011257814249', '24.32303294172534', '114.0', '15.0', '2020-09-10 10:51:52');
+INSERT INTO `t_order_position` VALUES (16410, 2, 2718, 140, '109.43946338630477', '24.323100537744992', '106.0', '14.0', '2020-09-10 10:51:57');
+INSERT INTO `t_order_position` VALUES (16411, 2, 2718, 140, '109.43854781024534', '24.322935227082112', '108.0', '15.0', '2020-09-10 10:52:07');
+INSERT INTO `t_order_position` VALUES (16412, 2, 2718, 140, '109.43763220025369', '24.32286985175652', '108.0', '15.0', '2020-09-10 10:52:17');
+INSERT INTO `t_order_position` VALUES (16413, 2, 2718, 140, '109.43708281544961', '24.322837274095328', '108.0', '15.0', '2020-09-10 10:52:22');
+INSERT INTO `t_order_position` VALUES (16414, 2, 2718, 140, '109.43650011891349', '24.32280472749101', '110.0', '15.0', '2020-09-10 10:52:27');
+INSERT INTO `t_order_position` VALUES (16415, 2, 2718, 140, '109.43583416128375', '24.32278893581222', '110.0', '15.0', '2020-09-10 10:52:34');
+INSERT INTO `t_order_position` VALUES (16416, 2, 2718, 140, '109.43518483099011', '24.322756442094946', '108.0', '15.0', '2020-09-10 10:52:38');
+INSERT INTO `t_order_position` VALUES (16417, 2, 2718, 140, '109.4345687768032', '24.322657241610905', '106.0', '15.0', '2020-09-10 10:52:43');
+INSERT INTO `t_order_position` VALUES (16418, 2, 2718, 140, '109.43395270711744', '24.322608010085595', '108.0', '15.0', '2020-09-10 10:52:48');
+INSERT INTO `t_order_position` VALUES (16419, 2, 2718, 140, '109.4334198767432', '24.32259198696246', '114.0', '15.0', '2020-09-10 10:52:53');
+INSERT INTO `t_order_position` VALUES (16420, 2, 2718, 140, '109.43247073707927', '24.32254310837502', '108.0', '15.0', '2020-09-10 10:53:03');
+INSERT INTO `t_order_position` VALUES (16421, 2, 2718, 140, '109.43180464984697', '24.322543861496484', '160.0', '15.0', '2020-09-10 10:53:13');
+INSERT INTO `t_order_position` VALUES (16422, 2, 2718, 140, '109.43175474624711', '24.323460317766582', '0.0', '15.0', '2020-09-10 10:53:23');
+INSERT INTO `t_order_position` VALUES (16423, 2, 2718, 140, '109.43175478245439', '24.32407680579296', '0.0', '15.0', '2020-09-10 10:53:28');
+INSERT INTO `t_order_position` VALUES (16424, 2, 2718, 140, '109.43178811970814', '24.324626609596404', '166.0', '15.0', '2020-09-10 10:53:33');
+INSERT INTO `t_order_position` VALUES (16425, 2, 2718, 140, '109.43177149757061', '24.325143145606578', '166.0', '15.0', '2020-09-10 10:53:38');
+INSERT INTO `t_order_position` VALUES (16426, 2, 2718, 140, '109.43178818038007', '24.325659644694383', '166.0', '15.0', '2020-09-10 10:53:43');
+INSERT INTO `t_order_position` VALUES (16427, 2, 2718, 140, '109.43177156117859', '24.3262261667324', '0.0', '15.0', '2020-09-10 10:53:53');
+INSERT INTO `t_order_position` VALUES (16428, 2, 2718, 140, '109.4317383080565', '24.32710928327071', '166.0', '15.0', '2020-09-10 10:54:33');
+INSERT INTO `t_order_position` VALUES (16429, 2, 2718, 140, '109.43172169077195', '24.32770912969551', '166.0', '15.0', '2020-09-10 10:54:38');
+INSERT INTO `t_order_position` VALUES (16430, 2, 2718, 140, '109.43172172404446', '24.328275634079304', '0.0', '15.0', '2020-09-10 10:54:46');
+INSERT INTO `t_order_position` VALUES (16431, 2, 2718, 140, '109.43177171188218', '24.328792097379498', '0.0', '15.0', '2020-09-10 10:54:48');
+INSERT INTO `t_order_position` VALUES (16432, 2, 2718, 140, '109.43178839567047', '24.32932525985849', '2.0', '15.0', '2020-09-10 10:54:53');
+INSERT INTO `t_order_position` VALUES (16433, 2, 2718, 140, '109.4318217279763', '24.32979175628888', '0.0', '15.0', '2020-09-10 10:54:58');
+INSERT INTO `t_order_position` VALUES (16434, 2, 2718, 140, '109.43182177886372', '24.330658176284214', '0.0', '15.0', '2020-09-10 10:56:04');
+INSERT INTO `t_order_position` VALUES (16435, 2, 2718, 140, '109.43180515871234', '24.331208038640824', '0.0', '15.0', '2020-09-10 10:56:09');
+INSERT INTO `t_order_position` VALUES (16436, 2, 2718, 140, '109.43180519002797', '24.331741220704114', '166.0', '15.0', '2020-09-10 10:56:14');
+INSERT INTO `t_order_position` VALUES (16437, 2, 2718, 140, '109.4318052262368', '24.33235771274607', '0.0', '15.0', '2020-09-10 10:56:19');
+INSERT INTO `t_order_position` VALUES (16438, 2, 2718, 140, '109.4318052595099', '24.332924219213105', '164.0', '15.0', '2020-09-10 10:56:24');
+INSERT INTO `t_order_position` VALUES (16439, 2, 2718, 140, '109.43178864423876', '24.333557392379667', '162.0', '15.0', '2020-09-10 10:56:29');
+INSERT INTO `t_order_position` VALUES (16440, 2, 2718, 140, '109.43172207243389', '24.334207283451924', '0.0', '15.0', '2020-09-10 10:56:34');
+INSERT INTO `t_order_position` VALUES (16441, 2, 2718, 140, '109.43170544926619', '24.334707161339264', '166.0', '15.0', '2020-09-10 10:56:39');
+INSERT INTO `t_order_position` VALUES (16442, 2, 2718, 140, '109.43142238162353', '24.335174009840554', '102.0', '15.0', '2020-09-10 10:56:49');
+INSERT INTO `t_order_position` VALUES (16443, 2, 2718, 140, '109.43057307082867', '24.335141603341082', '112.0', '15.0', '2020-09-10 10:56:59');
+INSERT INTO `t_order_position` VALUES (16444, 2, 2718, 140, '109.42979034191272', '24.33512575858084', '112.0', '15.0', '2020-09-10 10:57:04');
+INSERT INTO `t_order_position` VALUES (16445, 2, 2718, 140, '109.42915747683789', '24.335143061412293', '112.0', '15.0', '2020-09-10 10:57:09');
+INSERT INTO `t_order_position` VALUES (16446, 2, 2718, 140, '109.42860786356528', '24.335093617507777', '110.0', '15.0', '2020-09-10 10:57:14');
+INSERT INTO `t_order_position` VALUES (16447, 2, 2718, 140, '109.42787502641218', '24.33509431929663', '112.0', '15.0', '2020-09-10 10:57:49');
+INSERT INTO `t_order_position` VALUES (16448, 2, 2718, 140, '109.42689231542028', '24.335078560672304', '114.0', '15.0', '2020-09-10 10:57:59');
+INSERT INTO `t_order_position` VALUES (16449, 2, 2718, 140, '109.4261760716734', '24.335062529820256', '110.0', '15.0', '2020-09-10 10:58:05');
+INSERT INTO `t_order_position` VALUES (16450, 2, 2718, 140, '109.42557639801447', '24.334913082637385', '112.0', '15.0', '2020-09-10 10:58:10');
+INSERT INTO `t_order_position` VALUES (16451, 2, 2718, 140, '109.42497671809295', '24.33496356312981', '114.0', '15.0', '2020-09-10 10:58:15');
+INSERT INTO `t_order_position` VALUES (16452, 2, 2718, 140, '109.42427706725576', '24.334997443618', '112.0', '15.0', '2020-09-10 10:58:20');
+INSERT INTO `t_order_position` VALUES (16453, 2, 2718, 140, '109.42346077460039', '24.334998065029016', '112.0', '15.0', '2020-09-10 10:58:25');
+INSERT INTO `t_order_position` VALUES (16454, 2, 2718, 140, '109.42279438744613', '24.3349818880522', '112.0', '15.0', '2020-09-10 10:58:30');
+INSERT INTO `t_order_position` VALUES (16455, 2, 2718, 140, '109.42202801573622', '24.33498242104859', '112.0', '15.0', '2020-09-10 10:58:35');
+INSERT INTO `t_order_position` VALUES (16456, 2, 2718, 140, '109.42129493492155', '24.33494958209364', '112.0', '15.0', '2020-09-10 10:58:40');
+INSERT INTO `t_order_position` VALUES (16457, 2, 2718, 140, '109.42054516719944', '24.33495005303171', '112.0', '15.0', '2020-09-10 10:58:45');
+INSERT INTO `t_order_position` VALUES (16458, 2, 2718, 140, '109.4197787077358', '24.3349338462051', '110.0', '15.0', '2020-09-10 10:58:50');
+INSERT INTO `t_order_position` VALUES (16459, 2, 2718, 140, '109.41896222833047', '24.334900977888704', '112.0', '15.0', '2020-09-10 10:58:55');
+INSERT INTO `t_order_position` VALUES (16460, 2, 2718, 140, '109.41814571536092', '24.334868079463902', '112.0', '15.0', '2020-09-10 10:59:00');
+INSERT INTO `t_order_position` VALUES (16461, 2, 2718, 140, '109.41734583432685', '24.334851805153807', '112.0', '15.0', '2020-09-10 10:59:05');
+INSERT INTO `t_order_position` VALUES (16462, 2, 2718, 140, '109.41657925142923', '24.334835487599673', '112.0', '15.0', '2020-09-10 10:59:10');
+INSERT INTO `t_order_position` VALUES (16463, 2, 2718, 140, '109.41582930477571', '24.334819136919247', '110.0', '15.0', '2020-09-10 10:59:15');
+INSERT INTO `t_order_position` VALUES (16464, 2, 2718, 140, '109.41504600096994', '24.33486942096138', '112.0', '15.0', '2020-09-10 10:59:20');
+INSERT INTO `t_order_position` VALUES (16465, 2, 2718, 140, '109.4141459964694', '24.334919715323498', '114.0', '15.0', '2020-09-10 10:59:25');
+INSERT INTO `t_order_position` VALUES (16466, 2, 2718, 140, '109.4132959580755', '24.33501994509989', '116.0', '15.0', '2020-09-10 10:59:31');
+INSERT INTO `t_order_position` VALUES (16467, 2, 2718, 140, '109.41251255783743', '24.335120125969162', '112.0', '15.0', '2020-09-10 10:59:35');
+INSERT INTO `t_order_position` VALUES (16468, 2, 2718, 140, '109.4117291240381', '24.335170293411043', '112.0', '15.0', '2020-09-10 10:59:40');
+INSERT INTO `t_order_position` VALUES (16469, 2, 2718, 140, '109.41101233893284', '24.33522042139414', '112.0', '15.0', '2020-09-10 10:59:45');
+INSERT INTO `t_order_position` VALUES (16470, 2, 2718, 140, '109.41032886706894', '24.335237197465982', '116.0', '15.0', '2020-09-10 10:59:50');
+INSERT INTO `t_order_position` VALUES (16471, 2, 2718, 140, '109.40946200974034', '24.33557055210405', '154.0', '15.0', '2020-09-10 11:00:00');
+INSERT INTO `t_order_position` VALUES (16472, 2, 2718, 140, '109.40889517375022', '24.335370665239147', '112.0', '15.0', '2020-09-10 11:00:05');
+INSERT INTO `t_order_position` VALUES (16473, 2, 2718, 140, '109.40831166459303', '24.335420695081787', '112.0', '15.0', '2020-09-10 11:00:10');
+INSERT INTO `t_order_position` VALUES (16474, 2, 2718, 140, '109.40774481017861', '24.335454047284237', '112.0', '15.0', '2020-09-10 11:00:15');
+INSERT INTO `t_order_position` VALUES (16475, 2, 2718, 140, '109.40677778642412', '24.335504048746202', '112.0', '15.0', '2020-09-10 11:00:26');
+INSERT INTO `t_order_position` VALUES (16476, 2, 2718, 140, '109.40592743694184', '24.335587338425608', '114.0', '15.0', '2020-09-10 11:00:36');
+INSERT INTO `t_order_position` VALUES (16477, 2, 2718, 140, '109.40546057345327', '24.335803919782386', '150.0', '15.0', '2020-09-10 11:00:46');
+INSERT INTO `t_order_position` VALUES (16478, 2, 2718, 140, '109.40542726391963', '24.336470397710983', '4.0', '15.0', '2020-09-10 11:01:01');
+INSERT INTO `t_order_position` VALUES (16479, 2, 2718, 140, '109.40544397157781', '24.33703690709818', '0.0', '15.0', '2020-09-10 11:01:21');
+INSERT INTO `t_order_position` VALUES (16480, 2, 2718, 140, '109.40549404648381', '24.337919997238252', '162.0', '15.0', '2020-09-10 11:01:31');
+INSERT INTO `t_order_position` VALUES (16481, 2, 2718, 140, '109.40521063702882', '24.338869713879287', '150.0', '15.0', '2020-09-10 11:01:41');
+INSERT INTO `t_order_position` VALUES (16482, 2, 2718, 140, '109.40497722148463', '24.339369556715766', '150.0', '15.0', '2020-09-10 11:01:56');
+INSERT INTO `t_order_position` VALUES (16483, 2, 2718, 140, '109.40464375646796', '24.339919373912824', '150.0', '15.0', '2020-09-10 11:02:06');
+INSERT INTO `t_order_position` VALUES (16484, 2, 2718, 140, '109.40442701556663', '24.340519185581442', '154.0', '15.0', '2020-09-10 11:02:16');
+INSERT INTO `t_order_position` VALUES (16485, 2, 2718, 140, '109.40412689742614', '24.34115230971932', '154.0', '15.0', '2020-09-10 11:02:26');
+INSERT INTO `t_order_position` VALUES (16486, 2, 2718, 140, '109.40377674985194', '24.341818747689626', '158.0', '15.0', '2020-09-10 11:02:36');
+INSERT INTO `t_order_position` VALUES (16487, 2, 2718, 140, '109.40352664613707', '24.342385223103424', '154.0', '15.0', '2020-09-10 11:02:46');
+INSERT INTO `t_order_position` VALUES (16488, 2, 2718, 140, '109.40329321746297', '24.342985022885102', '154.0', '15.0', '2020-09-10 11:02:57');
+INSERT INTO `t_order_position` VALUES (16489, 2, 2718, 140, '109.40312648137048', '24.34341821064127', '162.0', '15.0', '2020-09-10 11:03:02');
+INSERT INTO `t_order_position` VALUES (16490, 2, 2718, 140, '109.40302647667544', '24.34431794770629', '162.0', '15.0', '2020-09-10 11:03:12');
+INSERT INTO `t_order_position` VALUES (16491, 2, 2718, 140, '109.40300985128589', '24.345184374995608', '166.0', '15.0', '2020-09-10 11:03:22');
+INSERT INTO `t_order_position` VALUES (16492, 2, 2718, 140, '109.40297654856816', '24.346034137915176', '166.0', '15.0', '2020-09-10 11:03:32');
+INSERT INTO `t_order_position` VALUES (16493, 2, 2718, 140, '109.40297657598644', '24.346500677779204', '2.0', '15.0', '2020-09-10 11:03:37');
+INSERT INTO `t_order_position` VALUES (16494, 2, 2718, 140, '109.40295992705566', '24.346967214973287', '164.0', '15.0', '2020-09-10 11:03:42');
+INSERT INTO `t_order_position` VALUES (16495, 2, 2718, 140, '109.40295997405867', '24.34776699831856', '8.0', '15.0', '2020-09-10 11:03:52');
+INSERT INTO `t_order_position` VALUES (16496, 2, 2718, 140, '109.40297667782644', '24.348233541694253', '166.0', '15.0', '2020-09-10 11:04:07');
+INSERT INTO `t_order_position` VALUES (16497, 2, 2718, 140, '109.40296004064666', '24.348900025624154', '160.0', '15.0', '2020-09-10 11:04:22');
+INSERT INTO `t_order_position` VALUES (16498, 2, 2718, 140, '109.40282668029195', '24.349766435765716', '156.0', '15.0', '2020-09-10 11:04:32');
+INSERT INTO `t_order_position` VALUES (16499, 2, 2718, 140, '109.40259324082147', '24.35031624555588', '0.0', '15.0', '2020-09-10 11:04:52');
+INSERT INTO `t_order_position` VALUES (16500, 2, 2718, 140, '109.40235979678164', '24.350832728854666', '152.0', '15.0', '2020-09-10 11:05:12');
+INSERT INTO `t_order_position` VALUES (16501, 2, 2718, 140, '109.40212635307195', '24.35139919666202', '154.0', '15.0', '2020-09-10 11:05:27');
+INSERT INTO `t_order_position` VALUES (16502, 2, 2718, 140, '109.40192626016783', '24.351949007397067', '156.0', '15.0', '2020-09-10 11:05:37');
+INSERT INTO `t_order_position` VALUES (16503, 2, 2718, 140, '109.40170948702686', '24.352482150705136', '152.0', '15.0', '2020-09-10 11:05:47');
+INSERT INTO `t_order_position` VALUES (16504, 2, 2718, 140, '109.40192626212617', '24.351982331829504', '104.0', '15.0', '2020-09-10 11:06:48');
+INSERT INTO `t_order_position` VALUES (16505, 2, 2718, 140, '109.40214303106625', '24.351415862315488', '102.0', '15.0', '2020-09-10 11:07:03');
+INSERT INTO `t_order_position` VALUES (16506, 2, 2718, 140, '109.40230976915238', '24.35088270555141', '110.0', '15.0', '2020-09-10 11:07:18');
+INSERT INTO `t_order_position` VALUES (16507, 2, 2718, 140, '109.40169268923174', '24.350432695218014', '162.0', '15.0', '2020-09-10 11:07:38');
+INSERT INTO `t_order_position` VALUES (16508, 2, 2718, 140, '109.40109228959298', '24.350332579010963', '110.0', '15.0', '2020-09-10 11:07:48');
+INSERT INTO `t_order_position` VALUES (16509, 2, 2718, 140, '109.40062528623825', '24.350015875519407', '116.0', '15.0', '2020-09-10 11:08:03');
+INSERT INTO `t_order_position` VALUES (16510, 2, 2718, 140, '109.40064191451181', '24.349166108671003', '110.0', '15.0', '2020-09-10 11:08:13');
+INSERT INTO `t_order_position` VALUES (16511, 2, 2718, 140, '109.4006418851407', '24.348666243443333', '114.0', '15.0', '2020-09-10 11:08:18');
+INSERT INTO `t_order_position` VALUES (16512, 2, 2718, 140, '109.40067521213913', '24.348166387408337', '114.0', '15.0', '2020-09-10 11:08:23');
+INSERT INTO `t_order_position` VALUES (16513, 2, 2718, 140, '109.40075856367079', '24.347499923293004', '112.0', '15.0', '2020-09-10 11:08:29');
+INSERT INTO `t_order_position` VALUES (16514, 2, 2718, 140, '109.4008752679889', '24.346783481515068', '110.0', '15.0', '2020-09-10 11:08:34');
+INSERT INTO `t_order_position` VALUES (16515, 2, 2718, 140, '109.40099197753497', '24.34616701239514', '104.0', '15.0', '2020-09-10 11:08:39');
+INSERT INTO `t_order_position` VALUES (16516, 2, 2718, 140, '109.4012254367864', '24.34565054471364', '102.0', '15.0', '2020-09-10 11:08:44');
+INSERT INTO `t_order_position` VALUES (16517, 2, 2718, 140, '109.40137550748493', '24.345167379397967', '112.0', '15.0', '2020-09-10 11:08:49');
+INSERT INTO `t_order_position` VALUES (16518, 2, 2718, 140, '109.40144217770614', '24.34448424839142', '112.0', '15.0', '2020-09-10 11:08:54');
+INSERT INTO `t_order_position` VALUES (16519, 2, 2718, 140, '109.40145881414242', '24.343784443747065', '110.0', '15.0', '2020-09-10 11:08:59');
+INSERT INTO `t_order_position` VALUES (16520, 2, 2718, 140, '109.4015921930065', '24.34308466659858', '108.0', '15.0', '2020-09-10 11:09:04');
+INSERT INTO `t_order_position` VALUES (16521, 2, 2718, 140, '109.40175892861205', '24.342434882794713', '112.0', '15.0', '2020-09-10 11:09:09');
+INSERT INTO `t_order_position` VALUES (16522, 2, 2718, 140, '109.40182559663477', '24.34173509014029', '112.0', '15.0', '2020-09-10 11:09:14');
+INSERT INTO `t_order_position` VALUES (16523, 2, 2718, 140, '109.40192561785273', '24.341018642837312', '112.0', '15.0', '2020-09-10 11:09:19');
+INSERT INTO `t_order_position` VALUES (16524, 2, 2718, 140, '109.40202563565536', '24.34025220935196', '108.0', '15.0', '2020-09-10 11:09:24');
+INSERT INTO `t_order_position` VALUES (16525, 2, 2718, 140, '109.40217568691952', '24.339535772351972', '110.0', '15.0', '2020-09-10 11:09:29');
+INSERT INTO `t_order_position` VALUES (16526, 2, 2718, 140, '109.40229238433699', '24.33883599019959', '118.0', '15.0', '2020-09-10 11:09:34');
+INSERT INTO `t_order_position` VALUES (16527, 2, 2718, 140, '109.40222563653545', '24.338152833433007', '112.0', '15.0', '2020-09-10 11:09:39');
+INSERT INTO `t_order_position` VALUES (16528, 2, 2718, 140, '109.40227562813371', '24.337486362568708', '110.0', '15.0', '2020-09-10 11:09:44');
+INSERT INTO `t_order_position` VALUES (16529, 2, 2718, 140, '109.4023923279293', '24.33683656710137', '108.0', '15.0', '2020-09-10 11:09:49');
+INSERT INTO `t_order_position` VALUES (16530, 2, 2718, 140, '109.40249235720518', '24.336303402224665', '108.0', '15.0', '2020-09-10 11:09:54');
+INSERT INTO `t_order_position` VALUES (16531, 2, 2718, 140, '109.40279251363273', '24.335920231668666', '44.0', '15.0', '2020-09-10 11:10:04');
+INSERT INTO `t_order_position` VALUES (16532, 2, 2718, 140, '109.40360966315878', '24.33622027902515', '64.0', '15.0', '2020-09-10 11:10:18');
+INSERT INTO `t_order_position` VALUES (16533, 2, 2718, 140, '109.40377639340753', '24.33575376631633', '162.0', '15.0', '2020-09-10 11:10:24');
+INSERT INTO `t_order_position` VALUES (16534, 2, 2718, 140, '109.4027758175548', '24.33558698876696', '114.0', '15.0', '2020-09-10 11:10:34');
+INSERT INTO `t_order_position` VALUES (16535, 2, 2718, 140, '109.40207539274824', '24.33558685283894', '114.0', '15.0', '2020-09-10 11:10:39');
+INSERT INTO `t_order_position` VALUES (16536, 2, 2718, 140, '109.40140829973463', '24.335586703868653', '114.0', '15.0', '2020-09-10 11:10:45');
+INSERT INTO `t_order_position` VALUES (16537, 2, 2718, 140, '109.40077454177975', '24.335586544784963', '112.0', '15.0', '2020-09-10 11:10:53');
+INSERT INTO `t_order_position` VALUES (16538, 2, 2718, 140, '109.40024083710034', '24.33560305959385', '114.0', '15.0', '2020-09-10 11:10:54');
+INSERT INTO `t_order_position` VALUES (16539, 2, 2718, 140, '109.39935685757452', '24.33560278935293', '112.0', '15.0', '2020-09-10 11:11:05');
+INSERT INTO `t_order_position` VALUES (16540, 2, 2718, 140, '109.39843948160319', '24.335602474207768', '110.0', '15.0', '2020-09-10 11:11:15');
+INSERT INTO `t_order_position` VALUES (16541, 2, 2718, 140, '109.397872354882', '24.33556893782379', '112.0', '15.0', '2020-09-10 11:11:20');
+INSERT INTO `t_order_position` VALUES (16542, 2, 2718, 140, '109.39730521520522', '24.335568712065477', '114.0', '15.0', '2020-09-10 11:11:25');
+INSERT INTO `t_order_position` VALUES (16543, 2, 2718, 140, '109.396788104322', '24.33556849463136', '114.0', '15.0', '2020-09-10 11:11:30');
+INSERT INTO `t_order_position` VALUES (16544, 2, 2718, 140, '109.39572048368865', '24.335601334936456', '110.0', '15.0', '2020-09-10 11:11:40');
+INSERT INTO `t_order_position` VALUES (16545, 2, 2718, 140, '109.39506987763009', '24.335634341340523', '114.0', '15.0', '2020-09-10 11:11:50');
+INSERT INTO `t_order_position` VALUES (16546, 2, 2718, 140, '109.39446929935797', '24.335634032935676', '112.0', '15.0', '2020-09-10 11:12:20');
+INSERT INTO `t_order_position` VALUES (16547, 2, 2718, 140, '109.39346829655167', '24.335583500630435', '114.0', '15.0', '2020-09-10 11:12:30');
+INSERT INTO `t_order_position` VALUES (16548, 2, 2718, 140, '109.3928676770779', '24.3356164775679', '112.0', '15.0', '2020-09-10 11:12:35');
+INSERT INTO `t_order_position` VALUES (16549, 2, 2718, 140, '109.39225035502709', '24.3356161059328', '114.0', '15.0', '2020-09-10 11:12:40');
+INSERT INTO `t_order_position` VALUES (16550, 2, 2718, 140, '109.39143279356975', '24.33559892861393', '112.0', '15.0', '2020-09-10 11:12:45');
+INSERT INTO `t_order_position` VALUES (16551, 2, 2718, 140, '109.3907820622206', '24.335615161723258', '114.0', '15.0', '2020-09-10 11:12:50');
+INSERT INTO `t_order_position` VALUES (16552, 2, 2718, 140, '109.39014799860364', '24.335631389979405', '112.0', '15.0', '2020-09-10 11:12:55');
+INSERT INTO `t_order_position` VALUES (16553, 2, 2718, 140, '109.38948054343145', '24.33563091662959', '114.0', '15.0', '2020-09-10 11:13:00');
+INSERT INTO `t_order_position` VALUES (16554, 2, 2718, 140, '109.38877969592296', '24.33564706321737', '112.0', '15.0', '2020-09-10 11:13:05');
+INSERT INTO `t_order_position` VALUES (16555, 2, 2718, 140, '109.38814557787978', '24.335663242782193', '114.0', '15.0', '2020-09-10 11:13:10');
+INSERT INTO `t_order_position` VALUES (16556, 2, 2718, 140, '109.38756150683858', '24.33567944699515', '110.0', '15.0', '2020-09-10 11:13:15');
+INSERT INTO `t_order_position` VALUES (16557, 2, 2718, 140, '109.3868439150228', '24.335712191062655', '112.0', '15.0', '2020-09-10 11:13:25');
+INSERT INTO `t_order_position` VALUES (16558, 2, 2718, 140, '109.38612630277412', '24.335761577985647', '110.0', '15.0', '2020-09-10 11:13:36');
+INSERT INTO `t_order_position` VALUES (16559, 2, 2718, 140, '109.3852584597622', '24.335744166215274', '110.0', '15.0', '2020-09-10 11:13:46');
+INSERT INTO `t_order_position` VALUES (16560, 2, 2718, 140, '109.38410685281556', '24.335743129031204', '114.0', '15.0', '2020-09-10 11:13:56');
+INSERT INTO `t_order_position` VALUES (16561, 2, 2718, 140, '109.3831554841834', '24.335725574335278', '114.0', '15.0', '2020-09-10 11:14:06');
+INSERT INTO `t_order_position` VALUES (16562, 2, 2720, 754, '109.39732031566274', '24.308659882969913', '162.0', '15.0', '2020-09-10 11:14:16');
+INSERT INTO `t_order_position` VALUES (16563, 2, 2718, 140, '109.38247115173807', '24.33584154637234', '142.0', '15.0', '2020-09-10 11:14:16');
+INSERT INTO `t_order_position` VALUES (16564, 2, 2718, 140, '109.38233766195215', '24.336557881392146', '0.0', '15.0', '2020-09-10 11:14:26');
+INSERT INTO `t_order_position` VALUES (16565, 2, 2720, 754, '109.39728698440626', '24.309176380424887', '164.0', '15.0', '2020-09-10 11:14:27');
+INSERT INTO `t_order_position` VALUES (16566, 2, 2718, 140, '109.38240447087546', '24.337291075533198', '166.0', '15.0', '2020-09-10 11:14:36');
+INSERT INTO `t_order_position` VALUES (16567, 2, 2718, 140, '109.3824045079722', '24.337924232334046', '0.0', '15.0', '2020-09-10 11:14:46');
+INSERT INTO `t_order_position` VALUES (16568, 2, 2720, 754, '109.39727033490325', '24.309709546557638', '0.0', '15.0', '2020-09-10 11:14:47');
+INSERT INTO `t_order_position` VALUES (16569, 2, 2718, 140, '109.38238786628372', '24.338773979526557', '166.0', '15.0', '2020-09-10 11:14:56');
+INSERT INTO `t_order_position` VALUES (16570, 2, 2718, 140, '109.38242129120407', '24.339490480081786', '18.0', '15.0', '2020-09-10 11:15:06');
+INSERT INTO `t_order_position` VALUES (16571, 2, 2718, 140, '109.38267168726075', '24.339923937886716', '20.0', '15.0', '2020-09-10 11:15:11');
+INSERT INTO `t_order_position` VALUES (16572, 2, 2720, 754, '109.39762065668972', '24.31017621459344', '56.0', '15.0', '2020-09-10 11:15:12');
+INSERT INTO `t_order_position` VALUES (16573, 2, 2718, 140, '109.38320585291072', '24.340774217122213', '20.0', '15.0', '2020-09-10 11:15:21');
+INSERT INTO `t_order_position` VALUES (16574, 2, 2720, 754, '109.39820447098467', '24.310226424106613', '56.0', '15.0', '2020-09-10 11:15:22');
+INSERT INTO `t_order_position` VALUES (16575, 2, 2718, 140, '109.3835230110812', '24.341324365926805', '22.0', '15.0', '2020-09-10 11:15:26');
+INSERT INTO `t_order_position` VALUES (16576, 2, 2718, 140, '109.38384016134611', '24.341807863088253', '32.0', '15.0', '2020-09-10 11:15:31');
+INSERT INTO `t_order_position` VALUES (16577, 2, 2720, 754, '109.39875490425261', '24.310176637797333', '84.0', '15.0', '2020-09-10 11:15:32');
+INSERT INTO `t_order_position` VALUES (16578, 2, 2718, 140, '109.38427413266085', '24.342174829455082', '44.0', '15.0', '2020-09-10 11:15:36');
+INSERT INTO `t_order_position` VALUES (16579, 2, 2718, 140, '109.38477484826363', '24.342408552458732', '44.0', '15.0', '2020-09-10 11:15:41');
+INSERT INTO `t_order_position` VALUES (16580, 2, 2720, 754, '109.39922190743714', '24.30979357820524', '94.0', '15.0', '2020-09-10 11:15:42');
+INSERT INTO `t_order_position` VALUES (16581, 2, 2718, 140, '109.38557596583873', '24.342675853088064', '46.0', '15.0', '2020-09-10 11:15:51');
+INSERT INTO `t_order_position` VALUES (16582, 2, 2720, 754, '109.39953878744717', '24.309377139208003', '92.0', '15.0', '2020-09-10 11:15:52');
+INSERT INTO `t_order_position` VALUES (16583, 2, 2718, 140, '109.38607665198467', '24.342859566200193', '42.0', '15.0', '2020-09-10 11:16:01');
+INSERT INTO `t_order_position` VALUES (16584, 2, 2720, 754, '109.39993905076042', '24.308860751365145', '92.0', '15.0', '2020-09-10 11:16:02');
+INSERT INTO `t_order_position` VALUES (16585, 2, 2720, 754, '109.40020587866636', '24.30834431884781', '98.0', '15.0', '2020-09-10 11:16:12');
+INSERT INTO `t_order_position` VALUES (16586, 2, 2718, 140, '109.38654395436832', '24.343109890720296', '40.0', '15.0', '2020-09-10 11:16:16');
+INSERT INTO `t_order_position` VALUES (16587, 2, 2720, 754, '109.40015581070166', '24.30779447028517', '120.0', '15.0', '2020-09-10 11:16:32');
+INSERT INTO `t_order_position` VALUES (16588, 2, 2718, 140, '109.38691112709789', '24.34352674637859', '0.0', '15.0', '2020-09-10 11:16:42');
+INSERT INTO `t_order_position` VALUES (16589, 2, 2720, 754, '109.40003902903682', '24.30726126384936', '122.0', '15.0', '2020-09-10 11:16:42');
+INSERT INTO `t_order_position` VALUES (16590, 2, 2720, 754, '109.39998896263751', '24.30674473862283', '128.0', '15.0', '2020-09-10 11:16:58');
+INSERT INTO `t_order_position` VALUES (16591, 2, 2718, 140, '109.38621021741872', '24.343776094732306', '122.0', '15.0', '2020-09-10 11:17:07');
+INSERT INTO `t_order_position` VALUES (16592, 2, 2720, 754, '109.39975542521927', '24.306161511325282', '122.0', '15.0', '2020-09-10 11:17:13');
+INSERT INTO `t_order_position` VALUES (16593, 2, 2718, 140, '109.38567617305483', '24.343892272968315', '120.0', '15.0', '2020-09-10 11:17:17');
+INSERT INTO `t_order_position` VALUES (16594, 2, 2718, 140, '109.38509204996484', '24.344041720677534', '122.0', '15.0', '2020-09-10 11:17:27');
+INSERT INTO `t_order_position` VALUES (16595, 2, 2720, 754, '109.39967199733572', '24.305594990748183', '120.0', '15.0', '2020-09-10 11:17:28');
+INSERT INTO `t_order_position` VALUES (16596, 2, 2718, 140, '109.38442446540733', '24.3442410665234', '124.0', '15.0', '2020-09-10 11:17:37');
+INSERT INTO `t_order_position` VALUES (16597, 2, 2720, 754, '109.39962192713897', '24.305028480584163', '112.0', '15.0', '2020-09-10 11:17:38');
+INSERT INTO `t_order_position` VALUES (16598, 2, 2718, 140, '109.38382362413485', '24.34442379650917', '124.0', '15.0', '2020-09-10 11:17:47');
+INSERT INTO `t_order_position` VALUES (16599, 2, 2720, 754, '109.3996218938637', '24.30446198627165', '116.0', '15.0', '2020-09-10 11:17:48');
+INSERT INTO `t_order_position` VALUES (16600, 2, 2718, 140, '109.38322276842693', '24.344606513630154', '122.0', '15.0', '2020-09-10 11:17:57');
+INSERT INTO `t_order_position` VALUES (16601, 2, 2720, 754, '109.39967190044545', '24.303945492572044', '122.0', '15.0', '2020-09-10 11:17:58');
+INSERT INTO `t_order_position` VALUES (16602, 2, 2720, 754, '109.3994550416224', '24.30341225345533', '122.0', '15.0', '2020-09-10 11:18:08');
+INSERT INTO `t_order_position` VALUES (16603, 2, 2718, 140, '109.3824216006783', '24.344772360082498', '124.0', '15.0', '2020-09-10 11:18:12');
+INSERT INTO `t_order_position` VALUES (16604, 2, 2718, 140, '109.38193755152994', '24.344905178073173', '122.0', '15.0', '2020-09-10 11:18:22');
+INSERT INTO `t_order_position` VALUES (16605, 2, 2720, 754, '109.39953840380315', '24.302845786368906', '110.0', '14.0', '2020-09-10 11:18:23');
+INSERT INTO `t_order_position` VALUES (16606, 2, 2720, 754, '109.39945497409511', '24.302262604853336', '118.0', '15.0', '2020-09-10 11:18:43');
+INSERT INTO `t_order_position` VALUES (16607, 2, 2718, 140, '109.38135334735804', '24.345154521002964', '122.0', '15.0', '2020-09-10 11:18:47');
+INSERT INTO `t_order_position` VALUES (16608, 2, 2720, 754, '109.3994382656055', '24.30176275259359', '118.0', '15.0', '2020-09-10 11:18:53');
+INSERT INTO `t_order_position` VALUES (16609, 2, 2720, 754, '109.39943823624608', '24.301262905862345', '120.0', '15.0', '2020-09-10 11:19:03');
+INSERT INTO `t_order_position` VALUES (16610, 2, 2718, 140, '109.38086927914286', '24.3453039832734', '0.0', '15.0', '2020-09-10 11:19:07');
+INSERT INTO `t_order_position` VALUES (16611, 2, 2720, 754, '109.39940485054498', '24.300796371686886', '118.0', '15.0', '2020-09-10 11:19:13');
+INSERT INTO `t_order_position` VALUES (16612, 2, 2720, 754, '109.39942149642728', '24.300229884508283', '116.0', '15.0', '2020-09-10 11:20:08');
+INSERT INTO `t_order_position` VALUES (16613, 2, 2720, 754, '109.39943814229653', '24.2996633975527', '120.0', '15.0', '2020-09-10 11:20:28');
+INSERT INTO `t_order_position` VALUES (16614, 2, 2718, 140, '109.38135334442987', '24.345104534634864', '70.0', '15.0', '2020-09-10 11:20:43');
+INSERT INTO `t_order_position` VALUES (16615, 2, 2718, 140, '109.38193755543465', '24.34497182655353', '70.0', '15.0', '2020-09-10 11:20:53');
+INSERT INTO `t_order_position` VALUES (16616, 2, 2718, 140, '109.38265528006468', '24.34477258837308', '66.0', '15.0', '2020-09-10 11:21:03');
+INSERT INTO `t_order_position` VALUES (16617, 2, 2720, 754, '109.39892106519423', '24.29936331846592', '154.0', '15.0', '2020-09-10 11:21:04');
+INSERT INTO `t_order_position` VALUES (16618, 2, 2718, 140, '109.38337298345662', '24.344556670021323', '68.0', '15.0', '2020-09-10 11:21:13');
+INSERT INTO `t_order_position` VALUES (16619, 2, 2718, 140, '109.38420749860084', '24.34434084090224', '74.0', '15.0', '2020-09-10 11:21:23');
+INSERT INTO `t_order_position` VALUES (16620, 2, 2718, 140, '109.38492515551857', '24.344091558648508', '64.0', '15.0', '2020-09-10 11:21:33');
+INSERT INTO `t_order_position` VALUES (16621, 2, 2718, 140, '109.38567617598552', '24.343942259286763', '68.0', '15.0', '2020-09-10 11:21:48');
+INSERT INTO `t_order_position` VALUES (16622, 2, 2720, 754, '109.39832057475299', '24.299046536210334', '0.0', '15.0', '2020-09-10 11:21:49');
+INSERT INTO `t_order_position` VALUES (16623, 2, 2718, 140, '109.38626028411694', '24.343776136991032', '72.0', '15.0', '2020-09-10 11:21:59');
+INSERT INTO `t_order_position` VALUES (16624, 2, 2718, 140, '109.38681099727481', '24.34354332628278', '80.0', '15.0', '2020-09-10 11:22:24');
+INSERT INTO `t_order_position` VALUES (16625, 2, 2718, 140, '109.3865439524142', '24.343076566530385', '152.0', '15.0', '2020-09-10 11:22:44');
+INSERT INTO `t_order_position` VALUES (16626, 2, 2720, 754, '109.39760330784075', '24.298796338975855', '0.0', '15.0', '2020-09-10 11:22:44');
+INSERT INTO `t_order_position` VALUES (16627, 2, 2718, 140, '109.38604327199116', '24.342826213629067', '160.0', '15.0', '2020-09-10 11:22:54');
+INSERT INTO `t_order_position` VALUES (16628, 2, 2718, 140, '109.38502520030985', '24.342492086405358', '158.0', '15.0', '2020-09-10 11:23:04');
+INSERT INTO `t_order_position` VALUES (16629, 2, 2718, 140, '109.38400708066864', '24.342057949154654', '140.0', '15.0', '2020-09-10 11:23:14');
+INSERT INTO `t_order_position` VALUES (16630, 2, 2718, 140, '109.38362317286368', '24.34162437742083', '134.0', '15.0', '2020-09-10 11:23:19');
+INSERT INTO `t_order_position` VALUES (16631, 2, 2718, 140, '109.38333939671145', '24.341057599232265', '134.0', '15.0', '2020-09-10 11:23:24');
+INSERT INTO `t_order_position` VALUES (16632, 2, 2718, 140, '109.38307231426253', '24.340590806808944', '134.0', '15.0', '2020-09-10 11:23:29');
+INSERT INTO `t_order_position` VALUES (16633, 2, 2718, 140, '109.3828219201983', '24.34012402818711', '134.0', '15.0', '2020-09-10 11:23:34');
+INSERT INTO `t_order_position` VALUES (16634, 2, 2718, 140, '109.38243797875381', '24.33942384826809', '122.0', '15.0', '2020-09-10 11:23:44');
+INSERT INTO `t_order_position` VALUES (16635, 2, 2718, 140, '109.38237117577262', '24.338790625164215', '112.0', '15.0', '2020-09-10 11:23:54');
+INSERT INTO `t_order_position` VALUES (16636, 2, 2720, 754, '109.39822050035018', '24.29914646838437', '34.0', '15.0', '2020-09-10 11:24:00');
+INSERT INTO `t_order_position` VALUES (16637, 2, 2718, 140, '109.38233774981148', '24.338057462927544', '112.0', '15.0', '2020-09-10 11:24:04');
+INSERT INTO `t_order_position` VALUES (16638, 2, 2718, 140, '109.38237109376963', '24.337391014849604', '114.0', '15.0', '2020-09-10 11:24:15');
+INSERT INTO `t_order_position` VALUES (16639, 2, 2720, 754, '109.39898778912172', '24.299463310415934', '42.0', '15.0', '2020-09-10 11:24:15');
+INSERT INTO `t_order_position` VALUES (16640, 2, 2718, 140, '109.38238774035041', '24.3366245786488', '114.0', '15.0', '2020-09-10 11:24:25');
+INSERT INTO `t_order_position` VALUES (16641, 2, 2720, 754, '109.39945482631957', '24.299746710575924', '0.0', '15.0', '2020-09-10 11:24:25');
+INSERT INTO `t_order_position` VALUES (16642, 2, 2718, 140, '109.38230424668735', '24.336008002414992', '126.0', '15.0', '2020-09-10 11:24:35');
+INSERT INTO `t_order_position` VALUES (16643, 2, 2720, 754, '109.39947154653936', '24.3004465006069', '2.0', '15.0', '2020-09-10 11:24:40');
+INSERT INTO `t_order_position` VALUES (16644, 2, 2718, 140, '109.38170333556882', '24.335857446190342', '114.0', '15.0', '2020-09-10 11:24:50');
+INSERT INTO `t_order_position` VALUES (16645, 2, 2720, 754, '109.39953831865965', '24.301396230200364', '4.0', '15.0', '2020-09-10 11:24:50');
+INSERT INTO `t_order_position` VALUES (16646, 2, 2720, 754, '109.39958838513554', '24.301896092769706', '4.0', '15.0', '2020-09-10 11:24:55');
+INSERT INTO `t_order_position` VALUES (16647, 2, 2718, 140, '109.38075187828547', '24.33585647346111', '114.0', '15.0', '2020-09-10 11:25:00');
+INSERT INTO `t_order_position` VALUES (16648, 2, 2720, 754, '109.39963845443033', '24.30244594012379', '4.0', '15.0', '2020-09-10 11:25:00');
+INSERT INTO `t_order_position` VALUES (16649, 2, 2720, 754, '109.39970520547836', '24.303045777492954', '0.0', '15.0', '2020-09-10 11:25:05');
+INSERT INTO `t_order_position` VALUES (16650, 2, 2718, 140, '109.38005078232418', '24.335855736924735', '110.0', '15.0', '2020-09-10 11:25:10');
+INSERT INTO `t_order_position` VALUES (16651, 2, 2720, 754, '109.39972191865365', '24.303628937953484', '164.0', '15.0', '2020-09-10 11:25:10');
+INSERT INTO `t_order_position` VALUES (16652, 2, 2720, 754, '109.39967192784867', '24.304412017104344', '2.0', '15.0', '2020-09-10 11:25:15');
+INSERT INTO `t_order_position` VALUES (16653, 2, 2718, 140, '109.37908257362349', '24.335888016575122', '114.0', '15.0', '2020-09-10 11:25:20');
+INSERT INTO `t_order_position` VALUES (16654, 2, 2720, 754, '109.39972200575725', '24.305111819713055', '6.0', '15.0', '2020-09-10 11:25:20');
+INSERT INTO `t_order_position` VALUES (16655, 2, 2720, 754, '109.39982211620249', '24.305744991435905', '10.0', '15.0', '2020-09-10 11:25:25');
+INSERT INTO `t_order_position` VALUES (16656, 2, 2718, 140, '109.378281269423', '24.33588712872653', '124.0', '15.0', '2020-09-10 11:25:30');
+INSERT INTO `t_order_position` VALUES (16657, 2, 2720, 754, '109.39997225945694', '24.306328193163004', '10.0', '15.0', '2020-09-10 11:25:30');
+INSERT INTO `t_order_position` VALUES (16658, 2, 2720, 754, '109.40012240556702', '24.30697804069106', '10.0', '15.0', '2020-09-10 11:25:35');
+INSERT INTO `t_order_position` VALUES (16659, 2, 2718, 140, '109.3777470739758', '24.336236427133763', '152.0', '15.0', '2020-09-10 11:25:40');
+INSERT INTO `t_order_position` VALUES (16660, 2, 2720, 754, '109.40025587016962', '24.307594559546008', '14.0', '15.0', '2020-09-10 11:25:40');
+INSERT INTO `t_order_position` VALUES (16661, 2, 2720, 754, '109.40048940306585', '24.308194444172077', '24.0', '15.0', '2020-09-10 11:25:45');
+INSERT INTO `t_order_position` VALUES (16662, 2, 2720, 754, '109.40085635407921', '24.308727715362743', '26.0', '15.0', '2020-09-10 11:25:50');
+INSERT INTO `t_order_position` VALUES (16663, 2, 2720, 754, '109.40120661119225', '24.30909436042902', '28.0', '15.0', '2020-09-10 11:25:55');
+INSERT INTO `t_order_position` VALUES (16664, 2, 2718, 140, '109.37763023918303', '24.33668616801488', '164.0', '15.0', '2020-09-10 11:25:58');
+INSERT INTO `t_order_position` VALUES (16665, 2, 2718, 140, '109.37763026648857', '24.337152704349176', '164.0', '15.0', '2020-09-10 11:26:00');
+INSERT INTO `t_order_position` VALUES (16666, 2, 2720, 754, '109.40184039516227', '24.309760974037466', '24.0', '15.0', '2020-09-10 11:26:05');
+INSERT INTO `t_order_position` VALUES (16667, 2, 2718, 140, '109.3775134458251', '24.33785237546043', '2.0', '15.0', '2020-09-10 11:26:10');
+INSERT INTO `t_order_position` VALUES (16668, 2, 2720, 754, '109.40229070527606', '24.310260918222724', '28.0', '15.0', '2020-09-10 11:26:10');
+INSERT INTO `t_order_position` VALUES (16669, 2, 2720, 754, '109.40272432721463', '24.31072752755048', '30.0', '15.0', '2020-09-10 11:26:15');
+INSERT INTO `t_order_position` VALUES (16670, 2, 2718, 140, '109.37749680197635', '24.33871878189466', '0.0', '15.0', '2020-09-10 11:26:20');
+INSERT INTO `t_order_position` VALUES (16671, 2, 2720, 754, '109.40319129348802', '24.31121079604253', '28.0', '15.0', '2020-09-10 11:26:20');
+INSERT INTO `t_order_position` VALUES (16672, 2, 2720, 754, '109.40372495920504', '24.311810696421333', '28.0', '15.0', '2020-09-10 11:26:25');
+INSERT INTO `t_order_position` VALUES (16673, 2, 2718, 140, '109.37753024471772', '24.339635232485122', '166.0', '15.0', '2020-09-10 11:26:30');
+INSERT INTO `t_order_position` VALUES (16674, 2, 2720, 754, '109.40419190203164', '24.312277283464862', '28.0', '15.0', '2020-09-10 11:26:31');
+INSERT INTO `t_order_position` VALUES (16675, 2, 2718, 140, '109.37751357845', '24.34011841285297', '166.0', '15.0', '2020-09-10 11:26:35');
+INSERT INTO `t_order_position` VALUES (16676, 2, 2720, 754, '109.40460880735424', '24.312710532897135', '28.0', '15.0', '2020-09-10 11:26:36');
+INSERT INTO `t_order_position` VALUES (16677, 2, 2718, 140, '109.37753030322934', '24.340634955792126', '166.0', '15.0', '2020-09-10 11:26:40');
+INSERT INTO `t_order_position` VALUES (16678, 2, 2720, 754, '109.40502570524606', '24.313160436630216', '30.0', '15.0', '2020-09-10 11:26:41');
+INSERT INTO `t_order_position` VALUES (16679, 2, 2718, 140, '109.37751364086235', '24.34118478482609', '6.0', '15.0', '2020-09-10 11:26:45');
+INSERT INTO `t_order_position` VALUES (16680, 2, 2720, 754, '109.405425914476', '24.313510361645694', '32.0', '15.0', '2020-09-10 11:26:46');
+INSERT INTO `t_order_position` VALUES (16681, 2, 2718, 140, '109.37759714861163', '24.341784715023827', '12.0', '15.0', '2020-09-10 11:26:51');
+INSERT INTO `t_order_position` VALUES (16682, 2, 2720, 754, '109.40582611200658', '24.313793632929478', '38.0', '15.0', '2020-09-10 11:26:51');
+INSERT INTO `t_order_position` VALUES (16683, 2, 2718, 140, '109.37776412727041', '24.342368078309132', '14.0', '15.0', '2020-09-10 11:26:56');
+INSERT INTO `t_order_position` VALUES (16684, 2, 2718, 140, '109.37801457629133', '24.342951535392796', '16.0', '15.0', '2020-09-10 11:27:01');
+INSERT INTO `t_order_position` VALUES (16685, 2, 2720, 754, '109.40654311262351', '24.314293506677945', '40.0', '15.0', '2020-09-10 11:27:01');
+INSERT INTO `t_order_position` VALUES (16686, 2, 2718, 140, '109.37839858814553', '24.343751747557626', '16.0', '15.0', '2020-09-10 11:27:06');
+INSERT INTO `t_order_position` VALUES (16687, 2, 2718, 140, '109.378732510274', '24.344501913693712', '16.0', '15.0', '2020-09-10 11:27:11');
+INSERT INTO `t_order_position` VALUES (16688, 2, 2720, 754, '109.4070099817481', '24.314593420055715', '40.0', '15.0', '2020-09-10 11:27:11');
+INSERT INTO `t_order_position` VALUES (16689, 2, 2718, 140, '109.37913320748535', '24.34533546029941', '16.0', '15.0', '2020-09-10 11:27:16');
+INSERT INTO `t_order_position` VALUES (16690, 2, 2720, 754, '109.4074601684797', '24.314909986075026', '36.0', '15.0', '2020-09-10 11:27:21');
+INSERT INTO `t_order_position` VALUES (16691, 2, 2720, 754, '109.40809374509315', '24.31530984297303', '44.0', '15.0', '2020-09-10 11:27:31');
+INSERT INTO `t_order_position` VALUES (16692, 2, 2718, 140, '109.37948381776934', '24.34615228588434', '16.0', '15.0', '2020-09-10 11:27:31');
+INSERT INTO `t_order_position` VALUES (16693, 2, 2718, 140, '109.37985111754804', '24.346985787907098', '16.0', '15.0', '2020-09-10 11:27:31');
+INSERT INTO `t_order_position` VALUES (16694, 2, 2718, 140, '109.38030188042245', '24.347886022688222', '16.0', '15.0', '2020-09-10 11:27:31');
+INSERT INTO `t_order_position` VALUES (16695, 2, 2718, 140, '109.38075264145087', '24.348886224293928', '16.0', '15.0', '2020-09-10 11:27:36');
+INSERT INTO `t_order_position` VALUES (16696, 2, 2718, 140, '109.38117000629438', '24.349819736864003', '16.0', '15.0', '2020-09-10 11:27:41');
+INSERT INTO `t_order_position` VALUES (16697, 2, 2718, 140, '109.3815539726064', '24.350619912844287', '14.0', '15.0', '2020-09-10 11:27:46');
+INSERT INTO `t_order_position` VALUES (16698, 2, 2718, 140, '109.38190455062038', '24.351436713138483', '16.0', '15.0', '2020-09-10 11:27:51');
+INSERT INTO `t_order_position` VALUES (16699, 2, 2720, 754, '109.40852723701643', '24.315643050609545', '0.0', '15.0', '2020-09-10 11:27:51');
+INSERT INTO `t_order_position` VALUES (16700, 2, 2718, 140, '109.38230520340979', '24.352336870195053', '16.0', '15.0', '2020-09-10 11:27:56');
+INSERT INTO `t_order_position` VALUES (16701, 2, 2718, 140, '109.3826557692139', '24.353120338014207', '16.0', '15.0', '2020-09-10 11:28:01');
+INSERT INTO `t_order_position` VALUES (16702, 2, 2718, 140, '109.38302301931364', '24.353870493569328', '16.0', '15.0', '2020-09-10 11:28:06');
+INSERT INTO `t_order_position` VALUES (16703, 2, 2718, 140, '109.38335688241612', '24.35462061320119', '16.0', '15.0', '2020-09-10 11:28:11');
+INSERT INTO `t_order_position` VALUES (16704, 2, 2718, 140, '109.38372412135139', '24.35535409831875', '20.0', '15.0', '2020-09-10 11:28:16');
+INSERT INTO `t_order_position` VALUES (16705, 2, 2720, 754, '109.40914410903754', '24.316042879542614', '34.0', '15.0', '2020-09-10 11:28:16');
+INSERT INTO `t_order_position` VALUES (16706, 2, 2718, 140, '109.38414142398192', '24.35605430064889', '24.0', '15.0', '2020-09-10 11:28:21');
+INSERT INTO `t_order_position` VALUES (16707, 2, 2718, 140, '109.3846755447815', '24.356671291238186', '34.0', '15.0', '2020-09-10 11:28:26');
+INSERT INTO `t_order_position` VALUES (16708, 2, 2720, 754, '109.40964425738383', '24.316292750516624', '54.0', '15.0', '2020-09-10 11:28:26');
+INSERT INTO `t_order_position` VALUES (16709, 2, 2718, 140, '109.38527640554024', '24.357171694587237', '38.0', '15.0', '2020-09-10 11:28:31');
+INSERT INTO `t_order_position` VALUES (16710, 2, 2718, 140, '109.38597738041274', '24.35757219688224', '44.0', '15.0', '2020-09-10 11:28:36');
+INSERT INTO `t_order_position` VALUES (16711, 2, 2720, 754, '109.41032775238638', '24.316275995468796', '58.0', '15.0', '2020-09-10 11:28:36');
+INSERT INTO `t_order_position` VALUES (16712, 2, 2718, 140, '109.3867450864436', '24.35792274952105', '44.0', '15.0', '2020-09-10 11:28:41');
+INSERT INTO `t_order_position` VALUES (16713, 2, 2718, 140, '109.38754614499051', '24.358289969255267', '44.0', '15.0', '2020-09-10 11:28:46');
+INSERT INTO `t_order_position` VALUES (16714, 2, 2720, 754, '109.41107790326218', '24.31625920739973', '60.0', '15.0', '2020-09-10 11:28:46');
+INSERT INTO `t_order_position` VALUES (16715, 2, 2718, 140, '109.38831380077556', '24.35864047717477', '44.0', '15.0', '2020-09-10 11:28:51');
+INSERT INTO `t_order_position` VALUES (16716, 2, 2718, 140, '109.38908143163027', '24.3589909628984', '44.0', '15.0', '2020-09-10 11:28:56');
+INSERT INTO `t_order_position` VALUES (16717, 2, 2718, 140, '109.38988241003095', '24.35934144983043', '44.0', '15.0', '2020-09-10 11:29:01');
+INSERT INTO `t_order_position` VALUES (16718, 2, 2720, 754, '109.41177801976686', '24.316259066862305', '56.0', '15.0', '2020-09-10 11:29:01');
+INSERT INTO `t_order_position` VALUES (16719, 2, 2718, 140, '109.39064999122279', '24.359725214226447', '44.0', '15.0', '2020-09-10 11:29:06');
+INSERT INTO `t_order_position` VALUES (16720, 2, 2718, 140, '109.391400858672', '24.360058958066013', '44.0', '15.0', '2020-09-10 11:29:11');
+INSERT INTO `t_order_position` VALUES (16721, 2, 2720, 754, '109.412478110887', '24.316242242687938', '60.0', '15.0', '2020-09-10 11:29:11');
+INSERT INTO `t_order_position` VALUES (16722, 2, 2718, 140, '109.39210164636243', '24.36037598659349', '44.0', '15.0', '2020-09-10 11:29:16');
+INSERT INTO `t_order_position` VALUES (16723, 2, 2718, 140, '109.3927189902548', '24.36067628393612', '44.0', '15.0', '2020-09-10 11:29:21');
+INSERT INTO `t_order_position` VALUES (16724, 2, 2718, 140, '109.39333631627132', '24.360959903885522', '44.0', '15.0', '2020-09-10 11:29:27');
+INSERT INTO `t_order_position` VALUES (16725, 2, 2720, 754, '109.41299482985238', '24.31624210872978', '94.0', '15.0', '2020-09-10 11:29:27');
+INSERT INTO `t_order_position` VALUES (16726, 2, 2718, 140, '109.39395362431227', '24.36122684633925', '44.0', '15.0', '2020-09-10 11:29:32');
+INSERT INTO `t_order_position` VALUES (16727, 2, 2718, 140, '109.39468769905342', '24.361560483581965', '44.0', '15.0', '2020-09-10 11:29:37');
+INSERT INTO `t_order_position` VALUES (16728, 2, 2718, 140, '109.39535501354439', '24.36177743005456', '54.0', '15.0', '2020-09-10 11:29:42');
+INSERT INTO `t_order_position` VALUES (16729, 2, 2718, 140, '109.3961390760734', '24.36192776277093', '56.0', '15.0', '2020-09-10 11:29:47');
+INSERT INTO `t_order_position` VALUES (16730, 2, 2720, 754, '109.4130948080701', '24.315725567533335', '106.0', '15.0', '2020-09-10 11:29:47');
+INSERT INTO `t_order_position` VALUES (16731, 2, 2718, 140, '109.397006508955', '24.36196146918934', '62.0', '15.0', '2020-09-10 11:29:52');
+INSERT INTO `t_order_position` VALUES (16732, 2, 2718, 140, '109.39790726200641', '24.361895183298973', '64.0', '15.0', '2020-09-10 11:29:57');
+INSERT INTO `t_order_position` VALUES (16733, 2, 2718, 140, '109.3986912206195', '24.361845485208423', '64.0', '15.0', '2020-09-10 11:30:02');
+INSERT INTO `t_order_position` VALUES (16734, 2, 2718, 140, '109.39944179229639', '24.36179575075071', '64.0', '15.0', '2020-09-10 11:30:07');
+INSERT INTO `t_order_position` VALUES (16735, 2, 2718, 140, '109.40007558636675', '24.361729296213223', '62.0', '15.0', '2020-09-10 11:30:12');
+INSERT INTO `t_order_position` VALUES (16736, 2, 2718, 140, '109.40067600714767', '24.361696140482405', '64.0', '15.0', '2020-09-10 11:30:17');
+INSERT INTO `t_order_position` VALUES (16737, 2, 2718, 140, '109.40129308954351', '24.3616796358706', '60.0', '15.0', '2020-09-10 11:30:22');
+INSERT INTO `t_order_position` VALUES (16738, 2, 2718, 140, '109.40182676673106', '24.361646434522044', '60.0', '15.0', '2020-09-10 11:30:27');
+INSERT INTO `t_order_position` VALUES (16739, 2, 2718, 140, '109.40232707566538', '24.361596552066327', '0.0', '15.0', '2020-09-10 11:30:37');
+INSERT INTO `t_order_position` VALUES (16740, 2, 2718, 140, '109.40289408131927', '24.361596657641986', '60.0', '15.0', '2020-09-10 11:31:32');
+INSERT INTO `t_order_position` VALUES (16741, 2, 2718, 140, '109.40376123169604', '24.361513480611382', '62.0', '15.0', '2020-09-10 11:31:42');
+INSERT INTO `t_order_position` VALUES (16742, 2, 2718, 140, '109.40429484280942', '24.36143023563338', '58.0', '15.0', '2020-09-10 11:32:08');
+INSERT INTO `t_order_position` VALUES (16743, 2, 2718, 140, '109.40501186470306', '24.361380318869482', '62.0', '15.0', '2020-09-10 11:32:18');
+INSERT INTO `t_order_position` VALUES (16744, 2, 2718, 140, '109.40576220693691', '24.36128039438948', '56.0', '15.0', '2020-09-10 11:32:28');
+INSERT INTO `t_order_position` VALUES (16745, 2, 2718, 140, '109.40649585413524', '24.361280419119886', '60.0', '15.0', '2020-09-10 11:32:38');
+INSERT INTO `t_order_position` VALUES (16746, 2, 2718, 140, '109.40739620631754', '24.36133040427317', '62.0', '15.0', '2020-09-10 11:32:48');
+INSERT INTO `t_order_position` VALUES (16747, 2, 2718, 140, '109.4079130564979', '24.36134704943597', '56.0', '15.0', '2020-09-10 11:32:53');
+INSERT INTO `t_order_position` VALUES (16748, 2, 2718, 140, '109.40881334504125', '24.36138031606039', '64.0', '15.0', '2020-09-10 11:33:03');
+INSERT INTO `t_order_position` VALUES (16749, 2, 2718, 140, '109.40948019430176', '24.361313600548275', '62.0', '15.0', '2020-09-10 11:33:08');
+INSERT INTO `t_order_position` VALUES (16750, 2, 2718, 140, '109.41013035105948', '24.361246867706104', '84.0', '15.0', '2020-09-10 11:33:13');
+INSERT INTO `t_order_position` VALUES (16751, 2, 2718, 140, '109.41058042945279', '24.36089688972048', '100.0', '15.0', '2020-09-10 11:33:18');
+INSERT INTO `t_order_position` VALUES (16752, 2, 2718, 140, '109.41076376103516', '24.36023036567824', '102.0', '15.0', '2020-09-10 11:33:23');
+INSERT INTO `t_order_position` VALUES (16753, 2, 2718, 140, '109.41096376372195', '24.35961382448598', '106.0', '15.0', '2020-09-10 11:33:28');
+INSERT INTO `t_order_position` VALUES (16754, 2, 2718, 140, '109.41116376637945', '24.35903060645822', '114.0', '15.0', '2020-09-10 11:33:33');
+INSERT INTO `t_order_position` VALUES (16755, 2, 2718, 140, '109.41118040076529', '24.358430760136752', '112.0', '15.0', '2020-09-10 11:33:38');
+INSERT INTO `t_order_position` VALUES (16756, 2, 2718, 140, '109.41119704101573', '24.357930887894682', '118.0', '15.0', '2020-09-10 11:33:43');
+INSERT INTO `t_order_position` VALUES (16757, 2, 2718, 140, '109.41113033297334', '24.357431031619242', '118.0', '15.0', '2020-09-10 11:33:48');
+INSERT INTO `t_order_position` VALUES (16758, 2, 2718, 140, '109.41116362627993', '24.356647897878393', '118.0', '15.0', '2020-09-10 11:33:58');
+INSERT INTO `t_order_position` VALUES (16759, 2, 2718, 140, '109.41113025655596', '24.356131373545132', '116.0', '15.0', '2020-09-10 11:34:03');
+INSERT INTO `t_order_position` VALUES (16760, 2, 2718, 140, '109.41106354731339', '24.35561485555669', '116.0', '15.0', '2020-09-10 11:34:08');
+INSERT INTO `t_order_position` VALUES (16761, 2, 2718, 140, '109.4110135056845', '24.35506501004388', '116.0', '15.0', '2020-09-10 11:34:13');
+INSERT INTO `t_order_position` VALUES (16762, 2, 2718, 140, '109.4109801317936', '24.354481837163775', '114.0', '15.0', '2020-09-10 11:34:18');
+INSERT INTO `t_order_position` VALUES (16763, 2, 2718, 140, '109.41093009387667', '24.35399864095961', '116.0', '15.0', '2020-09-10 11:34:23');
+INSERT INTO `t_order_position` VALUES (16764, 2, 2718, 140, '109.4108967227871', '24.353465455182956', '118.0', '15.0', '2020-09-10 11:35:49');
+INSERT INTO `t_order_position` VALUES (16765, 2, 2718, 140, '109.41086335556118', '24.352998918513116', '118.0', '15.0', '2020-09-10 11:35:54');
+INSERT INTO `t_order_position` VALUES (16766, 2, 2718, 140, '109.41077996762525', '24.35234910616829', '114.0', '15.0', '2020-09-10 11:35:59');
+INSERT INTO `t_order_position` VALUES (16767, 2, 2718, 140, '109.41079659939125', '24.351699276835266', '118.0', '15.0', '2020-09-10 11:36:04');
+INSERT INTO `t_order_position` VALUES (16768, 2, 2718, 140, '109.4107298782693', '24.350999475513348', '116.0', '15.0', '2020-09-10 11:36:09');
+INSERT INTO `t_order_position` VALUES (16769, 2, 2718, 140, '109.41064648782294', '24.35031633936184', '118.0', '15.0', '2020-09-10 11:36:14');
+INSERT INTO `t_order_position` VALUES (16770, 2, 2718, 140, '109.41057976228635', '24.349549889660576', '116.0', '15.0', '2020-09-10 11:36:19');
+INSERT INTO `t_order_position` VALUES (16771, 2, 2718, 140, '109.41056304902912', '24.348816756540607', '116.0', '15.0', '2020-09-10 11:36:24');
+INSERT INTO `t_order_position` VALUES (16772, 2, 2718, 140, '109.41052966851717', '24.3481336130238', '116.0', '15.0', '2020-09-10 11:36:31');
+INSERT INTO `t_order_position` VALUES (16773, 2, 2718, 140, '109.41049629382812', '24.34755044277032', '120.0', '15.0', '2020-09-10 11:36:34');
+INSERT INTO `t_order_position` VALUES (16774, 2, 2718, 140, '109.41037956378266', '24.346900637142905', '118.0', '15.0', '2020-09-10 11:36:39');
+INSERT INTO `t_order_position` VALUES (16775, 2, 2718, 140, '109.41034618884595', '24.346317467256974', '116.0', '15.0', '2020-09-10 11:36:44');
+INSERT INTO `t_order_position` VALUES (16776, 2, 2718, 140, '109.41031281875242', '24.345817608256667', '118.0', '15.0', '2020-09-10 11:36:49');
+INSERT INTO `t_order_position` VALUES (16777, 2, 2718, 140, '109.41026277918296', '24.345334414022233', '118.0', '15.0', '2020-09-10 11:36:54');
+INSERT INTO `t_order_position` VALUES (16778, 2, 2718, 140, '109.4101960680544', '24.344834560185124', '0.0', '15.0', '2020-09-10 11:37:05');
+INSERT INTO `t_order_position` VALUES (16779, 2, 2718, 140, '109.4101793632985', '24.344251388601258', '116.0', '15.0', '2020-09-10 11:37:45');
+INSERT INTO `t_order_position` VALUES (16780, 2, 2718, 140, '109.41014599195044', '24.343734868093936', '118.0', '15.0', '2020-09-10 11:37:50');
+INSERT INTO `t_order_position` VALUES (16781, 2, 2718, 140, '109.41007925496714', '24.342801800124136', '116.0', '15.0', '2020-09-10 11:38:00');
+INSERT INTO `t_order_position` VALUES (16782, 2, 2718, 140, '109.41006255403381', '24.342285277752985', '118.0', '15.0', '2020-09-10 11:38:05');
+INSERT INTO `t_order_position` VALUES (16783, 2, 2718, 140, '109.41001251090691', '24.341752098122555', '116.0', '15.0', '2020-09-10 11:38:10');
+INSERT INTO `t_order_position` VALUES (16784, 2, 2718, 140, '109.4099457901371', '24.341102286381957', '118.0', '15.0', '2020-09-10 11:38:15');
+INSERT INTO `t_order_position` VALUES (16785, 2, 2718, 140, '109.4099124203637', '24.340619090972808', '118.0', '15.0', '2020-09-10 11:38:20');
+INSERT INTO `t_order_position` VALUES (16786, 2, 2718, 140, '109.40986235629467', '24.33973600864075', '118.0', '15.0', '2020-09-10 11:38:30');
+INSERT INTO `t_order_position` VALUES (16787, 2, 2718, 140, '109.41016239893628', '24.339252768004467', '54.0', '15.0', '2020-09-10 11:38:40');
+INSERT INTO `t_order_position` VALUES (16788, 2, 2718, 140, '109.41072918860782', '24.33926934112022', '52.0', '15.0', '2020-09-10 11:38:50');
+INSERT INTO `t_order_position` VALUES (16789, 2, 2718, 140, '109.41127929179171', '24.339269241127646', '60.0', '15.0', '2020-09-10 11:39:00');
+INSERT INTO `t_order_position` VALUES (16790, 2, 2718, 140, '109.41211274984359', '24.339219077768238', '60.0', '15.0', '2020-09-10 11:39:10');
+INSERT INTO `t_order_position` VALUES (16791, 2, 2718, 140, '109.41284616589753', '24.339202234074236', '62.0', '15.0', '2020-09-10 11:39:20');
+INSERT INTO `t_order_position` VALUES (16792, 2, 2718, 140, '109.41352955402982', '24.339218705165816', '72.0', '15.0', '2020-09-10 11:39:36');
+INSERT INTO `t_order_position` VALUES (16793, 2, 2718, 140, '109.41397953557363', '24.338518762389718', '100.0', '15.0', '2020-09-10 11:39:51');
+INSERT INTO `t_order_position` VALUES (16794, 2, 2718, 140, '109.41414617378372', '24.337935538249877', '0.0', '15.0', '2020-09-10 11:40:11');
+INSERT INTO `t_order_position` VALUES (16795, 2, 2718, 140, '109.41432948057587', '24.337402293684086', '104.0', '15.0', '2020-09-10 11:40:41');
+INSERT INTO `t_order_position` VALUES (16796, 2, 2718, 140, '109.41447945190833', '24.33686905910896', '110.0', '15.0', '2020-09-10 11:40:46');
+INSERT INTO `t_order_position` VALUES (16797, 2, 2718, 140, '109.41459608265448', '24.33623586317882', '118.0', '15.0', '2020-09-10 11:40:51');
+INSERT INTO `t_order_position` VALUES (16798, 2, 2718, 140, '109.4146793871138', '24.335735974490326', '114.0', '15.0', '2020-09-10 11:40:56');
+INSERT INTO `t_order_position` VALUES (16799, 2, 2718, 140, '109.41456269121925', '24.335252816813124', '114.0', '15.0', '2020-09-10 11:41:11');
+INSERT INTO `t_order_position` VALUES (16800, 2, 2718, 140, '109.41446265764698', '24.33470300517553', '122.0', '15.0', '2020-09-10 11:41:21');
+INSERT INTO `t_order_position` VALUES (16801, 2, 2718, 140, '109.41436261573676', '24.334019897538795', '118.0', '15.0', '2020-09-10 11:41:31');
+INSERT INTO `t_order_position` VALUES (16802, 2, 2718, 140, '109.4142459072156', '24.333353457244293', '124.0', '15.0', '2020-09-10 11:41:41');
+INSERT INTO `t_order_position` VALUES (16803, 2, 2718, 140, '109.41392918578408', '24.332603770360066', '120.0', '15.0', '2020-09-10 11:41:51');
+INSERT INTO `t_order_position` VALUES (16804, 2, 2718, 140, '109.4137291421647', '24.33202066374317', '112.0', '15.0', '2020-09-10 11:42:01');
+INSERT INTO `t_order_position` VALUES (16805, 2, 2718, 140, '109.41386244471731', '24.33138746903771', '92.0', '15.0', '2020-09-10 11:42:17');
+INSERT INTO `t_order_position` VALUES (16806, 2, 2718, 140, '109.41427909541893', '24.33087081611093', '90.0', '15.0', '2020-09-10 11:42:32');
+INSERT INTO `t_order_position` VALUES (16807, 2, 2718, 140, '109.41457907101668', '24.33037085771615', '0.0', '15.0', '2020-09-10 11:42:52');
+INSERT INTO `t_order_position` VALUES (16808, 2, 2718, 140, '109.41487903132865', '24.329687614386692', '110.0', '15.0', '2020-09-10 11:43:42');
+INSERT INTO `t_order_position` VALUES (16809, 2, 2718, 140, '109.41499566953301', '24.329221039061355', '108.0', '15.0', '2020-09-10 11:43:47');
+INSERT INTO `t_order_position` VALUES (16810, 2, 2718, 140, '109.41504561696264', '24.32833794007164', '114.0', '15.0', '2020-09-10 11:43:57');
+INSERT INTO `t_order_position` VALUES (16811, 2, 2718, 140, '109.41514558883381', '24.327888032389527', '114.0', '15.0', '2020-09-10 11:44:02');
+INSERT INTO `t_order_position` VALUES (16812, 2, 2718, 140, '109.41524555824431', '24.32740480064466', '106.0', '15.0', '2020-09-10 11:44:07');
+INSERT INTO `t_order_position` VALUES (16813, 2, 2718, 140, '109.41536218842603', '24.326838252958918', '110.0', '15.0', '2020-09-10 11:44:12');
+INSERT INTO `t_order_position` VALUES (16814, 2, 2718, 140, '109.41531214970932', '24.326155134931643', '114.0', '15.0', '2020-09-10 11:44:37');
+INSERT INTO `t_order_position` VALUES (16815, 2, 2718, 140, '109.41532876692911', '24.325322035477395', '118.0', '15.0', '2020-09-10 11:44:48');
+INSERT INTO `t_order_position` VALUES (16816, 2, 2718, 140, '109.41531205273152', '24.324505610923133', '120.0', '15.0', '2020-09-10 11:44:58');
+INSERT INTO `t_order_position` VALUES (16817, 2, 2718, 140, '109.41514535471478', '24.323905846398112', '130.0', '15.0', '2020-09-10 11:45:08');
+INSERT INTO `t_order_position` VALUES (16818, 2, 2718, 140, '109.41474530748819', '24.32303957436856', '124.0', '15.0', '2020-09-10 11:45:28');
+INSERT INTO `t_order_position` VALUES (16819, 2, 2718, 140, '109.41464527973487', '24.322573077960676', '124.0', '15.0', '2020-09-10 11:45:33');
+INSERT INTO `t_order_position` VALUES (16820, 2, 2718, 140, '109.4144119074493', '24.321956669919913', '0.0', '15.0', '2020-09-10 11:45:53');
+INSERT INTO `t_order_position` VALUES (16821, 2, 2718, 140, '109.41427854097739', '24.321440197952942', '122.0', '15.0', '2020-09-10 11:47:34');
+INSERT INTO `t_order_position` VALUES (16822, 2, 2718, 140, '109.41417851088636', '24.320973700026123', '128.0', '15.0', '2020-09-10 11:47:39');
+INSERT INTO `t_order_position` VALUES (16823, 2, 2718, 140, '109.4139117974461', '24.320340636485838', '128.0', '15.0', '2020-09-10 11:47:49');
+INSERT INTO `t_order_position` VALUES (16824, 2, 2718, 140, '109.41319506887011', '24.320024274490148', '110.0', '15.0', '2020-09-10 11:48:14');
+INSERT INTO `t_order_position` VALUES (16825, 2, 2718, 140, '109.41262834881435', '24.320007764064876', '112.0', '15.0', '2020-09-10 11:48:19');
+INSERT INTO `t_order_position` VALUES (16826, 2, 2718, 140, '109.41206161175145', '24.31997457747109', '114.0', '15.0', '2020-09-10 11:48:24');
+INSERT INTO `t_order_position` VALUES (16827, 2, 2718, 140, '109.41147819124976', '24.319974703486682', '110.0', '15.0', '2020-09-10 11:48:29');
+INSERT INTO `t_order_position` VALUES (16828, 2, 2718, 140, '109.41089475577212', '24.32000813788865', '120.0', '14.0', '2020-09-10 11:48:34');
+INSERT INTO `t_order_position` VALUES (16829, 2, 2718, 140, '109.40857749437183', '24.319758501733567', '110.0', '15.0', '2020-09-10 11:48:54');
+INSERT INTO `t_order_position` VALUES (16830, 2, 2718, 140, '109.40772722291513', '24.319891843053963', '120.0', '15.0', '2020-09-10 11:49:04');
+INSERT INTO `t_order_position` VALUES (16831, 2, 2718, 140, '109.40706033878705', '24.320341726003907', '136.0', '15.0', '2020-09-10 11:49:19');
+INSERT INTO `t_order_position` VALUES (16832, 2, 2718, 140, '109.40666019961277', '24.32064163770341', '138.0', '15.0', '2020-09-10 11:49:24');
+INSERT INTO `t_order_position` VALUES (16833, 2, 2718, 140, '109.40607664904232', '24.321074831023484', '134.0', '15.0', '2020-09-10 11:49:34');
+INSERT INTO `t_order_position` VALUES (16834, 2, 2718, 140, '109.40570984482234', '24.321474698259625', '148.0', '15.0', '2020-09-10 11:49:50');
+INSERT INTO `t_order_position` VALUES (16835, 2, 2718, 140, '109.40522631464258', '24.321907875148842', '138.0', '15.0', '2020-09-10 11:50:10');
+INSERT INTO `t_order_position` VALUES (16836, 2, 2718, 140, '109.40474277212782', '24.322324380181318', '122.0', '15.0', '2020-09-10 11:50:20');
+INSERT INTO `t_order_position` VALUES (16837, 2, 2718, 140, '109.40427588673298', '24.322624244332726', '14.0', '15.0', '2020-09-10 11:50:30');
+INSERT INTO `t_order_position` VALUES (16838, 2, 2718, 140, '109.40435929340074', '24.32314077034394', '0.0', '15.0', '2020-09-10 11:50:45');
+INSERT INTO `t_order_position` VALUES (16839, 2, 2718, 140, '109.40454274654472', '24.32359065941015', '16.0', '15.0', '2020-09-10 11:51:55');
+INSERT INTO `t_order_position` VALUES (16840, 2, 2718, 140, '109.40475955279665', '24.324123859522164', '14.0', '15.0', '2020-09-10 11:52:16');
+INSERT INTO `t_order_position` VALUES (16841, 2, 2718, 140, '109.40500971012509', '24.324723707989204', '20.0', '15.0', '2020-09-10 11:52:36');
+INSERT INTO `t_order_position` VALUES (16842, 2, 2718, 140, '109.40532655056728', '24.325123616404504', '0.0', '15.0', '2020-09-10 11:53:46');
+INSERT INTO `t_order_position` VALUES (16843, 2, 2723, 906, '104.05578004100873', '30.58576270617319', '163.9600067138672', '532.82', '2020-09-10 15:07:51');
+INSERT INTO `t_order_position` VALUES (16844, 2, 2724, 906, '104.055811', '30.585667', '0.0', '0.0', '2020-09-10 15:15:59');
+INSERT INTO `t_order_position` VALUES (16845, 2, 2729, 906, '104.055813', '30.585667', '0.0', '0.0', '2020-09-10 15:23:41');
+INSERT INTO `t_order_position` VALUES (16846, 2, 2730, 906, '104.055807', '30.585668', '0.0', '0.0', '2020-09-10 15:50:38');
+INSERT INTO `t_order_position` VALUES (16847, 2, 2731, 73, '109.40545908790281', '24.31052792159164', '0.0', '4.0', '2020-09-10 16:48:10');
+INSERT INTO `t_order_position` VALUES (16848, 2, 2731, 73, '109.40609269516538', '24.310394659298055', '92.0', '4.0', '2020-09-10 16:48:30');
+INSERT INTO `t_order_position` VALUES (16849, 2, 2731, 73, '109.40664289264015', '24.3098614987659', '90.0', '4.0', '2020-09-10 16:48:41');
+INSERT INTO `t_order_position` VALUES (16850, 2, 2731, 73, '109.40715974314361', '24.309561588766904', '0.0', '4.0', '2020-09-10 16:48:51');
+INSERT INTO `t_order_position` VALUES (16851, 2, 2731, 73, '109.40790999564716', '24.309278319532254', '72.0', '5.0', '2020-09-10 16:49:16');
+INSERT INTO `t_order_position` VALUES (16852, 2, 2731, 73, '109.40864355757043', '24.30914498169426', '64.0', '4.0', '2020-09-10 16:49:26');
+INSERT INTO `t_order_position` VALUES (16853, 2, 2731, 73, '109.40951046553425', '24.309078251683744', '64.0', '5.0', '2020-09-10 16:49:36');
+INSERT INTO `t_order_position` VALUES (16854, 2, 2731, 73, '109.41047736872949', '24.30919475089306', '62.0', '6.0', '2020-09-10 16:49:46');
+INSERT INTO `t_order_position` VALUES (16855, 2, 2731, 73, '109.4113608743352', '24.309244578536717', '54.0', '6.0', '2020-09-10 16:49:56');
+INSERT INTO `t_order_position` VALUES (16856, 2, 2731, 73, '109.41191096604369', '24.309344432921755', '56.0', '6.0', '2020-09-10 16:50:01');
+INSERT INTO `t_order_position` VALUES (16857, 2, 2731, 73, '109.41252771200284', '24.309360948952648', '54.0', '6.0', '2020-09-10 16:50:06');
+INSERT INTO `t_order_position` VALUES (16858, 2, 2731, 73, '109.4135944673593', '24.309327333547195', '66.0', '5.0', '2020-09-10 16:50:16');
+INSERT INTO `t_order_position` VALUES (16859, 2, 2731, 73, '109.41441115713819', '24.309193782179094', '64.0', '5.0', '2020-09-10 16:50:26');
+INSERT INTO `t_order_position` VALUES (16860, 2, 2731, 73, '109.41507782822191', '24.309260195844548', '46.0', '5.0', '2020-09-10 16:50:37');
+INSERT INTO `t_order_position` VALUES (16861, 2, 2731, 73, '109.41582782369152', '24.309626466303268', '34.0', '4.0', '2020-09-10 16:50:46');
+INSERT INTO `t_order_position` VALUES (16862, 2, 2731, 73, '109.41644447714837', '24.31012606203148', '32.0', '4.0', '2020-09-10 16:50:56');
+INSERT INTO `t_order_position` VALUES (16863, 2, 2731, 73, '109.41686112283166', '24.310442452294353', '36.0', '4.0', '2020-09-10 16:51:01');
+INSERT INTO `t_order_position` VALUES (16864, 2, 2731, 73, '109.41771104438757', '24.310941908109463', '34.0', '5.0', '2020-09-10 16:51:11');
+INSERT INTO `t_order_position` VALUES (16865, 2, 2731, 73, '109.41837762750568', '24.311391441311976', '32.0', '5.0', '2020-09-10 16:51:27');
+INSERT INTO `t_order_position` VALUES (16866, 2, 2731, 73, '109.41914417235954', '24.311940870172528', '30.0', '6.0', '2020-09-10 16:51:37');
+INSERT INTO `t_order_position` VALUES (16867, 2, 2731, 73, '109.41934415764882', '24.312457272115484', '8.0', '7.0', '2020-09-10 16:51:47');
+INSERT INTO `t_order_position` VALUES (16868, 2, 2731, 73, '109.41941084704153', '24.31310704110747', '18.0', '7.0', '2020-09-10 16:51:57');
+INSERT INTO `t_order_position` VALUES (16869, 2, 2731, 73, '109.41994408968492', '24.313806527777164', '38.0', '7.0', '2020-09-10 16:52:07');
+INSERT INTO `t_order_position` VALUES (16870, 2, 2731, 73, '109.4207605561358', '24.31430588728309', '28.0', '7.0', '2020-09-10 16:52:17');
+INSERT INTO `t_order_position` VALUES (16871, 2, 2731, 73, '109.42127710037063', '24.314988691102982', '12.0', '7.0', '2020-09-10 16:52:27');
+INSERT INTO `t_order_position` VALUES (16872, 2, 2731, 73, '109.42136043364496', '24.315455165675058', '2.0', '7.0', '2020-09-10 16:52:32');
+INSERT INTO `t_order_position` VALUES (16873, 2, 2731, 73, '109.4213771457007', '24.31632156520323', '0.0', '6.0', '2020-09-10 16:52:42');
+INSERT INTO `t_order_position` VALUES (16874, 2, 2731, 73, '109.4211772533508', '24.31703814915249', '154.0', '8.0', '2020-09-10 16:52:52');
+INSERT INTO `t_order_position` VALUES (16875, 2, 2731, 73, '109.42106065238721', '24.31752141435447', '0.0', '8.0', '2020-09-10 16:53:02');
+INSERT INTO `t_order_position` VALUES (16876, 2, 2731, 73, '109.42076078629461', '24.318221396639917', '164.0', '9.0', '2020-09-10 16:53:27');
+INSERT INTO `t_order_position` VALUES (16877, 2, 2731, 73, '109.42062753485514', '24.31893793518298', '162.0', '9.0', '2020-09-10 16:53:37');
+INSERT INTO `t_order_position` VALUES (16878, 2, 2731, 73, '109.42039431403673', '24.31970451932313', '162.0', '9.0', '2020-09-10 16:53:47');
+INSERT INTO `t_order_position` VALUES (16879, 2, 2731, 73, '109.42016109537695', '24.320554410439907', '162.0', '9.0', '2020-09-10 16:53:57');
+INSERT INTO `t_order_position` VALUES (16880, 2, 2731, 73, '109.41994453924714', '24.321454275355503', '164.0', '9.0', '2020-09-10 16:54:07');
+INSERT INTO `t_order_position` VALUES (16881, 2, 2731, 73, '109.41984459346094', '24.32193752605576', '164.0', '9.0', '2020-09-10 16:54:12');
+INSERT INTO `t_order_position` VALUES (16882, 2, 2731, 73, '109.41977797408455', '24.322454080940258', '162.0', '8.0', '2020-09-10 16:54:17');
+INSERT INTO `t_order_position` VALUES (16883, 2, 2731, 73, '109.41969469097943', '24.32295398355315', '160.0', '8.0', '2020-09-10 16:54:22');
+INSERT INTO `t_order_position` VALUES (16884, 2, 2731, 73, '109.41956142259257', '24.323503899936917', '158.0', '8.0', '2020-09-10 16:54:27');
+INSERT INTO `t_order_position` VALUES (16885, 2, 2731, 73, '109.41939482777057', '24.32405383441416', '158.0', '8.0', '2020-09-10 16:54:33');
+INSERT INTO `t_order_position` VALUES (16886, 2, 2731, 73, '109.41927821634273', '24.324537092843812', '164.0', '8.0', '2020-09-10 16:54:38');
+INSERT INTO `t_order_position` VALUES (16887, 2, 2731, 73, '109.41912827726259', '24.325003707246083', '158.0', '7.0', '2020-09-10 16:54:43');
+INSERT INTO `t_order_position` VALUES (16888, 2, 2731, 73, '109.4190116642697', '24.325486964629388', '162.0', '7.0', '2020-09-10 16:54:48');
+INSERT INTO `t_order_position` VALUES (16889, 2, 2731, 73, '109.41894503916086', '24.32595353283248', '160.0', '7.0', '2020-09-10 16:54:53');
+INSERT INTO `t_order_position` VALUES (16890, 2, 2731, 73, '109.41889507899826', '24.3264534158162', '160.0', '7.0', '2020-09-10 16:54:58');
+INSERT INTO `t_order_position` VALUES (16891, 2, 2731, 73, '109.4187784705134', '24.327036643800774', '162.0', '7.0', '2020-09-10 16:55:03');
+INSERT INTO `t_order_position` VALUES (16892, 2, 2731, 73, '109.41869518419658', '24.327553206327945', '162.0', '8.0', '2020-09-10 16:55:08');
+INSERT INTO `t_order_position` VALUES (16893, 2, 2731, 73, '109.41859523114366', '24.328019791791004', '162.0', '8.0', '2020-09-10 16:55:13');
+INSERT INTO `t_order_position` VALUES (16894, 2, 2731, 73, '109.41849527856732', '24.328503038873947', '160.0', '8.0', '2020-09-10 16:55:18');
+INSERT INTO `t_order_position` VALUES (16895, 2, 2731, 73, '109.41834533749497', '24.329036297049893', '162.0', '8.0', '2020-09-10 16:55:23');
+INSERT INTO `t_order_position` VALUES (16896, 2, 2731, 73, '109.41826205034167', '24.329569520674127', '0.0', '8.0', '2020-09-10 16:55:28');
+INSERT INTO `t_order_position` VALUES (16897, 2, 2731, 73, '109.41829540716994', '24.330069361243005', '0.0', '8.0', '2020-09-10 16:55:33');
+INSERT INTO `t_order_position` VALUES (16898, 2, 2731, 73, '109.41829543557719', '24.330552557037546', '164.0', '8.0', '2020-09-10 16:55:38');
+INSERT INTO `t_order_position` VALUES (16899, 2, 2731, 73, '109.4182788257395', '24.33146897184649', '166.0', '8.0', '2020-09-10 16:55:48');
+INSERT INTO `t_order_position` VALUES (16900, 2, 2731, 73, '109.41822886194241', '24.331935531607993', '166.0', '8.0', '2020-09-10 16:55:53');
+INSERT INTO `t_order_position` VALUES (16901, 2, 2731, 73, '109.41817889801968', '24.332402091429476', '166.0', '8.0', '2020-09-10 16:55:58');
+INSERT INTO `t_order_position` VALUES (16902, 2, 2731, 73, '109.4181456213207', '24.33326852998984', '160.0', '8.0', '2020-09-10 16:56:08');
+INSERT INTO `t_order_position` VALUES (16903, 2, 2731, 73, '109.41794570036538', '24.33405174212415', '156.0', '9.0', '2020-09-10 16:56:18');
+INSERT INTO `t_order_position` VALUES (16904, 2, 2731, 73, '109.4177624337225', '24.33470164899582', '162.0', '9.0', '2020-09-10 16:56:28');
+INSERT INTO `t_order_position` VALUES (16905, 2, 2731, 73, '109.41769580834256', '24.33523486479287', '114.0', '7.0', '2020-09-10 16:56:38');
+INSERT INTO `t_order_position` VALUES (16906, 2, 2731, 73, '109.41747919692578', '24.335651518039565', '0.0', '9.0', '2020-09-10 16:56:53');
+INSERT INTO `t_order_position` VALUES (16907, 2, 2731, 73, '109.41752923607858', '24.336434608354757', '166.0', '9.0', '2020-09-10 16:57:04');
+INSERT INTO `t_order_position` VALUES (16908, 2, 2731, 73, '109.41751260209021', '24.336951138530985', '166.0', '9.0', '2020-09-10 16:57:09');
+INSERT INTO `t_order_position` VALUES (16909, 2, 2731, 73, '109.41751263343795', '24.337484323033273', '166.0', '9.0', '2020-09-10 16:57:14');
+INSERT INTO `t_order_position` VALUES (16910, 2, 2731, 73, '109.41751266478579', '24.338017507764114', '0.0', '9.0', '2020-09-10 16:57:18');
+INSERT INTO `t_order_position` VALUES (16911, 2, 2731, 73, '109.41756269405901', '24.338633979134823', '166.0', '10.0', '2020-09-10 16:57:23');
+INSERT INTO `t_order_position` VALUES (16912, 2, 2731, 73, '109.417546060099', '24.33915051025004', '0.0', '10.0', '2020-09-10 16:57:28');
+INSERT INTO `t_order_position` VALUES (16913, 2, 2731, 73, '109.4175294251455', '24.339650379519533', '166.0', '10.0', '2020-09-10 16:57:34');
+INSERT INTO `t_order_position` VALUES (16914, 2, 2731, 73, '109.41749612776712', '24.340183580983723', '0.0', '11.0', '2020-09-10 16:57:39');
+INSERT INTO `t_order_position` VALUES (16915, 2, 2731, 73, '109.41751282348574', '24.340716758980896', '2.0', '11.0', '2020-09-10 16:57:44');
+INSERT INTO `t_order_position` VALUES (16916, 2, 2731, 73, '109.41759617549636', '24.341233243371263', '10.0', '11.0', '2020-09-10 16:57:49');
+INSERT INTO `t_order_position` VALUES (16917, 2, 2731, 73, '109.41769619235389', '24.34176638170868', '12.0', '11.0', '2020-09-10 16:57:54');
+INSERT INTO `t_order_position` VALUES (16918, 2, 2731, 73, '109.41777954359601', '24.34228286584943', '14.0', '11.0', '2020-09-10 16:57:59');
+INSERT INTO `t_order_position` VALUES (16919, 2, 2731, 73, '109.41806288387271', '24.343165817073753', '14.0', '12.0', '2020-09-10 16:58:09');
+INSERT INTO `t_order_position` VALUES (16920, 2, 2731, 73, '109.4181962220724', '24.34363228892732', '10.0', '12.0', '2020-09-10 16:58:14');
+INSERT INTO `t_order_position` VALUES (16921, 2, 2731, 73, '109.41831289667164', '24.344115430773467', '8.0', '12.0', '2020-09-10 16:58:19');
+INSERT INTO `t_order_position` VALUES (16922, 2, 2731, 73, '109.41837958267809', '24.344648584257722', '4.0', '11.0', '2020-09-10 16:58:24');
+INSERT INTO `t_order_position` VALUES (16923, 2, 2731, 73, '109.41846293203453', '24.34518172916412', '4.0', '12.0', '2020-09-10 16:58:29');
+INSERT INTO `t_order_position` VALUES (16924, 2, 2731, 73, '109.41849628950874', '24.345698237837436', '8.0', '12.0', '2020-09-10 16:58:42');
+INSERT INTO `t_order_position` VALUES (16925, 2, 2731, 73, '109.41857963445732', '24.34616473421425', '8.0', '12.0', '2020-09-10 16:58:42');
+INSERT INTO `t_order_position` VALUES (16926, 2, 2731, 73, '109.4186796444075', '24.346664545969976', '10.0', '12.0', '2020-09-10 16:58:44');
+INSERT INTO `t_order_position` VALUES (16927, 2, 2731, 73, '109.41879631812796', '24.347181010769408', '10.0', '12.0', '2020-09-10 16:58:49');
+INSERT INTO `t_order_position` VALUES (16928, 2, 2731, 73, '109.41889632796718', '24.34769748412121', '12.0', '9.0', '2020-09-10 16:58:54');
+INSERT INTO `t_order_position` VALUES (16929, 2, 2731, 73, '109.41906301122009', '24.348580488750866', '8.0', '13.0', '2020-09-10 16:59:04');
+INSERT INTO `t_order_position` VALUES (16930, 2, 2733, 73, '109.41991323148656', '24.35576142648074', '0.0', '15.0', '2020-09-10 17:04:36');
+INSERT INTO `t_order_position` VALUES (16931, 2, 2733, 73, '109.4198132052134', '24.354878384570338', '120.0', '15.0', '2020-09-10 17:05:06');
+INSERT INTO `t_order_position` VALUES (16932, 2, 2733, 73, '109.4197465240171', '24.35434523090297', '120.0', '15.0', '2020-09-10 17:05:11');
+INSERT INTO `t_order_position` VALUES (16933, 2, 2733, 73, '109.41967984259702', '24.353812077271566', '120.0', '15.0', '2020-09-10 17:05:17');
+INSERT INTO `t_order_position` VALUES (16934, 2, 2733, 73, '109.41961316095319', '24.353278923675873', '118.0', '15.0', '2020-09-10 17:05:21');
+INSERT INTO `t_order_position` VALUES (16935, 2, 2733, 73, '109.41956313977693', '24.352712436225044', '120.0', '15.0', '2020-09-10 17:05:26');
+INSERT INTO `t_order_position` VALUES (16936, 2, 2733, 73, '109.41942980487188', '24.352145995799003', '120.0', '15.0', '2020-09-10 17:05:32');
+INSERT INTO `t_order_position` VALUES (16937, 2, 2733, 73, '109.41936310377552', '24.35129626021287', '120.0', '15.0', '2020-09-10 17:05:42');
+INSERT INTO `t_order_position` VALUES (16938, 2, 2733, 73, '109.41927975427578', '24.350696467215567', '120.0', '15.0', '2020-09-10 17:05:47');
+INSERT INTO `t_order_position` VALUES (16939, 2, 2733, 73, '109.41917974146807', '24.350096683363166', '118.0', '15.0', '2020-09-10 17:05:52');
+INSERT INTO `t_order_position` VALUES (16940, 2, 2733, 73, '109.4190963853213', '24.349396917180968', '120.0', '15.0', '2020-09-10 17:05:57');
+INSERT INTO `t_order_position` VALUES (16941, 2, 2733, 73, '109.41901303764175', '24.34884711063979', '122.0', '15.0', '2020-09-10 17:06:02');
+INSERT INTO `t_order_position` VALUES (16942, 2, 2733, 73, '109.41884635592862', '24.347997429763243', '122.0', '15.0', '2020-09-10 17:06:12');
+INSERT INTO `t_order_position` VALUES (16943, 2, 2733, 73, '109.41874634289879', '24.347430969595635', '124.0', '15.0', '2020-09-10 17:06:17');
+INSERT INTO `t_order_position` VALUES (16944, 2, 2733, 73, '109.41859634494209', '24.346964508325517', '124.0', '15.0', '2020-09-10 17:06:22');
+INSERT INTO `t_order_position` VALUES (16945, 2, 2733, 73, '109.41839632467916', '24.345981545703353', '122.0', '15.0', '2020-09-10 17:06:32');
+INSERT INTO `t_order_position` VALUES (16946, 2, 2733, 73, '109.41832963774887', '24.34543172956181', '118.0', '15.0', '2020-09-10 17:06:37');
+INSERT INTO `t_order_position` VALUES (16947, 2, 2733, 73, '109.41829627509678', '24.34483191015507', '120.0', '15.0', '2020-09-10 17:06:42');
+INSERT INTO `t_order_position` VALUES (16948, 2, 2733, 73, '109.41819626125803', '24.344298773195362', '120.0', '15.0', '2020-09-10 17:06:47');
+INSERT INTO `t_order_position` VALUES (16949, 2, 2733, 73, '109.41812957169753', '24.34371563300068', '122.0', '15.0', '2020-09-10 17:06:58');
+INSERT INTO `t_order_position` VALUES (16950, 2, 2733, 73, '109.41786289154986', '24.342749363621923', '124.0', '15.0', '2020-09-10 17:07:07');
+INSERT INTO `t_order_position` VALUES (16951, 2, 2733, 73, '109.41771288398643', '24.34223291190489', '120.0', '15.0', '2020-09-10 17:07:12');
+INSERT INTO `t_order_position` VALUES (16952, 2, 2733, 73, '109.41757953862584', '24.34169978936829', '122.0', '15.0', '2020-09-10 17:07:18');
+INSERT INTO `t_order_position` VALUES (16953, 2, 2733, 73, '109.41746285482397', '24.341133334265912', '118.0', '15.0', '2020-09-10 17:07:22');
+INSERT INTO `t_order_position` VALUES (16954, 2, 2733, 73, '109.41739616378362', '24.340566855425923', '114.0', '15.0', '2020-09-10 17:07:27');
+INSERT INTO `t_order_position` VALUES (16955, 2, 2733, 73, '109.41741279590973', '24.34001699972564', '114.0', '15.0', '2020-09-10 17:07:32');
+INSERT INTO `t_order_position` VALUES (16956, 2, 2733, 73, '109.4174294309609', '24.33951713039589', '114.0', '15.0', '2020-09-10 17:07:37');
+INSERT INTO `t_order_position` VALUES (16957, 2, 2733, 73, '109.41741273713181', '24.339017276932182', '112.0', '15.0', '2020-09-10 17:07:42');
+INSERT INTO `t_order_position` VALUES (16958, 2, 2733, 73, '109.41742937218316', '24.33851740800575', '112.0', '15.0', '2020-09-10 17:07:47');
+INSERT INTO `t_order_position` VALUES (16959, 2, 2733, 73, '109.41742934083517', '24.337984223060403', '112.0', '15.0', '2020-09-10 17:07:52');
+INSERT INTO `t_order_position` VALUES (16960, 2, 2733, 73, '109.41744597097467', '24.33740104444373', '112.0', '15.0', '2020-09-10 17:07:57');
+INSERT INTO `t_order_position` VALUES (16961, 2, 2733, 73, '109.41746260207994', '24.33683452809835', '112.0', '15.0', '2020-09-10 17:08:02');
+INSERT INTO `t_order_position` VALUES (16962, 2, 2733, 73, '109.41746257465073', '24.336367991889787', '122.0', '15.0', '2020-09-10 17:08:07');
+INSERT INTO `t_order_position` VALUES (16963, 2, 2733, 73, '109.41747920378305', '24.335768152008363', '114.0', '15.0', '2020-09-10 17:09:18');
+INSERT INTO `t_order_position` VALUES (16964, 2, 2733, 73, '109.41746250901687', '24.335251638098953', '116.0', '15.0', '2020-09-10 17:09:28');
+INSERT INTO `t_order_position` VALUES (16965, 2, 2733, 73, '109.4174291439329', '24.334635160343808', '114.0', '15.0', '2020-09-10 17:09:38');
+INSERT INTO `t_order_position` VALUES (16966, 2, 2733, 73, '109.4177457352758', '24.334118487840662', '104.0', '15.0', '2020-09-10 17:09:58');
+INSERT INTO `t_order_position` VALUES (16967, 2, 2733, 73, '109.41804564493135', '24.333385213775365', '108.0', '15.0', '2020-09-10 17:10:08');
+INSERT INTO `t_order_position` VALUES (16968, 2, 2733, 73, '109.41812891829807', '24.332602060015258', '110.0', '15.0', '2020-09-10 17:10:18');
+INSERT INTO `t_order_position` VALUES (16969, 2, 2733, 73, '109.41819553243005', '24.331902224572712', '110.0', '15.0', '2020-09-10 17:10:28');
+INSERT INTO `t_order_position` VALUES (16970, 2, 2733, 73, '109.41819548443112', '24.331085789534093', '110.0', '15.0', '2020-09-10 17:10:38');
+INSERT INTO `t_order_position` VALUES (16971, 2, 2733, 73, '109.418245428721', '24.33028599164578', '112.0', '15.0', '2020-09-10 17:10:48');
+INSERT INTO `t_order_position` VALUES (16972, 2, 2733, 73, '109.41824537778393', '24.329419571914222', '112.0', '15.0', '2020-09-10 17:10:58');
+INSERT INTO `t_order_position` VALUES (16973, 2, 2733, 73, '109.41834533357677', '24.328969649422945', '110.0', '14.0', '2020-09-10 17:11:03');
+INSERT INTO `t_order_position` VALUES (16974, 2, 2733, 73, '109.41844528690757', '24.328486402839538', '108.0', '14.0', '2020-09-10 17:11:08');
+INSERT INTO `t_order_position` VALUES (16975, 2, 2733, 73, '109.41859522134826', '24.327853172863573', '110.0', '14.0', '2020-09-10 17:11:13');
+INSERT INTO `t_order_position` VALUES (16976, 2, 2733, 73, '109.4186785100433', '24.32736993436109', '112.0', '14.0', '2020-09-10 17:11:18');
+INSERT INTO `t_order_position` VALUES (16977, 2, 2733, 73, '109.41877843720947', '24.32647013997393', '112.0', '15.0', '2020-09-10 17:11:29');
+INSERT INTO `t_order_position` VALUES (16978, 2, 2733, 73, '109.41891169028042', '24.325570327886624', '108.0', '15.0', '2020-09-10 17:11:39');
+INSERT INTO `t_order_position` VALUES (16979, 2, 2733, 73, '109.4190283038603', '24.325087070998567', '102.0', '15.0', '2020-09-10 17:11:44');
+INSERT INTO `t_order_position` VALUES (16980, 2, 2733, 73, '109.41919490763381', '24.32463710993163', '104.0', '14.0', '2020-09-10 17:11:49');
+INSERT INTO `t_order_position` VALUES (16981, 2, 2733, 73, '109.41936150707129', '24.32413716223801', '104.0', '13.0', '2020-09-10 17:11:54');
+INSERT INTO `t_order_position` VALUES (16982, 2, 2733, 73, '109.41952810707022', '24.32367053715883', '108.0', '14.0', '2020-09-10 17:11:59');
+INSERT INTO `t_order_position` VALUES (16983, 2, 2733, 73, '109.41961139283286', '24.323203958556306', '110.0', '14.0', '2020-09-10 17:12:04');
+INSERT INTO `t_order_position` VALUES (16984, 2, 2733, 73, '109.4197113388131', '24.322704046609992', '112.0', '14.0', '2020-09-10 17:12:09');
+INSERT INTO `t_order_position` VALUES (16985, 2, 2733, 73, '109.41974463541811', '24.322220834649826', '110.0', '14.0', '2020-09-10 17:12:14');
+INSERT INTO `t_order_position` VALUES (16986, 2, 2733, 73, '109.41982792027278', '24.321754255757416', '114.0', '14.0', '2020-09-10 17:12:19');
+INSERT INTO `t_order_position` VALUES (16987, 2, 2733, 73, '109.4199445049661', '24.320871112191302', '110.0', '14.0', '2020-09-10 17:12:29');
+INSERT INTO `t_order_position` VALUES (16988, 2, 2733, 73, '109.42016107382914', '24.320187850960963', '104.0', '14.0', '2020-09-10 17:12:39');
+INSERT INTO `t_order_position` VALUES (16989, 2, 2733, 73, '109.42037765012503', '24.31967120581577', '0.0', '15.0', '2020-09-10 17:12:59');
+INSERT INTO `t_order_position` VALUES (16990, 2, 2733, 73, '109.42056089459857', '24.31905460850415', '108.0', '15.0', '2020-09-10 17:13:19');
+INSERT INTO `t_order_position` VALUES (16991, 2, 2733, 73, '109.42076080196519', '24.318487984937867', '112.0', '15.0', '2020-09-10 17:13:29');
+INSERT INTO `t_order_position` VALUES (16992, 2, 2733, 73, '109.42086073432655', '24.317854775516405', '108.0', '15.0', '2020-09-10 17:13:39');
+INSERT INTO `t_order_position` VALUES (16993, 2, 2733, 73, '109.42106062986119', '24.317138193977488', '108.0', '15.0', '2020-09-10 17:13:49');
+INSERT INTO `t_order_position` VALUES (16994, 2, 2733, 73, '109.42119388818953', '24.31658827126546', '106.0', '15.0', '2020-09-10 17:14:00');
+INSERT INTO `t_order_position` VALUES (16995, 2, 2733, 73, '109.42132714856224', '24.316088333200497', '112.0', '15.0', '2020-09-10 17:14:11');
+INSERT INTO `t_order_position` VALUES (16996, 2, 2733, 73, '109.42124379654007', '24.315305285374485', '120.0', '15.0', '2020-09-10 17:14:25');
+INSERT INTO `t_order_position` VALUES (16997, 2, 2733, 73, '109.42092718847215', '24.314589032414492', '140.0', '15.0', '2020-09-10 17:14:35');
+INSERT INTO `t_order_position` VALUES (16998, 2, 2733, 73, '109.42044397464527', '24.314172787868213', '154.0', '15.0', '2020-09-10 17:14:45');
+INSERT INTO `t_order_position` VALUES (16999, 2, 2733, 73, '109.4197274743812', '24.31374000638901', '132.0', '15.0', '2020-09-10 17:14:55');
+INSERT INTO `t_order_position` VALUES (17000, 2, 2733, 73, '109.41936084593371', '24.31289046693567', '118.0', '15.0', '2020-09-10 17:15:05');
+INSERT INTO `t_order_position` VALUES (17001, 2, 2733, 73, '109.4192608345257', '24.31230736312544', '128.0', '15.0', '2020-09-10 17:15:15');
+INSERT INTO `t_order_position` VALUES (17002, 2, 2733, 73, '109.41901086208004', '24.311840972690153', '142.0', '15.0', '2020-09-10 17:15:28');
+INSERT INTO `t_order_position` VALUES (17003, 2, 2733, 73, '109.418310971865', '24.31137481374329', '146.0', '15.0', '2020-09-10 17:15:35');
+INSERT INTO `t_order_position` VALUES (17004, 2, 2733, 73, '109.41789435753677', '24.311075112188252', '146.0', '15.0', '2020-09-10 17:15:40');
+INSERT INTO `t_order_position` VALUES (17005, 2, 2733, 73, '109.4172277542953', '24.310558917872193', '146.0', '15.0', '2020-09-10 17:15:50');
+INSERT INTO `t_order_position` VALUES (17006, 2, 2733, 73, '109.41669445639809', '24.310159277461267', '150.0', '15.0', '2020-09-10 17:16:00');
+INSERT INTO `t_order_position` VALUES (17007, 2, 2733, 73, '109.4159611543307', '24.309709721105733', '152.0', '15.0', '2020-09-10 17:16:10');
+INSERT INTO `t_order_position` VALUES (17008, 2, 2733, 73, '109.41517782931356', '24.30931014413974', '164.0', '15.0', '2020-09-10 17:16:20');
+INSERT INTO `t_order_position` VALUES (17009, 2, 2733, 73, '109.41446116382507', '24.309293735321102', '118.0', '15.0', '2020-09-10 17:16:30');
+INSERT INTO `t_order_position` VALUES (17010, 2, 2733, 73, '109.41391115292704', '24.30937722197135', '110.0', '15.0', '2020-09-10 17:16:41');
+INSERT INTO `t_order_position` VALUES (17011, 2, 2733, 73, '109.41327778167364', '24.309360748896136', '108.0', '12.0', '2020-09-10 17:17:01');
+INSERT INTO `t_order_position` VALUES (17012, 2, 2733, 73, '109.41262771605874', '24.30924429215617', '106.0', '14.0', '2020-09-10 17:17:11');
+INSERT INTO `t_order_position` VALUES (17013, 2, 2733, 73, '109.41159424983901', '24.309311177785418', '106.0', '15.0', '2020-09-10 17:17:21');
+INSERT INTO `t_order_position` VALUES (17014, 2, 2733, 73, '109.41086077932924', '24.309178025243305', '120.0', '14.0', '2020-09-10 17:17:32');
+INSERT INTO `t_order_position` VALUES (17015, 2, 2733, 73, '109.41014396436739', '24.30924478618408', '114.0', '12.0', '2020-09-10 17:17:41');
+INSERT INTO `t_order_position` VALUES (17016, 2, 2733, 73, '109.40926041035988', '24.309278218988528', '110.0', '10.0', '2020-09-10 17:17:51');
+INSERT INTO `t_order_position` VALUES (17017, 2, 2733, 73, '109.40826011570714', '24.309344947818865', '120.0', '14.0', '2020-09-10 17:18:01');
+INSERT INTO `t_order_position` VALUES (17018, 2, 2733, 73, '109.40767658937266', '24.309411621985987', '130.0', '15.0', '2020-09-10 17:18:06');
+INSERT INTO `t_order_position` VALUES (17019, 2, 2733, 73, '109.40685964146614', '24.309794853494704', '136.0', '15.0', '2020-09-10 17:18:16');
+INSERT INTO `t_order_position` VALUES (17020, 2, 2733, 73, '109.4061260388697', '24.31032801377752', '140.0', '14.0', '2020-09-10 17:18:26');
+INSERT INTO `t_order_position` VALUES (17021, 2, 2733, 73, '109.40559250861699', '24.310977794735', '150.0', '14.0', '2020-09-10 17:18:38');
+INSERT INTO `t_order_position` VALUES (17022, 2, 2733, 73, '109.40529240161409', '24.311510949364795', '34.0', '14.0', '2020-09-10 17:18:46');
+INSERT INTO `t_order_position` VALUES (17023, 2, 2736, 906, '104.055825', '30.585663', '0.0', '0.0', '2020-09-10 18:29:03');
+INSERT INTO `t_order_position` VALUES (17024, 2, 2737, 906, '104.055825', '30.585663', '0.0', '0.0', '2020-09-10 18:30:48');
+INSERT INTO `t_order_position` VALUES (17025, 2, 2738, 8, '109.41218086343017', '24.363679186188183', '0.0', '15.0', '2020-09-10 18:58:52');
+INSERT INTO `t_order_position` VALUES (17026, 2, 2738, 8, '109.41201414613579', '24.363196015700556', '124.0', '15.0', '2020-09-10 19:00:23');
+INSERT INTO `t_order_position` VALUES (17027, 2, 2738, 8, '109.41183081518028', '24.36367926544698', '2.0', '15.0', '2020-09-10 19:00:38');
+INSERT INTO `t_order_position` VALUES (17028, 2, 2738, 8, '109.41183084457327', '24.364179136944326', '164.0', '15.0', '2020-09-10 19:00:48');
+INSERT INTO `t_order_position` VALUES (17029, 2, 2738, 8, '109.41139739699607', '24.363396095571318', '132.0', '15.0', '2020-09-10 19:01:08');
+INSERT INTO `t_order_position` VALUES (17030, 2, 2738, 8, '109.41116399759692', '24.36296291916478', '132.0', '15.0', '2020-09-10 19:01:13');
+INSERT INTO `t_order_position` VALUES (17031, 2, 2738, 8, '109.41094726435952', '24.36251307514438', '126.0', '15.0', '2020-09-10 19:01:18');
+INSERT INTO `t_order_position` VALUES (17032, 2, 2738, 8, '109.41074719684434', '24.36202990165682', '136.0', '15.0', '2020-09-10 19:01:23');
+INSERT INTO `t_order_position` VALUES (17033, 2, 2738, 8, '109.40993032246428', '24.361563479991016', '112.0', '15.0', '2020-09-10 19:01:33');
+INSERT INTO `t_order_position` VALUES (17034, 2, 2738, 8, '109.40934684109857', '24.361580212921858', '114.0', '15.0', '2020-09-10 19:01:38');
+INSERT INTO `t_order_position` VALUES (17035, 2, 2738, 8, '109.40878001650083', '24.36163025408626', '110.0', '15.0', '2020-09-10 19:01:43');
+INSERT INTO `t_order_position` VALUES (17036, 2, 2738, 8, '109.40821317311432', '24.361630293986536', '114.0', '15.0', '2020-09-10 19:01:48');
+INSERT INTO `t_order_position` VALUES (17037, 2, 2738, 8, '109.40762963938388', '24.361596995545515', '110.0', '15.0', '2020-09-10 19:01:53');
+INSERT INTO `t_order_position` VALUES (17038, 2, 2738, 8, '109.40701274671771', '24.36163033170506', '112.0', '15.0', '2020-09-10 19:01:58');
+INSERT INTO `t_order_position` VALUES (17039, 2, 2738, 8, '109.406479200218', '24.36161366578499', '110.0', '15.0', '2020-09-10 19:02:03');
+INSERT INTO `t_order_position` VALUES (17040, 2, 2738, 8, '109.40596231864828', '24.36168029983817', '0.0', '13.0', '2020-09-10 19:02:23');
+INSERT INTO `t_order_position` VALUES (17041, 2, 2738, 8, '109.40651253840491', '24.361463705227663', '56.0', '15.0', '2020-09-10 19:04:29');
+INSERT INTO `t_order_position` VALUES (17042, 2, 2738, 8, '109.407462902172', '24.361413714452855', '60.0', '15.0', '2020-09-10 19:04:39');
+INSERT INTO `t_order_position` VALUES (17043, 2, 2738, 8, '109.40812979874312', '24.361397025768298', '58.0', '15.0', '2020-09-10 19:04:44');
+INSERT INTO `t_order_position` VALUES (17044, 2, 2738, 8, '109.40878000376524', '24.361413643544935', '60.0', '15.0', '2020-09-10 19:04:49');
+INSERT INTO `t_order_position` VALUES (17045, 2, 2738, 8, '109.40938017360371', '24.361413585805696', '58.0', '15.0', '2020-09-10 19:04:54');
+INSERT INTO `t_order_position` VALUES (17046, 2, 2738, 8, '109.41014703038813', '24.361396826437982', '60.0', '15.0', '2020-09-10 19:04:59');
+INSERT INTO `t_order_position` VALUES (17047, 2, 2738, 8, '109.4108138395364', '24.361396720828218', '62.0', '15.0', '2020-09-10 19:05:05');
+INSERT INTO `t_order_position` VALUES (17048, 2, 2738, 8, '109.41151396341316', '24.36136326392697', '62.0', '15.0', '2020-09-10 19:05:09');
+INSERT INTO `t_order_position` VALUES (17049, 2, 2738, 8, '109.41228073794674', '24.361329769329874', '60.0', '15.0', '2020-09-10 19:05:14');
+INSERT INTO `t_order_position` VALUES (17050, 2, 2738, 8, '109.41301414791413', '24.361312919860108', '62.0', '15.0', '2020-09-10 19:05:20');
+INSERT INTO `t_order_position` VALUES (17051, 2, 2738, 8, '109.41373086446573', '24.361312713702915', '64.0', '15.0', '2020-09-10 19:05:24');
+INSERT INTO `t_order_position` VALUES (17052, 2, 2738, 8, '109.41433088254327', '24.3612458739936', '62.0', '15.0', '2020-09-10 19:05:29');
+INSERT INTO `t_order_position` VALUES (17053, 2, 2738, 8, '109.41491421800984', '24.361212348754872', '60.0', '15.0', '2020-09-10 19:05:34');
+INSERT INTO `t_order_position` VALUES (17054, 2, 2738, 8, '109.41571419390877', '24.36117872413515', '62.0', '15.0', '2020-09-10 19:05:45');
+INSERT INTO `t_order_position` VALUES (17055, 2, 2738, 8, '109.41629748496183', '24.36107851320498', '60.0', '15.0', '2020-09-10 19:05:55');
+INSERT INTO `t_order_position` VALUES (17056, 2, 2738, 8, '109.41708073957602', '24.361028183973534', '62.0', '15.0', '2020-09-10 19:06:10');
+INSERT INTO `t_order_position` VALUES (17057, 2, 2738, 8, '109.417780646732', '24.361044517103682', '60.0', '15.0', '2020-09-10 19:06:20');
+INSERT INTO `t_order_position` VALUES (17058, 2, 2738, 8, '109.41843053655644', '24.361027529266277', '60.0', '15.0', '2020-09-10 19:06:30');
+INSERT INTO `t_order_position` VALUES (17059, 2, 2738, 8, '109.41909706913906', '24.36102717561479', '58.0', '15.0', '2020-09-10 19:06:40');
+INSERT INTO `t_order_position` VALUES (17060, 2, 2738, 8, '109.41974691784647', '24.361043473828264', '60.0', '15.0', '2020-09-10 19:06:50');
+INSERT INTO `t_order_position` VALUES (17061, 2, 2738, 8, '109.4206633316641', '24.361009603209578', '60.0', '15.0', '2020-09-10 19:07:00');
+INSERT INTO `t_order_position` VALUES (17062, 2, 2738, 8, '109.42117983632352', '24.360975954102642', '62.0', '15.0', '2020-09-10 19:07:05');
+INSERT INTO `t_order_position` VALUES (17063, 2, 2738, 8, '109.42172965020957', '24.36095893316972', '60.0', '15.0', '2020-09-10 19:07:10');
+INSERT INTO `t_order_position` VALUES (17064, 2, 2738, 8, '109.4222961102161', '24.360958549438706', '62.0', '15.0', '2020-09-10 19:07:15');
+INSERT INTO `t_order_position` VALUES (17065, 2, 2738, 8, '109.42289587184189', '24.360924802670578', '62.0', '15.0', '2020-09-10 19:07:20');
+INSERT INTO `t_order_position` VALUES (17066, 2, 2738, 8, '109.42347895700358', '24.36090771441498', '62.0', '15.0', '2020-09-10 19:07:25');
+INSERT INTO `t_order_position` VALUES (17067, 2, 2738, 8, '109.42407868394213', '24.360890598004147', '60.0', '15.0', '2020-09-10 19:07:30');
+INSERT INTO `t_order_position` VALUES (17068, 2, 2738, 8, '109.42466173347445', '24.36085681633699', '62.0', '15.0', '2020-09-10 19:07:35');
+INSERT INTO `t_order_position` VALUES (17069, 2, 2738, 8, '109.42526142480416', '24.360839667996093', '62.0', '15.0', '2020-09-10 19:07:40');
+INSERT INTO `t_order_position` VALUES (17070, 2, 2738, 8, '109.42586109712677', '24.360805841151063', '62.0', '15.0', '2020-09-10 19:07:45');
+INSERT INTO `t_order_position` VALUES (17071, 2, 2738, 8, '109.42687716785066', '24.36075496639729', '60.0', '15.0', '2020-09-10 19:07:56');
+INSERT INTO `t_order_position` VALUES (17072, 2, 2738, 8, '109.42751010470934', '24.36073772765743', '64.0', '15.0', '2020-09-10 19:08:01');
+INSERT INTO `t_order_position` VALUES (17073, 2, 2738, 8, '109.42814302158303', '24.360720471000658', '60.0', '15.0', '2020-09-10 19:08:06');
+INSERT INTO `t_order_position` VALUES (17074, 2, 2738, 8, '109.42875926257456', '24.360686550460485', '62.0', '15.0', '2020-09-10 19:08:11');
+INSERT INTO `t_order_position` VALUES (17075, 2, 2738, 8, '109.42929221226542', '24.36065269679375', '62.0', '15.0', '2020-09-10 19:08:16');
+INSERT INTO `t_order_position` VALUES (17076, 2, 2738, 8, '109.42987511003163', '24.360618779065423', '64.0', '15.0', '2020-09-10 19:08:21');
+INSERT INTO `t_order_position` VALUES (17077, 2, 2738, 8, '109.43072444220316', '24.36051791388189', '62.0', '15.0', '2020-09-10 19:08:31');
+INSERT INTO `t_order_position` VALUES (17078, 2, 2738, 8, '109.43125734199282', '24.360517338406435', '0.0', '15.0', '2020-09-10 19:08:51');
+INSERT INTO `t_order_position` VALUES (17079, 2, 2738, 8, '109.43222318720011', '24.360516263396892', '64.0', '15.0', '2020-09-10 19:09:51');
+INSERT INTO `t_order_position` VALUES (17080, 2, 2738, 8, '109.43293921331626', '24.360482115228564', '62.0', '15.0', '2020-09-10 19:09:56');
+INSERT INTO `t_order_position` VALUES (17081, 2, 2738, 8, '109.43365521433341', '24.360447944570627', '62.0', '15.0', '2020-09-10 19:10:02');
+INSERT INTO `t_order_position` VALUES (17082, 2, 2738, 8, '109.43462094324009', '24.360396780976163', '60.0', '15.0', '2020-09-10 19:10:06');
+INSERT INTO `t_order_position` VALUES (17083, 2, 2738, 8, '109.43545343139184', '24.360345747094915', '64.0', '15.0', '2020-09-10 19:10:11');
+INSERT INTO `t_order_position` VALUES (17084, 2, 2738, 8, '109.43613604613267', '24.36029487924556', '60.0', '15.0', '2020-09-10 19:10:17');
+INSERT INTO `t_order_position` VALUES (17085, 2, 2738, 8, '109.43676867265025', '24.35989414897894', '114.0', '15.0', '2020-09-10 19:10:28');
+INSERT INTO `t_order_position` VALUES (17086, 2, 2738, 8, '109.43678528977493', '24.35936093245102', '110.0', '15.0', '2020-09-10 19:10:32');
+INSERT INTO `t_order_position` VALUES (17087, 2, 2738, 8, '109.43685184714965', '24.35874433791803', '110.0', '15.0', '2020-09-10 19:10:42');
+INSERT INTO `t_order_position` VALUES (17088, 2, 2738, 8, '109.43688511353142', '24.358227761887754', '106.0', '15.0', '2020-09-10 19:11:37');
+INSERT INTO `t_order_position` VALUES (17089, 2, 2738, 8, '109.43703487761505', '24.35702787575472', '114.0', '15.0', '2020-09-10 19:11:47');
+INSERT INTO `t_order_position` VALUES (17090, 2, 2738, 8, '109.4371180676838', '24.356161325138363', '114.0', '15.0', '2020-09-10 19:11:53');
+INSERT INTO `t_order_position` VALUES (17091, 2, 2738, 8, '109.43720126133422', '24.355361423904093', '110.0', '15.0', '2020-09-10 19:11:58');
+INSERT INTO `t_order_position` VALUES (17092, 2, 2738, 8, '109.43728446736841', '24.354778132207677', '114.0', '15.0', '2020-09-10 19:12:02');
+INSERT INTO `t_order_position` VALUES (17093, 2, 2738, 8, '109.43735103097971', '24.35429483659179', '112.0', '15.0', '2020-09-10 19:12:32');
+INSERT INTO `t_order_position` VALUES (17094, 2, 2738, 8, '109.43745086279749', '24.353344952974226', '114.0', '15.0', '2020-09-10 19:12:42');
+INSERT INTO `t_order_position` VALUES (17095, 2, 2738, 8, '109.43750077608333', '24.352828355714394', '112.0', '15.0', '2020-09-10 19:12:48');
+INSERT INTO `t_order_position` VALUES (17096, 2, 2738, 8, '109.43756733998588', '24.35236172248601', '114.0', '15.0', '2020-09-10 19:12:52');
+INSERT INTO `t_order_position` VALUES (17097, 2, 2738, 8, '109.43763389780956', '24.351795115959032', '114.0', '15.0', '2020-09-10 19:12:58');
+INSERT INTO `t_order_position` VALUES (17098, 2, 2738, 8, '109.43773373317167', '24.35092854410888', '114.0', '15.0', '2020-09-10 19:13:03');
+INSERT INTO `t_order_position` VALUES (17099, 2, 2738, 8, '109.437783628183', '24.350112027802783', '114.0', '15.0', '2020-09-10 19:13:08');
+INSERT INTO `t_order_position` VALUES (17100, 2, 2738, 8, '109.4378834687015', '24.34934542959632', '114.0', '15.0', '2020-09-10 19:13:13');
+INSERT INTO `t_order_position` VALUES (17101, 2, 2738, 8, '109.43798331559096', '24.348695466643285', '114.0', '15.0', '2020-09-10 19:13:18');
+INSERT INTO `t_order_position` VALUES (17102, 2, 2738, 8, '109.4380665028798', '24.347845580791876', '114.0', '15.0', '2020-09-10 19:15:03');
+INSERT INTO `t_order_position` VALUES (17103, 2, 2738, 8, '109.43813304934537', '24.347112353444444', '110.0', '15.0', '2020-09-10 19:15:08');
+INSERT INTO `t_order_position` VALUES (17104, 2, 2738, 8, '109.43818293950031', '24.346229190297315', '114.0', '15.0', '2020-09-10 19:15:13');
+INSERT INTO `t_order_position` VALUES (17105, 2, 2738, 8, '109.43828277812524', '24.34546259283302', '114.0', '15.0', '2020-09-10 19:15:18');
+INSERT INTO `t_order_position` VALUES (17106, 2, 2738, 8, '109.43833269041583', '24.344962659272184', '114.0', '15.0', '2020-09-10 19:15:23');
+INSERT INTO `t_order_position` VALUES (17107, 2, 2738, 8, '109.43841589294891', '24.344396030665003', '112.0', '15.0', '2020-09-10 19:15:28');
+INSERT INTO `t_order_position` VALUES (17108, 2, 2738, 8, '109.43849908048742', '24.343579470472875', '114.0', '15.0', '2020-09-10 19:15:33');
+INSERT INTO `t_order_position` VALUES (17109, 2, 2738, 8, '109.4385822725871', '24.342846220985322', '112.0', '15.0', '2020-09-10 19:15:39');
+INSERT INTO `t_order_position` VALUES (17110, 2, 2738, 8, '109.43863218221443', '24.342312963683955', '114.0', '15.0', '2020-09-10 19:15:44');
+INSERT INTO `t_order_position` VALUES (17111, 2, 2738, 8, '109.43871536401322', '24.341413093744244', '114.0', '15.0', '2020-09-10 19:16:59');
+INSERT INTO `t_order_position` VALUES (17112, 2, 2738, 8, '109.43879856308354', '24.340813141288347', '114.0', '15.0', '2020-09-10 19:17:04');
+INSERT INTO `t_order_position` VALUES (17113, 2, 2738, 8, '109.43886510528813', '24.340046591959588', '112.0', '15.0', '2020-09-10 19:17:09');
+INSERT INTO `t_order_position` VALUES (17114, 2, 2738, 8, '109.4389649358011', '24.339196685233926', '112.0', '15.0', '2020-09-10 19:17:14');
+INSERT INTO `t_order_position` VALUES (17115, 2, 2738, 8, '109.43906476975415', '24.338413426794382', '114.0', '15.0', '2020-09-10 19:17:19');
+INSERT INTO `t_order_position` VALUES (17116, 2, 2738, 8, '109.4391146674907', '24.33769688812138', '112.0', '15.0', '2020-09-10 19:17:29');
+INSERT INTO `t_order_position` VALUES (17117, 2, 2738, 8, '109.43923115015849', '24.336963592102308', '114.0', '15.0', '2020-09-10 19:17:39');
+INSERT INTO `t_order_position` VALUES (17118, 2, 2738, 8, '109.4392976880733', '24.336147057923124', '114.0', '15.0', '2020-09-10 19:17:49');
+INSERT INTO `t_order_position` VALUES (17119, 2, 2738, 8, '109.43936424142099', '24.335597115972124', '110.0', '15.0', '2020-09-10 19:17:59');
+INSERT INTO `t_order_position` VALUES (17120, 2, 2738, 8, '109.4395140074412', '24.33473047584445', '114.0', '15.0', '2020-09-10 19:18:09');
+INSERT INTO `t_order_position` VALUES (17121, 2, 2738, 8, '109.43954727158314', '24.334247230146914', '110.0', '15.0', '2020-09-10 19:18:15');
+INSERT INTO `t_order_position` VALUES (17122, 2, 2738, 8, '109.4396138153516', '24.333547330615456', '114.0', '15.0', '2020-09-10 19:18:25');
+INSERT INTO `t_order_position` VALUES (17123, 2, 2738, 8, '109.4396969942811', '24.33266412550901', '110.0', '15.0', '2020-09-10 19:18:35');
+INSERT INTO `t_order_position` VALUES (17124, 2, 2738, 8, '109.4398134747341', '24.331947491515294', '114.0', '15.0', '2020-09-10 19:18:45');
+INSERT INTO `t_order_position` VALUES (17125, 2, 2738, 8, '109.4398800294006', '24.331447535771318', '112.0', '15.0', '2020-09-10 19:18:55');
+INSERT INTO `t_order_position` VALUES (17126, 2, 2738, 8, '109.43999652253657', '24.33096416860907', '0.0', '15.0', '2020-09-10 19:20:20');
+INSERT INTO `t_order_position` VALUES (17127, 2, 2738, 8, '109.44029611597635', '24.330447206417073', '62.0', '15.0', '2020-09-10 19:21:26');
+INSERT INTO `t_order_position` VALUES (17128, 2, 2738, 8, '109.44102851673763', '24.33052941882511', '60.0', '15.0', '2020-09-10 19:21:51');
+INSERT INTO `t_order_position` VALUES (17129, 2, 2738, 8, '109.44172759756185', '24.33051168864291', '58.0', '15.0', '2020-09-10 19:22:01');
+INSERT INTO `t_order_position` VALUES (17130, 2, 2738, 8, '109.44255980725742', '24.330493728519468', '64.0', '15.0', '2020-09-10 19:22:11');
+INSERT INTO `t_order_position` VALUES (17131, 2, 2738, 8, '109.44309240042932', '24.330409573030845', '64.0', '15.0', '2020-09-10 19:22:21');
+INSERT INTO `t_order_position` VALUES (17132, 2, 2738, 8, '109.4438912652983', '24.33027498701107', '62.0', '15.0', '2020-09-10 19:22:42');
+INSERT INTO `t_order_position` VALUES (17133, 2, 2738, 8, '109.44487316042334', '24.33005675997451', '72.0', '15.0', '2020-09-10 19:22:51');
+INSERT INTO `t_order_position` VALUES (17134, 2, 2738, 8, '109.44538904595198', '24.329805963274104', '82.0', '15.0', '2020-09-10 19:22:57');
+INSERT INTO `t_order_position` VALUES (17135, 2, 2738, 8, '109.44595482596341', '24.329255155890877', '96.0', '15.0', '2020-09-10 19:23:07');
+INSERT INTO `t_order_position` VALUES (17136, 2, 2738, 8, '109.446237686675', '24.32857153082442', '114.0', '15.0', '2020-09-10 19:23:27');
+INSERT INTO `t_order_position` VALUES (17137, 2, 2738, 8, '109.44623765445941', '24.328021688192123', '112.0', '15.0', '2020-09-10 19:23:32');
+INSERT INTO `t_order_position` VALUES (17138, 2, 2738, 8, '109.44625425944785', '24.327405169509024', '112.0', '15.0', '2020-09-10 19:23:37');
+INSERT INTO `t_order_position` VALUES (17139, 2, 2738, 8, '109.44623758124251', '24.326772046730206', '112.0', '15.0', '2020-09-10 19:23:42');
+INSERT INTO `t_order_position` VALUES (17140, 2, 2738, 8, '109.44623755000347', '24.326238866746202', '114.0', '15.0', '2020-09-10 19:23:47');
+INSERT INTO `t_order_position` VALUES (17141, 2, 2738, 8, '109.44623750314508', '24.32543909718775', '112.0', '15.0', '2020-09-10 19:23:57');
+INSERT INTO `t_order_position` VALUES (17142, 2, 2738, 8, '109.44627075118406', '24.324855874705282', '112.0', '15.0', '2020-09-10 19:24:12');
+INSERT INTO `t_order_position` VALUES (17143, 2, 2738, 8, '109.44630398745988', '24.324072710314816', '114.0', '15.0', '2020-09-10 19:24:22');
+INSERT INTO `t_order_position` VALUES (17144, 2, 2738, 8, '109.44645371750995', '24.323405977302848', '74.0', '15.0', '2020-09-10 19:24:32');
+INSERT INTO `t_order_position` VALUES (17145, 2, 2738, 8, '109.44698621884557', '24.32335506200499', '56.0', '15.0', '2020-09-10 19:24:42');
+INSERT INTO `t_order_position` VALUES (17146, 2, 2738, 8, '109.4476851165097', '24.32343713377566', '52.0', '15.0', '2020-09-10 19:24:52');
+INSERT INTO `t_order_position` VALUES (17147, 2, 2738, 8, '109.448200955075', '24.32348619362793', '50.0', '15.0', '2020-09-10 19:25:02');
+INSERT INTO `t_order_position` VALUES (17148, 2, 2738, 8, '109.44868347020136', '24.322968801479412', '110.0', '15.0', '2020-09-10 19:25:32');
+INSERT INTO `t_order_position` VALUES (17149, 2, 2738, 8, '109.44873335591205', '24.322418870181785', '114.0', '15.0', '2020-09-10 19:25:43');
+INSERT INTO `t_order_position` VALUES (17150, 2, 2738, 8, '109.448766601285', '24.32185230760826', '120.0', '15.0', '2020-09-10 19:25:58');
+INSERT INTO `t_order_position` VALUES (17151, 2, 2738, 8, '109.44868336385402', '24.321152663446234', '112.0', '15.0', '2020-09-10 19:26:13');
+INSERT INTO `t_order_position` VALUES (17152, 2, 2738, 8, '109.44873324761501', '24.320569409326975', '114.0', '15.0', '2020-09-10 19:26:23');
+INSERT INTO `t_order_position` VALUES (17153, 2, 2738, 8, '109.44878313517094', '24.320052802535574', '114.0', '15.0', '2020-09-10 19:26:33');
+INSERT INTO `t_order_position` VALUES (17154, 2, 2738, 8, '109.4487498029892', '24.31913646514852', '114.0', '15.0', '2020-09-10 19:26:43');
+INSERT INTO `t_order_position` VALUES (17155, 2, 2738, 8, '109.44878304638904', '24.318536580446654', '112.0', '15.0', '2020-09-10 19:26:53');
+INSERT INTO `t_order_position` VALUES (17156, 2, 2738, 8, '109.44883293091183', '24.31796998907344', '114.0', '15.0', '2020-09-10 19:27:03');
+INSERT INTO `t_order_position` VALUES (17157, 2, 2738, 8, '109.44891609951105', '24.31750330743286', '82.0', '15.0', '2020-09-10 19:28:09');
+INSERT INTO `t_order_position` VALUES (17158, 2, 2738, 8, '109.44959828885251', '24.31740207770128', '58.0', '15.0', '2020-09-10 19:28:24');
+INSERT INTO `t_order_position` VALUES (17159, 2, 2738, 8, '109.45016399646856', '24.317401019892387', '74.0', '15.0', '2020-09-10 19:28:34');
+INSERT INTO `t_order_position` VALUES (17160, 2, 2738, 8, '109.45071305250997', '24.317399981479724', '60.0', '15.0', '2020-09-10 19:30:09');
+INSERT INTO `t_order_position` VALUES (17161, 2, 2738, 8, '109.45129537064909', '24.317398867605863', '56.0', '15.0', '2020-09-10 19:30:24');
+INSERT INTO `t_order_position` VALUES (17162, 2, 2738, 8, '109.4505300430616', '24.31753362295765', '114.0', '15.0', '2020-09-10 19:30:55');
+INSERT INTO `t_order_position` VALUES (17163, 2, 2738, 8, '109.44999762208116', '24.31755128810942', '112.0', '15.0', '2020-09-10 19:31:05');
+INSERT INTO `t_order_position` VALUES (17164, 2, 2738, 8, '109.4494651879548', '24.317552280629926', '110.0', '15.0', '2020-09-10 19:31:10');
+INSERT INTO `t_order_position` VALUES (17165, 2, 2738, 8, '109.44889947205895', '24.317703279033974', '166.0', '15.0', '2020-09-10 19:31:20');
+INSERT INTO `t_order_position` VALUES (17166, 2, 2738, 8, '109.44889949937551', '24.31816980842029', '164.0', '15.0', '2020-09-10 19:31:30');
+INSERT INTO `t_order_position` VALUES (17167, 2, 2738, 8, '109.44886625906986', '24.31881967842808', '0.0', '15.0', '2020-09-10 19:31:40');
+INSERT INTO `t_order_position` VALUES (17168, 2, 2738, 8, '109.44889956669162', '24.319319470836252', '166.0', '15.0', '2020-09-10 19:31:45');
+INSERT INTO `t_order_position` VALUES (17169, 2, 2738, 8, '109.44894951632627', '24.319869218250496', '164.0', '15.0', '2020-09-10 19:31:50');
+INSERT INTO `t_order_position` VALUES (17170, 2, 2738, 8, '109.44884972621668', '24.32063584363948', '0.0', '15.0', '2020-09-10 19:32:00');
+INSERT INTO `t_order_position` VALUES (17171, 2, 2738, 8, '109.44883312701066', '24.32131900799948', '164.0', '15.0', '2020-09-10 19:32:10');
+INSERT INTO `t_order_position` VALUES (17172, 2, 2738, 8, '109.4489496353491', '24.321901958053306', '2.0', '15.0', '2020-09-10 19:32:25');
+INSERT INTO `t_order_position` VALUES (17173, 2, 2738, 8, '109.44881654925702', '24.32236873271546', '164.0', '15.0', '2020-09-10 19:32:40');
+INSERT INTO `t_order_position` VALUES (17174, 2, 2738, 8, '109.44884985695036', '24.32286852655993', '0.0', '15.0', '2020-09-10 19:33:51');
+INSERT INTO `t_order_position` VALUES (17175, 2, 2738, 8, '109.44888317240019', '24.32350161523242', '54.0', '15.0', '2020-09-10 19:37:02');
+INSERT INTO `t_order_position` VALUES (17176, 2, 2738, 8, '109.44984823320908', '24.32364978644834', '54.0', '15.0', '2020-09-10 19:37:12');
+INSERT INTO `t_order_position` VALUES (17177, 2, 2738, 8, '109.45043057473733', '24.32368201544458', '54.0', '15.0', '2020-09-10 19:37:17');
+INSERT INTO `t_order_position` VALUES (17178, 2, 2738, 8, '109.45107945814773', '24.32381407512952', '122.0', '15.0', '2020-09-10 19:37:27');
+INSERT INTO `t_order_position` VALUES (17179, 2, 2738, 8, '109.4503473910855', '24.32379880549196', '110.0', '15.0', '2020-09-10 19:37:37');
+INSERT INTO `t_order_position` VALUES (17180, 2, 2738, 8, '109.44979832453878', '24.32376651254021', '110.0', '15.0', '2020-09-10 19:37:42');
+INSERT INTO `t_order_position` VALUES (17181, 2, 2738, 8, '109.44883326750174', '24.323718310475005', '108.0', '15.0', '2020-09-10 19:37:52');
+INSERT INTO `t_order_position` VALUES (17182, 2, 2738, 8, '109.4481843261315', '24.32366950385137', '108.0', '15.0', '2020-09-10 19:37:57');
+INSERT INTO `t_order_position` VALUES (17183, 2, 2738, 8, '109.44751872615676', '24.323620710336556', '108.0', '15.0', '2020-09-10 19:38:02');
+INSERT INTO `t_order_position` VALUES (17184, 2, 2738, 8, '109.44696959096652', '24.323571695085544', '108.0', '15.0', '2020-09-10 19:38:07');
+INSERT INTO `t_order_position` VALUES (17185, 2, 2738, 8, '109.44613754298722', '24.323506495037115', '108.0', '15.0', '2020-09-10 19:39:28');
+INSERT INTO `t_order_position` VALUES (17186, 2, 2738, 8, '109.44510576240985', '24.3234582657295', '106.0', '15.0', '2020-09-10 19:39:38');
+INSERT INTO `t_order_position` VALUES (17187, 2, 2738, 8, '109.44455656794744', '24.32340919748292', '106.0', '15.0', '2020-09-10 19:39:43');
+INSERT INTO `t_order_position` VALUES (17188, 2, 2738, 8, '109.44395743138152', '24.32336019867002', '108.0', '15.0', '2020-09-10 19:39:48');
+INSERT INTO `t_order_position` VALUES (17189, 2, 2738, 8, '109.44334163516311', '24.323311212011856', '110.0', '15.0', '2020-09-10 19:39:53');
+INSERT INTO `t_order_position` VALUES (17190, 2, 2738, 8, '109.4425760271487', '24.323262446627773', '108.0', '15.0', '2020-09-10 19:39:58');
+INSERT INTO `t_order_position` VALUES (17191, 2, 2738, 8, '109.44189361332589', '24.323196866411024', '108.0', '15.0', '2020-09-10 19:40:03');
+INSERT INTO `t_order_position` VALUES (17192, 2, 2738, 8, '109.44114459904793', '24.32314802988991', '110.0', '15.0', '2020-09-10 19:40:08');
+INSERT INTO `t_order_position` VALUES (17193, 2, 2738, 8, '109.44041220515324', '24.32311580702832', '110.0', '14.0', '2020-09-10 19:40:13');
+INSERT INTO `t_order_position` VALUES (17194, 2, 2738, 8, '109.43957990812525', '24.323067045114612', '110.0', '15.0', '2020-09-10 19:40:18');
+INSERT INTO `t_order_position` VALUES (17195, 2, 2738, 8, '109.43888075291949', '24.323018064835907', '108.0', '15.0', '2020-09-10 19:40:23');
+INSERT INTO `t_order_position` VALUES (17196, 2, 2738, 8, '109.43826480703459', '24.322902300401537', '108.0', '15.0', '2020-09-10 19:40:28');
+INSERT INTO `t_order_position` VALUES (17197, 2, 2738, 8, '109.43756560818402', '24.322853281041354', '108.0', '15.0', '2020-09-10 19:40:33');
+INSERT INTO `t_order_position` VALUES (17198, 2, 2738, 8, '109.43691633099026', '24.32280417394556', '110.0', '15.0', '2020-09-10 19:40:38');
+INSERT INTO `t_order_position` VALUES (17199, 2, 2738, 8, '109.4362503857157', '24.322771732386556', '110.0', '15.0', '2020-09-10 19:40:43');
+INSERT INTO `t_order_position` VALUES (17200, 2, 2738, 8, '109.43556777263593', '24.32278927850674', '114.0', '15.0', '2020-09-10 19:40:48');
+INSERT INTO `t_order_position` VALUES (17201, 2, 2738, 8, '109.4348684821965', '24.322723516148617', '108.0', '15.0', '2020-09-10 19:40:53');
+INSERT INTO `t_order_position` VALUES (17202, 2, 2738, 8, '109.43413586891769', '24.322691096788454', '106.0', '15.0', '2020-09-10 19:40:58');
+INSERT INTO `t_order_position` VALUES (17203, 2, 2738, 8, '109.43356973934578', '24.322641794053673', '104.0', '15.0', '2020-09-10 19:41:03');
+INSERT INTO `t_order_position` VALUES (17204, 2, 2738, 8, '109.43303689411738', '24.322542452885042', '106.0', '15.0', '2020-09-10 19:41:23');
+INSERT INTO `t_order_position` VALUES (17205, 2, 2738, 8, '109.43232086543722', '24.32247663224084', '108.0', '15.0', '2020-09-10 19:41:40');
+INSERT INTO `t_order_position` VALUES (17206, 2, 2738, 8, '109.43168807646829', '24.322444020351092', '108.0', '15.0', '2020-09-10 19:41:48');
+INSERT INTO `t_order_position` VALUES (17207, 2, 2738, 8, '109.43115518400204', '24.322377958741942', '108.0', '15.0', '2020-09-10 19:41:59');
+INSERT INTO `t_order_position` VALUES (17208, 2, 2738, 8, '109.43063893193046', '24.32232852868444', '104.0', '15.0', '2020-09-10 19:42:08');
+INSERT INTO `t_order_position` VALUES (17209, 2, 2738, 8, '109.42973962485188', '24.322279482500942', '108.0', '15.0', '2020-09-10 19:42:19');
+INSERT INTO `t_order_position` VALUES (17210, 2, 2738, 8, '109.42915671722498', '24.32221342482998', '106.0', '15.0', '2020-09-10 19:42:24');
+INSERT INTO `t_order_position` VALUES (17211, 2, 2738, 8, '109.42855713858712', '24.322164030046235', '108.0', '15.0', '2020-09-10 19:42:29');
+INSERT INTO `t_order_position` VALUES (17212, 2, 2738, 8, '109.42800750986481', '24.322131233775984', '108.0', '15.0', '2020-09-10 19:42:34');
+INSERT INTO `t_order_position` VALUES (17213, 2, 2738, 8, '109.427441210048', '24.322098439374027', '108.0', '15.0', '2020-09-10 19:42:39');
+INSERT INTO `t_order_position` VALUES (17214, 2, 2738, 8, '109.42645847285175', '24.32199935279029', '106.0', '15.0', '2020-09-10 19:42:49');
+INSERT INTO `t_order_position` VALUES (17215, 2, 2738, 8, '109.4258754699158', '24.32193320966369', '108.0', '15.0', '2020-09-10 19:42:54');
+INSERT INTO `t_order_position` VALUES (17216, 2, 2738, 8, '109.4252091615497', '24.321883781686594', '108.0', '15.0', '2020-09-10 19:42:59');
+INSERT INTO `t_order_position` VALUES (17217, 2, 2738, 8, '109.42444288083814', '24.32185107446956', '108.0', '15.0', '2020-09-10 19:43:04');
+INSERT INTO `t_order_position` VALUES (17218, 2, 2738, 8, '109.4238598190017', '24.321784878520482', '108.0', '15.0', '2020-09-10 19:43:09');
+INSERT INTO `t_order_position` VALUES (17219, 2, 2738, 8, '109.42329340157234', '24.321751978639373', '108.0', '15.0', '2020-09-10 19:43:14');
+INSERT INTO `t_order_position` VALUES (17220, 2, 2738, 8, '109.42264366593555', '24.32168579963949', '108.0', '15.0', '2020-09-10 19:43:19');
+INSERT INTO `t_order_position` VALUES (17221, 2, 2738, 8, '109.42201057064496', '24.3216362521287', '108.0', '15.0', '2020-09-10 19:43:24');
+INSERT INTO `t_order_position` VALUES (17222, 2, 2738, 8, '109.42144409956036', '24.321586643187764', '106.0', '15.0', '2020-09-10 19:43:29');
+INSERT INTO `t_order_position` VALUES (17223, 2, 2738, 8, '109.42092759786244', '24.321553650210813', '108.0', '15.0', '2020-09-10 19:43:34');
+INSERT INTO `t_order_position` VALUES (17224, 2, 2738, 8, '109.42004451489352', '24.32148754035663', '108.0', '15.0', '2020-09-10 19:43:44');
+INSERT INTO `t_order_position` VALUES (17225, 2, 2738, 8, '109.41906141452628', '24.321421449907216', '110.0', '15.0', '2020-09-10 19:43:54');
+INSERT INTO `t_order_position` VALUES (17226, 2, 2738, 8, '109.41851152286304', '24.321371756868842', '110.0', '15.0', '2020-09-10 19:43:59');
+INSERT INTO `t_order_position` VALUES (17227, 2, 2738, 8, '109.41799494588396', '24.321355357287427', '108.0', '15.0', '2020-09-10 19:44:04');
+INSERT INTO `t_order_position` VALUES (17228, 2, 2738, 8, '109.41701174213983', '24.32125585224367', '110.0', '15.0', '2020-09-10 19:44:14');
+INSERT INTO `t_order_position` VALUES (17229, 2, 2738, 8, '109.41611181960698', '24.321189593122195', '108.0', '15.0', '2020-09-10 19:44:24');
+INSERT INTO `t_order_position` VALUES (17230, 2, 2738, 8, '109.41544518503866', '24.321156533462872', '110.0', '15.0', '2020-09-10 19:44:34');
+INSERT INTO `t_order_position` VALUES (17231, 2, 2738, 8, '109.41479519775275', '24.32117343335514', '116.0', '15.0', '2020-09-10 19:44:44');
+INSERT INTO `t_order_position` VALUES (17232, 2, 2738, 8, '109.4142118490814', '24.321040336413486', '132.0', '15.0', '2020-09-10 19:44:59');
+INSERT INTO `t_order_position` VALUES (17233, 2, 2738, 8, '109.4139284697117', '24.320423940253086', '130.0', '15.0', '2020-09-10 19:45:14');
+INSERT INTO `t_order_position` VALUES (17234, 2, 2738, 8, '109.41359509326549', '24.31997417360802', '106.0', '15.0', '2020-09-10 19:45:24');
+INSERT INTO `t_order_position` VALUES (17235, 2, 2738, 8, '109.41291170741863', '24.319957704812804', '110.0', '15.0', '2020-09-10 19:45:39');
+INSERT INTO `t_order_position` VALUES (17236, 2, 2738, 8, '109.41231164391868', '24.319974518807665', '110.0', '15.0', '2020-09-10 19:45:55');
+INSERT INTO `t_order_position` VALUES (17237, 2, 2738, 8, '109.41179490929844', '24.320007960544025', '114.0', '15.0', '2020-09-10 19:46:15');
+INSERT INTO `t_order_position` VALUES (17238, 2, 2738, 8, '109.41082808102831', '24.320091458539412', '112.0', '15.0', '2020-09-10 19:47:20');
+INSERT INTO `t_order_position` VALUES (17239, 2, 2738, 8, '109.41009458943273', '24.320074912376366', '114.0', '15.0', '2020-09-10 19:47:35');
+INSERT INTO `t_order_position` VALUES (17240, 2, 2738, 8, '109.40949444189765', '24.320091650983738', '124.0', '15.0', '2020-09-10 19:47:50');
+INSERT INTO `t_order_position` VALUES (17241, 2, 2738, 8, '109.40911103471716', '24.320608207314798', '0.0', '15.0', '2020-09-10 19:48:10');
+INSERT INTO `t_order_position` VALUES (17242, 2, 2738, 8, '109.40911107291535', '24.32125801758019', '0.0', '15.0', '2020-09-10 19:48:35');
+INSERT INTO `t_order_position` VALUES (17243, 2, 2738, 8, '109.40902774926758', '24.321824527092247', '164.0', '15.0', '2020-09-10 20:02:30');
+INSERT INTO `t_order_position` VALUES (17244, 2, 2738, 8, '109.408961097742', '24.32240769685445', '0.0', '15.0', '2020-09-10 20:02:46');
+INSERT INTO `t_order_position` VALUES (17245, 2, 2738, 8, '109.40899447005587', '24.322907548512813', '162.0', '15.0', '2020-09-10 20:02:56');
+INSERT INTO `t_order_position` VALUES (17246, 2, 2738, 8, '109.40886113032622', '24.323457400872037', '110.0', '15.0', '2020-09-10 20:03:11');
+INSERT INTO `t_order_position` VALUES (17247, 2, 2738, 8, '109.40894444976281', '24.32280758212516', '110.0', '15.0', '2020-09-10 20:03:21');
+INSERT INTO `t_order_position` VALUES (17248, 2, 2738, 8, '109.40901109840495', '24.32217442677715', '114.0', '15.0', '2020-09-10 20:03:31');
+INSERT INTO `t_order_position` VALUES (17249, 2, 2738, 8, '109.40907773115644', '24.32127468261845', '110.0', '15.0', '2020-09-10 20:03:41');
+INSERT INTO `t_order_position` VALUES (17250, 2, 2738, 8, '109.40919439132274', '24.320608199018636', '114.0', '15.0', '2020-09-10 20:03:51');
+INSERT INTO `t_order_position` VALUES (17251, 2, 2738, 8, '109.40922769469122', '24.319941723885858', '88.0', '15.0', '2020-09-10 20:04:16');
+INSERT INTO `t_order_position` VALUES (17252, 2, 2738, 8, '109.40979450173235', '24.319808364160895', '58.0', '15.0', '2020-09-10 20:04:26');
+INSERT INTO `t_order_position` VALUES (17253, 2, 2738, 8, '109.41041131357774', '24.319841600335003', '62.0', '15.0', '2020-09-10 20:04:31');
+INSERT INTO `t_order_position` VALUES (17254, 2, 2738, 8, '109.41107811091334', '24.319791501445234', '60.0', '15.0', '2020-09-10 20:04:36');
+INSERT INTO `t_order_position` VALUES (17255, 2, 2738, 8, '109.41182823872808', '24.319857997181824', '60.0', '15.0', '2020-09-10 20:04:41');
+INSERT INTO `t_order_position` VALUES (17256, 2, 2738, 8, '109.41239498140463', '24.31987452789958', '64.0', '15.0', '2020-09-10 20:04:46');
+INSERT INTO `t_order_position` VALUES (17257, 2, 2738, 8, '109.41302837669946', '24.31982437903847', '62.0', '15.0', '2020-09-10 20:04:56');
+INSERT INTO `t_order_position` VALUES (17258, 2, 2738, 8, '109.41377843841175', '24.320007441844407', '36.0', '15.0', '2020-09-10 20:06:07');
+INSERT INTO `t_order_position` VALUES (17259, 2, 2738, 8, '109.41432847257346', '24.32025719363164', '42.0', '15.0', '2020-09-10 20:06:17');
+INSERT INTO `t_order_position` VALUES (17260, 2, 2738, 8, '109.41484515939987', '24.32052360549192', '34.0', '15.0', '2020-09-10 20:06:27');
+INSERT INTO `t_order_position` VALUES (17261, 2, 2738, 8, '109.41547850446482', '24.320939917299327', '42.0', '15.0', '2020-09-10 20:06:37');
+INSERT INTO `t_order_position` VALUES (17262, 2, 2738, 8, '109.41604515147289', '24.3210896495919', '52.0', '15.0', '2020-09-10 20:06:47');
+INSERT INTO `t_order_position` VALUES (17263, 2, 2738, 8, '109.4168950834216', '24.32117259558639', '56.0', '15.0', '2020-09-10 20:06:57');
+INSERT INTO `t_order_position` VALUES (17264, 2, 2738, 8, '109.41744501882987', '24.32120566693749', '50.0', '15.0', '2020-09-10 20:07:02');
+INSERT INTO `t_order_position` VALUES (17265, 2, 2738, 8, '109.41801160493792', '24.321272039983473', '54.0', '15.0', '2020-09-10 20:07:07');
+INSERT INTO `t_order_position` VALUES (17266, 2, 2738, 8, '109.41864482767978', '24.321321701820526', '56.0', '15.0', '2020-09-10 20:07:12');
+INSERT INTO `t_order_position` VALUES (17267, 2, 2738, 8, '109.41927803023941', '24.321371345552652', '56.0', '15.0', '2020-09-10 20:07:17');
+INSERT INTO `t_order_position` VALUES (17268, 2, 2738, 8, '109.41991121163444', '24.321404309369523', '54.0', '15.0', '2020-09-10 20:07:22');
+INSERT INTO `t_order_position` VALUES (17269, 2, 2738, 8, '109.42061102197101', '24.32147053786179', '54.0', '15.0', '2020-09-10 20:07:27');
+INSERT INTO `t_order_position` VALUES (17270, 2, 2738, 8, '109.42149407975528', '24.32153662512121', '54.0', '15.0', '2020-09-10 20:07:32');
+INSERT INTO `t_order_position` VALUES (17271, 2, 2738, 8, '109.4221938333561', '24.321586141790224', '54.0', '15.0', '2020-09-10 20:07:38');
+INSERT INTO `t_order_position` VALUES (17272, 2, 2738, 8, '109.42287690246705', '24.3216356483077', '54.0', '15.0', '2020-09-10 20:07:43');
+INSERT INTO `t_order_position` VALUES (17273, 2, 2738, 8, '109.4235766074054', '24.321685121327135', '54.0', '15.0', '2020-09-10 20:07:48');
+INSERT INTO `t_order_position` VALUES (17274, 2, 2738, 8, '109.42425962904771', '24.321734585267315', '54.0', '15.0', '2020-09-10 20:07:53');
+INSERT INTO `t_order_position` VALUES (17275, 2, 2738, 8, '109.42487599461751', '24.321784082056276', '54.0', '15.0', '2020-09-10 20:07:58');
+INSERT INTO `t_order_position` VALUES (17276, 2, 2738, 8, '109.42537573705437', '24.32183365874901', '54.0', '15.0', '2020-09-10 20:08:03');
+INSERT INTO `t_order_position` VALUES (17277, 2, 2738, 8, '109.42599206814282', '24.321883124613976', '54.0', '15.0', '2020-09-10 20:08:08');
+INSERT INTO `t_order_position` VALUES (17278, 2, 2738, 8, '109.42659172346745', '24.321932588158546', '54.0', '15.0', '2020-09-10 20:08:13');
+INSERT INTO `t_order_position` VALUES (17279, 2, 2738, 8, '109.4272246723376', '24.321965343409385', '54.0', '15.0', '2020-09-10 20:08:18');
+INSERT INTO `t_order_position` VALUES (17280, 2, 2738, 8, '109.42787425789494', '24.322014726874972', '56.0', '15.0', '2020-09-10 20:08:23');
+INSERT INTO `t_order_position` VALUES (17281, 2, 2738, 8, '109.42847385591853', '24.322047478097726', '54.0', '15.0', '2020-09-10 20:08:28');
+INSERT INTO `t_order_position` VALUES (17282, 2, 2738, 8, '109.42909009173255', '24.32209685852751', '54.0', '15.0', '2020-09-10 20:08:33');
+INSERT INTO `t_order_position` VALUES (17283, 2, 2738, 8, '109.42968965352762', '24.322129577266026', '56.0', '15.0', '2020-09-10 20:08:38');
+INSERT INTO `t_order_position` VALUES (17284, 2, 2738, 8, '109.43067223089382', '24.322195198655788', '54.0', '15.0', '2020-09-10 20:08:48');
+INSERT INTO `t_order_position` VALUES (17285, 2, 2738, 8, '109.43122178996431', '24.322277915299207', '54.0', '15.0', '2020-09-10 20:10:54');
+INSERT INTO `t_order_position` VALUES (17286, 2, 2738, 8, '109.43203776915763', '24.322310334629623', '54.0', '15.0', '2020-09-10 20:11:04');
+INSERT INTO `t_order_position` VALUES (17287, 2, 2738, 8, '109.4325706375228', '24.322359713686737', '54.0', '15.0', '2020-09-10 20:11:09');
+INSERT INTO `t_order_position` VALUES (17288, 2, 2738, 8, '109.4335863776338', '24.32242517047952', '54.0', '15.0', '2020-09-10 20:11:19');
+INSERT INTO `t_order_position` VALUES (17289, 2, 2738, 8, '109.43410255310889', '24.322441209991716', '56.0', '15.0', '2020-09-10 20:11:24');
+INSERT INTO `t_order_position` VALUES (17290, 2, 2738, 8, '109.43465201689155', '24.322473858404983', '54.0', '15.0', '2020-09-10 20:11:29');
+INSERT INTO `t_order_position` VALUES (17291, 2, 2738, 8, '109.43533466704118', '24.32257297212551', '54.0', '15.0', '2020-09-10 20:11:34');
+INSERT INTO `t_order_position` VALUES (17292, 2, 2738, 8, '109.43596734747729', '24.322672130538063', '54.0', '15.0', '2020-09-10 20:11:39');
+INSERT INTO `t_order_position` VALUES (17293, 2, 2738, 8, '109.43653341031818', '24.322704712528683', '56.0', '15.0', '2020-09-10 20:11:44');
+INSERT INTO `t_order_position` VALUES (17294, 2, 2738, 8, '109.43711610592385', '24.32273725829637', '54.0', '15.0', '2020-09-10 20:11:49');
+INSERT INTO `t_order_position` VALUES (17295, 2, 2738, 8, '109.43766548985364', '24.322769835171332', '54.0', '15.0', '2020-09-10 20:11:54');
+INSERT INTO `t_order_position` VALUES (17296, 2, 2738, 8, '109.43828144938429', '24.322818968009926', '54.0', '15.0', '2020-09-10 20:11:59');
+INSERT INTO `t_order_position` VALUES (17297, 2, 2738, 8, '109.43896397774705', '24.322867989801765', '54.0', '15.0', '2020-09-10 20:12:04');
+INSERT INTO `t_order_position` VALUES (17298, 2, 2738, 8, '109.4397297146705', '24.322916870566544', '62.0', '15.0', '2020-09-10 20:12:09');
+INSERT INTO `t_order_position` VALUES (17299, 2, 2738, 8, '109.44049542006891', '24.322899079293784', '58.0', '13.0', '2020-09-10 20:12:14');
+INSERT INTO `t_order_position` VALUES (17300, 2, 2738, 8, '109.44121117009672', '24.322997972237772', '56.0', '15.0', '2020-09-10 20:12:19');
+INSERT INTO `t_order_position` VALUES (17301, 2, 2738, 8, '109.44182703168661', '24.323130322162868', '54.0', '15.0', '2020-09-10 20:12:24');
+INSERT INTO `t_order_position` VALUES (17302, 2, 2738, 8, '109.4423430066642', '24.32317950401449', '56.0', '15.0', '2020-09-10 20:12:29');
+INSERT INTO `t_order_position` VALUES (17303, 2, 2738, 8, '109.44294218750976', '24.323228542439427', '54.0', '15.0', '2020-09-10 20:12:34');
+INSERT INTO `t_order_position` VALUES (17304, 2, 2738, 8, '109.44357463811399', '24.323277512230522', '54.0', '15.0', '2020-09-10 20:12:40');
+INSERT INTO `t_order_position` VALUES (17305, 2, 2738, 8, '109.44429028346299', '24.323326328645344', '54.0', '15.0', '2020-09-10 20:12:45');
+INSERT INTO `t_order_position` VALUES (17306, 2, 2738, 8, '109.44483948357205', '24.323358740979124', '56.0', '15.0', '2020-09-10 20:12:50');
+INSERT INTO `t_order_position` VALUES (17307, 2, 2738, 8, '109.44545523595924', '24.32337436650775', '54.0', '15.0', '2020-09-10 20:13:00');
+INSERT INTO `t_order_position` VALUES (17308, 2, 2738, 8, '109.4463205904487', '24.323422869823425', '54.0', '15.0', '2020-09-10 20:13:25');
+INSERT INTO `t_order_position` VALUES (17309, 2, 2738, 8, '109.44685310079288', '24.323471928349782', '54.0', '15.0', '2020-09-10 20:13:30');
+INSERT INTO `t_order_position` VALUES (17310, 2, 2738, 8, '109.44743551929955', '24.323520887093057', '54.0', '15.0', '2020-09-10 20:13:35');
+INSERT INTO `t_order_position` VALUES (17311, 2, 2738, 8, '109.44823423927173', '24.323569442729255', '60.0', '15.0', '2020-09-10 20:13:45');
+INSERT INTO `t_order_position` VALUES (17312, 2, 2738, 8, '109.44883324798897', '24.323385073752583', '0.0', '15.0', '2020-09-10 20:14:15');
+INSERT INTO `t_order_position` VALUES (17313, 2, 2738, 8, '109.44931579276474', '24.323600790386784', '60.0', '15.0', '2020-09-10 20:17:41');
+INSERT INTO `t_order_position` VALUES (17314, 2, 2738, 8, '109.44994806388416', '24.32364959971198', '54.0', '15.0', '2020-09-10 20:18:22');
+INSERT INTO `t_order_position` VALUES (17315, 2, 2738, 8, '109.45059695675879', '24.32371502397451', '54.0', '15.0', '2020-09-10 20:18:37');
+INSERT INTO `t_order_position` VALUES (17316, 2, 2738, 8, '109.45114600457997', '24.323747300200104', '62.0', '15.0', '2020-09-10 20:18:47');
+INSERT INTO `t_order_position` VALUES (17317, 2, 2738, 8, '109.45167839854825', '24.323712949919447', '56.0', '15.0', '2020-09-10 20:18:57');
+INSERT INTO `t_order_position` VALUES (17318, 2, 2738, 8, '109.45224405711224', '24.32372850931866', '90.0', '15.0', '2020-09-10 20:19:12');
+INSERT INTO `t_order_position` VALUES (17319, 2, 2738, 8, '109.45252683214547', '24.322894861959462', '106.0', '15.0', '2020-09-10 20:19:37');
+INSERT INTO `t_order_position` VALUES (17320, 2, 2738, 8, '109.45265989334129', '24.322361421045354', '106.0', '15.0', '2020-09-10 20:19:42');
+INSERT INTO `t_order_position` VALUES (17321, 2, 2738, 8, '109.45285949350468', '24.321727876970556', '106.0', '15.0', '2020-09-10 20:19:47');
+INSERT INTO `t_order_position` VALUES (17322, 2, 2738, 8, '109.45305909006896', '24.32106100812192', '106.0', '15.0', '2020-09-10 20:19:52');
+INSERT INTO `t_order_position` VALUES (17323, 2, 2738, 8, '109.45320878153925', '24.32047754675938', '106.0', '15.0', '2020-09-10 20:19:57');
+INSERT INTO `t_order_position` VALUES (17324, 2, 2738, 8, '109.4534416296379', '24.31951069717502', '106.0', '15.0', '2020-09-10 20:20:08');
+INSERT INTO `t_order_position` VALUES (17325, 2, 2738, 8, '109.45359131875226', '24.31892723440095', '104.0', '15.0', '2020-09-10 20:20:13');
+INSERT INTO `t_order_position` VALUES (17326, 2, 2738, 8, '109.45379090540773', '24.3181937145423', '106.0', '15.0', '2020-09-10 20:20:23');
+INSERT INTO `t_order_position` VALUES (17327, 2, 2738, 8, '109.45392395967424', '24.317660269360587', '106.0', '15.0', '2020-09-10 20:20:43');
+INSERT INTO `t_order_position` VALUES (17328, 2, 2738, 8, '109.45407365265511', '24.317193437047578', '106.0', '15.0', '2020-09-10 20:20:53');
+INSERT INTO `t_order_position` VALUES (17329, 2, 2738, 8, '109.45427323440619', '24.316443252902104', '106.0', '15.0', '2020-09-10 20:21:03');
+INSERT INTO `t_order_position` VALUES (17330, 2, 2738, 8, '109.45438965561584', '24.315993148708973', '104.0', '15.0', '2020-09-10 20:21:08');
+INSERT INTO `t_order_position` VALUES (17331, 2, 2738, 8, '109.45452270761446', '24.31547636325615', '106.0', '15.0', '2020-09-10 20:21:13');
+INSERT INTO `t_order_position` VALUES (17332, 2, 2738, 8, '109.45463912277599', '24.31494294970973', '106.0', '15.0', '2020-09-10 20:21:18');
+INSERT INTO `t_order_position` VALUES (17333, 2, 2738, 8, '109.45477217635413', '24.314476148627183', '106.0', '15.0', '2020-09-10 20:21:23');
+INSERT INTO `t_order_position` VALUES (17334, 2, 2738, 8, '109.45503828039371', '24.313525883334187', '106.0', '15.0', '2020-09-10 20:21:33');
+INSERT INTO `t_order_position` VALUES (17335, 2, 2738, 8, '109.45517132793576', '24.312992434033347', '106.0', '15.0', '2020-09-10 20:21:38');
+INSERT INTO `t_order_position` VALUES (17336, 2, 2738, 8, '109.4553043786634', '24.312525631091678', '106.0', '15.0', '2020-09-10 20:21:43');
+INSERT INTO `t_order_position` VALUES (17337, 2, 2738, 8, '109.4554540564753', '24.311942161311972', '106.0', '15.0', '2020-09-10 20:21:53');
+INSERT INTO `t_order_position` VALUES (17338, 2, 2738, 8, '109.45560373144379', '24.311325367627337', '100.0', '15.0', '2020-09-10 20:22:08');
+INSERT INTO `t_order_position` VALUES (17339, 2, 2738, 8, '109.45598629976709', '24.310941349674046', '74.0', '15.0', '2020-09-10 20:22:18');
+INSERT INTO `t_order_position` VALUES (17340, 2, 2738, 8, '109.4566017566731', '24.310890067832478', '56.0', '15.0', '2020-09-10 20:22:34');
+INSERT INTO `t_order_position` VALUES (17341, 2, 2738, 8, '109.45753323604436', '24.310904741475582', '60.0', '15.0', '2020-09-10 20:22:44');
+INSERT INTO `t_order_position` VALUES (17342, 2, 2738, 8, '109.45843141344676', '24.310869472618833', '60.0', '15.0', '2020-09-10 20:22:54');
+INSERT INTO `t_order_position` VALUES (17343, 2, 2738, 8, '109.45944598528021', '24.310850580114394', '58.0', '15.0', '2020-09-10 20:23:04');
+INSERT INTO `t_order_position` VALUES (17344, 2, 2738, 8, '109.4600114689461', '24.310865983327663', '60.0', '15.0', '2020-09-10 20:23:09');
+INSERT INTO `t_order_position` VALUES (17345, 2, 2738, 8, '109.46104261159024', '24.310846999489872', '58.0', '15.0', '2020-09-10 20:23:19');
+INSERT INTO `t_order_position` VALUES (17346, 2, 2738, 8, '109.46174110501812', '24.31082874495257', '60.0', '15.0', '2020-09-10 20:23:59');
+INSERT INTO `t_order_position` VALUES (17347, 2, 2738, 8, '109.46235642772362', '24.310777343639806', '60.0', '15.0', '2020-09-10 20:24:09');
+INSERT INTO `t_order_position` VALUES (17348, 2, 2738, 8, '109.46328769972467', '24.310675207086454', '66.0', '15.0', '2020-09-10 20:24:19');
+INSERT INTO `t_order_position` VALUES (17349, 2, 2738, 8, '109.46418567989136', '24.31052313714316', '66.0', '15.0', '2020-09-10 20:24:29');
+INSERT INTO `t_order_position` VALUES (17350, 2, 2738, 8, '109.46496722838384', '24.310321336128276', '70.0', '15.0', '2020-09-10 20:24:39');
+INSERT INTO `t_order_position` VALUES (17351, 2, 2738, 8, '109.46584852063711', '24.31003596703942', '70.0', '15.0', '2020-09-10 20:24:49');
+INSERT INTO `t_order_position` VALUES (17352, 2, 2738, 8, '109.4664138631149', '24.30983465438857', '70.0', '15.0', '2020-09-10 20:24:54');
+INSERT INTO `t_order_position` VALUES (17353, 2, 2738, 8, '109.46701244822415', '24.30959992745779', '72.0', '15.0', '2020-09-10 20:24:59');
+INSERT INTO `t_order_position` VALUES (17354, 2, 2738, 8, '109.46769415484644', '24.30931499964911', '76.0', '15.0', '2020-09-10 20:25:04');
+INSERT INTO `t_order_position` VALUES (17355, 2, 2738, 8, '109.46822620450097', '24.309030431358977', '78.0', '15.0', '2020-09-10 20:25:10');
+INSERT INTO `t_order_position` VALUES (17356, 2, 2738, 8, '109.46880812211631', '24.30869574526723', '80.0', '15.0', '2020-09-10 20:25:15');
+INSERT INTO `t_order_position` VALUES (17357, 2, 2738, 8, '109.46939002810781', '24.308344388180995', '78.0', '15.0', '2020-09-10 20:25:20');
+INSERT INTO `t_order_position` VALUES (17358, 2, 2738, 8, '109.47000517560834', '24.307992937500412', '80.0', '15.0', '2020-09-10 20:25:25');
+INSERT INTO `t_order_position` VALUES (17359, 2, 2738, 8, '109.47063693625047', '24.30762477255959', '78.0', '15.0', '2020-09-10 20:25:30');
+INSERT INTO `t_order_position` VALUES (17360, 2, 2738, 8, '109.4712853092649', '24.30723989269734', '80.0', '15.0', '2020-09-10 20:25:35');
+INSERT INTO `t_order_position` VALUES (17361, 2, 2738, 8, '109.47188379659178', '24.30688845428928', '78.0', '15.0', '2020-09-10 20:25:40');
+INSERT INTO `t_order_position` VALUES (17362, 2, 2738, 8, '109.47249889823809', '24.30653696345654', '80.0', '15.0', '2020-09-10 20:25:45');
+INSERT INTO `t_order_position` VALUES (17363, 2, 2738, 8, '109.47314723602278', '24.30615205279088', '80.0', '15.0', '2020-09-10 20:25:50');
+INSERT INTO `t_order_position` VALUES (17364, 2, 2738, 8, '109.47377893874389', '24.305783837198952', '78.0', '15.0', '2020-09-10 20:25:55');
+INSERT INTO `t_order_position` VALUES (17365, 2, 2738, 8, '109.47429426691474', '24.30548256670667', '82.0', '15.0', '2020-09-10 20:26:00');
+INSERT INTO `t_order_position` VALUES (17366, 2, 2738, 8, '109.47474309392761', '24.30519812834951', '82.0', '15.0', '2020-09-10 20:26:05');
+INSERT INTO `t_order_position` VALUES (17367, 2, 2738, 8, '109.47554099545165', '24.304696151102853', '80.0', '15.0', '2020-09-10 20:26:15');
+INSERT INTO `t_order_position` VALUES (17368, 2, 2738, 8, '109.47597318628566', '24.30444506764318', '80.0', '15.0', '2020-09-10 20:26:20');
+INSERT INTO `t_order_position` VALUES (17369, 2, 2738, 8, '109.47640537225818', '24.30419397995583', '80.0', '15.0', '2020-09-10 20:26:25');
+INSERT INTO `t_order_position` VALUES (17370, 2, 2738, 8, '109.47687079615692', '24.303892813314558', '80.0', '15.0', '2020-09-10 20:26:30');
+INSERT INTO `t_order_position` VALUES (17371, 2, 2738, 8, '109.47725309949796', '24.303558544611462', '114.0', '15.0', '2020-09-10 20:26:40');
+INSERT INTO `t_order_position` VALUES (17372, 2, 2738, 8, '109.4769704806397', '24.302992817635385', '0.0', '15.0', '2020-09-10 20:27:05');
+INSERT INTO `t_order_position` VALUES (17373, 2, 2738, 8, '109.4773029635355', '24.303491762780776', '26.0', '15.0', '2020-09-10 20:29:41');
+INSERT INTO `t_order_position` VALUES (17374, 2, 2738, 8, '109.47791798532462', '24.303306809817805', '78.0', '15.0', '2020-09-10 20:30:01');
+INSERT INTO `t_order_position` VALUES (17375, 2, 2738, 8, '109.4784000158152', '24.30303890558844', '80.0', '15.0', '2020-09-10 20:30:11');
+INSERT INTO `t_order_position` VALUES (17376, 2, 2738, 8, '109.47896514669307', '24.30270412147195', '78.0', '15.0', '2020-09-10 20:30:21');
+INSERT INTO `t_order_position` VALUES (17377, 2, 2738, 8, '109.47959675497853', '24.302335823832056', '80.0', '15.0', '2020-09-10 20:30:31');
+INSERT INTO `t_order_position` VALUES (17378, 2, 2738, 8, '109.48019511110058', '24.301967610594865', '80.0', '15.0', '2020-09-10 20:30:41');
+INSERT INTO `t_order_position` VALUES (17379, 2, 2738, 8, '109.48084332287588', '24.301599251252803', '84.0', '15.0', '2020-09-10 20:30:52');
+INSERT INTO `t_order_position` VALUES (17380, 2, 2738, 8, '109.48129206806514', '24.301148134853726', '110.0', '15.0', '2020-09-10 20:31:02');
+INSERT INTO `t_order_position` VALUES (17381, 2, 2738, 8, '109.48115906257041', '24.30051536797128', '152.0', '15.0', '2020-09-10 20:31:12');
+INSERT INTO `t_order_position` VALUES (17382, 2, 2738, 8, '109.48034461241488', '24.300384347048478', '134.0', '15.0', '2020-09-10 20:31:22');
+INSERT INTO `t_order_position` VALUES (17383, 2, 2738, 8, '109.47999559589024', '24.300985132334837', '12.0', '15.0', '2020-09-10 20:31:32');
+INSERT INTO `t_order_position` VALUES (17384, 2, 2738, 8, '109.48019508598661', '24.3015344099766', '22.0', '15.0', '2020-09-10 20:31:42');
+INSERT INTO `t_order_position` VALUES (17385, 2, 2738, 8, '109.4807104010497', '24.302432700443678', '20.0', '15.0', '2020-09-10 20:31:52');
+INSERT INTO `t_order_position` VALUES (17386, 2, 2738, 8, '109.48100961125184', '24.302915051039573', '20.0', '15.0', '2020-09-10 20:31:57');
+INSERT INTO `t_order_position` VALUES (17387, 2, 2738, 8, '109.48130882141338', '24.303430723261013', '20.0', '15.0', '2020-09-10 20:32:02');
+INSERT INTO `t_order_position` VALUES (17388, 2, 2738, 8, '109.48155816574695', '24.303929872255644', '20.0', '15.0', '2020-09-10 20:32:07');
+INSERT INTO `t_order_position` VALUES (17389, 2, 2738, 8, '109.48182412769611', '24.304395650391346', '22.0', '15.0', '2020-09-10 20:32:12');
+INSERT INTO `t_order_position` VALUES (17390, 2, 2738, 8, '109.48210670795847', '24.304844719001903', '22.0', '15.0', '2020-09-10 20:32:17');
+INSERT INTO `t_order_position` VALUES (17391, 2, 2738, 8, '109.48235604321935', '24.305260556811618', '22.0', '15.0', '2020-09-10 20:32:22');
+INSERT INTO `t_order_position` VALUES (17392, 2, 2738, 8, '109.48288795668985', '24.306192105137562', '22.0', '15.0', '2020-09-10 20:32:32');
+INSERT INTO `t_order_position` VALUES (17393, 2, 2738, 8, '109.48315391028218', '24.30664121603772', '20.0', '15.0', '2020-09-10 20:32:37');
+INSERT INTO `t_order_position` VALUES (17394, 2, 2738, 8, '109.48338661982787', '24.307057096922865', '22.0', '15.0', '2020-09-10 20:32:42');
+INSERT INTO `t_order_position` VALUES (17395, 2, 2738, 8, '109.48366919100884', '24.30750615857187', '20.0', '15.0', '2020-09-10 20:32:47');
+INSERT INTO `t_order_position` VALUES (17396, 2, 2738, 8, '109.48401824893614', '24.308088322816097', '22.0', '15.0', '2020-09-10 20:34:13');
+INSERT INTO `t_order_position` VALUES (17397, 2, 2738, 8, '109.48435068734943', '24.308720517644442', '20.0', '15.0', '2020-09-10 20:34:23');
+INSERT INTO `t_order_position` VALUES (17398, 2, 2738, 8, '109.48473298244062', '24.309335906708935', '22.0', '15.0', '2020-09-10 20:34:33');
+INSERT INTO `t_order_position` VALUES (17399, 2, 2738, 8, '109.48506541632742', '24.30996809823689', '20.0', '15.0', '2020-09-10 20:34:43');
+INSERT INTO `t_order_position` VALUES (17400, 2, 2738, 8, '109.48533135771325', '24.31040053905517', '18.0', '15.0', '2020-09-10 20:34:53');
+INSERT INTO `t_order_position` VALUES (17401, 2, 2738, 8, '109.48559730261987', '24.310916287277696', '18.0', '15.0', '2020-09-10 20:35:03');
+INSERT INTO `t_order_position` VALUES (17402, 2, 2738, 8, '109.48583000323914', '24.311365483524103', '110.0', '15.0', '2020-09-10 20:35:33');
+INSERT INTO `t_order_position` VALUES (17403, 2, 2738, 8, '109.48531476690243', '24.310900436929355', '130.0', '15.0', '2020-09-10 20:35:53');
+INSERT INTO `t_order_position` VALUES (17404, 2, 2738, 8, '109.48506544235886', '24.310417963247023', '114.0', '15.0', '2020-09-10 20:36:13');
+INSERT INTO `t_order_position` VALUES (17405, 2, 2738, 8, '109.48481611762287', '24.309952150411256', '134.0', '15.0', '2020-09-10 20:45:32');
+INSERT INTO `t_order_position` VALUES (17406, 2, 2738, 8, '109.48435070953052', '24.309103735617057', '134.0', '15.0', '2020-09-10 20:45:42');
+INSERT INTO `t_order_position` VALUES (17407, 2, 2738, 8, '109.4841013852637', '24.308704566919804', '132.0', '15.0', '2020-09-10 20:45:47');
+INSERT INTO `t_order_position` VALUES (17408, 2, 2738, 8, '109.48386867805341', '24.308272026722832', '132.0', '15.0', '2020-09-10 20:45:52');
+INSERT INTO `t_order_position` VALUES (17409, 2, 2738, 8, '109.48363596881562', '24.307822824112865', '132.0', '15.0', '2020-09-10 20:45:57');
+INSERT INTO `t_order_position` VALUES (17410, 2, 2738, 8, '109.48337001394773', '24.307307068519467', '134.0', '15.0', '2020-09-10 20:46:02');
+INSERT INTO `t_order_position` VALUES (17411, 2, 2738, 8, '109.48305419244731', '24.306724806612714', '130.0', '15.0', '2020-09-10 20:46:07');
+INSERT INTO `t_order_position` VALUES (17412, 2, 2738, 8, '109.48267188467666', '24.306109407814045', '130.0', '15.0', '2020-09-10 20:46:12');
+INSERT INTO `t_order_position` VALUES (17413, 2, 2738, 8, '109.48233943892514', '24.305543850987835', '130.0', '15.0', '2020-09-10 20:46:17');
+INSERT INTO `t_order_position` VALUES (17414, 2, 2738, 8, '109.48187400963133', '24.304728742225343', '130.0', '15.0', '2020-09-10 20:46:27');
+INSERT INTO `t_order_position` VALUES (17415, 2, 2738, 8, '109.48159142893388', '24.304296334031836', '134.0', '15.0', '2020-09-10 20:46:32');
+INSERT INTO `t_order_position` VALUES (17416, 2, 2738, 8, '109.4812922244789', '24.303847309428296', '130.0', '15.0', '2020-09-10 20:46:37');
+INSERT INTO `t_order_position` VALUES (17417, 2, 2738, 8, '109.48094314676872', '24.303265129904915', '134.0', '15.0', '2020-09-10 20:46:43');
+INSERT INTO `t_order_position` VALUES (17418, 2, 2738, 8, '109.48056082079574', '24.30263305617636', '130.0', '15.0', '2020-09-10 20:46:48');
+INSERT INTO `t_order_position` VALUES (17419, 2, 2738, 8, '109.48017848865108', '24.301950995202972', '134.0', '15.0', '2020-09-10 20:46:53');
+INSERT INTO `t_order_position` VALUES (17420, 2, 2738, 8, '109.47977953058434', '24.301252316169794', '130.0', '15.0', '2020-09-10 20:46:58');
+INSERT INTO `t_order_position` VALUES (17421, 2, 2738, 8, '109.47939719257053', '24.30058691149236', '134.0', '15.0', '2020-09-10 20:47:03');
+INSERT INTO `t_order_position` VALUES (17422, 2, 2738, 8, '109.47903147403973', '24.29993811992392', '130.0', '15.0', '2020-09-10 20:47:08');
+INSERT INTO `t_order_position` VALUES (17423, 2, 2738, 8, '109.47866575427739', '24.299322648971206', '134.0', '15.0', '2020-09-10 20:47:13');
+INSERT INTO `t_order_position` VALUES (17424, 2, 2738, 8, '109.47826678202681', '24.298623958929497', '134.0', '15.0', '2020-09-10 20:47:18');
+INSERT INTO `t_order_position` VALUES (17425, 2, 2738, 8, '109.47791767693042', '24.29799177577482', '134.0', '15.0', '2020-09-10 20:47:23');
+INSERT INTO `t_order_position` VALUES (17426, 2, 2738, 8, '109.47751869932443', '24.297326403065288', '134.0', '15.0', '2020-09-10 20:47:28');
+INSERT INTO `t_order_position` VALUES (17427, 2, 2738, 8, '109.47710309214979', '24.29661108782133', '130.0', '15.0', '2020-09-10 20:47:33');
+INSERT INTO `t_order_position` VALUES (17428, 2, 2738, 8, '109.47670410350155', '24.29589572418953', '130.0', '15.0', '2020-09-10 20:47:38');
+INSERT INTO `t_order_position` VALUES (17429, 2, 2738, 8, '109.47630511272246', '24.29521368033725', '130.0', '15.0', '2020-09-10 20:47:43');
+INSERT INTO `t_order_position` VALUES (17430, 2, 2738, 8, '109.47593936812521', '24.2945981897982', '130.0', '15.0', '2020-09-10 20:47:48');
+INSERT INTO `t_order_position` VALUES (17431, 2, 2738, 8, '109.47555699375864', '24.293932756589587', '130.0', '15.0', '2020-09-10 20:47:58');
+INSERT INTO `t_order_position` VALUES (17432, 2, 2738, 8, '109.47515799004424', '24.293234041761586', '134.0', '15.0', '2020-09-10 20:48:03');
+INSERT INTO `t_order_position` VALUES (17433, 2, 2738, 8, '109.47474235737027', '24.29251870630403', '134.0', '15.0', '2020-09-10 20:48:08');
+INSERT INTO `t_order_position` VALUES (17434, 2, 2738, 8, '109.4743599697857', '24.291836601905977', '134.0', '15.0', '2020-09-10 20:48:13');
+INSERT INTO `t_order_position` VALUES (17435, 2, 2738, 8, '109.47397758013364', '24.291187817195645', '130.0', '15.0', '2020-09-10 20:48:18');
+INSERT INTO `t_order_position` VALUES (17436, 2, 2738, 8, '109.47371156768313', '24.290738660015037', '134.0', '15.0', '2020-09-10 20:48:23');
+INSERT INTO `t_order_position` VALUES (17437, 2, 2738, 8, '109.47342892795824', '24.290272883497703', '130.0', '15.0', '2020-09-10 20:49:14');
+INSERT INTO `t_order_position` VALUES (17438, 2, 2738, 8, '109.47316290948623', '24.289790400184035', '134.0', '15.0', '2020-09-10 20:49:19');
+INSERT INTO `t_order_position` VALUES (17439, 2, 2738, 8, '109.47283038478845', '24.28920812056109', '132.0', '15.0', '2020-09-10 20:49:24');
+INSERT INTO `t_order_position` VALUES (17440, 2, 2738, 8, '109.4725144739575', '24.288492503884235', '126.0', '15.0', '2020-09-10 20:49:29');
+INSERT INTO `t_order_position` VALUES (17441, 2, 2738, 8, '109.47229830575792', '24.287709980383823', '120.0', '15.0', '2020-09-10 20:49:34');
+INSERT INTO `t_order_position` VALUES (17442, 2, 2738, 8, '109.4720821371707', '24.28694411750927', '122.0', '15.0', '2020-09-10 20:49:39');
+INSERT INTO `t_order_position` VALUES (17443, 2, 2738, 8, '109.47198234841092', '24.286277920811923', '124.0', '15.0', '2020-09-10 20:49:44');
+INSERT INTO `t_order_position` VALUES (17444, 2, 2738, 8, '109.47186593718659', '24.285661751298928', '122.0', '15.0', '2020-09-10 20:49:49');
+INSERT INTO `t_order_position` VALUES (17445, 2, 2738, 8, '109.47169964235836', '24.284912419679113', '122.0', '15.0', '2020-09-10 20:49:54');
+INSERT INTO `t_order_position` VALUES (17446, 2, 2738, 8, '109.47154996904858', '24.28411306080248', '122.0', '15.0', '2020-09-10 20:49:59');
+INSERT INTO `t_order_position` VALUES (17447, 2, 2738, 8, '109.4713836658839', '24.28324709923403', '124.0', '15.0', '2020-09-10 20:50:04');
+INSERT INTO `t_order_position` VALUES (17448, 2, 2738, 8, '109.47120072873855', '24.282247889551833', '122.0', '15.0', '2020-09-10 20:50:09');
+INSERT INTO `t_order_position` VALUES (17449, 2, 2738, 8, '109.47103442480999', '24.281398588904317', '124.0', '15.0', '2020-09-10 20:50:14');
+INSERT INTO `t_order_position` VALUES (17450, 2, 2738, 8, '109.47090137796832', '24.28066583202192', '122.0', '15.0', '2020-09-10 20:50:19');
+INSERT INTO `t_order_position` VALUES (17451, 2, 2738, 8, '109.4707683257475', '24.279849768526912', '122.0', '15.0', '2020-09-10 20:50:24');
+INSERT INTO `t_order_position` VALUES (17452, 2, 2738, 8, '109.47060201965233', '24.27900046738164', '122.0', '15.0', '2020-09-10 20:50:29');
+INSERT INTO `t_order_position` VALUES (17453, 2, 2738, 8, '109.47046896622443', '24.278184403760367', '122.0', '15.0', '2020-09-10 20:50:34');
+INSERT INTO `t_order_position` VALUES (17454, 2, 2738, 8, '109.47033592194978', '24.27753495287216', '122.0', '15.0', '2020-09-10 20:50:39');
+INSERT INTO `t_order_position` VALUES (17455, 2, 2738, 8, '109.47021951273392', '24.27705207220083', '122.0', '15.0', '2020-09-10 20:50:44');
+INSERT INTO `t_order_position` VALUES (17456, 2, 2738, 8, '109.47010309825679', '24.27648588500048', '0.0', '15.0', '2020-09-10 20:51:04');
+INSERT INTO `t_order_position` VALUES (17457, 2, 2738, 8, '109.47000330647161', '24.27586967168438', '122.0', '15.0', '2020-09-10 20:51:25');
+INSERT INTO `t_order_position` VALUES (17458, 2, 2738, 8, '109.46990352116539', '24.275370087112826', '124.0', '15.0', '2020-09-10 20:51:30');
+INSERT INTO `t_order_position` VALUES (17459, 2, 2738, 8, '109.4698037336131', '24.274837179948697', '124.0', '15.0', '2020-09-10 20:51:35');
+INSERT INTO `t_order_position` VALUES (17460, 2, 2738, 8, '109.46967068371043', '24.274137744432217', '122.0', '15.0', '2020-09-10 20:51:40');
+INSERT INTO `t_order_position` VALUES (17461, 2, 2738, 8, '109.46957089156028', '24.273538192153133', '122.0', '15.0', '2020-09-10 20:51:45');
+INSERT INTO `t_order_position` VALUES (17462, 2, 2738, 8, '109.4694378436037', '24.272888740072833', '124.0', '15.0', '2020-09-10 20:51:50');
+INSERT INTO `t_order_position` VALUES (17463, 2, 2738, 8, '109.46928816871939', '24.272239329668597', '122.0', '15.0', '2020-09-10 20:51:55');
+INSERT INTO `t_order_position` VALUES (17464, 2, 2738, 8, '109.46915512055755', '24.271606538329518', '122.0', '15.0', '2020-09-10 20:52:00');
+INSERT INTO `t_order_position` VALUES (17465, 2, 2738, 8, '109.46903869447563', '24.270907060204525', '122.0', '15.0', '2020-09-10 20:52:05');
+INSERT INTO `t_order_position` VALUES (17466, 2, 2738, 8, '109.46890563945206', '24.27017430134528', '124.0', '15.0', '2020-09-10 20:52:10');
+INSERT INTO `t_order_position` VALUES (17467, 2, 2738, 8, '109.4687559620644', '24.26952488991407', '122.0', '15.0', '2020-09-10 20:52:15');
+INSERT INTO `t_order_position` VALUES (17468, 2, 2738, 8, '109.4686727927839', '24.2689086341947', '122.0', '15.0', '2020-09-10 20:52:20');
+INSERT INTO `t_order_position` VALUES (17469, 2, 2738, 8, '109.46855637559347', '24.26839242866257', '124.0', '15.0', '2020-09-10 20:52:25');
+INSERT INTO `t_order_position` VALUES (17470, 2, 2738, 8, '109.46842331659519', '24.267626346902205', '120.0', '15.0', '2020-09-10 20:52:35');
+INSERT INTO `t_order_position` VALUES (17471, 2, 2738, 8, '109.46839002023687', '24.266893338730256', '114.0', '15.0', '2020-09-10 20:52:45');
+INSERT INTO `t_order_position` VALUES (17472, 2, 2738, 8, '109.46907171282366', '24.26687497124365', '64.0', '15.0', '2020-09-10 20:54:11');
+INSERT INTO `t_order_position` VALUES (17473, 2, 2738, 8, '109.46963700379321', '24.266790240688632', '64.0', '15.0', '2020-09-10 20:54:21');
+INSERT INTO `t_order_position` VALUES (17474, 2, 2738, 8, '109.4704849222815', '24.26667145911999', '66.0', '15.0', '2020-09-10 20:54:31');
+INSERT INTO `t_order_position` VALUES (17475, 2, 2738, 8, '109.47113331424772', '24.266553171270445', '64.0', '15.0', '2020-09-10 20:54:41');
+INSERT INTO `t_order_position` VALUES (17476, 2, 2738, 8, '109.47186482118765', '24.266467979684233', '54.0', '15.0', '2020-09-10 20:54:51');
+INSERT INTO `t_order_position` VALUES (17477, 2, 2738, 8, '109.4711333249061', '24.266736443973983', '114.0', '15.0', '2020-09-10 20:55:11');
+INSERT INTO `t_order_position` VALUES (17478, 2, 2738, 8, '109.47050155870916', '24.26685468941895', '126.0', '15.0', '2020-09-10 20:55:21');
+INSERT INTO `t_order_position` VALUES (17479, 2, 2738, 8, '109.46996953582178', '24.266956010077692', '118.0', '15.0', '2020-09-10 20:57:02');
+INSERT INTO `t_order_position` VALUES (17480, 2, 2738, 8, '109.46925461439959', '24.26705778399209', '118.0', '15.0', '2020-09-10 20:57:22');
+INSERT INTO `t_order_position` VALUES (17481, 2, 2738, 8, '109.46858955636723', '24.267142758043608', '110.0', '15.0', '2020-09-10 20:57:32');
+INSERT INTO `t_order_position` VALUES (17482, 2, 2738, 8, '109.46775820903883', '24.26716148707985', '114.0', '15.0', '2020-09-10 20:57:42');
+INSERT INTO `t_order_position` VALUES (17483, 2, 2738, 8, '109.46679381708425', '24.267163861073076', '114.0', '15.0', '2020-09-10 20:57:52');
+INSERT INTO `t_order_position` VALUES (17484, 2, 2738, 8, '109.46622847065254', '24.26718190130816', '114.0', '15.0', '2020-09-10 20:57:57');
+INSERT INTO `t_order_position` VALUES (17485, 2, 2738, 8, '109.46562985591805', '24.26718335121411', '114.0', '15.0', '2020-09-10 20:58:02');
+INSERT INTO `t_order_position` VALUES (17486, 2, 2738, 8, '109.46478179863462', '24.26720204802832', '114.0', '15.0', '2020-09-10 20:58:12');
+INSERT INTO `t_order_position` VALUES (17487, 2, 2738, 8, '109.46401686123366', '24.267187204178736', '114.0', '15.0', '2020-09-10 20:58:22');
+INSERT INTO `t_order_position` VALUES (17488, 2, 2738, 8, '109.46306897790893', '24.267206092100835', '112.0', '15.0', '2020-09-10 20:58:32');
+INSERT INTO `t_order_position` VALUES (17489, 2, 2738, 8, '109.46213769216261', '24.26720825224674', '112.0', '15.0', '2020-09-10 20:58:42');
+INSERT INTO `t_order_position` VALUES (17490, 2, 2738, 8, '109.46157224956978', '24.267142905593342', '114.0', '15.0', '2020-09-10 20:58:52');
+INSERT INTO `t_order_position` VALUES (17491, 2, 2738, 8, '109.46045796756252', '24.26712877183366', '114.0', '15.0', '2020-09-10 20:59:02');
+INSERT INTO `t_order_position` VALUES (17492, 2, 2738, 8, '109.45979270324561', '24.26713026123296', '112.0', '15.0', '2020-09-10 20:59:07');
+INSERT INTO `t_order_position` VALUES (17493, 2, 2738, 8, '109.45912742232372', '24.267131735848903', '114.0', '15.0', '2020-09-10 20:59:12');
+INSERT INTO `t_order_position` VALUES (17494, 2, 2738, 8, '109.45842885928654', '24.267133268103393', '114.0', '15.0', '2020-09-10 20:59:17');
+INSERT INTO `t_order_position` VALUES (17495, 2, 2738, 8, '109.45773027850919', '24.267151444846544', '112.0', '15.0', '2020-09-10 20:59:23');
+INSERT INTO `t_order_position` VALUES (17496, 2, 2738, 8, '109.45703167784211', '24.26715294357185', '114.0', '15.0', '2020-09-10 20:59:27');
+INSERT INTO `t_order_position` VALUES (17497, 2, 2738, 8, '109.456249887753', '24.267154600502494', '114.0', '15.0', '2020-09-10 20:59:33');
+INSERT INTO `t_order_position` VALUES (17498, 2, 2738, 8, '109.45541817055198', '24.267173000643027', '112.0', '15.0', '2020-09-10 20:59:38');
+INSERT INTO `t_order_position` VALUES (17499, 2, 2738, 8, '109.4546196950174', '24.267174646794007', '112.0', '15.0', '2020-09-10 20:59:43');
+INSERT INTO `t_order_position` VALUES (17500, 2, 2738, 8, '109.45375465068423', '24.26717640409488', '114.0', '15.0', '2020-09-10 20:59:48');
+INSERT INTO `t_order_position` VALUES (17501, 2, 2738, 8, '109.45295612099889', '24.267178001919063', '114.0', '15.0', '2020-09-10 20:59:53');
+INSERT INTO `t_order_position` VALUES (17502, 2, 2738, 8, '109.45229065845359', '24.26716265427401', '112.0', '15.0', '2020-09-10 20:59:58');
+INSERT INTO `t_order_position` VALUES (17503, 2, 2738, 8, '109.45149208013807', '24.267164208674092', '114.0', '15.0', '2020-09-10 21:00:03');
+INSERT INTO `t_order_position` VALUES (17504, 2, 2738, 8, '109.45082657767234', '24.26716548566308', '112.0', '15.0', '2020-09-10 21:00:08');
+INSERT INTO `t_order_position` VALUES (17505, 2, 2738, 8, '109.45031079934422', '24.267149802606294', '110.0', '15.0', '2020-09-10 21:00:13');
+INSERT INTO `t_order_position` VALUES (17506, 2, 2738, 8, '109.44934576789916', '24.267184927574515', '114.0', '15.0', '2020-09-10 21:00:23');
+INSERT INTO `t_order_position` VALUES (17507, 2, 2738, 8, '109.44881331945166', '24.26720256792087', '114.0', '15.0', '2020-09-10 21:00:28');
+INSERT INTO `t_order_position` VALUES (17508, 2, 2738, 8, '109.44824757843324', '24.267203596230782', '112.0', '15.0', '2020-09-10 21:00:33');
+INSERT INTO `t_order_position` VALUES (17509, 2, 2738, 8, '109.44764854327161', '24.267204671384825', '112.0', '15.0', '2020-09-10 21:00:38');
+INSERT INTO `t_order_position` VALUES (17510, 2, 2738, 8, '109.44691636968106', '24.26723928859487', '110.0', '15.0', '2020-09-10 21:00:53');
+INSERT INTO `t_order_position` VALUES (17511, 2, 2738, 8, '109.44613424877579', '24.267273970608297', '110.0', '15.0', '2020-09-10 21:01:03');
+INSERT INTO `t_order_position` VALUES (17512, 2, 2738, 8, '109.44506918644066', '24.26727578275829', '114.0', '15.0', '2020-09-10 21:01:13');
+INSERT INTO `t_order_position` VALUES (17513, 2, 2738, 8, '109.44450335226814', '24.26729338802623', '114.0', '15.0', '2020-09-10 21:01:18');
+INSERT INTO `t_order_position` VALUES (17514, 2, 2738, 8, '109.44392086364988', '24.267360990974616', '134.0', '15.0', '2020-09-10 21:01:28');
+INSERT INTO `t_order_position` VALUES (17515, 2, 2738, 8, '109.44383769115564', '24.2680775568783', '162.0', '15.0', '2020-09-10 21:01:43');
+INSERT INTO `t_order_position` VALUES (17516, 2, 2738, 8, '109.44382108532453', '24.268710708582397', '2.0', '15.0', '2020-09-10 21:01:53');
+INSERT INTO `t_order_position` VALUES (17517, 2, 2738, 8, '109.44382111754501', '24.269260527514334', '4.0', '15.0', '2020-09-10 21:02:03');
+INSERT INTO `t_order_position` VALUES (17518, 2, 2738, 8, '109.44380450779633', '24.269827034944296', '0.0', '15.0', '2020-09-10 21:02:13');
+INSERT INTO `t_order_position` VALUES (17519, 2, 2738, 8, '109.44343838615625', '24.27027748065266', '112.0', '15.0', '2020-09-10 21:02:49');
+INSERT INTO `t_order_position` VALUES (17520, 2, 2738, 8, '109.44278928661038', '24.27021187454989', '118.0', '15.0', '2020-09-10 21:03:14');
+INSERT INTO `t_order_position` VALUES (17521, 2, 2738, 8, '109.44217346196275', '24.270246166302044', '110.0', '15.0', '2020-09-10 21:03:24');
+INSERT INTO `t_order_position` VALUES (17522, 2, 2738, 8, '109.44164083908228', '24.27021366962651', '112.0', '15.0', '2020-09-10 21:03:34');
+INSERT INTO `t_order_position` VALUES (17523, 2, 2738, 8, '109.44104162674749', '24.27024790683798', '164.0', '15.0', '2020-09-10 21:03:54');
+INSERT INTO `t_order_position` VALUES (17524, 2, 2738, 8, '109.44047568774421', '24.27026541826278', '112.0', '15.0', '2020-09-10 21:05:00');
+INSERT INTO `t_order_position` VALUES (17525, 2, 2738, 8, '109.4399430246503', '24.27026620620818', '112.0', '15.0', '2020-09-10 21:05:20');
+INSERT INTO `t_order_position` VALUES (17526, 2, 2738, 8, '109.43936040911754', '24.27026705434099', '114.0', '15.0', '2020-09-10 21:05:35');
+INSERT INTO `t_order_position` VALUES (17527, 2, 2738, 8, '109.43879442342535', '24.270251203304376', '112.0', '15.0', '2020-09-10 21:05:55');
+INSERT INTO `t_order_position` VALUES (17528, 2, 2738, 8, '109.4384948105701', '24.270801446198963', '160.0', '15.0', '2020-09-10 21:06:20');
+INSERT INTO `t_order_position` VALUES (17529, 2, 2738, 8, '109.43841160926982', '24.27138470523662', '162.0', '15.0', '2020-09-10 21:06:25');
+INSERT INTO `t_order_position` VALUES (17530, 2, 2738, 8, '109.43832842523419', '24.272267866063704', '160.0', '15.0', '2020-09-10 21:06:35');
+INSERT INTO `t_order_position` VALUES (17531, 2, 2738, 8, '109.43826186467288', '24.2727511345051', '162.0', '15.0', '2020-09-10 21:06:40');
+INSERT INTO `t_order_position` VALUES (17532, 2, 2738, 8, '109.4380954374261', '24.273534444037825', '160.0', '15.0', '2020-09-10 21:06:50');
+INSERT INTO `t_order_position` VALUES (17533, 2, 2738, 8, '109.43801225312093', '24.274434266254556', '162.0', '15.0', '2020-09-10 21:07:00');
+INSERT INTO `t_order_position` VALUES (17534, 2, 2738, 8, '109.43794569156073', '24.27491753450079', '158.0', '15.0', '2020-09-10 21:07:05');
+INSERT INTO `t_order_position` VALUES (17535, 2, 2738, 8, '109.43769602249631', '24.275684296068174', '154.0', '15.0', '2020-09-10 21:07:15');
+INSERT INTO `t_order_position` VALUES (17536, 2, 2738, 8, '109.43739639986032', '24.276334494491714', '154.0', '15.0', '2020-09-10 21:07:25');
+INSERT INTO `t_order_position` VALUES (17537, 2, 2738, 8, '109.43703018794011', '24.277118069104738', '154.0', '15.0', '2020-09-10 21:07:36');
+INSERT INTO `t_order_position` VALUES (17538, 2, 2738, 8, '109.43679714269301', '24.277651541928233', '150.0', '15.0', '2020-09-10 21:07:41');
+INSERT INTO `t_order_position` VALUES (17539, 2, 2738, 8, '109.43641425981086', '24.27823519434035', '146.0', '15.0', '2020-09-10 21:07:46');
+INSERT INTO `t_order_position` VALUES (17540, 2, 2738, 8, '109.43598142371327', '24.278835566877202', '130.0', '11.0', '2020-09-10 21:07:51');
+INSERT INTO `t_order_position` VALUES (17541, 2, 2738, 8, '109.43518225590118', '24.27888657480215', '134.0', '15.0', '2020-09-10 21:07:56');
+INSERT INTO `t_order_position` VALUES (17542, 2, 2738, 8, '109.43458286832136', '24.27907059887218', '132.0', '15.0', '2020-09-10 21:08:01');
+INSERT INTO `t_order_position` VALUES (17543, 2, 2738, 8, '109.43400012082174', '24.27937121621234', '130.0', '15.0', '2020-09-10 21:08:11');
+INSERT INTO `t_order_position` VALUES (17544, 2, 2738, 8, '109.43335075309777', '24.279688559054197', '124.0', '15.0', '2020-09-10 21:08:51');
+INSERT INTO `t_order_position` VALUES (17545, 2, 2738, 8, '109.43286787938293', '24.27997236785757', '130.0', '15.0', '2020-09-10 21:09:01');
+INSERT INTO `t_order_position` VALUES (17546, 2, 2738, 8, '109.43236834031295', '24.280222862876336', '130.0', '15.0', '2020-09-10 21:09:11');
+INSERT INTO `t_order_position` VALUES (17547, 2, 2738, 8, '109.43180218025967', '24.28049008270436', '134.0', '15.0', '2020-09-10 21:09:21');
+INSERT INTO `t_order_position` VALUES (17548, 2, 2738, 8, '109.43111944050837', '24.28087404451047', '130.0', '15.0', '2020-09-10 21:09:31');
+INSERT INTO `t_order_position` VALUES (17549, 2, 2738, 8, '109.43060320897325', '24.28119116414043', '120.0', '15.0', '2020-09-10 21:09:41');
+INSERT INTO `t_order_position` VALUES (17550, 2, 2738, 8, '109.43008696427817', '24.281508272034603', '132.0', '15.0', '2020-09-10 21:09:51');
+INSERT INTO `t_order_position` VALUES (17551, 2, 2738, 8, '109.42945412601297', '24.281825486437537', '132.0', '15.0', '2020-09-10 21:10:01');
+INSERT INTO `t_order_position` VALUES (17552, 2, 2738, 8, '109.42875465107089', '24.282192732515174', '130.0', '15.0', '2020-09-10 21:10:11');
+INSERT INTO `t_order_position` VALUES (17553, 2, 2738, 8, '109.42812177487455', '24.28257655485647', '134.0', '15.0', '2020-09-10 21:10:22');
+INSERT INTO `t_order_position` VALUES (17554, 2, 2738, 8, '109.42737228335204', '24.282910482843203', '132.0', '15.0', '2020-09-10 21:10:32');
+INSERT INTO `t_order_position` VALUES (17555, 2, 2738, 8, '109.42667273885543', '24.283327648181643', '132.0', '15.0', '2020-09-10 21:10:42');
+INSERT INTO `t_order_position` VALUES (17556, 2, 2738, 8, '109.42673939978349', '24.283910736014345', '0.0', '15.0', '2020-09-10 21:11:17');
+INSERT INTO `t_order_position` VALUES (17557, 2, 2738, 8, '109.42697261878405', '24.284377044955043', '24.0', '15.0', '2020-09-10 21:11:57');
+INSERT INTO `t_order_position` VALUES (17558, 2, 2738, 8, '109.42732242946904', '24.284859906399358', '24.0', '15.0', '2020-09-10 21:12:27');
+INSERT INTO `t_order_position` VALUES (17559, 2, 2738, 8, '109.42765558894523', '24.285526053078318', '22.0', '15.0', '2020-09-10 21:12:53');
+INSERT INTO `t_order_position` VALUES (17560, 2, 2738, 8, '109.42803870865217', '24.286175486383996', '20.0', '15.0', '2020-09-10 21:13:08');
+INSERT INTO `t_order_position` VALUES (17561, 2, 2738, 8, '109.42835518724662', '24.286608379726296', '32.0', '15.0', '2020-09-10 21:13:18');
+INSERT INTO `t_order_position` VALUES (17562, 2, 2738, 8, '109.42880489776539', '24.28699115401011', '42.0', '15.0', '2020-09-10 21:13:33');
+INSERT INTO `t_order_position` VALUES (17563, 2, 2738, 8, '109.42923793976126', '24.287307290531395', '38.0', '15.0', '2020-09-10 21:13:58');
+INSERT INTO `t_order_position` VALUES (17564, 2, 2738, 8, '109.42965431627884', '24.287590113002633', '40.0', '15.0', '2020-09-10 21:14:18');
+INSERT INTO `t_order_position` VALUES (17565, 2, 2738, 8, '109.4303204908621', '24.287872666821926', '40.0', '15.0', '2020-09-10 21:15:54');
+INSERT INTO `t_order_position` VALUES (17566, 2, 2738, 8, '109.43078680206762', '24.288105431753078', '48.0', '15.0', '2020-09-10 21:16:04');
+INSERT INTO `t_order_position` VALUES (17567, 2, 2738, 8, '109.43135302365438', '24.288404723399445', '42.0', '15.0', '2020-09-10 21:16:19');
+INSERT INTO `t_order_position` VALUES (17568, 2, 2738, 8, '109.43198583389697', '24.288620619157197', '44.0', '15.0', '2020-09-10 21:16:34');
+INSERT INTO `t_order_position` VALUES (17569, 2, 2738, 8, '109.43255201915295', '24.2888698967508', '44.0', '15.0', '2020-09-10 21:16:49');
+INSERT INTO `t_order_position` VALUES (17570, 2, 2738, 8, '109.43320144837816', '24.28916904664456', '42.0', '15.0', '2020-09-10 21:17:04');
+INSERT INTO `t_order_position` VALUES (17571, 2, 2738, 8, '109.43373430114563', '24.289468318391894', '44.0', '15.0', '2020-09-10 21:17:14');
+INSERT INTO `t_order_position` VALUES (17572, 2, 2738, 8, '109.43433373393879', '24.28963420483792', '48.0', '15.0', '2020-09-10 21:17:24');
+INSERT INTO `t_order_position` VALUES (17573, 2, 2738, 8, '109.43499974391513', '24.289716685004446', '50.0', '15.0', '2020-09-10 21:17:49');
+INSERT INTO `t_order_position` VALUES (17574, 2, 2738, 8, '109.43581557673502', '24.28981561429498', '58.0', '15.0', '2020-09-10 21:19:00');
+INSERT INTO `t_order_position` VALUES (17575, 2, 2738, 8, '109.43674791109109', '24.289814391400764', '62.0', '15.0', '2020-09-10 21:19:10');
+INSERT INTO `t_order_position` VALUES (17576, 2, 2738, 8, '109.43751372302388', '24.289763374658452', '60.0', '15.0', '2020-09-10 21:19:21');
+INSERT INTO `t_order_position` VALUES (17577, 2, 2738, 8, '109.43844598353992', '24.289795406679268', '60.0', '15.0', '2020-09-10 21:19:30');
+INSERT INTO `t_order_position` VALUES (17578, 2, 2738, 8, '109.43906192329449', '24.28989450202689', '14.0', '15.0', '2020-09-10 21:20:45');
+INSERT INTO `t_order_position` VALUES (17579, 2, 2738, 8, '109.43906197900382', '24.2908442031916', '2.0', '15.0', '2020-09-10 21:20:55');
+INSERT INTO `t_order_position` VALUES (17580, 2, 2738, 8, '109.43906201712092', '24.29149399909476', '166.0', '15.0', '2020-09-10 21:21:00');
+INSERT INTO `t_order_position` VALUES (17581, 2, 2738, 8, '109.43906205132868', '24.29207714952039', '2.0', '15.0', '2020-09-10 21:21:05');
+INSERT INTO `t_order_position` VALUES (17582, 2, 2738, 8, '109.43907872823915', '24.292593630563513', '166.0', '15.0', '2020-09-10 21:21:11');
+INSERT INTO `t_order_position` VALUES (17583, 2, 2738, 8, '109.4391453468092', '24.293143363126564', '0.0', '15.0', '2020-09-10 21:21:16');
+INSERT INTO `t_order_position` VALUES (17584, 2, 2738, 8, '109.43917867605117', '24.2937597893944', '4.0', '15.0', '2020-09-10 21:21:21');
+INSERT INTO `t_order_position` VALUES (17585, 2, 2738, 8, '109.43921200719518', '24.29440953883167', '2.0', '15.0', '2020-09-10 21:21:26');
+INSERT INTO `t_order_position` VALUES (17586, 2, 2738, 8, '109.43929527862736', '24.295075878116336', '4.0', '15.0', '2020-09-10 21:21:31');
+INSERT INTO `t_order_position` VALUES (17587, 2, 2738, 8, '109.43931195730802', '24.29562568307977', '12.0', '15.0', '2020-09-10 21:21:36');
+INSERT INTO `t_order_position` VALUES (17588, 2, 2738, 8, '109.43936194635847', '24.296475347129036', '2.0', '15.0', '2020-09-10 21:23:01');
+INSERT INTO `t_order_position` VALUES (17589, 2, 2738, 8, '109.43941191476652', '24.29697511999008', '2.0', '15.0', '2020-09-10 21:23:06');
+INSERT INTO `t_order_position` VALUES (17590, 2, 2738, 8, '109.43946188501114', '24.297508215944987', '2.0', '15.0', '2020-09-10 21:23:11');
+INSERT INTO `t_order_position` VALUES (17591, 2, 2738, 8, '109.43956180755437', '24.298274500790164', '2.0', '15.0', '2020-09-10 21:23:21');
+INSERT INTO `t_order_position` VALUES (17592, 2, 2738, 8, '109.43981155028087', '24.29914053619539', '12.0', '15.0', '2020-09-10 21:23:31');
+INSERT INTO `t_order_position` VALUES (17593, 2, 2738, 8, '109.44012786841324', '24.299923163657557', '10.0', '15.0', '2020-09-10 21:23:41');
+INSERT INTO `t_order_position` VALUES (17594, 2, 2738, 8, '109.44041088977147', '24.30068917536237', '10.0', '15.0', '2020-09-10 21:23:52');
+INSERT INTO `t_order_position` VALUES (17595, 2, 2738, 8, '109.44069390737275', '24.30145518413698', '10.0', '15.0', '2020-09-10 21:24:02');
+INSERT INTO `t_order_position` VALUES (17596, 2, 2738, 8, '109.44087703561755', '24.30197141724732', '30.0', '15.0', '2020-09-10 21:24:12');
+INSERT INTO `t_order_position` VALUES (17597, 2, 2738, 8, '109.44129318007357', '24.30228735617924', '50.0', '15.0', '2020-09-10 21:24:22');
+INSERT INTO `t_order_position` VALUES (17598, 2, 2738, 8, '109.4421587078532', '24.302485959814284', '54.0', '15.0', '2020-09-10 21:24:32');
+INSERT INTO `t_order_position` VALUES (17599, 2, 2738, 8, '109.44297426541685', '24.302601304262577', '52.0', '15.0', '2020-09-10 21:24:42');
+INSERT INTO `t_order_position` VALUES (17600, 2, 2738, 8, '109.44357343484512', '24.3027502957547', '46.0', '15.0', '2020-09-10 21:24:52');
+INSERT INTO `t_order_position` VALUES (17601, 2, 2738, 8, '109.44418923540226', '24.30298255309564', '40.0', '15.0', '2020-09-10 21:25:02');
+INSERT INTO `t_order_position` VALUES (17602, 2, 2738, 8, '109.4446552365363', '24.30318172144479', '38.0', '15.0', '2020-09-10 21:25:07');
+INSERT INTO `t_order_position` VALUES (17603, 2, 2738, 8, '109.44537087524431', '24.303713691555085', '34.0', '15.0', '2020-09-10 21:25:17');
+INSERT INTO `t_order_position` VALUES (17604, 2, 2738, 8, '109.44578693403858', '24.30402955425363', '28.0', '15.0', '2020-09-10 21:25:22');
+INSERT INTO `t_order_position` VALUES (17605, 2, 2738, 8, '109.44616970568467', '24.304395452272296', '30.0', '15.0', '2020-09-10 21:25:27');
+INSERT INTO `t_order_position` VALUES (17606, 2, 2738, 8, '109.44670224508407', '24.30487771476831', '28.0', '15.0', '2020-09-10 21:25:37');
+INSERT INTO `t_order_position` VALUES (17607, 2, 2738, 8, '109.44730134696633', '24.305593110993215', '30.0', '15.0', '2020-09-10 21:25:47');
+INSERT INTO `t_order_position` VALUES (17608, 2, 2738, 8, '109.44796698563039', '24.30619174269119', '30.0', '15.0', '2020-09-10 21:25:57');
+INSERT INTO `t_order_position` VALUES (17609, 2, 2738, 8, '109.4482998005875', '24.306541036976085', '30.0', '15.0', '2020-09-10 21:26:02');
+INSERT INTO `t_order_position` VALUES (17610, 2, 2738, 8, '109.4487490927545', '24.30700674597266', '34.0', '15.0', '2020-09-10 21:26:08');
+INSERT INTO `t_order_position` VALUES (17611, 2, 2738, 8, '109.44918173132191', '24.307372508163272', '32.0', '15.0', '2020-09-10 21:26:13');
+INSERT INTO `t_order_position` VALUES (17612, 2, 2738, 8, '109.44956444479241', '24.307721694351827', '32.0', '15.0', '2020-09-10 21:26:18');
+INSERT INTO `t_order_position` VALUES (17613, 2, 2738, 8, '109.44999707200594', '24.308154089674137', '162.0', '15.0', '2020-09-10 21:26:28');
+INSERT INTO `t_order_position` VALUES (17614, 2, 2738, 8, '109.44959773092275', '24.307871587233407', '150.0', '15.0', '2020-09-10 21:27:23');
+INSERT INTO `t_order_position` VALUES (17615, 2, 2738, 8, '109.44923165596141', '24.30750570917456', '144.0', '15.0', '2020-09-10 21:27:38');
+INSERT INTO `t_order_position` VALUES (17616, 2, 2738, 8, '109.44888221535614', '24.30715645719445', '144.0', '15.0', '2020-09-10 21:27:48');
+INSERT INTO `t_order_position` VALUES (17617, 2, 2738, 8, '109.44846620771122', '24.306740674962242', '140.0', '15.0', '2020-09-10 21:28:03');
+INSERT INTO `t_order_position` VALUES (17618, 2, 2738, 8, '109.44801691486724', '24.30635826918257', '140.0', '15.0', '2020-09-10 21:28:13');
+INSERT INTO `t_order_position` VALUES (17619, 2, 2738, 8, '109.44756760926319', '24.305909209148002', '140.0', '15.0', '2020-09-10 21:28:23');
+INSERT INTO `t_order_position` VALUES (17620, 2, 2738, 8, '109.44720150182312', '24.30554330261336', '144.0', '15.0', '2020-09-10 21:28:33');
+INSERT INTO `t_order_position` VALUES (17621, 2, 2738, 8, '109.44680210610063', '24.30516078752087', '140.0', '15.0', '2020-09-10 21:28:49');
+INSERT INTO `t_order_position` VALUES (17622, 2, 2738, 8, '109.4463694183477', '24.30472833908291', '138.0', '15.0', '2020-09-10 21:29:04');
+INSERT INTO `t_order_position` VALUES (17623, 2, 2738, 8, '109.44590343562938', '24.304229294004482', '142.0', '15.0', '2020-09-10 21:29:19');
+INSERT INTO `t_order_position` VALUES (17624, 2, 2738, 8, '109.44545409074964', '24.303830181721548', '146.0', '15.0', '2020-09-10 21:29:29');
+INSERT INTO `t_order_position` VALUES (17625, 2, 2738, 8, '109.44497145658671', '24.30349776356835', '154.0', '15.0', '2020-09-10 21:29:39');
+INSERT INTO `t_order_position` VALUES (17626, 2, 2738, 8, '109.44438895612406', '24.303148839699027', '150.0', '15.0', '2020-09-10 21:29:49');
+INSERT INTO `t_order_position` VALUES (17627, 2, 2738, 8, '109.44382309002754', '24.30291650605024', '158.0', '15.0', '2020-09-10 21:30:04');
+INSERT INTO `t_order_position` VALUES (17628, 2, 2738, 8, '109.44317399234205', '24.302684292872765', '162.0', '15.0', '2020-09-10 21:30:24');
+INSERT INTO `t_order_position` VALUES (17629, 2, 2738, 8, '109.44259145580378', '24.30253526528561', '156.0', '15.0', '2020-09-10 21:30:39');
+INSERT INTO `t_order_position` VALUES (17630, 2, 2738, 8, '109.44184245879313', '24.302369820294636', '162.0', '15.0', '2020-09-10 21:30:54');
+INSERT INTO `t_order_position` VALUES (17631, 2, 2738, 8, '109.44132647175027', '24.30232062853742', '102.0', '15.0', '2020-09-10 21:31:04');
+INSERT INTO `t_order_position` VALUES (17632, 2, 2738, 8, '109.44054414178501', '24.30218851703109', '144.0', '15.0', '2020-09-10 21:33:00');
+INSERT INTO `t_order_position` VALUES (17633, 2, 2738, 8, '109.44031107578462', '24.30170567853645', '124.0', '15.0', '2020-09-10 21:33:25');
+INSERT INTO `t_order_position` VALUES (17634, 2, 2738, 8, '109.4400780033261', '24.301156191716174', '122.0', '15.0', '2020-09-10 21:33:35');
+INSERT INTO `t_order_position` VALUES (17635, 2, 2738, 8, '109.43986156551466', '24.300456724545867', '124.0', '15.0', '2020-09-10 21:33:46');
+INSERT INTO `t_order_position` VALUES (17636, 2, 2738, 8, '109.43962847639918', '24.299707295372638', '120.0', '15.0', '2020-09-10 21:33:56');
+INSERT INTO `t_order_position` VALUES (17637, 2, 2738, 8, '109.43949526750667', '24.29904102743842', '122.0', '15.0', '2020-09-10 21:34:06');
+INSERT INTO `t_order_position` VALUES (17638, 2, 2738, 8, '109.43932876987279', '24.29845811471202', '124.0', '15.0', '2020-09-10 21:34:16');
+INSERT INTO `t_order_position` VALUES (17639, 2, 2738, 8, '109.43917892039337', '24.29792516171067', '122.0', '15.0', '2020-09-10 21:34:26');
+INSERT INTO `t_order_position` VALUES (17640, 2, 2738, 8, '109.43909566023247', '24.297458758733338', '114.0', '15.0', '2020-09-10 21:34:36');
+INSERT INTO `t_order_position` VALUES (17641, 2, 2738, 8, '109.4390789852899', '24.29697559889888', '124.0', '15.0', '2020-09-10 21:36:22');
+INSERT INTO `t_order_position` VALUES (17642, 2, 2738, 8, '109.43899571789291', '24.296392565414667', '100.0', '15.0', '2020-09-10 21:37:07');
+INSERT INTO `t_order_position` VALUES (17643, 2, 2738, 8, '109.43818003677515', '24.296760268944958', '132.0', '15.0', '2020-09-10 21:37:22');
+INSERT INTO `t_order_position` VALUES (17644, 2, 2738, 8, '109.43764733256594', '24.29704425057483', '134.0', '15.0', '2020-09-10 21:37:27');
+INSERT INTO `t_order_position` VALUES (17645, 2, 2738, 8, '109.4371312629678', '24.297328197686163', '126.0', '15.0', '2020-09-10 21:37:32');
+INSERT INTO `t_order_position` VALUES (17646, 2, 2738, 8, '109.43634879608746', '24.297512516062408', '110.0', '15.0', '2020-09-10 21:37:42');
+INSERT INTO `t_order_position` VALUES (17647, 2, 2738, 8, '109.43564953877397', '24.297563409222935', '110.0', '15.0', '2020-09-10 21:37:52');
+INSERT INTO `t_order_position` VALUES (17648, 2, 2738, 8, '109.4346838538588', '24.297547967685823', '110.0', '15.0', '2020-09-10 21:38:02');
+INSERT INTO `t_order_position` VALUES (17649, 2, 2738, 8, '109.43390128368925', '24.29754892653891', '114.0', '15.0', '2020-09-10 21:38:12');
+INSERT INTO `t_order_position` VALUES (17650, 2, 2738, 8, '109.43338510308564', '24.297532882832954', '114.0', '15.0', '2020-09-10 21:38:17');
+INSERT INTO `t_order_position` VALUES (17651, 2, 2738, 8, '109.4328522608128', '24.29756683134971', '112.0', '15.0', '2020-09-10 21:38:22');
+INSERT INTO `t_order_position` VALUES (17652, 2, 2738, 8, '109.43221948925773', '24.29755089643143', '110.0', '15.0', '2020-09-10 21:38:27');
+INSERT INTO `t_order_position` VALUES (17653, 2, 2738, 8, '109.43138686644252', '24.297551825618537', '114.0', '15.0', '2020-09-10 21:38:38');
+INSERT INTO `t_order_position` VALUES (17654, 2, 2738, 8, '109.43057086393803', '24.29756936802985', '108.0', '15.0', '2020-09-10 21:38:48');
+INSERT INTO `t_order_position` VALUES (17655, 2, 2738, 8, '109.43000463713668', '24.297553300428696', '110.0', '15.0', '2020-09-10 21:38:53');
+INSERT INTO `t_order_position` VALUES (17656, 2, 2738, 8, '109.42935512424604', '24.297570625660175', '110.0', '15.0', '2020-09-10 21:38:58');
+INSERT INTO `t_order_position` VALUES (17657, 2, 2738, 8, '109.42872224249385', '24.297537931292638', '104.0', '15.0', '2020-09-10 21:39:03');
+INSERT INTO `t_order_position` VALUES (17658, 2, 2738, 8, '109.42787281402494', '24.297438777889642', '164.0', '15.0', '2020-09-10 21:39:13');
+INSERT INTO `t_order_position` VALUES (17659, 2, 2738, 8, '109.42735647391812', '24.297322627374356', '162.0', '15.0', '2020-09-10 21:39:18');
+INSERT INTO `t_order_position` VALUES (17660, 2, 2738, 8, '109.42644034451274', '24.296956896584536', '156.0', '15.0', '2020-09-10 21:39:28');
+INSERT INTO `t_order_position` VALUES (17661, 2, 2738, 8, '109.42595727620386', '24.296740715504235', '154.0', '15.0', '2020-09-10 21:39:33');
+INSERT INTO `t_order_position` VALUES (17662, 2, 2738, 8, '109.42540755945986', '24.296424610451083', '150.0', '15.0', '2020-09-10 21:39:43');
+INSERT INTO `t_order_position` VALUES (17663, 2, 2738, 8, '109.42485782757824', '24.29610849189133', '150.0', '15.0', '2020-09-10 21:40:08');
+INSERT INTO `t_order_position` VALUES (17664, 2, 2738, 8, '109.42432474116217', '24.295825669768604', '148.0', '15.0', '2020-09-10 21:40:18');
+INSERT INTO `t_order_position` VALUES (17665, 2, 2738, 8, '109.42377497354656', '24.29540955565304', '146.0', '15.0', '2020-09-10 21:40:28');
+INSERT INTO `t_order_position` VALUES (17666, 2, 2738, 8, '109.42307524815598', '24.29489356847331', '150.0', '15.0', '2020-09-10 21:40:38');
+INSERT INTO `t_order_position` VALUES (17667, 2, 2738, 8, '109.4224921266623', '24.29449410847301', '148.0', '15.0', '2020-09-10 21:40:54');
+INSERT INTO `t_order_position` VALUES (17668, 2, 2738, 8, '109.42177569732256', '24.294011415197193', '146.0', '15.0', '2020-09-10 21:41:04');
+INSERT INTO `t_order_position` VALUES (17669, 2, 2738, 8, '109.42115921806929', '24.293661926958148', '102.0', '15.0', '2020-09-10 21:41:14');
+INSERT INTO `t_order_position` VALUES (17670, 2, 2738, 8, '109.42024283108691', '24.29376246236791', '128.0', '15.0', '2020-09-10 21:41:24');
+INSERT INTO `t_order_position` VALUES (17671, 2, 2738, 8, '109.41965966565468', '24.29402938664947', '124.0', '15.0', '2020-09-10 21:41:29');
+INSERT INTO `t_order_position` VALUES (17672, 2, 2738, 8, '109.41527702773972', '24.295714265720807', '124.0', '13.0', '2020-09-10 21:42:09');
+INSERT INTO `t_order_position` VALUES (17673, 2, 2738, 8, '109.41437704355809', '24.295931182926687', '114.0', '14.0', '2020-09-10 21:42:19');
+INSERT INTO `t_order_position` VALUES (17674, 2, 2738, 8, '109.41384369192774', '24.295914692612723', '106.0', '15.0', '2020-09-10 21:42:24');
+INSERT INTO `t_order_position` VALUES (17675, 2, 2738, 8, '109.41317697772628', '24.295814919690105', '162.0', '15.0', '2020-09-10 21:42:34');
+INSERT INTO `t_order_position` VALUES (17676, 2, 2738, 8, '109.41259357699242', '24.29559847551902', '152.0', '15.0', '2020-09-10 21:42:44');
+INSERT INTO `t_order_position` VALUES (17677, 2, 2738, 8, '109.41187679641459', '24.295198769686646', '152.0', '15.0', '2020-09-10 21:42:54');
+INSERT INTO `t_order_position` VALUES (17678, 2, 2738, 8, '109.41110998316726', '24.2948323733538', '154.0', '15.0', '2020-09-10 21:43:04');
+INSERT INTO `t_order_position` VALUES (17679, 2, 2738, 8, '109.41049317905575', '24.294565896367125', '156.0', '13.0', '2020-09-10 21:43:14');
+INSERT INTO `t_order_position` VALUES (17680, 2, 2738, 8, '109.40792574256277', '24.29353314765814', '154.0', '12.0', '2020-09-10 21:43:40');
+INSERT INTO `t_order_position` VALUES (17681, 2, 2738, 8, '109.40730884833204', '24.293383214119995', '160.0', '14.0', '2020-09-10 21:43:50');
+INSERT INTO `t_order_position` VALUES (17682, 2, 2738, 8, '109.40629176661143', '24.293149949513175', '164.0', '12.0', '2020-09-10 21:44:00');
+INSERT INTO `t_order_position` VALUES (17683, 2, 2738, 8, '109.4047744113895', '24.293216504989278', '120.0', '14.0', '2020-09-10 21:44:20');
+INSERT INTO `t_order_position` VALUES (17684, 2, 2738, 8, '109.40412409021727', '24.293383050183945', '142.0', '15.0', '2020-09-10 21:44:30');
+INSERT INTO `t_order_position` VALUES (17685, 2, 2738, 8, '109.40374058736931', '24.293982813342375', '158.0', '15.0', '2020-09-10 21:44:40');
+INSERT INTO `t_order_position` VALUES (17686, 2, 2738, 8, '109.40360721150192', '24.294499300191468', '0.0', '15.0', '2020-09-10 21:45:00');
+INSERT INTO `t_order_position` VALUES (17687, 2, 2738, 8, '109.40312362049751', '24.294732486564516', '150.0', '15.0', '2020-09-10 21:46:51');
+INSERT INTO `t_order_position` VALUES (17688, 2, 2738, 8, '109.40220638778165', '24.294382427138917', '102.0', '15.0', '2020-09-10 21:47:01');
+INSERT INTO `t_order_position` VALUES (17689, 2, 2738, 8, '109.40155596977351', '24.29426565553516', '102.0', '15.0', '2020-09-10 21:47:06');
+INSERT INTO `t_order_position` VALUES (17690, 2, 2738, 8, '109.40087217565738', '24.294148857244508', '102.0', '15.0', '2020-09-10 21:47:11');
+INSERT INTO `t_order_position` VALUES (17691, 2, 2738, 8, '109.40022171647198', '24.294032048736153', '102.0', '15.0', '2020-09-10 21:47:16');
+INSERT INTO `t_order_position` VALUES (17692, 2, 2738, 8, '109.39948784202124', '24.29391519592198', '102.0', '15.0', '2020-09-10 21:47:21');
+INSERT INTO `t_order_position` VALUES (17693, 2, 2738, 8, '109.3986705428227', '24.293781629715404', '102.0', '15.0', '2020-09-10 21:47:26');
+INSERT INTO `t_order_position` VALUES (17694, 2, 2738, 8, '109.39785321052108', '24.2936147126758', '156.0', '15.0', '2020-09-10 21:47:31');
+INSERT INTO `t_order_position` VALUES (17695, 2, 2738, 8, '109.39718597083075', '24.293364523321525', '154.0', '15.0', '2020-09-10 21:47:36');
+INSERT INTO `t_order_position` VALUES (17696, 2, 2738, 8, '109.39663547615027', '24.29304772113848', '146.0', '15.0', '2020-09-10 21:47:41');
+INSERT INTO `t_order_position` VALUES (17697, 2, 2738, 8, '109.3960849656066', '24.29269758365926', '146.0', '15.0', '2020-09-10 21:47:46');
+INSERT INTO `t_order_position` VALUES (17698, 2, 2738, 8, '109.39550107397132', '24.292297433402272', '148.0', '15.0', '2020-09-10 21:47:51');
+INSERT INTO `t_order_position` VALUES (17699, 2, 2738, 8, '109.39498389913827', '24.29193062602673', '150.0', '15.0', '2020-09-10 21:47:56');
+INSERT INTO `t_order_position` VALUES (17700, 2, 2738, 8, '109.39445002924586', '24.291563799125825', '150.0', '15.0', '2020-09-10 21:48:01');
+INSERT INTO `t_order_position` VALUES (17701, 2, 2738, 8, '109.3939161455396', '24.29118029938526', '148.0', '15.0', '2020-09-10 21:48:06');
+INSERT INTO `t_order_position` VALUES (17702, 2, 2738, 8, '109.39341561753454', '24.290813468702062', '148.0', '15.0', '2020-09-10 21:48:11');
+INSERT INTO `t_order_position` VALUES (17703, 2, 2738, 8, '109.39296513453358', '24.290513303172105', '148.0', '15.0', '2020-09-10 21:48:16');
+INSERT INTO `t_order_position` VALUES (17704, 2, 2738, 8, '109.39251464154103', '24.290196468209107', '148.0', '15.0', '2020-09-10 21:48:21');
+INSERT INTO `t_order_position` VALUES (17705, 2, 2738, 8, '109.39208082625868', '24.289912958477274', '152.0', '15.0', '2020-09-10 21:48:26');
+INSERT INTO `t_order_position` VALUES (17706, 2, 2738, 8, '109.39141340015782', '24.28944601575537', '148.0', '15.0', '2020-09-10 21:48:37');
+INSERT INTO `t_order_position` VALUES (17707, 2, 2738, 8, '109.39081269726839', '24.288979100573332', '146.0', '15.0', '2020-09-10 21:48:47');
+INSERT INTO `t_order_position` VALUES (17708, 2, 2738, 8, '109.39017860552666', '24.288495486924276', '148.0', '15.0', '2020-09-10 21:48:57');
+INSERT INTO `t_order_position` VALUES (17709, 2, 2738, 8, '109.38939431296693', '24.287945103835252', '148.0', '15.0', '2020-09-10 21:49:07');
+INSERT INTO `t_order_position` VALUES (17710, 2, 2738, 8, '109.38869343398123', '24.287461405815208', '152.0', '15.0', '2020-09-10 21:49:17');
+INSERT INTO `t_order_position` VALUES (17711, 2, 2738, 8, '109.38817611629224', '24.287294397874213', '134.0', '15.0', '2020-09-10 21:49:47');
+INSERT INTO `t_order_position` VALUES (17712, 2, 2738, 8, '109.3875920590638', '24.28752720026732', '118.0', '15.0', '2020-09-10 21:50:02');
+INSERT INTO `t_order_position` VALUES (17713, 2, 2738, 8, '109.38689116291343', '24.28765992604696', '116.0', '15.0', '2020-09-10 21:50:12');
+INSERT INTO `t_order_position` VALUES (17714, 2, 2738, 8, '109.38627368784748', '24.287742719818404', '114.0', '15.0', '2020-09-10 21:50:22');
+INSERT INTO `t_order_position` VALUES (17715, 2, 2738, 8, '109.38552268045486', '24.287792060893953', '114.0', '15.0', '2020-09-10 21:50:32');
+INSERT INTO `t_order_position` VALUES (17716, 2, 2738, 8, '109.38490516970325', '24.287858162243488', '114.0', '15.0', '2020-09-10 21:50:47');
+INSERT INTO `t_order_position` VALUES (17717, 2, 2738, 8, '109.3843043346707', '24.287940926432086', '122.0', '15.0', '2020-09-10 21:50:57');
+INSERT INTO `t_order_position` VALUES (17718, 2, 2738, 8, '109.3836534191183', '24.288123599130753', '118.0', '15.0', '2020-09-10 21:51:53');
+INSERT INTO `t_order_position` VALUES (17719, 2, 2738, 8, '109.38300248764716', '24.288322918157476', '136.0', '15.0', '2020-09-10 21:52:38');
+INSERT INTO `t_order_position` VALUES (17720, 2, 2738, 8, '109.38255184828068', '24.28872235535935', '4.0', '15.0', '2020-09-10 21:55:04');
+INSERT INTO `t_order_position` VALUES (17721, 2, 2738, 8, '109.38236827093482', '24.28920535631238', '164.0', '15.0', '2020-09-10 21:55:19');
+INSERT INTO `t_order_position` VALUES (17722, 2, 2738, 8, '109.38216800749045', '24.28980496965072', '160.0', '15.0', '2020-09-10 21:55:34');
+INSERT INTO `t_order_position` VALUES (17723, 2, 2738, 8, '109.38208457661194', '24.29027140668149', '152.0', '15.0', '2020-09-10 21:55:50');
+INSERT INTO `t_order_position` VALUES (17724, 2, 2738, 8, '109.38205122350683', '24.290787877719684', '162.0', '15.0', '2020-09-10 21:59:46');
+INSERT INTO `t_order_position` VALUES (17725, 2, 2738, 8, '109.38181756415894', '24.29122084174106', '162.0', '15.0', '2020-09-10 21:59:56');
+INSERT INTO `t_order_position` VALUES (17726, 2, 2738, 8, '109.38163398154553', '24.291703838854907', '162.0', '15.0', '2020-09-10 22:00:11');
+INSERT INTO `t_order_position` VALUES (17727, 2, 2738, 8, '109.3810831400111', '24.291686616776477', '146.0', '15.0', '2020-09-10 22:01:02');
+INSERT INTO `t_order_position` VALUES (17728, 2, 2738, 8, '109.38066580928111', '24.291352956368595', '136.0', '15.0', '2020-09-10 22:01:12');
+INSERT INTO `t_order_position` VALUES (17729, 2, 2738, 8, '109.38031523638202', '24.290902730502353', '130.0', '15.0', '2020-09-10 22:01:22');
+INSERT INTO `t_order_position` VALUES (17730, 2, 2738, 8, '109.38001473492649', '24.290402569646048', '132.0', '15.0', '2020-09-10 22:01:37');
+INSERT INTO `t_order_position` VALUES (17731, 2, 2738, 8, '109.37959737654911', '24.28988561881902', '134.0', '15.0', '2020-09-10 22:01:47');
+INSERT INTO `t_order_position` VALUES (17732, 2, 2738, 8, '109.37924678562587', '24.289368735154994', '134.0', '15.0', '2020-09-10 22:01:57');
+INSERT INTO `t_order_position` VALUES (17733, 2, 2738, 8, '109.37886279881343', '24.28878516519193', '134.0', '15.0', '2020-09-10 22:02:07');
+INSERT INTO `t_order_position` VALUES (17734, 2, 2738, 8, '109.37837864557657', '24.28825146297846', '134.0', '15.0', '2020-09-10 22:02:17');
+INSERT INTO `t_order_position` VALUES (17735, 2, 2738, 8, '109.37802803396391', '24.287651258825818', '134.0', '15.0', '2020-09-10 22:02:27');
+INSERT INTO `t_order_position` VALUES (17736, 2, 2738, 8, '109.37771081647102', '24.28721770284536', '130.0', '15.0', '2020-09-10 22:02:37');
+INSERT INTO `t_order_position` VALUES (17737, 2, 2738, 8, '109.37744367618738', '24.28673421714026', '134.0', '15.0', '2020-09-10 22:02:47');
+INSERT INTO `t_order_position` VALUES (17738, 2, 2738, 8, '109.37709305948566', '24.28625063261387', '134.0', '15.0', '2020-09-10 22:02:57');
+INSERT INTO `t_order_position` VALUES (17739, 2, 2738, 8, '109.3767591362867', '24.285817047959117', '130.0', '15.0', '2020-09-10 22:03:07');
+INSERT INTO `t_order_position` VALUES (17740, 2, 2738, 8, '109.37652538104734', '24.28540023937173', '116.0', '15.0', '2020-09-10 22:03:17');
+INSERT INTO `t_order_position` VALUES (17741, 2, 2738, 8, '109.37634170085987', '24.284833536246953', '104.0', '15.0', '2020-09-10 22:03:28');
+INSERT INTO `t_order_position` VALUES (17742, 2, 2738, 8, '109.37579075351495', '24.284849540791743', '130.0', '15.0', '2020-09-10 22:03:38');
+INSERT INTO `t_order_position` VALUES (17743, 2, 2738, 8, '109.37517301966263', '24.28499874530001', '146.0', '15.0', '2020-09-10 22:05:03');
+INSERT INTO `t_order_position` VALUES (17744, 2, 2738, 8, '109.37483907679068', '24.28461512494221', '130.0', '15.0', '2020-09-10 22:05:13');
+INSERT INTO `t_order_position` VALUES (17745, 2, 2738, 8, '109.37447171794531', '24.283898232813158', '130.0', '15.0', '2020-09-10 22:05:23');
+INSERT INTO `t_order_position` VALUES (17746, 2, 2738, 8, '109.37417115225239', '24.283381356608245', '130.0', '15.0', '2020-09-10 22:05:33');
+INSERT INTO `t_order_position` VALUES (17747, 2, 2738, 8, '109.37377039646005', '24.282747722141373', '134.0', '15.0', '2020-09-10 22:05:43');
+INSERT INTO `t_order_position` VALUES (17748, 2, 2738, 8, '109.37328617469755', '24.282530509833656', '130.0', '15.0', '2020-09-10 22:05:58');
+INSERT INTO `t_order_position` VALUES (17749, 2, 2738, 8, '109.37271846931922', '24.28249645726825', '150.0', '15.0', '2020-09-10 22:06:19');
+INSERT INTO `t_order_position` VALUES (17750, 2, 2738, 8, '109.37220081884956', '24.281995943614604', '132.0', '15.0', '2020-09-10 22:06:39');
+INSERT INTO `t_order_position` VALUES (17751, 2, 2738, 8, '109.37178334090291', '24.281395586928884', '132.0', '15.0', '2020-09-10 22:06:54');
+INSERT INTO `t_order_position` VALUES (17752, 2, 2738, 8, '109.37128235815365', '24.280645162230783', '132.0', '15.0', '2020-09-10 22:07:04');
+INSERT INTO `t_order_position` VALUES (17753, 2, 2738, 8, '109.37101516405386', '24.28024493294543', '136.0', '15.0', '2020-09-10 22:07:09');
+INSERT INTO `t_order_position` VALUES (17754, 2, 2738, 8, '109.37061436863554', '24.27964458542411', '130.0', '15.0', '2020-09-10 22:07:19');
+INSERT INTO `t_order_position` VALUES (17755, 2, 2738, 8, '109.3702135661884', '24.279010911042104', '134.0', '15.0', '2020-09-10 22:07:29');
+INSERT INTO `t_order_position` VALUES (17756, 2, 2738, 8, '109.36986285431885', '24.278360640114993', '122.0', '15.0', '2020-09-10 22:07:39');
+INSERT INTO `t_order_position` VALUES (17757, 2, 2738, 8, '109.37001311247737', '24.277827685528386', '134.0', '15.0', '2020-09-10 22:07:49');
+INSERT INTO `t_order_position` VALUES (17758, 2, 2738, 8, '109.36977930061352', '24.277344187153236', '132.0', '15.0', '2020-09-10 22:08:04');
+INSERT INTO `t_order_position` VALUES (17759, 2, 2738, 8, '109.36947869092894', '24.276860594897705', '130.0', '15.0', '2020-09-10 22:08:14');
+INSERT INTO `t_order_position` VALUES (17760, 2, 2738, 8, '109.36907786460553', '24.276060296529327', '134.0', '15.0', '2020-09-10 22:08:24');
+INSERT INTO `t_order_position` VALUES (17761, 2, 2738, 8, '109.36884404989931', '24.275643437757026', '130.0', '15.0', '2020-09-10 22:08:29');
+INSERT INTO `t_order_position` VALUES (17762, 2, 2738, 8, '109.36857683258722', '24.275193208029364', '134.0', '15.0', '2020-09-10 22:08:34');
+INSERT INTO `t_order_position` VALUES (17763, 2, 2738, 8, '109.36800899777369', '24.27439266307829', '136.0', '15.0', '2020-09-10 22:08:44');
+INSERT INTO `t_order_position` VALUES (17764, 2, 2738, 8, '109.36750796427732', '24.273775479748867', '138.0', '15.0', '2020-09-10 22:08:55');
+INSERT INTO `t_order_position` VALUES (17765, 2, 2738, 8, '109.36697351988504', '24.273108257927344', '136.0', '15.0', '2020-09-10 22:09:05');
+INSERT INTO `t_order_position` VALUES (17766, 2, 2738, 8, '109.36660608600289', '24.272674530649823', '136.0', '15.0', '2020-09-10 22:09:15');
+INSERT INTO `t_order_position` VALUES (17767, 2, 2738, 8, '109.36612173081332', '24.272024032065193', '134.0', '15.0', '2020-09-10 22:09:25');
+INSERT INTO `t_order_position` VALUES (17768, 2, 2738, 8, '109.36560396025678', '24.271256849740915', '132.0', '15.0', '2020-09-10 22:09:35');
+INSERT INTO `t_order_position` VALUES (17769, 2, 2738, 8, '109.3653200185861', '24.270839896389706', '134.0', '15.0', '2020-09-10 22:09:40');
+INSERT INTO `t_order_position` VALUES (17770, 2, 2738, 8, '109.36486904848465', '24.27018943335787', '130.0', '15.0', '2020-09-10 22:09:50');
+INSERT INTO `t_order_position` VALUES (17771, 2, 2738, 8, '109.36448487777166', '24.269522405710546', '130.0', '15.0', '2020-09-10 22:10:05');
+INSERT INTO `t_order_position` VALUES (17772, 2, 2738, 8, '109.36430113197265', '24.26902229153598', '140.0', '15.0', '2020-09-10 22:10:25');
+INSERT INTO `t_order_position` VALUES (17773, 2, 2738, 8, '109.36390026332302', '24.26852184536711', '134.0', '15.0', '2020-09-10 22:10:36');
+INSERT INTO `t_order_position` VALUES (17774, 2, 2738, 8, '109.36361631039074', '24.268138203407776', '134.0', '15.0', '2020-09-10 22:10:54');
+INSERT INTO `t_order_position` VALUES (17775, 2, 2738, 8, '109.36331565138316', '24.267721211559568', '134.0', '15.0', '2020-09-10 22:10:54');
+INSERT INTO `t_order_position` VALUES (17776, 2, 2738, 8, '109.3630985044263', '24.267370991673175', '132.0', '15.0', '2020-09-10 22:10:54');
+INSERT INTO `t_order_position` VALUES (17777, 2, 2738, 8, '109.36283124382098', '24.266920726013314', '134.0', '15.0', '2020-09-10 22:10:56');
+INSERT INTO `t_order_position` VALUES (17778, 2, 2738, 8, '109.3623134301778', '24.266203488964614', '136.0', '15.0', '2020-09-10 22:11:15');
+INSERT INTO `t_order_position` VALUES (17779, 2, 2738, 8, '109.36184572633515', '24.265636275462292', '140.0', '15.0', '2020-09-10 22:11:15');
+INSERT INTO `t_order_position` VALUES (17780, 2, 2738, 8, '109.36167868901728', '24.265452739381754', '138.0', '15.0', '2020-09-10 22:11:20');
+INSERT INTO `t_order_position` VALUES (17781, 2, 2738, 8, '109.36134461034447', '24.26505234316073', '140.0', '15.0', '2020-09-10 22:11:30');
+INSERT INTO `t_order_position` VALUES (17782, 2, 2738, 8, '109.360910300245', '24.264468512277507', '130.0', '15.0', '2020-09-10 22:11:40');
+INSERT INTO `t_order_position` VALUES (17783, 2, 2738, 8, '109.3605929018995', '24.26378489838401', '128.0', '15.0', '2020-09-10 22:11:50');
+INSERT INTO `t_order_position` VALUES (17784, 2, 2738, 8, '109.36037572064276', '24.263101443873513', '126.0', '15.0', '2020-09-10 22:12:00');
+INSERT INTO `t_order_position` VALUES (17785, 2, 2738, 8, '109.36020865691937', '24.26256801941496', '0.0', '15.0', '2020-09-10 22:12:20');
+INSERT INTO `t_order_position` VALUES (17786, 2, 2738, 8, '109.35999148239661', '24.262034513606224', '122.0', '15.0', '2020-09-10 22:12:40');
+INSERT INTO `t_order_position` VALUES (17787, 2, 2738, 8, '109.35970748213778', '24.261317626607166', '126.0', '15.0', '2020-09-10 22:12:51');
+INSERT INTO `t_order_position` VALUES (17788, 2, 2738, 8, '109.35939006983898', '24.26055070061139', '128.0', '15.0', '2020-09-10 22:13:01');
+INSERT INTO `t_order_position` VALUES (17789, 2, 2738, 8, '109.35908935506252', '24.259717155907335', '126.0', '15.0', '2020-09-10 22:13:11');
+INSERT INTO `t_order_position` VALUES (17790, 2, 2738, 8, '109.35887217195126', '24.25913366283459', '124.0', '15.0', '2020-09-10 22:14:26');
+INSERT INTO `t_order_position` VALUES (17791, 2, 2738, 8, '109.35892224945373', '24.258550607470156', '84.0', '15.0', '2020-09-10 22:14:46');
+INSERT INTO `t_order_position` VALUES (17792, 2, 2738, 8, '109.35949016343945', '24.258351601558925', '70.0', '15.0', '2020-09-10 22:15:01');
+INSERT INTO `t_order_position` VALUES (17793, 2, 2738, 8, '109.35997455201299', '24.258135793057157', '88.0', '15.0', '2020-09-10 22:15:11');
+INSERT INTO `t_order_position` VALUES (17794, 2, 2738, 8, '109.3606426736594', '24.25798691862911', '72.0', '15.0', '2020-09-10 22:16:02');
+INSERT INTO `t_order_position` VALUES (17795, 2, 2738, 8, '109.36116045268928', '24.257737829387676', '100.0', '15.0', '2020-09-10 22:16:12');
+INSERT INTO `t_order_position` VALUES (17796, 2, 2738, 8, '109.36139426852476', '24.257321674396298', '66.0', '15.0', '2020-09-10 22:16:22');
+INSERT INTO `t_order_position` VALUES (17797, 2, 2738, 8, '109.36217928923067', '24.25725626825631', '58.0', '15.0', '2020-09-10 22:16:32');
+INSERT INTO `t_order_position` VALUES (17798, 2, 2738, 8, '109.3627972752989', '24.257240572115304', '58.0', '15.0', '2020-09-10 22:16:37');
+INSERT INTO `t_order_position` VALUES (17799, 2, 2738, 8, '109.36346535822757', '24.25724160540193', '60.0', '15.0', '2020-09-10 22:16:42');
+INSERT INTO `t_order_position` VALUES (17800, 2, 2738, 8, '109.3639998160688', '24.257242424518775', '56.0', '15.0', '2020-09-10 22:16:47');
+INSERT INTO `t_order_position` VALUES (17801, 2, 2738, 8, '109.36491839844311', '24.25726047750246', '60.0', '15.0', '2020-09-10 22:16:57');
+INSERT INTO `t_order_position` VALUES (17802, 2, 2738, 8, '109.3654361341068', '24.25726125300421', '60.0', '15.0', '2020-09-10 22:17:02');
+INSERT INTO `t_order_position` VALUES (17803, 2, 2738, 8, '109.36602066438573', '24.257245459536435', '58.0', '15.0', '2020-09-10 22:17:08');
+INSERT INTO `t_order_position` VALUES (17804, 2, 2738, 8, '109.36663858784075', '24.257263028404488', '58.0', '15.0', '2020-09-10 22:17:12');
+INSERT INTO `t_order_position` VALUES (17805, 2, 2738, 8, '109.36742350049393', '24.2572641674777', '60.0', '15.0', '2020-09-10 22:17:17');
+INSERT INTO `t_order_position` VALUES (17806, 2, 2738, 8, '109.368091496026', '24.257248463200252', '60.0', '15.0', '2020-09-10 22:17:22');
+INSERT INTO `t_order_position` VALUES (17807, 2, 2738, 8, '109.36870938091711', '24.257249337682854', '58.0', '15.0', '2020-09-10 22:17:27');
+INSERT INTO `t_order_position` VALUES (17808, 2, 2738, 8, '109.36934395333873', '24.257250225095145', '0.0', '15.0', '2020-09-10 22:17:48');
+INSERT INTO `t_order_position` VALUES (17809, 2, 2738, 8, '109.3699785153047', '24.257284423602773', '56.0', '15.0', '2020-09-10 22:18:28');
+INSERT INTO `t_order_position` VALUES (17810, 2, 2738, 8, '109.37086354141384', '24.257335610413286', '54.0', '15.0', '2020-09-10 22:18:38');
+INSERT INTO `t_order_position` VALUES (17811, 2, 2738, 8, '109.37141458295957', '24.25736967078668', '54.0', '15.0', '2020-09-10 22:18:43');
+INSERT INTO `t_order_position` VALUES (17812, 2, 2738, 8, '109.37198231340827', '24.257420405482282', '56.0', '15.0', '2020-09-10 22:18:48');
+INSERT INTO `t_order_position` VALUES (17813, 2, 2738, 8, '109.37271700691281', '24.257471347315917', '54.0', '15.0', '2020-09-10 22:18:53');
+INSERT INTO `t_order_position` VALUES (17814, 2, 2738, 8, '109.37321792499608', '24.257521975012896', '54.0', '15.0', '2020-09-10 22:18:58');
+INSERT INTO `t_order_position` VALUES (17815, 2, 2738, 8, '109.37371883663066', '24.257605917351523', '56.0', '15.0', '2020-09-10 22:19:08');
+INSERT INTO `t_order_position` VALUES (17816, 2, 2738, 8, '109.37443679013316', '24.25764013939355', '56.0', '15.0', '2020-09-10 22:19:28');
+INSERT INTO `t_order_position` VALUES (17817, 2, 2738, 8, '109.37540516577154', '24.25770797251579', '54.0', '15.0', '2020-09-10 22:19:38');
+INSERT INTO `t_order_position` VALUES (17818, 2, 2738, 8, '109.37608968762757', '24.257758778550546', '54.0', '15.0', '2020-09-10 22:19:43');
+INSERT INTO `t_order_position` VALUES (17819, 2, 2738, 8, '109.376924447304', '24.257809745218417', '54.0', '15.0', '2020-09-10 22:19:53');
+INSERT INTO `t_order_position` VALUES (17820, 2, 2738, 8, '109.37757554510966', '24.25789380218285', '52.0', '15.0', '2020-09-10 22:20:28');
+INSERT INTO `t_order_position` VALUES (17821, 2, 2738, 8, '109.3784937317851', '24.257978144176064', '54.0', '15.0', '2020-09-10 22:20:39');
+INSERT INTO `t_order_position` VALUES (17822, 2, 2738, 8, '109.37902793433578', '24.258012056736124', '52.0', '15.0', '2020-09-10 22:20:44');
+INSERT INTO `t_order_position` VALUES (17823, 2, 2738, 8, '109.37981252708371', '24.258096212061158', '54.0', '15.0', '2020-09-10 22:20:54');
+INSERT INTO `t_order_position` VALUES (17824, 2, 2738, 8, '109.38059709080484', '24.258080380326895', '60.0', '15.0', '2020-09-10 22:21:04');
+INSERT INTO `t_order_position` VALUES (17825, 2, 2738, 8, '109.38109785087504', '24.257847643897875', '104.0', '15.0', '2020-09-10 22:21:14');
+INSERT INTO `t_order_position` VALUES (17826, 2, 2738, 8, '109.38124804209654', '24.257181355511488', '108.0', '15.0', '2020-09-10 22:21:24');
+INSERT INTO `t_order_position` VALUES (17827, 2, 2738, 8, '109.38136485504612', '24.256631660002324', '108.0', '15.0', '2020-09-10 22:21:29');
+INSERT INTO `t_order_position` VALUES (17828, 2, 2738, 8, '109.38148166454097', '24.25603198109151', '110.0', '15.0', '2020-09-10 22:21:34');
+INSERT INTO `t_order_position` VALUES (17829, 2, 2738, 8, '109.3816485454797', '24.25536570830698', '108.0', '15.0', '2020-09-10 22:21:39');
+INSERT INTO `t_order_position` VALUES (17830, 2, 2738, 8, '109.38178203969575', '24.254666079316333', '108.0', '15.0', '2020-09-10 22:21:44');
+INSERT INTO `t_order_position` VALUES (17831, 2, 2738, 8, '109.38189884339461', '24.2539997553805', '108.0', '15.0', '2020-09-10 22:21:49');
+INSERT INTO `t_order_position` VALUES (17832, 2, 2738, 8, '109.38209910299304', '24.253300192143723', '108.0', '15.0', '2020-09-10 22:21:55');
+INSERT INTO `t_order_position` VALUES (17833, 2, 2738, 8, '109.38226597991606', '24.252633916917883', '108.0', '15.0', '2020-09-10 22:21:59');
+INSERT INTO `t_order_position` VALUES (17834, 2, 2738, 8, '109.38239947286289', '24.25196760824466', '108.0', '15.0', '2020-09-10 22:22:04');
+INSERT INTO `t_order_position` VALUES (17835, 2, 2738, 8, '109.38253296901259', '24.251367943188765', '102.0', '15.0', '2020-09-10 22:22:09');
+INSERT INTO `t_order_position` VALUES (17836, 2, 2738, 8, '109.38268315866107', '24.25081827691154', '110.0', '15.0', '2020-09-10 22:22:14');
+INSERT INTO `t_order_position` VALUES (17837, 2, 2738, 8, '109.38279996603737', '24.25028523872769', '108.0', '15.0', '2020-09-10 22:22:19');
+INSERT INTO `t_order_position` VALUES (17838, 2, 2738, 8, '109.38286670338819', '24.2498187958525', '108.0', '15.0', '2020-09-10 22:22:24');
+INSERT INTO `t_order_position` VALUES (17839, 2, 2738, 8, '109.3830001882948', '24.249069180673445', '110.0', '15.0', '2020-09-10 22:22:54');
+INSERT INTO `t_order_position` VALUES (17840, 2, 2738, 8, '109.38315036053201', '24.24826959827547', '106.0', '15.0', '2020-09-10 22:23:04');
+INSERT INTO `t_order_position` VALUES (17841, 2, 2738, 8, '109.38335059659519', '24.247336775376763', '108.0', '15.0', '2020-09-10 22:23:14');
+INSERT INTO `t_order_position` VALUES (17842, 2, 2738, 8, '109.38346739892728', '24.24677041367922', '108.0', '15.0', '2020-09-10 22:23:19');
+INSERT INTO `t_order_position` VALUES (17843, 2, 2738, 8, '109.38358420266717', '24.246237373570033', '110.0', '15.0', '2020-09-10 22:23:25');
+INSERT INTO `t_order_position` VALUES (17844, 2, 2738, 8, '109.38368431428735', '24.245687656590064', '108.0', '15.0', '2020-09-10 22:23:30');
+INSERT INTO `t_order_position` VALUES (17845, 2, 2738, 8, '109.38376773691526', '24.24517124572002', '112.0', '15.0', '2020-09-10 22:23:35');
+INSERT INTO `t_order_position` VALUES (17846, 2, 2738, 8, '109.38383446583775', '24.244604836458027', '112.0', '15.0', '2020-09-10 22:23:40');
+INSERT INTO `t_order_position` VALUES (17847, 2, 2738, 8, '109.38391788503529', '24.244038442722115', '114.0', '15.0', '2020-09-10 22:23:45');
+INSERT INTO `t_order_position` VALUES (17848, 2, 2738, 8, '109.38401799336414', '24.24345540345011', '112.0', '15.0', '2020-09-10 22:23:50');
+INSERT INTO `t_order_position` VALUES (17849, 2, 2738, 8, '109.38408472551941', '24.242955637798328', '108.0', '15.0', '2020-09-10 22:23:55');
+INSERT INTO `t_order_position` VALUES (17850, 2, 2738, 8, '109.3841848195118', '24.242139345702753', '114.0', '15.0', '2020-09-10 22:24:05');
+INSERT INTO `t_order_position` VALUES (17851, 2, 2738, 8, '109.38423486196425', '24.241656225642966', '112.0', '15.0', '2020-09-10 22:24:10');
+INSERT INTO `t_order_position` VALUES (17852, 2, 2738, 8, '109.3843015886556', '24.24107315556108', '112.0', '15.0', '2020-09-10 22:24:15');
+INSERT INTO `t_order_position` VALUES (17853, 2, 2738, 8, '109.38438499457052', '24.24030683103313', '112.0', '15.0', '2020-09-10 22:24:25');
+INSERT INTO `t_order_position` VALUES (17854, 2, 2738, 8, '109.38455184655105', '24.239473938771983', '102.0', '15.0', '2020-09-10 22:24:35');
+INSERT INTO `t_order_position` VALUES (17855, 2, 2738, 8, '109.38470202994037', '24.239024230829607', '104.0', '15.0', '2020-09-10 22:24:45');
+INSERT INTO `t_order_position` VALUES (17856, 2, 2738, 8, '109.38490227791885', '24.23850792346938', '100.0', '15.0', '2020-09-10 22:24:50');
+INSERT INTO `t_order_position` VALUES (17857, 2, 2738, 8, '109.38515259316762', '24.23799165908994', '98.0', '15.0', '2020-09-10 22:24:55');
+INSERT INTO `t_order_position` VALUES (17858, 2, 2738, 8, '109.38538621934259', '24.2375253605497', '100.0', '15.0', '2020-09-10 22:25:00');
+INSERT INTO `t_order_position` VALUES (17859, 2, 2738, 8, '109.38565322186068', '24.237059089043687', '100.0', '15.0', '2020-09-10 22:25:05');
+INSERT INTO `t_order_position` VALUES (17860, 2, 2738, 8, '109.38607040524683', '24.236293047943697', '96.0', '15.0', '2020-09-10 22:25:15');
+INSERT INTO `t_order_position` VALUES (17861, 2, 2738, 8, '109.38632071242543', '24.235843416875543', '100.0', '15.0', '2020-09-10 22:25:20');
+INSERT INTO `t_order_position` VALUES (17862, 2, 2738, 8, '109.38657101506219', '24.235360461943603', '100.0', '15.0', '2020-09-10 22:25:25');
+INSERT INTO `t_order_position` VALUES (17863, 2, 2738, 8, '109.3868380045429', '24.234894179367927', '98.0', '15.0', '2020-09-10 22:25:30');
+INSERT INTO `t_order_position` VALUES (17864, 2, 2738, 8, '109.38710498910616', '24.234394572619145', '100.0', '15.0', '2020-09-10 22:25:35');
+INSERT INTO `t_order_position` VALUES (17865, 2, 2738, 8, '109.38742202806863', '24.233778377711673', '100.0', '15.0', '2020-09-10 22:25:40');
+INSERT INTO `t_order_position` VALUES (17866, 2, 2738, 8, '109.38763894539439', '24.23332870830894', '98.0', '15.0', '2020-09-10 22:25:45');
+INSERT INTO `t_order_position` VALUES (17867, 2, 2738, 8, '109.38805609530104', '24.232579298852116', '96.0', '15.0', '2020-09-10 22:25:56');
+INSERT INTO `t_order_position` VALUES (17868, 2, 2738, 8, '109.38830638367628', '24.232162971785872', '100.0', '15.0', '2020-09-10 22:26:01');
+INSERT INTO `t_order_position` VALUES (17869, 2, 2738, 8, '109.3885566674471', '24.231713320849916', '98.0', '15.0', '2020-09-10 22:26:06');
+INSERT INTO `t_order_position` VALUES (17870, 2, 2738, 8, '109.38877357535858', '24.23128030347582', '98.0', '15.0', '2020-09-10 22:26:11');
+INSERT INTO `t_order_position` VALUES (17871, 2, 2738, 8, '109.3890238541605', '24.230830648319476', '100.0', '15.0', '2020-09-10 22:26:16');
+INSERT INTO `t_order_position` VALUES (17872, 2, 2738, 8, '109.38925744451633', '24.23039763949052', '98.0', '15.0', '2020-09-10 22:26:21');
+INSERT INTO `t_order_position` VALUES (17873, 2, 2738, 8, '109.38950771912141', '24.22996464071068', '98.0', '15.0', '2020-09-10 22:26:26');
+INSERT INTO `t_order_position` VALUES (17874, 2, 2738, 8, '109.38975799006269', '24.2295149788542', '100.0', '15.0', '2020-09-10 22:26:31');
+INSERT INTO `t_order_position` VALUES (17875, 2, 2738, 8, '109.39002494354516', '24.22904866562658', '96.0', '15.0', '2020-09-10 22:26:36');
+INSERT INTO `t_order_position` VALUES (17876, 2, 2738, 8, '109.39029189199934', '24.22854902823167', '102.0', '15.0', '2020-09-10 22:26:41');
+INSERT INTO `t_order_position` VALUES (17877, 2, 2738, 8, '109.39052546570393', '24.228049365495878', '98.0', '15.0', '2020-09-10 22:26:46');
+INSERT INTO `t_order_position` VALUES (17878, 2, 2738, 8, '109.39077572564335', '24.22759969427445', '98.0', '15.0', '2020-09-10 22:26:51');
+INSERT INTO `t_order_position` VALUES (17879, 2, 2738, 8, '109.3910092993252', '24.22718333118768', '100.0', '15.0', '2020-09-10 22:26:56');
+INSERT INTO `t_order_position` VALUES (17880, 2, 2738, 8, '109.39144307507956', '24.226450541877288', '94.0', '15.0', '2020-09-10 22:27:06');
+INSERT INTO `t_order_position` VALUES (17881, 2, 2738, 8, '109.39184347089487', '24.225684403001466', '100.0', '15.0', '2020-09-10 22:27:16');
+INSERT INTO `t_order_position` VALUES (17882, 2, 2738, 8, '109.39209371152577', '24.225151415767723', '100.0', '15.0', '2020-09-10 22:27:21');
+INSERT INTO `t_order_position` VALUES (17883, 2, 2738, 8, '109.39241068932276', '24.22465178832468', '88.0', '15.0', '2020-09-10 22:27:31');
+INSERT INTO `t_order_position` VALUES (17884, 2, 2738, 8, '109.39297793360059', '24.22430225128502', '76.0', '15.0', '2020-09-10 22:27:41');
+INSERT INTO `t_order_position` VALUES (17885, 2, 2738, 8, '109.39362858352067', '24.223986069742956', '82.0', '15.0', '2020-09-10 22:27:51');
+INSERT INTO `t_order_position` VALUES (17886, 2, 2738, 8, '109.39436262877805', '24.223653254900242', '76.0', '15.0', '2020-09-10 22:28:21');
+INSERT INTO `t_order_position` VALUES (17887, 2, 2738, 8, '109.39518005608245', '24.223220495631956', '76.0', '15.0', '2020-09-10 22:28:31');
+INSERT INTO `t_order_position` VALUES (17888, 2, 2738, 8, '109.39568050872055', '24.222987489019317', '74.0', '15.0', '2020-09-10 22:28:36');
+INSERT INTO `t_order_position` VALUES (17889, 2, 2738, 8, '109.39653125084119', '24.222571361510397', '80.0', '15.0', '2020-09-10 22:28:47');
+INSERT INTO `t_order_position` VALUES (17890, 2, 2738, 8, '109.3969816256507', '24.222271663328733', '84.0', '15.0', '2020-09-10 22:28:52');
+INSERT INTO `t_order_position` VALUES (17891, 2, 2738, 8, '109.39751538361577', '24.22178872261669', '92.0', '15.0', '2020-09-10 22:28:57');
+INSERT INTO `t_order_position` VALUES (17892, 2, 2738, 8, '109.39789900898091', '24.221355695016637', '92.0', '15.0', '2020-09-10 22:29:02');
+INSERT INTO `t_order_position` VALUES (17893, 2, 2738, 8, '109.39828262752414', '24.220922661400966', '92.0', '15.0', '2020-09-10 22:29:07');
+INSERT INTO `t_order_position` VALUES (17894, 2, 2738, 8, '109.39864956144929', '24.220522937249527', '92.0', '15.0', '2020-09-10 22:29:12');
+INSERT INTO `t_order_position` VALUES (17895, 2, 2738, 8, '109.39926666281131', '24.21984005914006', '90.0', '15.0', '2020-09-10 22:29:22');
+INSERT INTO `t_order_position` VALUES (17896, 2, 2738, 8, '109.3998837434082', '24.21910718323918', '92.0', '15.0', '2020-09-10 22:29:32');
+INSERT INTO `t_order_position` VALUES (17897, 2, 2738, 8, '109.40023397133233', '24.21870743002489', '92.0', '15.0', '2020-09-10 22:29:37');
+INSERT INTO `t_order_position` VALUES (17898, 2, 2738, 8, '109.40056751622124', '24.218324327838985', '92.0', '15.0', '2020-09-10 22:29:42');
+INSERT INTO `t_order_position` VALUES (17899, 2, 2738, 8, '109.40091773382282', '24.217941225327113', '90.0', '15.0', '2020-09-10 22:29:47');
+INSERT INTO `t_order_position` VALUES (17900, 2, 2738, 8, '109.40135132702898', '24.21744151313436', '90.0', '15.0', '2020-09-10 22:30:02');
+INSERT INTO `t_order_position` VALUES (17901, 2, 2738, 8, '109.40185161541177', '24.216858504406588', '92.0', '15.0', '2020-09-10 22:30:12');
+INSERT INTO `t_order_position` VALUES (17902, 2, 2738, 8, '109.40248529919448', '24.216158886450046', '94.0', '15.0', '2020-09-10 22:30:22');
+INSERT INTO `t_order_position` VALUES (17903, 2, 2738, 8, '109.40283548288069', '24.215742434396606', '92.0', '15.0', '2020-09-10 22:30:27');
+INSERT INTO `t_order_position` VALUES (17904, 2, 2738, 8, '109.40316898452616', '24.21532597446934', '92.0', '15.0', '2020-09-10 22:30:32');
+INSERT INTO `t_order_position` VALUES (17905, 2, 2738, 8, '109.40353583261525', '24.214909514735698', '90.0', '15.0', '2020-09-10 22:30:42');
+INSERT INTO `t_order_position` VALUES (17906, 2, 2738, 8, '109.40408609505363', '24.21432646601224', '92.0', '15.0', '2020-09-10 22:30:52');
+INSERT INTO `t_order_position` VALUES (17907, 2, 2738, 8, '109.40475305673979', '24.213560148552475', '90.0', '15.0', '2020-09-10 22:31:02');
+INSERT INTO `t_order_position` VALUES (17908, 2, 2738, 8, '109.40510320315516', '24.213160323369312', '88.0', '15.0', '2020-09-10 22:31:07');
+INSERT INTO `t_order_position` VALUES (17909, 2, 2738, 8, '109.4055533854609', '24.21269385648957', '94.0', '15.0', '2020-09-10 22:31:12');
+INSERT INTO `t_order_position` VALUES (17910, 2, 2738, 8, '109.40607024650154', '24.212110759011555', '92.0', '15.0', '2020-09-10 22:31:18');
+INSERT INTO `t_order_position` VALUES (17911, 2, 2738, 8, '109.40655375061108', '24.21157763141017', '94.0', '15.0', '2020-09-10 22:31:23');
+INSERT INTO `t_order_position` VALUES (17912, 2, 2738, 8, '109.40698722704545', '24.211094475816683', '94.0', '15.0', '2020-09-10 22:31:28');
+INSERT INTO `t_order_position` VALUES (17913, 2, 2738, 8, '109.40747070948376', '24.210561329038587', '92.0', '15.0', '2020-09-10 22:31:38');
+INSERT INTO `t_order_position` VALUES (17914, 2, 2738, 8, '109.40798752404615', '24.21001150992587', '90.0', '15.0', '2020-09-10 22:31:48');
+INSERT INTO `t_order_position` VALUES (17915, 2, 2738, 8, '109.40842097098815', '24.20954498796326', '94.0', '15.0', '2020-09-10 22:31:53');
+INSERT INTO `t_order_position` VALUES (17916, 2, 2738, 8, '109.40875438399135', '24.209161769237852', '92.0', '15.0', '2020-09-10 22:31:58');
+INSERT INTO `t_order_position` VALUES (17917, 2, 2738, 8, '109.40913780359202', '24.20874521957618', '92.0', '15.0', '2020-09-10 22:32:03');
+INSERT INTO `t_order_position` VALUES (17918, 2, 2738, 8, '109.40955455401203', '24.208262017229885', '92.0', '15.0', '2020-09-10 22:32:08');
+INSERT INTO `t_order_position` VALUES (17919, 2, 2738, 8, '109.41003797535112', '24.207728816359946', '92.0', '15.0', '2020-09-10 22:32:13');
+INSERT INTO `t_order_position` VALUES (17920, 2, 2738, 8, '109.41050471689078', '24.207228929079776', '92.0', '15.0', '2020-09-10 22:32:18');
+INSERT INTO `t_order_position` VALUES (17921, 2, 2738, 8, '109.41093810896126', '24.20674569880328', '90.0', '15.0', '2020-09-10 22:32:23');
+INSERT INTO `t_order_position` VALUES (17922, 2, 2738, 8, '109.4113714917085', '24.20626246027105', '92.0', '15.0', '2020-09-10 22:32:28');
+INSERT INTO `t_order_position` VALUES (17923, 2, 2738, 8, '109.4117881959939', '24.205779217097646', '102.0', '15.0', '2020-09-10 22:32:33');
+INSERT INTO `t_order_position` VALUES (17924, 2, 2738, 8, '109.41198819524249', '24.205279355750317', '110.0', '15.0', '2020-09-10 22:32:38');
+INSERT INTO `t_order_position` VALUES (17925, 2, 2738, 8, '109.41203815999397', '24.204562940202468', '116.0', '15.0', '2020-09-10 22:32:43');
+INSERT INTO `t_order_position` VALUES (17926, 2, 2738, 8, '109.41203812867059', '24.20402980236525', '130.0', '15.0', '2020-09-10 22:32:48');
+INSERT INTO `t_order_position` VALUES (17927, 2, 2738, 8, '109.41125466112335', '24.203813380300133', '114.0', '15.0', '2020-09-10 22:32:58');
+INSERT INTO `t_order_position` VALUES (17928, 2, 2738, 8, '109.41050451721021', '24.203830173309917', '112.0', '15.0', '2020-09-10 22:33:03');
+INSERT INTO `t_order_position` VALUES (17929, 2, 2738, 8, '109.40970433094097', '24.203813626440546', '112.0', '15.0', '2020-09-10 22:33:08');
+INSERT INTO `t_order_position` VALUES (17930, 2, 2738, 8, '109.40893745504503', '24.20378038761104', '112.0', '15.0', '2020-09-10 22:33:13');
+INSERT INTO `t_order_position` VALUES (17931, 2, 2738, 8, '109.40813720981028', '24.20381376681928', '112.0', '15.0', '2020-09-10 22:33:18');
+INSERT INTO `t_order_position` VALUES (17932, 2, 2738, 8, '109.40738694850238', '24.2037971350694', '112.0', '15.0', '2020-09-10 22:33:23');
+INSERT INTO `t_order_position` VALUES (17933, 2, 2738, 8, '109.40687008546998', '24.20378047994918', '106.0', '15.0', '2020-09-10 22:33:28');
+INSERT INTO `t_order_position` VALUES (17934, 2, 2738, 8, '109.40636988101447', '24.20373049238358', '100.0', '15.0', '2020-09-10 22:33:33');
+INSERT INTO `t_order_position` VALUES (17935, 2, 2738, 8, '109.40583631340407', '24.203630510692754', '158.0', '15.0', '2020-09-10 22:33:38');
+INSERT INTO `t_order_position` VALUES (17936, 2, 2738, 8, '109.40496922647941', '24.20329724330976', '154.0', '15.0', '2020-09-10 22:33:48');
+INSERT INTO `t_order_position` VALUES (17937, 2, 2738, 8, '109.40440228007841', '24.203330509863132', '152.0', '15.0', '2020-09-10 22:34:04');
+INSERT INTO `t_order_position` VALUES (17938, 2, 2738, 8, '109.404168854615', '24.203813639343924', '152.0', '15.0', '2020-09-10 22:34:14');
+INSERT INTO `t_order_position` VALUES (17939, 2, 2738, 8, '109.40373530714285', '24.204096813273296', '156.0', '15.0', '2020-09-10 22:34:29');
+INSERT INTO `t_order_position` VALUES (17940, 2, 2738, 8, '109.4033017202896', '24.203863501884353', '154.0', '15.0', '2020-09-10 22:34:39');
+INSERT INTO `t_order_position` VALUES (17941, 2, 2738, 8, '109.40328501388724', '24.203347022169645', '104.0', '15.0', '2020-09-10 22:44:13');
+INSERT INTO `t_order_position` VALUES (17942, 2, 2738, 8, '109.40361850047846', '24.202797274001973', '84.0', '15.0', '2020-09-10 22:45:03');
+INSERT INTO `t_order_position` VALUES (17943, 2, 2738, 8, '109.40405204451571', '24.202414139184228', '94.0', '15.0', '2020-09-10 22:51:10');
+INSERT INTO `t_order_position` VALUES (17944, 2, 2738, 8, '109.4042854752074', '24.201997653365574', '106.0', '15.0', '2020-09-10 22:53:01');
+INSERT INTO `t_order_position` VALUES (17945, 2, 2738, 8, '109.40450222817435', '24.20158116353756', '98.0', '15.0', '2020-09-10 22:56:52');
+INSERT INTO `t_order_position` VALUES (17946, 2, 2738, 8, '109.40465227612732', '24.20111468374084', '0.0', '15.0', '2020-09-10 22:58:33');
+INSERT INTO `t_order_position` VALUES (17947, 2, 2738, 8, '109.40486902524785', '24.200698190637617', '98.0', '15.0', '2020-09-10 23:08:01');
+INSERT INTO `t_order_position` VALUES (17948, 2, 2738, 8, '109.40523582950203', '24.20004845957342', '70.0', '15.0', '2020-09-10 23:08:16');
+INSERT INTO `t_order_position` VALUES (17949, 2, 2738, 8, '109.40576941268614', '24.200148455079617', '44.0', '15.0', '2020-09-10 23:08:26');
+INSERT INTO `t_order_position` VALUES (17950, 2, 2738, 8, '109.40610291692064', '24.200581642667245', '152.0', '15.0', '2020-09-10 23:08:36');
+INSERT INTO `t_order_position` VALUES (17951, 2, 2738, 8, '109.4056527701602', '24.20144797034306', '152.0', '15.0', '2020-09-10 23:08:46');
+INSERT INTO `t_order_position` VALUES (17952, 2, 2738, 8, '109.40540268251834', '24.20189778992313', '150.0', '15.0', '2020-09-10 23:08:51');
+INSERT INTO `t_order_position` VALUES (17953, 2, 2738, 8, '109.4051525957525', '24.20241424904151', '152.0', '15.0', '2020-09-10 23:08:56');
+INSERT INTO `t_order_position` VALUES (17954, 2, 2738, 8, '109.40491917485078', '24.202830743730857', '160.0', '15.0', '2020-09-10 23:09:01');
+INSERT INTO `t_order_position` VALUES (17955, 2, 2738, 8, '109.40525269188569', '24.203247283695525', '44.0', '15.0', '2020-09-10 23:09:17');
+INSERT INTO `t_order_position` VALUES (17956, 2, 2738, 8, '109.40588632464133', '24.203447246880433', '52.0', '15.0', '2020-09-10 23:09:22');
+INSERT INTO `t_order_position` VALUES (17957, 2, 2738, 8, '109.40646991055188', '24.2035305678182', '54.0', '15.0', '2020-09-10 23:09:27');
+INSERT INTO `t_order_position` VALUES (17958, 2, 2738, 8, '109.40705347690783', '24.203563892184402', '58.0', '15.0', '2020-09-10 23:09:32');
+INSERT INTO `t_order_position` VALUES (17959, 2, 2738, 8, '109.4076536991502', '24.203597201038548', '60.0', '15.0', '2020-09-10 23:09:37');
+INSERT INTO `t_order_position` VALUES (17960, 2, 2738, 8, '109.40825390176487', '24.20359717292438', '58.0', '15.0', '2020-09-10 23:09:42');
+INSERT INTO `t_order_position` VALUES (17961, 2, 2738, 8, '109.40888743073182', '24.203613786546516', '60.0', '15.0', '2020-09-10 23:09:47');
+INSERT INTO `t_order_position` VALUES (17962, 2, 2738, 8, '109.40953760896122', '24.20359705936101', '58.0', '15.0', '2020-09-10 23:09:52');
+INSERT INTO `t_order_position` VALUES (17963, 2, 2738, 8, '109.41022110915372', '24.203613629642504', '60.0', '15.0', '2020-09-10 23:09:57');
+INSERT INTO `t_order_position` VALUES (17964, 2, 2738, 8, '109.41092125411605', '24.203596855081148', '58.0', '15.0', '2020-09-10 23:10:02');
+INSERT INTO `t_order_position` VALUES (17965, 2, 2738, 8, '109.41167138446558', '24.203613369239086', '58.0', '15.0', '2020-09-10 23:10:07');
+INSERT INTO `t_order_position` VALUES (17966, 2, 2738, 8, '109.41250482872263', '24.20361317710545', '58.0', '15.0', '2020-09-10 23:10:12');
+INSERT INTO `t_order_position` VALUES (17967, 2, 2738, 8, '109.4131715592059', '24.203613001017693', '60.0', '15.0', '2020-09-10 23:10:17');
+INSERT INTO `t_order_position` VALUES (17968, 2, 2738, 8, '109.41378826514783', '24.203612820395712', '58.0', '15.0', '2020-09-10 23:10:22');
+INSERT INTO `t_order_position` VALUES (17969, 2, 2738, 8, '109.41440495305854', '24.203629283253655', '60.0', '15.0', '2020-09-10 23:10:27');
+INSERT INTO `t_order_position` VALUES (17970, 2, 2738, 8, '109.4149882870666', '24.203612419963424', '58.0', '15.0', '2020-09-10 23:10:32');
+INSERT INTO `t_order_position` VALUES (17971, 2, 2738, 8, '109.41560493694594', '24.203612188994065', '60.0', '15.0', '2020-09-10 23:10:37');
+INSERT INTO `t_order_position` VALUES (17972, 2, 2738, 8, '109.41623823319115', '24.2036119339583', '58.0', '15.0', '2020-09-10 23:10:42');
+INSERT INTO `t_order_position` VALUES (17973, 2, 2738, 8, '109.4169215039345', '24.203611638515223', '58.0', '15.0', '2020-09-10 23:10:47');
+INSERT INTO `t_order_position` VALUES (17974, 2, 2738, 8, '109.41760475123088', '24.20361132201519', '60.0', '15.0', '2020-09-10 23:10:52');
+INSERT INTO `t_order_position` VALUES (17975, 2, 2738, 8, '109.41832130245946', '24.203610967441087', '60.0', '15.0', '2020-09-10 23:10:57');
+INSERT INTO `t_order_position` VALUES (17976, 2, 2738, 8, '109.41903782689478', '24.203593929132307', '58.0', '15.0', '2020-09-10 23:11:02');
+INSERT INTO `t_order_position` VALUES (17977, 2, 2738, 8, '109.41978765142264', '24.203593508974432', '60.0', '15.0', '2020-09-10 23:11:07');
+INSERT INTO `t_order_position` VALUES (17978, 2, 2738, 8, '109.42055410850973', '24.2035763926791', '58.0', '15.0', '2020-09-10 23:11:12');
+INSERT INTO `t_order_position` VALUES (17979, 2, 2738, 8, '109.42123723101234', '24.203575964108577', '58.0', '15.0', '2020-09-10 23:11:17');
+INSERT INTO `t_order_position` VALUES (17980, 2, 2738, 8, '109.42190366937609', '24.20357552568325', '60.0', '15.0', '2020-09-10 23:11:22');
+INSERT INTO `t_order_position` VALUES (17981, 2, 2738, 8, '109.42262006669608', '24.203591692568278', '58.0', '15.0', '2020-09-10 23:11:27');
+INSERT INTO `t_order_position` VALUES (17982, 2, 2738, 8, '109.42338641563298', '24.203591138828145', '58.0', '15.0', '2020-09-10 23:11:32');
+INSERT INTO `t_order_position` VALUES (17983, 2, 2738, 8, '109.42418605265688', '24.203590532788834', '60.0', '15.0', '2020-09-10 23:11:37');
+INSERT INTO `t_order_position` VALUES (17984, 2, 2738, 8, '109.42503563088263', '24.20357319677431', '60.0', '15.0', '2020-09-10 23:11:42');
+INSERT INTO `t_order_position` VALUES (17985, 2, 2738, 8, '109.4258851739387', '24.203572488855865', '58.0', '15.0', '2020-09-10 23:11:47');
+INSERT INTO `t_order_position` VALUES (17986, 2, 2738, 8, '109.42685127708866', '24.203571644399247', '58.0', '15.0', '2020-09-10 23:11:53');
+INSERT INTO `t_order_position` VALUES (17987, 2, 2738, 8, '109.42753418396951', '24.20357102222506', '60.0', '15.0', '2020-09-10 23:11:58');
+INSERT INTO `t_order_position` VALUES (17988, 2, 2738, 8, '109.42823372302604', '24.203570363250623', '58.0', '15.0', '2020-09-10 23:12:03');
+INSERT INTO `t_order_position` VALUES (17989, 2, 2738, 8, '109.42896654736816', '24.203569649469607', '58.0', '15.0', '2020-09-10 23:12:08');
+INSERT INTO `t_order_position` VALUES (17990, 2, 2738, 8, '109.42964938340737', '24.20358562337839', '60.0', '15.0', '2020-09-10 23:12:13');
+INSERT INTO `t_order_position` VALUES (17991, 2, 2738, 8, '109.43038215535127', '24.20356820289276', '60.0', '15.0', '2020-09-10 23:12:18');
+INSERT INTO `t_order_position` VALUES (17992, 2, 2738, 8, '109.43106494359034', '24.203584133900698', '60.0', '15.0', '2020-09-10 23:12:23');
+INSERT INTO `t_order_position` VALUES (17993, 2, 2738, 8, '109.43176436038442', '24.203583365191438', '58.0', '15.0', '2020-09-10 23:12:28');
+INSERT INTO `t_order_position` VALUES (17994, 2, 2738, 8, '109.43243044927021', '24.20358261303457', '58.0', '15.0', '2020-09-10 23:12:33');
+INSERT INTO `t_order_position` VALUES (17995, 2, 2738, 8, '109.43297995623246', '24.20358197781788', '66.0', '15.0', '2020-09-10 23:12:38');
+INSERT INTO `t_order_position` VALUES (17996, 2, 2738, 8, '109.43331296303741', '24.203231714833123', '114.0', '15.0', '2020-09-10 23:12:48');
+INSERT INTO `t_order_position` VALUES (17997, 2, 2738, 8, '109.433362888318', '24.202748499837345', '114.0', '15.0', '2020-09-10 23:12:53');
+INSERT INTO `t_order_position` VALUES (17998, 2, 2738, 8, '109.433379506261', '24.202182021648262', '112.0', '15.0', '2020-09-10 23:12:58');
+INSERT INTO `t_order_position` VALUES (17999, 2, 2738, 8, '109.43336281890261', '24.201565601477355', '118.0', '15.0', '2020-09-10 23:13:03');
+INSERT INTO `t_order_position` VALUES (18000, 2, 2738, 8, '109.43334613153066', '24.200949181476815', '118.0', '15.0', '2020-09-10 23:13:08');
+INSERT INTO `t_order_position` VALUES (18001, 2, 2738, 8, '109.4332961407038', '24.200316140506033', '118.0', '15.0', '2020-09-10 23:13:13');
+INSERT INTO `t_order_position` VALUES (18002, 2, 2738, 8, '109.4332294965066', '24.199649798214367', '116.0', '15.0', '2020-09-10 23:13:18');
+INSERT INTO `t_order_position` VALUES (18003, 2, 2738, 8, '109.4331795053947', '24.19901675737988', '120.0', '15.0', '2020-09-10 23:13:23');
+INSERT INTO `t_order_position` VALUES (18004, 2, 2738, 8, '109.43307955800124', '24.19835045422822', '120.0', '15.0', '2020-09-10 23:13:28');
+INSERT INTO `t_order_position` VALUES (18005, 2, 2738, 8, '109.4329796052307', '24.197600848325493', '120.0', '15.0', '2020-09-10 23:13:33');
+INSERT INTO `t_order_position` VALUES (18006, 2, 2738, 8, '109.43279641147842', '24.19715122797189', '102.0', '15.0', '2020-09-10 23:13:48');
+INSERT INTO `t_order_position` VALUES (18007, 2, 2738, 8, '109.4321969412441', '24.197118594452714', '114.0', '15.0', '2020-09-10 23:14:18');
+INSERT INTO `t_order_position` VALUES (18008, 2, 2738, 8, '109.43158080172341', '24.19710262404897', '146.0', '15.0', '2020-09-10 23:14:34');
+INSERT INTO `t_order_position` VALUES (18009, 2, 2738, 8, '109.43138093966367', '24.19660302931822', '122.0', '15.0', '2020-09-10 23:14:49');
+INSERT INTO `t_order_position` VALUES (18010, 2, 2738, 8, '109.4312643285957', '24.19590341623013', '124.0', '15.0', '2020-09-10 23:15:14');
+INSERT INTO `t_order_position` VALUES (18011, 2, 2738, 8, '109.43113107656373', '24.195420407192856', '0.0', '15.0', '2020-09-10 23:15:44');
+INSERT INTO `t_order_position` VALUES (18012, 2, 2738, 8, '109.43129764317835', '24.196053324244875', '12.0', '15.0', '2020-09-10 23:16:39');
+INSERT INTO `t_order_position` VALUES (18013, 2, 2738, 8, '109.43144755176772', '24.196619616603975', '8.0', '15.0', '2020-09-10 23:16:59');
+INSERT INTO `t_order_position` VALUES (18014, 2, 2738, 8, '109.4315141939676', '24.197152679152865', '8.0', '15.0', '2020-09-10 23:17:20');
+INSERT INTO `t_order_position` VALUES (18015, 2, 2738, 8, '109.4316474591321', '24.19790225441447', '6.0', '15.0', '2020-09-10 23:17:35');
+INSERT INTO `t_order_position` VALUES (18016, 2, 2738, 8, '109.43174741452162', '24.198585224227756', '8.0', '15.0', '2020-09-10 23:17:50');
+INSERT INTO `t_order_position` VALUES (18017, 2, 2738, 8, '109.43188067522402', '24.199284817072257', '4.0', '15.0', '2020-09-10 23:18:05');
+INSERT INTO `t_order_position` VALUES (18018, 2, 2738, 8, '109.43194731502632', '24.199801218496283', '0.0', '15.0', '2020-09-10 23:18:15');
+INSERT INTO `t_order_position` VALUES (18019, 2, 2738, 8, '109.43183077663537', '24.200284504233785', '154.0', '15.0', '2020-09-10 23:18:25');
+INSERT INTO `t_order_position` VALUES (18020, 2, 2738, 8, '109.43154770958436', '24.200734653043284', '138.0', '15.0', '2020-09-10 23:18:35');
+INSERT INTO `t_order_position` VALUES (18021, 2, 2738, 8, '109.43079834704108', '24.20110200033429', '110.0', '15.0', '2020-09-10 23:18:45');
+INSERT INTO `t_order_position` VALUES (18022, 2, 2738, 8, '109.43023213032373', '24.201152581698285', '114.0', '15.0', '2020-09-10 23:18:50');
+INSERT INTO `t_order_position` VALUES (18023, 2, 2738, 8, '109.42968254806235', '24.20113648969563', '112.0', '15.0', '2020-09-10 23:18:55');
+INSERT INTO `t_order_position` VALUES (18024, 2, 2738, 8, '109.42908298681026', '24.201120434069143', '114.0', '15.0', '2020-09-10 23:19:00');
+INSERT INTO `t_order_position` VALUES (18025, 2, 2738, 8, '109.42818361295532', '24.20112131140776', '112.0', '15.0', '2020-09-10 23:19:10');
+INSERT INTO `t_order_position` VALUES (18026, 2, 2738, 8, '109.42760066593254', '24.201155181834803', '114.0', '15.0', '2020-09-10 23:19:15');
+INSERT INTO `t_order_position` VALUES (18027, 2, 2738, 8, '109.42718428692224', '24.201555417745602', '166.0', '15.0', '2020-09-10 23:19:25');
+INSERT INTO `t_order_position` VALUES (18028, 2, 2738, 8, '109.42716766097135', '24.2020719095694', '166.0', '15.0', '2020-09-10 23:19:35');
+INSERT INTO `t_order_position` VALUES (18029, 2, 2738, 8, '109.42716769325659', '24.20262170744673', '166.0', '15.0', '2020-09-10 23:19:40');
+INSERT INTO `t_order_position` VALUES (18030, 2, 2738, 8, '109.42715107022723', '24.20318818116879', '0.0', '15.0', '2020-09-10 23:19:45');
+INSERT INTO `t_order_position` VALUES (18031, 2, 2738, 8, '109.42705116348581', '24.203721409430592', '110.0', '15.0', '2020-09-10 23:20:01');
+INSERT INTO `t_order_position` VALUES (18032, 2, 2738, 8, '109.42630161419062', '24.203755396075156', '114.0', '15.0', '2020-09-10 23:20:11');
+INSERT INTO `t_order_position` VALUES (18033, 2, 2738, 8, '109.42576858386951', '24.203772514569923', '114.0', '15.0', '2020-09-10 23:20:16');
+INSERT INTO `t_order_position` VALUES (18034, 2, 2738, 8, '109.42520222254177', '24.203772987152252', '112.0', '15.0', '2020-09-10 23:20:21');
+INSERT INTO `t_order_position` VALUES (18035, 2, 2738, 8, '109.42455255398326', '24.203790172027126', '114.0', '15.0', '2020-09-10 23:20:26');
+INSERT INTO `t_order_position` VALUES (18036, 2, 2738, 8, '109.42381956905868', '24.203807401317032', '114.0', '15.0', '2020-09-10 23:20:31');
+INSERT INTO `t_order_position` VALUES (18037, 2, 2738, 8, '109.42306989650017', '24.203807957941425', '114.0', '15.0', '2020-09-10 23:20:36');
+INSERT INTO `t_order_position` VALUES (18038, 2, 2738, 8, '109.42237017664776', '24.203808454592078', '114.0', '15.0', '2020-09-10 23:20:41');
+INSERT INTO `t_order_position` VALUES (18039, 2, 2738, 8, '109.42163711041228', '24.203808951195445', '112.0', '15.0', '2020-09-10 23:20:46');
+INSERT INTO `t_order_position` VALUES (18040, 2, 2738, 8, '109.42092067768944', '24.203792752517128', '112.0', '15.0', '2020-09-10 23:20:51');
+INSERT INTO `t_order_position` VALUES (18041, 2, 2738, 8, '109.42018755899824', '24.203809861689937', '114.0', '15.0', '2020-09-10 23:20:56');
+INSERT INTO `t_order_position` VALUES (18042, 2, 2738, 8, '109.4193877612515', '24.203810323403108', '112.0', '15.0', '2020-09-10 23:21:01');
+INSERT INTO `t_order_position` VALUES (18043, 2, 2738, 8, '109.41858793132901', '24.203810756221134', '110.0', '15.0', '2020-09-10 23:21:06');
+INSERT INTO `t_order_position` VALUES (18044, 2, 2738, 8, '109.41767141803635', '24.203777895534778', '114.0', '15.0', '2020-09-10 23:21:11');
+INSERT INTO `t_order_position` VALUES (18045, 2, 2738, 8, '109.41692151470197', '24.20379490459398', '114.0', '15.0', '2020-09-10 23:21:16');
+INSERT INTO `t_order_position` VALUES (18046, 2, 2738, 8, '109.41613825213136', '24.20381190206065', '112.0', '15.0', '2020-09-10 23:21:21');
+INSERT INTO `t_order_position` VALUES (18047, 2, 2738, 8, '109.4153549568164', '24.20379555077203', '114.0', '15.0', '2020-09-10 23:21:26');
+INSERT INTO `t_order_position` VALUES (18048, 2, 2738, 8, '109.41455496489974', '24.203795838109084', '112.0', '15.0', '2020-09-10 23:21:31');
+INSERT INTO `t_order_position` VALUES (18049, 2, 2738, 8, '109.41385494568985', '24.20379606592553', '112.0', '15.0', '2020-09-10 23:21:36');
+INSERT INTO `t_order_position` VALUES (18050, 2, 2738, 8, '109.41327157763287', '24.203796238965236', '114.0', '15.0', '2020-09-10 23:21:41');
+INSERT INTO `t_order_position` VALUES (18051, 2, 2738, 8, '109.41265485676071', '24.203813065853726', '114.0', '15.0', '2020-09-10 23:21:46');
+INSERT INTO `t_order_position` VALUES (18052, 2, 2738, 8, '109.41197144012803', '24.20381323028052', '112.0', '15.0', '2020-09-10 23:21:51');
+INSERT INTO `t_order_position` VALUES (18053, 2, 2738, 8, '109.41125466112335', '24.203813380300133', '112.0', '15.0', '2020-09-10 23:21:56');
+INSERT INTO `t_order_position` VALUES (18054, 2, 2738, 8, '109.41047117483181', '24.20379685750819', '112.0', '15.0', '2020-09-10 23:22:01');
+INSERT INTO `t_order_position` VALUES (18055, 2, 2738, 8, '109.40968765909844', '24.203796967953064', '114.0', '15.0', '2020-09-10 23:22:06');
+INSERT INTO `t_order_position` VALUES (18056, 2, 2738, 8, '109.4088874414982', '24.20379705262522', '112.0', '15.0', '2020-09-10 23:22:11');
+INSERT INTO `t_order_position` VALUES (18057, 2, 2738, 8, '109.40808719331471', '24.20381376951142', '112.0', '15.0', '2020-09-10 23:22:16');
+INSERT INTO `t_order_position` VALUES (18058, 2, 2738, 8, '109.40730358551825', '24.203813797293286', '110.0', '15.0', '2020-09-10 23:22:21');
+INSERT INTO `t_order_position` VALUES (18059, 2, 2738, 8, '109.406536618169', '24.203763816676954', '100.0', '15.0', '2020-09-10 23:22:26');
+INSERT INTO `t_order_position` VALUES (18060, 2, 2738, 8, '109.40581963839774', '24.20361384936602', '160.0', '15.0', '2020-09-10 23:22:31');
+INSERT INTO `t_order_position` VALUES (18061, 2, 2738, 8, '109.40525270264995', '24.203430549741586', '152.0', '15.0', '2020-09-10 23:22:36');
+INSERT INTO `t_order_position` VALUES (18062, 2, 2738, 8, '109.40456902142421', '24.203163921865663', '134.0', '15.0', '2020-09-10 23:22:47');
+INSERT INTO `t_order_position` VALUES (18063, 2, 2738, 8, '109.40420219945368', '24.203713679957666', '142.0', '15.0', '2020-09-10 23:22:57');
+INSERT INTO `t_order_position` VALUES (18064, 2, 2738, 8, '109.40443562551955', '24.203247210711748', '90.0', '15.0', '2020-09-11 00:00:45');
+INSERT INTO `t_order_position` VALUES (18065, 2, 2738, 8, '109.40490251378037', '24.20306398994035', '40.0', '15.0', '2020-09-11 00:00:55');
+INSERT INTO `t_order_position` VALUES (18066, 2, 2738, 8, '109.40575292942982', '24.203397258982523', '52.0', '15.0', '2020-09-11 00:01:06');
+INSERT INTO `t_order_position` VALUES (18067, 2, 2738, 8, '109.40631984746858', '24.203513904014752', '52.0', '15.0', '2020-09-11 00:01:11');
+INSERT INTO `t_order_position` VALUES (18068, 2, 2738, 8, '109.4069701135416', '24.203597213736312', '56.0', '15.0', '2020-09-11 00:01:16');
+INSERT INTO `t_order_position` VALUES (18069, 2, 2738, 8, '109.40767037266257', '24.203613861023808', '62.0', '15.0', '2020-09-11 00:01:21');
+INSERT INTO `t_order_position` VALUES (18070, 2, 2738, 8, '109.40830391980795', '24.203630490967928', '60.0', '15.0', '2020-09-11 00:01:26');
+INSERT INTO `t_order_position` VALUES (18071, 2, 2738, 8, '109.40893744721494', '24.203647103189624', '56.0', '15.0', '2020-09-11 00:01:31');
+INSERT INTO `t_order_position` VALUES (18072, 2, 2738, 8, '109.40957095483732', '24.20366369764679', '60.0', '15.0', '2020-09-11 00:01:36');
+INSERT INTO `t_order_position` VALUES (18073, 2, 2738, 8, '109.41020444165264', '24.20366361374737', '60.0', '15.0', '2020-09-11 00:01:41');
+INSERT INTO `t_order_position` VALUES (18074, 2, 2738, 8, '109.41082123769193', '24.203646854360336', '56.0', '15.0', '2020-09-11 00:01:46');
+INSERT INTO `t_order_position` VALUES (18075, 2, 2738, 8, '109.4114213464061', '24.203646741930573', '60.0', '15.0', '2020-09-11 00:01:51');
+INSERT INTO `t_order_position` VALUES (18076, 2, 2738, 8, '109.4120047682759', '24.203646617216208', '56.0', '15.0', '2020-09-11 00:01:56');
+INSERT INTO `t_order_position` VALUES (18077, 2, 2738, 8, '109.41260484166617', '24.203646473065486', '58.0', '15.0', '2020-09-11 00:02:01');
+INSERT INTO `t_order_position` VALUES (18078, 2, 2738, 8, '109.4120548034635', '24.2041297618876', '0.0', '15.0', '2020-09-11 00:02:26');
+INSERT INTO `t_order_position` VALUES (18079, 2, 2738, 8, '109.41207150173517', '24.204629574806336', '166.0', '15.0', '2020-09-11 00:02:31');
+INSERT INTO `t_order_position` VALUES (18080, 2, 2738, 8, '109.41203819914833', '24.20522936269448', '154.0', '15.0', '2020-09-11 00:02:36');
+INSERT INTO `t_order_position` VALUES (18081, 2, 2738, 8, '109.4117548635711', '24.20587918773062', '144.0', '15.0', '2020-09-11 00:02:41');
+INSERT INTO `t_order_position` VALUES (18082, 2, 2738, 8, '109.41122147660067', '24.20644575586613', '140.0', '15.0', '2020-09-11 00:02:46');
+INSERT INTO `t_order_position` VALUES (18083, 2, 2738, 8, '109.4106380692141', '24.207078962136404', '142.0', '15.0', '2020-09-11 00:02:51');
+INSERT INTO `t_order_position` VALUES (18084, 2, 2738, 8, '109.41010465561182', '24.20769548581439', '140.0', '15.0', '2020-09-11 00:02:56');
+INSERT INTO `t_order_position` VALUES (18085, 2, 2738, 8, '109.40960456689217', '24.208262011291062', '144.0', '15.0', '2020-09-11 00:03:01');
+INSERT INTO `t_order_position` VALUES (18086, 2, 2738, 8, '109.409171146212', '24.208745216245354', '144.0', '15.0', '2020-09-11 00:03:06');
+INSERT INTO `t_order_position` VALUES (18087, 2, 2738, 8, '109.40848765559272', '24.20949500156576', '140.0', '15.0', '2020-09-11 00:03:16');
+INSERT INTO `t_order_position` VALUES (18088, 2, 2738, 8, '109.40808755251388', '24.209928201851046', '140.0', '15.0', '2020-09-11 00:03:21');
+INSERT INTO `t_order_position` VALUES (18089, 2, 2738, 8, '109.4077207836303', '24.210311412150983', '140.0', '15.0', '2020-09-11 00:03:26');
+INSERT INTO `t_order_position` VALUES (18090, 2, 2738, 8, '109.4073373373092', '24.21072793815381', '140.0', '15.0', '2020-09-11 00:03:36');
+INSERT INTO `t_order_position` VALUES (18091, 2, 2738, 8, '109.4068205072551', '24.211294403296634', '144.0', '15.0', '2020-09-11 00:03:46');
+INSERT INTO `t_order_position` VALUES (18092, 2, 2738, 8, '109.40620362987302', '24.211994139057825', '140.0', '15.0', '2020-09-11 00:03:56');
+INSERT INTO `t_order_position` VALUES (18093, 2, 2738, 8, '109.40577013784231', '24.212493940621336', '140.0', '15.0', '2020-09-11 00:04:01');
+INSERT INTO `t_order_position` VALUES (18094, 2, 2738, 8, '109.40531996321269', '24.213010393597305', '140.0', '15.0', '2020-09-11 00:04:06');
+INSERT INTO `t_order_position` VALUES (18095, 2, 2738, 8, '109.40481975524806', '24.213543494045155', '142.0', '15.0', '2020-09-11 00:04:11');
+INSERT INTO `t_order_position` VALUES (18096, 2, 2738, 8, '109.40428618562073', '24.214093240639965', '140.0', '15.0', '2020-09-11 00:04:16');
+INSERT INTO `t_order_position` VALUES (18097, 2, 2738, 8, '109.4038193049525', '24.21464298407104', '140.0', '15.0', '2020-09-11 00:04:22');
+INSERT INTO `t_order_position` VALUES (18098, 2, 2738, 8, '109.4033857628703', '24.215142741399003', '144.0', '15.0', '2020-09-11 00:04:27');
+INSERT INTO `t_order_position` VALUES (18099, 2, 2738, 8, '109.40295221077564', '24.21562583009804', '140.0', '15.0', '2020-09-11 00:04:32');
+INSERT INTO `t_order_position` VALUES (18100, 2, 2738, 8, '109.40255200302535', '24.216108917138712', '144.0', '15.0', '2020-09-11 00:04:37');
+INSERT INTO `t_order_position` VALUES (18101, 2, 2738, 8, '109.40213510866626', '24.216558672672644', '142.0', '15.0', '2020-09-11 00:04:47');
+INSERT INTO `t_order_position` VALUES (18102, 2, 2738, 8, '109.4017015316146', '24.217058399125126', '144.0', '15.0', '2020-09-11 00:04:57');
+INSERT INTO `t_order_position` VALUES (18103, 2, 2738, 8, '109.40123459217678', '24.21759143088603', '144.0', '15.0', '2020-09-11 00:05:07');
+INSERT INTO `t_order_position` VALUES (18104, 2, 2738, 8, '109.40080099852796', '24.218124462314755', '140.0', '15.0', '2020-09-11 00:05:17');
+INSERT INTO `t_order_position` VALUES (18105, 2, 2738, 8, '109.40045077997156', '24.2185242238078', '140.0', '15.0', '2020-09-11 00:05:22');
+INSERT INTO `t_order_position` VALUES (18106, 2, 2738, 8, '109.40005052268435', '24.218973947538355', '140.0', '15.0', '2020-09-11 00:05:27');
+INSERT INTO `t_order_position` VALUES (18107, 2, 2738, 8, '109.39968361378918', '24.219390353613893', '142.0', '15.0', '2020-09-11 00:05:32');
+INSERT INTO `t_order_position` VALUES (18108, 2, 2738, 8, '109.39926666085499', '24.219806737761118', '140.0', '15.0', '2020-09-11 00:05:37');
+INSERT INTO `t_order_position` VALUES (18109, 2, 2738, 8, '109.39878298916746', '24.22035637711929', '142.0', '15.0', '2020-09-11 00:05:42');
+INSERT INTO `t_order_position` VALUES (18110, 2, 2738, 8, '109.39833266851646', '24.22093934051129', '142.0', '15.0', '2020-09-11 00:05:52');
+INSERT INTO `t_order_position` VALUES (18111, 2, 2738, 8, '109.39784897578366', '24.221488961332234', '140.0', '15.0', '2020-09-11 00:05:57');
+INSERT INTO `t_order_position` VALUES (18112, 2, 2738, 8, '109.39746535050793', '24.221938648875142', '140.0', '15.0', '2020-09-11 00:06:02');
+INSERT INTO `t_order_position` VALUES (18113, 2, 2738, 8, '109.39699830862796', '24.22230499180033', '134.0', '15.0', '2020-09-11 00:06:07');
+INSERT INTO `t_order_position` VALUES (18114, 2, 2738, 8, '109.39651457141771', '24.22260467556932', '130.0', '15.0', '2020-09-11 00:06:12');
+INSERT INTO `t_order_position` VALUES (18115, 2, 2738, 8, '109.39589737001334', '24.222920948473558', '130.0', '15.0', '2020-09-11 00:06:17');
+INSERT INTO `t_order_position` VALUES (18116, 2, 2738, 8, '109.39523010518215', '24.2232538418758', '128.0', '15.0', '2020-09-11 00:06:22');
+INSERT INTO `t_order_position` VALUES (18117, 2, 2738, 8, '109.39454613631013', '24.22357004780942', '130.0', '15.0', '2020-09-11 00:06:27');
+INSERT INTO `t_order_position` VALUES (18118, 2, 2738, 8, '109.39381209905441', '24.223936189508226', '130.0', '15.0', '2020-09-11 00:06:32');
+INSERT INTO `t_order_position` VALUES (18119, 2, 2738, 8, '109.393211504188', '24.22421908322708', '130.0', '15.0', '2020-09-11 00:06:37');
+INSERT INTO `t_order_position` VALUES (18120, 2, 2738, 8, '109.3926943147098', '24.224502012490102', '128.0', '15.0', '2020-09-11 00:06:42');
+INSERT INTO `t_order_position` VALUES (18121, 2, 2738, 8, '109.39207698674923', '24.224468315307867', '154.0', '15.0', '2020-09-11 00:06:57');
+INSERT INTO `t_order_position` VALUES (18122, 2, 2738, 8, '109.39120934458741', '24.22411788655955', '158.0', '15.0', '2020-09-11 00:07:07');
+INSERT INTO `t_order_position` VALUES (18123, 2, 2738, 8, '109.39047516092054', '24.22383416292472', '162.0', '15.0', '2020-09-11 00:07:17');
+INSERT INTO `t_order_position` VALUES (18124, 2, 2741, 73, '109.4042586650596', '24.31332697820578', '150.0', '8.0', '2020-09-11 09:36:48');
+INSERT INTO `t_order_position` VALUES (18125, 2, 2741, 73, '109.40395853375979', '24.31377680783398', '148.0', '8.0', '2020-09-11 09:36:53');
+INSERT INTO `t_order_position` VALUES (18126, 2, 2741, 73, '109.40365840888305', '24.314409912607317', '152.0', '8.0', '2020-09-11 09:37:03');
+INSERT INTO `t_order_position` VALUES (18127, 2, 2741, 73, '109.40339164443269', '24.315259621364905', '164.0', '8.0', '2020-09-11 09:37:13');
+INSERT INTO `t_order_position` VALUES (18128, 2, 2741, 73, '109.40335832764069', '24.315859438639674', '166.0', '8.0', '2020-09-11 09:37:18');
+INSERT INTO `t_order_position` VALUES (18129, 2, 2741, 73, '109.40334167999448', '24.31634262652077', '166.0', '8.0', '2020-09-11 09:37:24');
+INSERT INTO `t_order_position` VALUES (18130, 2, 2741, 73, '109.40332503527218', '24.31687579981638', '160.0', '8.0', '2020-09-11 09:37:29');
+INSERT INTO `t_order_position` VALUES (18131, 2, 2741, 73, '109.40325836519445', '24.317458950725445', '164.0', '8.0', '2020-09-11 09:37:34');
+INSERT INTO `t_order_position` VALUES (18132, 2, 2741, 73, '109.40312498915017', '24.318025429096295', '162.0', '8.0', '2020-09-11 09:37:39');
+INSERT INTO `t_order_position` VALUES (18133, 2, 2741, 73, '109.40302495802435', '24.31847528018813', '156.0', '8.0', '2020-09-11 09:37:44');
+INSERT INTO `t_order_position` VALUES (18134, 2, 2741, 73, '109.40275818055034', '24.31924167540481', '160.0', '8.0', '2020-09-11 09:37:54');
+INSERT INTO `t_order_position` VALUES (18135, 2, 2741, 73, '109.4027081813001', '24.319758181638402', '164.0', '8.0', '2020-09-11 09:37:59');
+INSERT INTO `t_order_position` VALUES (18136, 2, 2741, 73, '109.40267487124444', '24.320491294363425', '164.0', '8.0', '2020-09-11 09:38:06');
+INSERT INTO `t_order_position` VALUES (18137, 2, 2741, 73, '109.40264155917734', '24.321191083845438', '160.0', '8.0', '2020-09-11 09:38:09');
+INSERT INTO `t_order_position` VALUES (18138, 2, 2741, 73, '109.40259156943752', '24.321874208733526', '160.0', '9.0', '2020-09-11 09:38:14');
+INSERT INTO `t_order_position` VALUES (18139, 2, 2741, 73, '109.40255825038372', '24.32245736609093', '164.0', '9.0', '2020-09-11 09:38:19');
+INSERT INTO `t_order_position` VALUES (18140, 2, 2741, 73, '109.402458228285', '24.323107158226883', '164.0', '9.0', '2020-09-11 09:38:29');
+INSERT INTO `t_order_position` VALUES (18141, 2, 2741, 73, '109.4024749745448', '24.324290151891844', '0.0', '9.0', '2020-09-11 09:38:39');
+INSERT INTO `t_order_position` VALUES (18142, 2, 2741, 73, '109.4025083652033', '24.324923308540264', '0.0', '8.0', '2020-09-11 09:38:44');
+INSERT INTO `t_order_position` VALUES (18143, 2, 2741, 73, '109.40254175874611', '24.32560645103981', '166.0', '8.0', '2020-09-11 09:38:49');
+INSERT INTO `t_order_position` VALUES (18144, 2, 2741, 73, '109.40257515027794', '24.326256270114804', '162.0', '9.0', '2020-09-11 09:38:54');
+INSERT INTO `t_order_position` VALUES (18145, 2, 2741, 73, '109.4025418370721', '24.32693940071533', '2.0', '9.0', '2020-09-11 09:38:59');
+INSERT INTO `t_order_position` VALUES (18146, 2, 2741, 73, '109.40252520933208', '24.327772491811373', '2.0', '9.0', '2020-09-11 09:39:04');
+INSERT INTO `t_order_position` VALUES (18147, 2, 2741, 73, '109.402575290287', '24.328638919856527', '2.0', '9.0', '2020-09-11 09:39:09');
+INSERT INTO `t_order_position` VALUES (18148, 2, 2741, 73, '109.40259201491688', '24.329455356436366', '2.0', '9.0', '2020-09-11 09:39:14');
+INSERT INTO `t_order_position` VALUES (18149, 2, 2741, 73, '109.40262541420331', '24.330238472783392', '2.0', '9.0', '2020-09-11 09:39:19');
+INSERT INTO `t_order_position` VALUES (18150, 2, 2741, 73, '109.40260878359354', '24.33102158030571', '0.0', '9.0', '2020-09-11 09:39:24');
+INSERT INTO `t_order_position` VALUES (18151, 2, 2741, 73, '109.40262551211423', '24.33190466617822', '0.0', '8.0', '2020-09-11 09:39:29');
+INSERT INTO `t_order_position` VALUES (18152, 2, 2741, 73, '109.40264224649675', '24.3328877244018', '0.0', '9.0', '2020-09-11 09:39:34');
+INSERT INTO `t_order_position` VALUES (18153, 2, 2741, 73, '109.4026423023068', '24.333837456365437', '0.0', '9.0', '2020-09-11 09:39:39');
+INSERT INTO `t_order_position` VALUES (18154, 2, 2741, 73, '109.40265903276035', '24.33475386815776', '166.0', '9.0', '2020-09-11 09:39:44');
+INSERT INTO `t_order_position` VALUES (18155, 2, 2741, 73, '109.40265906996748', '24.335387023663195', '12.0', '9.0', '2020-09-11 09:39:49');
+INSERT INTO `t_order_position` VALUES (18156, 2, 2741, 73, '109.40294260932073', '24.336053553942925', '142.0', '9.0', '2020-09-11 09:39:59');
+INSERT INTO `t_order_position` VALUES (18157, 2, 2741, 73, '109.40247570984432', '24.33680325923321', '164.0', '9.0', '2020-09-11 09:40:10');
+INSERT INTO `t_order_position` VALUES (18158, 2, 2741, 73, '109.40237568930057', '24.337486382416635', '164.0', '9.0', '2020-09-11 09:40:14');
+INSERT INTO `t_order_position` VALUES (18159, 2, 2741, 73, '109.40234237969207', '24.33823616694121', '2.0', '9.0', '2020-09-11 09:40:21');
+INSERT INTO `t_order_position` VALUES (18160, 2, 2741, 73, '109.40237579015098', '24.339202571586', '160.0', '9.0', '2020-09-11 09:40:25');
+INSERT INTO `t_order_position` VALUES (18161, 2, 2741, 73, '109.40220906827025', '24.34000231655619', '164.0', '9.0', '2020-09-11 09:40:30');
+INSERT INTO `t_order_position` VALUES (18162, 2, 2741, 73, '109.40207569724963', '24.34076874372239', '162.0', '9.0', '2020-09-11 09:40:35');
+INSERT INTO `t_order_position` VALUES (18163, 2, 2741, 73, '109.40199236171519', '24.341618491665994', '160.0', '9.0', '2020-09-11 09:40:40');
+INSERT INTO `t_order_position` VALUES (18164, 2, 2741, 73, '109.40190902389035', '24.342434915725754', '162.0', '9.0', '2020-09-11 09:40:45');
+INSERT INTO `t_order_position` VALUES (18165, 2, 2741, 73, '109.40174229437312', '24.343168011074738', '160.0', '9.0', '2020-09-11 09:40:50');
+INSERT INTO `t_order_position` VALUES (18166, 2, 2741, 73, '109.40157555961372', '24.343834457252363', '164.0', '9.0', '2020-09-11 09:40:55');
+INSERT INTO `t_order_position` VALUES (18167, 2, 2741, 73, '109.4015422467711', '24.344550920261945', '162.0', '9.0', '2020-09-11 09:41:00');
+INSERT INTO `t_order_position` VALUES (18168, 2, 2741, 73, '109.4015089299591', '24.345200735147383', '162.0', '9.0', '2020-09-11 09:41:05');
+INSERT INTO `t_order_position` VALUES (18169, 2, 2741, 73, '109.40135886217068', '24.345717225589706', '152.0', '9.0', '2020-09-11 09:41:10');
+INSERT INTO `t_order_position` VALUES (18170, 2, 2741, 73, '109.40100867209345', '24.346450273002343', '162.0', '10.0', '2020-09-11 09:41:20');
+INSERT INTO `t_order_position` VALUES (18171, 2, 2741, 73, '109.40089196263958', '24.3470667423481', '164.0', '10.0', '2020-09-11 09:41:25');
+INSERT INTO `t_order_position` VALUES (18172, 2, 2741, 73, '109.40079193943673', '24.34783317525748', '166.0', '10.0', '2020-09-11 09:41:30');
+INSERT INTO `t_order_position` VALUES (18173, 2, 2741, 73, '109.40085868983196', '24.348483017150176', '50.0', '10.0', '2020-09-11 09:41:40');
+INSERT INTO `t_order_position` VALUES (18174, 2, 2741, 73, '109.40180931982894', '24.348549894663734', '60.0', '10.0', '2020-09-11 09:41:50');
+INSERT INTO `t_order_position` VALUES (18175, 2, 2741, 73, '109.4024096989538', '24.34864999234172', '56.0', '9.0', '2020-09-11 09:41:55');
+INSERT INTO `t_order_position` VALUES (18176, 2, 2741, 73, '109.40306008972907', '24.34875008297761', '166.0', '11.0', '2020-09-11 09:42:25');
+INSERT INTO `t_order_position` VALUES (18177, 2, 2741, 73, '109.40304345065785', '24.349383242888994', '160.0', '11.0', '2020-09-11 09:42:35');
+INSERT INTO `t_order_position` VALUES (18178, 2, 2741, 73, '109.40281002144872', '24.350066352193526', '160.0', '11.0', '2020-09-11 09:42:45');
+INSERT INTO `t_order_position` VALUES (18179, 2, 2741, 73, '109.40257657493686', '24.35049952657496', '156.0', '11.0', '2020-09-11 09:43:16');
+INSERT INTO `t_order_position` VALUES (18180, 2, 2741, 73, '109.40232644993809', '24.350949357672327', '154.0', '11.0', '2020-09-11 09:43:25');
+INSERT INTO `t_order_position` VALUES (18181, 2, 2741, 73, '109.4020763356555', '24.351632457195933', '154.0', '11.0', '2020-09-11 09:43:41');
+INSERT INTO `t_order_position` VALUES (18182, 2, 2741, 73, '109.4018595581917', '24.35206562844498', '162.0', '11.0', '2020-09-11 09:43:46');
+INSERT INTO `t_order_position` VALUES (18183, 2, 2741, 73, '109.40165946959432', '24.352732072783684', '152.0', '11.0', '2020-09-11 09:43:56');
+INSERT INTO `t_order_position` VALUES (18184, 2, 2741, 73, '109.40140934147772', '24.35331519277332', '150.0', '11.0', '2020-09-11 09:44:26');
+INSERT INTO `t_order_position` VALUES (18185, 2, 2741, 73, '109.40120923782047', '24.353798349290056', '154.0', '10.0', '2020-09-11 09:44:36');
+INSERT INTO `t_order_position` VALUES (18186, 2, 2741, 73, '109.40094242052061', '24.354281487219886', '148.0', '11.0', '2020-09-11 09:44:46');
+INSERT INTO `t_order_position` VALUES (18187, 2, 2741, 73, '109.40054218579502', '24.354964533164956', '146.0', '11.0', '2020-09-11 09:45:01');
+INSERT INTO `t_order_position` VALUES (18188, 2, 2741, 73, '109.40020864503143', '24.355430982597333', '144.0', '11.0', '2020-09-11 09:45:11');
+INSERT INTO `t_order_position` VALUES (18189, 2, 2741, 73, '109.39990845757588', '24.35591409984865', '158.0', '11.0', '2020-09-11 09:45:21');
+INSERT INTO `t_order_position` VALUES (18190, 2, 2741, 73, '109.39984178348476', '24.35661389524758', '164.0', '11.0', '2020-09-11 09:45:31');
+INSERT INTO `t_order_position` VALUES (18191, 2, 2741, 73, '109.39979178707927', '24.35729703368868', '0.0', '11.0', '2020-09-11 09:45:51');
+INSERT INTO `t_order_position` VALUES (18192, 2, 2741, 73, '109.39974180524082', '24.35823010693707', '162.0', '11.0', '2020-09-11 09:46:16');
+INSERT INTO `t_order_position` VALUES (18193, 2, 2741, 73, '109.39970849145534', '24.35897990051442', '164.0', '11.0', '2020-09-11 09:46:27');
+INSERT INTO `t_order_position` VALUES (18194, 2, 2741, 73, '109.39967517272244', '24.359646382898813', '162.0', '11.0', '2020-09-11 09:46:37');
+INSERT INTO `t_order_position` VALUES (18195, 2, 2741, 73, '109.39917482057353', '24.360029455518298', '112.0', '11.0', '2020-09-11 09:47:17');
+INSERT INTO `t_order_position` VALUES (18196, 2, 2741, 73, '109.39849095722361', '24.360045881008112', '112.0', '9.0', '2020-09-11 09:47:29');
+INSERT INTO `t_order_position` VALUES (18197, 2, 2741, 73, '109.3978904700774', '24.35999566996832', '110.0', '11.0', '2020-09-11 09:47:37');
+INSERT INTO `t_order_position` VALUES (18198, 2, 2741, 73, '109.39720656100233', '24.35992874724072', '136.0', '11.0', '2020-09-11 09:47:47');
+INSERT INTO `t_order_position` VALUES (18199, 2, 2741, 73, '109.39698967621605', '24.359378799842172', '128.0', '11.0', '2020-09-11 09:48:02');
+INSERT INTO `t_order_position` VALUES (18200, 2, 2742, 73, '109.39780702510086', '24.359262495459692', '0.0', '12.0', '2020-09-11 09:53:29');
+INSERT INTO `t_order_position` VALUES (18201, 2, 2742, 73, '109.39777369948392', '24.359862326044052', '54.0', '12.0', '2020-09-11 09:53:55');
+INSERT INTO `t_order_position` VALUES (18202, 2, 2742, 73, '109.3984409057669', '24.35984591498392', '54.0', '12.0', '2020-09-11 09:54:04');
+INSERT INTO `t_order_position` VALUES (18203, 2, 2742, 73, '109.39919149306549', '24.35991282475703', '54.0', '12.0', '2020-09-11 09:54:14');
+INSERT INTO `t_order_position` VALUES (18204, 2, 2742, 73, '109.39960844894733', '24.35951306348065', '112.0', '12.0', '2020-09-11 09:54:54');
+INSERT INTO `t_order_position` VALUES (18205, 2, 2742, 73, '109.39967511398235', '24.3586466439365', '114.0', '13.0', '2020-09-11 09:55:05');
+INSERT INTO `t_order_position` VALUES (18206, 2, 2742, 73, '109.39979182526044', '24.357946863183297', '112.0', '13.0', '2020-09-11 09:55:15');
+INSERT INTO `t_order_position` VALUES (18207, 2, 2742, 73, '109.39974175629081', '24.35739699206665', '0.0', '13.0', '2020-09-11 09:55:45');
+INSERT INTO `t_order_position` VALUES (18208, 2, 2742, 73, '109.39977507981389', '24.356813822259785', '110.0', '13.0', '2020-09-11 09:56:00');
+INSERT INTO `t_order_position` VALUES (18209, 2, 2742, 73, '109.39982508702766', '24.356313969157345', '110.0', '13.0', '2020-09-11 09:56:05');
+INSERT INTO `t_order_position` VALUES (18210, 2, 2742, 73, '109.39995848601319', '24.355780816704147', '98.0', '13.0', '2020-09-11 09:56:15');
+INSERT INTO `t_order_position` VALUES (18211, 2, 2742, 73, '109.40040876698728', '24.355097794249232', '94.0', '13.0', '2020-09-11 09:56:30');
+INSERT INTO `t_order_position` VALUES (18212, 2, 2742, 73, '109.40072562646951', '24.35463133767942', '94.0', '13.0', '2020-09-11 09:56:45');
+INSERT INTO `t_order_position` VALUES (18213, 2, 2742, 73, '109.4010424772816', '24.35409822804742', '102.0', '13.0', '2020-09-11 09:56:55');
+INSERT INTO `t_order_position` VALUES (18214, 2, 2742, 73, '109.40125925828326', '24.353581752426965', '98.0', '13.0', '2020-09-11 09:57:15');
+INSERT INTO `t_order_position` VALUES (18215, 2, 2742, 73, '109.40149270870887', '24.3529653055515', '102.0', '13.0', '2020-09-11 09:57:30');
+INSERT INTO `t_order_position` VALUES (18216, 2, 2742, 73, '109.40174283583222', '24.35238218484157', '104.0', '13.0', '2020-09-11 09:57:40');
+INSERT INTO `t_order_position` VALUES (18217, 2, 2742, 73, '109.40192625723031', '24.351899020750135', '102.0', '13.0', '2020-09-11 09:57:50');
+INSERT INTO `t_order_position` VALUES (18218, 2, 2742, 73, '109.40214302421195', '24.351299226860686', '106.0', '13.0', '2020-09-11 09:58:00');
+INSERT INTO `t_order_position` VALUES (18219, 2, 2742, 73, '109.4023264450421', '24.35086604666418', '102.0', '13.0', '2020-09-11 09:58:10');
+INSERT INTO `t_order_position` VALUES (18220, 2, 2742, 73, '109.4019261720429', '24.350449408888625', '102.0', '13.0', '2020-09-11 09:58:31');
+INSERT INTO `t_order_position` VALUES (18221, 2, 2742, 73, '109.4014258389037', '24.35024934940811', '102.0', '12.0', '2020-09-11 09:58:36');
+INSERT INTO `t_order_position` VALUES (18222, 2, 2742, 73, '109.40079206965054', '24.35004924447979', '118.0', '13.0', '2020-09-11 09:58:46');
+INSERT INTO `t_order_position` VALUES (18223, 2, 2742, 73, '109.40069197156456', '24.34954935228112', '110.0', '13.0', '2020-09-11 09:58:56');
+INSERT INTO `t_order_position` VALUES (18224, 2, 2742, 73, '109.40069193044474', '24.34884954079909', '114.0', '13.0', '2020-09-11 09:59:06');
+INSERT INTO `t_order_position` VALUES (18225, 2, 2742, 73, '109.40064184891645', '24.348049743279084', '110.0', '13.0', '2020-09-11 09:59:16');
+INSERT INTO `t_order_position` VALUES (18226, 2, 2742, 73, '109.40069184722657', '24.347433256890106', '110.0', '13.0', '2020-09-11 09:59:21');
+INSERT INTO `t_order_position` VALUES (18227, 2, 2742, 73, '109.40080855485074', '24.346766801915248', '108.0', '13.0', '2020-09-11 09:59:26');
+INSERT INTO `t_order_position` VALUES (18228, 2, 2742, 73, '109.40095862264543', '24.34618366599343', '102.0', '12.0', '2020-09-11 09:59:31');
+INSERT INTO `t_order_position` VALUES (18229, 2, 2742, 73, '109.40117540743428', '24.34571718090506', '102.0', '12.0', '2020-09-11 09:59:37');
+INSERT INTO `t_order_position` VALUES (18230, 2, 2742, 73, '109.40145887484572', '24.344817494642992', '114.0', '12.0', '2020-09-11 09:59:46');
+INSERT INTO `t_order_position` VALUES (18231, 2, 2742, 73, '109.40149219956997', '24.34430097691454', '112.0', '13.0', '2020-09-11 09:59:51');
+INSERT INTO `t_order_position` VALUES (18232, 2, 2742, 73, '109.40147548679154', '24.34370113714895', '104.0', '13.0', '2020-09-11 09:59:56');
+INSERT INTO `t_order_position` VALUES (18233, 2, 2742, 73, '109.4016755790882', '24.343068023511435', '110.0', '13.0', '2020-09-11 10:00:13');
+INSERT INTO `t_order_position` VALUES (18234, 2, 2742, 73, '109.4017922792947', '24.342368241854057', '114.0', '13.0', '2020-09-11 10:00:13');
+INSERT INTO `t_order_position` VALUES (18235, 2, 2742, 73, '109.40184227192964', '24.341701769646868', '114.0', '13.0', '2020-09-11 10:00:13');
+INSERT INTO `t_order_position` VALUES (18236, 2, 2742, 73, '109.40192562079005', '24.34106862903861', '114.0', '13.0', '2020-09-11 10:00:16');
+INSERT INTO `t_order_position` VALUES (18237, 2, 2742, 73, '109.4020089693185', '24.340435488457963', '108.0', '13.0', '2020-09-11 10:00:21');
+INSERT INTO `t_order_position` VALUES (18238, 2, 2742, 73, '109.40214235055528', '24.33983568237608', '106.0', '12.0', '2020-09-11 10:00:26');
+INSERT INTO `t_order_position` VALUES (18239, 2, 2742, 73, '109.40227573192065', '24.339252537865967', '114.0', '12.0', '2020-09-11 10:00:31');
+INSERT INTO `t_order_position` VALUES (18240, 2, 2742, 73, '109.40232573123218', '24.338719362583316', '116.0', '13.0', '2020-09-11 10:00:36');
+INSERT INTO `t_order_position` VALUES (18241, 2, 2742, 73, '109.4022589933281', '24.33820282625372', '112.0', '13.0', '2020-09-11 10:00:41');
+INSERT INTO `t_order_position` VALUES (18242, 2, 2742, 73, '109.40225896101721', '24.337652979422796', '112.0', '13.0', '2020-09-11 10:00:46');
+INSERT INTO `t_order_position` VALUES (18243, 2, 2742, 73, '109.4023589840781', '24.337003180673676', '108.0', '13.0', '2020-09-11 10:00:51');
+INSERT INTO `t_order_position` VALUES (18244, 2, 2742, 73, '109.40247568242873', '24.336336723037252', '110.0', '13.0', '2020-09-11 10:00:56');
+INSERT INTO `t_order_position` VALUES (18245, 2, 2742, 73, '109.40259238502246', '24.33575357515028', '114.0', '13.0', '2020-09-11 10:01:01');
+INSERT INTO `t_order_position` VALUES (18246, 2, 2742, 73, '109.40262570891808', '24.335253721577953', '116.0', '13.0', '2020-09-11 10:01:07');
+INSERT INTO `t_order_position` VALUES (18247, 2, 2742, 73, '109.40260898627085', '24.334470605220773', '112.0', '13.0', '2020-09-11 10:01:14');
+INSERT INTO `t_order_position` VALUES (18248, 2, 2742, 73, '109.40260893437724', '24.333587520645054', '114.0', '13.0', '2020-09-11 10:01:17');
+INSERT INTO `t_order_position` VALUES (18249, 2, 2742, 73, '109.40257553800014', '24.33285438806536', '114.0', '12.0', '2020-09-11 10:01:22');
+INSERT INTO `t_order_position` VALUES (18250, 2, 2742, 73, '109.40257549785649', '24.332171247992108', '114.0', '12.0', '2020-09-11 10:01:27');
+INSERT INTO `t_order_position` VALUES (18251, 2, 2742, 73, '109.40254210534326', '24.33150476394707', '116.0', '12.0', '2020-09-11 10:01:32');
+INSERT INTO `t_order_position` VALUES (18252, 2, 2742, 73, '109.40250872158907', '24.33098823759334', '114.0', '12.0', '2020-09-11 10:01:37');
+INSERT INTO `t_order_position` VALUES (18253, 2, 2742, 73, '109.40250868927886', '24.330438393929168', '114.0', '12.0', '2020-09-11 10:01:42');
+INSERT INTO `t_order_position` VALUES (18254, 2, 2742, 73, '109.4024753035137', '24.329888544126682', '116.0', '12.0', '2020-09-11 10:01:47');
+INSERT INTO `t_order_position` VALUES (18255, 2, 2742, 73, '109.40242524190066', '24.329355353196114', '116.0', '13.0', '2020-09-11 10:01:52');
+INSERT INTO `t_order_position` VALUES (18256, 2, 2742, 73, '109.40240853182459', '24.328788845095026', '114.0', '13.0', '2020-09-11 10:01:57');
+INSERT INTO `t_order_position` VALUES (18257, 2, 2742, 73, '109.40240849853599', '24.328222340489326', '116.0', '13.0', '2020-09-11 10:02:02');
+INSERT INTO `t_order_position` VALUES (18258, 2, 2742, 73, '109.40235843480612', '24.327655826337416', '116.0', '13.0', '2020-09-11 10:02:07');
+INSERT INTO `t_order_position` VALUES (18259, 2, 2742, 73, '109.4023417256566', '24.327105980828225', '114.0', '13.0', '2020-09-11 10:02:12');
+INSERT INTO `t_order_position` VALUES (18260, 2, 2742, 73, '109.40234169334757', '24.32655613884651', '110.0', '13.0', '2020-09-11 10:02:17');
+INSERT INTO `t_order_position` VALUES (18261, 2, 2742, 73, '109.40237501960114', '24.326089613010176', '114.0', '13.0', '2020-09-11 10:02:23');
+INSERT INTO `t_order_position` VALUES (18262, 2, 2742, 73, '109.40240834384332', '24.325589763572125', '116.0', '13.0', '2020-09-11 10:02:27');
+INSERT INTO `t_order_position` VALUES (18263, 2, 2742, 73, '109.40242497069835', '24.324740012133223', '114.0', '13.0', '2020-09-11 10:02:37');
+INSERT INTO `t_order_position` VALUES (18264, 2, 2742, 73, '109.40242492272469', '24.323923581695848', '114.0', '13.0', '2020-09-11 10:02:47');
+INSERT INTO `t_order_position` VALUES (18265, 2, 2742, 73, '109.40245822730596', '24.323090496397217', '110.0', '13.0', '2020-09-11 10:02:57');
+INSERT INTO `t_order_position` VALUES (18266, 2, 2742, 73, '109.40252487449159', '24.322074137950707', '110.0', '13.0', '2020-09-11 10:03:07');
+INSERT INTO `t_order_position` VALUES (18267, 2, 2742, 73, '109.40255817695491', '24.321207730094518', '110.0', '13.0', '2020-09-11 10:03:17');
+INSERT INTO `t_order_position` VALUES (18268, 2, 2742, 73, '109.40259150188304', '24.32072454409165', '110.0', '13.0', '2020-09-11 10:03:22');
+INSERT INTO `t_order_position` VALUES (18269, 2, 2742, 73, '109.4026248003236', '24.31979148989469', '114.0', '13.0', '2020-09-11 10:03:32');
+INSERT INTO `t_order_position` VALUES (18270, 2, 2742, 73, '109.40270814213812', '24.319091710347045', '104.0', '13.0', '2020-09-11 10:03:42');
+INSERT INTO `t_order_position` VALUES (18271, 2, 2742, 73, '109.402924899004', '24.318458601364064', '112.0', '13.0', '2020-09-11 10:03:53');
+INSERT INTO `t_order_position` VALUES (18272, 2, 2742, 73, '109.40307493986946', '24.31767552383418', '108.0', '13.0', '2020-09-11 10:04:02');
+INSERT INTO `t_order_position` VALUES (18273, 2, 2742, 73, '109.40320830448533', '24.316909104886363', '112.0', '13.0', '2020-09-11 10:04:13');
+INSERT INTO `t_order_position` VALUES (18274, 2, 2742, 73, '109.40325828686822', '24.31612601083711', '114.0', '13.0', '2020-09-11 10:04:23');
+INSERT INTO `t_order_position` VALUES (18275, 2, 2742, 73, '109.40325825749605', '24.315626158729184', '114.0', '13.0', '2020-09-11 10:04:28');
+INSERT INTO `t_order_position` VALUES (18276, 2, 2742, 73, '109.40340829301783', '24.314793095570113', '100.0', '13.0', '2020-09-11 10:04:38');
+INSERT INTO `t_order_position` VALUES (18277, 2, 2742, 73, '109.40372509236143', '24.31407668759089', '96.0', '13.0', '2020-09-11 10:04:48');
+INSERT INTO `t_order_position` VALUES (18278, 2, 2742, 73, '109.40412526313756', '24.313343624181808', '98.0', '13.0', '2020-09-11 10:04:58');
+INSERT INTO `t_order_position` VALUES (18279, 2, 2742, 73, '109.4044920877139', '24.312810491133536', '100.0', '12.0', '2020-09-11 10:05:08');
+INSERT INTO `t_order_position` VALUES (18280, 2, 2742, 73, '109.40492560398961', '24.312260696608337', '92.0', '13.0', '2020-09-11 10:05:18');
+INSERT INTO `t_order_position` VALUES (18281, 2, 2742, 73, '109.40517569857202', '24.31182751287595', '32.0', '13.0', '2020-09-11 10:05:28');
+INSERT INTO `t_order_position` VALUES (18282, 2, 2785, 333, '109.4369294243659', '24.26222310147714', '144.0', '15.0', '2020-09-12 08:20:29');
+INSERT INTO `t_order_position` VALUES (18283, 2, 2785, 333, '109.436646423615', '24.262606684392434', '152.0', '15.0', '2020-09-12 08:20:34');
+INSERT INTO `t_order_position` VALUES (18284, 2, 2785, 333, '109.436413369166', '24.26305684266868', '152.0', '15.0', '2020-09-12 08:20:39');
+INSERT INTO `t_order_position` VALUES (18285, 2, 2785, 333, '109.43619698740888', '24.263956827266156', '164.0', '15.0', '2020-09-12 08:20:49');
+INSERT INTO `t_order_position` VALUES (18286, 2, 2785, 333, '109.43619701967137', '24.264506644481582', '8.0', '15.0', '2020-09-12 08:21:09');
+INSERT INTO `t_order_position` VALUES (18287, 2, 2785, 333, '109.43631359780325', '24.26512295370373', '14.0', '15.0', '2020-09-12 08:22:30');
+INSERT INTO `t_order_position` VALUES (18288, 2, 2785, 333, '109.43656335965602', '24.265655780926465', '18.0', '15.0', '2020-09-12 08:22:40');
+INSERT INTO `t_order_position` VALUES (18289, 2, 2785, 333, '109.43699625993831', '24.266354972014067', '16.0', '15.0', '2020-09-12 08:22:50');
+INSERT INTO `t_order_position` VALUES (18290, 2, 2785, 333, '109.4372959635934', '24.26698769164072', '22.0', '15.0', '2020-09-12 08:23:00');
+INSERT INTO `t_order_position` VALUES (18291, 2, 2785, 333, '109.43767890071561', '24.267603632478277', '18.0', '15.0', '2020-09-12 08:23:10');
+INSERT INTO `t_order_position` VALUES (18292, 2, 2785, 333, '109.43799524010947', '24.26820299846963', '18.0', '15.0', '2020-09-12 08:23:20');
+INSERT INTO `t_order_position` VALUES (18293, 2, 2785, 333, '109.43817839855909', '24.26883586870076', '10.0', '15.0', '2020-09-12 08:23:30');
+INSERT INTO `t_order_position` VALUES (18294, 2, 2785, 333, '109.43837820355657', '24.269485375624363', '10.0', '15.0', '2020-09-12 08:23:40');
+INSERT INTO `t_order_position` VALUES (18295, 2, 2785, 333, '109.4384947617034', '24.269968386444493', '4.0', '15.0', '2020-09-12 08:24:00');
+INSERT INTO `t_order_position` VALUES (18296, 2, 2785, 333, '109.43847814394813', '24.270468245652467', '164.0', '15.0', '2020-09-12 08:24:30');
+INSERT INTO `t_order_position` VALUES (18297, 2, 2785, 333, '109.4384448878746', '24.27111807922298', '160.0', '15.0', '2020-09-12 08:24:40');
+INSERT INTO `t_order_position` VALUES (18298, 2, 2785, 333, '109.43834505288025', '24.27193461847665', '160.0', '15.0', '2020-09-12 08:24:50');
+INSERT INTO `t_order_position` VALUES (18299, 2, 2785, 333, '109.43822856427694', '24.27265121365927', '156.0', '15.0', '2020-09-12 08:25:00');
+INSERT INTO `t_order_position` VALUES (18300, 2, 2785, 333, '109.43812871750721', '24.27328447931695', '162.0', '15.0', '2020-09-12 08:25:16');
+INSERT INTO `t_order_position` VALUES (18301, 2, 2785, 333, '109.43801222477538', '24.273951090367355', '160.0', '15.0', '2020-09-12 08:25:26');
+INSERT INTO `t_order_position` VALUES (18302, 2, 2785, 333, '109.43797896796866', '24.274600924790448', '162.0', '15.0', '2020-09-12 08:25:36');
+INSERT INTO `t_order_position` VALUES (18303, 2, 2785, 333, '109.43782917826651', '24.27525092034841', '158.0', '15.0', '2020-09-12 08:25:51');
+INSERT INTO `t_order_position` VALUES (18304, 2, 2785, 333, '109.43764608519902', '24.275784332091334', '152.0', '15.0', '2020-09-12 08:26:01');
+INSERT INTO `t_order_position` VALUES (18305, 2, 2785, 333, '109.4373964018154', '24.27636781701526', '150.0', '15.0', '2020-09-12 08:26:11');
+INSERT INTO `t_order_position` VALUES (18306, 2, 2785, 333, '109.43704683225377', '24.277051401644293', '150.0', '15.0', '2020-09-12 08:26:21');
+INSERT INTO `t_order_position` VALUES (18307, 2, 2785, 333, '109.4367971348719', '24.277518251722398', '154.0', '15.0', '2020-09-12 08:26:26');
+INSERT INTO `t_order_position` VALUES (18308, 2, 2785, 333, '109.4365807297511', '24.277951732626285', '148.0', '15.0', '2020-09-12 08:26:31');
+INSERT INTO `t_order_position` VALUES (18309, 2, 2785, 333, '109.43628108426878', '24.27848528869133', '148.0', '15.0', '2020-09-12 08:26:36');
+INSERT INTO `t_order_position` VALUES (18310, 2, 2785, 333, '109.4358815447005', '24.27910227705841', '150.0', '15.0', '2020-09-12 08:26:41');
+INSERT INTO `t_order_position` VALUES (18311, 2, 2785, 333, '109.43556524169034', '24.279669168423155', '148.0', '15.0', '2020-09-12 08:26:46');
+INSERT INTO `t_order_position` VALUES (18312, 2, 2785, 333, '109.4352489270048', '24.280119426538675', '148.0', '15.0', '2020-09-12 08:26:51');
+INSERT INTO `t_order_position` VALUES (18313, 2, 2785, 333, '109.43493260748004', '24.280569680453045', '148.0', '15.0', '2020-09-12 08:26:56');
+INSERT INTO `t_order_position` VALUES (18314, 2, 2785, 333, '109.4346162811519', '24.280986607529634', '148.0', '15.0', '2020-09-12 08:27:01');
+INSERT INTO `t_order_position` VALUES (18315, 2, 2785, 333, '109.43411680817619', '24.281637012608844', '148.0', '15.0', '2020-09-12 08:27:11');
+INSERT INTO `t_order_position` VALUES (18316, 2, 2785, 333, '109.43383377094125', '24.28205388863324', '146.0', '15.0', '2020-09-12 08:27:26');
+INSERT INTO `t_order_position` VALUES (18317, 2, 2785, 333, '109.43345083315023', '24.28263749355944', '148.0', '15.0', '2020-09-12 08:27:36');
+INSERT INTO `t_order_position` VALUES (18318, 2, 2785, 333, '109.4331844380617', '24.283054342038874', '148.0', '15.0', '2020-09-12 08:27:41');
+INSERT INTO `t_order_position` VALUES (18319, 2, 2785, 333, '109.43283478551606', '24.28353792975499', '146.0', '15.0', '2020-09-12 08:27:47');
+INSERT INTO `t_order_position` VALUES (18320, 2, 2785, 333, '109.43248513187893', '24.284104819016285', '148.0', '15.0', '2020-09-12 08:27:51');
+INSERT INTO `t_order_position` VALUES (18321, 2, 2785, 333, '109.43190235597558', '24.284938547260612', '152.0', '15.0', '2020-09-12 08:28:02');
+INSERT INTO `t_order_position` VALUES (18322, 2, 2785, 333, '109.43158598870235', '24.285455401797424', '152.0', '15.0', '2020-09-12 08:28:06');
+INSERT INTO `t_order_position` VALUES (18323, 2, 2785, 333, '109.43126961748408', '24.285988913475677', '150.0', '15.0', '2020-09-12 08:28:16');
+INSERT INTO `t_order_position` VALUES (18324, 2, 2785, 333, '109.43101985090726', '24.286472364859858', '152.0', '15.0', '2020-09-12 08:28:22');
+INSERT INTO `t_order_position` VALUES (18325, 2, 2785, 333, '109.43075342794387', '24.286955831466457', '150.0', '15.0', '2020-09-12 08:28:27');
+INSERT INTO `t_order_position` VALUES (18326, 2, 2785, 333, '109.43053695909224', '24.287389258025353', '0.0', '15.0', '2020-09-12 08:28:37');
+INSERT INTO `t_order_position` VALUES (18327, 2, 2785, 333, '109.43027052586355', '24.287806073668346', '150.0', '15.0', '2020-09-12 08:30:17');
+INSERT INTO `t_order_position` VALUES (18328, 2, 2785, 333, '109.42978761029835', '24.28862298322828', '150.0', '15.0', '2020-09-12 08:30:27');
+INSERT INTO `t_order_position` VALUES (18329, 2, 2785, 333, '109.42942125073127', '24.28920650564749', '150.0', '15.0', '2020-09-12 08:30:32');
+INSERT INTO `t_order_position` VALUES (18330, 2, 2785, 333, '109.42907153922145', '24.28979000577446', '150.0', '15.0', '2020-09-12 08:30:37');
+INSERT INTO `t_order_position` VALUES (18331, 2, 2785, 333, '109.4287384717353', '24.29029017726433', '150.0', '15.0', '2020-09-12 08:30:43');
+INSERT INTO `t_order_position` VALUES (18332, 2, 2785, 333, '109.42843871117923', '24.290823634671813', '148.0', '15.0', '2020-09-12 08:30:48');
+INSERT INTO `t_order_position` VALUES (18333, 2, 2785, 333, '109.42812228969268', '24.29134044270588', '152.0', '15.0', '2020-09-12 08:30:52');
+INSERT INTO `t_order_position` VALUES (18334, 2, 2785, 333, '109.42785582454678', '24.291757230874474', '148.0', '15.0', '2020-09-12 08:30:57');
+INSERT INTO `t_order_position` VALUES (18335, 2, 2785, 333, '109.42748942589265', '24.29227407724363', '150.0', '15.0', '2020-09-12 08:31:02');
+INSERT INTO `t_order_position` VALUES (18336, 2, 2785, 333, '109.42708971277196', '24.292874255275446', '144.0', '15.0', '2020-09-12 08:31:07');
+INSERT INTO `t_order_position` VALUES (18337, 2, 2785, 333, '109.42673995676144', '24.29339107466548', '144.0', '15.0', '2020-09-12 08:31:12');
+INSERT INTO `t_order_position` VALUES (18338, 2, 2785, 333, '109.42637353378855', '24.293841257467832', '142.0', '15.0', '2020-09-12 08:31:22');
+INSERT INTO `t_order_position` VALUES (18339, 2, 2785, 333, '109.42589051183249', '24.2944414873286', '144.0', '15.0', '2020-09-12 08:31:33');
+INSERT INTO `t_order_position` VALUES (18340, 2, 2785, 333, '109.42557404128921', '24.294808307286463', '142.0', '15.0', '2020-09-12 08:31:38');
+INSERT INTO `t_order_position` VALUES (18341, 2, 2785, 333, '109.42520759400472', '24.295208486921545', '0.0', '15.0', '2020-09-12 08:31:58');
+INSERT INTO `t_order_position` VALUES (18342, 2, 2785, 333, '109.42470788356424', '24.295775382409133', '144.0', '15.0', '2020-09-12 08:32:28');
+INSERT INTO `t_order_position` VALUES (18343, 2, 2785, 333, '109.42417484600954', '24.296392277228595', '140.0', '15.0', '2020-09-12 08:32:38');
+INSERT INTO `t_order_position` VALUES (18344, 2, 2785, 333, '109.4237584005901', '24.296875779609913', '146.0', '15.0', '2020-09-12 08:32:43');
+INSERT INTO `t_order_position` VALUES (18345, 2, 2785, 333, '109.42340858131347', '24.29730924057208', '150.0', '15.0', '2020-09-12 08:32:48');
+INSERT INTO `t_order_position` VALUES (18346, 2, 2785, 333, '109.42310874279642', '24.297875951972934', '152.0', '15.0', '2020-09-12 08:32:58');
+INSERT INTO `t_order_position` VALUES (18347, 2, 2785, 333, '109.42279223493686', '24.298359363833786', '150.0', '15.0', '2020-09-12 08:33:08');
+INSERT INTO `t_order_position` VALUES (18348, 2, 2785, 333, '109.42234245859495', '24.299159433056488', '148.0', '15.0', '2020-09-12 08:33:18');
+INSERT INTO `t_order_position` VALUES (18349, 2, 2785, 333, '109.42209257682146', '24.299576142990333', '148.0', '15.0', '2020-09-12 08:33:23');
+INSERT INTO `t_order_position` VALUES (18350, 2, 2785, 333, '109.42182603116896', '24.299992861386748', '150.0', '15.0', '2020-09-12 08:33:28');
+INSERT INTO `t_order_position` VALUES (18351, 2, 2785, 333, '109.42152615997702', '24.300409598572948', '148.0', '15.0', '2020-09-12 08:33:33');
+INSERT INTO `t_order_position` VALUES (18352, 2, 2785, 333, '109.4212429435424', '24.300792998023393', '148.0', '15.0', '2020-09-12 08:33:38');
+INSERT INTO `t_order_position` VALUES (18353, 2, 2785, 333, '109.42085976770113', '24.301409718484017', '150.0', '15.0', '2020-09-12 08:33:53');
+INSERT INTO `t_order_position` VALUES (18354, 2, 2785, 333, '109.4205432259881', '24.301926422577807', '150.0', '15.0', '2020-09-12 08:34:03');
+INSERT INTO `t_order_position` VALUES (18355, 2, 2785, 333, '109.42027666150953', '24.30237644617465', '152.0', '15.0', '2020-09-12 08:34:19');
+INSERT INTO `t_order_position` VALUES (18356, 2, 2785, 333, '109.41996010952509', '24.302876480721885', '150.0', '15.0', '2020-09-12 08:36:09');
+INSERT INTO `t_order_position` VALUES (18357, 2, 2785, 333, '109.41972686128071', '24.30330981691824', '160.0', '15.0', '2020-09-12 08:36:29');
+INSERT INTO `t_order_position` VALUES (18358, 2, 2785, 333, '109.41957692460794', '24.303759765257638', '158.0', '15.0', '2020-09-12 08:36:39');
+INSERT INTO `t_order_position` VALUES (18359, 2, 2785, 333, '109.41941032893618', '24.304293030024247', '158.0', '15.0', '2020-09-12 08:36:49');
+INSERT INTO `t_order_position` VALUES (18360, 2, 2785, 333, '109.41926040456487', '24.304992900530635', '154.0', '15.0', '2020-09-12 08:36:59');
+INSERT INTO `t_order_position` VALUES (18361, 2, 2785, 333, '109.41909380232086', '24.30545951697449', '160.0', '15.0', '2020-09-12 08:37:10');
+INSERT INTO `t_order_position` VALUES (18362, 2, 2785, 333, '109.41892721532942', '24.30620937976063', '160.0', '15.0', '2020-09-12 08:37:20');
+INSERT INTO `t_order_position` VALUES (18363, 2, 2785, 333, '109.41879394668928', '24.30684259263411', '160.0', '15.0', '2020-09-12 08:37:30');
+INSERT INTO `t_order_position` VALUES (18364, 2, 2785, 333, '109.41861069276908', '24.30757580103712', '160.0', '15.0', '2020-09-12 08:37:40');
+INSERT INTO `t_order_position` VALUES (18365, 2, 2785, 333, '109.41839411287782', '24.30835901040616', '162.0', '15.0', '2020-09-12 08:37:50');
+INSERT INTO `t_order_position` VALUES (18366, 2, 2785, 333, '109.41827749361602', '24.30880893447487', '162.0', '15.0', '2020-09-12 08:37:55');
+INSERT INTO `t_order_position` VALUES (18367, 2, 2785, 333, '109.41817753846125', '24.309275511338264', '162.0', '15.0', '2020-09-12 08:38:00');
+INSERT INTO `t_order_position` VALUES (18368, 2, 2785, 333, '109.4180275920535', '24.309758774498654', '160.0', '15.0', '2020-09-12 08:38:05');
+INSERT INTO `t_order_position` VALUES (18369, 2, 2785, 333, '109.41791097162007', '24.310225358774517', '160.0', '15.0', '2020-09-12 08:38:10');
+INSERT INTO `t_order_position` VALUES (18370, 2, 2785, 333, '109.41772772130984', '24.311158501839213', '160.0', '15.0', '2020-09-12 08:38:20');
+INSERT INTO `t_order_position` VALUES (18371, 2, 2785, 333, '109.41762776338985', '24.31162507704485', '160.0', '15.0', '2020-09-12 08:38:30');
+INSERT INTO `t_order_position` VALUES (18372, 2, 2785, 333, '109.41746115333278', '24.312191653655983', '160.0', '15.0', '2020-09-12 08:39:00');
+INSERT INTO `t_order_position` VALUES (18373, 2, 2785, 333, '109.41784445937482', '24.312674658588207', '44.0', '15.0', '2020-09-12 08:39:20');
+INSERT INTO `t_order_position` VALUES (18374, 2, 2785, 333, '109.41846100918212', '24.312474408050015', '66.0', '15.0', '2020-09-12 08:39:30');
+INSERT INTO `t_order_position` VALUES (18375, 2, 2785, 333, '109.41912753286451', '24.312340759848613', '76.0', '15.0', '2020-09-12 08:39:40');
+INSERT INTO `t_order_position` VALUES (18376, 2, 2785, 333, '109.4187775674281', '24.31167448102479', '148.0', '15.0', '2020-09-12 08:40:01');
+INSERT INTO `t_order_position` VALUES (18377, 2, 2785, 333, '109.41804433923082', '24.311175008037644', '152.0', '15.0', '2020-09-12 08:40:11');
+INSERT INTO `t_order_position` VALUES (18378, 2, 2785, 333, '109.41754439780883', '24.31087534130095', '148.0', '15.0', '2020-09-12 08:40:21');
+INSERT INTO `t_order_position` VALUES (18379, 2, 2785, 333, '109.41699444459098', '24.310492377599793', '140.0', '15.0', '2020-09-12 08:40:31');
+INSERT INTO `t_order_position` VALUES (18380, 2, 2785, 333, '109.4164944699193', '24.31007605568486', '152.0', '15.0', '2020-09-12 08:40:41');
+INSERT INTO `t_order_position` VALUES (18381, 2, 2785, 333, '109.41579449309612', '24.309643141209015', '152.0', '15.0', '2020-09-12 08:40:51');
+INSERT INTO `t_order_position` VALUES (18382, 2, 2785, 333, '109.41532783147987', '24.309410058225104', '162.0', '15.0', '2020-09-12 08:41:01');
+INSERT INTO `t_order_position` VALUES (18383, 2, 2785, 333, '109.41464450101572', '24.309326996149164', '112.0', '15.0', '2020-09-12 08:41:11');
+INSERT INTO `t_order_position` VALUES (18384, 2, 2785, 333, '109.41379448390154', '24.309427243028242', '108.0', '15.0', '2020-09-12 08:41:21');
+INSERT INTO `t_order_position` VALUES (18385, 2, 2785, 333, '109.41326111474349', '24.30937741527061', '164.0', '15.0', '2020-09-12 08:41:26');
+INSERT INTO `t_order_position` VALUES (18386, 2, 2785, 333, '109.41276106610364', '24.30929424279612', '106.0', '14.0', '2020-09-12 08:41:31');
+INSERT INTO `t_order_position` VALUES (18387, 2, 2785, 333, '109.41206097802255', '24.309194444182726', '0.0', '15.0', '2020-09-12 08:41:41');
+INSERT INTO `t_order_position` VALUES (18388, 2, 2785, 333, '109.4113108550119', '24.309061310196636', '116.0', '15.0', '2020-09-12 08:42:02');
+INSERT INTO `t_order_position` VALUES (18389, 2, 2785, 333, '109.41064406737424', '24.30914473891534', '112.0', '15.0', '2020-09-12 08:42:11');
+INSERT INTO `t_order_position` VALUES (18390, 2, 2785, 333, '109.40989390233922', '24.309194835731176', '110.0', '15.0', '2020-09-12 08:42:21');
+INSERT INTO `t_order_position` VALUES (18391, 2, 2785, 333, '109.4092270629726', '24.30919491417644', '110.0', '15.0', '2020-09-12 08:42:32');
+INSERT INTO `t_order_position` VALUES (18392, 2, 2785, 333, '109.40862688974212', '24.309211629582084', '110.0', '15.0', '2020-09-12 08:42:42');
+INSERT INTO `t_order_position` VALUES (18393, 2, 2785, 333, '109.40790999564716', '24.309278319532254', '114.0', '15.0', '2020-09-12 08:42:57');
+INSERT INTO `t_order_position` VALUES (18394, 2, 2785, 333, '109.40724310578754', '24.30952826433235', '130.0', '15.0', '2020-09-12 08:43:07');
+INSERT INTO `t_order_position` VALUES (18395, 2, 2785, 333, '109.40674293754955', '24.309944807962534', '136.0', '15.0', '2020-09-12 08:43:17');
+INSERT INTO `t_order_position` VALUES (18396, 2, 2785, 333, '109.40615939035366', '24.31039466154659', '136.0', '15.0', '2020-09-12 08:43:27');
+INSERT INTO `t_order_position` VALUES (18397, 2, 2785, 333, '109.40572589321442', '24.310827846886266', '148.0', '15.0', '2020-09-12 08:43:37');
+INSERT INTO `t_order_position` VALUES (18398, 2, 2785, 333, '109.40542578228336', '24.311261033126495', '146.0', '15.0', '2020-09-12 08:43:47');
+INSERT INTO `t_order_position` VALUES (18399, 2, 2787, 309, '109.4444202425011', '24.26904294870417', '104.0', '15.0', '2020-09-12 09:51:04');
+INSERT INTO `t_order_position` VALUES (18400, 2, 2787, 309, '109.44382110485208', '24.269043932153668', '166.0', '15.0', '2020-09-12 09:51:29');
+INSERT INTO `t_order_position` VALUES (18401, 2, 2787, 309, '109.44380449705609', '24.26964376187609', '166.0', '15.0', '2020-09-12 09:51:39');
+INSERT INTO `t_order_position` VALUES (18402, 2, 2787, 309, '109.44375461012828', '24.270360274347173', '160.0', '15.0', '2020-09-12 09:51:49');
+INSERT INTO `t_order_position` VALUES (18403, 2, 2787, 309, '109.44355493923287', '24.271143674732055', '160.0', '15.0', '2020-09-12 09:52:04');
+INSERT INTO `t_order_position` VALUES (18404, 2, 2787, 309, '109.44360492035133', '24.272026637930438', '14.0', '15.0', '2020-09-12 09:52:14');
+INSERT INTO `t_order_position` VALUES (18405, 2, 2787, 309, '109.44372145691548', '24.27262625268209', '12.0', '15.0', '2020-09-12 09:52:35');
+INSERT INTO `t_order_position` VALUES (18406, 2, 2787, 309, '109.44380470307554', '24.273159276443945', '8.0', '15.0', '2020-09-12 09:52:45');
+INSERT INTO `t_order_position` VALUES (18407, 2, 2787, 309, '109.44375480736288', '24.27372583949661', '132.0', '15.0', '2020-09-12 09:53:00');
+INSERT INTO `t_order_position` VALUES (18408, 2, 2787, 309, '109.44327217293214', '24.27402652196227', '132.0', '15.0', '2020-09-12 09:53:10');
+INSERT INTO `t_order_position` VALUES (18409, 2, 2787, 309, '109.44244002045961', '24.274561004399455', '134.0', '15.0', '2020-09-12 09:53:20');
+INSERT INTO `t_order_position` VALUES (18410, 2, 2787, 309, '109.44194071541553', '24.27491167047581', '130.0', '15.0', '2020-09-12 09:53:25');
+INSERT INTO `t_order_position` VALUES (18411, 2, 2787, 309, '109.44144139491885', '24.275195681296445', '130.0', '15.0', '2020-09-12 09:53:30');
+INSERT INTO `t_order_position` VALUES (18412, 2, 2787, 309, '109.44095871090576', '24.275529640405217', '134.0', '15.0', '2020-09-12 09:53:35');
+INSERT INTO `t_order_position` VALUES (18413, 2, 2787, 309, '109.44042607942542', '24.275863664226527', '130.0', '15.0', '2020-09-12 09:53:40');
+INSERT INTO `t_order_position` VALUES (18414, 2, 2787, 309, '109.43989343465667', '24.27619767621729', '130.0', '15.0', '2020-09-12 09:53:45');
+INSERT INTO `t_order_position` VALUES (18415, 2, 2787, 309, '109.43946065364945', '24.27651487069069', '130.0', '15.0', '2020-09-12 09:53:50');
+INSERT INTO `t_order_position` VALUES (18416, 2, 2787, 309, '109.43901121617843', '24.27681541983694', '128.0', '15.0', '2020-09-12 09:53:55');
+INSERT INTO `t_order_position` VALUES (18417, 2, 2787, 309, '109.43847853195858', '24.277082755111923', '130.0', '15.0', '2020-09-12 09:54:05');
+INSERT INTO `t_order_position` VALUES (18418, 2, 2787, 309, '109.43784595292642', '24.277416861405623', '132.0', '15.0', '2020-09-12 09:54:15');
+INSERT INTO `t_order_position` VALUES (18419, 2, 2787, 309, '109.43734653712042', '24.277717447706227', '134.0', '15.0', '2020-09-12 09:54:20');
+INSERT INTO `t_order_position` VALUES (18420, 2, 2787, 309, '109.4369470082105', '24.278167841239924', '120.0', '15.0', '2020-09-12 09:54:40');
+INSERT INTO `t_order_position` VALUES (18421, 2, 2787, 309, '109.4365141655947', '24.27846832050853', '120.0', '15.0', '2020-09-12 09:54:50');
+INSERT INTO `t_order_position` VALUES (18422, 2, 2787, 309, '109.43593145493375', '24.278469083357447', '120.0', '15.0', '2020-09-12 09:55:00');
+INSERT INTO `t_order_position` VALUES (18423, 2, 2787, 309, '109.43534874355049', '24.278736412131707', '132.0', '15.0', '2020-09-12 09:55:10');
+INSERT INTO `t_order_position` VALUES (18424, 2, 2787, 309, '109.43489921570186', '24.27900355988772', '130.0', '15.0', '2020-09-12 09:55:15');
+INSERT INTO `t_order_position` VALUES (18425, 2, 2787, 309, '109.43431647715713', '24.279304185243237', '132.0', '15.0', '2020-09-12 09:55:20');
+INSERT INTO `t_order_position` VALUES (18426, 2, 2787, 309, '109.43380032455447', '24.279588054480758', '0.0', '15.0', '2020-09-12 09:55:40');
+INSERT INTO `t_order_position` VALUES (18427, 2, 2787, 309, '109.43330080336528', '24.279755263350378', '126.0', '15.0', '2020-09-12 09:56:36');
+INSERT INTO `t_order_position` VALUES (18428, 2, 2787, 309, '109.43273467015935', '24.280039167596836', '128.0', '15.0', '2020-09-12 09:56:41');
+INSERT INTO `t_order_position` VALUES (18429, 2, 2787, 309, '109.43230173515782', '24.280272922692866', '132.0', '15.0', '2020-09-12 09:56:46');
+INSERT INTO `t_order_position` VALUES (18430, 2, 2787, 309, '109.43186879096172', '24.280506669579935', '132.0', '15.0', '2020-09-12 09:56:51');
+INSERT INTO `t_order_position` VALUES (18431, 2, 2787, 309, '109.43135257946226', '24.280840467536375', '130.0', '15.0', '2020-09-12 09:56:56');
+INSERT INTO `t_order_position` VALUES (18432, 2, 2787, 309, '109.43088631061647', '24.281107554858767', '126.0', '15.0', '2020-09-12 09:57:01');
+INSERT INTO `t_order_position` VALUES (18433, 2, 2787, 309, '109.43008696721373', '24.28155825599675', '130.0', '15.0', '2020-09-12 09:57:11');
+INSERT INTO `t_order_position` VALUES (18434, 2, 2787, 309, '109.4293375508252', '24.28192557204807', '126.0', '15.0', '2020-09-12 09:57:21');
+INSERT INTO `t_order_position` VALUES (18435, 2, 2787, 309, '109.4286880320709', '24.282209459078523', '126.0', '15.0', '2020-09-12 09:57:31');
+INSERT INTO `t_order_position` VALUES (18436, 2, 2787, 309, '109.42820504628612', '24.28247650739279', '124.0', '15.0', '2020-09-12 09:57:41');
+INSERT INTO `t_order_position` VALUES (18437, 2, 2787, 309, '109.4277553624686', '24.282776836854882', '128.0', '15.0', '2020-09-12 09:57:51');
+INSERT INTO `t_order_position` VALUES (18438, 2, 2787, 309, '109.4271057935565', '24.28307733951263', '130.0', '15.0', '2020-09-12 09:58:01');
+INSERT INTO `t_order_position` VALUES (18439, 2, 2787, 309, '109.42653948387411', '24.283311104709732', '130.0', '15.0', '2020-09-12 09:58:52');
+INSERT INTO `t_order_position` VALUES (18440, 2, 2787, 309, '109.42588987649965', '24.283628233435177', '124.0', '15.0', '2020-09-12 09:59:07');
+INSERT INTO `t_order_position` VALUES (18441, 2, 2787, 309, '109.42542348002782', '24.283878546301054', '132.0', '15.0', '2020-09-12 09:59:17');
+INSERT INTO `t_order_position` VALUES (18442, 2, 2787, 309, '109.42497373273764', '24.28416215862987', '132.0', '15.0', '2020-09-12 09:59:27');
+INSERT INTO `t_order_position` VALUES (18443, 2, 2787, 309, '109.42424078783287', '24.284595936293012', '130.0', '15.0', '2020-09-12 09:59:37');
+INSERT INTO `t_order_position` VALUES (18444, 2, 2787, 309, '109.4236244231521', '24.284896311815643', '130.0', '15.0', '2020-09-12 09:59:47');
+INSERT INTO `t_order_position` VALUES (18445, 2, 2787, 309, '109.42309133505415', '24.285146625846185', '130.0', '15.0', '2020-09-12 09:59:52');
+INSERT INTO `t_order_position` VALUES (18446, 2, 2787, 309, '109.42234165859811', '24.285547030438217', '124.0', '15.0', '2020-09-12 10:00:02');
+INSERT INTO `t_order_position` VALUES (18447, 2, 2787, 309, '109.42139202549536', '24.286014186041374', '132.0', '15.0', '2020-09-12 10:00:12');
+INSERT INTO `t_order_position` VALUES (18448, 2, 2787, 309, '109.42067560644244', '24.28638119006795', '126.0', '15.0', '2020-09-12 10:00:22');
+INSERT INTO `t_order_position` VALUES (18449, 2, 2787, 309, '109.41999248125255', '24.28666484458784', '0.0', '15.0', '2020-09-12 10:00:32');
+INSERT INTO `t_order_position` VALUES (18450, 2, 2787, 309, '109.41932600129637', '24.28704843712518', '126.0', '15.0', '2020-09-12 10:00:47');
+INSERT INTO `t_order_position` VALUES (18451, 2, 2787, 309, '109.4188594489878', '24.287265289722377', '128.0', '15.0', '2020-09-12 10:00:52');
+INSERT INTO `t_order_position` VALUES (18452, 2, 2787, 309, '109.41830957232631', '24.28756548214251', '132.0', '15.0', '2020-09-12 10:00:57');
+INSERT INTO `t_order_position` VALUES (18453, 2, 2787, 309, '109.41780967383194', '24.287882298042636', '138.0', '15.0', '2020-09-12 10:01:02');
+INSERT INTO `t_order_position` VALUES (18454, 2, 2787, 309, '109.41732643512704', '24.288332386165894', '136.0', '15.0', '2020-09-12 10:02:02');
+INSERT INTO `t_order_position` VALUES (18455, 2, 2787, 309, '109.41685984763711', '24.288749133678017', '134.0', '15.0', '2020-09-12 10:02:12');
+INSERT INTO `t_order_position` VALUES (18456, 2, 2787, 309, '109.41609328232776', '24.28934927209332', '134.0', '15.0', '2020-09-12 10:02:22');
+INSERT INTO `t_order_position` VALUES (18457, 2, 2787, 309, '109.41562666201331', '24.28969934829744', '140.0', '15.0', '2020-09-12 10:02:27');
+INSERT INTO `t_order_position` VALUES (18458, 2, 2787, 309, '109.41492672035949', '24.29038272789839', '148.0', '15.0', '2020-09-12 10:02:37');
+INSERT INTO `t_order_position` VALUES (18459, 2, 2787, 309, '109.41464341972473', '24.290932654524255', '152.0', '15.0', '2020-09-12 10:02:47');
+INSERT INTO `t_order_position` VALUES (18460, 2, 2787, 309, '109.41407679561766', '24.291849221729613', '142.0', '15.0', '2020-09-12 10:02:57');
+INSERT INTO `t_order_position` VALUES (18461, 2, 2787, 309, '109.4135934761761', '24.292465844347824', '136.0', '15.0', '2020-09-12 10:03:07');
+INSERT INTO `t_order_position` VALUES (18462, 2, 2787, 309, '109.41314347327204', '24.292949155886248', '132.0', '14.0', '2020-09-12 10:03:27');
+INSERT INTO `t_order_position` VALUES (18463, 2, 2787, 309, '109.41246010733539', '24.293532486119595', '140.0', '15.0', '2020-09-12 10:03:58');
+INSERT INTO `t_order_position` VALUES (18464, 2, 2787, 309, '109.41182674703902', '24.294482337168258', '152.0', '15.0', '2020-09-12 10:04:08');
+INSERT INTO `t_order_position` VALUES (18465, 2, 2787, 309, '109.41132669303099', '24.29491563925541', '164.0', '15.0', '2020-09-12 10:04:18');
+INSERT INTO `t_order_position` VALUES (18466, 2, 2787, 309, '109.4108265923109', '24.294765778538483', '158.0', '15.0', '2020-09-12 10:04:23');
+INSERT INTO `t_order_position` VALUES (18467, 2, 2787, 309, '109.41025979472309', '24.294565932291764', '162.0', '14.0', '2020-09-12 10:04:28');
+INSERT INTO `t_order_position` VALUES (18468, 2, 2787, 309, '109.40792575333435', '24.293716423743657', '160.0', '11.0', '2020-09-12 10:04:48');
+INSERT INTO `t_order_position` VALUES (18469, 2, 2787, 309, '109.40735886578491', '24.293366551695073', '156.0', '14.0', '2020-09-12 10:04:53');
+INSERT INTO `t_order_position` VALUES (18470, 2, 2787, 309, '109.40665858483608', '24.293166617714046', '102.0', '14.0', '2020-09-12 10:04:58');
+INSERT INTO `t_order_position` VALUES (18471, 2, 2787, 309, '109.4058915899603', '24.293066628158066', '114.0', '9.0', '2020-09-12 10:05:03');
+INSERT INTO `t_order_position` VALUES (18472, 2, 2787, 309, '109.40459096915622', '24.292916581073708', '134.0', '12.0', '2020-09-12 10:05:13');
+INSERT INTO `t_order_position` VALUES (18473, 2, 2787, 309, '109.40422413561208', '24.293266431841595', '152.0', '14.0', '2020-09-12 10:05:18');
+INSERT INTO `t_order_position` VALUES (18474, 2, 2787, 309, '109.40404073842895', '24.29381623797473', '158.0', '15.0', '2020-09-12 10:05:23');
+INSERT INTO `t_order_position` VALUES (18475, 2, 2787, 309, '109.40387401720248', '24.2943993680122', '160.0', '15.0', '2020-09-12 10:05:28');
+INSERT INTO `t_order_position` VALUES (18476, 2, 2787, 309, '109.40402413930273', '24.295115830740574', '34.0', '15.0', '2020-09-12 10:05:38');
+INSERT INTO `t_order_position` VALUES (18477, 2, 2787, 309, '109.40500801323077', '24.29584903818459', '32.0', '15.0', '2020-09-12 10:05:48');
+INSERT INTO `t_order_position` VALUES (18478, 2, 2787, 309, '109.40539154543353', '24.296148973435745', '32.0', '15.0', '2020-09-12 10:05:53');
+INSERT INTO `t_order_position` VALUES (18479, 2, 2787, 309, '109.40592514352296', '24.29656553968385', '36.0', '15.0', '2020-09-12 10:06:03');
+INSERT INTO `t_order_position` VALUES (18480, 2, 2788, 771, '109.42760794122596', '24.325014106460568', '0.0', '15.0', '2020-09-12 11:58:24');
+INSERT INTO `t_order_position` VALUES (18481, 2, 2788, 771, '109.42682509984824', '24.325048143965816', '112.0', '15.0', '2020-09-12 11:59:34');
+INSERT INTO `t_order_position` VALUES (18482, 2, 2788, 771, '109.42625876856626', '24.32504864321546', '144.0', '15.0', '2020-09-12 11:59:39');
+INSERT INTO `t_order_position` VALUES (18483, 2, 2788, 771, '109.4260921563664', '24.324348989592963', '108.0', '15.0', '2020-09-12 11:59:49');
+INSERT INTO `t_order_position` VALUES (18484, 2, 2788, 771, '109.42630865443586', '24.323599019168316', '104.0', '15.0', '2020-09-12 11:59:59');
+INSERT INTO `t_order_position` VALUES (18485, 2, 2788, 771, '109.42645853649253', '24.32308237125696', '102.0', '15.0', '2020-09-12 12:00:09');
+INSERT INTO `t_order_position` VALUES (18486, 2, 2792, 324, '109.41382853680282', '24.321640282917162', '136.0', '15.0', '2020-09-12 18:02:44');
+INSERT INTO `t_order_position` VALUES (18487, 2, 2792, 324, '109.41332853268739', '24.322073638575148', '148.0', '15.0', '2020-09-12 18:02:59');
+INSERT INTO `t_order_position` VALUES (18488, 2, 2792, 324, '109.41296186087074', '24.322490285828774', '144.0', '15.0', '2020-09-12 18:03:14');
+INSERT INTO `t_order_position` VALUES (18489, 2, 2792, 324, '109.41264519650674', '24.323056870943045', '140.0', '15.0', '2020-09-12 18:04:09');
+INSERT INTO `t_order_position` VALUES (18490, 2, 2792, 324, '109.41302853636459', '24.322540253238643', '92.0', '15.0', '2020-09-12 18:04:45');
+INSERT INTO `t_order_position` VALUES (18491, 2, 2792, 324, '109.41329520085549', '24.32214029534397', '100.0', '15.0', '2020-09-12 18:05:10');
+INSERT INTO `t_order_position` VALUES (18492, 2, 2792, 324, '109.41389520842812', '24.32167358589086', '76.0', '15.0', '2020-09-12 18:05:25');
+INSERT INTO `t_order_position` VALUES (18493, 2, 2792, 324, '109.41452857972949', '24.322023277858204', '12.0', '15.0', '2020-09-12 18:09:11');
+INSERT INTO `t_order_position` VALUES (18494, 2, 2792, 324, '109.41466194453149', '24.322539748560427', '12.0', '15.0', '2020-09-12 18:09:16');
+INSERT INTO `t_order_position` VALUES (18495, 2, 2792, 324, '109.4147619741604', '24.323039568538675', '12.0', '15.0', '2020-09-12 18:09:21');
+INSERT INTO `t_order_position` VALUES (18496, 2, 2792, 324, '109.41484533571992', '24.32352273233102', '10.0', '15.0', '2020-09-12 18:09:26');
+INSERT INTO `t_order_position` VALUES (18497, 2, 2792, 324, '109.41507871567205', '24.32435574055502', '8.0', '15.0', '2020-09-12 18:09:36');
+INSERT INTO `t_order_position` VALUES (18498, 2, 2792, 324, '109.4151454144685', '24.32492221904963', '6.0', '15.0', '2020-09-12 18:09:41');
+INSERT INTO `t_order_position` VALUES (18499, 2, 2792, 324, '109.41524544167427', '24.325422037781628', '164.0', '15.0', '2020-09-12 18:09:46');
+INSERT INTO `t_order_position` VALUES (18500, 2, 2792, 324, '109.41531213991354', '24.325988516248298', '160.0', '15.0', '2020-09-12 18:09:51');
+INSERT INTO `t_order_position` VALUES (18501, 2, 2792, 324, '109.41517886761848', '24.32697161638285', '164.0', '15.0', '2020-09-12 18:10:01');
+INSERT INTO `t_order_position` VALUES (18502, 2, 2792, 324, '109.41512890386977', '24.327571462596612', '160.0', '15.0', '2020-09-12 18:10:06');
+INSERT INTO `t_order_position` VALUES (18503, 2, 2792, 324, '109.41504560814631', '24.328187982998646', '160.0', '15.0', '2020-09-12 18:10:11');
+INSERT INTO `t_order_position` VALUES (18504, 2, 2792, 324, '109.41499565287988', '24.32893778663013', '166.0', '15.0', '2020-09-12 18:10:26');
+INSERT INTO `t_order_position` VALUES (18505, 2, 2792, 324, '109.41494569356989', '24.329620942931303', '160.0', '15.0', '2020-09-12 18:10:36');
+INSERT INTO `t_order_position` VALUES (18506, 2, 2792, 324, '109.41467906873766', '24.330320837525786', '148.0', '15.0', '2020-09-12 18:10:46');
+INSERT INTO `t_order_position` VALUES (18507, 2, 2792, 324, '109.4143290906854', '24.330770828048863', '148.0', '15.0', '2020-09-12 18:10:57');
+INSERT INTO `t_order_position` VALUES (18508, 2, 2792, 324, '109.41404577174428', '24.331154144387956', '142.0', '15.0', '2020-09-12 18:11:07');
+INSERT INTO `t_order_position` VALUES (18509, 2, 2792, 324, '109.41359577896647', '24.33163747913156', '102.0', '15.0', '2020-09-12 18:11:32');
+INSERT INTO `t_order_position` VALUES (18510, 2, 2792, 324, '109.41286240606009', '24.33192093846104', '120.0', '15.0', '2020-09-12 18:13:32');
+INSERT INTO `t_order_position` VALUES (18511, 2, 2792, 324, '109.41237902881736', '24.33205435681947', '134.0', '15.0', '2020-09-12 18:13:37');
+INSERT INTO `t_order_position` VALUES (18512, 2, 2792, 324, '109.41182897143128', '24.332321075008686', '128.0', '15.0', '2020-09-12 18:13:43');
+INSERT INTO `t_order_position` VALUES (18513, 2, 2792, 324, '109.4113455732072', '24.332521118884188', '134.0', '15.0', '2020-09-12 18:13:48');
+INSERT INTO `t_order_position` VALUES (18514, 2, 2792, 324, '109.41079548262697', '24.332704502009538', '116.0', '15.0', '2020-09-12 18:13:58');
+INSERT INTO `t_order_position` VALUES (18515, 2, 2792, 324, '109.41001198879796', '24.33287124305365', '116.0', '15.0', '2020-09-12 18:14:08');
+INSERT INTO `t_order_position` VALUES (18516, 2, 2792, 324, '109.40946185889266', '24.33300460771267', '2.0', '15.0', '2020-09-12 18:14:33');
+INSERT INTO `t_order_position` VALUES (18517, 2, 2792, 324, '109.4094618961146', '24.333637762334043', '2.0', '15.0', '2020-09-12 18:14:43');
+INSERT INTO `t_order_position` VALUES (18518, 2, 2792, 324, '109.40949528328059', '24.334404209293858', '0.0', '15.0', '2020-09-12 18:14:53');
+INSERT INTO `t_order_position` VALUES (18519, 2, 2792, 324, '109.40966202238037', '24.334904049002866', '20.0', '15.0', '2020-09-12 18:15:08');
+INSERT INTO `t_order_position` VALUES (18520, 2, 2792, 324, '109.40982876206466', '24.335437211661564', '126.0', '15.0', '2020-09-12 18:15:23');
+INSERT INTO `t_order_position` VALUES (18521, 2, 2792, 324, '109.4091952660026', '24.335487270755344', '164.0', '15.0', '2020-09-12 18:15:33');
+INSERT INTO `t_order_position` VALUES (18522, 2, 2792, 324, '109.4084283703134', '24.335454011495624', '110.0', '15.0', '2020-09-12 18:15:43');
+INSERT INTO `t_order_position` VALUES (18523, 2, 2792, 324, '109.4077614846093', '24.335487370641115', '112.0', '15.0', '2020-09-12 18:15:53');
+INSERT INTO `t_order_position` VALUES (18524, 2, 2792, 324, '109.40686115357818', '24.33552071102256', '112.0', '15.0', '2020-09-12 18:16:03');
+INSERT INTO `t_order_position` VALUES (18525, 2, 2792, 324, '109.40634427977648', '24.33555402833901', '112.0', '15.0', '2020-09-12 18:16:08');
+INSERT INTO `t_order_position` VALUES (18526, 2, 2792, 324, '109.40582739391026', '24.335603995953043', '110.0', '15.0', '2020-09-12 18:16:13');
+INSERT INTO `t_order_position` VALUES (18527, 2, 2792, 324, '109.40522712059482', '24.335620621975252', '114.0', '15.0', '2020-09-12 18:16:18');
+INSERT INTO `t_order_position` VALUES (18528, 2, 2792, 324, '109.40469352875174', '24.335620576825686', '112.0', '15.0', '2020-09-12 18:16:23');
+INSERT INTO `t_order_position` VALUES (18529, 2, 2792, 324, '109.40350957070586', '24.335587108559814', '112.0', '15.0', '2020-09-12 18:16:36');
+INSERT INTO `t_order_position` VALUES (18530, 2, 2792, 324, '109.40269243585936', '24.335603635682578', '114.0', '15.0', '2020-09-12 18:16:39');
+INSERT INTO `t_order_position` VALUES (18531, 2, 2792, 324, '109.40199200826028', '24.335603497251174', '110.0', '15.0', '2020-09-12 18:16:45');
+INSERT INTO `t_order_position` VALUES (18532, 2, 2792, 324, '109.40134158828951', '24.3355700259338', '114.0', '15.0', '2020-09-12 18:16:49');
+INSERT INTO `t_order_position` VALUES (18533, 2, 2792, 324, '109.40060776118654', '24.3356031620797', '112.0', '15.0', '2020-09-12 18:16:54');
+INSERT INTO `t_order_position` VALUES (18534, 2, 2792, 324, '109.39982387020441', '24.335602936225083', '114.0', '15.0', '2020-09-12 18:16:59');
+INSERT INTO `t_order_position` VALUES (18535, 2, 2792, 324, '109.39907330822302', '24.33558603371441', '114.0', '15.0', '2020-09-12 18:17:04');
+INSERT INTO `t_order_position` VALUES (18536, 2, 2792, 324, '109.39838944080562', '24.335585794011916', '114.0', '15.0', '2020-09-12 18:17:09');
+INSERT INTO `t_order_position` VALUES (18537, 2, 2792, 324, '109.39773891257012', '24.335585547897914', '114.0', '15.0', '2020-09-12 18:17:14');
+INSERT INTO `t_order_position` VALUES (18538, 2, 2792, 324, '109.39715508750854', '24.33556865007671', '114.0', '15.0', '2020-09-12 18:17:19');
+INSERT INTO `t_order_position` VALUES (18539, 2, 2792, 324, '109.39617089332982', '24.335601544688004', '110.0', '15.0', '2020-09-12 18:17:29');
+INSERT INTO `t_order_position` VALUES (18540, 2, 2792, 324, '109.39553698472574', '24.335667895084537', '110.0', '15.0', '2020-09-12 18:17:39');
+INSERT INTO `t_order_position` VALUES (18541, 2, 2792, 324, '109.39493641817958', '24.335650936063022', '114.0', '15.0', '2020-09-12 18:17:59');
+INSERT INTO `t_order_position` VALUES (18542, 2, 2792, 324, '109.39436920237458', '24.335650642111894', '110.0', '15.0', '2020-09-12 18:18:09');
+INSERT INTO `t_order_position` VALUES (18543, 2, 2792, 324, '109.39376860318714', '24.335616992739837', '112.0', '15.0', '2020-09-12 18:18:19');
+INSERT INTO `t_order_position` VALUES (18544, 2, 2792, 324, '109.39275088869249', '24.335633070412168', '114.0', '15.0', '2020-09-12 18:18:29');
+INSERT INTO `t_order_position` VALUES (18545, 2, 2792, 324, '109.39218361845462', '24.335649388841556', '114.0', '15.0', '2020-09-12 18:18:34');
+INSERT INTO `t_order_position` VALUES (18546, 2, 2792, 324, '109.39108240446875', '24.33564868571366', '110.0', '15.0', '2020-09-12 18:18:44');
+INSERT INTO `t_order_position` VALUES (18547, 2, 2792, 324, '109.39048172093868', '24.335664944195823', '112.0', '15.0', '2020-09-12 18:18:49');
+INSERT INTO `t_order_position` VALUES (18548, 2, 2792, 324, '109.3898142743915', '24.33564781744325', '110.0', '15.0', '2020-09-12 18:18:54');
+INSERT INTO `t_order_position` VALUES (18549, 2, 2792, 324, '109.38903000136092', '24.335647249444715', '114.0', '15.0', '2020-09-12 18:18:59');
+INSERT INTO `t_order_position` VALUES (18550, 2, 2792, 324, '109.38846263756577', '24.33563016191318', '114.0', '15.0', '2020-09-12 18:19:04');
+INSERT INTO `t_order_position` VALUES (18551, 2, 2792, 324, '109.38749475386074', '24.33566273186574', '110.0', '15.0', '2020-09-12 18:19:14');
+INSERT INTO `t_order_position` VALUES (18552, 2, 2792, 324, '109.38667702674427', '24.335662067461072', '112.0', '15.0', '2020-09-12 18:19:24');
+INSERT INTO `t_order_position` VALUES (18553, 2, 2792, 324, '109.38585927090692', '24.335644716257246', '110.0', '15.0', '2020-09-12 18:19:34');
+INSERT INTO `t_order_position` VALUES (18554, 2, 2792, 324, '109.38504148956078', '24.335660664495908', '112.0', '15.0', '2020-09-12 18:19:55');
+INSERT INTO `t_order_position` VALUES (18555, 2, 2792, 324, '109.38452410301757', '24.335660200377045', '114.0', '15.0', '2020-09-12 18:20:05');
+INSERT INTO `t_order_position` VALUES (18556, 2, 2792, 324, '109.38397332482816', '24.33565969570981', '112.0', '15.0', '2020-09-12 18:20:15');
+INSERT INTO `t_order_position` VALUES (18557, 2, 2792, 324, '109.38333908230362', '24.335692425125927', '114.0', '15.0', '2020-09-12 18:20:40');
+INSERT INTO `t_order_position` VALUES (18558, 2, 2792, 324, '109.38277159076418', '24.335758529024904', '114.0', '15.0', '2020-09-12 18:20:50');
+INSERT INTO `t_order_position` VALUES (18559, 2, 2792, 324, '109.38222077520533', '24.33577465210463', '114.0', '15.0', '2020-09-12 18:21:00');
+INSERT INTO `t_order_position` VALUES (18560, 2, 2792, 324, '109.3815030238649', '24.335723948020185', '110.0', '15.0', '2020-09-12 18:21:15');
+INSERT INTO `t_order_position` VALUES (18561, 2, 2792, 324, '109.38088540751414', '24.335673329897148', '110.0', '15.0', '2020-09-12 18:21:25');
+INSERT INTO `t_order_position` VALUES (18562, 2, 2792, 324, '109.38013423832606', '24.335705867510736', '114.0', '15.0', '2020-09-12 18:21:35');
+INSERT INTO `t_order_position` VALUES (18563, 2, 2792, 324, '109.3796000620957', '24.33575528268619', '112.0', '15.0', '2020-09-12 18:21:40');
+INSERT INTO `t_order_position` VALUES (18564, 2, 2792, 324, '109.37906587320015', '24.33577136431329', '114.0', '15.0', '2020-09-12 18:21:45');
+INSERT INTO `t_order_position` VALUES (18565, 2, 2792, 324, '109.3782144900777', '24.335837067792312', '110.0', '15.0', '2020-09-12 18:21:55');
+INSERT INTO `t_order_position` VALUES (18566, 2, 2792, 324, '109.37753002432707', '24.33586961526155', '112.0', '15.0', '2020-09-12 18:24:21');
+INSERT INTO `t_order_position` VALUES (18567, 2, 2792, 324, '109.37696240406537', '24.335868959815542', '112.0', '15.0', '2020-09-12 18:24:26');
+INSERT INTO `t_order_position` VALUES (18568, 2, 2792, 324, '109.37612764641955', '24.33585131522198', '114.0', '15.0', '2020-09-12 18:24:31');
+INSERT INTO `t_order_position` VALUES (18569, 2, 2792, 324, '109.37530956192792', '24.335866992961577', '114.0', '15.0', '2020-09-12 18:24:36');
+INSERT INTO `t_order_position` VALUES (18570, 2, 2792, 324, '109.3744747577639', '24.335882629200427', '114.0', '15.0', '2020-09-12 18:24:41');
+INSERT INTO `t_order_position` VALUES (18571, 2, 2792, 324, '109.37369001911884', '24.335881645570968', '112.0', '15.0', '2020-09-12 18:24:46');
+INSERT INTO `t_order_position` VALUES (18572, 2, 2792, 324, '109.37287186420846', '24.335863938374274', '112.0', '15.0', '2020-09-12 18:24:51');
+INSERT INTO `t_order_position` VALUES (18573, 2, 2792, 324, '109.37205368801384', '24.335862873381682', '110.0', '15.0', '2020-09-12 18:24:56');
+INSERT INTO `t_order_position` VALUES (18574, 2, 2792, 324, '109.37118539546782', '24.33586172191398', '112.0', '15.0', '2020-09-12 18:25:01');
+INSERT INTO `t_order_position` VALUES (18575, 2, 2792, 324, '109.37041727033379', '24.33586068537107', '114.0', '15.0', '2020-09-12 18:25:06');
+INSERT INTO `t_order_position` VALUES (18576, 2, 2792, 324, '109.36959903057515', '24.3358762250395', '114.0', '15.0', '2020-09-12 18:25:11');
+INSERT INTO `t_order_position` VALUES (18577, 2, 2792, 324, '109.36869727187012', '24.335874966868207', '112.0', '15.0', '2020-09-12 18:25:16');
+INSERT INTO `t_order_position` VALUES (18578, 2, 2792, 324, '109.36777878855956', '24.33587366289506', '112.0', '15.0', '2020-09-12 18:25:21');
+INSERT INTO `t_order_position` VALUES (18579, 2, 2792, 324, '109.36684357884454', '24.33585565040415', '112.0', '15.0', '2020-09-12 18:25:26');
+INSERT INTO `t_order_position` VALUES (18580, 2, 2792, 324, '109.3660252503564', '24.33585445026478', '112.0', '15.0', '2020-09-12 18:25:31');
+INSERT INTO `t_order_position` VALUES (18581, 2, 2792, 324, '109.36530710869413', '24.335836721194646', '114.0', '15.0', '2020-09-12 18:25:37');
+INSERT INTO `t_order_position` VALUES (18582, 2, 2792, 324, '109.36475596964291', '24.33586921763353', '0.0', '15.0', '2020-09-12 18:25:47');
+INSERT INTO `t_order_position` VALUES (18583, 2, 2792, 324, '109.36415470277477', '24.335651700474912', '108.0', '15.0', '2020-09-12 18:27:37');
+INSERT INTO `t_order_position` VALUES (18584, 2, 2792, 324, '109.36452207877998', '24.334652539038323', '100.0', '15.0', '2020-09-12 18:27:47');
+INSERT INTO `t_order_position` VALUES (18585, 2, 2792, 324, '109.36488945691893', '24.333753346958364', '104.0', '15.0', '2020-09-12 18:27:52');
+INSERT INTO `t_order_position` VALUES (18586, 2, 2792, 324, '109.36519003546204', '24.33300400986799', '102.0', '15.0', '2020-09-12 18:27:57');
+INSERT INTO `t_order_position` VALUES (18587, 2, 2792, 324, '109.36542380731191', '24.332254571393168', '108.0', '15.0', '2020-09-12 18:28:02');
+INSERT INTO `t_order_position` VALUES (18588, 2, 2792, 324, '109.36560747279967', '24.331471733643', '114.0', '15.0', '2020-09-12 18:28:07');
+INSERT INTO `t_order_position` VALUES (18589, 2, 2792, 324, '109.36567423191069', '24.330705383952978', '112.0', '15.0', '2020-09-12 18:28:12');
+INSERT INTO `t_order_position` VALUES (18590, 2, 2792, 324, '109.36572428803686', '24.32990568599024', '114.0', '15.0', '2020-09-12 18:28:17');
+INSERT INTO `t_order_position` VALUES (18591, 2, 2792, 324, '109.36574094228827', '24.32910593891514', '114.0', '15.0', '2020-09-12 18:28:22');
+INSERT INTO `t_order_position` VALUES (18592, 2, 2792, 324, '109.36574090243131', '24.328422800848283', '114.0', '15.0', '2020-09-12 18:28:27');
+INSERT INTO `t_order_position` VALUES (18593, 2, 2792, 324, '109.36570746851781', '24.327872908697856', '116.0', '15.0', '2020-09-12 18:28:38');
+INSERT INTO `t_order_position` VALUES (18594, 2, 2792, 324, '109.3656573297411', '24.327256344402546', '114.0', '15.0', '2020-09-12 18:28:43');
+INSERT INTO `t_order_position` VALUES (18595, 2, 2792, 324, '109.36564059379414', '24.326656491886094', '116.0', '15.0', '2020-09-12 18:28:48');
+INSERT INTO `t_order_position` VALUES (18596, 2, 2792, 324, '109.36562386561639', '24.326189934600837', '112.0', '15.0', '2020-09-12 18:28:53');
+INSERT INTO `t_order_position` VALUES (18597, 2, 2792, 324, '109.36562383451007', '24.325656754860518', '112.0', '15.0', '2020-09-12 18:30:18');
+INSERT INTO `t_order_position` VALUES (18598, 2, 2792, 324, '109.36562377618601', '24.32465704344671', '116.0', '15.0', '2020-09-12 18:30:28');
+INSERT INTO `t_order_position` VALUES (18599, 2, 2792, 324, '109.3655569392217', '24.324090441270016', '116.0', '15.0', '2020-09-12 18:30:33');
+INSERT INTO `t_order_position` VALUES (18600, 2, 2792, 324, '109.36550679829483', '24.323440554942177', '114.0', '15.0', '2020-09-12 18:30:38');
+INSERT INTO `t_order_position` VALUES (18601, 2, 2792, 324, '109.36549005547664', '24.322724071368924', '114.0', '15.0', '2020-09-12 18:30:43');
+INSERT INTO `t_order_position` VALUES (18602, 2, 2792, 324, '109.36549001465204', '24.322024274895846', '114.0', '15.0', '2020-09-12 18:30:48');
+INSERT INTO `t_order_position` VALUES (18603, 2, 2792, 324, '109.365473276687', '24.32139110114102', '114.0', '15.0', '2020-09-12 18:30:53');
+INSERT INTO `t_order_position` VALUES (18604, 2, 2792, 324, '109.36547324072292', '24.320774614388792', '114.0', '15.0', '2020-09-12 18:30:59');
+INSERT INTO `t_order_position` VALUES (18605, 2, 2792, 324, '109.36548990481526', '24.320141491030466', '112.0', '15.0', '2020-09-12 18:31:03');
+INSERT INTO `t_order_position` VALUES (18606, 2, 2792, 324, '109.36547317268312', '24.31960828890422', '114.0', '15.0', '2020-09-12 18:31:08');
+INSERT INTO `t_order_position` VALUES (18607, 2, 2792, 324, '109.36545643471166', '24.31897511632427', '112.0', '15.0', '2020-09-12 18:31:13');
+INSERT INTO `t_order_position` VALUES (18608, 2, 2792, 324, '109.3655065076636', '24.318458676015982', '0.0', '15.0', '2020-09-12 18:31:28');
+INSERT INTO `t_order_position` VALUES (18609, 2, 2792, 324, '109.36555657374035', '24.317825603509235', '110.0', '15.0', '2020-09-12 18:32:19');
+INSERT INTO `t_order_position` VALUES (18610, 2, 2792, 324, '109.36560664266175', '24.317242516511342', '110.0', '15.0', '2020-09-12 18:32:24');
+INSERT INTO `t_order_position` VALUES (18611, 2, 2792, 324, '109.36565671442781', '24.31670941495477', '112.0', '15.0', '2020-09-12 18:32:29');
+INSERT INTO `t_order_position` VALUES (18612, 2, 2792, 324, '109.36569008519713', '24.316176288751176', '0.0', '15.0', '2020-09-12 18:32:49');
+INSERT INTO `t_order_position` VALUES (18613, 2, 2792, 324, '109.36555644640825', '24.315642914473507', '106.0', '15.0', '2020-09-12 18:33:14');
+INSERT INTO `t_order_position` VALUES (18614, 2, 2792, 324, '109.36458777485562', '24.315624799249097', '112.0', '15.0', '2020-09-12 18:33:24');
+INSERT INTO `t_order_position` VALUES (18615, 2, 2792, 324, '109.36370258499223', '24.315573466004967', '110.0', '15.0', '2020-09-12 18:33:34');
+INSERT INTO `t_order_position` VALUES (18616, 2, 2792, 324, '109.36300109927471', '24.31553906113816', '110.0', '15.0', '2020-09-12 18:33:39');
+INSERT INTO `t_order_position` VALUES (18617, 2, 2792, 324, '109.36244992441233', '24.31553820348594', '112.0', '15.0', '2020-09-12 18:33:44');
+INSERT INTO `t_order_position` VALUES (18618, 2, 2792, 324, '109.36176511858669', '24.315503804858885', '110.0', '15.0', '2020-09-12 18:34:04');
+INSERT INTO `t_order_position` VALUES (18619, 2, 2792, 324, '109.36077964647801', '24.315468915982674', '112.0', '15.0', '2020-09-12 18:34:14');
+INSERT INTO `t_order_position` VALUES (18620, 2, 2792, 324, '109.35977744909032', '24.31546730260668', '110.0', '15.0', '2020-09-12 18:34:19');
+INSERT INTO `t_order_position` VALUES (18621, 2, 2792, 324, '109.35894226447603', '24.315432618666538', '110.0', '15.0', '2020-09-12 18:34:24');
+INSERT INTO `t_order_position` VALUES (18622, 2, 2792, 324, '109.3581905853696', '24.315414720442465', '112.0', '15.0', '2020-09-12 18:34:30');
+INSERT INTO `t_order_position` VALUES (18623, 2, 2792, 324, '109.35750571203721', '24.315413584179325', '112.0', '15.0', '2020-09-12 18:34:35');
+INSERT INTO `t_order_position` VALUES (18624, 2, 2792, 324, '109.35680412190871', '24.315379087419664', '112.0', '15.0', '2020-09-12 18:34:40');
+INSERT INTO `t_order_position` VALUES (18625, 2, 2792, 324, '109.35620275127953', '24.315361412688073', '112.0', '15.0', '2020-09-12 18:34:45');
+INSERT INTO `t_order_position` VALUES (18626, 2, 2792, 324, '109.35526727246595', '24.315359823877454', '112.0', '15.0', '2020-09-12 18:34:55');
+INSERT INTO `t_order_position` VALUES (18627, 2, 2792, 324, '109.35474941053167', '24.31535893772521', '110.0', '15.0', '2020-09-12 18:35:00');
+INSERT INTO `t_order_position` VALUES (18628, 2, 2792, 324, '109.35409790030924', '24.315374478104548', '114.0', '15.0', '2020-09-12 18:35:05');
+INSERT INTO `t_order_position` VALUES (18629, 2, 2792, 324, '109.35344638197566', '24.315390011416095', '112.0', '15.0', '2020-09-12 18:35:10');
+INSERT INTO `t_order_position` VALUES (18630, 2, 2792, 324, '109.3528616774782', '24.315372331152247', '112.0', '15.0', '2020-09-12 18:35:15');
+INSERT INTO `t_order_position` VALUES (18631, 2, 2792, 324, '109.35229367383916', '24.315371336571427', '112.0', '15.0', '2020-09-12 18:35:20');
+INSERT INTO `t_order_position` VALUES (18632, 2, 2792, 324, '109.35169225105831', '24.315353616378086', '112.0', '15.0', '2020-09-12 18:35:25');
+INSERT INTO `t_order_position` VALUES (18633, 2, 2792, 324, '109.3510239963731', '24.315335772288265', '112.0', '15.0', '2020-09-12 18:35:30');
+INSERT INTO `t_order_position` VALUES (18634, 2, 2792, 324, '109.35032232104066', '24.315317862194274', '112.0', '15.0', '2020-09-12 18:35:35');
+INSERT INTO `t_order_position` VALUES (18635, 2, 2792, 324, '109.34965405241678', '24.31531666695481', '112.0', '15.0', '2020-09-12 18:35:40');
+INSERT INTO `t_order_position` VALUES (18636, 2, 2792, 324, '109.34905260282146', '24.31528226269599', '112.0', '15.0', '2020-09-12 18:35:45');
+INSERT INTO `t_order_position` VALUES (18637, 2, 2792, 324, '109.34850126911655', '24.315247944422307', '112.0', '15.0', '2020-09-12 18:35:50');
+INSERT INTO `t_order_position` VALUES (18638, 2, 2792, 324, '109.34791651849655', '24.315246885197663', '110.0', '15.0', '2020-09-12 18:35:56');
+INSERT INTO `t_order_position` VALUES (18639, 2, 2792, 324, '109.3472315178815', '24.315228977471474', '110.0', '15.0', '2020-09-12 18:36:00');
+INSERT INTO `t_order_position` VALUES (18640, 2, 2792, 324, '109.34671358616373', '24.315211370072117', '112.0', '15.0', '2020-09-12 18:36:05');
+INSERT INTO `t_order_position` VALUES (18641, 2, 2792, 324, '109.3458614970993', '24.315176484444734', '112.0', '15.0', '2020-09-12 18:36:15');
+INSERT INTO `t_order_position` VALUES (18642, 2, 2792, 324, '109.34531013700597', '24.315092160943497', '62.0', '15.0', '2020-09-12 18:37:01');
+INSERT INTO `t_order_position` VALUES (18643, 2, 2792, 324, '109.34597844497756', '24.315076728946387', '60.0', '15.0', '2020-09-12 18:37:10');
+INSERT INTO `t_order_position` VALUES (18644, 2, 2792, 324, '109.34652979474772', '24.31506107823838', '90.0', '15.0', '2020-09-12 18:37:20');
+INSERT INTO `t_order_position` VALUES (18645, 2, 2792, 324, '109.34696417217097', '24.314761961412408', '74.0', '15.0', '2020-09-12 18:37:35');
+INSERT INTO `t_order_position` VALUES (18646, 2, 2792, 324, '109.34779952623418', '24.314530218668125', '72.0', '15.0', '2020-09-12 18:37:46');
+INSERT INTO `t_order_position` VALUES (18647, 2, 2806, 73, '109.40457542006666', '24.31207738521599', '0.0', '5.0', '2020-09-16 15:38:34');
+INSERT INTO `t_order_position` VALUES (18648, 2, 2806, 73, '109.40400848593859', '24.31251052480915', '146.0', '5.0', '2020-09-16 15:38:59');
+INSERT INTO `t_order_position` VALUES (18649, 2, 2806, 73, '109.40374172305455', '24.31331025126254', '154.0', '5.0', '2020-09-16 15:39:09');
+INSERT INTO `t_order_position` VALUES (18650, 2, 2806, 73, '109.40324147074209', '24.3137433815205', '152.0', '5.0', '2020-09-16 15:39:18');
+INSERT INTO `t_order_position` VALUES (18651, 2, 2806, 73, '109.40285796917512', '24.31464305002633', '160.0', '5.0', '2020-09-16 15:39:24');
+INSERT INTO `t_order_position` VALUES (18652, 2, 2806, 73, '109.40302475829624', '24.31507628351347', '154.0', '5.0', '2020-09-16 15:39:29');
+INSERT INTO `t_order_position` VALUES (18653, 2, 2806, 73, '109.40277463579362', '24.315476121574484', '164.0', '5.0', '2020-09-16 15:39:34');
+INSERT INTO `t_order_position` VALUES (18654, 2, 2806, 73, '109.40285804847717', '24.315992650143194', '0.0', '5.0', '2020-09-16 15:39:39');
+INSERT INTO `t_order_position` VALUES (18655, 2, 2806, 73, '109.4032749962632', '24.316692512756354', '164.0', '6.0', '2020-09-16 15:39:44');
+INSERT INTO `t_order_position` VALUES (18656, 2, 2806, 73, '109.403224995318', '24.317159033830382', '164.0', '6.0', '2020-09-16 15:39:50');
+INSERT INTO `t_order_position` VALUES (18657, 2, 2806, 73, '109.40314164186577', '24.317625549541944', '162.0', '7.0', '2020-09-16 15:39:54');
+INSERT INTO `t_order_position` VALUES (18658, 2, 2806, 73, '109.40302493550578', '24.318092059532106', '158.0', '7.0', '2020-09-16 15:40:03');
+INSERT INTO `t_order_position` VALUES (18659, 2, 2806, 73, '109.4028582227481', '24.318958442948336', '166.0', '7.0', '2020-09-16 15:40:09');
+INSERT INTO `t_order_position` VALUES (18660, 2, 2806, 73, '109.40284157861676', '24.319508278750515', '166.0', '7.0', '2020-09-16 15:40:14');
+INSERT INTO `t_order_position` VALUES (18661, 2, 2806, 73, '109.40289164118597', '24.320074788268446', '0.0', '7.0', '2020-09-16 15:40:19');
+INSERT INTO `t_order_position` VALUES (18662, 2, 2806, 73, '109.4029417055937', '24.3206746215227', '0.0', '7.0', '2020-09-16 15:40:24');
+INSERT INTO `t_order_position` VALUES (18663, 2, 2806, 73, '109.40294173986139', '24.321257784596423', '8.0', '7.0', '2020-09-16 15:40:29');
+INSERT INTO `t_order_position` VALUES (18664, 2, 2806, 73, '109.40295844559428', '24.321757641729388', '0.0', '8.0', '2020-09-16 15:40:50');
+INSERT INTO `t_order_position` VALUES (18665, 2, 2806, 73, '109.40530909860247', '24.31189416926255', '0.0', '11.0', '2020-09-16 15:50:19');
+INSERT INTO `t_order_position` VALUES (18666, 2, 2812, 63, '109.42774206141166', '24.339876443891956', '2.0', '15.0', '2020-09-17 22:16:24');
+INSERT INTO `t_order_position` VALUES (18667, 2, 2812, 63, '109.42777540628053', '24.34044292259204', '2.0', '15.0', '2020-09-17 22:16:34');
+INSERT INTO `t_order_position` VALUES (18668, 2, 2812, 63, '109.42779211198298', '24.341292672291452', '10.0', '15.0', '2020-09-17 22:16:44');
+INSERT INTO `t_order_position` VALUES (18669, 2, 2812, 63, '109.42872482867459', '24.341558371573257', '56.0', '15.0', '2020-09-17 22:16:59');
+INSERT INTO `t_order_position` VALUES (18670, 2, 2812, 63, '109.42964083516722', '24.341607442140823', '40.0', '15.0', '2020-09-17 22:17:09');
+INSERT INTO `t_order_position` VALUES (18671, 2, 2812, 63, '109.4299073295009', '24.34209036902783', '0.0', '15.0', '2020-09-17 22:17:24');
+INSERT INTO `t_order_position` VALUES (18672, 2, 2812, 63, '109.43009055999502', '24.342723338507334', '20.0', '15.0', '2020-09-17 22:18:20');
+INSERT INTO `t_order_position` VALUES (18673, 2, 2812, 63, '109.43064014362497', '24.34295602952605', '66.0', '15.0', '2020-09-17 22:18:35');
+INSERT INTO `t_order_position` VALUES (18674, 2, 2812, 63, '109.431173048603', '24.343005442292554', '52.0', '15.0', '2020-09-17 22:18:50');
+INSERT INTO `t_order_position` VALUES (18675, 2, 2812, 63, '109.43152278340307', '24.3434382736176', '166.0', '15.0', '2020-09-17 22:19:05');
+INSERT INTO `t_order_position` VALUES (18676, 2, 2812, 63, '109.43152282059431', '24.344071433569972', '166.0', '15.0', '2020-09-17 22:19:10');
+INSERT INTO `t_order_position` VALUES (18677, 2, 2812, 63, '109.4315062158621', '24.344887895518667', '2.0', '15.0', '2020-09-17 22:19:16');
+INSERT INTO `t_order_position` VALUES (18678, 2, 2812, 63, '109.43153957114241', '24.345737627152143', '0.0', '15.0', '2020-09-17 22:19:20');
+INSERT INTO `t_order_position` VALUES (18679, 2, 2812, 63, '109.43157291951687', '24.346470724335013', '2.0', '15.0', '2020-09-17 22:19:25');
+INSERT INTO `t_order_position` VALUES (18680, 2, 2812, 63, '109.4316062580493', '24.34703720041071', '2.0', '15.0', '2020-09-17 22:19:30');
+INSERT INTO `t_order_position` VALUES (18681, 2, 2812, 63, '109.43168955911962', '24.347686932046706', '44.0', '15.0', '2020-09-17 22:19:40');
+INSERT INTO `t_order_position` VALUES (18682, 2, 2812, 63, '109.43248887442566', '24.347835989491113', '58.0', '15.0', '2020-09-17 22:19:50');
+INSERT INTO `t_order_position` VALUES (18683, 2, 2812, 63, '109.43308833470783', '24.347851956728785', '64.0', '15.0', '2020-09-17 22:19:55');
+INSERT INTO `t_order_position` VALUES (18684, 2, 2812, 63, '109.43360451972981', '24.347818021379453', '88.0', '15.0', '2020-09-17 22:20:05');
+INSERT INTO `t_order_position` VALUES (18685, 2, 2812, 63, '109.43378764841323', '24.34728461277439', '0.0', '15.0', '2020-09-17 22:20:31');
+INSERT INTO `t_order_position` VALUES (18686, 2, 2812, 63, '109.43385421543947', '24.346668033075588', '114.0', '15.0', '2020-09-17 22:20:56');
+INSERT INTO `t_order_position` VALUES (18687, 2, 2812, 63, '109.4338874827275', '24.346084817999333', '116.0', '15.0', '2020-09-17 22:21:06');
+INSERT INTO `t_order_position` VALUES (18688, 2, 2812, 63, '109.43388744652528', '24.345468319131626', '112.0', '15.0', '2020-09-17 22:21:16');
+INSERT INTO `t_order_position` VALUES (18689, 2, 2812, 63, '109.43390406987578', '24.345001759543774', '114.0', '15.0', '2020-09-17 22:21:21');
+INSERT INTO `t_order_position` VALUES (18690, 2, 2812, 63, '109.43390404247972', '24.344535220244538', '112.0', '15.0', '2020-09-17 22:21:26');
+INSERT INTO `t_order_position` VALUES (18691, 2, 2812, 63, '109.43390400529948', '24.343902060051114', '114.0', '15.0', '2020-09-17 22:21:31');
+INSERT INTO `t_order_position` VALUES (18692, 2, 2812, 63, '109.4339206237449', '24.34335219055167', '112.0', '15.0', '2020-09-17 22:21:36');
+INSERT INTO `t_order_position` VALUES (18693, 2, 2812, 63, '109.4339039250689', '24.34253576811493', '114.0', '15.0', '2020-09-17 22:21:46');
+INSERT INTO `t_order_position` VALUES (18694, 2, 2812, 63, '109.43388723812042', '24.341919291141792', '122.0', '15.0', '2020-09-17 22:21:56');
+INSERT INTO `t_order_position` VALUES (18695, 2, 2812, 63, '109.43300471644031', '24.34170373265231', '108.0', '15.0', '2020-09-17 22:22:11');
+INSERT INTO `t_order_position` VALUES (18696, 2, 2812, 63, '109.43247186044103', '24.34167102504099', '112.0', '15.0', '2020-09-17 22:22:16');
+INSERT INTO `t_order_position` VALUES (18697, 2, 2812, 63, '109.43188903342711', '24.341638360937978', '104.0', '15.0', '2020-09-17 22:22:56');
+INSERT INTO `t_order_position` VALUES (18698, 2, 2812, 63, '109.431589260922', '24.34117215654307', '112.0', '15.0', '2020-09-17 22:23:07');
+INSERT INTO `t_order_position` VALUES (18699, 2, 2812, 63, '109.43158922862513', '24.340622308387196', '114.0', '15.0', '2020-09-17 22:23:12');
+INSERT INTO `t_order_position` VALUES (18700, 2, 2812, 63, '109.43157254271422', '24.340055816840557', '116.0', '15.0', '2020-09-17 22:23:17');
+INSERT INTO `t_order_position` VALUES (18701, 2, 2812, 63, '109.4315558597257', '24.339539311681236', '114.0', '15.0', '2020-09-17 22:23:22');
+INSERT INTO `t_order_position` VALUES (18702, 2, 2812, 63, '109.43155583134377', '24.339056112411615', '114.0', '15.0', '2020-09-17 22:23:27');
+INSERT INTO `t_order_position` VALUES (18703, 2, 2812, 63, '109.43155580296192', '24.338572913330346', '114.0', '15.0', '2020-09-17 22:23:32');
+INSERT INTO `t_order_position` VALUES (18704, 2, 2812, 63, '109.4315557716441', '24.338039728355582', '112.0', '15.0', '2020-09-17 22:23:37');
+INSERT INTO `t_order_position` VALUES (18705, 2, 2812, 63, '109.43153908766332', '24.337506562003792', '114.0', '15.0', '2020-09-17 22:23:42');
+INSERT INTO `t_order_position` VALUES (18706, 2, 2812, 63, '109.43153905340962', '24.336923391449638', '114.0', '15.0', '2020-09-17 22:23:47');
+INSERT INTO `t_order_position` VALUES (18707, 2, 2812, 63, '109.43150571868205', '24.33642356794358', '118.0', '15.0', '2020-09-17 22:23:52');
+INSERT INTO `t_order_position` VALUES (18708, 2, 2812, 63, '109.43147238585708', '24.335957068586563', '114.0', '15.0', '2020-09-17 22:23:57');
+INSERT INTO `t_order_position` VALUES (18709, 2, 2812, 63, '109.43133912447483', '24.335290735124588', '154.0', '15.0', '2020-09-17 22:24:17');
+INSERT INTO `t_order_position` VALUES (18710, 2, 2812, 63, '109.43038988385798', '24.33517512101927', '106.0', '15.0', '2020-09-17 22:24:32');
+INSERT INTO `t_order_position` VALUES (18711, 2, 2812, 63, '109.42987361326254', '24.335142334922047', '112.0', '15.0', '2020-09-17 22:24:37');
+INSERT INTO `t_order_position` VALUES (18712, 2, 2812, 63, '109.42900758361941', '24.335126548593', '112.0', '15.0', '2020-09-17 22:24:47');
+INSERT INTO `t_order_position` VALUES (18713, 2, 2812, 63, '109.42849127860323', '24.335110392746685', '114.0', '15.0', '2020-09-17 22:24:52');
+INSERT INTO `t_order_position` VALUES (18714, 2, 2812, 63, '109.42757522168453', '24.335094599478243', '112.0', '15.0', '2020-09-17 22:25:02');
+INSERT INTO `t_order_position` VALUES (18715, 2, 2812, 63, '109.42669243629727', '24.33507873911636', '110.0', '15.0', '2020-09-17 22:25:12');
+INSERT INTO `t_order_position` VALUES (18716, 2, 2812, 63, '109.4261760716734', '24.335062529820256', '110.0', '15.0', '2020-09-17 22:25:17');
+INSERT INTO `t_order_position` VALUES (18717, 2, 2812, 63, '109.42517661829913', '24.33503004802496', '110.0', '15.0', '2020-09-17 22:25:27');
+INSERT INTO `t_order_position` VALUES (18718, 2, 2812, 63, '109.42417711485095', '24.334997521321707', '112.0', '15.0', '2020-09-17 22:25:37');
+INSERT INTO `t_order_position` VALUES (18719, 2, 2812, 63, '109.42314424297145', '24.33498163591905', '110.0', '15.0', '2020-09-17 22:25:47');
+INSERT INTO `t_order_position` VALUES (18720, 2, 2812, 63, '109.4224611840263', '24.33494879907472', '112.0', '15.0', '2020-09-17 22:25:52');
+INSERT INTO `t_order_position` VALUES (18721, 2, 2812, 63, '109.42184474659904', '24.33494922060585', '112.0', '15.0', '2020-09-17 22:25:57');
+INSERT INTO `t_order_position` VALUES (18722, 2, 2812, 63, '109.421211627815', '24.33493297368846', '112.0', '15.0', '2020-09-17 22:26:02');
+INSERT INTO `t_order_position` VALUES (18723, 2, 2812, 63, '109.4206118124063', '24.334916688228237', '112.0', '15.0', '2020-09-17 22:26:07');
+INSERT INTO `t_order_position` VALUES (18724, 2, 2812, 63, '109.42001197888169', '24.33490038651767', '112.0', '15.0', '2020-09-17 22:26:12');
+INSERT INTO `t_order_position` VALUES (18725, 2, 2812, 63, '109.41941212625922', '24.33486740656992', '112.0', '15.0', '2020-09-17 22:26:17');
+INSERT INTO `t_order_position` VALUES (18726, 2, 2812, 63, '109.41872894093584', '24.334867778575816', '110.0', '15.0', '2020-09-17 22:26:22');
+INSERT INTO `t_order_position` VALUES (18727, 2, 2812, 63, '109.41801240425417', '24.334868146081824', '112.0', '15.0', '2020-09-17 22:26:28');
+INSERT INTO `t_order_position` VALUES (18728, 2, 2812, 63, '109.41741249320712', '24.33486843593477', '112.0', '15.0', '2020-09-17 22:26:33');
+INSERT INTO `t_order_position` VALUES (18729, 2, 2812, 63, '109.4168792227651', '24.334852017963417', '112.0', '15.0', '2020-09-17 22:26:38');
+INSERT INTO `t_order_position` VALUES (18730, 2, 2812, 63, '109.41594597170459', '24.33493572404993', '150.0', '15.0', '2020-09-17 22:26:48');
+INSERT INTO `t_order_position` VALUES (18731, 2, 2812, 63, '109.41634596937321', '24.33536877076379', '78.0', '15.0', '2020-09-17 22:27:03');
+INSERT INTO `t_order_position` VALUES (18732, 2, 2812, 63, '109.41657925338846', '24.33486881156788', '116.0', '15.0', '2020-09-17 22:27:13');
+INSERT INTO `t_order_position` VALUES (18733, 2, 2812, 63, '109.41667921462133', '24.334368908715387', '62.0', '15.0', '2020-09-17 22:27:23');
+INSERT INTO `t_order_position` VALUES (18734, 2, 2812, 63, '109.417379133917', '24.33435193015394', '56.0', '15.0', '2020-09-17 22:27:33');
+INSERT INTO `t_order_position` VALUES (18735, 2, 2812, 63, '109.41784569848028', '24.333751875773757', '104.0', '15.0', '2020-09-17 22:27:48');
+INSERT INTO `t_order_position` VALUES (18736, 2, 2812, 63, '109.4180123072749', '24.333218610719584', '114.0', '15.0', '2020-09-17 22:27:53');
+INSERT INTO `t_order_position` VALUES (18737, 2, 2812, 63, '109.41807892865492', '24.332635408962293', '110.0', '15.0', '2020-09-17 22:27:58');
+INSERT INTO `t_order_position` VALUES (18738, 2, 2812, 63, '109.41811222309816', '24.332068885951628', '112.0', '15.0', '2020-09-17 22:28:03');
+INSERT INTO `t_order_position` VALUES (18739, 2, 2812, 63, '109.41814552042437', '24.33155234896572', '110.0', '15.0', '2020-09-17 22:28:08');
+INSERT INTO `t_order_position` VALUES (18740, 2, 2812, 63, '109.41817881671527', '24.331019150207908', '110.0', '15.0', '2020-09-17 22:28:13');
+INSERT INTO `t_order_position` VALUES (18741, 2, 2812, 63, '109.41824541794583', '24.33010271049924', '114.0', '15.0', '2020-09-17 22:28:23');
+INSERT INTO `t_order_position` VALUES (18742, 2, 2812, 63, '109.41824538659993', '24.329569529133014', '112.0', '15.0', '2020-09-17 22:28:28');
+INSERT INTO `t_order_position` VALUES (18743, 2, 2812, 63, '109.41832867480267', '24.329052967478752', '106.0', '15.0', '2020-09-17 22:28:33');
+INSERT INTO `t_order_position` VALUES (18744, 2, 2812, 63, '109.4184452898462', '24.328536388540382', '108.0', '15.0', '2020-09-17 22:28:38');
+INSERT INTO `t_order_position` VALUES (18745, 2, 2812, 63, '109.41854523973545', '24.32800315598863', '110.0', '15.0', '2020-09-17 22:28:43');
+INSERT INTO `t_order_position` VALUES (18746, 2, 2812, 63, '109.41864518814226', '24.3274532613226', '112.0', '15.0', '2020-09-17 22:28:48');
+INSERT INTO `t_order_position` VALUES (18747, 2, 2812, 63, '109.41872847270969', '24.326903375265204', '112.0', '15.0', '2020-09-17 22:28:53');
+INSERT INTO `t_order_position` VALUES (18748, 2, 2812, 63, '109.41887837856576', '24.325820273721646', '110.0', '15.0', '2020-09-17 22:29:03');
+INSERT INTO `t_order_position` VALUES (18749, 2, 2812, 63, '109.41911160837051', '24.32490374523428', '100.0', '15.0', '2020-09-17 22:29:13');
+INSERT INTO `t_order_position` VALUES (18750, 2, 2812, 63, '109.41946145626807', '24.32367057473133', '106.0', '15.0', '2020-09-17 22:29:24');
+INSERT INTO `t_order_position` VALUES (18751, 2, 2812, 63, '109.41967801668589', '24.32275405117201', '110.0', '15.0', '2020-09-17 22:29:34');
+INSERT INTO `t_order_position` VALUES (18752, 2, 2812, 63, '109.41981128037253', '24.322137487135446', '108.0', '15.0', '2020-09-17 22:29:39');
+INSERT INTO `t_order_position` VALUES (18753, 2, 2812, 63, '109.41991121849068', '24.321520942029437', '108.0', '15.0', '2020-09-17 22:29:44');
+INSERT INTO `t_order_position` VALUES (18754, 2, 2812, 63, '109.42004447669477', '24.320837729973658', '108.0', '15.0', '2020-09-17 22:29:49');
+INSERT INTO `t_order_position` VALUES (18755, 2, 2812, 63, '109.42017774086088', '24.32027115002329', '106.0', '15.0', '2020-09-17 22:29:54');
+INSERT INTO `t_order_position` VALUES (18756, 2, 2812, 63, '109.42032766614157', '24.31970455950418', '106.0', '15.0', '2020-09-17 22:29:59');
+INSERT INTO `t_order_position` VALUES (18757, 2, 2812, 63, '109.42046092938705', '24.319154640122264', '104.0', '15.0', '2020-09-17 22:30:04');
+INSERT INTO `t_order_position` VALUES (18758, 2, 2812, 63, '109.42071080229593', '24.318238089389144', '104.0', '15.0', '2020-09-17 22:30:14');
+INSERT INTO `t_order_position` VALUES (18759, 2, 2812, 63, '109.42084406786798', '24.317771477123106', '108.0', '15.0', '2020-09-17 22:30:19');
+INSERT INTO `t_order_position` VALUES (18760, 2, 2812, 63, '109.42096067010282', '24.317288212969448', '104.0', '15.0', '2020-09-17 22:30:24');
+INSERT INTO `t_order_position` VALUES (18761, 2, 2812, 63, '109.42109393203987', '24.31678827604094', '106.0', '15.0', '2020-09-17 22:30:29');
+INSERT INTO `t_order_position` VALUES (18762, 2, 2812, 63, '109.42121053280822', '24.31630501093462', '112.0', '15.0', '2020-09-17 22:30:34');
+INSERT INTO `t_order_position` VALUES (18763, 2, 2812, 63, '109.42117717597961', '24.315721871422998', '102.0', '15.0', '2020-09-17 22:30:44');
+INSERT INTO `t_order_position` VALUES (18764, 2, 2812, 63, '109.42031076515312', '24.315639100101134', '106.0', '15.0', '2020-09-17 22:30:54');
+INSERT INTO `t_order_position` VALUES (18765, 2, 2812, 63, '109.41952762713292', '24.315506262744222', '144.0', '15.0', '2020-09-17 22:31:04');
+INSERT INTO `t_order_position` VALUES (18766, 2, 2812, 63, '109.4189610578136', '24.31499006211595', '136.0', '15.0', '2020-09-17 22:31:14');
+INSERT INTO `t_order_position` VALUES (18767, 2, 2812, 63, '109.41857776938787', '24.314440428777427', '126.0', '15.0', '2020-09-17 22:31:24');
+INSERT INTO `t_order_position` VALUES (18768, 2, 2812, 63, '109.41834444516279', '24.31385738936954', '138.0', '15.0', '2020-09-17 22:31:34');
+INSERT INTO `t_order_position` VALUES (18769, 2, 2812, 63, '109.41806112459396', '24.31324104935554', '126.0', '15.0', '2020-09-17 22:31:44');
+INSERT INTO `t_order_position` VALUES (18770, 2, 2812, 63, '109.41776114857267', '24.312841316164956', '146.0', '15.0', '2020-09-17 22:31:54');
+INSERT INTO `t_order_position` VALUES (18771, 2, 2812, 63, '109.4170612290395', '24.31262504279029', '108.0', '15.0', '2020-09-17 22:33:50');
+INSERT INTO `t_order_position` VALUES (18772, 2, 2812, 63, '109.41656127759224', '24.312575278950465', '112.0', '15.0', '2020-09-17 22:34:00');
+INSERT INTO `t_order_position` VALUES (18773, 2, 2812, 63, '109.41579466450678', '24.312558934613953', '114.0', '15.0', '2020-09-17 22:34:10');
+INSERT INTO `t_order_position` VALUES (18774, 2, 2812, 63, '109.41497802056814', '24.31250925846785', '104.0', '15.0', '2020-09-17 22:34:40');
+INSERT INTO `t_order_position` VALUES (18775, 2, 2812, 63, '109.4142280058668', '24.312359560515578', '160.0', '15.0', '2020-09-17 22:34:50');
+INSERT INTO `t_order_position` VALUES (18776, 1, 19, 906, '104.05579808285152', '30.585715723265405', '204.4199981689453', '475.36', '2020-09-22 15:34:21');
+INSERT INTO `t_order_position` VALUES (18777, 1, 21, 910, '104.055796', '30.585679', '0.0', '0.0', '2020-09-22 15:37:23');
+INSERT INTO `t_order_position` VALUES (18778, 1, 22, 906, '104.05577402496208', '30.58573468385967', '204.4199981689453', '475.36', '2020-09-22 15:49:36');
+INSERT INTO `t_order_position` VALUES (18779, 1, 24, 906, '104.05577402496208', '30.58573468385967', '204.4199981689453', '475.36', '2020-09-22 15:58:53');
+INSERT INTO `t_order_position` VALUES (18780, 1, 26, 906, '104.05578906171587', '30.585734713008527', '204.4199981689453', '475.36', '2020-09-22 16:02:56');
+INSERT INTO `t_order_position` VALUES (18781, 1, 27, 906, '104.055817', '30.585677', '0.0', '0.0', '2020-09-22 16:13:42');
+INSERT INTO `t_order_position` VALUES (18782, 1, 38, 906, '104.05579908573304', '30.58572472863195', '134.36000061035156', '494.3', '2020-09-22 16:58:28');
+INSERT INTO `t_order_position` VALUES (18783, 1, 42, 906, '104.05577402496208', '30.58573468385967', '134.36000061035156', '494.3', '2020-09-22 17:54:52');
+INSERT INTO `t_order_position` VALUES (18784, 1, 43, 905, '104.055834', '30.585674', '0.0', '0.0', '2020-09-22 18:02:10');
+INSERT INTO `t_order_position` VALUES (18785, 1, 44, 905, '104.055834', '30.585674', '0.0', '0.0', '2020-09-22 18:05:00');
+INSERT INTO `t_order_position` VALUES (18786, 1, 45, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-22 18:16:57');
+INSERT INTO `t_order_position` VALUES (18787, 1, 46, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-22 18:17:58');
+INSERT INTO `t_order_position` VALUES (18788, 1, 48, 905, '104.055834', '30.585674', '0.0', '0.0', '2020-09-22 18:19:12');
+INSERT INTO `t_order_position` VALUES (18789, 2, 2823, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-22 18:19:33');
+INSERT INTO `t_order_position` VALUES (18790, 2, 2824, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-22 18:22:33');
+INSERT INTO `t_order_position` VALUES (18791, 1, 49, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-22 18:22:53');
+INSERT INTO `t_order_position` VALUES (18792, 1, 53, 905, '104.055815', '30.585675', '0.0', '0.0', '2020-09-22 18:29:28');
+INSERT INTO `t_order_position` VALUES (18793, 1, 55, 905, '104.055833', '30.585674', '0.0', '0.0', '2020-09-23 14:57:45');
+INSERT INTO `t_order_position` VALUES (18794, 1, 56, 905, '104.055816', '30.585676', '0.0', '0.0', '2020-09-23 15:22:38');
+INSERT INTO `t_order_position` VALUES (18795, 2, 2825, 905, '104.055815', '30.585678', '0.0', '0.0', '2020-09-23 15:37:06');
+INSERT INTO `t_order_position` VALUES (18796, 1, 58, 905, '104.055834', '30.585673', '0.0', '0.0', '2020-09-23 15:38:27');
+INSERT INTO `t_order_position` VALUES (18797, 1, 59, 905, '104.055824', '30.585675', '0.0', '0.0', '2020-09-23 16:05:10');
+INSERT INTO `t_order_position` VALUES (18798, 1, 60, 905, '104.055873', '30.585823', '0.0', '0.0', '2020-09-23 16:06:41');
+INSERT INTO `t_order_position` VALUES (18799, 1, 61, 905, '104.055823', '30.585679', '0.0', '0.0', '2020-09-23 17:06:50');
+INSERT INTO `t_order_position` VALUES (18800, 1, 64, 905, '104.055818', '30.585676', '0.0', '0.0', '2020-09-24 16:14:44');
+INSERT INTO `t_order_position` VALUES (18801, 1, 65, 905, '104.055832', '30.585674', '0.0', '0.0', '2020-09-24 16:38:53');
+INSERT INTO `t_order_position` VALUES (18802, 1, 66, 905, '104.055832', '30.585674', '0.0', '0.0', '2020-09-24 16:45:09');
+INSERT INTO `t_order_position` VALUES (18803, 1, 72, 905, '104.055838', '30.585673', '0.0', '0.0', '2020-09-24 17:31:41');
+INSERT INTO `t_order_position` VALUES (18804, 1, 74, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 09:24:04');
+INSERT INTO `t_order_position` VALUES (18805, 1, 75, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 09:29:00');
+INSERT INTO `t_order_position` VALUES (18806, 1, 76, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 09:31:50');
+INSERT INTO `t_order_position` VALUES (18807, 1, 77, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 09:34:26');
+INSERT INTO `t_order_position` VALUES (18808, 1, 78, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 09:37:16');
+INSERT INTO `t_order_position` VALUES (18809, 1, 79, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 10:33:37');
+INSERT INTO `t_order_position` VALUES (18810, 1, 81, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:27:17');
+INSERT INTO `t_order_position` VALUES (18811, 1, 82, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:41:39');
+INSERT INTO `t_order_position` VALUES (18812, 1, 83, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:43:54');
+INSERT INTO `t_order_position` VALUES (18813, 1, 84, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:46:43');
+INSERT INTO `t_order_position` VALUES (18814, 1, 85, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:47:53');
+INSERT INTO `t_order_position` VALUES (18815, 1, 86, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:49:23');
+INSERT INTO `t_order_position` VALUES (18816, 1, 87, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:50:48');
+INSERT INTO `t_order_position` VALUES (18817, 1, 88, 906, '104.0557640509328', '30.586786731714067', '0.0', '0.0', '2020-09-29 11:54:29');
+INSERT INTO `t_order_position` VALUES (18818, 1, 90, 906, '104.055837', '30.585666', '0.0', '0.0', '2020-09-29 18:40:28');
+INSERT INTO `t_order_position` VALUES (18819, 1, 91, 906, '104.055844', '30.585663', '0.0', '0.0', '2020-09-29 18:41:39');
+INSERT INTO `t_order_position` VALUES (18820, 1, 92, 906, '104.055838', '30.585664', '0.0', '0.0', '2020-09-29 18:45:20');
+
+-- ----------------------------
+-- Table structure for t_order_private_car
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_private_car`;
+CREATE TABLE `t_order_private_car`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `type` int(1) NULL DEFAULT 1 COMMENT '类型(1=普通订单,2=摆渡订单)',
+  `crossCityOrderId` int(11) NULL DEFAULT NULL COMMENT '跨城订单id(摆渡车用)',
+  `place` int(1) NULL DEFAULT NULL COMMENT '摆渡方位(1=跨城起点,2=跨城终点)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `serverCarModelId` int(11) NULL DEFAULT NULL COMMENT '服务车型',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '接单司机ID',
+  `carId` int(11) NULL DEFAULT NULL COMMENT '车辆id',
+  `orderNum` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '订单号',
+  `placementLon` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点经度',
+  `placementLat` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点纬度',
+  `placementAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下单地点',
+  `startLon` double(20, 10) NULL DEFAULT NULL COMMENT '出发地经度值',
+  `startLat` double(20, 10) NULL DEFAULT NULL COMMENT '出发地纬度值',
+  `endLon` double(20, 10) NULL DEFAULT NULL COMMENT '目的地经度',
+  `startAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '出发地地点',
+  `endLat` double(20, 10) NULL DEFAULT NULL COMMENT '目的地纬度',
+  `endAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '目的地地点',
+  `boardingLon` double(20, 10) NULL DEFAULT NULL COMMENT '上车点经度',
+  `boardingLat` double(20, 10) NULL DEFAULT NULL COMMENT '上车点纬度',
+  `boardingAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '上车点',
+  `boardingTime` datetime(0) NULL DEFAULT NULL COMMENT '上车时间',
+  `getoffLon` double(20, 10) NULL DEFAULT NULL COMMENT '下车点经度',
+  `getoffLat` double(20, 10) NULL DEFAULT NULL COMMENT '下车点纬度',
+  `getoffAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下车地点',
+  `getoffTime` datetime(0) NULL DEFAULT NULL COMMENT '下车时间',
+  `mileage` double(10, 2) NULL DEFAULT NULL COMMENT '行驶里程数(米)',
+  `payManner` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=OK平台支付,2=其他方式支付)',
+  `payType` smallint(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝,3=其他)',
+  `orderMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单金额',
+  `startMileage` double(10, 2) NULL DEFAULT NULL COMMENT '起步里程',
+  `startMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '起步价',
+  `mileageKilometers` double(11, 2) NULL DEFAULT NULL COMMENT '里程公里',
+  `mileageMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '里程费',
+  `duration` double(11, 2) NULL DEFAULT NULL COMMENT '时长分钟',
+  `durationMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '时长费',
+  `wait` double(11, 2) NULL DEFAULT NULL COMMENT '等待分钟',
+  `waitMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '等待费',
+  `longDistance` double(11, 2) NULL DEFAULT NULL COMMENT '远途公里',
+  `longDistanceMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '远途费',
+  `parkMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '停车费',
+  `roadTollMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '过路费',
+  `redPacketMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '红包抵扣金额',
+  `couponMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券抵扣金额',
+  `redPacketId` int(11) NULL DEFAULT NULL COMMENT '红包记录id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  `discount` double(11, 2) NULL DEFAULT NULL COMMENT '折扣',
+  `discountMoney` double(11, 2) NULL DEFAULT NULL COMMENT '折扣优惠金额',
+  `activityId` int(11) NULL DEFAULT NULL COMMENT '折扣活动id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `payMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  `substitute` int(1) NULL DEFAULT NULL COMMENT '是否是代下单(0:否,1:是)',
+  `passengers` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '乘车人',
+  `passengersPhone` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '乘车人电话',
+  `state` smallint(6) NULL DEFAULT NULL COMMENT '状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '下单时间',
+  `travelTime` datetime(0) NULL DEFAULT NULL COMMENT '出行时间',
+  `snatchOrderTime` datetime(0) NULL DEFAULT NULL COMMENT '抢单时间',
+  `setOutTime` datetime(0) NULL DEFAULT NULL COMMENT '司机点出发时间',
+  `arriveTime` datetime(0) NULL DEFAULT NULL COMMENT '司机到达预约地点时间',
+  `startServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '开始服务时间',
+  `endServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '结束服务时间',
+  `orderType` smallint(1) NULL DEFAULT NULL COMMENT '订单类型(1=普通,2=预约)',
+  `orderSource` int(1) NULL DEFAULT NULL COMMENT '下单方式(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)',
+  `invoiceId` int(11) NULL DEFAULT NULL COMMENT '发票id',
+  `isReassign` int(1) NULL DEFAULT NULL COMMENT '是否是改派单(1=否,2=是)',
+  `reassignNotice` int(1) NULL DEFAULT NULL COMMENT '改派通知(0=没有改派,1=改派中,2=已改派)',
+  `trackId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '高德猎鹰上的轨迹id',
+  `isDelete` int(1) NULL DEFAULT 1 COMMENT '是否删除  1=否 2=是',
+  `oldState` int(1) NULL DEFAULT NULL COMMENT '状态(改派前订单状态)',
+  `telX` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号',
+  `bindId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号绑定关系id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 93 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单-专车' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_order_private_car
+-- ----------------------------
+INSERT INTO `t_order_private_car` VALUES (2, 1, NULL, NULL, 191, 2, NULL, NULL, 'PRIVATE000001', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 103.9512290000, '成都市武侯区武侯祠大街69号', 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-21 16:17:33', '2020-09-21 16:17:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (3, 1, NULL, NULL, 191, 2, NULL, NULL, 'PRIVATE000002', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 103.9512290000, '成都市武侯区武侯祠大街69号', 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-21 16:28:06', '2020-09-21 16:27:52', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (4, 1, NULL, NULL, 191, 2, NULL, NULL, 'PRIVATE000003', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 103.9512290000, '成都市武侯区武侯祠大街69号', 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-21 16:34:11', '2020-09-21 16:33:57', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (5, 1, NULL, NULL, 191, 2, NULL, NULL, 'PRIVATE000004', 104.0431100000, 30.6424200000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0431100000, 30.6424200000, 103.9512290000, '武侯区人民政府', 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-21 16:35:03', '2020-09-21 16:34:49', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (6, 1, NULL, NULL, 432, 1, NULL, NULL, 'PRIVATE000001', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557591697, 30.5857011260, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 10:10:55', '2020-09-22 10:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (7, 1, NULL, NULL, 432, 1, NULL, NULL, 'PRIVATE000002', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0558222016, 30.5884742321, 104.0692040000, '天府新谷2号楼', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 10:24:26', '2020-09-22 10:24:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (8, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000003', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557725808, 30.5856849627, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:38:46', '2020-09-22 14:38:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (9, 1, NULL, NULL, 183, 2, NULL, NULL, 'PRIVATE000004', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557739219, 30.5857357614, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:39:57', '2020-09-22 14:39:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (10, 1, NULL, NULL, 183, 3, NULL, NULL, 'PRIVATE000005', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557739219, 30.5857357614, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:40:10', '2020-09-22 14:40:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (11, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000006', 104.0557830462, 30.5857166945, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857172892, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:50:35', '2020-09-22 14:50:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (12, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000007', 104.0559350000, 30.5854090000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0557819685, 30.5857172892, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:51:47', '2020-09-22 14:51:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (13, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000008', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857172892, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:52:13', '2020-09-22 14:52:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (14, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000009', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857172892, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 14:53:50', '2020-09-22 14:53:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (15, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000010', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0558047673, 30.5856780357, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 15:00:43', '2020-09-22 15:00:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (16, 1, NULL, NULL, 183, 1, NULL, NULL, 'PRIVATE000011', 104.0558310000, 30.5858040000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0558047673, 30.5856780357, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 15:01:17', '2020-09-22 15:01:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (17, 1, NULL, NULL, 432, 1, NULL, NULL, 'PRIVATE000012', 104.0558000000, 30.5856810000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0558289072, 30.5856757266, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 15:09:25', '2020-09-22 15:09:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (18, 1, NULL, NULL, 432, 1, NULL, NULL, 'PRIVATE000013', 104.0558010000, 30.5856790000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0558007440, 30.5856791902, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 15:20:32', '2020-09-22 15:20:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (20, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000015', 104.0560913086, 30.5855295139, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560907661, 30.5855278863, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 15:23:26', '2020-09-22 15:23:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (21, 1, NULL, NULL, 183, 1, 910, 945, 'PRIVATE000016', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857727059, 104.0692040000, '天府新谷& #40;府城大道西段& #41;11栋', 30.5462030000, '天府三街& #40;地铁站& #41;', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 15:37:52', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 17:36:55', NULL, 1, 3, 114.00, NULL, 10.00, 0.00, 0.00, NULL, 104.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 114.00, 0, NULL, NULL, 9, '2020-09-22 15:33:44', '2020-09-22 15:33:00', '2020-09-22 15:33:51', '2020-09-22 15:37:16', '2020-09-22 15:37:23', '2020-09-22 15:37:52', '2020-09-22 17:36:55', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (23, 1, NULL, NULL, 433, 1, NULL, NULL, 'PRIVATE000016', 104.0558592368, 30.5858108778, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0556760213, 30.5864180773, 104.0657510000, '天府新谷9号楼', 30.6574530000, '天府广场& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 15:57:33', '2020-09-22 15:57:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (25, 1, NULL, NULL, 433, 1, NULL, NULL, 'PRIVATE000017', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0556760213, 30.5864180773, 104.0657510000, '天府新谷9号楼', 30.6574530000, '天府广场& #40;地铁站& #41;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:01:17', '2020-09-22 16:01:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (26, 1, NULL, NULL, 433, 1, 906, 944, 'PRIVATE000018', 104.0558330000, 30.5857970000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0565960189, 30.5864758027, 104.0657510000, '天府新谷7号楼', 30.6574530000, '天府广场& #40;地铁站& #41;', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 16:03:40', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 16:09:06', NULL, 1, NULL, 8.00, NULL, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 0.00, 0, NULL, NULL, 7, '2020-09-22 16:02:44', '2020-09-22 16:02:00', '2020-09-22 16:02:48', '2020-09-22 16:03:01', '2020-09-22 16:03:35', '2020-09-22 16:03:40', '2020-09-22 16:09:06', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (27, 1, NULL, NULL, 434, 1, 906, 944, 'PRIVATE000019', 104.0558140000, 30.5856770000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0496383689, 30.5865335279, 104.0657510000, '仁和春天国际花园4幢', 30.6574530000, '天府广场& #40;地铁站& #41;', 104.0558170000, 30.5856770000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 16:13:45', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 16:13:47', NULL, 1, NULL, 8.00, NULL, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 0.00, 0, NULL, NULL, 7, '2020-09-22 16:13:33', '2020-09-22 16:13:00', '2020-09-22 16:13:39', '2020-09-22 16:13:42', '2020-09-22 16:13:43', '2020-09-22 16:13:45', '2020-09-22 16:13:47', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (28, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000020', 104.0560020616, 30.5855398220, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560020616, 30.5855398220, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:31:18', '2020-09-22 16:31:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (29, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000021', 104.0559931098, 30.5855422635, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560020616, 30.5855398220, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:31:48', '2020-09-22 16:31:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (30, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000022', 104.0559922960, 30.5855425347, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557032720, 30.5847272393, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:32:05', '2020-09-22 16:32:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (31, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000023', 104.0561184353, 30.5855181207, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0561184353, 30.5855181207, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:34:38', '2020-09-22 16:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (32, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000024', 104.0560731337, 30.5855276150, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560731337, 30.5855276150, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:36:24', '2020-09-22 16:36:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (33, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000025', 104.0560232205, 30.5855335829, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560232205, 30.5855335829, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:36:51', '2020-09-22 16:36:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (34, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000026', 104.0560381402, 30.5855346680, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560232205, 30.5855335829, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:37:44', '2020-09-22 16:37:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (35, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000027', 104.0560069444, 30.5855360243, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560232205, 30.5855335829, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:40:35', '2020-09-22 16:40:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (36, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000028', 104.0560704210, 30.5855387370, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560704210, 30.5855387370, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:56:33', '2020-09-22 16:56:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (37, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000029', 104.0560704210, 30.5855387370, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560704210, 30.5855387370, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 16:56:50', '2020-09-22 16:56:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (39, 1, NULL, NULL, 191, 2, NULL, NULL, 'PRIVATE000031', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '武侯区人民政府', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-22 17:49:16', '2020-09-22 17:49:01', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (40, 1, NULL, NULL, 189, 2, NULL, NULL, 'PRIVATE000032', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-22 17:53:13', '2020-09-22 17:53:13', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (41, 1, NULL, NULL, 189, 1, NULL, NULL, 'PRIVATE000033', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-22 17:54:21', '2020-09-22 17:54:21', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (42, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000034', 104.0573900000, 30.5839480000, '四川省成都市武侯区石羊场街道誉峰国际中心', 104.0573900000, 30.5839480000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 17:54:57', 104.0557740250, 30.5857346839, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 17:54:59', NULL, 1, 3, 67.00, NULL, 10.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 45.00, 12.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 67.00, 0, '更换乘车人', '', 8, '2020-09-22 17:54:45', '2020-09-22 17:54:45', '2020-09-22 17:54:47', '2020-09-22 17:54:54', '2020-09-22 17:54:56', '2020-09-22 17:54:57', '2020-09-22 17:54:59', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (45, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000036', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0723840000, '成都市武侯区锦晖西二街126号', 30.5130950000, '城南晶座', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:17:21', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:17:30', NULL, 1, 3, 21.00, NULL, 10.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 11.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 21.00, 0, '更换乘车人', '', 8, '2020-09-22 18:16:44', '2020-09-22 18:16:44', '2020-09-22 18:16:52', '2020-09-22 18:17:03', '2020-09-22 18:17:13', '2020-09-22 18:17:21', '2020-09-22 18:17:30', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (47, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000037', 104.0560734049, 30.5855249023, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0567397191, 30.5850237587, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 18:18:41', '2020-09-22 18:18:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (49, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000039', 104.0573900000, 30.5839480000, '四川省成都市武侯区石羊场街道誉峰国际中心', 104.0573900000, 30.5839480000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:37:43', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:37:44', NULL, 1, 3, 18.00, 5.00, 10.00, 0.00, 0.00, NULL, 0.00, 8.00, 8.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 18.00, 0, '更换乘车人', '', 8, '2020-09-22 18:22:49', '2020-09-22 18:22:50', '2020-09-22 18:22:51', '2020-09-22 18:22:55', '2020-09-22 18:23:48', '2020-09-22 18:37:43', '2020-09-22 18:37:44', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (50, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000037', 104.0560826280, 30.5855064562, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0561739845, 30.5856571606, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 18:26:31', '2020-09-22 18:26:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (51, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000038', 104.0561165365, 30.5855107964, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560866970, 30.5855173069, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 18:28:46', '2020-09-22 18:28:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (52, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000039', 104.0561230469, 30.5855097114, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560866970, 30.5855173069, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-22 18:29:10', '2020-09-22 18:29:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (53, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000040', 104.0561246745, 30.5855094401, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560866970, 30.5855173069, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558150000, 30.5856750000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:29:44', 104.0558080000, 30.5856760000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:43:54', NULL, 1, 3, 10.00, 5.00, 10.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 10.00, 0, NULL, NULL, 8, '2020-09-22 18:29:24', '2020-09-22 18:29:00', '2020-09-22 18:29:26', '2020-09-22 18:29:33', '2020-09-22 18:29:38', '2020-09-22 18:29:44', '2020-09-22 18:43:54', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (54, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000001', 104.0560294596, 30.5855232747, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560294596, 30.5855232747, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-23 14:51:43', '2020-09-23 14:51:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (55, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000002', 104.0560270182, 30.5855343967, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560270182, 30.5855343967, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', 104.0558330000, 30.5856740000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 14:58:03', 104.0558330000, 30.5856740000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 14:58:16', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 8, '2020-09-23 14:57:38', '2020-09-23 14:57:00', '2020-09-23 14:57:41', '2020-09-23 14:57:52', '2020-09-23 14:57:56', '2020-09-23 14:58:03', '2020-09-23 14:58:16', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (56, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000003', 104.0560289171, 30.5855308702, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560262044, 30.5855387370, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', 104.0558160000, 30.5856760000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 15:22:44', 104.0558160000, 30.5856760000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 15:22:56', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 9, '2020-09-23 15:22:31', '2020-09-23 15:22:00', '2020-09-23 15:22:33', '2020-09-23 15:22:39', '2020-09-23 15:22:42', '2020-09-23 15:22:44', '2020-09-23 15:22:56', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (57, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000004', 104.0560373264, 30.5855102539, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560373264, 30.5855102539, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-23 15:35:55', '2020-09-23 15:35:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (58, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000005', 104.0560077582, 30.5855221897, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560666233, 30.5855080838, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558150000, 30.5856780000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 15:39:27', 104.0558150000, 30.5856780000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 15:39:37', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 9, '2020-09-23 15:38:22', '2020-09-23 15:38:00', '2020-09-23 15:38:24', '2020-09-23 15:39:21', '2020-09-23 15:39:23', '2020-09-23 15:39:27', '2020-09-23 15:39:37', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (59, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000006', 104.0560828993, 30.5855118815, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560828993, 30.5855118815, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558240000, 30.5856750000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 16:05:18', 104.0558240000, 30.5856750000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 16:05:23', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 9, '2020-09-23 15:51:09', '2020-09-23 15:51:00', '2020-09-23 15:51:27', '2020-09-23 16:05:11', '2020-09-23 16:05:14', '2020-09-23 16:05:18', '2020-09-23 16:05:23', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (60, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000007', 104.0560446506, 30.5855238173, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560519748, 30.5855075412, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, 10, '2020-09-23 16:06:29', '2020-09-23 16:06:00', '2020-09-23 16:06:36', NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_private_car` VALUES (61, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000008', 104.0560457357, 30.5855189345, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560457357, 30.5855189345, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558230000, 30.5856790000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 17:07:21', 104.0558250000, 30.5856760000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 17:15:33', 0.00, 1, 3, 10.00, 5.00, 10.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 10.00, 0, NULL, NULL, 8, '2020-09-23 17:06:44', '2020-09-23 17:06:00', '2020-09-23 17:06:46', '2020-09-23 17:07:06', '2020-09-23 17:07:15', '2020-09-23 17:07:21', '2020-09-23 17:15:33', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (62, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000001', 104.0560262044, 30.5855257161, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560302734, 30.5855183919, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 15:54:56', '2020-09-24 15:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (63, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000002', 104.0560142687, 30.5855156793, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560142687, 30.5855156793, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 16:08:05', '2020-09-24 16:08:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (64, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000003', 104.0560313585, 30.5855238173, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560142687, 30.5855156793, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558180000, 30.5856760000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-24 16:14:50', 104.0558180000, 30.5856760000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-24 16:17:54', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 8, '2020-09-24 16:14:38', '2020-09-24 16:14:00', '2020-09-24 16:14:40', '2020-09-24 16:14:44', '2020-09-24 16:14:47', '2020-09-24 16:14:50', '2020-09-24 16:17:54', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (65, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000004', 104.0560750326, 30.5855254449, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0558659054, 30.5850019990, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558320000, 30.5856740000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-24 16:39:01', 104.0558320000, 30.5856740000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-24 16:39:07', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 8, '2020-09-24 16:38:49', '2020-09-24 16:38:00', '2020-09-24 16:38:50', '2020-09-24 16:38:55', '2020-09-24 16:38:58', '2020-09-24 16:39:01', '2020-09-24 16:39:07', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (66, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000005', 104.0560592990, 30.5855135091, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560592990, 30.5855135091, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558320000, 30.5856740000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-24 16:45:11', 104.0558320000, 30.5856740000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-24 16:45:17', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, NULL, NULL, 8, '2020-09-24 16:45:03', '2020-09-24 16:45:00', '2020-09-24 16:45:05', '2020-09-24 16:45:08', '2020-09-24 16:45:10', '2020-09-24 16:45:11', '2020-09-24 16:45:17', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (67, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000006', 104.0560511610, 30.5855173069, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560592990, 30.5855135091, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 17:02:56', '2020-09-24 17:02:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (68, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000007', 104.0560937500, 30.5855167643, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560592990, 30.5855135091, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 17:07:04', '2020-09-24 17:07:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (69, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000008', 104.0560565864, 30.5855346680, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560592990, 30.5855135091, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 17:09:37', '2020-09-24 17:08:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (70, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000009', 104.0560812717, 30.5855197483, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560839844, 30.5855202908, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 17:12:14', '2020-09-25 00:00:00', NULL, NULL, NULL, NULL, NULL, 2, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (71, 1, NULL, NULL, 190, 1, NULL, NULL, 'PRIVATE000010', 104.0560500760, 30.5855327691, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560706923, 30.5855395508, 104.0658610000, '天府新谷(府城大道西段)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, 10, '2020-09-24 17:26:02', '2020-09-25 02:00:00', NULL, NULL, NULL, NULL, NULL, 2, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (72, 1, NULL, NULL, 190, 1, 905, 943, 'PRIVATE000011', 104.0560416667, 30.5855314128, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560660807, 30.5855197483, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, 10, '2020-09-24 17:31:34', '2020-09-25 00:00:00', '2020-09-24 17:31:37', NULL, NULL, NULL, NULL, 2, 1, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_private_car` VALUES (73, 1, NULL, NULL, 189, 1, NULL, NULL, 'PRIVATE000001', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-29 09:23:25', '2020-09-29 09:23:21', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (74, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000002', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:28:30', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:28:34', 0.00, 1, 3, 19.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 19.00, 0, '更换乘车人', '', 8, '2020-09-29 09:23:56', '2020-09-29 09:23:52', '2020-09-29 09:23:58', '2020-09-29 09:28:18', '2020-09-29 09:28:25', '2020-09-29 09:28:30', '2020-09-29 09:28:34', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (75, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000003', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:31:23', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:31:25', 0.00, 1, 3, 19.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 19.00, 0, '更换乘车人', '', 8, '2020-09-29 09:28:53', '2020-09-29 09:28:48', '2020-09-29 09:28:55', '2020-09-29 09:31:21', '2020-09-29 09:31:22', '2020-09-29 09:31:23', '2020-09-29 09:31:25', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (76, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000004', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:34:02', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:34:04', 0.00, 1, 3, 110.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 101.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 110.00, 0, '更换乘车人', '', 8, '2020-09-29 09:31:43', '2020-09-29 09:31:39', '2020-09-29 09:31:46', '2020-09-29 09:32:53', '2020-09-29 09:34:00', '2020-09-29 09:34:02', '2020-09-29 09:34:04', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (77, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000005', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:36:51', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 09:36:52', 0.00, 1, 3, 19.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 19.00, 0, '更换乘车人', '', 8, '2020-09-29 09:34:19', '2020-09-29 09:34:15', '2020-09-29 09:34:25', '2020-09-29 09:36:49', '2020-09-29 09:36:50', '2020-09-29 09:36:51', '2020-09-29 09:36:52', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (78, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000006', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, '更换乘车人', '', 10, '2020-09-29 09:37:09', '2020-09-29 09:37:05', '2020-09-29 09:37:12', NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_private_car` VALUES (79, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000007', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 10:36:26', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 10:36:27', 0.00, 1, 3, 30.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 11.00, 11.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 30.00, 0, '更换乘车人', '', 8, '2020-09-29 10:33:29', '2020-09-29 10:33:25', '2020-09-29 10:33:31', '2020-09-29 10:36:19', '2020-09-29 10:36:24', '2020-09-29 10:36:26', '2020-09-29 10:36:27', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (80, 1, NULL, NULL, 189, 1, NULL, NULL, 'PRIVATE000008', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-29 11:27:01', '2020-09-29 11:26:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (81, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000009', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:28:07', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:28:08', 0.00, 1, 3, 28.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 10.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 28.00, 0, '更换乘车人', '', 9, '2020-09-29 11:27:13', '2020-09-29 11:27:08', '2020-09-29 11:27:14', '2020-09-29 11:28:04', '2020-09-29 11:28:05', '2020-09-29 11:28:07', '2020-09-29 11:28:08', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (82, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000010', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:43:18', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:43:27', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, '更换乘车人', '', 8, '2020-09-29 11:41:35', '2020-09-29 11:41:31', '2020-09-29 11:41:37', '2020-09-29 11:42:22', '2020-09-29 11:42:36', '2020-09-29 11:43:18', '2020-09-29 11:43:27', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (83, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000011', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:44:56', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:45:02', 0.00, 1, 3, 8.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 8.00, 0, '更换乘车人', '', 8, '2020-09-29 11:43:49', '2020-09-29 11:43:45', '2020-09-29 11:43:52', '2020-09-29 11:44:07', '2020-09-29 11:44:23', '2020-09-29 11:44:56', '2020-09-29 11:45:02', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (84, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000012', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:47:35', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:47:38', 0.00, 1, 3, 28.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 10.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 28.00, 0, '更换乘车人', '', 8, '2020-09-29 11:46:38', '2020-09-29 11:46:33', '2020-09-29 11:46:42', '2020-09-29 11:47:20', '2020-09-29 11:47:30', '2020-09-29 11:47:35', '2020-09-29 11:47:38', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (85, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000013', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:48:24', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:48:27', 0.00, 1, 3, 10.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 1.00, 1.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 10.00, 0, '更换乘车人', '', 8, '2020-09-29 11:47:47', '2020-09-29 11:47:43', '2020-09-29 11:47:49', '2020-09-29 11:48:07', '2020-09-29 11:48:19', '2020-09-29 11:48:24', '2020-09-29 11:48:27', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (86, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000014', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:49:59', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:50:06', 0.00, 1, 3, 28.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 10.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 28.00, 0, '更换乘车人', '', 8, '2020-09-29 11:49:15', '2020-09-29 11:49:10', '2020-09-29 11:49:18', '2020-09-29 11:49:36', '2020-09-29 11:49:46', '2020-09-29 11:49:59', '2020-09-29 11:50:06', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (87, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000015', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:50:49', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:50:51', 0.00, 1, 3, 28.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 10.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 28.00, 0, '更换乘车人', '', 8, '2020-09-29 11:50:39', '2020-09-29 11:50:35', '2020-09-29 11:50:42', '2020-09-29 11:50:45', '2020-09-29 11:50:47', '2020-09-29 11:50:49', '2020-09-29 11:50:51', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (88, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000016', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:54:32', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 11:54:33', 0.00, 1, 3, 38.00, 5.00, 8.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 20.00, 10.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 38.00, 0, '更换乘车人', '', 8, '2020-09-29 11:54:22', '2020-09-29 11:54:18', '2020-09-29 11:54:24', '2020-09-29 11:54:30', '2020-09-29 11:54:31', '2020-09-29 11:54:32', '2020-09-29 11:54:33', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (89, 1, NULL, NULL, 189, 1, NULL, NULL, 'PRIVATE000017', 104.0573900000, 30.5839480000, '四川省成都市武侯区石羊场街道誉峰国际中心', 104.0573900000, 30.5839480000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, '更换乘车人', '', 10, '2020-09-29 18:23:29', '2020-09-29 18:23:29', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (90, 1, NULL, NULL, 189, 1, 906, 944, 'PRIVATE000018', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', 104.0558170653, 30.5856662882, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 18:40:37', 104.0558170653, 30.5856662882, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 18:40:40', 0.00, 1, NULL, 10.00, 5.00, 10.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 0.00, 0, '更换乘车人', '', 7, '2020-09-29 18:40:18', '2020-09-29 18:40:18', '2020-09-29 18:40:23', '2020-09-29 18:40:30', '2020-09-29 18:40:34', '2020-09-29 18:40:37', '2020-09-29 18:40:40', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (91, 1, NULL, NULL, 185, 1, 906, 944, 'PRIVATE000019', 104.0560755751, 30.5855064562, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0559339735, 30.5855265299, 104.1410940000, '誉峰国际中心', 30.6289310000, '成都东站', 104.0558370000, 30.5856660000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 18:41:48', 104.0558191320, 30.5856687462, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 18:41:50', 0.00, 1, NULL, 10.00, 5.00, 10.00, 0.00, 0.00, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 0.00, 0, NULL, NULL, 7, '2020-09-29 18:41:33', '2020-09-29 18:41:00', '2020-09-29 18:41:35', '2020-09-29 18:41:45', '2020-09-29 18:41:46', '2020-09-29 18:41:48', '2020-09-29 18:41:50', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_private_car` VALUES (92, 1, NULL, NULL, 435, 1, 906, 944, 'PRIVATE000020', 104.0558200000, 30.5856680000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0558195194, 30.5856687995, 104.1410940000, '天府新谷(府城大道西段)11栋', 30.6289310000, '成都东站', 104.0558311613, 30.5856657683, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 18:45:25', 104.0558331979, 30.5856663195, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-29 18:45:32', 0.00, 1, NULL, 6.00, 1.00, 5.00, 0.00, 0.00, 0.00, 0.00, 2.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, NULL, NULL, 1, 0.00, 0, NULL, NULL, 7, '2020-09-29 18:45:08', '2020-09-29 18:45:00', '2020-09-29 18:45:18', '2020-09-29 18:46:21', '2020-09-29 18:45:23', '2020-09-29 18:47:26', '2020-09-29 18:45:32', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_order_taxi
+-- ----------------------------
+DROP TABLE IF EXISTS `t_order_taxi`;
+CREATE TABLE `t_order_taxi`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `type` int(1) NULL DEFAULT 1 COMMENT '订单类型(1=普通订单,2=摆渡订单)',
+  `crossCityOrderId` int(11) NULL DEFAULT NULL COMMENT '跨城订单id(摆渡专用)',
+  `place` int(1) NULL DEFAULT NULL COMMENT '摆渡方位(1=跨城起点,2=跨城终点)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '接单司机ID',
+  `carId` int(11) NULL DEFAULT NULL COMMENT '车辆id',
+  `orderNum` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '订单号',
+  `placementLon` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点经度',
+  `placementLat` double(20, 10) NULL DEFAULT NULL COMMENT '下单地点纬度',
+  `placementAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下单地点',
+  `startLon` double(20, 10) NULL DEFAULT NULL COMMENT '出发地经度值',
+  `startLat` double(20, 10) NULL DEFAULT NULL COMMENT '出发地纬度值',
+  `endLon` double(20, 10) NULL DEFAULT NULL COMMENT '目的地经度',
+  `startAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '出发地地点',
+  `endLat` double(20, 10) NULL DEFAULT NULL COMMENT '目的地纬度',
+  `endAddress` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '目的地地点',
+  `boardingLon` double(20, 10) NULL DEFAULT NULL COMMENT '上车点经度',
+  `boardingLat` double(20, 10) NULL DEFAULT NULL COMMENT '上车点纬度',
+  `boardingAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '上车点',
+  `boardingTime` datetime(0) NULL DEFAULT NULL COMMENT '上车时间',
+  `getoffLon` double(20, 10) NULL DEFAULT NULL COMMENT '下车点经度',
+  `getoffLat` double(20, 10) NULL DEFAULT NULL COMMENT '下车点纬度',
+  `getoffAddress` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '下车地点',
+  `getoffTime` datetime(0) NULL DEFAULT NULL COMMENT '下车时间',
+  `mileage` double(10, 2) NULL DEFAULT NULL COMMENT '行驶里程数(米)',
+  `payManner` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=OK平台支付,2=其他方式支付)',
+  `payType` smallint(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝,3=其他)',
+  `orderMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '订单金额',
+  `travelMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '行程费',
+  `parkMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '停车费',
+  `roadTollMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '过路费',
+  `tipMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '小费',
+  `redPacketMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '红包抵扣金额',
+  `couponMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '优惠券抵扣金额',
+  `redPacketId` int(11) NULL DEFAULT NULL COMMENT '红包记录id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  `discount` double(11, 2) NULL DEFAULT NULL COMMENT '折扣',
+  `discountMoney` double(11, 2) NULL DEFAULT NULL COMMENT '折扣优惠金额',
+  `activityId` int(11) NULL DEFAULT NULL COMMENT '折扣活动id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `payMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  `substitute` int(1) NULL DEFAULT NULL COMMENT '是否是代下单(0:否,1:是)',
+  `passengers` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '乘车人',
+  `passengersPhone` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '乘车人电话',
+  `state` smallint(6) NULL DEFAULT NULL COMMENT '状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '下单时间',
+  `travelTime` datetime(0) NULL DEFAULT NULL COMMENT '出行时间',
+  `snatchOrderTime` datetime(0) NULL DEFAULT NULL COMMENT '抢单时间',
+  `setOutTime` datetime(0) NULL DEFAULT NULL COMMENT '司机点出发时间',
+  `arriveTime` datetime(0) NULL DEFAULT NULL COMMENT '司机到达预约地点时间',
+  `startServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '开始服务时间',
+  `endServiceTime` datetime(0) NULL DEFAULT NULL COMMENT '结束服务时间',
+  `orderType` smallint(1) NULL DEFAULT NULL COMMENT '订单类型(1=普通,2=预约)',
+  `orderSource` int(1) NULL DEFAULT NULL COMMENT '下单方式(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)',
+  `invoiceId` int(11) NULL DEFAULT NULL COMMENT '发票id',
+  `isReassign` int(1) NULL DEFAULT NULL COMMENT '是否是改派单(1=否,2=是)',
+  `reassignNotice` int(1) NULL DEFAULT NULL COMMENT '改派通知(0=没有改派,1=改派中,2=已改派)',
+  `trackId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '高德猎鹰上的轨迹id',
+  `isDelete` int(1) NULL DEFAULT 1 COMMENT '是否删除  1=否 2=是',
+  `oldState` int(1) NULL DEFAULT NULL COMMENT '状态(改派前订单状态)',
+  `telX` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号',
+  `bindId` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '移动小号绑定关系id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2827 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '订单-出租车' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_order_taxi
+-- ----------------------------
+INSERT INTO `t_order_taxi` VALUES (2584, 1, NULL, NULL, 184, 904, NULL, 'TAXI000001', 109.4054421550, 24.3118025388, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054799437, 24.3117937916, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', 109.4054360000, 24.3118360000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-08-17 19:05:33', 109.4054360000, 24.3118360000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-08-17 19:06:21', 0.00, 1, 2, 7.00, 7.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 7.00, 0, NULL, '15907727138', 9, '2020-08-17 19:04:41', '2020-08-17 19:04:00', '2020-08-17 19:04:48', '2020-08-17 19:05:01', '2020-08-17 19:05:07', '2020-08-17 19:05:33', '2020-08-17 19:06:21', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2585, 1, NULL, NULL, 185, 905, 943, 'TAXI000002', 104.0559895833, 30.5855577257, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0559895833, 30.5855577257, 104.0684510000, '天府新谷(府城大道西段)', 30.6061370000, '成都南站', 104.0557850483, 30.5856586763, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:15:13', 104.0557850483, 30.5856586763, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:15:16', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '18380581367', 8, '2020-08-17 19:15:02', '2020-08-17 19:15:00', '2020-08-17 19:15:07', '2020-08-17 19:15:10', '2020-08-17 19:15:12', '2020-08-17 19:15:13', '2020-08-17 19:15:16', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2586, 1, NULL, NULL, 186, 905, 943, 'TAXI000003', 104.0557800411, 30.5857637066, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557538053, 30.5856664905, 104.0656540000, '天府新谷(府城大道西段)11栋', 30.5921010000, '高新区人事劳动和社会保障局', 104.0557790338, 30.5856626662, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:20:56', 104.0557790338, 30.5856626662, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-17 19:21:00', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '18380475138', 8, '2020-08-17 19:20:34', '2020-08-17 19:20:00', '2020-08-17 19:20:37', '2020-08-17 19:20:44', '2020-08-17 19:20:54', '2020-08-17 19:20:56', '2020-08-17 19:21:00', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2587, 1, NULL, NULL, 184, 903, NULL, 'TAXI000004', 109.4052644454, 24.3114942511, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052908480, 24.3114821370, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15907727138', 10, '2020-08-17 20:15:44', '2020-08-17 21:00:00', '2020-08-17 20:16:03', NULL, NULL, NULL, NULL, 2, 1, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_taxi` VALUES (2588, 1, NULL, NULL, 184, 403, NULL, 'TAXI000005', 109.4052640152, 24.3114957904, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052908480, 24.3114821370, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', 109.4053090751, 24.3114942888, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-17 20:18:02', 109.4111274951, 24.3091613152, '广西壮族自治区柳州市城中区城中街道柳江路', '2020-08-17 20:21:14', 656.00, 1, 1, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, 0, NULL, '15907727138', 9, '2020-08-17 20:17:46', '2020-08-17 20:17:00', '2020-08-17 20:17:52', '2020-08-17 20:17:52', '2020-08-17 20:17:52', '2020-08-17 20:18:02', '2020-08-17 20:21:14', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2589, 1, NULL, NULL, 187, 905, 943, 'TAXI000001', 104.0557740265, 30.5857676964, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557739219, 30.5857680878, 104.0839090000, '天府新谷(府城大道西段)11栋', 30.6608140000, '市二医院(地铁站)', 104.0557740000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:53:39', 104.0557770340, 30.5857707034, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:53:47', 7157713.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15928265276', 8, '2020-08-18 09:28:52', '2020-08-18 09:28:00', '2020-08-18 09:28:52', '2020-08-18 09:53:37', '2020-08-18 09:53:38', '2020-08-18 09:53:39', '2020-08-18 09:53:47', 2, 2, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2590, 1, NULL, NULL, 187, 905, 943, 'TAXI000002', 104.0557710191, 30.5857646894, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557859918, 30.5856560999, 104.0839090000, '天府新谷(府城大道西段)11栋', 30.6608140000, '市二医院(地铁站)', 104.0557800000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:55:58', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 09:56:03', 0.00, 1, 1, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 10.00, 0, NULL, '15928265276', 8, '2020-08-18 09:55:18', '2020-08-18 09:55:00', '2020-08-18 09:55:18', NULL, NULL, '2020-08-18 09:55:58', '2020-08-18 09:56:03', 2, 2, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2591, 1, NULL, NULL, 187, 905, 943, 'TAXI000003', 104.0557770341, 30.5857727041, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557766041, 30.5857553882, 104.0839090000, '天府新谷(府城大道西段)11栋', 30.6608140000, '市二医院(地铁站)', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 10:02:38', 104.0557850000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-18 10:03:11', 57261800.00, 1, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15928265276', 7, '2020-08-18 10:00:29', '2020-08-18 10:00:00', '2020-08-18 10:00:29', NULL, NULL, '2020-08-18 10:02:38', '2020-08-18 10:03:11', 2, 2, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2592, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000001', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0658610000, '成都市武侯区武侯祠大街69号', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-08-19 15:03:17', '2020-08-19 15:03:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2593, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000002', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0658610000, '成都市武侯区武侯祠大街69号', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-08-19 15:04:03', '2020-08-19 15:03:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2594, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000003', 104.0557820450, 30.5857437028, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557766041, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:08:53', '2020-08-19 17:08:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2595, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000004', 104.0557830468, 30.5857306998, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:09:42', '2020-08-19 17:09:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2596, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000005', 104.0557780355, 30.5857496973, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:10:12', '2020-08-19 17:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2597, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000006', 104.0557820448, 30.5857387009, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557819685, 30.5857311434, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:10:39', '2020-08-19 17:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2598, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000007', 104.0557810437, 30.5857687104, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:11:31', '2020-08-19 17:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2599, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000008', 104.0557810437, 30.5857687104, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:11:42', '2020-08-19 17:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2600, 1, NULL, NULL, 186, 910, 945, 'TAXI000009', 104.0557820448, 30.5857397013, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:19:37', '2020-08-19 17:19:00', '2020-08-19 17:19:37', NULL, NULL, NULL, NULL, 2, 2, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2601, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000010', 104.0560324436, 30.5855384657, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560861919, 30.5845752992, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:21:34', '2020-08-19 17:21:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2602, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000011', 104.0557820000, 30.5856560000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557806274, 30.5857692423, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:35:01', '2020-08-19 17:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2603, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000012', 104.0557820000, 30.5856560000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:36:35', '2020-08-19 17:36:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2604, 1, NULL, NULL, 186, NULL, NULL, 'TAXI000013', 104.0557619920, 30.5856606324, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18380475138', 10, '2020-08-19 17:37:42', '2020-08-19 17:37:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2605, 1, NULL, NULL, 188, 910, 945, 'TAXI000014', 104.0557800416, 30.5857747107, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15828353127', 10, '2020-08-19 17:38:25', '2020-08-19 17:38:00', '2020-08-19 17:38:29', NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2606, 1, NULL, NULL, 188, 910, 945, 'TAXI000015', 104.0557800411, 30.5857637066, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557833096, 30.5857657788, 104.0684510000, '天府新谷(府城大道西段)11栋', 30.6061370000, '火车南站', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 17:43:19', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 17:45:19', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15828353127', 8, '2020-08-19 17:38:51', '2020-08-19 17:38:00', '2020-08-19 17:38:53', '2020-08-19 17:41:17', '2020-08-19 17:41:21', '2020-08-19 17:43:19', '2020-08-19 17:45:19', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2607, 1, NULL, NULL, 183, NULL, NULL, 'TAXI000016', 104.0557780344, 30.5857266886, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557350298, 30.5856664905, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18583738369', 10, '2020-08-19 17:48:50', '2020-08-19 17:48:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2608, 1, NULL, NULL, 188, 910, 945, 'TAXI000017', 104.0557770334, 30.5857576984, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557886740, 30.5853755521, 104.0684510000, '誉峰东区5幢', 30.6061370000, '火车南站', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:00:22', 104.0557890000, 30.5856540000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:03:18', 0.00, 2, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15828353127', 9, '2020-08-19 17:59:55', '2020-08-19 17:59:00', '2020-08-19 17:59:56', '2020-08-19 18:00:15', '2020-08-19 18:00:17', '2020-08-19 18:00:22', '2020-08-19 18:03:18', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2609, 1, NULL, NULL, 188, 910, 945, 'TAXI000018', 104.0560096571, 30.5855327691, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0560861919, 30.5845752992, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:09:50', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:10:06', 0.00, 1, 2, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15828353127', 9, '2020-08-19 18:08:51', '2020-08-19 18:08:00', '2020-08-19 18:08:53', '2020-08-19 18:09:43', '2020-08-19 18:09:45', '2020-08-19 18:09:50', '2020-08-19 18:10:06', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2610, 1, NULL, NULL, 188, 910, 945, 'TAXI000019', 104.0560549588, 30.5855324978, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560549588, 30.5855324978, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:12:19', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:12:22', 0.00, 1, 2, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15828353127', 8, '2020-08-19 18:12:11', '2020-08-19 18:12:00', '2020-08-19 18:12:12', '2020-08-19 18:12:15', '2020-08-19 18:12:17', '2020-08-19 18:12:19', '2020-08-19 18:12:22', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2611, 1, NULL, NULL, 188, 910, 945, 'TAXI000020', 104.0560563151, 30.5855330404, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560549588, 30.5855324978, 104.0428040000, '誉峰国际中心', 30.6141730000, '神仙树社区', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:13:07', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:13:10', 0.00, 1, 3, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15828353127', 8, '2020-08-19 18:13:00', '2020-08-19 18:13:00', '2020-08-19 18:13:03', '2020-08-19 18:13:05', '2020-08-19 18:13:06', '2020-08-19 18:13:07', '2020-08-19 18:13:10', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2612, 1, NULL, NULL, 189, 910, 945, 'TAXI000021', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0658610000, '成都市武侯区锦晖西二街126号', 30.6574010000, '天府广场', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:17:10', 104.0557800359, 30.5856566658, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-19 18:17:24', 0.00, 1, 1, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15620989414', 9, '2020-08-19 18:16:21', '2020-08-19 18:16:20', '2020-08-19 18:16:26', '2020-08-19 18:17:01', '2020-08-19 18:17:05', '2020-08-19 18:17:10', '2020-08-19 18:17:24', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2613, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000022', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0658610000, '成都市武侯区锦晖西二街126号', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-08-19 18:18:32', '2020-08-19 18:18:31', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2614, 1, NULL, NULL, 184, 913, 642, 'TAXI000001', 109.4203405253, 24.3143196974, '广西壮族自治区柳州市城中区公园街道滨江东路19-1号金沙角', 109.4187541959, 24.3117387937, 109.4449990000, '文惠路与滨江东路交叉口', 24.3261600000, '柳州市人民医院', 109.4202440357, 24.3142562168, '广西壮族自治区柳州市城中区公园街道滨江东路19-1号金沙角', '2020-08-20 15:54:00', 109.4208940750, 24.3181546664, '广西壮族自治区柳州市城中区公园街道滨江东路', '2020-08-20 15:56:39', 475.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15907727138', 9, '2020-08-20 15:53:17', '2020-08-20 15:53:00', '2020-08-20 15:53:31', '2020-08-20 15:53:31', '2020-08-20 15:53:31', '2020-08-20 15:54:00', '2020-08-20 15:56:39', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2615, 1, NULL, NULL, 184, 913, 642, 'TAXI000002', 109.4189446303, 24.3266332763, '广西壮族自治区柳州市柳北区解放街道滨江东路柳州市委大院', 109.4187541959, 24.3117387937, 109.4030910000, '文惠路与滨江东路交叉口', 24.3918490000, 'OK平价超市', 109.4202610347, 24.3199878499, '广西壮族自治区柳州市城中区公园街道滨江路40号', '2020-08-20 15:59:47', 109.4159778268, 24.3098263460, '广西壮族自治区柳州市城中区城中街道滨江东路4号', '2020-08-20 16:02:17', 1862.00, 1, 2, 7.00, 7.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 7.00, 0, NULL, '15907727138', 8, '2020-08-20 15:58:37', '2020-08-20 15:58:00', '2020-08-20 15:58:57', '2020-08-20 15:58:57', '2020-08-20 15:58:57', '2020-08-20 15:59:47', '2020-08-20 16:02:17', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2616, 1, NULL, NULL, 184, 913, 642, 'TAXI000003', 109.4105999450, 24.3091620128, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', 109.4187541959, 24.3117387937, 109.4449990000, '文惠路与滨江东路交叉口', 24.3261600000, '柳州市人民医院', 109.4105107072, 24.3091614223, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-08-20 16:04:52', 109.4094271171, 24.3091948927, '广西壮族自治区柳州市城中区中南街道滨江西路柳堤', '2020-08-20 16:06:09', 128.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15907727138', 9, '2020-08-20 16:03:27', '2020-08-20 16:03:00', '2020-08-20 16:03:33', '2020-08-20 16:03:33', '2020-08-20 16:03:33', '2020-08-20 16:04:52', '2020-08-20 16:06:09', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2617, 1, NULL, NULL, 184, 403, NULL, 'TAXI000001', 109.4052905050, 24.3116129841, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052090406, 24.3116153541, 109.4449990000, '滨江西路15栋', 24.3261600000, '柳州市人民医院', 109.4054257989, 24.3115442817, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', '2020-08-21 09:34:21', 109.4065595354, 24.3100281143, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-21 09:37:22', 442.00, 1, 2, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, 0, NULL, '15907727138', 8, '2020-08-21 09:33:51', '2020-08-21 09:33:00', '2020-08-21 09:34:01', '2020-08-21 09:34:01', '2020-08-21 09:34:01', '2020-08-21 09:34:21', '2020-08-21 09:37:22', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2618, 1, NULL, NULL, 192, 910, 945, 'TAXI000002', 104.0557740265, 30.5857676964, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:37:45', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:37:49', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:34:58', '2020-08-21 11:34:00', '2020-08-21 11:35:03', '2020-08-21 11:35:03', '2020-08-21 11:35:03', '2020-08-21 11:37:45', '2020-08-21 11:37:49', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2619, 1, NULL, NULL, 192, 910, 945, 'TAXI000003', 104.0557770329, 30.5857476946, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:38:19', 104.0558080000, 30.5856580000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:38:21', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:38:13', '2020-08-21 11:38:00', '2020-08-21 11:38:16', '2020-08-21 11:38:16', '2020-08-21 11:38:16', '2020-08-21 11:38:19', '2020-08-21 11:38:21', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2620, 1, NULL, NULL, 192, 910, 945, 'TAXI000004', 104.0557770336, 30.5857617000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558050000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:40:01', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:40:41', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:39:52', '2020-08-21 11:39:00', '2020-08-21 11:39:57', '2020-08-21 11:39:57', '2020-08-21 11:39:57', '2020-08-21 11:40:01', '2020-08-21 11:40:41', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2621, 1, NULL, NULL, 192, 910, 945, 'TAXI000005', 104.0557770340, 30.5857707034, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:45:52', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:45:55', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:45:45', '2020-08-21 11:45:00', '2020-08-21 11:45:48', '2020-08-21 11:45:48', '2020-08-21 11:45:48', '2020-08-21 11:45:52', '2020-08-21 11:45:55', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2622, 1, NULL, NULL, 192, 910, 945, 'TAXI000006', 104.0557740267, 30.5857706976, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:46:30', 104.0558140000, 30.5856570000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:47:29', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:46:24', '2020-08-21 11:46:00', '2020-08-21 11:46:27', '2020-08-21 11:46:27', '2020-08-21 11:46:27', '2020-08-21 11:46:30', '2020-08-21 11:47:29', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2623, 1, NULL, NULL, 192, 910, 945, 'TAXI000007', 104.0557740271, 30.5857787006, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:51:48', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:51:52', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:51:41', '2020-08-21 11:51:00', '2020-08-21 11:51:45', '2020-08-21 11:51:45', '2020-08-21 11:51:45', '2020-08-21 11:51:48', '2020-08-21 11:51:52', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2624, 1, NULL, NULL, 192, 910, 945, 'TAXI000008', 104.0557629996, 30.5857686754, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0557930000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:53:07', 104.0558030000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:53:12', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:52:58', '2020-08-21 11:52:00', '2020-08-21 11:53:00', '2020-08-21 11:53:00', '2020-08-21 11:53:00', '2020-08-21 11:53:07', '2020-08-21 11:53:12', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2625, 1, NULL, NULL, 192, 910, 945, 'TAXI000009', 104.0557740266, 30.5857686968, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557846507, 30.5856607179, 104.0989490000, '天府新谷(府城大道西段)11栋', 30.6173000000, '东光小区', 104.0557980000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:56:26', 104.0557980000, 30.5856550000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-08-21 11:56:41', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15928267524', 8, '2020-08-21 11:56:20', '2020-08-21 11:56:00', '2020-08-21 11:56:22', '2020-08-21 11:56:22', '2020-08-21 11:56:22', '2020-08-21 11:56:26', '2020-08-21 11:56:41', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2626, 1, NULL, NULL, 184, NULL, NULL, 'TAXI000001', 109.4053641279, 24.3119554880, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4026756942, 24.3256268176, 109.4449990000, '雅儒社区', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907727138', 10, '2020-08-22 20:19:02', '2020-08-22 20:19:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2627, 1, NULL, NULL, 184, NULL, NULL, 'TAXI000002', 109.4054309958, 24.3115407131, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', 109.4026756942, 24.3256268176, 109.4449990000, '雅儒社区', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907727138', 10, '2020-08-22 20:21:41', '2020-08-22 20:21:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2628, 1, NULL, NULL, 184, 875, 838, 'TAXI000003', 109.4054516462, 24.3115862298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋', 109.4026756942, 24.3256268176, 109.4449990000, '雅儒社区', 24.3261600000, '柳州市人民医院', 109.4065095238, 24.3101780685, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-08-22 20:24:32', 109.4142611589, 24.3092771401, '广西壮族自治区柳州市城中区城中街道滨江东路柳州市人民政府国有资产监督管理委员会', '2020-08-22 20:30:37', 997.00, 1, 2, 6.80, 6.80, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.80, 0, NULL, '15907727138', 9, '2020-08-22 20:23:00', '2020-08-22 20:22:00', '2020-08-22 20:23:30', '2020-08-22 20:23:30', '2020-08-22 20:23:30', '2020-08-22 20:24:32', '2020-08-22 20:30:37', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2629, 1, NULL, NULL, 193, 875, 838, 'TAXI000004', 109.4143678761, 24.3094681858, '广西壮族自治区柳州市城中区城中街道柳江路鸿府大厦', 109.4143969474, 24.3093701986, 109.4030910000, '柳江路与滨江东路交叉口', 24.3918490000, 'OK平价超市', 109.4142944910, 24.3092438058, '广西壮族自治区柳州市城中区城中街道滨江东路柳州市人民政府国有资产监督管理委员会', '2020-08-22 20:38:11', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '18172192319', 10, '2020-08-22 20:38:02', '2020-08-22 20:38:00', '2020-08-22 20:38:11', '2020-08-22 20:38:11', '2020-08-22 20:38:11', '2020-08-22 20:38:11', NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2630, 1, NULL, NULL, 193, NULL, NULL, 'TAXI000005', 109.4143527870, 24.3093981820, '广西壮族自治区柳州市城中区城中街道柳江路柳州市人民政府国有资产监督管理委员会', 109.4143969474, 24.3093701986, 109.4449990000, '柳江路与滨江东路交叉口', 24.3261600000, '柳州市人民医院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18172192319', 10, '2020-08-22 20:40:00', '2020-08-22 20:39:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2631, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000001', 109.4104725477, 24.3198771159, '广西壮族自治区柳州市城中区城中街道广场路地王公馆', 109.4109849718, 24.3200103082, 109.3882920000, '地王公馆', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 9.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-08-29 08:43:05', '2020-08-29 08:43:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2632, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000002', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-08-29 09:40:00', '2020-08-29 09:39:59', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2633, 1, NULL, NULL, 195, NULL, NULL, 'TAXI000003', 109.4906580000, 24.3191390000, '广西壮族自治区柳州市鱼峰区阳和街道广西鹿寨农村商业银行(古亭山支行)', 109.4906580000, 24.3191390000, 109.4449080000, '柳州市鱼峰区兴亭路23号', 24.3138080000, '德润中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18077225823', 10, '2020-08-29 12:09:41', '2020-08-29 12:09:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2634, 1, NULL, NULL, 200, NULL, NULL, 'TAXI000004', 109.3921630000, 24.2845070000, '广西壮族自治区柳州市柳南区银山街道银海小区北区', 109.3921630000, 24.2845070000, 109.3384600000, '柳州市柳南区航生路25号', 24.2594550000, '柳江农贸市场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15777252036', 1, '2020-08-29 16:58:51', '2020-08-29 16:58:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2635, 1, NULL, NULL, 202, NULL, NULL, 'TAXI000005', 109.4332050000, 24.3523640000, '广西壮族自治区柳州市城中区河东街道柳州市第十二中学', 109.4332050000, 24.3523640000, 109.4289940000, '柳州市城中区东环大道145-131号', 24.3562300000, '广西柳州高级中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15677223830', 10, '2020-08-29 18:14:07', '2020-08-29 18:14:05', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2636, 1, NULL, NULL, 202, NULL, NULL, 'TAXI000006', 109.4332050000, 24.3523640000, '广西壮族自治区柳州市城中区河东街道柳州市第十二中学', 109.4332050000, 24.3523640000, 109.4289940000, '柳州市城中区桂中大道143号', 24.3562300000, '广西柳州高级中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15677223830', 10, '2020-08-29 18:14:30', '2020-08-29 18:14:28', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2637, 1, NULL, NULL, 206, NULL, NULL, 'TAXI000001', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路227号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13026928410', 10, '2020-08-30 12:14:24', '2020-08-30 12:14:23', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2638, 1, NULL, NULL, 206, NULL, NULL, 'TAXI000002', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路227号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13026928410', 10, '2020-08-30 12:15:55', '2020-08-30 12:15:54', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2639, 1, NULL, NULL, 206, NULL, NULL, 'TAXI000003', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路215号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13026928410', 10, '2020-08-30 12:18:20', '2020-08-30 12:18:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2640, 1, NULL, NULL, 206, NULL, NULL, 'TAXI000004', 109.3243220000, 24.2590890000, '广西壮族自治区柳州市柳江区拉堡镇金竺花苑', 109.3243220000, 24.2590890000, 109.4171660000, '柳州市柳江区柳堡路98号', 24.3822520000, '柳州钢一中学(凤凰岭校区)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13026928410', 10, '2020-08-30 12:19:33', '2020-08-30 12:19:32', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2641, 1, NULL, NULL, 207, NULL, NULL, 'TAXI000005', 109.4289940000, 24.3562300000, '广西壮族自治区柳州市城中区河东街道广西柳州高级中学', 109.4289940000, 24.3562300000, 109.4127310000, '柳州市城中区高新五路22号', 24.3621550000, '锦都华庭', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18577201716', 10, '2020-08-30 12:31:07', '2020-08-30 12:31:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2642, 1, NULL, NULL, 208, NULL, NULL, 'TAXI000006', 109.3833420000, 24.2691840000, '广西壮族自治区柳州市柳南区南环街道水木新华', 109.3833420000, 24.2691840000, 109.4837810000, '柳州市柳南区航四路19号9栋', 24.3098120000, '香港新城', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18277265480', 10, '2020-08-30 14:48:19', '2020-08-30 14:48:18', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2643, 1, NULL, NULL, 211, NULL, NULL, 'TAXI000007', 109.4108280000, 24.3043300000, '广西壮族自治区柳州市鱼峰区驾鹤街道银泰城(鱼峰路)', 109.4108280000, 24.3043300000, 109.4470110000, '柳州市柳南区鱼峰路32号', 24.2777970000, '天翼九龙印象', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17774857859', 10, '2020-08-30 17:03:33', '2020-08-30 17:03:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2644, 1, NULL, NULL, 213, NULL, NULL, 'TAXI000008', 109.3927760000, 24.3118010000, '广西壮族自治区柳州市柳南区南站街道柳南区太阳社区卫生服务中心', 109.3927760000, 24.3118010000, 109.4261180000, '柳州市柳南区鹅山路3区', 24.3345900000, '柳州投资大厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18172248490', 10, '2020-08-30 19:38:27', '2020-08-30 19:38:24', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2645, 1, NULL, NULL, 215, NULL, NULL, 'TAXI000009', 109.3960321723, 24.3326540799, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957850477, 24.3327761502, 109.3882920000, '在水一方(西堤路)', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13977291069', 10, '2020-08-30 20:41:00', '2020-08-31 06:30:00', NULL, NULL, NULL, NULL, NULL, 2, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2646, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000001', 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, 109.3882920000, '柳州市城中区滨江西路15栋17栋', 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-08-31 09:20:01', '2020-08-31 09:20:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2647, 1, NULL, NULL, 211, NULL, NULL, 'TAXI000002', 109.4444830000, 24.3228400000, '广西壮族自治区柳州市鱼峰区麒麟街道南亚名邸幼儿园', 109.4444830000, 24.3228400000, 109.4470110000, '柳州市鱼峰区文昌路63号', 24.2777970000, '天翼九龙印象', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17774857859', 10, '2020-08-31 09:38:11', '2020-08-31 09:38:12', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2648, 1, NULL, NULL, 219, 390, 551, 'TAXI000003', 109.3919310000, 24.3263990000, '广西壮族自治区柳州市柳南区河西街道磨滩路7号院', 109.3919310000, 24.3263990000, 109.4898610000, '湘桂铁路扩改中铁电气化局工程指挥部', 24.3185460000, '古亭山市场(公交站)', 109.4139113234, 24.3122763531, '广西壮族自治区柳州市城中区公园街道中山东路柳州市直机关二大院', '2020-09-02 06:38:28', 109.3793463611, 24.2793720319, '广西壮族自治区柳州市柳南区南环街道鹅溪路', '2020-09-02 06:52:13', 176748.00, 1, NULL, 18.10, 18.10, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '18176724543', 7, '2020-08-31 12:14:01', '2020-08-31 12:14:00', '2020-08-31 12:14:49', '2020-08-31 12:14:49', '2020-08-31 12:14:49', '2020-09-02 06:38:28', '2020-09-02 06:52:13', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2649, 1, NULL, NULL, 228, NULL, NULL, 'TAXI000001', 109.3405910000, 24.2641450000, '广西壮族自治区柳州市柳南区太阳村镇柳州市兴腾铸造配件厂', 109.3405910000, 24.2641450000, 109.4470910000, '柳州市柳南区文山路29号', 24.3377600000, '聚福苑10栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13059464518', 10, '2020-09-01 11:08:06', '2020-09-01 11:08:05', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2650, 1, NULL, NULL, 236, 390, 551, 'TAXI000001', 109.3761730000, 24.2752360000, '广西壮族自治区柳州市柳南区南环街道柳州市花城西饼有限公司', 109.3761730000, 24.2752360000, 109.4102120000, '柳州市竹新学校-日日升艺术幼儿园', 24.3206280000, '步步高广场(广场路)', 109.3750722107, 24.2741687788, '广西壮族自治区柳州市柳南区南环街道柳邕路350-3号柳州市竹新学校', '2020-09-02 07:24:05', 109.4115615420, 24.3200413336, '广西壮族自治区柳州市城中区城中街道广场路地王公馆', '2020-09-02 07:50:29', 11580.00, 2, NULL, 24.70, 24.70, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15278894074', 9, '2020-09-02 07:04:37', '2020-09-02 07:04:36', '2020-09-02 07:05:27', '2020-09-02 07:05:27', '2020-09-02 07:05:27', '2020-09-02 07:24:05', '2020-09-02 07:50:29', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2651, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000002', 109.3862080000, 24.2797370000, '广西壮族自治区柳州市柳南区银山街道航云路兆兴园(柳邕路)', 109.3862080000, 24.2797370000, 109.4088210000, '兆兴园', 24.3119660000, '青云菜市(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-02 08:04:38', '2020-09-02 08:04:37', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2652, 1, NULL, NULL, 238, NULL, NULL, 'TAXI000003', 109.4401977539, 24.3070627170, '广西壮族自治区柳州市鱼峰区箭盘山街道中国建设银行(东环路支行)金盛广场', 109.4398973911, 24.3071039804, 109.4090300000, '金盛广场', 24.3019620000, '柳州市房屋登记管理中心(北入口)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18507720528', 10, '2020-09-02 09:32:50', '2020-09-02 09:32:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2653, 1, NULL, NULL, 239, NULL, NULL, 'TAXI000004', 109.3655940000, 24.2667610000, '广西壮族自治区柳州市柳江区恒大雅苑', 109.3655940000, 24.2667610000, 109.3377820000, '柳州市柳江区柳邕路367号', 24.2558640000, '柳州市中医医院柳江区分院', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18778920921', 10, '2020-09-02 14:11:12', '2020-09-02 14:11:11', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2654, 1, NULL, NULL, 242, 583, NULL, 'TAXI000005', 109.4078471293, 24.3093652261, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4060807585, 24.3105581682, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4079766849, 24.3092783165, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-02 16:38:05', 109.4100105940, 24.3091448350, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:39:24', 195.00, 1, 2, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 6.00, 0, NULL, '13321624505', 8, '2020-09-02 16:35:37', '2020-09-02 16:35:00', '2020-09-02 16:35:52', '2020-09-02 16:35:52', '2020-09-02 16:35:52', '2020-09-02 16:38:05', '2020-09-02 16:39:24', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2655, 1, NULL, NULL, 242, 73, 642, 'TAXI000006', 109.4102104338, 24.3092030724, '广西壮族自治区柳州市城中区城中街道柳江路9栋曙光商住楼', 109.4060807585, 24.3105581682, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4101834769, 24.3091596778, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:43:59', 109.4101945964, 24.3091402366, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 16:44:07', 0.00, 1, 2, 1.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, 0, NULL, '13321624505', 8, '2020-09-02 16:43:29', '2020-09-02 16:43:00', '2020-09-02 16:43:32', '2020-09-02 16:43:43', '2020-09-02 16:43:56', '2020-09-02 16:43:59', '2020-09-02 16:44:07', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2656, 1, NULL, NULL, 242, 583, NULL, 'TAXI000007', 109.4102090235, 24.3092040124, '广西壮族自治区柳州市城中区城中街道柳江路9栋曙光商住楼', 109.4060807585, 24.3105581682, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4141111555, 24.3092938504, '广西壮族自治区柳州市城中区城中街道柳江路鸿府大厦', '2020-09-02 16:53:27', 109.4207272416, 24.3144558634, '广西壮族自治区柳州市城中区公园街道滨江东路金沙角', '2020-09-02 16:56:19', 1329.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13321624505', 8, '2020-09-02 16:47:28', '2020-09-02 16:47:00', '2020-09-02 16:47:33', '2020-09-02 16:47:33', '2020-09-02 16:47:33', '2020-09-02 16:53:27', '2020-09-02 16:56:19', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2657, 1, NULL, NULL, 242, 583, NULL, 'TAXI000008', 109.4211635022, 24.3150161992, '广西壮族自治区柳州市城中区公园街道滨江东路29号金沙角', 109.4211976883, 24.3151131711, 109.4138600000, '滨江西路11栋', 24.3184870000, '市中医院', 109.4176610410, 24.3107586538, '广西壮族自治区柳州市城中区水上街道文惠路观瀑广场', '2020-09-02 16:59:18', 109.4105773908, 24.3092113965, '广西壮族自治区柳州市城中区城中街道柳江路曙光商住楼', '2020-09-02 17:01:20', 1301.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13321624505', 8, '2020-09-02 16:57:50', '2020-09-02 16:57:00', '2020-09-02 16:57:56', '2020-09-02 16:57:56', '2020-09-02 16:57:56', '2020-09-02 16:59:18', '2020-09-02 17:01:20', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2658, 1, NULL, NULL, 184, 73, 642, 'TAXI000009', 109.4100545004, 24.3092073504, '广西壮族自治区柳州市城中区城中街道柳江路130号曙光商住楼', 109.4100209235, 24.3091636471, 109.4449990000, '柳江路与滨江西路交叉口', 24.3261600000, '柳州市人民医院', 109.4081022260, 24.3093780601, '广西壮族自治区柳州市城中区中南街道滨江西路5号', '2020-09-02 17:06:01', 109.4054410000, 24.3118350000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-03 13:58:54', 591.00, 1, 3, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '15907727138', 8, '2020-09-02 17:03:30', '2020-09-02 17:03:00', '2020-09-02 17:03:36', '2020-09-02 17:03:53', '2020-09-02 17:04:01', '2020-09-02 17:06:01', '2020-09-03 13:58:54', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2659, 1, NULL, NULL, 242, 924, NULL, 'TAXI000010', 109.4053700000, 24.3119610000, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4053700000, 24.3119610000, 109.4418850000, '柳州市中山西路幼儿园', 24.3296320000, '万达广场(柳州城中店)', 109.4054171449, 24.3118275298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:38:48', 109.4054171449, 24.3118275298, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:38:56', 0.00, 1, 1, 1.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, 0, NULL, '13321624505', 8, '2020-09-02 17:37:53', '2020-09-02 17:37:53', '2020-09-02 17:38:31', '2020-09-02 17:38:37', '2020-09-02 17:38:43', '2020-09-02 17:38:48', '2020-09-02 17:38:56', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2660, 1, NULL, NULL, 242, 924, NULL, 'TAXI000011', 109.4054110000, 24.3118660000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054102063, 24.3118671219, 109.4138600000, '滨江西路17栋', 24.3184870000, '市中医院', 109.4054321490, 24.3117785454, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:44:28', 109.4054981826, 24.3118345328, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-02 17:44:33', 0.00, 1, 2, 0.10, 0.10, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.10, 0, NULL, '13321624505', 8, '2020-09-02 17:43:33', '2020-09-02 17:43:00', '2020-09-02 17:43:35', '2020-09-02 17:43:39', '2020-09-02 17:43:57', '2020-09-02 17:44:28', '2020-09-02 17:44:33', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2661, 1, NULL, NULL, 228, NULL, NULL, 'TAXI000012', 109.4473780000, 24.3386780000, '广西壮族自治区柳州市城中区潭中街道聚福苑(学院路)', 109.4473780000, 24.3386780000, 109.4470910000, '柳州市城中区学院路36号1栋', 24.3377600000, '聚福苑10栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13059464518', 10, '2020-09-02 17:52:53', '2020-09-02 17:52:52', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2662, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000013', 109.4682490000, 24.2946100000, '广西壮族自治区柳州市鱼峰区阳和街道晨晨教育培训社湾辅导分部社湾中心校', 109.4682490000, 24.2946100000, 104.0701250000, '柳州市社湾中心校', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-09-02 18:02:51', '2020-09-02 18:02:51', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2663, 1, NULL, NULL, 242, 73, 642, 'TAXI000001', 109.4053971319, 24.3114227395, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4159526286, 24.3255021695, 109.4418850000, '柳州市中心', 24.3296320000, '万达广场(柳州城中店)', 109.4054758004, 24.3111777279, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-03 14:08:07', 109.4079266690, 24.3092949804, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-03 14:11:58', 733.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13321624505', 8, '2020-09-03 14:07:05', '2020-09-03 14:07:00', '2020-09-03 14:07:44', '2020-09-03 14:07:44', '2020-09-03 14:07:44', '2020-09-03 14:08:07', '2020-09-03 14:11:58', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2664, 1, NULL, NULL, 251, NULL, NULL, 'TAXI000001', 109.4390500000, 24.3705780000, '广西壮族自治区柳州市城中区河东街道东岸盛世花园', 109.4390500000, 24.3705780000, 109.4418850000, '柳州市城中区东环大道302号', 24.3296320000, '万达广场(柳州城中店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18589999268', 10, '2020-09-04 10:56:32', '2020-09-04 10:56:34', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2665, 1, NULL, NULL, 194, 203, 719, 'TAXI000002', 109.4054614258, 24.3119694010, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054711914, 24.3119637044, 109.4260630000, '中山西路幼儿园', 24.2642010000, '柳州市23度文化创意产业园', 109.4110276393, 24.3119271709, '广西壮族自治区柳州市城中区城中街道中山中路18号柳州商场', '2020-09-04 14:52:52', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15907721776', 10, '2020-09-04 14:52:36', '2020-09-04 14:52:00', '2020-09-04 14:52:52', '2020-09-04 14:52:52', '2020-09-04 14:52:52', '2020-09-04 14:52:52', NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_taxi` VALUES (2666, 1, NULL, NULL, 194, 203, 719, 'TAXI000003', 109.4259445530, 24.2641422526, '广西壮族自治区柳州市鱼峰区白莲街道柳州市23度文化创意产业园新坡小苑', 109.4259472656, 24.2641753472, 109.4052380000, '新坡小苑', 24.3118790000, 'OK充电站', 109.4259220459, 24.2641345607, '广西壮族自治区柳州市鱼峰区白莲街道柳州市23度文化创意产业园新坡小苑', '2020-09-04 15:29:05', 109.4052757262, 24.3114942865, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-04 15:50:04', 8935.00, 1, 1, 23.40, 23.40, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 23.40, 0, NULL, '15907721776', 9, '2020-09-04 15:27:56', '2020-09-04 15:27:00', '2020-09-04 15:28:01', '2020-09-04 15:28:01', '2020-09-04 15:28:01', '2020-09-04 15:29:05', '2020-09-04 15:50:04', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2667, 1, NULL, NULL, 194, 203, 719, 'TAXI000004', 109.4051836480, 24.3117401801, '广西壮族自治区柳州市城中区中南街道滨江西路', 109.4052503798, 24.3117803277, 109.3882920000, '中山西路幼儿园', 24.3078740000, '柳州站', 109.4051756927, 24.3117275428, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-04 15:57:07', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15907721776', 10, '2020-09-04 15:57:02', '2020-09-04 15:57:00', '2020-09-04 15:57:07', '2020-09-04 15:57:07', '2020-09-04 15:57:07', '2020-09-04 15:57:07', NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_taxi` VALUES (2668, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000005', 109.4054527452, 24.3119533963, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054446072, 24.3119593641, 109.4102120000, '中山西路幼儿园', 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-04 16:34:44', '2020-09-04 16:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2669, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000006', 109.4053884549, 24.3119848633, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4054446072, 24.3119593641, 109.4102120000, '中山西路幼儿园', 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-04 16:36:19', '2020-09-04 16:36:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2670, 1, NULL, NULL, 258, NULL, NULL, 'TAXI000007', 109.4564740000, 24.3191340000, '广西壮族自治区柳州市城中区静兰街道静兰路9号华展·华园', 109.4564740000, 24.3191340000, 109.4141880000, '柳州市城中区静兰路东一巷36-7号', 24.2902720000, '柳州腾誉汽车养护中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13667808997', 10, '2020-09-04 18:32:05', '2020-09-04 18:32:04', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2671, 1, NULL, NULL, 258, NULL, NULL, 'TAXI000008', 109.4564740000, 24.3191340000, '广西壮族自治区柳州市城中区静兰街道静兰路9号华展·华园', 109.4564740000, 24.3191340000, 109.4141880000, '柳州市城中区静兰路东一巷36-7号', 24.2902720000, '柳州腾誉汽车养护中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13667808997', 10, '2020-09-04 18:33:06', '2020-09-04 18:33:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2672, 1, NULL, NULL, 267, NULL, NULL, 'TAXI000001', 109.3637780000, 24.3127970000, '广西壮族自治区柳州市柳南区河西街道柳工生活南区', 109.3637780000, 24.3127970000, 109.3618700000, '柳州市柳南区和平路161号', 24.3145870000, '柳工生活南区102栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15877280926', 10, '2020-09-05 08:35:46', '2020-09-05 08:35:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2673, 1, NULL, NULL, 267, NULL, NULL, 'TAXI000002', 109.3637780000, 24.3127970000, '广西壮族自治区柳州市柳南区河西街道柳工生活南区', 109.3637780000, 24.3127970000, 109.3618700000, '柳州市柳南区和平路161号', 24.3145870000, '柳工生活南区102栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15877280926', 10, '2020-09-05 08:43:50', '2020-09-05 08:43:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2674, 1, NULL, NULL, 269, 54, 704, 'TAXI000003', 109.3778260000, 24.3191490000, '广西壮族自治区柳州市柳南区河西街道福柳宏都', 109.3778260000, 24.3191490000, 109.4357970000, '柳州市柳南区龙屯路184号', 24.3497950000, '金色世纪', 109.3796658605, 24.3191101298, '广西壮族自治区柳州市柳南区河西街道宏都路吉祥苑(宏都路)', '2020-09-05 09:15:22', 109.4373506633, 24.3480298473, '广西壮族自治区柳州市城中区河东街道高新三路金色世纪', '2020-09-05 09:35:30', 12337.00, 2, NULL, 25.10, 25.10, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13877253131', 9, '2020-09-05 09:07:49', '2020-09-05 09:07:48', '2020-09-05 09:08:01', '2020-09-05 09:08:01', '2020-09-05 09:08:01', '2020-09-05 09:15:22', '2020-09-05 09:35:30', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2675, 1, NULL, NULL, 207, NULL, NULL, 'TAXI000004', 109.4144150000, 24.3619420000, '广西壮族自治区柳州市柳北区柳长街道二棉前生活区', 109.4144150000, 24.3619420000, 109.4332050000, '柳州市柳北区胜利东路东4号', 24.3523640000, '柳州市第十二中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18577201716', 1, '2020-09-05 09:52:07', '2020-09-05 09:52:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2676, 1, NULL, NULL, 269, 323, 675, 'TAXI000005', 109.4357970000, 24.3497950000, '广西壮族自治区柳州市城中区河东街道金色世纪', 109.4357970000, 24.3497950000, 109.3778260000, '柳州市城中区东环大道145-21号', 24.3191490000, '福柳宏都', 109.4372840713, 24.3480299376, '广西壮族自治区柳州市城中区河东街道高新三路金色世纪', '2020-09-05 11:03:33', 109.3775958507, 24.3196076864, '广西壮族自治区柳州市柳南区河西街道福柳宏都', '2020-09-05 11:23:39', 14349.00, 2, NULL, 25.90, 25.90, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13877253131', 9, '2020-09-05 10:46:37', '2020-09-05 10:46:37', '2020-09-05 10:48:47', '2020-09-05 10:48:47', '2020-09-05 10:48:47', '2020-09-05 11:03:33', '2020-09-05 11:23:39', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2677, 1, NULL, NULL, 271, NULL, NULL, 'TAXI000006', 109.4655962457, 24.2729739041, '广西壮族自治区柳州市鱼峰区阳和街道阳和大道89号恒大御景湾', 109.4655585395, 24.2730262587, 109.4098720000, '恒大御景湾', 24.3922790000, '宏桂·香兰花园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15177753267', 10, '2020-09-05 11:22:35', '2020-09-05 11:22:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2678, 1, NULL, NULL, 271, NULL, NULL, 'TAXI000007', 109.4655523003, 24.2730463325, '广西壮族自治区柳州市鱼峰区阳和街道阳和大道89号恒大御景湾', 109.4655585395, 24.2730262587, 109.4098720000, '恒大御景湾', 24.3922790000, '宏桂·香兰花园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15177753267', 1, '2020-09-05 11:25:23', '2020-09-05 11:25:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2679, 1, NULL, NULL, 272, 323, 675, 'TAXI000008', 109.4617480000, 24.3098260000, '广西壮族自治区柳州市鱼峰区麒麟街道柳州市华星行汽车销售服务有限公司', 109.4617480000, 24.3098260000, 109.4116750000, '柳州市鱼峰区西江路80号', 24.3122660000, '柳州宾馆', 109.4610758464, 24.3103803972, '广西壮族自治区柳州市鱼峰区麒麟街道西江路广汽丰田柳州华翔西江路店', '2020-09-05 13:38:38', 109.4110109578, 24.3117272337, '广西壮族自治区柳州市城中区城中街道龙城路柳州商场', '2020-09-05 13:55:51', 8387.00, 1, NULL, 17.10, 17.10, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '13507720175', 7, '2020-09-05 13:31:33', '2020-09-05 13:31:32', '2020-09-05 13:31:48', '2020-09-05 13:31:48', '2020-09-05 13:31:48', '2020-09-05 13:38:38', '2020-09-05 13:55:51', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2680, 1, NULL, NULL, 274, NULL, NULL, 'TAXI000009', 109.3842520000, 24.2850920000, '广西壮族自治区柳州市柳南区柳石街道柳邕装饰建材市场', 109.3842520000, 24.2850920000, 109.3974910000, '柳州市柳南区柳邕路224-a-22号', 24.2784560000, '中国建设银行24小时自助银行(航二路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13737275888', 10, '2020-09-05 14:57:49', '2020-09-05 14:57:48', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2681, 1, NULL, NULL, 274, NULL, NULL, 'TAXI000010', 109.3842520000, 24.2850920000, '广西壮族自治区柳州市柳南区柳石街道柳邕装饰建材市场', 109.3842520000, 24.2850920000, 109.3974910000, '柳州市柳南区柳邕路224-a-22号', 24.2784560000, '中国建设银行24小时自助银行(航二路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13737275888', 10, '2020-09-05 15:00:00', '2020-09-05 15:00:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2682, 1, NULL, NULL, 276, 324, 758, 'TAXI000011', 109.3957030000, 24.3350220000, '广西壮族自治区柳州市柳南区南站街道潭中西路3号柳州市疾病预防控制中心', 109.3957030000, 24.3350220000, 109.3552340000, '柳州市柳南区潭中西路6号', 24.3449130000, '河西桃花源', 109.4393951951, 24.2957255319, '广西壮族自治区柳州市鱼峰区麒麟街道燎原路得利宾馆(燎原路店)', '2020-09-05 20:08:03', 109.4290748555, 24.3462400781, '广西壮族自治区柳州市城中区潭中街道高新三路', '2020-09-05 20:28:25', 60123.00, 1, NULL, 18.30, 18.30, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '13877261338', 7, '2020-09-05 17:11:38', '2020-09-05 17:11:35', '2020-09-05 17:12:05', '2020-09-05 17:12:05', '2020-09-05 17:12:05', '2020-09-05 20:08:03', '2020-09-05 20:28:25', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2683, 1, NULL, NULL, 278, 334, 791, 'TAXI000012', 109.4106470000, 24.3210220000, '广西壮族自治区柳州市柳北区解放街道地王公馆步步高广场(广场路)', 109.4106470000, 24.3210220000, 109.4171660000, '柳州市柳北区八一路19门', 24.3822520000, '柳州钢一中学(凤凰岭校区)', 109.4130310894, 24.3659617191, '广西壮族自治区柳州市柳北区柳长街道健民路碧丽星城', '2020-09-05 22:41:06', 109.3899961494, 24.3071062689, '广西壮族自治区柳州市柳南区南站街道飞鹅路柳州站东广场', '2020-09-05 22:53:53', 114804.00, 1, NULL, 24.30, 24.30, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '13597030858', 7, '2020-09-05 17:50:56', '2020-09-05 17:50:54', '2020-09-05 17:51:08', '2020-09-05 17:51:08', '2020-09-05 17:51:08', '2020-09-05 22:41:06', '2020-09-05 22:53:53', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2684, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000013', 104.0555240000, 30.5345320000, '四川省成都市武侯区桂溪街道嘉祥瑞庭南城', 104.0555240000, 30.5345320000, 104.0723840000, '成都市武侯区益州大道中段1912号', 30.5130950000, '城南晶座', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-09-05 18:06:09', '2020-09-05 18:06:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2685, 1, NULL, NULL, 279, NULL, NULL, 'TAXI000014', 109.3972970000, 24.3753600000, '广西壮族自治区柳州市柳北区钢城街道广西柳州钢铁集团有限公司办公大楼', 109.3972970000, 24.3753600000, 109.3965700000, '柳州市柳北区北雀路513号', 24.3346580000, '柳州市疾病预防控制中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18276809035', 10, '2020-09-05 18:20:17', '2020-09-05 18:20:16', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2686, 1, NULL, NULL, 283, NULL, NULL, 'TAXI000015', 109.4795870000, 24.3267760000, '广西壮族自治区柳州市城中区静兰街道柳州莲花山庄酒店', 109.4795870000, 24.3267760000, 109.4795870000, '柳州市城中区桂柳路80号', 24.3267760000, '柳州莲花山庄酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18276724507', 10, '2020-09-05 20:05:44', '2020-09-05 20:05:43', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2687, 1, NULL, NULL, 283, NULL, NULL, 'TAXI000016', 109.4774630000, 24.3297960000, '广西壮族自治区柳州市城中区静兰街道桂柳路柳州莲花山庄酒店', 109.4795870000, 24.3267760000, 109.5584800000, '兰家', 24.3818240000, '翔云锦苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18276724507', 10, '2020-09-05 20:06:50', '2020-09-05 20:06:49', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2688, 1, NULL, NULL, 285, NULL, NULL, 'TAXI000017', 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, 109.4115070000, '柳州市鱼峰区春苑路25号', 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18154758996', 10, '2020-09-05 21:12:11', '2020-09-05 21:12:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2689, 1, NULL, NULL, 285, NULL, NULL, 'TAXI000018', 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, 109.4115070000, '柳州市鱼峰区春苑路25号', 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18154758996', 10, '2020-09-05 21:18:03', '2020-09-05 21:18:02', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2690, 1, NULL, NULL, 285, NULL, NULL, 'TAXI000019', 109.4819480000, 24.3110850000, '广西壮族自治区柳州市鱼峰区阳和街道星星幼儿园(春苑路)舞之韵幼儿园', 109.4819480000, 24.3110850000, 109.4115070000, '柳州市鱼峰区春苑路27号', 24.3142650000, '星河大厦(公园路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18154758996', 10, '2020-09-05 21:21:11', '2020-09-05 21:21:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2691, 1, NULL, NULL, 288, 456, 499, 'TAXI000020', 109.4680770000, 24.3261100000, '广西壮族自治区柳州市城中区静兰街道桂柳路38号华远·岚山山水1号', 109.4680770000, 24.3261100000, 109.4265070000, '柳州市城中区桂柳路62号', 24.3401580000, '阳光100经典时代', 109.4670300668, 24.3266115507, '广西壮族自治区柳州市城中区静兰街道桂柳路华远·岚山山水1号', '2020-09-05 23:25:09', 109.4258932798, 24.3415443028, '广西壮族自治区柳州市城中区潭中街道高新一路阳光100经典时代', '2020-09-05 23:37:09', 13109.00, 2, NULL, 18.40, 18.40, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '18978029828', 9, '2020-09-05 23:11:15', '2020-09-05 23:11:14', '2020-09-05 23:11:59', '2020-09-05 23:11:59', '2020-09-05 23:11:59', '2020-09-05 23:25:09', '2020-09-05 23:37:09', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2692, 1, NULL, NULL, 289, NULL, NULL, 'TAXI000021', 109.3372500000, 24.2593000000, '广西壮族自治区柳州市柳江区拉堡镇柳江区人力资源和社会保障局', 109.3372500000, 24.2593000000, 109.3822020000, '柳州市柳江区瑞龙路125号', 24.2518750000, '合景·云溪四季销售中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18276221693', 10, '2020-09-05 23:11:32', '2020-09-05 23:11:32', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2693, 1, NULL, NULL, 291, NULL, NULL, 'TAXI000001', 109.3496580000, 24.2588540000, '广西壮族自治区柳州市柳江区拉堡镇金丽苑北区', 109.3496580000, 24.2588540000, 109.3882920000, '柳州市柳江区柳堡路600号', 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13977240801', 10, '2020-09-06 05:27:14', '2020-09-06 05:27:14', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2694, 1, NULL, NULL, 291, 801, 637, 'TAXI000002', 109.3496800000, 24.2601860000, '广西壮族自治区柳州市柳江区拉堡镇柳江区开发区第一工业园区镂尚家居城', 109.3496800000, 24.2601860000, 109.3882920000, '柳州市柳江区柳堡路743号', 24.3078740000, '柳州火车站', 109.3238024421, 24.2547873535, '广西壮族自治区柳州市柳江区拉堡镇马平路', '2020-09-06 05:33:49', NULL, NULL, NULL, NULL, 7691.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '13977240801', 10, '2020-09-06 05:33:09', '2020-09-06 05:33:09', '2020-09-06 05:33:49', '2020-09-06 05:33:49', '2020-09-06 05:33:49', '2020-09-06 05:33:49', NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, '', '');
+INSERT INTO `t_order_taxi` VALUES (2695, 1, NULL, NULL, 296, NULL, NULL, 'TAXI000001', 109.4357970000, 24.3497950000, '广西壮族自治区柳州市城中区河东街道金色世纪', 109.4357970000, 24.3497950000, 109.4442540000, '柳州市城中区东环大道145--10号', 24.3272380000, '柳州市人民医院第三住院楼', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877296096', 10, '2020-09-07 07:40:15', '2020-09-07 07:40:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2696, 1, NULL, NULL, 300, NULL, NULL, 'TAXI000002', 109.4253480000, 24.3429810000, '广西壮族自治区柳州市城中区潭中街道海关路西一巷8号高新明珠', 109.4253480000, 24.3429810000, 109.4450600000, '柳州市城中区海关路西一巷8号', 24.3245830000, '柳州市人民医院门诊', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15977281576', 10, '2020-09-07 08:07:26', '2020-09-07 08:07:25', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2697, 1, NULL, NULL, 302, NULL, NULL, 'TAXI000003', 109.4204100000, 24.3012250000, '广西壮族自治区柳州市鱼峰区荣军街道柳州男健医院', 109.4204100000, 24.3012250000, 109.4044330000, '柳州市鱼峰区荣军路125号', 24.3400140000, '柳州银行(柳北支行)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13687737839', 10, '2020-09-07 08:27:56', '2020-09-07 08:27:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2698, 1, NULL, NULL, 302, 215, 705, 'TAXI000004', 109.4204100000, 24.3012250000, '广西壮族自治区柳州市鱼峰区荣军街道柳州男健医院', 109.4204100000, 24.3012250000, 109.4044330000, '柳州市鱼峰区荣军路125号', 24.3400140000, '柳州银行(柳北支行)', 109.4208764322, 24.3014596927, '广西壮族自治区柳州市鱼峰区荣军街道荣军路柳州男健医院', '2020-09-07 08:35:56', 109.4045937343, 24.3399693551, '广西壮族自治区柳州市柳北区雅儒街道北雀路福江小苑', '2020-09-07 08:56:21', 6169.00, 2, NULL, 17.10, 17.10, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13687737839', 9, '2020-09-07 08:29:14', '2020-09-07 08:29:14', '2020-09-07 08:31:52', '2020-09-07 08:31:52', '2020-09-07 08:31:52', '2020-09-07 08:35:56', '2020-09-07 08:56:21', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2699, 1, NULL, NULL, 304, NULL, NULL, 'TAXI000005', 109.3400190000, 24.3618570000, '广西壮族自治区柳州市柳南区太阳村镇浩源机动车驾驶员训考服务有限公司', 109.3400190000, 24.3618570000, 109.3836560000, '柳州市柳南区', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18978075163', 10, '2020-09-07 10:39:06', '2020-09-07 10:39:05', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2700, 1, NULL, NULL, 304, NULL, NULL, 'TAXI000006', 109.3392920000, 24.3623000000, '广西壮族自治区柳州市柳南区太阳村镇浩源机动车考试场浩源机动车驾驶员训考服务有限公司', 109.3392920000, 24.3623000000, 109.3836560000, '和平驾校浩源训考中心', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18978075163', 1, '2020-09-07 10:39:21', '2020-09-07 10:39:20', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2701, 1, NULL, NULL, 306, NULL, NULL, 'TAXI000007', 109.4106470000, 24.3210220000, '广西壮族自治区柳州市柳北区解放街道地王公馆步步高广场(广场路)', 109.4106470000, 24.3210220000, 109.4124830000, '柳州市柳北区八一路90号', 24.3051190000, '宜尚酒店(柳州江滨公园店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18897720762', 10, '2020-09-07 13:51:47', '2020-09-07 13:51:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2702, 1, NULL, NULL, 308, 928, NULL, 'TAXI000008', 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, 109.3881770000, '柳州市城中区滨江西路15栋17栋', 24.2777290000, '柳州市航鹰中学', 109.3916314331, 24.3086402357, '广西壮族自治区柳州市柳南区南站街道鹅山路站前·馨印象', '2020-09-07 14:42:38', NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15907721890', 10, '2020-09-07 14:42:00', '2020-09-07 14:41:59', '2020-09-07 14:42:38', '2020-09-07 14:42:38', '2020-09-07 14:42:38', '2020-09-07 14:42:38', NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2703, 1, NULL, NULL, 308, NULL, NULL, 'TAXI000009', 109.4063430000, 24.3123770000, '广西壮族自治区柳州市城中区中南街道中山西路幼儿园', 109.4063430000, 24.3123770000, 109.3881770000, '柳州市城中区滨江西路15栋17栋', 24.2777290000, '柳州市航鹰中学', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721890', 10, '2020-09-07 14:45:08', '2020-09-07 14:45:07', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2704, 1, NULL, NULL, 287, NULL, NULL, 'TAXI000010', 109.4316370985, 24.3631637912, '广西壮族自治区柳州市城中区河东街道桂中大道二桥双语艺术幼儿园', 109.4316343859, 24.3631561957, 109.4327850000, '二桥双语艺术幼儿园', 24.3355860000, '龙城·印象KTV', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18974559352', 10, '2020-09-07 18:54:45', '2020-09-07 18:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2705, 1, NULL, NULL, 319, NULL, NULL, 'TAXI000001', 109.3922440000, 24.3344890000, '广西壮族自治区柳州市柳南区河西街道磨滩东苑', 109.3922440000, 24.3344890000, 109.3882920000, '柳州市柳南区磨滩路10号', 24.3078740000, '柳州火车站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13367622539', 10, '2020-09-08 07:31:54', '2020-09-08 07:31:54', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2706, 1, NULL, NULL, 245, 73, 642, 'TAXI000002', 109.3988667466, 24.3617546342, '广西壮族自治区柳州市柳北区胜利街道胜利西路', 109.3988924385, 24.3617353985, 109.4449990000, '北雀路与胜利西路交叉口', 24.3261600000, '柳州市人民医院', 109.4018434753, 24.3621796335, '广西壮族自治区柳州市柳北区雀儿山街道胜利东路柳州市柳北区人民政府', '2020-09-08 15:09:52', 109.4291090342, 24.3610361139, '广西壮族自治区柳州市城中区河东街道河东路9号', '2020-09-08 15:15:16', 3020.00, 2, NULL, 9.50, 9.50, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '18178803160', 9, '2020-09-08 15:08:37', '2020-09-08 15:08:00', '2020-09-08 15:08:43', '2020-09-08 15:08:43', '2020-09-08 15:08:43', '2020-09-08 15:09:52', '2020-09-08 15:15:16', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2707, 1, NULL, NULL, 324, NULL, NULL, 'TAXI000003', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 119.6653420000, '柳州市柳南区和平路68号', 32.1821530000, '英皇酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13367729581', 10, '2020-09-08 16:32:01', '2020-09-08 16:32:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2708, 1, NULL, NULL, 329, NULL, NULL, 'TAXI000004', 109.4320200000, 24.3265000000, '广西壮族自治区柳州市城中区潭中街道瑞安路乌托邦音乐城', 109.4320200000, 24.3265000000, 109.4467980000, '阳光100城市广场', 24.3046070000, '柳州市鱼峰区欣欣幼儿园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13481232100', 10, '2020-09-08 20:20:24', '2020-09-08 20:20:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2709, 1, NULL, NULL, 329, NULL, NULL, 'TAXI000005', 109.4304050000, 24.3295440000, '广西壮族自治区柳州市城中区潭中街道兆安现代城(桂中大道)', 109.4304050000, 24.3295440000, 109.4467980000, '柳州市城中区桂中大道8号', 24.3046070000, '柳州市鱼峰区欣欣幼儿园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13481232100', 10, '2020-09-08 20:20:51', '2020-09-08 20:20:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2710, 1, NULL, NULL, 330, NULL, NULL, 'TAXI000001', 109.4470110000, 24.2777970000, '广西壮族自治区柳州市鱼峰区五里亭街道天翼九龙印象', 109.4470110000, 24.2777970000, 109.3870000000, '柳州市鱼峰区龙泉路5号', 24.3091360000, '柳州站(西进站口)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, '何', '18277211260', 1, '2020-09-09 02:14:14', '2020-09-09 05:35:00', NULL, NULL, NULL, NULL, NULL, 2, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2711, 1, NULL, NULL, 245, 179, 645, 'TAXI000002', 109.4054280000, 24.3118060000, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4054276406, 24.3118072355, 109.4449990000, '滨江西路17栋', 24.3261600000, '柳州市人民医院', 109.4107105752, 24.3062122802, '广西壮族自治区柳州市鱼峰区天马街道柳江大桥江滨公园', '2020-09-09 10:08:24', NULL, NULL, NULL, NULL, 269.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '18178803160', 10, '2020-09-09 10:08:14', '2020-09-09 10:08:00', '2020-09-09 10:08:24', '2020-09-09 10:08:24', '2020-09-09 10:08:24', '2020-09-09 10:08:24', NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2712, 1, NULL, NULL, 245, 932, NULL, 'TAXI000003', 109.4054050022, 24.3119203016, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', 109.4053982205, 24.3119173177, 109.3869410000, '中山西路幼儿园', 24.3093740000, '柳州火车站西广场', 109.4054371585, 24.3119025086, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-09 10:12:01', 109.4054761752, 24.3118795180, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-09 10:12:08', 0.00, 1, 3, 0.01, 0.01, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 0.01, 0, NULL, '18178803160', 8, '2020-09-09 10:10:27', '2020-09-09 10:10:00', '2020-09-09 10:11:50', '2020-09-09 10:11:57', '2020-09-09 10:11:59', '2020-09-09 10:12:01', '2020-09-09 10:12:08', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2713, 1, NULL, NULL, 334, NULL, NULL, 'TAXI000004', 109.4134380000, 24.3136600000, '广西壮族自治区柳州市城中区公园街道中环大厦(公园路)', 109.4134380000, 24.3136600000, 109.3886260000, '柳州市城中区公园路39-1号', 24.3233690000, '柳州市家居建材博览中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877277700', 10, '2020-09-09 12:11:45', '2020-09-09 12:11:45', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2714, 1, NULL, NULL, 338, NULL, NULL, 'TAXI000005', 109.4076750000, 24.2990540000, '广西壮族自治区柳州市柳南区柳石街道鱼峰山小学', 109.4076750000, 24.2990540000, 109.4309460000, '柳州市柳南区文笔路3-3号', 24.3690630000, '柳州市卓景电子有限公司', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18077225361', 10, '2020-09-09 17:28:12', '2020-09-09 17:28:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2715, 1, NULL, NULL, 340, NULL, NULL, 'TAXI000006', 109.3957940000, 24.3320400000, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957940000, 24.3320400000, 109.3882920000, '柳州市柳南区雅儒路218号', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15347727656', 10, '2020-09-09 23:38:25', '2020-09-10 08:50:00', NULL, NULL, NULL, NULL, NULL, 2, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2716, 1, NULL, NULL, 342, NULL, NULL, 'TAXI000001', 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, 109.4503600000, '柳州市柳北区北雀路66号', 24.3193260000, '万象二路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17776447894', 10, '2020-09-10 08:44:23', '2020-09-10 08:44:22', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2717, 1, NULL, NULL, 342, NULL, NULL, 'TAXI000002', 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, 109.4503600000, '柳州市柳北区北雀路66号', 24.3193260000, '万象二路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17776447894', 10, '2020-09-10 08:46:55', '2020-09-10 08:46:55', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2718, 1, NULL, NULL, 342, 140, 649, 'TAXI000003', 109.3940530000, 24.3695100000, '广西壮族自治区柳州市柳北区雀儿山街道前锋路三区', 109.3940530000, 24.3695100000, 109.4503600000, '柳州市柳北区北雀路66号', 24.3193260000, '万象二路', 109.4027773451, 24.3615799747, '广西壮族自治区柳州市柳北区胜利街道胜利东路胜利小区1村', '2020-09-10 11:31:22', 109.4145124095, 24.3304708520, '广西壮族自治区柳州市柳北区解放街道三中路柳州美丽焦点医疗美容', '2020-09-10 11:42:40', 62765.00, 1, 1, 12.90, 12.90, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 12.90, 0, NULL, '17776447894', 8, '2020-09-10 08:49:52', '2020-09-10 08:49:52', '2020-09-10 08:50:22', '2020-09-10 08:50:22', '2020-09-10 08:50:22', '2020-09-10 11:31:22', '2020-09-10 11:42:40', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2719, 1, NULL, NULL, 340, NULL, NULL, 'TAXI000004', 109.3957940000, 24.3320400000, '广西壮族自治区柳州市柳南区南站街道在水一方(西堤路)', 109.3957940000, 24.3320400000, 109.3882920000, '柳州市柳南区雅儒路218号', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15347727656', 10, '2020-09-10 08:52:45', '2020-09-10 08:52:48', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2720, 1, NULL, NULL, 334, 754, NULL, 'TAXI000005', 109.3979810000, 24.2991050000, '广西壮族自治区柳州市柳南区柳石街道桂裕小苑', 109.3979810000, 24.2991050000, 109.4135790000, '柳州市柳南区城站路南七巷25号', 24.3138320000, '中环酒店', 109.3977200734, 24.2988297081, '广西壮族自治区柳州市柳南区柳石街道城站路南七巷桂裕小苑', '2020-09-10 11:23:40', 109.4130948081, 24.3157255675, '广西壮族自治区柳州市城中区公园街道解放南路振亿大厦', '2020-09-10 11:29:51', 4574.00, 1, 1, 9.50, 9.50, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 9.50, 0, NULL, '13877277700', 8, '2020-09-10 11:14:06', '2020-09-10 11:14:05', '2020-09-10 11:14:14', '2020-09-10 11:14:14', '2020-09-10 11:14:14', '2020-09-10 11:23:40', '2020-09-10 11:29:51', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2721, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000006', 109.4052197266, 24.3119395616, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4051844618, 24.3120570204, 109.3882920000, '中山西路幼儿园', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-10 11:33:17', '2020-09-10 11:33:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2722, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000007', 109.4051557075, 24.3118934462, '广西壮族自治区柳州市城中区中南街道滨江西路16号', 109.4051844618, 24.3120570204, 109.3882920000, '中山西路幼儿园', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-10 11:34:34', '2020-09-10 11:34:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2723, 1, NULL, NULL, 344, 906, 944, 'TAXI000008', 104.0557800410, 30.5857627062, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557926973, 30.5856734176, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0558160000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:13:34', 104.0558110000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:13:36', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15946464664', 8, '2020-09-10 15:07:45', '2020-09-10 15:07:00', '2020-09-10 15:07:50', NULL, NULL, '2020-09-10 15:13:34', '2020-09-10 15:13:36', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2724, 1, NULL, NULL, 344, 906, 944, 'TAXI000009', 104.0561168543, 30.5856052969, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557926973, 30.5856734176, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0557800408, 30.5857587047, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:19:15', 104.0557800408, 30.5857587047, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:19:17', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15946464664', 8, '2020-09-10 15:15:14', '2020-09-10 15:15:00', '2020-09-10 15:15:55', '2020-09-10 15:15:55', '2020-09-10 15:15:55', '2020-09-10 15:19:15', '2020-09-10 15:19:17', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2725, 1, NULL, NULL, 344, NULL, NULL, 'TAXI000010', 104.0557970000, 30.5856730000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0665403087, 30.5722697189, 104.0692040000, '成都市', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15946464664', 10, '2020-09-10 15:21:01', '2020-09-10 15:20:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2726, 1, NULL, NULL, 344, NULL, NULL, 'TAXI000011', 104.0557770345, 30.5857797068, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0665403087, 30.5722697189, 104.0692040000, '成都市', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15946464664', 10, '2020-09-10 15:21:57', '2020-09-10 15:21:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2727, 1, NULL, NULL, 344, NULL, NULL, 'TAXI000012', 104.0557740265, 30.5857666960, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0692040000, 30.5462030000, 104.0658610000, '天府三街(地铁站)', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15946464664', 10, '2020-09-10 15:22:20', '2020-09-10 15:22:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2728, 1, NULL, NULL, 344, NULL, NULL, 'TAXI000013', 104.0557940745, 30.5857467273, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557980618, 30.5856711086, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15946464664', 10, '2020-09-10 15:23:14', '2020-09-10 15:23:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2729, 1, NULL, NULL, 344, 906, 944, 'TAXI000014', 104.0557800410, 30.5857617058, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557980618, 30.5856711086, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0558130000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:23:59', 104.0558130000, 30.5856670000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 15:24:02', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15946464664', 8, '2020-09-10 15:23:35', '2020-09-10 15:23:00', '2020-09-10 15:23:39', '2020-09-10 15:23:39', '2020-09-10 15:23:39', '2020-09-10 15:23:59', '2020-09-10 15:24:02', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2730, 1, NULL, NULL, 344, 906, 944, 'TAXI000015', 104.0557870580, 30.5857587183, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557658753, 30.5856780357, 104.0658610000, '天府新谷(府城大道西段)11栋', 30.6574010000, '天府广场', 104.0562210000, 30.5854930000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', '2020-09-10 15:50:55', 104.0562210000, 30.5854930000, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', '2020-09-10 15:50:57', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15946464664', 8, '2020-09-10 15:50:32', '2020-09-10 15:50:00', '2020-09-10 15:50:35', '2020-09-10 15:50:35', '2020-09-10 15:50:35', '2020-09-10 15:50:55', '2020-09-10 15:50:57', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2731, 1, NULL, NULL, 242, 73, 642, 'TAXI000016', 109.4076370000, 24.3113080000, '广西壮族自治区柳州市城中区中南街道青云路35号文惠小学', 109.4076370000, 24.3113080000, 109.4507010000, '柳州市城中区滨江西路12号', 24.3222850000, '华润万象城', 109.4071597431, 24.3095615888, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-10 16:48:51', 109.4191130131, 24.3487970697, '广西壮族自治区柳州市柳北区锦绣街道滨江东路', '2020-09-10 16:59:13', 5769.00, 1, 1, 14.80, 14.80, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 14.80, 0, NULL, '13321624505', 8, '2020-09-10 16:48:02', '2020-09-10 16:48:00', '2020-09-10 16:48:07', '2020-09-10 16:48:07', '2020-09-10 16:48:07', '2020-09-10 16:48:51', '2020-09-10 16:59:13', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2732, 1, NULL, NULL, 242, NULL, NULL, 'TAXI000017', 109.4192070000, 24.3520930000, '广西壮族自治区柳州市柳北区锦绣街道精诚小汽车出租有限责任公司工会委员会', 109.4192070000, 24.3520930000, 109.4507010000, '柳州市柳北区滨江东路171号', 24.3222850000, '华润万象城', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13321624505', 10, '2020-09-10 17:01:18', '2020-09-10 17:01:16', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2733, 1, NULL, NULL, 242, 73, 642, 'TAXI000018', 109.4196770000, 24.3560340000, '广西壮族自治区柳州市柳北区锦绣街道柳州市防洪排涝工程管理处', 109.4196770000, 24.3560340000, 109.4507010000, '柳州市柳北区长风路1号之2', 24.3222850000, '华润万象城', 109.4199132315, 24.3557614265, '广西壮族自治区柳州市柳北区锦绣街道滨江东路柳州市防洪排涝工程管理处', '2020-09-10 17:04:40', 109.4052924016, 24.3115109494, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-10 17:18:49', 6590.00, 1, NULL, 16.70, 16.70, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '13321624505', 7, '2020-09-10 17:04:27', '2020-09-10 17:04:25', '2020-09-10 17:04:32', '2020-09-10 17:04:32', '2020-09-10 17:04:32', '2020-09-10 17:04:40', '2020-09-10 17:18:49', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2734, 1, NULL, NULL, 345, NULL, NULL, 'TAXI000019', 109.3728640000, 24.3253590000, '广西壮族自治区柳州市柳南区河西街道五菱大厦(河西路)', 109.3728640000, 24.3253590000, 109.3836560000, '柳州市柳南区河西路42号', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17754572457', 10, '2020-09-10 17:14:18', '2020-09-10 17:14:16', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2735, 1, NULL, NULL, 345, NULL, NULL, 'TAXI000020', 109.3728640000, 24.3253590000, '广西壮族自治区柳州市柳南区河西街道五菱大厦(河西路)', 109.3728640000, 24.3253590000, 109.3836560000, '柳州市柳南区河西路42号', 24.3376050000, '河西小区(育才路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17754572457', 10, '2020-09-10 17:15:35', '2020-09-10 17:15:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2736, 1, NULL, NULL, 344, 906, 944, 'TAXI000021', 104.0557770343, 30.5857767057, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557082078, 30.5857022805, 104.0692040000, '天府新谷(府城大道西段)11栋', 30.5462030000, '天府三街(地铁站)', 104.0557690143, 30.5857676867, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:29:35', 104.0557690143, 30.5857676867, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:29:37', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15946464664', 8, '2020-09-10 18:28:57', '2020-09-10 18:28:00', '2020-09-10 18:29:00', '2020-09-10 18:29:00', '2020-09-10 18:29:00', '2020-09-10 18:29:35', '2020-09-10 18:29:37', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2737, 1, NULL, NULL, 344, 906, 944, 'TAXI000022', 104.0557980848, 30.5857567389, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557082078, 30.5857022805, 104.0658610000, '天府新谷(府城大道西段)11栋', 30.6574010000, '天府广场', 104.0557770343, 30.5857757053, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:36:27', 104.0557770343, 30.5857757053, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-10 18:36:29', 0.00, 2, NULL, 10.00, 10.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15946464664', 8, '2020-09-10 18:30:45', '2020-09-10 18:30:00', '2020-09-10 18:30:48', '2020-09-10 18:30:48', '2020-09-10 18:30:48', '2020-09-10 18:36:27', '2020-09-10 18:36:29', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2738, 1, NULL, NULL, 342, 8, 670, 'TAXI000023', 109.4053990000, 24.3644140000, '广西壮族自治区柳州市柳北区雀儿山街道北雀广场雀儿山公园', 109.4034110000, 24.3617750000, 109.4503600000, '雀儿山公园', 24.3193260000, '万象二路', 109.3815505353, 24.2919370148, '广西壮族自治区柳州市柳南区柳石街道柳邕路二巷华柳佳苑', '2020-09-10 22:00:39', 109.3590058246, 24.2595170864, '广西壮族自治区柳州市柳江区拉堡镇柳邕路', '2020-09-10 22:13:23', 77863.00, 2, NULL, 12.60, 12.60, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '17776447894', 8, '2020-09-10 18:58:36', '2020-09-10 18:58:35', '2020-09-10 18:58:50', '2020-09-10 18:58:50', '2020-09-10 18:58:50', '2020-09-10 22:00:39', '2020-09-10 22:13:23', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2739, 1, NULL, NULL, 347, NULL, NULL, 'TAXI000024', 109.3716920000, 24.3064190000, '广西壮族自治区柳州市柳南区南环街道龙屯宝贝幼儿园', 109.3716920000, 24.3064190000, 109.4456640000, '柳州市柳南区龙屯路142号', 24.3159620000, '恒大御府2期(建设中)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13558222821', 10, '2020-09-10 20:14:12', '2020-09-10 20:14:11', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2740, 1, NULL, NULL, 347, NULL, NULL, 'TAXI000025', 109.3714990000, 24.3062230000, '广西壮族自治区柳州市柳南区南环街道龙屯路104号龙屯宝贝幼儿园', 109.3714990000, 24.3062230000, 109.4456640000, '龙屯宝贝幼儿园', 24.3159620000, '恒大御府2期(建设中)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13558222821', 1, '2020-09-10 20:15:25', '2020-09-10 20:15:24', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2741, 1, NULL, NULL, 242, 73, 642, 'TAXI000001', 109.4048600000, 24.3138590000, '广西壮族自治区柳州市城中区中南街道中南派出所', 109.4048600000, 24.3138590000, 109.4507010000, '柳州市城中区滨江西路20号', 24.3222850000, '华润万象城', 109.4037751215, 24.3141100179, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-11 09:36:57', 109.3973900058, 24.3591790180, '广西壮族自治区柳州市柳北区胜利街道北雀路67号柳化职工住宅楼', '2020-09-11 09:48:30', 5778.00, 1, 1, 15.20, 15.20, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 15.20, 0, NULL, '13321624505', 8, '2020-09-11 09:36:39', '2020-09-11 09:36:37', '2020-09-11 09:36:46', '2020-09-11 09:36:46', '2020-09-11 09:36:46', '2020-09-11 09:36:57', '2020-09-11 09:48:30', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2742, 1, NULL, NULL, 242, 73, 642, 'TAXI000002', 109.3971100000, 24.3591970000, '广西壮族自治区柳州市柳北区胜利街道北雀路67号柳化职工住宅楼', 109.3971100000, 24.3591970000, 109.4052380000, '柳化职工住宅楼', 24.3118790000, 'OK充电站', 109.3978237163, 24.3594457875, '广西壮族自治区柳州市柳北区胜利街道北雀路67号28栋柳化职工住宅楼', '2020-09-11 09:53:41', 109.4055758863, 24.3118608628, '广西壮族自治区柳州市城中区中南街道滨江西路15栋17栋', '2020-09-11 10:06:13', 6001.00, 2, NULL, 15.20, 15.20, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13321624505', 8, '2020-09-11 09:53:19', '2020-09-11 09:53:17', '2020-09-11 09:53:24', '2020-09-11 09:53:24', '2020-09-11 09:53:24', '2020-09-11 09:53:41', '2020-09-11 10:06:13', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2743, 1, NULL, NULL, 357, NULL, NULL, 'TAXI000003', 109.4373960000, 24.2611170000, '广西壮族自治区柳州市鱼峰区白莲街道白莲街道办事处', 109.4373960000, 24.2611170000, 109.6307870000, '柳州市鱼峰区柳石路418号', 23.4596100000, '武宣县桐岭镇人民政府', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17300088571', 10, '2020-09-11 13:20:05', '2020-09-11 13:20:03', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2744, 1, NULL, NULL, 334, NULL, NULL, 'TAXI000004', 109.4415000000, 24.3236320000, '广西壮族自治区柳州市城中区潭中街道居上·V8城', 109.4415000000, 24.3236320000, 109.4135790000, '柳州市城中区文昌路83号', 24.3138320000, '中环酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877277700', 10, '2020-09-11 13:44:51', '2020-09-11 13:44:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2745, 1, NULL, NULL, 334, NULL, NULL, 'TAXI000005', 109.4415820000, 24.3232480000, '广西壮族自治区柳州市城中区潭中街道文昌路居上·V8城', 109.4418590000, 24.3235560000, 109.4135790000, '居上·V8城A座写字楼', 24.3138320000, '中环酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877277700', 10, '2020-09-11 13:48:04', '2020-09-11 13:48:04', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2746, 1, NULL, NULL, 358, NULL, NULL, 'TAXI000006', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13368407654', 10, '2020-09-11 16:39:36', '2020-09-11 16:39:36', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2747, 1, NULL, NULL, 358, NULL, NULL, 'TAXI000007', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13368407654', 10, '2020-09-11 16:41:56', '2020-09-11 16:41:55', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2748, 1, NULL, NULL, 358, NULL, NULL, 'TAXI000008', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13368407654', 10, '2020-09-11 16:46:11', '2020-09-11 16:46:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2749, 1, NULL, NULL, 358, NULL, NULL, 'TAXI000009', 109.5754680000, 24.3900420000, '广西壮族自治区柳州市鱼峰区雒容镇欧科塑胶机械成套设备有限公司', 109.5754680000, 24.3900420000, 109.5992030000, '柳州市鱼峰区初阳路8号', 24.3984020000, '以斯帖酒店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13368407654', 10, '2020-09-11 16:47:07', '2020-09-11 16:47:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2750, 1, NULL, NULL, 324, NULL, NULL, 'TAXI000010', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 109.5914590000, '柳州市柳南区和平路68号', 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13367729581', 10, '2020-09-11 17:53:10', '2020-09-11 17:53:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2751, 1, NULL, NULL, 324, NULL, NULL, 'TAXI000011', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 109.5914590000, '柳州市柳南区和平路108号', 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13367729581', 10, '2020-09-11 17:53:41', '2020-09-11 17:53:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2752, 1, NULL, NULL, 324, NULL, NULL, 'TAXI000012', 109.3802060000, 24.3174430000, '广西壮族自治区柳州市柳南区河西街道万佳馨园', 109.3802060000, 24.3174430000, 109.5914590000, '柳州市柳南区和平路108号', 23.1118900000, '英皇酒店用品', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13367729581', 10, '2020-09-11 17:54:47', '2020-09-11 17:54:46', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2753, 1, NULL, NULL, 362, NULL, NULL, 'TAXI000013', 109.4065090000, 24.3232410000, '广西壮族自治区柳州市柳北区雅儒街道柳州市自动化科学研究所柳州食品药品检验所', 109.4065090000, 24.3232410000, 109.3799890000, '柳州市柳北区广雅路北三巷6号', 24.3363010000, '金都汇', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17687271872', 10, '2020-09-11 17:54:56', '2020-09-11 17:54:54', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2754, 1, NULL, NULL, 269, NULL, NULL, 'TAXI000014', 109.4005810000, 24.3033410000, '广西壮族自治区柳州市柳南区柳南街道飞鹅路55--6号飞鹅商城', 109.4005810000, 24.3033410000, 109.3778260000, '飞鹅商城', 24.3191490000, '福柳宏都', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877253131', 10, '2020-09-11 18:03:19', '2020-09-11 18:03:18', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2755, 1, NULL, NULL, 372, NULL, NULL, 'TAXI000015', 109.4158920000, 24.3383680000, '广西壮族自治区柳州市柳北区跃进街道保利大江郡(凯旋大道)保利广场', 109.4158920000, 24.3383680000, 109.4126210000, '柳州市柳北区凯旋大道13号', 24.3104190000, '地王大厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17776309588', 10, '2020-09-11 18:22:45', '2020-09-11 18:22:44', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2756, 1, NULL, NULL, 371, NULL, NULL, 'TAXI000016', 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, 109.4024430000, '柳州市柳北区广场路8号', 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13768866728', 10, '2020-09-11 18:23:11', '2020-09-11 18:23:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2757, 1, NULL, NULL, 371, NULL, NULL, 'TAXI000017', 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, 109.4024430000, '柳州市城中区广场路8号', 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13768866728', 10, '2020-09-11 18:27:07', '2020-09-11 18:27:06', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2758, 1, NULL, NULL, 371, NULL, NULL, 'TAXI000018', 109.4118620000, 24.3206400000, '广西壮族自治区柳州市柳北区解放街道地王国际财富中心', 109.4118620000, 24.3206400000, 109.4024430000, '柳州市城中区广场路8号', 24.3461500000, '椿记烧鹅(北雀店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13768866728', 10, '2020-09-11 18:27:33', '2020-09-11 18:27:32', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2759, 1, NULL, NULL, 380, NULL, NULL, 'TAXI000019', 109.4126310000, 24.3189260000, '广西壮族自治区柳州市城中区城中街道解放北路37号柳州博物馆', 109.4126310000, 24.3189260000, 109.3970800000, '柳州市城中区解放北路29号', 24.3519600000, '望泰·北城华府(西门)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15347772319', 10, '2020-09-11 18:44:51', '2020-09-11 18:44:51', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2760, 1, NULL, NULL, 380, NULL, NULL, 'TAXI000020', 109.4138600000, 24.3184870000, '广西壮族自治区柳州市城中区公园街道柳州市中医医院', 109.4138600000, 24.3184870000, 109.3970800000, '柳州市城中区解放北路25号', 24.3519600000, '望泰·北城华府(西门)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15347772319', 1, '2020-09-11 18:56:14', '2020-09-11 18:56:14', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2761, 1, NULL, NULL, 381, NULL, NULL, 'TAXI000021', 109.4070820000, 24.3124270000, '广西壮族自治区柳州市城中区中南街道永隆大厦', 109.4070820000, 24.3124270000, 109.3967540000, '柳州市城中区中山西路99号', 24.2699400000, '柳州市航星敬老中心', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18076702510', 10, '2020-09-11 19:04:34', '2020-09-11 19:04:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2762, 1, NULL, NULL, 384, NULL, NULL, 'TAXI000022', 109.4025870000, 24.3048510000, '广西壮族自治区柳州市柳南区柳南街道华丰商厦', 109.4025870000, 24.3048510000, 109.3644740000, '柳州市柳南区飞鹅路186号', 24.3398920000, '柳南区十一冶二区社区第二卫生服务站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13977210484', 10, '2020-09-11 19:27:03', '2020-09-11 19:27:02', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2763, 1, NULL, NULL, 384, NULL, NULL, 'TAXI000023', 109.4025870000, 24.3048510000, '广西壮族自治区柳州市柳南区柳南街道华丰商厦', 109.4025870000, 24.3048510000, 109.3644740000, '柳州市柳南区飞鹅路186号1栋', 24.3398920000, '柳南区十一冶二区社区第二卫生服务站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13977210484', 10, '2020-09-11 19:27:48', '2020-09-11 19:27:47', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2764, 1, NULL, NULL, 387, NULL, NULL, 'TAXI000024', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路381号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877266117', 10, '2020-09-11 20:16:45', '2020-09-11 20:16:44', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2765, 1, NULL, NULL, 387, NULL, NULL, 'TAXI000025', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路146号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877266117', 10, '2020-09-11 20:19:40', '2020-09-11 20:19:39', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2766, 1, NULL, NULL, 387, NULL, NULL, 'TAXI000026', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路142号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877266117', 10, '2020-09-11 20:23:02', '2020-09-11 20:23:00', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2767, 1, NULL, NULL, 387, NULL, NULL, 'TAXI000027', 109.3919330000, 24.3005220000, '广西壮族自治区柳州市柳南区柳石街道宜家城站酒店', 109.3919330000, 24.3005220000, 109.3931230000, '柳州市柳南区城站路144号', 24.2907100000, '恒大雅苑', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877266117', 10, '2020-09-11 20:31:35', '2020-09-11 20:31:33', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2768, 1, NULL, NULL, 390, NULL, NULL, 'TAXI000028', 109.3901383464, 24.3058897569, '广西壮族自治区柳州市柳南区南站街道南站路17号柳州站东广场', 109.3901128472, 24.3059187826, 109.4094610000, '柳州站东广场', 24.3217410000, '广西壮族自治区柳州市柳北区地王公馆3栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18586544243', 10, '2020-09-11 20:54:16', '2020-09-11 20:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2769, 1, NULL, NULL, 391, NULL, NULL, 'TAXI000029', 109.4134982639, 24.3050442166, '广西壮族自治区柳州市鱼峰区驾鹤街道驾鹤路连华大厦', 109.4135772027, 24.3051516385, 109.4122620000, '豪都大酒店', 24.3138240000, '乐巢(柳州店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15778286826', 1, '2020-09-11 21:05:53', '2020-09-11 21:05:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2770, 1, NULL, NULL, 392, NULL, NULL, 'TAXI000030', 109.4393250000, 24.3067300000, '广西壮族自治区柳州市鱼峰区箭盘山街道金盛广场', 109.4393250000, 24.3067300000, 109.4767320000, '柳州市鱼峰区东环大道17号', 24.3012200000, '盛天龙湾', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18154770905', 10, '2020-09-11 21:08:19', '2020-09-11 21:08:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2771, 1, NULL, NULL, 393, NULL, NULL, 'TAXI000031', 109.4393250000, 24.3067300000, '广西壮族自治区柳州市鱼峰区箭盘山街道金盛广场', 109.4393250000, 24.3067300000, 109.4764400000, '柳州市鱼峰区东环大道17号', 24.3032950000, '盛天龙湾2栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18077209852', 10, '2020-09-11 21:09:12', '2020-09-11 21:09:11', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2772, 1, NULL, NULL, 394, NULL, NULL, 'TAXI000032', 109.3803250000, 24.2886400000, '广西壮族自治区柳州市柳南区柳石街道宏祥园', 109.3803250000, 24.2886400000, 109.4133850000, '柳州市柳南区永前路9号', 24.3120080000, '歌友会量贩氧吧KTV(五星店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18177226729', 10, '2020-09-11 21:17:10', '2020-09-11 21:17:10', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2773, 1, NULL, NULL, 394, NULL, NULL, 'TAXI000033', 109.3829940000, 24.2905270000, '广西壮族自治区柳州市柳南区柳石街道华柳佳苑', 109.3829940000, 24.2905270000, 109.4133850000, '柳州市柳南区柳邕路二巷8号', 24.3120080000, '歌友会量贩氧吧KTV(五星店)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18177226729', 10, '2020-09-11 21:27:41', '2020-09-11 21:27:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2774, 1, NULL, NULL, 372, NULL, NULL, 'TAXI000034', 109.4135970000, 24.3121700000, '广西壮族自治区柳州市城中区公园街道中山东路金长城大厦', 109.4135970000, 24.3121700000, 109.4160640000, '如家酒店(五星步行街店)', 24.3404960000, '自由舰停车场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17776309588', 10, '2020-09-11 22:11:19', '2020-09-11 22:11:18', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2775, 1, NULL, NULL, 402, NULL, NULL, 'TAXI000035', 109.4076120000, 24.3027100000, '广西壮族自治区柳州市柳南区新谷大厦', 109.4076120000, 24.3027100000, 109.4115990000, '柳州市鱼峰区飞鹅路5号', 24.3388850000, '中鼎北园', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13977295969', 10, '2020-09-11 22:25:57', '2020-09-11 22:25:56', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2776, 1, NULL, NULL, 372, NULL, NULL, 'TAXI000036', 109.4116090000, 24.3121170000, '广西壮族自治区柳州市城中区城中街道柳州商场', 109.4116090000, 24.3121170000, 109.4158920000, '柳州市城中区龙城路13--4号', 24.3383680000, '保利大江郡(凯旋大道)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17776309588', 10, '2020-09-11 22:28:18', '2020-09-11 22:28:17', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2777, 1, NULL, NULL, 372, NULL, NULL, 'TAXI000037', 109.4116090000, 24.3121170000, '广西壮族自治区柳州市城中区城中街道柳州商场', 109.4116090000, 24.3121170000, 109.4158920000, '柳州市城中区龙城路12-2号', 24.3383680000, '保利大江郡(凯旋大道)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17776309588', 10, '2020-09-11 22:30:08', '2020-09-11 22:30:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2778, 1, NULL, NULL, 403, NULL, NULL, 'TAXI000038', 109.3954212782, 24.3099688043, '广西壮族自治区柳州市柳南区南站街道鹅岗路鹅岗二区', 109.3953130425, 24.3099148220, 109.4285430000, '鹅岗二区', 24.3189640000, '蓝熊酒酷线下旗舰店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15577219638', 10, '2020-09-11 22:30:11', '2020-09-11 22:30:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2779, 1, NULL, NULL, 403, NULL, NULL, 'TAXI000039', 109.3953700087, 24.3098977322, '广西壮族自治区柳州市柳南区南站街道鹅岗路鹅岗二区', 109.3953130425, 24.3099148220, 109.4285430000, '鹅岗二区', 24.3189640000, '蓝熊酒酷线下旗舰店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 5.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15577219638', 10, '2020-09-11 22:31:31', '2020-09-11 22:31:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2780, 1, NULL, NULL, 288, NULL, NULL, 'TAXI000001', 109.4172550000, 24.3215110000, '广西壮族自治区柳州市柳北区解放街道友谊路柳州饭店', 109.4172550000, 24.3215110000, 109.4680250000, '奥斯汀KTV(柳州饭店店)', 24.3257970000, '华远岚山', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18978029828', 10, '2020-09-12 02:01:42', '2020-09-12 02:01:42', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2781, 1, NULL, NULL, 404, NULL, NULL, 'TAXI000002', 109.4117070000, 24.3555720000, '广西壮族自治区柳州市柳北区跃进街道汇金国际(跃进路)', 109.4117070000, 24.3555720000, 109.4020280000, '柳州市柳北区跃进路160-1号', 24.3462770000, '远道·香颂e公馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17307727912', 10, '2020-09-12 03:26:37', '2020-09-12 03:26:36', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2782, 1, NULL, NULL, 407, NULL, NULL, 'TAXI000003', 109.4095400000, 24.3117500000, '广西壮族自治区柳州市城中区中南街道金秋大厦(中山中路)', 109.4095400000, 24.3117500000, 109.4097720000, '柳州市城中区映山街2-1-1号', 24.3144390000, '映山街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13978068824', 1, '2020-09-12 03:45:23', '2020-09-12 03:45:21', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2783, 1, NULL, NULL, 409, NULL, NULL, 'TAXI000004', 109.4132260000, 24.2924220000, '广西壮族自治区柳州市鱼峰区天马街道金百利·摩栖酒店', 109.4132260000, 24.2924220000, 109.4078950000, '柳州市鱼峰区柳石路338-2号', 24.3211470000, '广雅·传奇篮球馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17777217129', 10, '2020-09-12 08:01:54', '2020-09-12 08:01:53', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2784, 1, NULL, NULL, 409, NULL, NULL, 'TAXI000005', 109.4132260000, 24.2924220000, '广西壮族自治区柳州市鱼峰区天马街道金百利·摩栖酒店', 109.4132260000, 24.2924220000, 109.4078950000, '柳州市鱼峰区柳石路338-2号', 24.3211470000, '广雅·传奇篮球馆', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '17777217129', 10, '2020-09-12 08:03:00', '2020-09-12 08:02:59', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2785, 1, NULL, NULL, 245, 333, 791, 'TAXI000006', 109.4409016927, 24.2710630968, '广西壮族自治区柳州市鱼峰区白莲街道未来星幼儿园(锦航中国城东北)宝莲新都', 109.4407698568, 24.2713704427, 109.4055160000, '宝莲新都', 24.3115510000, '滨江西路15栋', 109.4384781293, 24.2702183277, '广西壮族自治区柳州市鱼峰区白莲街道柳石路宝莲新都', '2020-09-12 08:24:19', 109.4052923987, 24.3114609643, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-12 08:44:03', 7926.00, 2, NULL, 18.30, 18.30, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '18178803160', 9, '2020-09-12 08:19:36', '2020-09-12 08:19:00', '2020-09-12 08:20:25', '2020-09-12 08:20:25', '2020-09-12 08:20:25', '2020-09-12 08:24:19', '2020-09-12 08:44:03', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2786, 1, NULL, NULL, 393, NULL, NULL, 'TAXI000007', 109.4767320000, 24.3012200000, '广西壮族自治区柳州市鱼峰区阳和街道盛天龙湾', 109.4767320000, 24.3012200000, 109.4376500000, '柳州市鱼峰区阳和大道北3号', 24.3049300000, '华达苑3栋', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18077209852', 10, '2020-09-12 08:23:48', '2020-09-12 08:23:47', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2787, 1, NULL, NULL, 410, 309, 783, 'TAXI000008', 109.4437100000, 24.2779850000, '广西壮族自治区柳州市鱼峰区五里亭街道鸿泰名庭', 109.4437100000, 24.2779850000, 109.4097010000, '柳州市鱼峰区龙泉路2号8栋', 24.3154930000, '柳州市妇幼保健院', 109.4436382309, 24.2724431144, '广西壮族自治区柳州市鱼峰区白莲街道鸡喇路柳机生活区', '2020-09-12 09:52:26', 109.4060752145, 24.2966655146, '广西壮族自治区柳州市柳南区柳石街道红阳路柳州市第十八中学', '2020-09-12 10:06:09', 5912.00, 1, NULL, 14.80, 14.80, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '18877278189', 10, '2020-09-12 09:48:21', '2020-09-12 09:48:21', '2020-09-12 09:51:02', '2020-09-12 09:51:02', '2020-09-12 09:51:02', '2020-09-12 09:52:26', '2020-09-12 10:06:09', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2788, 1, NULL, NULL, 308, 771, 680, 'TAXI000009', 109.4294560000, 24.3204070000, '广西壮族自治区柳州市鱼峰区箭盘山街道柳州工业博物馆', 109.4294560000, 24.3204070000, 109.4052380000, '柳州市鱼峰区蟠龙路198号', 24.3118790000, 'OK充电站', 109.4276079412, 24.3250141065, '广西壮族自治区柳州市城中区潭中街道清和路柳州市人民政府', '2020-09-12 11:58:20', NULL, NULL, NULL, NULL, 360.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15907721890', 10, '2020-09-12 11:57:33', '2020-09-12 11:57:32', '2020-09-12 11:58:20', '2020-09-12 11:58:20', '2020-09-12 11:58:20', '2020-09-12 11:58:20', NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2789, 1, NULL, NULL, 308, NULL, NULL, 'TAXI000010', 109.4294560000, 24.3204070000, '广西壮族自治区柳州市鱼峰区箭盘山街道柳州工业博物馆', 109.4294560000, 24.3204070000, 109.4052380000, '柳州市鱼峰区蟠龙路218号', 24.3118790000, 'OK充电站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721890', 10, '2020-09-12 12:09:52', '2020-09-12 12:09:52', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2790, 1, NULL, NULL, 269, NULL, NULL, 'TAXI000011', 109.3778260000, 24.3191490000, '广西壮族自治区柳州市柳南区河西街道福柳宏都', 109.3778260000, 24.3191490000, 109.4129390000, '柳州市柳南区西环路6号3栋', 24.3169360000, '新大地商厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877253131', 10, '2020-09-12 15:26:04', '2020-09-12 15:26:03', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2791, 1, NULL, NULL, 269, NULL, NULL, 'TAXI000012', 109.3785900000, 24.3177510000, '广西壮族自治区柳州市柳南区河西街道吉祥苑(宏都路)', 109.3785900000, 24.3177510000, 109.4129390000, '柳州市柳南区龙屯路186号', 24.3169360000, '新大地商厦', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13877253131', 10, '2020-09-12 15:31:40', '2020-09-12 15:31:40', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2792, 1, NULL, NULL, 413, 324, 758, 'TAXI000013', 109.4132620000, 24.3311290000, '广西壮族自治区柳州市柳北区解放街道新天地商住楼', 109.4132620000, 24.3311290000, 109.3488000000, '柳州市柳北区三中路148号', 24.3147160000, '柳州市工人医院总院', 109.4134624492, 24.3318374617, '广西壮族自治区柳州市柳北区解放街道三中路安利园', '2020-09-12 18:13:16', 109.3477995262, 24.3145302187, '广西壮族自治区柳州市柳南区太阳村镇柳州市工人医院总院', '2020-09-12 18:37:48', 11459.00, 1, NULL, 29.80, 29.80, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15778294727', 7, '2020-09-12 18:01:59', '2020-09-12 18:01:58', '2020-09-12 18:02:41', '2020-09-12 18:02:41', '2020-09-12 18:02:41', '2020-09-12 18:13:16', '2020-09-12 18:37:48', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2793, 1, NULL, NULL, 245, NULL, NULL, 'TAXI000001', 109.4408270942, 24.2718188477, '广西壮族自治区柳州市鱼峰区白莲街道菲菲音乐学苑宝莲新都', 109.4408957248, 24.2718964301, 109.4366870000, '宝莲新都', 24.2915480000, '白云小区(蝴蝶山路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18178803160', 10, '2020-09-13 05:01:23', '2020-09-13 05:01:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2794, 1, NULL, NULL, 416, NULL, NULL, 'TAXI000002', 109.4429719300, 24.2577253748, '广西壮族自治区柳州市鱼峰区白莲街道鱼峰区金龙珠幼儿园龙珠小区', 109.4428200000, 24.2577920000, 109.4065500000, '飞速糖烟店', 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18172171303', 10, '2020-09-13 12:01:07', '2020-09-13 12:01:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2795, 1, NULL, NULL, 416, NULL, NULL, 'TAXI000003', 109.4429979743, 24.2577659638, '广西壮族自治区柳州市鱼峰区白莲街道鱼峰区金龙珠幼儿园龙珠小区', 109.4428200000, 24.2577920000, 109.4065500000, '飞速糖烟店', 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18172171303', 10, '2020-09-13 12:03:11', '2020-09-13 12:03:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2796, 1, NULL, NULL, 416, NULL, NULL, 'TAXI000004', 109.4411891930, 24.2580511267, '广西壮族自治区柳州市鱼峰区白莲街道柳石路龙珠小区', 109.4413650000, 24.2582620000, 109.4065500000, '龙珠小区(西2门)', 24.2979380000, '柳州汽车总站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18172171303', 10, '2020-09-13 12:15:02', '2020-09-13 12:15:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2797, 1, NULL, NULL, 245, NULL, NULL, 'TAXI000005', 109.4387027995, 24.2708558485, '广西壮族自治区柳州市鱼峰区白莲街道中国信合(宝莲分社)宝莲新都', 109.4386786567, 24.2708222114, 109.4102120000, '宝莲新都', 24.3206280000, '步步高广场(广场路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18178803160', 10, '2020-09-13 17:28:39', '2020-09-13 17:28:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2798, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000001', 109.4051597765, 24.3121975369, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4052460395, 24.3119607205, 109.4268420000, '中山西路幼儿园', 24.3260800000, '市民广场(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-14 14:54:39', '2020-09-14 14:54:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2799, 1, NULL, NULL, 194, NULL, NULL, 'TAXI000002', 109.4052490234, 24.3121975369, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4052460395, 24.3119607205, 109.4268420000, '中山西路幼儿园', 24.3260800000, '市民广场(公交站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15907721776', 10, '2020-09-14 14:55:58', '2020-09-14 14:55:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2800, 1, NULL, NULL, 420, NULL, NULL, 'TAXI000001', 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, 109.3051590000, '亨氏豪庭', 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15707725715', 10, '2020-09-15 16:05:00', '2020-09-15 16:04:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2801, 1, NULL, NULL, 420, NULL, NULL, 'TAXI000002', 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, 109.3051590000, '亨氏豪庭', 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15707725715', 10, '2020-09-15 16:06:28', '2020-09-15 16:06:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2802, 1, NULL, NULL, 420, NULL, NULL, 'TAXI000003', 109.4140109592, 24.3241981337, '广西壮族自治区柳州市柳北区解放街道北站路16号4栋亨氏豪庭', 109.4140109592, 24.3241981337, 109.3051590000, '亨氏豪庭', 24.3617070000, '柳太路', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15707725715', 10, '2020-09-15 16:07:40', '2020-09-15 16:07:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2803, 1, NULL, NULL, 421, NULL, NULL, 'TAXI000001', 109.4479649523, 24.3401052517, '广西壮族自治区柳州市城中区河东街道学院路36号15栋聚福苑(学院路)', 109.4481111654, 24.3399522569, 109.4177160000, '聚福苑(学院路)', 24.3217760000, '柳州饭店', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18577275127', 10, '2020-09-16 10:53:27', '2020-09-16 10:53:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2804, 1, NULL, NULL, 422, NULL, NULL, 'TAXI000002', 109.4558924696, 24.3226405165, '广西壮族自治区柳州市城中区静兰街道桂柳路30号碧园大城小院', 109.4558995226, 24.3226453993, 109.4479980000, '碧园大城小院', 24.3064830000, '中国联通宏悦专营店(西江路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13593739812', 1, '2020-09-16 10:54:51', '2020-09-16 11:05:00', NULL, NULL, NULL, NULL, NULL, 2, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2805, 1, NULL, NULL, 422, NULL, NULL, 'TAXI000003', 109.4557069227, 24.3217173937, '广西壮族自治区柳州市城中区静兰街道桂柳路30号碧园大城小院', 109.4556909180, 24.3217331272, 109.4479980000, '碧园大城小院', 24.3064830000, '中国联通宏悦专营店(西江路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '13593739812', 1, '2020-09-16 11:11:20', '2020-09-16 11:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2806, 1, NULL, NULL, 242, 73, 642, 'TAXI000004', 109.4050550441, 24.3121627433, '广西壮族自治区柳州市城中区中南街道滨江西路17栋', 109.4049703240, 24.3120956680, 109.4418850000, '滨江西路20栋', 24.3296320000, '万达广场(柳州城中店)', 109.4032414707, 24.3137433815, '广西壮族自治区柳州市城中区中南街道滨江西路', '2020-09-16 15:39:22', 109.4053090986, 24.3118941693, '广西壮族自治区柳州市城中区中南街道滨江西路16号', '2020-09-16 15:50:19', 2278.00, 2, NULL, 6.00, 6.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '13321624505', 8, '2020-09-16 15:38:28', '2020-09-16 15:38:00', '2020-09-16 15:38:32', '2020-09-16 15:38:32', '2020-09-16 15:38:32', '2020-09-16 15:39:22', '2020-09-16 15:50:19', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2807, 1, NULL, NULL, 423, NULL, NULL, 'TAXI000005', 109.3905132378, 24.3064941406, '广西壮族自治区柳州市柳南区南站街道飞鹅路161-1号柳州站东广场', 109.3902067057, 24.3062934028, 109.4080230000, '柳州站东广场', 24.3039410000, '谷埠街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18579412324', 10, '2020-09-16 21:10:00', '2020-09-16 21:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2808, 1, NULL, NULL, 423, NULL, NULL, 'TAXI000006', 109.3905894640, 24.3066932509, '广西壮族自治区柳州市柳南区南站街道飞鹅路161-1号柳州站东广场', 109.3902067057, 24.3062934028, 109.4080230000, '柳州站东广场', 24.3039410000, '谷埠街', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18579412324', 10, '2020-09-16 21:10:58', '2020-09-16 21:10:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2809, 1, NULL, NULL, 423, NULL, NULL, 'TAXI000001', 109.4076464844, 24.3021706814, '广西壮族自治区柳州市鱼峰区天马街道华喜口腔(谷埠街店)新谷大厦', 109.4075073242, 24.3022498915, 109.4126430000, '新谷大厦', 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18579412324', 10, '2020-09-17 09:25:20', '2020-09-17 09:25:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2810, 1, NULL, NULL, 423, NULL, NULL, 'TAXI000002', 109.4073855252, 24.3023163520, '广西壮族自治区柳州市鱼峰区天马街道谷埠路新谷大厦', 109.4075073242, 24.3022498915, 109.4126430000, '新谷大厦', 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18579412324', 10, '2020-09-17 09:26:00', '2020-09-17 09:26:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2811, 1, NULL, NULL, 423, NULL, NULL, 'TAXI000003', 109.4073109266, 24.3012372504, '广西壮族自治区柳州市柳南区柳南街道谷埠路39-2号柳州市谷埠路幼儿园', 109.4073109266, 24.3012372504, 109.4126430000, '柳州市谷埠路幼儿园', 24.3636570000, '柳州白沙客运站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18579412324', 10, '2020-09-17 09:31:06', '2020-09-17 09:31:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2812, 1, NULL, NULL, 424, 63, 785, 'TAXI000004', 109.4338365343, 24.3471999783, '广西壮族自治区柳州市城中区潭中街道积木宝贝科学早教中房世纪广场', 109.4337765842, 24.3472911241, 109.4125290000, '中房世纪广场', 24.3127910000, '五星商业步行街', 109.4337876484, 24.3472846128, '广西壮族自治区柳州市城中区潭中街道积木宝贝科学早教中房世纪广场', '2020-09-17 22:20:32', 109.4139113155, 24.3121430596, '广西壮族自治区柳州市城中区城中街道中山东路63号金长城大厦', '2020-09-17 22:35:24', 7680.00, 1, 2, 16.70, 16.70, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 16.70, 0, NULL, '13597063052', 8, '2020-09-17 22:15:16', '2020-09-17 22:15:00', '2020-09-17 22:16:21', '2020-09-17 22:16:21', '2020-09-17 22:16:21', '2020-09-17 22:20:32', '2020-09-17 22:35:24', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2813, 1, NULL, NULL, 245, NULL, NULL, 'TAXI000001', 109.4406914605, 24.2715939670, '广西壮族自治区柳州市鱼峰区白莲街道菲菲音乐学苑宝莲新都', 109.4407042101, 24.2715945095, 109.3882920000, '宝莲新都', 24.3078740000, '柳州站', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18178803160', 10, '2020-09-18 11:49:02', '2020-09-18 11:49:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2814, 1, NULL, NULL, 430, NULL, NULL, 'TAXI000001', 109.4179342990, 24.3009195964, '广西壮族自治区柳州市鱼峰区天马街道乐群路马鞍山公园', 109.4179313151, 24.3009092882, 109.4101960000, '马鞍山公园', 24.2914990000, '宝宝乐幼儿园(柳石路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18269585832', 10, '2020-09-19 12:43:10', '2020-09-19 12:43:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2815, 1, NULL, NULL, 430, NULL, NULL, 'TAXI000002', 109.4179511176, 24.3009106445, '广西壮族自治区柳州市鱼峰区天马街道乐群路马鞍山公园', 109.4179532878, 24.3009079319, 109.4101960000, '马鞍山公园', 24.2914990000, '宝宝乐幼儿园(柳石路)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18269585832', 10, '2020-09-19 12:44:17', '2020-09-19 12:44:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2817, 1, NULL, NULL, 191, NULL, NULL, 'TAXI000001', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 103.9512290000, '成都市武侯区武侯祠大街69号', 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15828353124', 10, '2020-09-21 15:32:34', '2020-09-21 15:32:19', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2818, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000002', 104.0573900000, 30.5839480000, '四川省成都市武侯区石羊场街道誉峰国际中心', 104.0573900000, 30.5839480000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-09-21 15:39:25', '2020-09-21 15:39:24', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2819, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000003', 104.0573900000, 30.5839480000, '四川省成都市武侯区石羊场街道誉峰国际中心', 104.0573900000, 30.5839480000, 104.0701250000, '成都市武侯区锦晖西二街126号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-09-21 15:41:08', '2020-09-21 15:41:07', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2820, 1, NULL, NULL, 191, NULL, NULL, 'TAXI000004', 104.0470000000, 30.6342800000, '四川省成都市武侯区肖家河街道兴蓉东街10号', 104.0470000000, 30.6342800000, 103.9512290000, '兴亿小区3号院', 30.5598070000, '成都双流国际机场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15828353124', 10, '2020-09-21 16:00:22', '2020-09-21 16:00:08', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2821, 1, NULL, NULL, 191, NULL, NULL, 'TAXI000005', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15828353124', 10, '2020-09-21 16:34:45', '2020-09-21 16:34:31', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2822, 1, NULL, NULL, 190, NULL, NULL, 'TAXI000001', 104.0561233181, 30.5855232747, '四川省成都市武侯区石羊场街道天府新谷誉峰国际中心', 104.0560731337, 30.5855069987, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '18123292546', 10, '2020-09-22 15:11:14', '2020-09-22 15:11:00', NULL, NULL, NULL, NULL, NULL, 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2823, 1, NULL, NULL, 189, 906, 944, 'TAXI000002', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0723840000, '成都市武侯区锦晖西二街126号', 30.5130950000, '城南晶座', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:19:45', 104.0557640509, 30.5867867317, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-22 18:21:44', 0.00, 2, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, 0.00, 0.00, NULL, 1, 0.00, 0, NULL, '15620989414', 8, '2020-09-22 18:19:25', '2020-09-22 18:19:25', '2020-09-22 18:19:28', '2020-09-22 18:19:35', '2020-09-22 18:19:39', '2020-09-22 18:19:45', '2020-09-22 18:21:44', 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2824, 1, NULL, NULL, 189, 906, 944, 'TAXI000003', 104.0557010000, 30.5868170000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', 104.0557010000, 30.5868170000, 104.0723840000, '成都市武侯区锦晖西二街126号', 30.5130950000, '城南晶座', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, NULL, 0, NULL, '15620989414', 10, '2020-09-22 18:22:26', '2020-09-22 18:22:26', '2020-09-22 18:22:31', NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2825, 1, NULL, NULL, 190, 905, 943, 'TAXI000001', 104.0560666233, 30.5855080838, '四川省成都市武侯区石羊场街道锦晖西二街誉峰国际中心', 104.0560666233, 30.5855080838, 104.0658610000, '誉峰国际中心', 30.6574010000, '天府广场', 104.0558150000, 30.5856780000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 15:37:39', 104.0558150000, 30.5856780000, '四川省成都市武侯区石羊场街道天府新谷天府新谷(府城大道西段)', '2020-09-23 15:37:55', 0.00, 1, 3, 1.00, 1.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, 1, 1.00, 0, NULL, '18123292546', 8, '2020-09-23 15:36:59', '2020-09-23 15:36:00', '2020-09-23 15:37:01', '2020-09-23 15:37:16', '2020-09-23 15:37:31', '2020-09-23 15:37:39', '2020-09-23 15:37:55', 1, 1, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+INSERT INTO `t_order_taxi` VALUES (2826, 1, NULL, NULL, 189, NULL, NULL, 'TAXI000001', 104.0432460000, 30.6418490000, '四川省成都市武侯区浆洗街街道武侯花园成都市武侯区人民政府', 104.0432460000, 30.6418490000, 104.0701250000, '成都市武侯区武侯祠大街69号', 30.5161330000, '四河(地铁站)', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0.00, NULL, NULL, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, '15620989414', 10, '2020-09-29 11:32:55', '2020-09-29 11:32:50', NULL, NULL, NULL, NULL, NULL, 1, 3, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_payment_record
+-- ----------------------------
+DROP TABLE IF EXISTS `t_payment_record`;
+CREATE TABLE `t_payment_record`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `category` int(1) NULL DEFAULT NULL COMMENT '类别(1=订单相关支付,2=其他支付)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `type` int(1) NULL DEFAULT NULL COMMENT '1=用户,2=司机',
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `orderType` int(1) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `payType` int(1) NULL DEFAULT NULL COMMENT '支付方式(1=微信,2=支付宝)',
+  `amount` double(11, 2) NULL DEFAULT NULL COMMENT '支付金额',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '支付单号',
+  `state` int(1) NULL DEFAULT NULL COMMENT '支付状态(1=临时,2=正式)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 478 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '第三方支付记录' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_payment_record
+-- ----------------------------
+INSERT INTO `t_payment_record` VALUES (392, 2, 183, 1, NULL, NULL, 1, 10.00, '', 1, '2020-08-17 11:16:53');
+INSERT INTO `t_payment_record` VALUES (393, 1, NULL, NULL, 2584, 2, 2, 7.00, '210541210043000512008170016003', 2, '2020-08-17 19:14:00');
+INSERT INTO `t_payment_record` VALUES (394, 1, NULL, NULL, 2585, 2, 1, 0.01, '', 1, '2020-08-17 19:15:53');
+INSERT INTO `t_payment_record` VALUES (395, 1, NULL, NULL, 2585, 2, 1, 0.01, '', 1, '2020-08-17 19:17:27');
+INSERT INTO `t_payment_record` VALUES (396, 1, NULL, NULL, 2585, 2, 1, 0.01, '210541210043000522008170015001', 2, '2020-08-17 19:19:02');
+INSERT INTO `t_payment_record` VALUES (397, 1, NULL, NULL, 2586, 2, 1, 0.01, '210541210043000542008170017002', 2, '2020-08-17 19:21:16');
+INSERT INTO `t_payment_record` VALUES (398, 2, 184, 1, NULL, NULL, 1, 0.01, '210541210043000532008170016001', 2, '2020-08-17 19:27:55');
+INSERT INTO `t_payment_record` VALUES (399, 1, NULL, NULL, 2588, 2, 1, 6.00, '210541210043000532008170017001', 2, '2020-08-17 20:22:28');
+INSERT INTO `t_payment_record` VALUES (400, 1, NULL, NULL, 2589, 2, 1, 0.01, '210541210043000522008180016001', 2, '2020-08-18 09:54:31');
+INSERT INTO `t_payment_record` VALUES (401, 1, NULL, NULL, 2590, 2, 1, 10.00, '210541210043000532008180017002', 2, '2020-08-18 09:56:13');
+INSERT INTO `t_payment_record` VALUES (402, 1, NULL, NULL, 2606, 2, 1, 0.01, '210541210043000532008190016002', 2, '2020-08-19 17:45:35');
+INSERT INTO `t_payment_record` VALUES (403, 2, 188, 1, NULL, NULL, 2, 0.01, '210541210043000522008190016002', 2, '2020-08-19 18:04:18');
+INSERT INTO `t_payment_record` VALUES (404, 2, 188, 1, NULL, NULL, 1, 0.01, '210541210043000542008190016003', 2, '2020-08-19 18:04:38');
+INSERT INTO `t_payment_record` VALUES (405, 1, NULL, NULL, 2609, 2, 2, 0.01, '210541210043000512008190018001', 2, '2020-08-19 18:10:18');
+INSERT INTO `t_payment_record` VALUES (406, 1, NULL, NULL, 2610, 2, 2, 0.01, '210541210043000532008190017003', 2, '2020-08-19 18:12:32');
+INSERT INTO `t_payment_record` VALUES (407, 1, NULL, NULL, 2612, 2, 1, 0.01, '', 1, '2020-08-19 18:17:37');
+INSERT INTO `t_payment_record` VALUES (408, 1, NULL, NULL, 2612, 2, 1, 0.01, '210541210043000522008190016003', 2, '2020-08-19 18:17:38');
+INSERT INTO `t_payment_record` VALUES (409, 1, NULL, NULL, 2615, 2, 2, 7.00, '210541210043000532008200015003', 2, '2020-08-20 16:02:37');
+INSERT INTO `t_payment_record` VALUES (410, 1, NULL, NULL, 2617, 2, 2, 6.00, '210541210043000512008210016004', 2, '2020-08-21 09:37:51');
+INSERT INTO `t_payment_record` VALUES (411, 1, NULL, NULL, 2628, 2, 2, 6.80, '210541210043000512008220016005', 2, '2020-08-22 20:30:46');
+INSERT INTO `t_payment_record` VALUES (412, 1, NULL, NULL, 2654, 2, 2, 6.00, '210541210043000512009020019001', 2, '2020-09-02 16:40:54');
+INSERT INTO `t_payment_record` VALUES (413, 1, NULL, NULL, 2655, 2, 2, 1.00, '210541210043000542009020018001', 2, '2020-09-02 16:44:22');
+INSERT INTO `t_payment_record` VALUES (414, 1, NULL, NULL, 2659, 2, 1, 1.00, '', 1, '2020-09-02 17:39:08');
+INSERT INTO `t_payment_record` VALUES (415, 1, NULL, NULL, 2659, 2, 1, 1.00, '210541210043000512009020020001', 2, '2020-09-02 17:39:09');
+INSERT INTO `t_payment_record` VALUES (416, 1, NULL, NULL, 2660, 2, 2, 0.10, '210541210043000532009020018001', 2, '2020-09-02 17:44:48');
+INSERT INTO `t_payment_record` VALUES (417, 2, 184, 1, NULL, NULL, 1, 0.01, '210541210043000532009020018002', 2, '2020-09-02 17:47:58');
+INSERT INTO `t_payment_record` VALUES (418, 2, 190, 1, NULL, NULL, 1, 10.00, '', 1, '2020-09-02 18:15:49');
+INSERT INTO `t_payment_record` VALUES (419, 1, NULL, NULL, 2658, 2, 1, 0.01, '', 1, '2020-09-03 14:00:06');
+INSERT INTO `t_payment_record` VALUES (420, 1, NULL, NULL, 2658, 2, 1, 0.01, '', 1, '2020-09-03 14:01:05');
+INSERT INTO `t_payment_record` VALUES (421, 1, NULL, NULL, 2658, 2, 1, 0.01, '', 1, '2020-09-03 14:01:27');
+INSERT INTO `t_payment_record` VALUES (422, 1, NULL, NULL, 2658, 2, 1, 0.01, '', 1, '2020-09-03 14:02:02');
+INSERT INTO `t_payment_record` VALUES (423, 1, NULL, NULL, 2658, 2, 1, 0.01, '', 1, '2020-09-03 14:02:44');
+INSERT INTO `t_payment_record` VALUES (424, 2, 245, 1, NULL, NULL, 1, 0.01, '210541210043000512009030021001', 2, '2020-09-03 14:25:44');
+INSERT INTO `t_payment_record` VALUES (425, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:32:42');
+INSERT INTO `t_payment_record` VALUES (426, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:33:12');
+INSERT INTO `t_payment_record` VALUES (427, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:35:06');
+INSERT INTO `t_payment_record` VALUES (428, 2, 245, 1, NULL, NULL, 1, 0.01, '210541210043000542009030020001', 2, '2020-09-03 14:37:20');
+INSERT INTO `t_payment_record` VALUES (429, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:38:12');
+INSERT INTO `t_payment_record` VALUES (430, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:55:26');
+INSERT INTO `t_payment_record` VALUES (431, 2, 245, 1, NULL, NULL, 2, 0.01, '210541210043000542009030020003', 2, '2020-09-03 14:56:02');
+INSERT INTO `t_payment_record` VALUES (432, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:56:23');
+INSERT INTO `t_payment_record` VALUES (433, 2, 245, 1, NULL, NULL, 1, 0.01, '', 1, '2020-09-03 14:57:43');
+INSERT INTO `t_payment_record` VALUES (434, 1, NULL, NULL, 2666, 2, 1, 23.40, '210541210043000522009040019002', 2, '2020-09-04 15:50:36');
+INSERT INTO `t_payment_record` VALUES (435, 1, NULL, NULL, 2665, 2, 1, 0.01, '210541210043000522009040018002', 2, '2020-09-04 15:56:30');
+INSERT INTO `t_payment_record` VALUES (436, 1, NULL, NULL, 2667, 2, 1, 0.01, '210541210043000542009040021001', 2, '2020-09-04 16:33:56');
+INSERT INTO `t_payment_record` VALUES (437, 1, NULL, NULL, 2694, 2, 1, 0.01, '210541210043000512009060023001', 2, '2020-09-06 05:49:25');
+INSERT INTO `t_payment_record` VALUES (438, 1, NULL, NULL, 2720, 2, 1, 9.50, '210541210043000522009100020001', 2, '2020-09-10 11:29:57');
+INSERT INTO `t_payment_record` VALUES (439, 1, NULL, NULL, 2718, 2, 1, 12.90, '', 1, '2020-09-10 13:00:39');
+INSERT INTO `t_payment_record` VALUES (440, 1, NULL, NULL, 2718, 2, 1, 12.90, '210541210043000542009100023001', 2, '2020-09-10 13:16:40');
+INSERT INTO `t_payment_record` VALUES (441, 1, NULL, NULL, 2718, 2, 1, 12.90, '', 1, '2020-09-10 13:17:25');
+INSERT INTO `t_payment_record` VALUES (442, 1, NULL, NULL, 2718, 2, 1, 12.90, '', 1, '2020-09-10 13:18:41');
+INSERT INTO `t_payment_record` VALUES (443, 1, NULL, NULL, 2718, 2, 1, 12.90, '', 1, '2020-09-10 13:19:18');
+INSERT INTO `t_payment_record` VALUES (444, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 16:59:18');
+INSERT INTO `t_payment_record` VALUES (445, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:00:56');
+INSERT INTO `t_payment_record` VALUES (446, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:00:59');
+INSERT INTO `t_payment_record` VALUES (447, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:00');
+INSERT INTO `t_payment_record` VALUES (448, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:07');
+INSERT INTO `t_payment_record` VALUES (449, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:38');
+INSERT INTO `t_payment_record` VALUES (450, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:42');
+INSERT INTO `t_payment_record` VALUES (451, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:45');
+INSERT INTO `t_payment_record` VALUES (452, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:49');
+INSERT INTO `t_payment_record` VALUES (453, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:01:52');
+INSERT INTO `t_payment_record` VALUES (454, 1, NULL, NULL, 2731, 2, 1, 14.80, '', 1, '2020-09-10 17:02:24');
+INSERT INTO `t_payment_record` VALUES (455, 1, NULL, NULL, 2731, 2, 1, 14.80, '210541210043000522009100021001', 2, '2020-09-10 17:02:25');
+INSERT INTO `t_payment_record` VALUES (456, 1, NULL, NULL, 2738, 2, 1, 13.70, '', 1, '2020-09-10 20:11:36');
+INSERT INTO `t_payment_record` VALUES (457, 1, NULL, NULL, 2738, 2, 1, 13.70, '', 1, '2020-09-10 20:11:37');
+INSERT INTO `t_payment_record` VALUES (458, 1, NULL, NULL, 2741, 2, 1, 15.20, '', 1, '2020-09-11 09:48:48');
+INSERT INTO `t_payment_record` VALUES (459, 1, NULL, NULL, 2741, 2, 1, 15.20, '210541210043000512009110023002', 2, '2020-09-11 09:48:49');
+INSERT INTO `t_payment_record` VALUES (460, 1, NULL, NULL, 2738, 2, 1, 12.60, '', 1, '2020-09-11 22:37:40');
+INSERT INTO `t_payment_record` VALUES (461, 1, NULL, NULL, 2738, 2, 1, 12.60, '', 1, '2020-09-12 16:07:42');
+INSERT INTO `t_payment_record` VALUES (462, 1, NULL, NULL, 2738, 2, 1, 12.60, '', 1, '2020-09-12 17:12:14');
+INSERT INTO `t_payment_record` VALUES (463, 1, NULL, NULL, 2738, 2, 1, 12.60, '', 1, '2020-09-12 17:12:16');
+INSERT INTO `t_payment_record` VALUES (464, 1, NULL, NULL, 2738, 2, 1, 12.60, '', 1, '2020-09-12 17:12:40');
+INSERT INTO `t_payment_record` VALUES (465, 1, NULL, NULL, 2812, 2, 2, 16.70, '210541210043000542009170024001', 2, '2020-09-17 22:35:42');
+INSERT INTO `t_payment_record` VALUES (466, 1, NULL, NULL, 42, 1, 1, 67.00, '', 1, '2020-09-22 18:14:33');
+INSERT INTO `t_payment_record` VALUES (467, 1, NULL, NULL, 21, 1, 2, 114.00, '', 1, '2020-09-22 18:58:42');
+INSERT INTO `t_payment_record` VALUES (468, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:10:11');
+INSERT INTO `t_payment_record` VALUES (469, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:10:19');
+INSERT INTO `t_payment_record` VALUES (470, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:10:30');
+INSERT INTO `t_payment_record` VALUES (471, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:11:10');
+INSERT INTO `t_payment_record` VALUES (472, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:11:53');
+INSERT INTO `t_payment_record` VALUES (473, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:12:09');
+INSERT INTO `t_payment_record` VALUES (474, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:12:57');
+INSERT INTO `t_payment_record` VALUES (475, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:13:30');
+INSERT INTO `t_payment_record` VALUES (476, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:13:43');
+INSERT INTO `t_payment_record` VALUES (477, 1, NULL, NULL, 78, 1, 1, 3.00, '', 1, '2020-09-29 10:14:20');
+
+-- ----------------------------
+-- Table structure for t_phone
+-- ----------------------------
+DROP TABLE IF EXISTS `t_phone`;
+CREATE TABLE `t_phone`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `type` int(1) NULL DEFAULT NULL COMMENT '数据类型(1:报警电话,2:客服电话,3:包车调度电话)',
+  `platform` int(1) NULL DEFAULT NULL COMMENT '是否是平台(1=是,2=否)',
+  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电话号码',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统电话设置' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_phone
+-- ----------------------------
+INSERT INTO `t_phone` VALUES (1, 1, 1, '110', 1);
+INSERT INTO `t_phone` VALUES (11, 2, 1, '0772-3236699', 1);
+
+-- ----------------------------
+-- Table structure for t_problem
+-- ----------------------------
+DROP TABLE IF EXISTS `t_problem`;
+CREATE TABLE `t_problem`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '提问内容',
+  `answer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回答内容',
+  `handleUserId` int(11) NULL DEFAULT NULL COMMENT '处理人id',
+  `handleTime` datetime(0) NULL DEFAULT NULL COMMENT '处理时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '提问时间',
+  `state` int(1) NULL DEFAULT NULL COMMENT '状态(1=待处理,2=已处理)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '在线客服' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_problem
+-- ----------------------------
+INSERT INTO `t_problem` VALUES (36, 194, '系统设置、开发票申请功能没有', NULL, NULL, NULL, '2020-08-31 09:19:15', 1);
+INSERT INTO `t_problem` VALUES (37, 194, '系统设置、开发票申请功能没有', NULL, NULL, NULL, '2020-08-31 09:19:20', 1);
+
+-- ----------------------------
+-- Table structure for t_pub_transaction_details
+-- ----------------------------
+DROP TABLE IF EXISTS `t_pub_transaction_details`;
+CREATE TABLE `t_pub_transaction_details`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '备注',
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额/积分',
+  `state` smallint(1) NULL DEFAULT 1 COMMENT '状态(1=增加,2=减少)',
+  `type` smallint(1) NULL DEFAULT 1 COMMENT '类型(1=金额,2=积分)',
+  `userType` smallint(1) NULL DEFAULT 1 COMMENT '类型(1=用户,2=司机)',
+  `orderType` smallint(1) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流,5=余额充值)',
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 895 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_croatian_ci COMMENT = '交易明细(司机/用户)' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_pub_transaction_details
+-- ----------------------------
+INSERT INTO `t_pub_transaction_details` VALUES (827, 184, '2020-08-17 19:14:08', '完成订单', 7.00, 2, 1, 1, 2, 2584);
+INSERT INTO `t_pub_transaction_details` VALUES (828, 185, '2020-08-17 19:19:07', '完成订单', 0.01, 2, 1, 1, 2, 2585);
+INSERT INTO `t_pub_transaction_details` VALUES (829, 186, '2020-08-17 19:21:24', '完成订单', 0.01, 2, 1, 1, 2, 2586);
+INSERT INTO `t_pub_transaction_details` VALUES (830, 184, '2020-08-17 19:28:00', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (831, 184, '2020-08-17 20:22:36', '完成订单', 6.00, 2, 1, 1, 2, 2588);
+INSERT INTO `t_pub_transaction_details` VALUES (832, 187, '2020-08-18 09:54:37', '完成订单', 0.01, 2, 1, 1, 2, 2589);
+INSERT INTO `t_pub_transaction_details` VALUES (833, 187, '2020-08-18 09:56:19', '完成订单', 10.00, 2, 1, 1, 2, 2590);
+INSERT INTO `t_pub_transaction_details` VALUES (834, 188, '2020-08-19 17:45:44', '完成订单', 0.01, 2, 1, 1, 2, 2606);
+INSERT INTO `t_pub_transaction_details` VALUES (835, 188, '2020-08-19 18:04:27', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (836, 188, '2020-08-19 18:04:45', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (837, 188, '2020-08-19 18:10:57', '完成订单', 0.01, 2, 1, 1, 2, 2609);
+INSERT INTO `t_pub_transaction_details` VALUES (838, 188, '2020-08-19 18:12:40', '完成订单', 0.01, 2, 1, 1, 2, 2610);
+INSERT INTO `t_pub_transaction_details` VALUES (839, 188, '2020-08-19 18:13:18', '完成订单', 0.01, 2, 1, 1, 2, 2611);
+INSERT INTO `t_pub_transaction_details` VALUES (840, 189, '2020-08-19 18:17:43', '完成订单', 0.01, 2, 1, 1, 2, 2612);
+INSERT INTO `t_pub_transaction_details` VALUES (841, 184, '2020-08-20 16:02:47', '完成订单', 7.00, 2, 1, 1, 2, 2615);
+INSERT INTO `t_pub_transaction_details` VALUES (842, 184, '2020-08-21 09:37:57', '完成订单', 6.00, 2, 1, 1, 2, 2617);
+INSERT INTO `t_pub_transaction_details` VALUES (843, 184, '2020-08-22 20:30:57', '完成订单', 6.80, 2, 1, 1, 2, 2628);
+INSERT INTO `t_pub_transaction_details` VALUES (844, 242, '2020-09-02 16:41:09', '完成订单', 6.00, 2, 1, 1, 2, 2654);
+INSERT INTO `t_pub_transaction_details` VALUES (845, 242, '2020-09-02 16:44:36', '完成订单', 1.00, 2, 1, 1, 2, 2655);
+INSERT INTO `t_pub_transaction_details` VALUES (846, 242, '2020-09-02 17:39:15', '完成订单', 1.00, 2, 1, 1, 2, 2659);
+INSERT INTO `t_pub_transaction_details` VALUES (847, 242, '2020-09-02 17:44:55', '完成订单', 0.10, 2, 1, 1, 2, 2660);
+INSERT INTO `t_pub_transaction_details` VALUES (848, 184, '2020-09-02 17:48:13', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (849, 184, '2020-09-03 13:59:52', '取消订单', 5.00, 2, 1, 1, 2, 2587);
+INSERT INTO `t_pub_transaction_details` VALUES (850, 245, '2020-09-03 14:25:52', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (851, 245, '2020-09-03 14:37:27', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (852, 245, '2020-09-03 14:56:11', '余额充值', 0.01, 2, 1, 1, 5, NULL);
+INSERT INTO `t_pub_transaction_details` VALUES (853, 194, '2020-09-04 15:50:43', '完成订单', 23.40, 2, 1, 1, 2, 2666);
+INSERT INTO `t_pub_transaction_details` VALUES (854, 194, '2020-09-04 15:56:36', '取消订单', 0.01, 2, 1, 1, 2, 2665);
+INSERT INTO `t_pub_transaction_details` VALUES (855, 194, '2020-09-04 16:34:05', '取消订单', 0.01, 2, 1, 1, 2, 2667);
+INSERT INTO `t_pub_transaction_details` VALUES (856, 291, '2020-09-06 05:49:32', '取消订单', 0.01, 2, 1, 1, 2, 2694);
+INSERT INTO `t_pub_transaction_details` VALUES (857, 245, '2020-09-09 10:12:33', '完成订单', 0.01, 2, 1, 1, 2, 2712);
+INSERT INTO `t_pub_transaction_details` VALUES (858, 334, '2020-09-10 11:30:18', '完成订单', 9.50, 2, 1, 1, 2, 2720);
+INSERT INTO `t_pub_transaction_details` VALUES (859, 342, '2020-09-10 13:16:48', '完成订单', 12.90, 2, 1, 1, 2, 2718);
+INSERT INTO `t_pub_transaction_details` VALUES (860, 242, '2020-09-10 17:02:43', '完成订单', 14.80, 2, 1, 1, 2, 2731);
+INSERT INTO `t_pub_transaction_details` VALUES (861, 242, '2020-09-11 09:48:56', '完成订单', 15.20, 2, 1, 1, 2, 2741);
+INSERT INTO `t_pub_transaction_details` VALUES (862, 184, '2020-09-11 10:55:19', '完成订单', 0.01, 2, 1, 1, 2, 2658);
+INSERT INTO `t_pub_transaction_details` VALUES (863, 424, '2020-09-17 22:35:55', '完成订单', 16.70, 2, 1, 1, 2, 2812);
+INSERT INTO `t_pub_transaction_details` VALUES (864, 905, '2020-09-22 18:23:32', '司机改派支付', 0.01, 2, 1, 2, 1, 48);
+INSERT INTO `t_pub_transaction_details` VALUES (865, 183, '2020-09-23 11:16:36', '完成订单', 114.00, 2, 1, 1, 1, 21);
+INSERT INTO `t_pub_transaction_details` VALUES (866, 190, '2020-09-23 14:25:35', '完成订单', 10.00, 2, 1, 1, 1, 53);
+INSERT INTO `t_pub_transaction_details` VALUES (867, 190, '2020-09-23 14:58:33', '完成订单', 8.00, 2, 1, 1, 1, 55);
+INSERT INTO `t_pub_transaction_details` VALUES (868, 190, '2020-09-23 15:23:04', '完成订单', 8.00, 2, 1, 1, 1, 56);
+INSERT INTO `t_pub_transaction_details` VALUES (869, 190, '2020-09-23 15:38:08', '完成订单', 1.00, 2, 1, 1, 2, 2825);
+INSERT INTO `t_pub_transaction_details` VALUES (870, 190, '2020-09-23 15:39:50', '完成订单', 8.00, 2, 1, 1, 1, 58);
+INSERT INTO `t_pub_transaction_details` VALUES (871, 190, '2020-09-23 16:05:28', '完成订单', 8.00, 2, 1, 1, 1, 59);
+INSERT INTO `t_pub_transaction_details` VALUES (872, 190, '2020-09-23 16:42:44', '取消订单', 3.00, 2, 1, 1, 1, 60);
+INSERT INTO `t_pub_transaction_details` VALUES (873, 190, '2020-09-24 15:44:37', '完成订单', 10.00, 2, 1, 1, 1, 61);
+INSERT INTO `t_pub_transaction_details` VALUES (874, 190, '2020-09-24 16:17:58', '完成订单', 8.00, 2, 1, 1, 1, 64);
+INSERT INTO `t_pub_transaction_details` VALUES (875, 190, '2020-09-24 16:39:16', '完成订单', 8.00, 2, 1, 1, 1, 65);
+INSERT INTO `t_pub_transaction_details` VALUES (876, 190, '2020-09-24 16:45:23', '完成订单', 8.00, 2, 1, 1, 1, 66);
+INSERT INTO `t_pub_transaction_details` VALUES (877, 190, '2020-09-24 17:46:03', '取消订单', 3.00, 2, 1, 1, 1, 72);
+INSERT INTO `t_pub_transaction_details` VALUES (878, 189, '2020-09-29 10:15:51', '取消订单', 3.00, 2, 1, 1, 1, 78);
+INSERT INTO `t_pub_transaction_details` VALUES (879, 189, '2020-09-29 10:16:02', '完成订单', 67.00, 2, 1, 1, 1, 42);
+INSERT INTO `t_pub_transaction_details` VALUES (880, 189, '2020-09-29 10:20:21', '完成订单', 19.00, 2, 1, 1, 1, 77);
+INSERT INTO `t_pub_transaction_details` VALUES (881, 189, '2020-09-29 10:37:48', '完成订单', 30.00, 2, 1, 1, 1, 79);
+INSERT INTO `t_pub_transaction_details` VALUES (882, 189, '2020-09-29 11:23:56', '完成订单', 21.00, 2, 1, 1, 1, 45);
+INSERT INTO `t_pub_transaction_details` VALUES (883, 189, '2020-09-29 11:30:31', '完成订单', 28.00, 2, 1, 1, 1, 81);
+INSERT INTO `t_pub_transaction_details` VALUES (884, 189, '2020-09-29 11:32:44', '完成订单', 18.00, 2, 1, 1, 1, 49);
+INSERT INTO `t_pub_transaction_details` VALUES (885, 189, '2020-09-29 11:41:54', '完成订单', 19.00, 2, 1, 1, 1, 74);
+INSERT INTO `t_pub_transaction_details` VALUES (886, 189, '2020-09-29 11:42:02', '完成订单', 19.00, 2, 1, 1, 1, 75);
+INSERT INTO `t_pub_transaction_details` VALUES (887, 189, '2020-09-29 11:42:10', '完成订单', 110.00, 2, 1, 1, 1, 76);
+INSERT INTO `t_pub_transaction_details` VALUES (888, 189, '2020-09-29 11:43:41', '完成订单', 8.00, 2, 1, 1, 1, 82);
+INSERT INTO `t_pub_transaction_details` VALUES (889, 189, '2020-09-29 11:47:03', '完成订单', 8.00, 2, 1, 1, 1, 83);
+INSERT INTO `t_pub_transaction_details` VALUES (890, 189, '2020-09-29 11:49:00', '完成订单', 28.00, 2, 1, 1, 1, 84);
+INSERT INTO `t_pub_transaction_details` VALUES (891, 189, '2020-09-29 11:52:45', '完成订单', 28.00, 2, 1, 1, 1, 87);
+INSERT INTO `t_pub_transaction_details` VALUES (892, 189, '2020-09-29 11:54:42', '完成订单', 38.00, 2, 1, 1, 1, 88);
+INSERT INTO `t_pub_transaction_details` VALUES (893, 189, '2020-09-29 18:40:01', '完成订单', 10.00, 2, 1, 1, 1, 85);
+INSERT INTO `t_pub_transaction_details` VALUES (894, 189, '2020-09-29 18:40:13', '完成订单', 28.00, 2, 1, 1, 1, 86);
+
+-- ----------------------------
+-- Table structure for t_pub_withdrawal
+-- ----------------------------
+DROP TABLE IF EXISTS `t_pub_withdrawal`;
+CREATE TABLE `t_pub_withdrawal`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `handleTime` datetime(0) NULL DEFAULT NULL COMMENT '处理时间',
+  `balance` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '原钱包余额',
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '提现金额',
+  `state` int(1) NULL DEFAULT 1 COMMENT '状态(1=待处理,2=成功,3=失败)',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '备注',
+  `code` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '银行账号',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '账户持有人姓名',
+  `userType` int(1) NULL DEFAULT 1 COMMENT '用户类型(1=用户,2=司机)',
+  `type` int(1) NULL DEFAULT NULL COMMENT '提现类型(1=活动收入提现,2=业务收入提现)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '申请时间',
+  `flag` int(1) NULL DEFAULT 1 COMMENT '1:创建,2:修改,3:删除',
+  `withdrawalType` int(1) NULL DEFAULT 1 COMMENT '提现方式 1=银行卡  2=线下',
+  `serialNo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NULL DEFAULT NULL COMMENT '银行转账申请码,用于查询交易状态',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_croatian_ci COMMENT = '提现记录表(司机/用户)' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_pub_withdrawal
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_push_auxiliary
+-- ----------------------------
+DROP TABLE IF EXISTS `t_push_auxiliary`;
+CREATE TABLE `t_push_auxiliary`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `orderType` int(1) NULL DEFAULT NULL COMMENT '订单类型',
+  `driverId` int(11) NULL DEFAULT NULL COMMENT '司机id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '推单的时间',
+  `num` int(11) NULL DEFAULT NULL COMMENT '推单次数',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '推单辅助表-用于主动调用抢单数据的记录' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_push_auxiliary
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_reassign
+-- ----------------------------
+DROP TABLE IF EXISTS `t_reassign`;
+CREATE TABLE `t_reassign`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `orderType` int(11) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `originalDriverId` int(11) NULL DEFAULT NULL COMMENT '申请司机id',
+  `originalCarId` int(11) NULL DEFAULT NULL COMMENT '原始车辆id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '申请时间',
+  `nowDriverId` int(11) NULL DEFAULT NULL COMMENT '改派后的司机id',
+  `nowCarId` int(11) NULL DEFAULT NULL COMMENT '改派后的车辆id',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '改派支付金额',
+  `payType` int(1) NULL DEFAULT NULL COMMENT '改派支付方式(1=微信,2=支付宝,3=余额)',
+  `payTime` datetime(0) NULL DEFAULT NULL COMMENT '支付完成时间',
+  `payOrder` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '第三方支付订单号',
+  `state` int(1) NULL DEFAULT NULL COMMENT '1=提交申请,2=已支付,3=已改派,4=已取消,5=已拒绝',
+  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '改派原因',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '备注',
+  `completeTime` datetime(0) NULL DEFAULT NULL COMMENT '改派完成时间',
+  `reviewer` int(11) NULL DEFAULT NULL COMMENT '审核人',
+  `reviewerType` int(1) NULL DEFAULT NULL COMMENT '审核人类型(1=调度,2=后台人员)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '订单改派' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_reassign
+-- ----------------------------
+INSERT INTO `t_reassign` VALUES (1, 1, 48, 905, 943, '2020-09-22 18:23:32', NULL, NULL, 0.01, 3, '2020-09-22 18:23:32', NULL, 2, '个人事务', '', NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_region
+-- ----------------------------
+DROP TABLE IF EXISTS `t_region`;
+CREATE TABLE `t_region`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '城市名称',
+  `code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `citycode` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+  `parent_id` int(11) NULL DEFAULT NULL COMMENT '父级ID',
+  `english` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '英文名称',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3537 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '省市区三级联动' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_region
+-- ----------------------------
+INSERT INTO `t_region` VALUES (1, '北京市', '110000', '010', 0, 'Beijing Municipality');
+INSERT INTO `t_region` VALUES (2, '北京市市辖区', '110100', '010', 1, 'Beijing municipal');
+INSERT INTO `t_region` VALUES (3, '东城区', '110101', '010', 2, 'Dongcheng');
+INSERT INTO `t_region` VALUES (4, '西城区', '110102', '010', 2, 'Xicheng');
+INSERT INTO `t_region` VALUES (5, '朝阳区', '110105', '010', 2, 'Chaoyang');
+INSERT INTO `t_region` VALUES (6, '丰台区', '110106', '010', 2, 'FengTai');
+INSERT INTO `t_region` VALUES (7, '石景山区', '110107', '010', 2, 'Shijingshan');
+INSERT INTO `t_region` VALUES (8, '海淀区', '110108', '010', 2, 'Haidian');
+INSERT INTO `t_region` VALUES (9, '门头沟区', '110109', '010', 2, 'Mentougou');
+INSERT INTO `t_region` VALUES (10, '房山区', '110111', '010', 2, 'Fangshan');
+INSERT INTO `t_region` VALUES (11, '通州区', '110112', '010', 2, 'Tongzhou');
+INSERT INTO `t_region` VALUES (12, '顺义区', '110113', '010', 2, 'Shunyi');
+INSERT INTO `t_region` VALUES (13, '昌平区', '110114', '010', 2, 'Changping');
+INSERT INTO `t_region` VALUES (14, '大兴区', '110115', '010', 2, 'Daxing');
+INSERT INTO `t_region` VALUES (15, '怀柔区', '110116', '010', 2, 'Huairou');
+INSERT INTO `t_region` VALUES (16, '平谷区', '110117', '010', 2, 'Pinggu');
+INSERT INTO `t_region` VALUES (17, '密云区', '110118', '010', 2, 'Miyun');
+INSERT INTO `t_region` VALUES (18, '延庆区', '110119', '010', 2, 'Yanqing');
+INSERT INTO `t_region` VALUES (19, '天津市', '120000', '022', 0, 'Tianjin Municipality ');
+INSERT INTO `t_region` VALUES (20, '天津市市辖区', '120100', '022', 19, 'Tianjin municipal');
+INSERT INTO `t_region` VALUES (21, '和平区', '120101', '022', 20, 'peace zone ');
+INSERT INTO `t_region` VALUES (22, '河东区', '120102', '022', 20, 'Hedong');
+INSERT INTO `t_region` VALUES (23, '河西区', '120103', '022', 20, 'Hexi');
+INSERT INTO `t_region` VALUES (24, '南开区', '120104', '022', 20, 'Nankai');
+INSERT INTO `t_region` VALUES (25, '河北区', '120105', '022', 20, 'Hebei');
+INSERT INTO `t_region` VALUES (26, '红桥区', '120106', '022', 20, 'Hongqiao');
+INSERT INTO `t_region` VALUES (27, '东丽区', '120110', '022', 20, 'dongli');
+INSERT INTO `t_region` VALUES (28, '西青区', '120111', '022', 20, 'Xiqing');
+INSERT INTO `t_region` VALUES (29, '津南区', '120112', '022', 20, 'jinnan');
+INSERT INTO `t_region` VALUES (30, '北辰区', '120113', '022', 20, 'Beichen');
+INSERT INTO `t_region` VALUES (31, '武清区', '120114', '022', 20, 'Wuqing');
+INSERT INTO `t_region` VALUES (32, '宝坻区', '120115', '022', 20, 'Baodi');
+INSERT INTO `t_region` VALUES (33, '滨海新区', '120116', '022', 20, 'binhai new area');
+INSERT INTO `t_region` VALUES (34, '宁河区', '120117', '022', 20, 'Ninghe');
+INSERT INTO `t_region` VALUES (35, '静海区', '120118', '022', 20, 'Jinghai');
+INSERT INTO `t_region` VALUES (36, '蓟州区', '120119', '022', 20, 'Thistle');
+INSERT INTO `t_region` VALUES (37, '河北省', '130000', '', 0, 'Hebei Province ');
+INSERT INTO `t_region` VALUES (38, '石家庄市', '130100', '0311', 37, 'Shijiazhuang');
+INSERT INTO `t_region` VALUES (39, '石家庄市市辖区', '130101', '0311', 38, 'Shijiazhuang municipal');
+INSERT INTO `t_region` VALUES (40, '长安区', '130102', '0311', 38, 'Changan');
+INSERT INTO `t_region` VALUES (41, '桥西区', '130104', '0311', 38, 'Qiaoxi');
+INSERT INTO `t_region` VALUES (42, '新华区', '130105', '0311', 38, 'Xinhua');
+INSERT INTO `t_region` VALUES (43, '井陉矿区', '130107', '0311', 38, 'Jingxing Mining');
+INSERT INTO `t_region` VALUES (44, '裕华区', '130108', '0311', 38, 'Yuhua');
+INSERT INTO `t_region` VALUES (45, '藁城区', '130109', '0311', 38, 'Gaocheng');
+INSERT INTO `t_region` VALUES (46, '鹿泉区', '130110', '0311', 38, 'Luquan');
+INSERT INTO `t_region` VALUES (47, '栾城区', '130111', '0311', 38, 'Luancheng');
+INSERT INTO `t_region` VALUES (48, '井陉县', '130121', '0311', 38, 'Jingxing');
+INSERT INTO `t_region` VALUES (49, '正定县', '130123', '0311', 38, 'Zhengding');
+INSERT INTO `t_region` VALUES (50, '行唐县', '130125', '0311', 38, 'Xingtang');
+INSERT INTO `t_region` VALUES (51, '灵寿县', '130126', '0311', 38, 'Lingshou');
+INSERT INTO `t_region` VALUES (52, '高邑县', '130127', '0311', 38, 'Gaoyi');
+INSERT INTO `t_region` VALUES (53, '深泽县', '130128', '0311', 38, 'Shenze');
+INSERT INTO `t_region` VALUES (54, '赞皇县', '130129', '0311', 38, 'Zanhuang');
+INSERT INTO `t_region` VALUES (55, '无极县', '130130', '0311', 38, 'Wuji');
+INSERT INTO `t_region` VALUES (56, '平山县', '130131', '0311', 38, 'Pingshan');
+INSERT INTO `t_region` VALUES (57, '元氏县', '130132', '0311', 38, 'Yuanshi');
+INSERT INTO `t_region` VALUES (58, '赵县', '130133', '0311', 38, 'Zhaoxian');
+INSERT INTO `t_region` VALUES (59, '辛集市', '130181', '0311', 38, 'Xinji');
+INSERT INTO `t_region` VALUES (60, '晋州市', '130183', '0311', 38, 'Jinzhou City');
+INSERT INTO `t_region` VALUES (61, '新乐市', '130184', '0311', 38, 'Xinle City');
+INSERT INTO `t_region` VALUES (62, '唐山市', '130200', '0315', 37, 'Tangshan');
+INSERT INTO `t_region` VALUES (63, '唐山市市辖区', '130201', '0315', 62, 'Tangshan City');
+INSERT INTO `t_region` VALUES (64, '路南区', '130202', '0315', 62, 'Lunan');
+INSERT INTO `t_region` VALUES (65, '路北区', '130203', '0315', 62, 'Lubei');
+INSERT INTO `t_region` VALUES (66, '古冶区', '130204', '0315', 62, 'Guye');
+INSERT INTO `t_region` VALUES (67, '开平区', '130205', '0315', 62, 'Kaiping');
+INSERT INTO `t_region` VALUES (68, '丰南区', '130207', '0315', 62, 'fengnan');
+INSERT INTO `t_region` VALUES (69, '丰润区', '130208', '0315', 62, 'Rich area');
+INSERT INTO `t_region` VALUES (70, '曹妃甸区', '130209', '0315', 62, 'Caofeidian');
+INSERT INTO `t_region` VALUES (71, '滦县', '130223', '0315', 62, 'Luanxian');
+INSERT INTO `t_region` VALUES (72, '滦南县', '130224', '0315', 62, 'Luannan');
+INSERT INTO `t_region` VALUES (73, '乐亭县', '130225', '0315', 62, 'Leting');
+INSERT INTO `t_region` VALUES (74, '迁西县', '130227', '0315', 62, 'Qianxi');
+INSERT INTO `t_region` VALUES (75, '玉田县', '130229', '0315', 62, 'Yutian');
+INSERT INTO `t_region` VALUES (76, '遵化市', '130281', '0315', 62, 'Zunhua City');
+INSERT INTO `t_region` VALUES (77, '迁安市', '130283', '0315', 62, 'Qian\'an');
+INSERT INTO `t_region` VALUES (78, '秦皇岛市', '130300', '0335', 37, 'Qinhuangdao City');
+INSERT INTO `t_region` VALUES (79, '秦皇岛市市辖区', '130301', '0335', 78, 'Qinhuangdao municipal');
+INSERT INTO `t_region` VALUES (80, '海港区', '130302', '0335', 78, 'waterfront area ');
+INSERT INTO `t_region` VALUES (81, '山海关区', '130303', '0335', 78, 'Shanhaiguan area');
+INSERT INTO `t_region` VALUES (82, '北戴河区', '130304', '0335', 78, 'Beidaihe');
+INSERT INTO `t_region` VALUES (83, '青龙满族自治县', '130321', '0335', 78, 'Qinglong');
+INSERT INTO `t_region` VALUES (84, '昌黎县', '130322', '0335', 78, 'Changli');
+INSERT INTO `t_region` VALUES (85, '抚宁区', '130306', '0335', 78, 'Funing');
+INSERT INTO `t_region` VALUES (86, '卢龙县', '130324', '0335', 78, 'Lulong');
+INSERT INTO `t_region` VALUES (87, '邯郸市', '130400', '0310', 37, 'Handan');
+INSERT INTO `t_region` VALUES (88, '邯郸市市辖区', '130401', '0310', 87, 'Handan municipal');
+INSERT INTO `t_region` VALUES (89, '邯山区', '130402', '0310', 87, 'Hanshan');
+INSERT INTO `t_region` VALUES (90, '丛台区', '130403', '0310', 87, 'Congtai');
+INSERT INTO `t_region` VALUES (91, '复兴区', '130404', '0310', 87, 'Revival area');
+INSERT INTO `t_region` VALUES (92, '峰峰矿区', '130406', '0310', 87, 'Fengfeng mining area');
+INSERT INTO `t_region` VALUES (93, '临漳县', '130423', '0310', 87, 'Linzhang');
+INSERT INTO `t_region` VALUES (94, '成安县', '130424', '0310', 87, 'Cheng’an');
+INSERT INTO `t_region` VALUES (95, '大名县', '130425', '0310', 87, 'Daming');
+INSERT INTO `t_region` VALUES (96, '涉县', '130426', '0310', 87, 'Shexian');
+INSERT INTO `t_region` VALUES (97, '磁县', '130427', '0310', 87, 'Cixian');
+INSERT INTO `t_region` VALUES (98, '肥乡区', '130407', '0310', 87, 'Feixiang');
+INSERT INTO `t_region` VALUES (99, '永年区', '130408', '0310', 87, 'Yongnian');
+INSERT INTO `t_region` VALUES (100, '邱县', '130430', '0310', 87, 'Qiuxian');
+INSERT INTO `t_region` VALUES (101, '鸡泽县', '130431', '0310', 87, 'Jize');
+INSERT INTO `t_region` VALUES (102, '广平县', '130432', '0310', 87, 'Guangping');
+INSERT INTO `t_region` VALUES (103, '馆陶县', '130433', '0310', 87, 'Guantao');
+INSERT INTO `t_region` VALUES (104, '魏县', '130434', '0310', 87, 'Weixian');
+INSERT INTO `t_region` VALUES (105, '曲周县', '130435', '0310', 87, 'Quzhou');
+INSERT INTO `t_region` VALUES (106, '武安市', '130481', '0310', 87, 'Wuan City');
+INSERT INTO `t_region` VALUES (107, '邢台市', '130500', '0319', 37, 'Xingtai');
+INSERT INTO `t_region` VALUES (108, '邢台市市辖区', '130501', '0319', 107, 'Xingtai municipal');
+INSERT INTO `t_region` VALUES (109, '桥东区', '130502', '0319', 107, 'Qiaodong');
+INSERT INTO `t_region` VALUES (110, '桥西区', '130503', '0319', 107, 'Qiaoxi');
+INSERT INTO `t_region` VALUES (111, '邢台县', '130521', '0319', 107, 'Xingtai');
+INSERT INTO `t_region` VALUES (112, '临城县', '130522', '0319', 107, 'Lincheng');
+INSERT INTO `t_region` VALUES (113, '内丘县', '130523', '0319', 107, 'Neiqiu');
+INSERT INTO `t_region` VALUES (114, '柏乡县', '130524', '0319', 107, 'Baixiang');
+INSERT INTO `t_region` VALUES (115, '隆尧县', '130525', '0319', 107, 'Longyao');
+INSERT INTO `t_region` VALUES (116, '任县', '130526', '0319', 107, 'Renxian');
+INSERT INTO `t_region` VALUES (117, '南和县', '130527', '0319', 107, 'Nanhe');
+INSERT INTO `t_region` VALUES (118, '宁晋县', '130528', '0319', 107, 'Ningjin');
+INSERT INTO `t_region` VALUES (119, '巨鹿县', '130529', '0319', 107, 'Julu');
+INSERT INTO `t_region` VALUES (120, '新河县', '130530', '0319', 107, 'Xinhe');
+INSERT INTO `t_region` VALUES (121, '广宗县', '130531', '0319', 107, 'Guangzong');
+INSERT INTO `t_region` VALUES (122, '平乡县', '130532', '0319', 107, 'Pingxiang');
+INSERT INTO `t_region` VALUES (123, '威县', '130533', '0319', 107, 'Weixian');
+INSERT INTO `t_region` VALUES (124, '清河县', '130534', '0319', 107, 'Qinhe');
+INSERT INTO `t_region` VALUES (125, '临西县', '130535', '0319', 107, 'Linxi');
+INSERT INTO `t_region` VALUES (126, '南宫市', '130581', '0319', 107, 'nangong');
+INSERT INTO `t_region` VALUES (127, '沙河市', '130582', '0319', 107, 'shahe');
+INSERT INTO `t_region` VALUES (128, '保定市', '130600', '0312', 37, 'Baoding');
+INSERT INTO `t_region` VALUES (129, '保定市市辖区', '130601', '0312', 128, 'Baoding municipal');
+INSERT INTO `t_region` VALUES (130, '竞秀区', '130602', '0312', 128, 'Competition show area');
+INSERT INTO `t_region` VALUES (131, '莲池区', '130606', '0312', 128, 'Lotus pond area');
+INSERT INTO `t_region` VALUES (132, '满城区', '130607', '0312', 128, 'Manchu');
+INSERT INTO `t_region` VALUES (133, '清苑区', '130608', '0312', 128, 'Qingyuan');
+INSERT INTO `t_region` VALUES (134, '涞水县', '130623', '0312', 128, 'Laishui');
+INSERT INTO `t_region` VALUES (135, '阜平县', '130624', '0312', 128, 'Fuping');
+INSERT INTO `t_region` VALUES (136, '徐水区', '130609', '0312', 128, 'Xushui');
+INSERT INTO `t_region` VALUES (137, '定兴县', '130626', '0312', 128, 'Dingxing');
+INSERT INTO `t_region` VALUES (138, '唐县', '130627', '0312', 128, 'Tangxian');
+INSERT INTO `t_region` VALUES (139, '高阳县', '130628', '0312', 128, 'Gaoyang');
+INSERT INTO `t_region` VALUES (140, '容城县', '130629', '0312', 128, 'Rongcheng');
+INSERT INTO `t_region` VALUES (141, '涞源县', '130630', '0312', 128, 'Laiyuan');
+INSERT INTO `t_region` VALUES (142, '望都县', '130631', '0312', 128, 'Wangdu');
+INSERT INTO `t_region` VALUES (143, '安新县', '130632', '0312', 128, 'Anxin');
+INSERT INTO `t_region` VALUES (144, '易县', '130633', '0312', 128, 'Yixian');
+INSERT INTO `t_region` VALUES (145, '曲阳县', '130634', '0312', 128, 'Quyang');
+INSERT INTO `t_region` VALUES (146, '蠡县', '130635', '0312', 128, 'Lixian');
+INSERT INTO `t_region` VALUES (147, '顺平县', '130636', '0312', 128, 'Shunping');
+INSERT INTO `t_region` VALUES (148, '博野县', '130637', '0312', 128, 'Boye');
+INSERT INTO `t_region` VALUES (149, '雄县', '130638', '0312', 128, 'Xiongxian');
+INSERT INTO `t_region` VALUES (150, '涿州市', '130681', '0312', 128, 'Zhuozhou');
+INSERT INTO `t_region` VALUES (151, '定州市', '130682', '0312', 128, 'Dingzhou');
+INSERT INTO `t_region` VALUES (152, '安国市', '130683', '0312', 128, 'Anguo');
+INSERT INTO `t_region` VALUES (153, '高碑店市', '130684', '0312', 128, 'Gaobeidian City');
+INSERT INTO `t_region` VALUES (154, '张家口市', '130700', '0313', 37, 'Zhangjiakou');
+INSERT INTO `t_region` VALUES (155, '张家口市市辖区', '130701', '0313', 154, 'Zhangjiakou municipal');
+INSERT INTO `t_region` VALUES (156, '桥东区', '130702', '0313', 154, 'Qiaodong');
+INSERT INTO `t_region` VALUES (157, '桥西区', '130703', '0313', 154, 'Qiaoxi');
+INSERT INTO `t_region` VALUES (158, '宣化区', '130705', '0313', 154, 'Xuanhua');
+INSERT INTO `t_region` VALUES (159, '下花园区', '130706', '0313', 154, 'Lower garden area');
+INSERT INTO `t_region` VALUES (160, '张北县', '130722', '0313', 154, 'Zhangbei');
+INSERT INTO `t_region` VALUES (161, '康保县', '130723', '0313', 154, 'Kangbao');
+INSERT INTO `t_region` VALUES (162, '沽源县', '130724', '0313', 154, 'Guyuan');
+INSERT INTO `t_region` VALUES (163, '尚义县', '130725', '0313', 154, 'Shangyi');
+INSERT INTO `t_region` VALUES (164, '蔚县', '130726', '0313', 154, 'Yuxian (ain Hebei Province) ');
+INSERT INTO `t_region` VALUES (165, '阳原县', '130727', '0313', 154, 'Yangyuan');
+INSERT INTO `t_region` VALUES (166, '怀安县', '130728', '0313', 154, 'Huai\'an');
+INSERT INTO `t_region` VALUES (167, '万全区', '130708', '0313', 154, 'Wanquan');
+INSERT INTO `t_region` VALUES (168, '怀来县', '130730', '0313', 154, 'Huailai');
+INSERT INTO `t_region` VALUES (169, '涿鹿县', '130731', '0313', 154, 'Zhuolu');
+INSERT INTO `t_region` VALUES (170, '赤城县', '130732', '0313', 154, 'Chicheng');
+INSERT INTO `t_region` VALUES (171, '崇礼区', '130709', '0313', 154, 'Chongli');
+INSERT INTO `t_region` VALUES (172, '承德市', '130800', '0314', 37, 'Chengde');
+INSERT INTO `t_region` VALUES (173, '承德市市辖区', '130801', '0314', 172, 'Chengde municipal');
+INSERT INTO `t_region` VALUES (174, '双桥区', '130802', '0314', 172, 'Shuangqiao');
+INSERT INTO `t_region` VALUES (175, '双滦区', '130803', '0314', 172, 'shuangluan');
+INSERT INTO `t_region` VALUES (176, '鹰手营子矿区', '130804', '0314', 172, 'Yingshouyingzi Mining');
+INSERT INTO `t_region` VALUES (177, '承德县', '130821', '0314', 172, 'Chengde');
+INSERT INTO `t_region` VALUES (178, '兴隆县', '130822', '0314', 172, 'Xinglong');
+INSERT INTO `t_region` VALUES (179, '平泉市', '130881', '0314', 172, 'Pingquan City');
+INSERT INTO `t_region` VALUES (180, '滦平县', '130824', '0314', 172, 'Luanping');
+INSERT INTO `t_region` VALUES (181, '隆化县', '130825', '0314', 172, 'Longhua');
+INSERT INTO `t_region` VALUES (182, '丰宁满族自治县', '130826', '0314', 172, 'Fengning Manchu Autonomous');
+INSERT INTO `t_region` VALUES (183, '宽城满族自治县', '130827', '0314', 172, 'kuancheng');
+INSERT INTO `t_region` VALUES (184, '围场满族蒙古族自治县', '130828', '0314', 172, 'Manchu Mongol Autonomous, paddock');
+INSERT INTO `t_region` VALUES (185, '沧州市', '130900', '0317', 37, 'Cangzhou');
+INSERT INTO `t_region` VALUES (186, '沧州市市辖区', '130901', '0317', 185, 'Cangzhou municipal');
+INSERT INTO `t_region` VALUES (187, '新华区', '130902', '0317', 185, 'Xinhua');
+INSERT INTO `t_region` VALUES (188, '运河区', '130903', '0317', 185, 'canal zone');
+INSERT INTO `t_region` VALUES (189, '沧县', '130921', '0317', 185, 'Cangxian');
+INSERT INTO `t_region` VALUES (190, '青县', '130922', '0317', 185, 'Qingxian');
+INSERT INTO `t_region` VALUES (191, '东光县', '130923', '0317', 185, 'Dongguang');
+INSERT INTO `t_region` VALUES (192, '海兴县', '130924', '0317', 185, 'Haixing');
+INSERT INTO `t_region` VALUES (193, '盐山县', '130925', '0317', 185, 'Yanshan');
+INSERT INTO `t_region` VALUES (194, '肃宁县', '130926', '0317', 185, 'Suning');
+INSERT INTO `t_region` VALUES (195, '南皮县', '130927', '0317', 185, 'Nanpi');
+INSERT INTO `t_region` VALUES (196, '吴桥县', '130928', '0317', 185, 'Wuqiao');
+INSERT INTO `t_region` VALUES (197, '献县', '130929', '0317', 185, 'Xianxian');
+INSERT INTO `t_region` VALUES (198, '孟村回族自治县', '130930', '0317', 185, 'Hui Autonomousof Mengcun ');
+INSERT INTO `t_region` VALUES (199, '泊头市', '130981', '0317', 185, 'Botou');
+INSERT INTO `t_region` VALUES (200, '任丘市', '130982', '0317', 185, 'Renqiu');
+INSERT INTO `t_region` VALUES (201, '黄骅市', '130983', '0317', 185, 'Huanghua City');
+INSERT INTO `t_region` VALUES (202, '河间市', '130984', '0317', 185, 'Hejian');
+INSERT INTO `t_region` VALUES (203, '廊坊市', '131000', '0316', 37, 'Langfang City');
+INSERT INTO `t_region` VALUES (204, '廊坊市市辖区', '131001', '0316', 203, 'Langfang municipal');
+INSERT INTO `t_region` VALUES (205, '安次区', '131002', '0316', 203, 'Anci');
+INSERT INTO `t_region` VALUES (206, '广阳区', '131003', '0316', 203, 'Guangyang');
+INSERT INTO `t_region` VALUES (207, '固安县', '131022', '0316', 203, 'Gu’an');
+INSERT INTO `t_region` VALUES (208, '永清县', '131023', '0316', 203, 'Yongqing');
+INSERT INTO `t_region` VALUES (209, '香河县', '131024', '0316', 203, 'Xianghe');
+INSERT INTO `t_region` VALUES (210, '大城县', '131025', '0316', 203, 'Daicheng');
+INSERT INTO `t_region` VALUES (211, '文安县', '131026', '0316', 203, 'Wen’an');
+INSERT INTO `t_region` VALUES (212, '大厂回族自治县', '131028', '0316', 203, 'Hui Autonomousof Dachang ');
+INSERT INTO `t_region` VALUES (213, '霸州市', '131081', '0316', 203, 'bazhou city');
+INSERT INTO `t_region` VALUES (214, '三河市', '131082', '0316', 203, 'Sanhe');
+INSERT INTO `t_region` VALUES (215, '衡水市', '131100', '0318', 37, '');
+INSERT INTO `t_region` VALUES (216, '衡水市市辖区', '131101', '0318', 215, '');
+INSERT INTO `t_region` VALUES (217, '桃城区', '131102', '0318', 215, 'Taocheng');
+INSERT INTO `t_region` VALUES (218, '枣强县', '131121', '0318', 215, 'Zaoqiang');
+INSERT INTO `t_region` VALUES (219, '武邑县', '131122', '0318', 215, 'Wuyi');
+INSERT INTO `t_region` VALUES (220, '武强县', '131123', '0318', 215, 'Wuqiang');
+INSERT INTO `t_region` VALUES (221, '饶阳县', '131124', '0318', 215, 'Raoyang');
+INSERT INTO `t_region` VALUES (222, '安平县', '131125', '0318', 215, 'Anping');
+INSERT INTO `t_region` VALUES (223, '故城县', '131126', '0318', 215, 'Gucheng');
+INSERT INTO `t_region` VALUES (224, '景县', '131127', '0318', 215, 'Jingxian');
+INSERT INTO `t_region` VALUES (225, '阜城县', '131128', '0318', 215, 'Fucheng');
+INSERT INTO `t_region` VALUES (226, '冀州区', '131103', '0318', 215, 'Jizhou');
+INSERT INTO `t_region` VALUES (227, '深州市', '131182', '0318', 215, 'Shenzhou');
+INSERT INTO `t_region` VALUES (228, '山西省', '140000', '', 0, 'Shanxi International Gong and Drum Festival ');
+INSERT INTO `t_region` VALUES (229, '太原市', '140100', '0351', 228, 'Taiyuan');
+INSERT INTO `t_region` VALUES (230, '太原市市辖区', '140101', '0351', 229, 'Taiyuan municipal');
+INSERT INTO `t_region` VALUES (231, '小店区', '140105', '0351', 229, 'Xiaodian');
+INSERT INTO `t_region` VALUES (232, '迎泽区', '140106', '0351', 229, 'Yingze');
+INSERT INTO `t_region` VALUES (233, '杏花岭区', '140107', '0351', 229, 'Xinghualing');
+INSERT INTO `t_region` VALUES (234, '尖草坪区', '140108', '0351', 229, 'Jiancaoping');
+INSERT INTO `t_region` VALUES (235, '万柏林区', '140109', '0351', 229, 'Wanbailin');
+INSERT INTO `t_region` VALUES (236, '晋源区', '140110', '0351', 229, 'jinyuan');
+INSERT INTO `t_region` VALUES (237, '清徐县', '140121', '0351', 229, 'Qingxu');
+INSERT INTO `t_region` VALUES (238, '阳曲县', '140122', '0351', 229, 'Yangqu');
+INSERT INTO `t_region` VALUES (239, '娄烦县', '140123', '0351', 229, 'Loufan');
+INSERT INTO `t_region` VALUES (240, '古交市', '140181', '0351', 229, 'gujiao city');
+INSERT INTO `t_region` VALUES (241, '大同市', '140200', '0352', 228, 'Datong');
+INSERT INTO `t_region` VALUES (242, '大同市市辖区', '140201', '0352', 241, 'Datong');
+INSERT INTO `t_region` VALUES (243, '城区', '140202', '0352', 241, 'theproper');
+INSERT INTO `t_region` VALUES (244, '矿区', '140203', '0352', 241, '[地质] ore');
+INSERT INTO `t_region` VALUES (245, '南郊区', '140211', '0352', 241, 'Nanjiao');
+INSERT INTO `t_region` VALUES (246, '新荣区', '140212', '0352', 241, 'Xinrong');
+INSERT INTO `t_region` VALUES (247, '阳高县', '140221', '0352', 241, 'Yanggao');
+INSERT INTO `t_region` VALUES (248, '天镇县', '140222', '0352', 241, 'Tianzhen');
+INSERT INTO `t_region` VALUES (249, '广灵县', '140223', '0352', 241, 'Guangling');
+INSERT INTO `t_region` VALUES (250, '灵丘县', '140224', '0352', 241, 'Lingqiu');
+INSERT INTO `t_region` VALUES (251, '浑源县', '140225', '0352', 241, 'Hunyuan');
+INSERT INTO `t_region` VALUES (252, '左云县', '140226', '0352', 241, 'Zuoyun');
+INSERT INTO `t_region` VALUES (253, '大同县', '140227', '0352', 241, 'Datong');
+INSERT INTO `t_region` VALUES (254, '阳泉市', '140300', '0353', 228, 'Yangquan');
+INSERT INTO `t_region` VALUES (255, '阳泉市市辖区', '140301', '0353', 254, 'Yangquan municipal');
+INSERT INTO `t_region` VALUES (256, '城区', '140302', '0353', 254, 'theproper');
+INSERT INTO `t_region` VALUES (257, '矿区', '140303', '0353', 254, 'ore');
+INSERT INTO `t_region` VALUES (258, '郊区', '140311', '0353', 254, 'suburbs');
+INSERT INTO `t_region` VALUES (259, '平定县', '140321', '0353', 254, 'Pingding');
+INSERT INTO `t_region` VALUES (260, '盂县', '140322', '0353', 254, 'Yuxian');
+INSERT INTO `t_region` VALUES (261, '长治市', '140400', '0355', 228, 'Changzhi');
+INSERT INTO `t_region` VALUES (262, '长治市市辖区', '140401', '0355', 261, 'Changzhi municipal');
+INSERT INTO `t_region` VALUES (263, '城区', '140402', '0355', 261, 'theproper');
+INSERT INTO `t_region` VALUES (264, '郊区', '140411', '0355', 261, 'suburbs');
+INSERT INTO `t_region` VALUES (265, '长治县', '140421', '0355', 261, 'Changzhi');
+INSERT INTO `t_region` VALUES (266, '襄垣县', '140423', '0355', 261, 'Xiangyuan');
+INSERT INTO `t_region` VALUES (267, '屯留县', '140424', '0355', 261, 'Tunliu');
+INSERT INTO `t_region` VALUES (268, '平顺县', '140425', '0355', 261, 'Pingshun');
+INSERT INTO `t_region` VALUES (269, '黎城县', '140426', '0355', 261, 'Licheng');
+INSERT INTO `t_region` VALUES (270, '壶关县', '140427', '0355', 261, 'Huguan');
+INSERT INTO `t_region` VALUES (271, '长子县', '140428', '0355', 261, 'Zhangzi');
+INSERT INTO `t_region` VALUES (272, '武乡县', '140429', '0355', 261, 'Wuxiang');
+INSERT INTO `t_region` VALUES (273, '沁县', '140430', '0355', 261, 'Qinxian');
+INSERT INTO `t_region` VALUES (274, '沁源县', '140431', '0355', 261, 'Qinyuan');
+INSERT INTO `t_region` VALUES (275, '潞城市', '140481', '0355', 261, 'lucheng');
+INSERT INTO `t_region` VALUES (276, '晋城市', '140500', '0356', 228, 'Jincheng City');
+INSERT INTO `t_region` VALUES (277, '晋城市市辖区', '140501', '0356', 276, 'Jincheng municipal');
+INSERT INTO `t_region` VALUES (278, '城区', '140502', '0356', 276, 'theproper');
+INSERT INTO `t_region` VALUES (279, '沁水县', '140521', '0356', 276, 'Qinshui');
+INSERT INTO `t_region` VALUES (280, '阳城县', '140522', '0356', 276, 'Yangcheng');
+INSERT INTO `t_region` VALUES (281, '陵川县', '140524', '0356', 276, 'Lingchuan');
+INSERT INTO `t_region` VALUES (282, '泽州县', '140525', '0356', 276, 'Zezhou');
+INSERT INTO `t_region` VALUES (283, '高平市', '140581', '0356', 276, 'gaoping');
+INSERT INTO `t_region` VALUES (284, '朔州市', '140600', '0349', 228, 'Shuozhou City');
+INSERT INTO `t_region` VALUES (285, '朔州市市辖区', '140601', '0349', 284, 'Shuozhou municipal');
+INSERT INTO `t_region` VALUES (286, '朔城区', '140602', '0349', 284, 'Shuocheng');
+INSERT INTO `t_region` VALUES (287, '平鲁区', '140603', '0349', 284, 'Pinglu');
+INSERT INTO `t_region` VALUES (288, '山阴县', '140621', '0349', 284, 'Shanyin');
+INSERT INTO `t_region` VALUES (289, '应县', '140622', '0349', 284, 'Yingxian');
+INSERT INTO `t_region` VALUES (290, '右玉县', '140623', '0349', 284, 'Youyu');
+INSERT INTO `t_region` VALUES (291, '怀仁县', '140624', '0349', 284, 'Huairen');
+INSERT INTO `t_region` VALUES (292, '晋中市', '140700', '0354', 228, 'Jinzhong');
+INSERT INTO `t_region` VALUES (293, '晋中市市辖区', '140701', '0354', 292, 'Jinzhong municipal');
+INSERT INTO `t_region` VALUES (294, '榆次区', '140702', '0354', 292, 'Yuci');
+INSERT INTO `t_region` VALUES (295, '榆社县', '140721', '0354', 292, 'Yushe');
+INSERT INTO `t_region` VALUES (296, '左权县', '140722', '0354', 292, 'Zuoquan');
+INSERT INTO `t_region` VALUES (297, '和顺县', '140723', '0354', 292, 'Heshun Couuty ');
+INSERT INTO `t_region` VALUES (298, '昔阳县', '140724', '0354', 292, 'Xiyang');
+INSERT INTO `t_region` VALUES (299, '寿阳县', '140725', '0354', 292, 'Shouyang');
+INSERT INTO `t_region` VALUES (300, '太谷县', '140726', '0354', 292, 'Taigu');
+INSERT INTO `t_region` VALUES (301, '祁县', '140727', '0354', 292, 'Qixian');
+INSERT INTO `t_region` VALUES (302, '平遥县', '140728', '0354', 292, 'Pingyao');
+INSERT INTO `t_region` VALUES (303, '灵石县', '140729', '0354', 292, 'Lingshi');
+INSERT INTO `t_region` VALUES (304, '介休市', '140781', '0354', 292, 'jiexiu city');
+INSERT INTO `t_region` VALUES (305, '运城市', '140800', '0359', 228, 'Yuncheng City');
+INSERT INTO `t_region` VALUES (306, '运城市市辖区', '140801', '0359', 305, 'Yuncheng municipal');
+INSERT INTO `t_region` VALUES (307, '盐湖区', '140802', '0359', 305, 'Saline Lake');
+INSERT INTO `t_region` VALUES (308, '临猗县', '140821', '0359', 305, 'Linyi');
+INSERT INTO `t_region` VALUES (309, '万荣县', '140822', '0359', 305, 'Wanrong');
+INSERT INTO `t_region` VALUES (310, '闻喜县', '140823', '0359', 305, 'Wenxi');
+INSERT INTO `t_region` VALUES (311, '稷山县', '140824', '0359', 305, 'Jishan');
+INSERT INTO `t_region` VALUES (312, '新绛县', '140825', '0359', 305, 'Xinjiang');
+INSERT INTO `t_region` VALUES (313, '绛县', '140826', '0359', 305, 'Jiangxian');
+INSERT INTO `t_region` VALUES (314, '垣曲县', '140827', '0359', 305, 'Yuanqu');
+INSERT INTO `t_region` VALUES (315, '夏县', '140828', '0359', 305, 'Xiaxian');
+INSERT INTO `t_region` VALUES (316, '平陆县', '140829', '0359', 305, 'Pinglu');
+INSERT INTO `t_region` VALUES (317, '芮城县', '140830', '0359', 305, 'Ruicheng');
+INSERT INTO `t_region` VALUES (318, '永济市', '140881', '0359', 305, 'Yongji');
+INSERT INTO `t_region` VALUES (319, '河津市', '140882', '0359', 305, 'Hejin');
+INSERT INTO `t_region` VALUES (320, '忻州市', '140900', '0350', 228, 'xinzhou');
+INSERT INTO `t_region` VALUES (321, '忻州市市辖区', '140901', '0350', 320, 'Xinzhou municipal');
+INSERT INTO `t_region` VALUES (322, '忻府区', '140902', '0350', 320, 'Xinfu');
+INSERT INTO `t_region` VALUES (323, '定襄县', '140921', '0350', 320, 'Dingxiang');
+INSERT INTO `t_region` VALUES (324, '五台县', '140922', '0350', 320, 'Wutai');
+INSERT INTO `t_region` VALUES (325, '代县', '140923', '0350', 320, 'Daixian');
+INSERT INTO `t_region` VALUES (326, '繁峙县', '140924', '0350', 320, 'Fanshi');
+INSERT INTO `t_region` VALUES (327, '宁武县', '140925', '0350', 320, 'Ningwu');
+INSERT INTO `t_region` VALUES (328, '静乐县', '140926', '0350', 320, 'Jingle');
+INSERT INTO `t_region` VALUES (329, '神池县', '140927', '0350', 320, 'Shenchi');
+INSERT INTO `t_region` VALUES (330, '五寨县', '140928', '0350', 320, 'Wuzhai');
+INSERT INTO `t_region` VALUES (331, '岢岚县', '140929', '0350', 320, 'Kelan');
+INSERT INTO `t_region` VALUES (332, '河曲县', '140930', '0350', 320, 'Hequ');
+INSERT INTO `t_region` VALUES (333, '保德县', '140931', '0350', 320, 'Baode');
+INSERT INTO `t_region` VALUES (334, '偏关县', '140932', '0350', 320, 'Pianguan');
+INSERT INTO `t_region` VALUES (335, '原平市', '140981', '0350', 320, 'Yuanping');
+INSERT INTO `t_region` VALUES (336, '临汾市', '141000', '0357', 228, 'Linfen');
+INSERT INTO `t_region` VALUES (337, '临汾市市辖区', '141001', '0357', 336, 'Linfen municipal');
+INSERT INTO `t_region` VALUES (338, '尧都区', '141002', '0357', 336, 'Yaodu');
+INSERT INTO `t_region` VALUES (339, '曲沃县', '141021', '0357', 336, 'Quwo');
+INSERT INTO `t_region` VALUES (340, '翼城县', '141022', '0357', 336, 'Yicheng');
+INSERT INTO `t_region` VALUES (341, '襄汾县', '141023', '0357', 336, 'Xiangfen');
+INSERT INTO `t_region` VALUES (342, '洪洞县', '141024', '0357', 336, 'Hongdong');
+INSERT INTO `t_region` VALUES (343, '古县', '141025', '0357', 336, 'Guxian');
+INSERT INTO `t_region` VALUES (344, '安泽县', '141026', '0357', 336, 'Anze');
+INSERT INTO `t_region` VALUES (345, '浮山县', '141027', '0357', 336, 'Fushan');
+INSERT INTO `t_region` VALUES (346, '吉县', '141028', '0357', 336, 'Jixian');
+INSERT INTO `t_region` VALUES (347, '乡宁县', '141029', '0357', 336, 'Xiangning');
+INSERT INTO `t_region` VALUES (348, '大宁县', '141030', '0357', 336, 'Daning');
+INSERT INTO `t_region` VALUES (349, '隰县', '141031', '0357', 336, 'Xixian');
+INSERT INTO `t_region` VALUES (350, '永和县', '141032', '0357', 336, 'Yonghe');
+INSERT INTO `t_region` VALUES (351, '蒲县', '141033', '0357', 336, 'Puxian');
+INSERT INTO `t_region` VALUES (352, '汾西县', '141034', '0357', 336, 'Fenxi');
+INSERT INTO `t_region` VALUES (353, '侯马市', '141081', '0357', 336, 'Houma');
+INSERT INTO `t_region` VALUES (354, '霍州市', '141082', '0357', 336, 'Huozhou City');
+INSERT INTO `t_region` VALUES (355, '吕梁市', '141100', '0358', 228, 'Lüliang City');
+INSERT INTO `t_region` VALUES (356, '吕梁市市辖区', '141101', '0358', 355, 'Lvliang municipal');
+INSERT INTO `t_region` VALUES (357, '离石区', '141102', '0358', 355, 'Lishi');
+INSERT INTO `t_region` VALUES (358, '文水县', '141121', '0358', 355, 'Wenshui');
+INSERT INTO `t_region` VALUES (359, '交城县', '141122', '0358', 355, 'Jiaocheng');
+INSERT INTO `t_region` VALUES (360, '兴县', '141123', '0358', 355, 'Xingxian');
+INSERT INTO `t_region` VALUES (361, '临县', '141124', '0358', 355, 'Linxian');
+INSERT INTO `t_region` VALUES (362, '柳林县', '141125', '0358', 355, 'Liulin');
+INSERT INTO `t_region` VALUES (363, '石楼县', '141126', '0358', 355, 'Shilou');
+INSERT INTO `t_region` VALUES (364, '岚县', '141127', '0358', 355, 'Lanxian');
+INSERT INTO `t_region` VALUES (365, '方山县', '141128', '0358', 355, 'Fangshan');
+INSERT INTO `t_region` VALUES (366, '中阳县', '141129', '0358', 355, 'Zhongyang');
+INSERT INTO `t_region` VALUES (367, '交口县', '141130', '0358', 355, 'Jiaokou');
+INSERT INTO `t_region` VALUES (368, '孝义市', '141181', '0358', 355, 'Xiaoyi');
+INSERT INTO `t_region` VALUES (369, '汾阳市', '141182', '0358', 355, 'Fenyang');
+INSERT INTO `t_region` VALUES (370, '内蒙古自治区', '150000', '', 0, 'the Nei Monggol [Inner Mongolia] Autonomous Region ');
+INSERT INTO `t_region` VALUES (371, '呼和浩特市', '150100', '0471', 370, 'Hohhot');
+INSERT INTO `t_region` VALUES (372, '呼和浩特市市辖区', '150101', '0471', 371, 'Hohhot municipal');
+INSERT INTO `t_region` VALUES (373, '新城区', '150102', '0471', 371, 'New urban area');
+INSERT INTO `t_region` VALUES (374, '回民区', '150103', '0471', 371, 'huimin');
+INSERT INTO `t_region` VALUES (375, '玉泉区', '150104', '0471', 371, 'Yuquan');
+INSERT INTO `t_region` VALUES (376, '赛罕区', '150105', '0471', 371, 'Saihan');
+INSERT INTO `t_region` VALUES (377, '土默特左旗', '150121', '0471', 371, 'Tumd Left Banner ');
+INSERT INTO `t_region` VALUES (378, '托克托县', '150122', '0471', 371, 'Togtoh');
+INSERT INTO `t_region` VALUES (379, '和林格尔县', '150123', '0471', 371, 'Horinger');
+INSERT INTO `t_region` VALUES (380, '清水河县', '150124', '0471', 371, 'Qingshuihe');
+INSERT INTO `t_region` VALUES (381, '武川县', '150125', '0471', 371, 'Wuchuan');
+INSERT INTO `t_region` VALUES (382, '包头市', '150200', '0472', 370, 'Baotou');
+INSERT INTO `t_region` VALUES (383, '包头市市辖区', '150201', '0472', 382, 'Baotou municipal');
+INSERT INTO `t_region` VALUES (384, '东河区', '150202', '0472', 382, 'Donghe');
+INSERT INTO `t_region` VALUES (385, '昆都仑区', '150203', '0472', 382, 'Kun Du Lun');
+INSERT INTO `t_region` VALUES (386, '青山区', '150204', '0472', 382, 'Qingshan');
+INSERT INTO `t_region` VALUES (387, '石拐区', '150205', '0472', 382, 'shiguai');
+INSERT INTO `t_region` VALUES (388, '白云鄂博矿区', '150206', '0472', 382, 'Bayan Obo');
+INSERT INTO `t_region` VALUES (389, '九原区', '150207', '0472', 382, 'Jiuyuan');
+INSERT INTO `t_region` VALUES (390, '土默特右旗', '150221', '0472', 382, 'Tumd Right Banner ');
+INSERT INTO `t_region` VALUES (391, '固阳县', '150222', '0472', 382, 'Guyang');
+INSERT INTO `t_region` VALUES (392, '达尔罕茂明安联合旗', '150223', '0472', 382, 'Darhan Muminggan Joint Banner ');
+INSERT INTO `t_region` VALUES (393, '乌海市', '150300', '0473', 370, 'Wuhai');
+INSERT INTO `t_region` VALUES (394, '乌海市市辖区', '150301', '0473', 393, 'Wuhai municipal');
+INSERT INTO `t_region` VALUES (395, '海勃湾区', '150302', '0473', 393, 'Haibowan');
+INSERT INTO `t_region` VALUES (396, '海南区', '150303', '0473', 393, 'Hainan');
+INSERT INTO `t_region` VALUES (397, '乌达区', '150304', '0473', 393, 'Wuda');
+INSERT INTO `t_region` VALUES (398, '赤峰市', '150400', '0476', 370, 'Chifeng');
+INSERT INTO `t_region` VALUES (399, '赤峰市市辖区', '150401', '0476', 398, 'Chifeng municipal');
+INSERT INTO `t_region` VALUES (400, '红山区', '150402', '0476', 398, '[地名] [新加坡] Bukit Merah Estrate ');
+INSERT INTO `t_region` VALUES (401, '元宝山区', '150403', '0476', 398, 'yuanbaoshan');
+INSERT INTO `t_region` VALUES (402, '松山区', '150404', '0476', 398, 'songshan');
+INSERT INTO `t_region` VALUES (403, '阿鲁科尔沁旗', '150421', '0476', 398, 'Ar Horqin Banner ');
+INSERT INTO `t_region` VALUES (404, '巴林左旗', '150422', '0476', 398, 'Bairin Left Banner ');
+INSERT INTO `t_region` VALUES (405, '巴林右旗', '150423', '0476', 398, 'Bairin Right Banner ');
+INSERT INTO `t_region` VALUES (406, '林西县', '150424', '0476', 398, 'Linxi');
+INSERT INTO `t_region` VALUES (407, '克什克腾旗', '150425', '0476', 398, 'Hexigten Banner ');
+INSERT INTO `t_region` VALUES (408, '翁牛特旗', '150426', '0476', 398, 'Ongniud Bannar ');
+INSERT INTO `t_region` VALUES (409, '喀喇沁旗', '150428', '0476', 398, 'Harqin Banner ');
+INSERT INTO `t_region` VALUES (410, '宁城县', '150429', '0476', 398, 'Ningcheng');
+INSERT INTO `t_region` VALUES (411, '敖汉旗', '150430', '0476', 398, 'Aohan Banner ');
+INSERT INTO `t_region` VALUES (412, '通辽市', '150500', '0475', 370, 'Tongliao');
+INSERT INTO `t_region` VALUES (413, '通辽市市辖区', '150501', '0475', 412, 'Tongliao municipal');
+INSERT INTO `t_region` VALUES (414, '科尔沁区', '150502', '0475', 412, 'horqin');
+INSERT INTO `t_region` VALUES (415, '科尔沁左翼中旗', '150521', '0475', 412, 'Horqin Left Wing Middle Banner ');
+INSERT INTO `t_region` VALUES (416, '科尔沁左翼后旗', '150522', '0475', 412, 'Horqin Left Wing Rear Banner ');
+INSERT INTO `t_region` VALUES (417, '开鲁县', '150523', '0475', 412, 'Kailu');
+INSERT INTO `t_region` VALUES (418, '库伦旗', '150524', '0475', 412, 'Hure Banner ');
+INSERT INTO `t_region` VALUES (419, '奈曼旗', '150525', '0475', 412, 'Naiman Banner ');
+INSERT INTO `t_region` VALUES (420, '扎鲁特旗', '150526', '0475', 412, 'Jarud Banner ');
+INSERT INTO `t_region` VALUES (421, '霍林郭勒市', '150581', '0475', 412, 'Huolingol Shi');
+INSERT INTO `t_region` VALUES (422, '鄂尔多斯市', '150600', '0477', 370, 'ordos city');
+INSERT INTO `t_region` VALUES (423, '鄂尔多斯市市辖区', '150601', '0477', 422, 'Ordos City');
+INSERT INTO `t_region` VALUES (424, '东胜区', '150602', '0477', 422, 'Dongsheng');
+INSERT INTO `t_region` VALUES (425, '康巴什区', '150603', '0477', 422, 'Kangbashi');
+INSERT INTO `t_region` VALUES (426, '达拉特旗', '150621', '0477', 422, 'Dalad Banner ');
+INSERT INTO `t_region` VALUES (427, '准格尔旗', '150622', '0477', 422, 'Jungar Banner ');
+INSERT INTO `t_region` VALUES (428, '鄂托克前旗', '150623', '0477', 422, 'Etuokeqianqi');
+INSERT INTO `t_region` VALUES (429, '鄂托克旗', '150624', '0477', 422, 'Otog Banner ');
+INSERT INTO `t_region` VALUES (430, '杭锦旗', '150625', '0477', 422, 'Hanggin Banner ');
+INSERT INTO `t_region` VALUES (431, '乌审旗', '150626', '0477', 422, 'Uxin Banner ');
+INSERT INTO `t_region` VALUES (432, '伊金霍洛旗', '150627', '0477', 422, 'Ejin Horo Banner ');
+INSERT INTO `t_region` VALUES (433, '呼伦贝尔市', '150700', '0470', 370, 'Hulun Buir City');
+INSERT INTO `t_region` VALUES (434, '呼伦贝尔市市辖区', '150701', '0470', 433, 'Hulun Buir municipal');
+INSERT INTO `t_region` VALUES (435, '海拉尔区', '150702', '0470', 433, 'hailar');
+INSERT INTO `t_region` VALUES (436, '扎赉诺尔区', '150703', '0470', 433, 'The Al al area');
+INSERT INTO `t_region` VALUES (437, '阿荣旗', '150721', '0470', 433, 'Arun Banner ');
+INSERT INTO `t_region` VALUES (438, '莫力达瓦达斡尔族自治旗', '150722', '0470', 433, 'Daur Autonomous Banner of Morin Dawa ');
+INSERT INTO `t_region` VALUES (439, '鄂伦春自治旗', '150723', '0470', 433, 'Oroqen Autonomous Banner ');
+INSERT INTO `t_region` VALUES (440, '鄂温克族自治旗', '150724', '0470', 433, 'Evenki Autonomous Banner');
+INSERT INTO `t_region` VALUES (441, '陈巴尔虎旗', '150725', '0470', 433, 'Chen Barag Banner ');
+INSERT INTO `t_region` VALUES (442, '新巴尔虎左旗', '150726', '0470', 433, 'Xin Barag Left Banner ');
+INSERT INTO `t_region` VALUES (443, '新巴尔虎右旗', '150727', '0470', 433, 'Xin Barag Right Banner ');
+INSERT INTO `t_region` VALUES (444, '满洲里市', '150781', '0470', 433, 'Manchuria City');
+INSERT INTO `t_region` VALUES (445, '牙克石市', '150782', '0470', 433, 'yakeshi');
+INSERT INTO `t_region` VALUES (446, '扎兰屯市', '150783', '0470', 433, 'Zhalantun');
+INSERT INTO `t_region` VALUES (447, '额尔古纳市', '150784', '0470', 433, 'Ergun City');
+INSERT INTO `t_region` VALUES (448, '根河市', '150785', '0470', 433, 'Genhe');
+INSERT INTO `t_region` VALUES (449, '巴彦淖尔市', '150800', '0478', 370, 'Bayannaoer City');
+INSERT INTO `t_region` VALUES (450, '巴彦淖尔市市辖区', '150801', '0478', 449, 'Bayannaoer municipal');
+INSERT INTO `t_region` VALUES (451, '临河区', '150802', '0478', 449, 'linhe');
+INSERT INTO `t_region` VALUES (452, '五原县', '150821', '0478', 449, 'Wuyuan');
+INSERT INTO `t_region` VALUES (453, '磴口县', '150822', '0478', 449, 'Dengkou');
+INSERT INTO `t_region` VALUES (454, '乌拉特前旗', '150823', '0478', 449, 'Urad Front Banner ');
+INSERT INTO `t_region` VALUES (455, '乌拉特中旗', '150824', '0478', 449, 'Urat Zhongqi');
+INSERT INTO `t_region` VALUES (456, '乌拉特后旗', '150825', '0478', 449, 'The rear flag of the US');
+INSERT INTO `t_region` VALUES (457, '杭锦后旗', '150826', '0478', 449, 'Hanggin Rear Banner ');
+INSERT INTO `t_region` VALUES (458, '乌兰察布市', '150900', '0474', 370, 'Wulanchabu City');
+INSERT INTO `t_region` VALUES (459, '乌兰察布市市辖区', '150901', '0474', 458, 'Wulanchabu municipal');
+INSERT INTO `t_region` VALUES (460, '集宁区', '150902', '0474', 458, 'Jining');
+INSERT INTO `t_region` VALUES (461, '卓资县', '150921', '0474', 458, 'Zhuozi');
+INSERT INTO `t_region` VALUES (462, '化德县', '150922', '0474', 458, 'Huade');
+INSERT INTO `t_region` VALUES (463, '商都县', '150923', '0474', 458, 'Shangdu');
+INSERT INTO `t_region` VALUES (464, '兴和县', '150924', '0474', 458, 'Xinghe');
+INSERT INTO `t_region` VALUES (465, '凉城县', '150925', '0474', 458, 'Liangcheng');
+INSERT INTO `t_region` VALUES (466, '察哈尔右翼前旗', '150926', '0474', 458, 'Qahar Right Wing Front Banner ');
+INSERT INTO `t_region` VALUES (467, '察哈尔右翼中旗', '150927', '0474', 458, 'Qahar Right Wing Middle Banner ');
+INSERT INTO `t_region` VALUES (468, '察哈尔右翼后旗', '150928', '0474', 458, 'Qahar Right Wing Rear Banner ');
+INSERT INTO `t_region` VALUES (469, '四子王旗', '150929', '0474', 458, 'Siziwangqi');
+INSERT INTO `t_region` VALUES (470, '丰镇市', '150981', '0474', 458, 'Fengzhen');
+INSERT INTO `t_region` VALUES (471, '兴安盟', '152200', '0482', 370, 'hinggan league');
+INSERT INTO `t_region` VALUES (472, '乌兰浩特市', '152201', '0482', 471, 'Ulanhot City');
+INSERT INTO `t_region` VALUES (473, '阿尔山市', '152202', '0482', 471, 'Arxan');
+INSERT INTO `t_region` VALUES (474, '科尔沁右翼前旗', '152221', '0482', 471, 'Horqin Right Wing Front Banner ');
+INSERT INTO `t_region` VALUES (475, '科尔沁右翼中旗', '152222', '0482', 471, 'Horqin Right Wing Middle Banner ');
+INSERT INTO `t_region` VALUES (476, '扎赉特旗', '152223', '0482', 471, 'Jalaid Banner ');
+INSERT INTO `t_region` VALUES (477, '突泉县', '152224', '0482', 471, 'Tuquan');
+INSERT INTO `t_region` VALUES (478, '锡林郭勒盟', '152500', '0479', 370, 'Xilin Gol League ');
+INSERT INTO `t_region` VALUES (479, '二连浩特市', '152501', '0479', 478, 'Erenhot');
+INSERT INTO `t_region` VALUES (480, '锡林浩特市', '152502', '0479', 478, 'xilinhot');
+INSERT INTO `t_region` VALUES (481, '阿巴嘎旗', '152522', '0479', 478, 'Abag Banner ');
+INSERT INTO `t_region` VALUES (482, '苏尼特左旗', '152523', '0479', 478, 'Sonid Left Banner ');
+INSERT INTO `t_region` VALUES (483, '苏尼特右旗', '152524', '0479', 478, 'Sonid Right Banner ');
+INSERT INTO `t_region` VALUES (484, '东乌珠穆沁旗', '152525', '0479', 478, 'Dong Ujimqin Banner ');
+INSERT INTO `t_region` VALUES (485, '西乌珠穆沁旗', '152526', '0479', 478, 'Xi Ujimqin Banner ');
+INSERT INTO `t_region` VALUES (486, '太仆寺旗', '152527', '0479', 478, 'Taibus Banner ');
+INSERT INTO `t_region` VALUES (487, '镶黄旗', '152528', '0479', 478, 'Xianghuang Banner ');
+INSERT INTO `t_region` VALUES (488, '正镶白旗', '152529', '0479', 478, 'Zhengxiangbai Banner ');
+INSERT INTO `t_region` VALUES (489, '正蓝旗', '152530', '0479', 478, 'The blue flag');
+INSERT INTO `t_region` VALUES (490, '多伦县', '152531', '0479', 478, 'Duolun');
+INSERT INTO `t_region` VALUES (491, '阿拉善盟', '152900', '0483', 370, 'alxa league');
+INSERT INTO `t_region` VALUES (492, '阿拉善左旗', '152921', '0483', 491, 'Alxa Left Banner ');
+INSERT INTO `t_region` VALUES (493, '阿拉善右旗', '152922', '0483', 491, 'Alxa Right Banner ');
+INSERT INTO `t_region` VALUES (494, '额济纳旗', '152923', '0483', 491, 'Ejin Banner ');
+INSERT INTO `t_region` VALUES (495, '辽宁省', '210000', '', 0, 'Liaoning Province');
+INSERT INTO `t_region` VALUES (496, '沈阳市', '210100', '024', 495, 'Shenyang ');
+INSERT INTO `t_region` VALUES (497, '沈阳市市辖区', '210101', '024', 496, 'Shenyang municipal');
+INSERT INTO `t_region` VALUES (498, '和平区', '210102', '024', 496, '[法] peace zone ');
+INSERT INTO `t_region` VALUES (499, '沈河区', '210103', '024', 496, 'Shenhe');
+INSERT INTO `t_region` VALUES (500, '大东区', '210104', '024', 496, 'Big East');
+INSERT INTO `t_region` VALUES (501, '皇姑区', '210105', '024', 496, 'Huanggu');
+INSERT INTO `t_region` VALUES (502, '铁西区', '210106', '024', 496, 'Tiexi');
+INSERT INTO `t_region` VALUES (503, '苏家屯区', '210111', '024', 496, 'sujiatun');
+INSERT INTO `t_region` VALUES (504, '浑南区', '210112', '024', 496, 'Hunnan');
+INSERT INTO `t_region` VALUES (505, '沈北新区', '210113', '024', 496, 'Shenbei New Area');
+INSERT INTO `t_region` VALUES (506, '于洪区', '210114', '024', 496, 'Yuhong');
+INSERT INTO `t_region` VALUES (507, '辽中区', '210115', '024', 496, 'Liaozhong');
+INSERT INTO `t_region` VALUES (508, '康平县', '210123', '024', 496, 'Kangping');
+INSERT INTO `t_region` VALUES (509, '法库县', '210124', '024', 496, 'Faku');
+INSERT INTO `t_region` VALUES (510, '新民市', '210181', '024', 496, 'Xinmin City');
+INSERT INTO `t_region` VALUES (511, '大连市', '210200', '0411', 495, 'Dalian');
+INSERT INTO `t_region` VALUES (512, '大连市市辖区', '210201', '0411', 511, 'Dalian municipal');
+INSERT INTO `t_region` VALUES (513, '中山区', '210202', '0411', 511, 'Zhongshan');
+INSERT INTO `t_region` VALUES (514, '西岗区', '210203', '0411', 511, 'xigang');
+INSERT INTO `t_region` VALUES (515, '沙河口区', '210204', '0411', 511, 'shahekou');
+INSERT INTO `t_region` VALUES (516, '甘井子区', '210211', '0411', 511, 'ganjingzi');
+INSERT INTO `t_region` VALUES (517, '旅顺口区', '210212', '0411', 511, 'Lushun mouth area');
+INSERT INTO `t_region` VALUES (518, '金州区', '210213', '0411', 511, 'Jinzhou');
+INSERT INTO `t_region` VALUES (519, '长海县', '210224', '0411', 511, 'Changhai');
+INSERT INTO `t_region` VALUES (520, '瓦房店市', '210281', '0411', 511, 'WafangdianCity');
+INSERT INTO `t_region` VALUES (521, '普兰店区', '210214', '0411', 511, 'Pulandian');
+INSERT INTO `t_region` VALUES (522, '庄河市', '210283', '0411', 511, 'Zhuanghe City');
+INSERT INTO `t_region` VALUES (523, '鞍山市', '210300', '0412', 495, 'Anshan');
+INSERT INTO `t_region` VALUES (524, '鞍山市市辖区', '210301', '0412', 523, 'Anshan municipal');
+INSERT INTO `t_region` VALUES (525, '铁东区', '210302', '0412', 523, 'Tiedong');
+INSERT INTO `t_region` VALUES (526, '铁西区', '210303', '0412', 523, 'Tiexi');
+INSERT INTO `t_region` VALUES (527, '立山区', '210304', '0412', 523, 'Lishan');
+INSERT INTO `t_region` VALUES (528, '千山区', '210311', '0412', 523, 'Qianshan');
+INSERT INTO `t_region` VALUES (529, '台安县', '210321', '0412', 523, 'Taan');
+INSERT INTO `t_region` VALUES (530, '岫岩满族自治县', '210323', '0412', 523, 'Xiuyan');
+INSERT INTO `t_region` VALUES (531, '海城市', '210381', '0412', 523, 'haicheng');
+INSERT INTO `t_region` VALUES (532, '抚顺市', '210400', '0413', 495, 'Fushun');
+INSERT INTO `t_region` VALUES (533, '抚顺市市辖区', '210401', '0413', 532, 'Fushun municipal');
+INSERT INTO `t_region` VALUES (534, '新抚区', '210402', '0413', 532, 'Xinfu');
+INSERT INTO `t_region` VALUES (535, '东洲区', '210403', '0413', 532, 'dongzhou');
+INSERT INTO `t_region` VALUES (536, '望花区', '210404', '0413', 532, 'Wanghua');
+INSERT INTO `t_region` VALUES (537, '顺城区', '210411', '0413', 532, 'Shun City');
+INSERT INTO `t_region` VALUES (538, '抚顺县', '210421', '0413', 532, 'Fushun');
+INSERT INTO `t_region` VALUES (539, '新宾满族自治县', '210422', '0413', 532, 'Xinbin Manchu Autonomous');
+INSERT INTO `t_region` VALUES (540, '清原满族自治县', '210423', '0413', 532, 'Qingyuan Manchu Autonomous');
+INSERT INTO `t_region` VALUES (541, '本溪市', '210500', '0414', 495, 'Benxi');
+INSERT INTO `t_region` VALUES (542, '本溪市市辖区', '210501', '0414', 541, 'Benxi municipal');
+INSERT INTO `t_region` VALUES (543, '平山区', '210502', '0414', 541, 'Pingshan');
+INSERT INTO `t_region` VALUES (544, '溪湖区', '210503', '0414', 541, 'xihu');
+INSERT INTO `t_region` VALUES (545, '明山区', '210504', '0414', 541, 'Mingshan');
+INSERT INTO `t_region` VALUES (546, '南芬区', '210505', '0414', 541, 'Nanfen');
+INSERT INTO `t_region` VALUES (547, '本溪满族自治县', '210521', '0414', 541, 'Benxi Manchu Autonomous');
+INSERT INTO `t_region` VALUES (548, '桓仁满族自治县', '210522', '0414', 541, 'Huanren Manchu Autonomous');
+INSERT INTO `t_region` VALUES (549, '丹东市', '210600', '0415', 495, 'Dandong');
+INSERT INTO `t_region` VALUES (550, '丹东市市辖区', '210601', '0415', 549, 'Dandong municipal');
+INSERT INTO `t_region` VALUES (551, '元宝区', '210602', '0415', 549, 'Yuanbao');
+INSERT INTO `t_region` VALUES (552, '振兴区', '210603', '0415', 549, 'Zhenxing');
+INSERT INTO `t_region` VALUES (553, '振安区', '210604', '0415', 549, 'Zhen an area');
+INSERT INTO `t_region` VALUES (554, '宽甸满族自治县', '210624', '0415', 549, 'Kuandian Manchu Autonomous');
+INSERT INTO `t_region` VALUES (555, '东港市', '210681', '0415', 549, 'donggang');
+INSERT INTO `t_region` VALUES (556, '凤城市', '210682', '0415', 549, 'Fengcheng City');
+INSERT INTO `t_region` VALUES (557, '锦州市', '210700', '0416', 495, 'Jinzhou');
+INSERT INTO `t_region` VALUES (558, '锦州市市辖区', '210701', '0416', 557, 'Jinzhou municipal');
+INSERT INTO `t_region` VALUES (559, '古塔区', '210702', '0416', 557, 'Guta');
+INSERT INTO `t_region` VALUES (560, '凌河区', '210703', '0416', 557, 'Linghe');
+INSERT INTO `t_region` VALUES (561, '太和区', '210711', '0416', 557, 'Taihe');
+INSERT INTO `t_region` VALUES (562, '黑山县', '210726', '0416', 557, 'Heishan');
+INSERT INTO `t_region` VALUES (563, '义县', '210727', '0416', 557, 'Yixian');
+INSERT INTO `t_region` VALUES (564, '凌海市', '210781', '0416', 557, 'Linghai City');
+INSERT INTO `t_region` VALUES (565, '北镇市', '210782', '0416', 557, 'Beizhen');
+INSERT INTO `t_region` VALUES (566, '营口市', '210800', '0417', 495, 'Yingkou');
+INSERT INTO `t_region` VALUES (567, '营口市市辖区', '210801', '0417', 566, 'Yingkou municipal');
+INSERT INTO `t_region` VALUES (568, '站前区', '210802', '0417', 566, 'Zhanqian');
+INSERT INTO `t_region` VALUES (569, '西市区', '210803', '0417', 566, 'West City');
+INSERT INTO `t_region` VALUES (570, '鲅鱼圈区', '210804', '0417', 566, 'Bayuquan');
+INSERT INTO `t_region` VALUES (571, '老边区', '210811', '0417', 566, 'Laobian');
+INSERT INTO `t_region` VALUES (572, '盖州市', '210881', '0417', 566, 'Gaizhou City');
+INSERT INTO `t_region` VALUES (573, '大石桥市', '210882', '0417', 566, 'dashiqiao');
+INSERT INTO `t_region` VALUES (574, '阜新市', '210900', '0418', 495, 'Fuxin');
+INSERT INTO `t_region` VALUES (575, '阜新市市辖区', '210901', '0418', 574, 'Fuxin municipal');
+INSERT INTO `t_region` VALUES (576, '海州区', '210902', '0418', 574, 'haizhou');
+INSERT INTO `t_region` VALUES (577, '新邱区', '210903', '0418', 574, 'Xinqiu');
+INSERT INTO `t_region` VALUES (578, '太平区', '210904', '0418', 574, 'Taiping');
+INSERT INTO `t_region` VALUES (579, '清河门区', '210905', '0418', 574, 'Qinghemen');
+INSERT INTO `t_region` VALUES (580, '细河区', '210911', '0418', 574, 'Xihe');
+INSERT INTO `t_region` VALUES (581, '阜新蒙古族自治县', '210921', '0418', 574, 'Mongolian Autonomousof Fuxin ');
+INSERT INTO `t_region` VALUES (582, '彰武县', '210922', '0418', 574, 'Zhangwu');
+INSERT INTO `t_region` VALUES (583, '辽阳市', '211000', '0419', 495, 'Liaoyang');
+INSERT INTO `t_region` VALUES (584, '辽阳市市辖区', '211001', '0419', 583, 'Liaoyang municipal');
+INSERT INTO `t_region` VALUES (585, '白塔区', '211002', '0419', 583, 'Baita');
+INSERT INTO `t_region` VALUES (586, '文圣区', '211003', '0419', 583, 'Wensheng');
+INSERT INTO `t_region` VALUES (587, '宏伟区', '211004', '0419', 583, 'Hongwei');
+INSERT INTO `t_region` VALUES (588, '弓长岭区', '211005', '0419', 583, 'Gongchangling');
+INSERT INTO `t_region` VALUES (589, '太子河区', '211011', '0419', 583, 'Taizihe');
+INSERT INTO `t_region` VALUES (590, '辽阳县', '211021', '0419', 583, 'Liaoyang');
+INSERT INTO `t_region` VALUES (591, '灯塔市', '211081', '0419', 583, 'Dengta');
+INSERT INTO `t_region` VALUES (592, '盘锦市', '211100', '0427', 495, 'Panjin City');
+INSERT INTO `t_region` VALUES (593, '盘锦市市辖区', '211101', '0427', 592, 'Panjin municipal');
+INSERT INTO `t_region` VALUES (594, '双台子区', '211102', '0427', 592, 'Shuangtaizi');
+INSERT INTO `t_region` VALUES (595, '兴隆台区', '211103', '0427', 592, 'Xinglongtai');
+INSERT INTO `t_region` VALUES (596, '大洼区', '211104', '0427', 592, 'Dawa');
+INSERT INTO `t_region` VALUES (597, '盘山县', '211122', '0427', 592, 'Panshan');
+INSERT INTO `t_region` VALUES (598, '铁岭市', '211200', '0410', 495, 'tieling city');
+INSERT INTO `t_region` VALUES (599, '铁岭市市辖区', '211201', '0410', 598, 'Tieling municipal');
+INSERT INTO `t_region` VALUES (600, '银州区', '211202', '0410', 598, 'Yinzhou');
+INSERT INTO `t_region` VALUES (601, '清河区', '211204', '0410', 598, 'Qinghe');
+INSERT INTO `t_region` VALUES (602, '铁岭县', '211221', '0410', 598, 'Tieling');
+INSERT INTO `t_region` VALUES (603, '西丰县', '211223', '0410', 598, 'Xifeng');
+INSERT INTO `t_region` VALUES (604, '昌图县', '211224', '0410', 598, 'Changtu');
+INSERT INTO `t_region` VALUES (605, '调兵山市', '211281', '0410', 598, 'Diaobingshan');
+INSERT INTO `t_region` VALUES (606, '开原市', '211282', '0410', 598, 'Kaiyuan');
+INSERT INTO `t_region` VALUES (607, '朝阳市', '211300', '0421', 495, 'Chaoyang City');
+INSERT INTO `t_region` VALUES (608, '朝阳市市辖区', '211301', '0421', 607, 'Chaoyang City');
+INSERT INTO `t_region` VALUES (609, '双塔区', '211302', '0421', 607, 'Shuangta');
+INSERT INTO `t_region` VALUES (610, '龙城区', '211303', '0421', 607, 'Longcheng');
+INSERT INTO `t_region` VALUES (611, '朝阳县', '211321', '0421', 607, 'Chaoyang');
+INSERT INTO `t_region` VALUES (612, '建平县', '211322', '0421', 607, 'Jianping');
+INSERT INTO `t_region` VALUES (613, '喀喇沁左翼蒙古族自治县', '211324', '0421', 607, 'Harqin Left Wing Mongolian Autonomous');
+INSERT INTO `t_region` VALUES (614, '北票市', '211381', '0421', 607, 'Beipiao City');
+INSERT INTO `t_region` VALUES (615, '凌源市', '211382', '0421', 607, 'Lingyuan');
+INSERT INTO `t_region` VALUES (616, '葫芦岛市', '211400', '0429', 495, 'Huludao City');
+INSERT INTO `t_region` VALUES (617, '葫芦岛市市辖区', '211401', '0429', 616, 'Huludao municipal');
+INSERT INTO `t_region` VALUES (618, '连山区', '211402', '0429', 616, 'Lianshan mountains');
+INSERT INTO `t_region` VALUES (619, '龙港区', '211403', '0429', 616, 'Longgang');
+INSERT INTO `t_region` VALUES (620, '南票区', '211404', '0429', 616, 'Nanpiao');
+INSERT INTO `t_region` VALUES (621, '绥中县', '211421', '0429', 616, 'Suizhong');
+INSERT INTO `t_region` VALUES (622, '建昌县', '211422', '0429', 616, 'Jianchang');
+INSERT INTO `t_region` VALUES (623, '兴城市', '211481', '0429', 616, 'Xingcheng City');
+INSERT INTO `t_region` VALUES (624, '吉林省', '220000', '', 0, 'Jilin Province ');
+INSERT INTO `t_region` VALUES (625, '长春市', '220100', '0431', 624, 'Changchun');
+INSERT INTO `t_region` VALUES (626, '长春市市辖区', '220101', '0431', 625, 'Changchun municipal');
+INSERT INTO `t_region` VALUES (627, '南关区', '220102', '0431', 625, 'Nanguan');
+INSERT INTO `t_region` VALUES (628, '宽城区', '220103', '0431', 625, 'Wide urban area');
+INSERT INTO `t_region` VALUES (629, '朝阳区', '220104', '0431', 625, 'Chaoyang');
+INSERT INTO `t_region` VALUES (630, '二道区', '220105', '0431', 625, 'Two');
+INSERT INTO `t_region` VALUES (631, '绿园区', '220106', '0431', 625, 'Luyuan');
+INSERT INTO `t_region` VALUES (632, '双阳区', '220112', '0431', 625, 'Shuangyang');
+INSERT INTO `t_region` VALUES (633, '九台区', '220113', '0431', 625, 'Nines');
+INSERT INTO `t_region` VALUES (634, '农安县', '220122', '0431', 625, 'Nong’an');
+INSERT INTO `t_region` VALUES (635, '榆树市', '220182', '0431', 625, 'Yushu');
+INSERT INTO `t_region` VALUES (636, '德惠市', '220183', '0431', 625, 'Dehui');
+INSERT INTO `t_region` VALUES (637, '吉林市', '220200', '0432', 624, 'Jilin');
+INSERT INTO `t_region` VALUES (638, '吉林市市辖区', '220201', '0432', 637, 'Jilin municipal');
+INSERT INTO `t_region` VALUES (639, '昌邑区', '220202', '0432', 637, 'Changyi');
+INSERT INTO `t_region` VALUES (640, '龙潭区', '220203', '0432', 637, 'Longtan');
+INSERT INTO `t_region` VALUES (641, '船营区', '220204', '0432', 637, 'Chuanying');
+INSERT INTO `t_region` VALUES (642, '丰满区', '220211', '0432', 637, 'Fengman');
+INSERT INTO `t_region` VALUES (643, '永吉县', '220221', '0432', 637, 'Yongji');
+INSERT INTO `t_region` VALUES (644, '蛟河市', '220281', '0432', 637, 'Jiaohe City');
+INSERT INTO `t_region` VALUES (645, '桦甸市', '220282', '0432', 637, 'huadian city');
+INSERT INTO `t_region` VALUES (646, '舒兰市', '220283', '0432', 637, 'shulan city');
+INSERT INTO `t_region` VALUES (647, '磐石市', '220284', '0432', 637, 'Panshi');
+INSERT INTO `t_region` VALUES (648, '四平市', '220300', '0434', 624, 'Siping');
+INSERT INTO `t_region` VALUES (649, '四平市市辖区', '220301', '0434', 648, 'Siping City');
+INSERT INTO `t_region` VALUES (650, '铁西区', '220302', '0434', 648, 'Tiexi');
+INSERT INTO `t_region` VALUES (651, '铁东区', '220303', '0434', 648, 'Tiedong');
+INSERT INTO `t_region` VALUES (652, '梨树县', '220322', '0434', 648, 'lishu');
+INSERT INTO `t_region` VALUES (653, '伊通满族自治县', '220323', '0434', 648, 'Yitong Manchu Autonomous');
+INSERT INTO `t_region` VALUES (654, '公主岭市', '220381', '0434', 648, 'Gongzhuling City');
+INSERT INTO `t_region` VALUES (655, '双辽市', '220382', '0434', 648, 'Shuangliao City');
+INSERT INTO `t_region` VALUES (656, '辽源市', '220400', '0437', 624, 'Liaoyuan');
+INSERT INTO `t_region` VALUES (657, '辽源市市辖区', '220401', '0437', 656, 'Liaoyuan municipal');
+INSERT INTO `t_region` VALUES (658, '龙山区', '220402', '0437', 656, 'Yongsan-gu');
+INSERT INTO `t_region` VALUES (659, '西安区', '220403', '0437', 656, 'Xi\'an');
+INSERT INTO `t_region` VALUES (660, '东丰县', '220421', '0437', 656, 'Dongfeng');
+INSERT INTO `t_region` VALUES (661, '东辽县', '220422', '0437', 656, 'Dongliao');
+INSERT INTO `t_region` VALUES (662, '通化市', '220500', '0435', 624, 'Tonghua');
+INSERT INTO `t_region` VALUES (663, '通化市市辖区', '220501', '0435', 662, 'Tonghua municipal');
+INSERT INTO `t_region` VALUES (664, '东昌区', '220502', '0435', 662, 'Dongchang');
+INSERT INTO `t_region` VALUES (665, '二道江区', '220503', '0435', 662, 'The second Dao Jiang');
+INSERT INTO `t_region` VALUES (666, '通化县', '220521', '0435', 662, 'Tonghua');
+INSERT INTO `t_region` VALUES (667, '辉南县', '220523', '0435', 662, 'Huinan');
+INSERT INTO `t_region` VALUES (668, '柳河县', '220524', '0435', 662, 'Liuhe');
+INSERT INTO `t_region` VALUES (669, '梅河口市', '220581', '0435', 662, 'Meihekou');
+INSERT INTO `t_region` VALUES (670, '集安市', '220582', '0435', 662, 'Ji\'an City');
+INSERT INTO `t_region` VALUES (671, '白山市', '220600', '0439', 624, 'Baishan City');
+INSERT INTO `t_region` VALUES (672, '白山市市辖区', '220601', '0439', 671, 'Baishan City');
+INSERT INTO `t_region` VALUES (673, '浑江区', '220602', '0439', 671, 'Hun River area');
+INSERT INTO `t_region` VALUES (674, '江源区', '220605', '0439', 671, 'Jiangyuan');
+INSERT INTO `t_region` VALUES (675, '抚松县', '220621', '0439', 671, 'Fusong');
+INSERT INTO `t_region` VALUES (676, '靖宇县', '220622', '0439', 671, 'Jingyu');
+INSERT INTO `t_region` VALUES (677, '长白朝鲜族自治县', '220623', '0439', 671, 'Korean Autonomousof Changbai ');
+INSERT INTO `t_region` VALUES (678, '临江市', '220681', '0439', 671, 'Linjiang');
+INSERT INTO `t_region` VALUES (679, '松原市', '220700', '0438', 624, 'Songyuan City');
+INSERT INTO `t_region` VALUES (680, '松原市市辖区', '220701', '0438', 679, 'Songyuan municipal');
+INSERT INTO `t_region` VALUES (681, '宁江区', '220702', '0438', 679, 'Ning Jiang');
+INSERT INTO `t_region` VALUES (682, '前郭尔罗斯蒙古族自治县', '220721', '0438', 679, 'Mongolian Autonomousof Qian Gorlos ');
+INSERT INTO `t_region` VALUES (683, '长岭县', '220722', '0438', 679, 'Changling');
+INSERT INTO `t_region` VALUES (684, '乾安县', '220723', '0438', 679, 'Qian’an');
+INSERT INTO `t_region` VALUES (685, '扶余市', '220781', '0438', 679, 'Fuyu City');
+INSERT INTO `t_region` VALUES (686, '白城市', '220800', '0436', 624, 'Baicheng');
+INSERT INTO `t_region` VALUES (687, '白城市市辖区', '220801', '0436', 686, 'Baicheng municipal');
+INSERT INTO `t_region` VALUES (688, '洮北区', '220802', '0436', 686, 'Taobei');
+INSERT INTO `t_region` VALUES (689, '镇赉县', '220821', '0436', 686, 'Zhenlai');
+INSERT INTO `t_region` VALUES (690, '通榆县', '220822', '0436', 686, 'Tongyu');
+INSERT INTO `t_region` VALUES (691, '洮南市', '220881', '0436', 686, 'Taonan');
+INSERT INTO `t_region` VALUES (692, '大安市', '220882', '0436', 686, 'Daan City');
+INSERT INTO `t_region` VALUES (693, '延边朝鲜族自治州', '222400', '1433', 624, 'Korean Autonomous Prefecture of Yanbian ');
+INSERT INTO `t_region` VALUES (694, '延吉市', '222401', '1433', 693, 'Yanji');
+INSERT INTO `t_region` VALUES (695, '图们市', '222402', '1433', 693, 'Tumen');
+INSERT INTO `t_region` VALUES (696, '敦化市', '222403', '1433', 693, 'dunhua');
+INSERT INTO `t_region` VALUES (697, '珲春市', '222404', '1433', 693, 'HunChun');
+INSERT INTO `t_region` VALUES (698, '龙井市', '222405', '1433', 693, 'Longjing');
+INSERT INTO `t_region` VALUES (699, '和龙市', '222406', '1433', 693, 'Helong');
+INSERT INTO `t_region` VALUES (700, '汪清县', '222424', '1433', 693, 'Wangqing');
+INSERT INTO `t_region` VALUES (701, '安图县', '222426', '1433', 693, 'Antu');
+INSERT INTO `t_region` VALUES (702, '黑龙江省', '230000', '', 0, 'Heilongjiang Province ');
+INSERT INTO `t_region` VALUES (703, '哈尔滨市', '230100', '0451', 702, 'Harbin');
+INSERT INTO `t_region` VALUES (704, '哈尔滨市市辖区', '230101', '0451', 703, 'Harbin municipal');
+INSERT INTO `t_region` VALUES (705, '道里区', '230102', '0451', 703, 'Dai Li');
+INSERT INTO `t_region` VALUES (706, '南岗区', '230103', '0451', 703, 'Nangang');
+INSERT INTO `t_region` VALUES (707, '道外区', '230104', '0451', 703, 'daowai');
+INSERT INTO `t_region` VALUES (708, '平房区', '230108', '0451', 703, '[法]cottage area ');
+INSERT INTO `t_region` VALUES (709, '松北区', '230109', '0451', 703, 'Songbei');
+INSERT INTO `t_region` VALUES (710, '香坊区', '230110', '0451', 703, 'xiangfang');
+INSERT INTO `t_region` VALUES (711, '呼兰区', '230111', '0451', 703, 'Hulan');
+INSERT INTO `t_region` VALUES (712, '阿城区', '230112', '0451', 703, 'Acheng');
+INSERT INTO `t_region` VALUES (713, '双城区', '230113', '0451', 703, 'Shuangcheng');
+INSERT INTO `t_region` VALUES (714, '依兰县', '230123', '0451', 703, 'Yilan');
+INSERT INTO `t_region` VALUES (715, '方正县', '230124', '0451', 703, 'Fangzheng');
+INSERT INTO `t_region` VALUES (716, '宾县', '230125', '0451', 703, 'Binxian');
+INSERT INTO `t_region` VALUES (717, '巴彦县', '230126', '0451', 703, 'Bayan');
+INSERT INTO `t_region` VALUES (718, '木兰县', '230127', '0451', 703, 'Mulan');
+INSERT INTO `t_region` VALUES (719, '通河县', '230128', '0451', 703, 'Tonghe');
+INSERT INTO `t_region` VALUES (720, '延寿县', '230129', '0451', 703, 'Yanshou');
+INSERT INTO `t_region` VALUES (721, '尚志市', '230183', '0451', 703, 'Shangzhi');
+INSERT INTO `t_region` VALUES (722, '五常市', '230184', '0451', 703, 'Wuchang City');
+INSERT INTO `t_region` VALUES (723, '齐齐哈尔市', '230200', '0452', 702, 'Qiqihar');
+INSERT INTO `t_region` VALUES (724, '齐齐哈尔市市辖区', '230201', '0452', 723, 'Qigihar municipal');
+INSERT INTO `t_region` VALUES (725, '龙沙区', '230202', '0452', 723, 'Longsha');
+INSERT INTO `t_region` VALUES (726, '建华区', '230203', '0452', 723, 'Jianhua');
+INSERT INTO `t_region` VALUES (727, '铁锋区', '230204', '0452', 723, 'Tiefeng');
+INSERT INTO `t_region` VALUES (728, '昂昂溪区', '230205', '0452', 723, 'Ang\'angxi');
+INSERT INTO `t_region` VALUES (729, '富拉尔基区', '230206', '0452', 723, 'Fularji');
+INSERT INTO `t_region` VALUES (730, '碾子山区', '230207', '0452', 723, 'Nianzishan');
+INSERT INTO `t_region` VALUES (731, '梅里斯达斡尔族区', '230208', '0452', 723, 'Meilisi Daur');
+INSERT INTO `t_region` VALUES (732, '龙江县', '230221', '0452', 723, 'Longjiang');
+INSERT INTO `t_region` VALUES (733, '依安县', '230223', '0452', 723, 'Yi’an');
+INSERT INTO `t_region` VALUES (734, '泰来县', '230224', '0452', 723, 'Tailai');
+INSERT INTO `t_region` VALUES (735, '甘南县', '230225', '0452', 723, 'Gannan');
+INSERT INTO `t_region` VALUES (736, '富裕县', '230227', '0452', 723, 'Fuyu');
+INSERT INTO `t_region` VALUES (737, '克山县', '230229', '0452', 723, 'Keshan');
+INSERT INTO `t_region` VALUES (738, '克东县', '230230', '0452', 723, 'Kedong');
+INSERT INTO `t_region` VALUES (739, '拜泉县', '230231', '0452', 723, 'Baiquan');
+INSERT INTO `t_region` VALUES (740, '讷河市', '230281', '0452', 723, 'Nehe City');
+INSERT INTO `t_region` VALUES (741, '鸡西市', '230300', '0467', 702, 'JiXi');
+INSERT INTO `t_region` VALUES (742, '鸡西市市辖区', '230301', '0467', 741, 'Jixi municipal');
+INSERT INTO `t_region` VALUES (743, '鸡冠区', '230302', '0467', 741, 'Jiguan');
+INSERT INTO `t_region` VALUES (744, '恒山区', '230303', '0467', 741, 'hengshan');
+INSERT INTO `t_region` VALUES (745, '滴道区', '230304', '0467', 741, 'Didao');
+INSERT INTO `t_region` VALUES (746, '梨树区', '230305', '0467', 741, 'Lishu');
+INSERT INTO `t_region` VALUES (747, '城子河区', '230306', '0467', 741, 'Chengzihe');
+INSERT INTO `t_region` VALUES (748, '麻山区', '230307', '0467', 741, 'Mashan');
+INSERT INTO `t_region` VALUES (749, '鸡东县', '230321', '0467', 741, 'Jidong');
+INSERT INTO `t_region` VALUES (750, '虎林市', '230381', '0467', 741, 'Hulin City');
+INSERT INTO `t_region` VALUES (751, '密山市', '230382', '0467', 741, 'Mishan');
+INSERT INTO `t_region` VALUES (752, '鹤岗市', '230400', '0468', 702, 'Hegang');
+INSERT INTO `t_region` VALUES (753, '鹤岗市市辖区', '230401', '0468', 752, 'Hegang municipal');
+INSERT INTO `t_region` VALUES (754, '向阳区', '230402', '0468', 752, 'xiangyang');
+INSERT INTO `t_region` VALUES (755, '工农区', '230403', '0468', 752, 'Industrial and agricultural areas');
+INSERT INTO `t_region` VALUES (756, '南山区', '230404', '0468', 752, 'Nanshan');
+INSERT INTO `t_region` VALUES (757, '兴安区', '230405', '0468', 752, 'Xing\'an');
+INSERT INTO `t_region` VALUES (758, '东山区', '230406', '0468', 752, 'dongshan');
+INSERT INTO `t_region` VALUES (759, '兴山区', '230407', '0468', 752, 'Xingshan mountain');
+INSERT INTO `t_region` VALUES (760, '萝北县', '230421', '0468', 752, 'Luobei');
+INSERT INTO `t_region` VALUES (761, '绥滨县', '230422', '0468', 752, 'Suibin');
+INSERT INTO `t_region` VALUES (762, '双鸭山市', '230500', '0469', 702, 'Shuangyashan');
+INSERT INTO `t_region` VALUES (763, '双鸭山市市辖区', '230501', '0469', 762, 'Shuangyashan municipal');
+INSERT INTO `t_region` VALUES (764, '尖山区', '230502', '0469', 762, 'Mountain Area');
+INSERT INTO `t_region` VALUES (765, '岭东区', '230503', '0469', 762, 'Lingdong');
+INSERT INTO `t_region` VALUES (766, '四方台区', '230505', '0469', 762, 'Sifangtai');
+INSERT INTO `t_region` VALUES (767, '宝山区', '230506', '0469', 762, 'Baoshan');
+INSERT INTO `t_region` VALUES (768, '集贤县', '230521', '0469', 762, 'Jixian');
+INSERT INTO `t_region` VALUES (769, '友谊县', '230522', '0469', 762, 'Friendship');
+INSERT INTO `t_region` VALUES (770, '宝清县', '230523', '0469', 762, 'Baoqing');
+INSERT INTO `t_region` VALUES (771, '饶河县', '230524', '0469', 762, 'Raohe');
+INSERT INTO `t_region` VALUES (772, '大庆市', '230600', '0459', 702, 'Daqing City');
+INSERT INTO `t_region` VALUES (773, '大庆市市辖区', '230601', '0459', 772, 'Daqing municipal');
+INSERT INTO `t_region` VALUES (774, '萨尔图区', '230602', '0459', 772, 'Sartu');
+INSERT INTO `t_region` VALUES (775, '龙凤区', '230603', '0459', 772, 'Longfeng');
+INSERT INTO `t_region` VALUES (776, '让胡路区', '230604', '0459', 772, 'Ranghulu');
+INSERT INTO `t_region` VALUES (777, '红岗区', '230605', '0459', 772, 'Honggang');
+INSERT INTO `t_region` VALUES (778, '大同区', '230606', '0459', 772, 'Datong');
+INSERT INTO `t_region` VALUES (779, '肇州县', '230621', '0459', 772, 'Zhaozhou');
+INSERT INTO `t_region` VALUES (780, '肇源县', '230622', '0459', 772, 'Zhaoyuan');
+INSERT INTO `t_region` VALUES (781, '林甸县', '230623', '0459', 772, 'Lindian');
+INSERT INTO `t_region` VALUES (782, '杜尔伯特蒙古族自治县', '230624', '0459', 772, 'Du Bert Mongol Autonomous');
+INSERT INTO `t_region` VALUES (783, '伊春市', '230700', '0458', 702, 'Yichun');
+INSERT INTO `t_region` VALUES (784, '伊春市市辖区', '230701', '0458', 783, 'Yichun municipal');
+INSERT INTO `t_region` VALUES (785, '伊春区', '230702', '0458', 783, 'Yichun');
+INSERT INTO `t_region` VALUES (786, '南岔区', '230703', '0458', 783, 'Nancha');
+INSERT INTO `t_region` VALUES (787, '友好区', '230704', '0458', 783, 'Friendly zone');
+INSERT INTO `t_region` VALUES (788, '西林区', '230705', '0458', 783, 'Xilin');
+INSERT INTO `t_region` VALUES (789, '翠峦区', '230706', '0458', 783, 'Cuiluan');
+INSERT INTO `t_region` VALUES (790, '新青区', '230707', '0458', 783, 'Xinqing');
+INSERT INTO `t_region` VALUES (791, '美溪区', '230708', '0458', 783, 'Meixi');
+INSERT INTO `t_region` VALUES (792, '金山屯区', '230709', '0458', 783, 'Jinshantun');
+INSERT INTO `t_region` VALUES (793, '五营区', '230710', '0458', 783, 'Wuying');
+INSERT INTO `t_region` VALUES (794, '乌马河区', '230711', '0458', 783, 'Wumahe');
+INSERT INTO `t_region` VALUES (795, '汤旺河区', '230712', '0458', 783, 'Tangwanghe');
+INSERT INTO `t_region` VALUES (796, '带岭区', '230713', '0458', 783, 'Dailing');
+INSERT INTO `t_region` VALUES (797, '乌伊岭区', '230714', '0458', 783, 'Wuyiling');
+INSERT INTO `t_region` VALUES (798, '红星区', '230715', '0458', 783, 'Hongxing');
+INSERT INTO `t_region` VALUES (799, '上甘岭区', '230716', '0458', 783, 'Shangganling');
+INSERT INTO `t_region` VALUES (800, '嘉荫县', '230722', '0458', 783, 'Jiayin');
+INSERT INTO `t_region` VALUES (801, '铁力市', '230781', '0458', 783, 'Tieli');
+INSERT INTO `t_region` VALUES (802, '佳木斯市', '230800', '0454', 702, 'Jiamusi');
+INSERT INTO `t_region` VALUES (803, '佳木斯市市辖区', '230801', '0454', 802, 'Jiamusi municipal');
+INSERT INTO `t_region` VALUES (804, '向阳区', '230803', '0454', 802, 'xiangyang');
+INSERT INTO `t_region` VALUES (805, '前进区', '230804', '0454', 802, 'staging area');
+INSERT INTO `t_region` VALUES (806, '东风区', '230805', '0454', 802, 'Dongfeng');
+INSERT INTO `t_region` VALUES (807, '郊区', '230811', '0454', 802, 'suburbs');
+INSERT INTO `t_region` VALUES (808, '桦南县', '230822', '0454', 802, 'Huanan');
+INSERT INTO `t_region` VALUES (809, '桦川县', '230826', '0454', 802, 'Huachuan');
+INSERT INTO `t_region` VALUES (810, '汤原县', '230828', '0454', 802, 'Tangyuan');
+INSERT INTO `t_region` VALUES (811, '抚远市', '230883', '0454', 802, 'Fuyuan City');
+INSERT INTO `t_region` VALUES (812, '同江市', '230881', '0454', 802, 'Tongjiang City');
+INSERT INTO `t_region` VALUES (813, '富锦市', '230882', '0454', 802, 'Fujin City');
+INSERT INTO `t_region` VALUES (814, '七台河市', '230900', '0464', 702, 'Qitaihe');
+INSERT INTO `t_region` VALUES (815, '七台河市市辖区', '230901', '0464', 814, 'Qitaihe municipal');
+INSERT INTO `t_region` VALUES (816, '新兴区', '230902', '0464', 814, 'Emerging areas');
+INSERT INTO `t_region` VALUES (817, '桃山区', '230903', '0464', 814, 'Taoshan');
+INSERT INTO `t_region` VALUES (818, '茄子河区', '230904', '0464', 814, 'Qiezihe');
+INSERT INTO `t_region` VALUES (819, '勃利县', '230921', '0464', 814, 'Boli');
+INSERT INTO `t_region` VALUES (820, '牡丹江市', '231000', '0453', 702, 'Mudanjiang');
+INSERT INTO `t_region` VALUES (821, '牡丹江市市辖区', '231001', '0453', 820, 'Mudanjiang municipal');
+INSERT INTO `t_region` VALUES (822, '东安区', '231002', '0453', 820, 'Dong\'an');
+INSERT INTO `t_region` VALUES (823, '阳明区', '231003', '0453', 820, 'Yangming');
+INSERT INTO `t_region` VALUES (824, '爱民区', '231004', '0453', 820, 'Aimin');
+INSERT INTO `t_region` VALUES (825, '西安区', '231005', '0453', 820, 'Xi\'an');
+INSERT INTO `t_region` VALUES (826, '东宁市', '231086', '0453', 820, 'Dongning City');
+INSERT INTO `t_region` VALUES (827, '林口县', '231025', '0453', 820, 'Linkou');
+INSERT INTO `t_region` VALUES (828, '绥芬河市', '231081', '0453', 820, 'Suifenhe');
+INSERT INTO `t_region` VALUES (829, '海林市', '231083', '0453', 820, 'hailin city');
+INSERT INTO `t_region` VALUES (830, '宁安市', '231084', '0453', 820, 'Ning\'an City');
+INSERT INTO `t_region` VALUES (831, '穆棱市', '231085', '0453', 820, 'Muling');
+INSERT INTO `t_region` VALUES (832, '黑河市', '231100', '0456', 702, 'Heihe City');
+INSERT INTO `t_region` VALUES (833, '黑河市市辖区', '231101', '0456', 832, 'Heihe municipal');
+INSERT INTO `t_region` VALUES (834, '爱辉区', '231102', '0456', 832, 'Aihui');
+INSERT INTO `t_region` VALUES (835, '嫩江县', '231121', '0456', 832, 'Nenjiang');
+INSERT INTO `t_region` VALUES (836, '逊克县', '231123', '0456', 832, 'Xunke');
+INSERT INTO `t_region` VALUES (837, '孙吴县', '231124', '0456', 832, 'Sunwu');
+INSERT INTO `t_region` VALUES (838, '北安市', '231181', '0456', 832, 'Beian');
+INSERT INTO `t_region` VALUES (839, '五大连池市', '231182', '0456', 832, 'Wudalianchi');
+INSERT INTO `t_region` VALUES (840, '绥化市', '231200', '0455', 702, 'Suihua City');
+INSERT INTO `t_region` VALUES (841, '绥化市市辖区', '231201', '0455', 840, 'Suihua municipal');
+INSERT INTO `t_region` VALUES (842, '北林区', '231202', '0455', 840, 'Beilin');
+INSERT INTO `t_region` VALUES (843, '望奎县', '231221', '0455', 840, 'Wangkui');
+INSERT INTO `t_region` VALUES (844, '兰西县', '231222', '0455', 840, 'Lanxi');
+INSERT INTO `t_region` VALUES (845, '青冈县', '231223', '0455', 840, 'Qinggang');
+INSERT INTO `t_region` VALUES (846, '庆安县', '231224', '0455', 840, 'Qing’an');
+INSERT INTO `t_region` VALUES (847, '明水县', '231225', '0455', 840, 'Mingshui');
+INSERT INTO `t_region` VALUES (848, '绥棱县', '231226', '0455', 840, 'Suileng');
+INSERT INTO `t_region` VALUES (849, '安达市', '231281', '0455', 840, 'Anda');
+INSERT INTO `t_region` VALUES (850, '肇东市', '231282', '0455', 840, 'Zhaodong City');
+INSERT INTO `t_region` VALUES (851, '海伦市', '231283', '0455', 840, 'Hailun');
+INSERT INTO `t_region` VALUES (852, '大兴安岭地区', '232700', '0457', 702, 'Da Hinggan Ling Prefecture');
+INSERT INTO `t_region` VALUES (853, '加格达奇区', '232701', '0457', 852, 'Jiagedaqi');
+INSERT INTO `t_region` VALUES (854, '呼玛县', '232721', '0457', 852, 'Huma');
+INSERT INTO `t_region` VALUES (855, '塔河县', '232722', '0457', 852, 'Tahe');
+INSERT INTO `t_region` VALUES (856, '漠河县', '232723', '0457', 852, 'Mohe');
+INSERT INTO `t_region` VALUES (857, '上海市', '310000', '021', 0, 'Shanghai Municipality ');
+INSERT INTO `t_region` VALUES (858, '上海市市辖区', '310100', '021', 857, 'Shanghai municipal');
+INSERT INTO `t_region` VALUES (859, '黄浦区', '310101', '021', 858, 'Huangpu');
+INSERT INTO `t_region` VALUES (860, '徐汇区', '310104', '021', 858, 'Xuhui');
+INSERT INTO `t_region` VALUES (861, '长宁区', '310105', '021', 858, 'Changning');
+INSERT INTO `t_region` VALUES (862, '静安区', '310106', '021', 858, 'Jingan');
+INSERT INTO `t_region` VALUES (863, '普陀区', '310107', '021', 858, 'Putuo');
+INSERT INTO `t_region` VALUES (864, '虹口区', '310109', '021', 858, 'Hongkou');
+INSERT INTO `t_region` VALUES (865, '杨浦区', '310110', '021', 858, 'yangpu');
+INSERT INTO `t_region` VALUES (866, '闵行区', '310112', '021', 858, 'Minhang');
+INSERT INTO `t_region` VALUES (867, '宝山区', '310113', '021', 858, 'Baoshan');
+INSERT INTO `t_region` VALUES (868, '嘉定区', '310114', '021', 858, 'Jiading');
+INSERT INTO `t_region` VALUES (869, '浦东新区', '310115', '021', 858, 'Pudong New Area');
+INSERT INTO `t_region` VALUES (870, '金山区', '310116', '021', 858, 'Jinshan');
+INSERT INTO `t_region` VALUES (871, '松江区', '310117', '021', 858, 'Songjiang');
+INSERT INTO `t_region` VALUES (872, '青浦区', '310118', '021', 858, 'Qingpu area ');
+INSERT INTO `t_region` VALUES (873, '奉贤区', '310120', '021', 858, 'Fengxian');
+INSERT INTO `t_region` VALUES (874, '崇明区', '310151', '021', 858, 'Chongming');
+INSERT INTO `t_region` VALUES (875, '江苏省', '320000', '', 0, 'Jiangsu Province ');
+INSERT INTO `t_region` VALUES (876, '南京市', '320100', '025', 875, 'Nanjing');
+INSERT INTO `t_region` VALUES (877, '南京市市辖区', '320101', '025', 876, 'Nanjing municipal');
+INSERT INTO `t_region` VALUES (878, '玄武区', '320102', '025', 876, 'xuanwu');
+INSERT INTO `t_region` VALUES (879, '秦淮区', '320104', '025', 876, 'Qinhuai');
+INSERT INTO `t_region` VALUES (880, '建邺区', '320105', '025', 876, 'jianye');
+INSERT INTO `t_region` VALUES (881, '鼓楼区', '320106', '025', 876, 'gulou');
+INSERT INTO `t_region` VALUES (882, '浦口区', '320111', '025', 876, 'Pukou');
+INSERT INTO `t_region` VALUES (883, '栖霞区', '320113', '025', 876, 'Qixia');
+INSERT INTO `t_region` VALUES (884, '雨花台区', '320114', '025', 876, 'yuhuatai');
+INSERT INTO `t_region` VALUES (885, '江宁区', '320115', '025', 876, 'jiangning');
+INSERT INTO `t_region` VALUES (886, '六合区', '320116', '025', 876, 'Luhe');
+INSERT INTO `t_region` VALUES (887, '溧水区', '320117', '025', 876, 'Lishui');
+INSERT INTO `t_region` VALUES (888, '高淳区', '320118', '025', 876, 'Gaochun');
+INSERT INTO `t_region` VALUES (889, '无锡市', '320200', '0510', 875, 'Wuxi');
+INSERT INTO `t_region` VALUES (890, '无锡市市辖区', '320201', '0510', 889, 'Wuxi municipal');
+INSERT INTO `t_region` VALUES (891, '梁溪区', '320213', '0510', 889, 'Liang Xi');
+INSERT INTO `t_region` VALUES (892, '新吴区', '320214', '0510', 889, 'New Wu area');
+INSERT INTO `t_region` VALUES (893, '锡山区', '320205', '0510', 889, 'xishan');
+INSERT INTO `t_region` VALUES (894, '惠山区', '320206', '0510', 889, 'huishan');
+INSERT INTO `t_region` VALUES (895, '滨湖区', '320211', '0510', 889, 'Binhu');
+INSERT INTO `t_region` VALUES (896, '江阴市', '320281', '0510', 889, 'Jiangyin City');
+INSERT INTO `t_region` VALUES (897, '宜兴市', '320282', '0510', 889, 'Yixing City');
+INSERT INTO `t_region` VALUES (898, '徐州市', '320300', '0516', 875, 'Xuzhou Citey ');
+INSERT INTO `t_region` VALUES (899, '徐州市市辖区', '320301', '0516', 898, 'Xuzhou municipal');
+INSERT INTO `t_region` VALUES (900, '鼓楼区', '320302', '0516', 898, 'gulou');
+INSERT INTO `t_region` VALUES (901, '云龙区', '320303', '0516', 898, 'Yunlong');
+INSERT INTO `t_region` VALUES (902, '贾汪区', '320305', '0516', 898, 'Jiawang');
+INSERT INTO `t_region` VALUES (903, '泉山区', '320311', '0516', 898, 'quanshan');
+INSERT INTO `t_region` VALUES (904, '铜山区', '320312', '0516', 898, 'Tongshan');
+INSERT INTO `t_region` VALUES (905, '丰县', '320321', '0516', 898, 'Fengxian');
+INSERT INTO `t_region` VALUES (906, '沛县', '320322', '0516', 898, 'Peixian');
+INSERT INTO `t_region` VALUES (907, '睢宁县', '320324', '0516', 898, 'Suining');
+INSERT INTO `t_region` VALUES (908, '新沂市', '320381', '0516', 898, 'Xinyi City');
+INSERT INTO `t_region` VALUES (909, '邳州市', '320382', '0516', 898, 'Pizhou');
+INSERT INTO `t_region` VALUES (910, '常州市', '320400', '0519', 875, 'Changzhou');
+INSERT INTO `t_region` VALUES (911, '常州市市辖区', '320401', '0519', 910, 'Changzhou municipal');
+INSERT INTO `t_region` VALUES (912, '天宁区', '320402', '0519', 910, 'Tianning');
+INSERT INTO `t_region` VALUES (913, '钟楼区', '320404', '0519', 910, 'Zhonglou');
+INSERT INTO `t_region` VALUES (914, '新北区', '320411', '0519', 910, 'Neoarctic region');
+INSERT INTO `t_region` VALUES (915, '武进区', '320412', '0519', 910, 'wujin');
+INSERT INTO `t_region` VALUES (916, '溧阳市', '320481', '0519', 910, 'Liyang City');
+INSERT INTO `t_region` VALUES (917, '金坛区', '320413', '0519', 910, 'Jintan');
+INSERT INTO `t_region` VALUES (918, '苏州市', '320500', '0512', 875, 'Suzhou');
+INSERT INTO `t_region` VALUES (919, '苏州市市辖区', '320501', '0512', 918, 'Suzhou municipal');
+INSERT INTO `t_region` VALUES (920, '虎丘区', '320505', '0512', 918, 'Huqiu');
+INSERT INTO `t_region` VALUES (921, '吴中区', '320506', '0512', 918, 'wuzhong');
+INSERT INTO `t_region` VALUES (922, '相城区', '320507', '0512', 918, 'Xiangcheng');
+INSERT INTO `t_region` VALUES (923, '姑苏区', '320508', '0512', 918, 'Gusu');
+INSERT INTO `t_region` VALUES (924, '吴江区', '320509', '0512', 918, 'Wujiang');
+INSERT INTO `t_region` VALUES (925, '常熟市', '320581', '0512', 918, 'Changshou City');
+INSERT INTO `t_region` VALUES (926, '张家港市', '320582', '0512', 918, 'Zhangjiagang City');
+INSERT INTO `t_region` VALUES (927, '昆山市', '320583', '0512', 918, 'City of Kunshan');
+INSERT INTO `t_region` VALUES (928, '太仓市', '320585', '0512', 918, 'Taicang City');
+INSERT INTO `t_region` VALUES (929, '南通市', '320600', '0513', 875, 'Nantong');
+INSERT INTO `t_region` VALUES (930, '南通市市辖区', '320601', '0513', 929, 'Nantong municipal');
+INSERT INTO `t_region` VALUES (931, '崇川区', '320602', '0513', 929, 'Chongchuan');
+INSERT INTO `t_region` VALUES (932, '港闸区', '320611', '0513', 929, 'gangzha');
+INSERT INTO `t_region` VALUES (933, '通州区', '320612', '0513', 929, 'Tongzhou');
+INSERT INTO `t_region` VALUES (934, '海安县', '320621', '0513', 929, 'Hai’an');
+INSERT INTO `t_region` VALUES (935, '如东县', '320623', '0513', 929, 'Rudong');
+INSERT INTO `t_region` VALUES (936, '启东市', '320681', '0513', 929, 'qidong');
+INSERT INTO `t_region` VALUES (937, '如皋市', '320682', '0513', 929, 'Rugao');
+INSERT INTO `t_region` VALUES (938, '海门市', '320684', '0513', 929, 'Haimen City');
+INSERT INTO `t_region` VALUES (939, '连云港市', '320700', '0518', 875, 'Lianyungang');
+INSERT INTO `t_region` VALUES (940, '连云港市市辖区', '320701', '0518', 939, 'Lianyungang municipal');
+INSERT INTO `t_region` VALUES (941, '连云区', '320703', '0518', 939, 'Lianyun');
+INSERT INTO `t_region` VALUES (942, '海州区', '320706', '0518', 939, 'haizhou');
+INSERT INTO `t_region` VALUES (943, '赣榆区', '320707', '0518', 939, 'Ganyu');
+INSERT INTO `t_region` VALUES (944, '东海县', '320722', '0518', 939, 'Donghai');
+INSERT INTO `t_region` VALUES (945, '灌云县', '320723', '0518', 939, 'Guanyun');
+INSERT INTO `t_region` VALUES (946, '灌南县', '320724', '0518', 939, 'Guannan');
+INSERT INTO `t_region` VALUES (947, '淮安市', '320800', '0517', 875, 'Huaian City');
+INSERT INTO `t_region` VALUES (948, '淮安市市辖区', '320801', '0517', 947, 'Huaian municipal');
+INSERT INTO `t_region` VALUES (949, '清江浦区', '320812', '0517', 947, 'The Qing Jiangpu');
+INSERT INTO `t_region` VALUES (950, '淮安区', '320803', '0517', 947, 'Huaian');
+INSERT INTO `t_region` VALUES (951, '淮阴区', '320804', '0517', 947, 'huaiyin');
+INSERT INTO `t_region` VALUES (952, '涟水县', '320826', '0517', 947, 'Lianshui');
+INSERT INTO `t_region` VALUES (953, '洪泽区', '320813', '0517', 947, 'Hongze');
+INSERT INTO `t_region` VALUES (954, '盱眙县', '320830', '0517', 947, 'Xuyi');
+INSERT INTO `t_region` VALUES (955, '金湖县', '320831', '0517', 947, 'Jinhu');
+INSERT INTO `t_region` VALUES (956, '盐城市', '320900', '0515', 875, 'yancheng');
+INSERT INTO `t_region` VALUES (957, '盐城市市辖区', '320901', '0515', 956, 'Yancheng City');
+INSERT INTO `t_region` VALUES (958, '亭湖区', '320902', '0515', 956, 'Tinghu');
+INSERT INTO `t_region` VALUES (959, '盐都区', '320903', '0515', 956, 'yandu');
+INSERT INTO `t_region` VALUES (960, '响水县', '320921', '0515', 956, 'Xiangshui');
+INSERT INTO `t_region` VALUES (961, '滨海县', '320922', '0515', 956, 'Binhai');
+INSERT INTO `t_region` VALUES (962, '阜宁县', '320923', '0515', 956, 'Funing');
+INSERT INTO `t_region` VALUES (963, '射阳县', '320924', '0515', 956, 'Sheyang');
+INSERT INTO `t_region` VALUES (964, '建湖县', '320925', '0515', 956, 'Jianhu');
+INSERT INTO `t_region` VALUES (965, '东台市', '320981', '0515', 956, 'Dongtai City');
+INSERT INTO `t_region` VALUES (966, '大丰区', '320904', '0515', 956, 'Dafeng');
+INSERT INTO `t_region` VALUES (967, '扬州市', '321000', '0514', 875, 'Yangzhou');
+INSERT INTO `t_region` VALUES (968, '扬州市市辖区', '321001', '0514', 967, 'Yangzhou municipal');
+INSERT INTO `t_region` VALUES (969, '广陵区', '321002', '0514', 967, 'Guangling');
+INSERT INTO `t_region` VALUES (970, '邗江区', '321003', '0514', 967, 'Hanjiang');
+INSERT INTO `t_region` VALUES (971, '江都区', '321012', '0514', 967, 'Jiangdu');
+INSERT INTO `t_region` VALUES (972, '宝应县', '321023', '0514', 967, 'Baoying');
+INSERT INTO `t_region` VALUES (973, '仪征市', '321081', '0514', 967, 'Yizheng City');
+INSERT INTO `t_region` VALUES (974, '高邮市', '321084', '0514', 967, 'Gaoyou City');
+INSERT INTO `t_region` VALUES (975, '镇江市', '321100', '0511', 875, 'Zhenjiang');
+INSERT INTO `t_region` VALUES (976, '镇江市市辖区', '321101', '0511', 975, 'Zhenjiang municipal');
+INSERT INTO `t_region` VALUES (977, '京口区', '321102', '0511', 975, 'Jingkou');
+INSERT INTO `t_region` VALUES (978, '润州区', '321111', '0511', 975, 'Runzhou');
+INSERT INTO `t_region` VALUES (979, '丹徒区', '321112', '0511', 975, 'dantu');
+INSERT INTO `t_region` VALUES (980, '丹阳市', '321181', '0511', 975, 'Danyang City');
+INSERT INTO `t_region` VALUES (981, '扬中市', '321182', '0511', 975, 'yangzhong');
+INSERT INTO `t_region` VALUES (982, '句容市', '321183', '0511', 975, 'jurong');
+INSERT INTO `t_region` VALUES (983, '泰州市', '321200', '0523', 875, 'Taizhou');
+INSERT INTO `t_region` VALUES (984, '泰州市市辖区', '321201', '0523', 983, 'Taizhou municipal');
+INSERT INTO `t_region` VALUES (985, '海陵区', '321202', '0523', 983, 'Hailing');
+INSERT INTO `t_region` VALUES (986, '高港区', '321203', '0523', 983, 'Gaogang');
+INSERT INTO `t_region` VALUES (987, '姜堰区', '321204', '0523', 983, 'Jiangyan');
+INSERT INTO `t_region` VALUES (988, '兴化市', '321281', '0523', 983, 'xinghua');
+INSERT INTO `t_region` VALUES (989, '靖江市', '321282', '0523', 983, 'Jingjiang City');
+INSERT INTO `t_region` VALUES (990, '泰兴市', '321283', '0523', 983, 'taixing');
+INSERT INTO `t_region` VALUES (991, '宿迁市', '321300', '0527', 875, 'Suqian City');
+INSERT INTO `t_region` VALUES (992, '宿迁市市辖区', '321301', '0527', 991, 'Suqian municipal');
+INSERT INTO `t_region` VALUES (993, '宿城区', '321302', '0527', 991, 'Sucheng');
+INSERT INTO `t_region` VALUES (994, '宿豫区', '321311', '0527', 991, 'Suyu');
+INSERT INTO `t_region` VALUES (995, '沭阳县', '321322', '0527', 991, 'Shuyang');
+INSERT INTO `t_region` VALUES (996, '泗阳县', '321323', '0527', 991, 'Siyang');
+INSERT INTO `t_region` VALUES (997, '泗洪县', '321324', '0527', 991, 'Sihong');
+INSERT INTO `t_region` VALUES (998, '浙江省', '330000', '', 0, 'Zhejiang Province ');
+INSERT INTO `t_region` VALUES (999, '杭州市', '330100', '0571', 998, 'Hangzhou');
+INSERT INTO `t_region` VALUES (1000, '杭州市市辖区', '330101', '0571', 999, 'Hangzhou municipal');
+INSERT INTO `t_region` VALUES (1001, '上城区', '330102', '0571', 999, 'Bairro Alto');
+INSERT INTO `t_region` VALUES (1002, '下城区', '330103', '0571', 999, 'Lower urban area');
+INSERT INTO `t_region` VALUES (1003, '江干区', '330104', '0571', 999, 'Jianggan');
+INSERT INTO `t_region` VALUES (1004, '拱墅区', '330105', '0571', 999, 'gongshu');
+INSERT INTO `t_region` VALUES (1005, '西湖区', '330106', '0571', 999, 'xihu');
+INSERT INTO `t_region` VALUES (1006, '滨江区', '330108', '0571', 999, 'Binjiang');
+INSERT INTO `t_region` VALUES (1007, '萧山区', '330109', '0571', 999, 'Xiaoshan');
+INSERT INTO `t_region` VALUES (1008, '余杭区', '330110', '0571', 999, 'Yuhang');
+INSERT INTO `t_region` VALUES (1009, '富阳区', '330111', '0571', 999, 'Fuyang');
+INSERT INTO `t_region` VALUES (1010, '桐庐县', '330122', '0571', 999, 'Tonglu');
+INSERT INTO `t_region` VALUES (1011, '淳安县', '330127', '0571', 999, 'Chun’an');
+INSERT INTO `t_region` VALUES (1012, '建德市', '330182', '0571', 999, 'Jiande');
+INSERT INTO `t_region` VALUES (1013, '临安市', '330185', '0571', 999, 'Lin\'an City');
+INSERT INTO `t_region` VALUES (1014, '宁波市', '330200', '0574', 998, 'Ningbo');
+INSERT INTO `t_region` VALUES (1015, '宁波市市辖区', '330201', '0574', 1014, 'Ningbo municipal');
+INSERT INTO `t_region` VALUES (1016, '海曙区', '330203', '0574', 1014, 'Haishu');
+INSERT INTO `t_region` VALUES (1017, '江北区', '330205', '0574', 1014, 'jiangbei');
+INSERT INTO `t_region` VALUES (1018, '北仑区', '330206', '0574', 1014, 'Beilun');
+INSERT INTO `t_region` VALUES (1019, '镇海区', '330211', '0574', 1014, 'zhenhai');
+INSERT INTO `t_region` VALUES (1020, '鄞州区', '330212', '0574', 1014, 'Yinzhou');
+INSERT INTO `t_region` VALUES (1021, '象山县', '330225', '0574', 1014, 'Xiangshan');
+INSERT INTO `t_region` VALUES (1022, '宁海县', '330226', '0574', 1014, 'Ninghai');
+INSERT INTO `t_region` VALUES (1023, '余姚市', '330281', '0574', 1014, 'yuyao city');
+INSERT INTO `t_region` VALUES (1024, '慈溪市', '330282', '0574', 1014, 'cixi city');
+INSERT INTO `t_region` VALUES (1025, '奉化区', '330213', '0574', 1014, 'Fenghua');
+INSERT INTO `t_region` VALUES (1026, '温州市', '330300', '0577', 998, 'Wenzhou');
+INSERT INTO `t_region` VALUES (1027, '温州市市辖区', '330301', '0577', 1026, 'Wenzhou municipal');
+INSERT INTO `t_region` VALUES (1028, '鹿城区', '330302', '0577', 1026, 'Lucheng');
+INSERT INTO `t_region` VALUES (1029, '龙湾区', '330303', '0577', 1026, 'Longwan');
+INSERT INTO `t_region` VALUES (1030, '瓯海区', '330304', '0577', 1026, 'ouhai');
+INSERT INTO `t_region` VALUES (1031, '洞头区', '330305', '0577', 1026, 'Dongtou');
+INSERT INTO `t_region` VALUES (1032, '永嘉县', '330324', '0577', 1026, 'Yongjia');
+INSERT INTO `t_region` VALUES (1033, '平阳县', '330326', '0577', 1026, 'Pingyang');
+INSERT INTO `t_region` VALUES (1034, '苍南县', '330327', '0577', 1026, 'Cangnan');
+INSERT INTO `t_region` VALUES (1035, '文成县', '330328', '0577', 1026, 'Wencheng');
+INSERT INTO `t_region` VALUES (1036, '泰顺县', '330329', '0577', 1026, 'Taishun');
+INSERT INTO `t_region` VALUES (1037, '瑞安市', '330381', '0577', 1026, 'Ruian City');
+INSERT INTO `t_region` VALUES (1038, '乐清市', '330382', '0577', 1026, 'Yueqing');
+INSERT INTO `t_region` VALUES (1039, '嘉兴市', '330400', '0573', 998, 'Jiaxing City');
+INSERT INTO `t_region` VALUES (1040, '嘉兴市市辖区', '330401', '0573', 1039, 'Jiaxing municipal');
+INSERT INTO `t_region` VALUES (1041, '南湖区', '330402', '0573', 1039, 'Nanhu');
+INSERT INTO `t_region` VALUES (1042, '秀洲区', '330411', '0573', 1039, 'Xiuzhou');
+INSERT INTO `t_region` VALUES (1043, '嘉善县', '330421', '0573', 1039, 'Jiashan');
+INSERT INTO `t_region` VALUES (1044, '海盐县', '330424', '0573', 1039, 'Haiyan');
+INSERT INTO `t_region` VALUES (1045, '海宁市', '330481', '0573', 1039, 'haining city');
+INSERT INTO `t_region` VALUES (1046, '平湖市', '330482', '0573', 1039, 'Pinghu');
+INSERT INTO `t_region` VALUES (1047, '桐乡市', '330483', '0573', 1039, 'tongxiang');
+INSERT INTO `t_region` VALUES (1048, '湖州市', '330500', '0572', 998, 'Huzhou City');
+INSERT INTO `t_region` VALUES (1049, '湖州市市辖区', '330501', '0572', 1048, 'Huzhou municipal');
+INSERT INTO `t_region` VALUES (1050, '吴兴区', '330502', '0572', 1048, 'Wuxing');
+INSERT INTO `t_region` VALUES (1051, '南浔区', '330503', '0572', 1048, 'Nanxun');
+INSERT INTO `t_region` VALUES (1052, '德清县', '330521', '0572', 1048, 'Deqing');
+INSERT INTO `t_region` VALUES (1053, '长兴县', '330522', '0572', 1048, 'Changxing');
+INSERT INTO `t_region` VALUES (1054, '安吉县', '330523', '0572', 1048, 'Anji');
+INSERT INTO `t_region` VALUES (1055, '绍兴市', '330600', '0575', 998, 'Shaoxing City');
+INSERT INTO `t_region` VALUES (1056, '绍兴市市辖区', '330601', '0575', 1055, 'Shaoxing municipal');
+INSERT INTO `t_region` VALUES (1057, '越城区', '330602', '0575', 1055, 'Yuecheng City');
+INSERT INTO `t_region` VALUES (1058, '柯桥区', '330603', '0575', 1055, 'Keqiao');
+INSERT INTO `t_region` VALUES (1059, '上虞区', '330604', '0575', 1055, 'Shangyu');
+INSERT INTO `t_region` VALUES (1060, '新昌县', '330624', '0575', 1055, 'Xiuchang');
+INSERT INTO `t_region` VALUES (1061, '诸暨市', '330681', '0575', 1055, 'Zhuji City');
+INSERT INTO `t_region` VALUES (1062, '嵊州市', '330683', '0575', 1055, 'Shengzhou City');
+INSERT INTO `t_region` VALUES (1063, '金华市', '330700', '0579', 998, 'Jinhua City');
+INSERT INTO `t_region` VALUES (1064, '金华市市辖区', '330701', '0579', 1063, 'Jinhua municipal');
+INSERT INTO `t_region` VALUES (1065, '婺城区', '330702', '0579', 1063, 'Wucheng');
+INSERT INTO `t_region` VALUES (1066, '金东区', '330703', '0579', 1063, 'Jindong');
+INSERT INTO `t_region` VALUES (1067, '武义县', '330723', '0579', 1063, 'Wuyi');
+INSERT INTO `t_region` VALUES (1068, '浦江县', '330726', '0579', 1063, 'Pujiang');
+INSERT INTO `t_region` VALUES (1069, '磐安县', '330727', '0579', 1063, 'Pan\'an');
+INSERT INTO `t_region` VALUES (1070, '兰溪市', '330781', '0579', 1063, 'Lanxi City');
+INSERT INTO `t_region` VALUES (1071, '义乌市', '330782', '0579', 1063, 'yiwu');
+INSERT INTO `t_region` VALUES (1072, '东阳市', '330783', '0579', 1063, 'Dongyang City');
+INSERT INTO `t_region` VALUES (1073, '永康市', '330784', '0579', 1063, 'Yongkang City');
+INSERT INTO `t_region` VALUES (1074, '衢州市', '330800', '0570', 998, 'Quzhou City');
+INSERT INTO `t_region` VALUES (1075, '衢州市市辖区', '330801', '0570', 1074, 'Quzhou municipal');
+INSERT INTO `t_region` VALUES (1076, '柯城区', '330802', '0570', 1074, 'Kecheng');
+INSERT INTO `t_region` VALUES (1077, '衢江区', '330803', '0570', 1074, 'Qujiang');
+INSERT INTO `t_region` VALUES (1078, '常山县', '330822', '0570', 1074, 'Changshan');
+INSERT INTO `t_region` VALUES (1079, '开化县', '330824', '0570', 1074, 'Kaihua');
+INSERT INTO `t_region` VALUES (1080, '龙游县', '330825', '0570', 1074, 'Longyou');
+INSERT INTO `t_region` VALUES (1081, '江山市', '330881', '0570', 1074, 'jiangshan city');
+INSERT INTO `t_region` VALUES (1082, '舟山市', '330900', '0580', 998, 'Zhoushan City');
+INSERT INTO `t_region` VALUES (1083, '舟山市市辖区', '330901', '0580', 1082, 'Zhoushan municipal');
+INSERT INTO `t_region` VALUES (1084, '定海区', '330902', '0580', 1082, 'Dinghai');
+INSERT INTO `t_region` VALUES (1085, '普陀区', '330903', '0580', 1082, 'Putuo');
+INSERT INTO `t_region` VALUES (1086, '岱山县', '330921', '0580', 1082, 'Daishan');
+INSERT INTO `t_region` VALUES (1087, '嵊泗县', '330922', '0580', 1082, 'Shengsi');
+INSERT INTO `t_region` VALUES (1088, '台州市', '331000', '0576', 998, 'Taizhou City');
+INSERT INTO `t_region` VALUES (1089, '台州市市辖区', '331001', '0576', 1088, 'Taizhou municipal');
+INSERT INTO `t_region` VALUES (1090, '椒江区', '331002', '0576', 1088, 'jiaojiang');
+INSERT INTO `t_region` VALUES (1091, '黄岩区', '331003', '0576', 1088, 'Huangyan');
+INSERT INTO `t_region` VALUES (1092, '路桥区', '331004', '0576', 1088, 'Luqiao');
+INSERT INTO `t_region` VALUES (1093, '玉环市', '331021', '0576', 1088, 'Yuhuan City');
+INSERT INTO `t_region` VALUES (1094, '三门县', '331022', '0576', 1088, 'Sanmen');
+INSERT INTO `t_region` VALUES (1095, '天台县', '331023', '0576', 1088, 'Tiantai');
+INSERT INTO `t_region` VALUES (1096, '仙居县', '331024', '0576', 1088, 'Xianju');
+INSERT INTO `t_region` VALUES (1097, '温岭市', '331081', '0576', 1088, 'Wenling City');
+INSERT INTO `t_region` VALUES (1098, '临海市', '331082', '0576', 1088, 'Linghai City');
+INSERT INTO `t_region` VALUES (1099, '丽水市', '331100', '0578', 998, 'Lishui City');
+INSERT INTO `t_region` VALUES (1100, '丽水市市辖区', '331101', '0578', 1099, 'Lishui municipal');
+INSERT INTO `t_region` VALUES (1101, '莲都区', '331102', '0578', 1099, 'Liandu');
+INSERT INTO `t_region` VALUES (1102, '青田县', '331121', '0578', 1099, 'Qingtian');
+INSERT INTO `t_region` VALUES (1103, '缙云县', '331122', '0578', 1099, 'Jinyun');
+INSERT INTO `t_region` VALUES (1104, '遂昌县', '331123', '0578', 1099, 'Suichang');
+INSERT INTO `t_region` VALUES (1105, '松阳县', '331124', '0578', 1099, 'songyang');
+INSERT INTO `t_region` VALUES (1106, '云和县', '331125', '0578', 1099, 'Yunhe');
+INSERT INTO `t_region` VALUES (1107, '庆元县', '331126', '0578', 1099, 'Qingyuan');
+INSERT INTO `t_region` VALUES (1108, '景宁畲族自治县', '331127', '0578', 1099, 'Jingning She Autonomous');
+INSERT INTO `t_region` VALUES (1109, '龙泉市', '331181', '0578', 1099, 'Longquan');
+INSERT INTO `t_region` VALUES (1110, '安徽省', '340000', '', 0, 'Anhui Province ');
+INSERT INTO `t_region` VALUES (1111, '合肥市', '340100', '0551', 1110, 'Hefei');
+INSERT INTO `t_region` VALUES (1112, '合肥市市辖区', '340101', '0551', 1111, 'Hefei municipal');
+INSERT INTO `t_region` VALUES (1113, '瑶海区', '340102', '0551', 1111, 'Yaohai');
+INSERT INTO `t_region` VALUES (1114, '庐阳区', '340103', '0551', 1111, 'luyang');
+INSERT INTO `t_region` VALUES (1115, '蜀山区', '340104', '0551', 1111, 'Shushan');
+INSERT INTO `t_region` VALUES (1116, '包河区', '340111', '0551', 1111, 'The Baohe');
+INSERT INTO `t_region` VALUES (1117, '长丰县', '340121', '0551', 1111, 'Changfeng');
+INSERT INTO `t_region` VALUES (1118, '肥东县', '340122', '0551', 1111, 'Feidong');
+INSERT INTO `t_region` VALUES (1119, '肥西县', '340123', '0551', 1111, 'Feixi');
+INSERT INTO `t_region` VALUES (1120, '庐江县', '340124', '0551', 1111, 'Lujiang');
+INSERT INTO `t_region` VALUES (1121, '巢湖市', '340181', '0551', 1111, 'Chaohu City');
+INSERT INTO `t_region` VALUES (1122, '芜湖市', '340200', '0553', 1110, 'Wuhu');
+INSERT INTO `t_region` VALUES (1123, '芜湖市市辖区', '340201', '0553', 1122, 'Wuhu municipal');
+INSERT INTO `t_region` VALUES (1124, '镜湖区', '340202', '0553', 1122, 'Jinghu');
+INSERT INTO `t_region` VALUES (1125, '弋江区', '340203', '0553', 1122, 'Yijiang');
+INSERT INTO `t_region` VALUES (1126, '鸠江区', '340207', '0553', 1122, 'Jiujiang');
+INSERT INTO `t_region` VALUES (1127, '三山区', '340208', '0553', 1122, 'sanshan');
+INSERT INTO `t_region` VALUES (1128, '芜湖县', '340221', '0553', 1122, 'Wuhu');
+INSERT INTO `t_region` VALUES (1129, '繁昌县', '340222', '0553', 1122, 'Fanchang');
+INSERT INTO `t_region` VALUES (1130, '南陵县', '340223', '0553', 1122, 'Nanling');
+INSERT INTO `t_region` VALUES (1131, '无为县', '340225', '0553', 1122, 'Wuwei');
+INSERT INTO `t_region` VALUES (1132, '蚌埠市', '340300', '0552', 1110, 'Bengbu');
+INSERT INTO `t_region` VALUES (1133, '蚌埠市市辖区', '340301', '0552', 1132, 'Bengbu municipal');
+INSERT INTO `t_region` VALUES (1134, '龙子湖区', '340302', '0552', 1132, 'longzihu');
+INSERT INTO `t_region` VALUES (1135, '蚌山区', '340303', '0552', 1132, 'Bengshan');
+INSERT INTO `t_region` VALUES (1136, '禹会区', '340304', '0552', 1132, 'Yuhui');
+INSERT INTO `t_region` VALUES (1137, '淮上区', '340311', '0552', 1132, 'Huaishang');
+INSERT INTO `t_region` VALUES (1138, '怀远县', '340321', '0552', 1132, 'Huaiyuan');
+INSERT INTO `t_region` VALUES (1139, '五河县', '340322', '0552', 1132, 'Wuhe');
+INSERT INTO `t_region` VALUES (1140, '固镇县', '340323', '0552', 1132, 'Guzhen');
+INSERT INTO `t_region` VALUES (1141, '淮南市', '340400', '0554', 1110, 'Huainan');
+INSERT INTO `t_region` VALUES (1142, '淮南市市辖区', '340401', '0554', 1141, 'Huainan municipal');
+INSERT INTO `t_region` VALUES (1143, '大通区', '340402', '0554', 1141, 'Datong');
+INSERT INTO `t_region` VALUES (1144, '田家庵区', '340403', '0554', 1141, 'Tian Jia an area');
+INSERT INTO `t_region` VALUES (1145, '谢家集区', '340404', '0554', 1141, 'Xiejiaji');
+INSERT INTO `t_region` VALUES (1146, '八公山区', '340405', '0554', 1141, 'Bagongshan');
+INSERT INTO `t_region` VALUES (1147, '潘集区', '340406', '0554', 1141, 'Panji');
+INSERT INTO `t_region` VALUES (1148, '凤台县', '340421', '0554', 1141, 'Fengtai');
+INSERT INTO `t_region` VALUES (1149, '寿县', '340422', '0554', 1141, 'Shouxian');
+INSERT INTO `t_region` VALUES (1150, '马鞍山市', '340500', '0555', 1110, 'Ma’anshan City');
+INSERT INTO `t_region` VALUES (1151, '马鞍山市市辖区', '340501', '0555', 1150, 'Ma\'anshan municipal');
+INSERT INTO `t_region` VALUES (1152, '花山区', '340503', '0555', 1150, 'Huashan');
+INSERT INTO `t_region` VALUES (1153, '雨山区', '340504', '0555', 1150, 'Yushan');
+INSERT INTO `t_region` VALUES (1154, '博望区', '340506', '0555', 1150, 'Bowing area');
+INSERT INTO `t_region` VALUES (1155, '当涂县', '340521', '0555', 1150, 'Dangtu');
+INSERT INTO `t_region` VALUES (1156, '含山县', '340522', '0555', 1150, 'Hanshan');
+INSERT INTO `t_region` VALUES (1157, '和县', '340523', '0555', 1150, 'Hexian');
+INSERT INTO `t_region` VALUES (1158, '淮北市', '340600', '0561', 1110, 'Huaibei');
+INSERT INTO `t_region` VALUES (1159, '淮北市市辖区', '340601', '0561', 1158, 'Huaibei municipal');
+INSERT INTO `t_region` VALUES (1160, '杜集区', '340602', '0561', 1158, 'Duji');
+INSERT INTO `t_region` VALUES (1161, '相山区', '340603', '0561', 1158, 'Xiangshan');
+INSERT INTO `t_region` VALUES (1162, '烈山区', '340604', '0561', 1158, 'Lieshan');
+INSERT INTO `t_region` VALUES (1163, '濉溪县', '340621', '0561', 1158, 'Suixi');
+INSERT INTO `t_region` VALUES (1164, '铜陵市', '340700', '0562', 1110, 'tongling');
+INSERT INTO `t_region` VALUES (1165, '铜陵市市辖区', '340701', '0562', 1164, 'Tongling municipal');
+INSERT INTO `t_region` VALUES (1166, '铜官区', '340705', '0562', 1164, 'Tongguan');
+INSERT INTO `t_region` VALUES (1167, '郊区', '340711', '0562', 1164, 'suburbs');
+INSERT INTO `t_region` VALUES (1168, '义安区', '340706', '0562', 1164, 'Yi An');
+INSERT INTO `t_region` VALUES (1169, '枞阳县', '340722', '0562', 1164, 'Zongyang');
+INSERT INTO `t_region` VALUES (1170, '安庆市', '340800', '0556', 1110, 'Anqing');
+INSERT INTO `t_region` VALUES (1171, '安庆市市辖区', '340801', '0556', 1170, 'Anqing municipal');
+INSERT INTO `t_region` VALUES (1172, '迎江区', '340802', '0556', 1170, 'yingjiang');
+INSERT INTO `t_region` VALUES (1173, '大观区', '340803', '0556', 1170, 'Daguan');
+INSERT INTO `t_region` VALUES (1174, '宜秀区', '340811', '0556', 1170, 'Yixiu');
+INSERT INTO `t_region` VALUES (1175, '怀宁县', '340822', '0556', 1170, 'Huaining');
+INSERT INTO `t_region` VALUES (1176, '潜山县', '340824', '0556', 1170, 'Qianshan');
+INSERT INTO `t_region` VALUES (1177, '太湖县', '340825', '0556', 1170, 'Taihu');
+INSERT INTO `t_region` VALUES (1178, '宿松县', '340826', '0556', 1170, 'Susong');
+INSERT INTO `t_region` VALUES (1179, '望江县', '340827', '0556', 1170, 'Wangjiang');
+INSERT INTO `t_region` VALUES (1180, '岳西县', '340828', '0556', 1170, 'Yuexi');
+INSERT INTO `t_region` VALUES (1181, '桐城市', '340881', '0556', 1170, 'Tongcheng');
+INSERT INTO `t_region` VALUES (1182, '黄山市', '341000', '0559', 1110, 'Huangshan City');
+INSERT INTO `t_region` VALUES (1183, '黄山市市辖区', '341001', '0559', 1182, 'Huangshan City');
+INSERT INTO `t_region` VALUES (1184, '屯溪区', '341002', '0559', 1182, 'Tunxi');
+INSERT INTO `t_region` VALUES (1185, '黄山区', '341003', '0559', 1182, 'huangshan');
+INSERT INTO `t_region` VALUES (1186, '徽州区', '341004', '0559', 1182, 'Huizhou');
+INSERT INTO `t_region` VALUES (1187, '歙县', '341021', '0559', 1182, 'Shexian(in Anhui Province) ');
+INSERT INTO `t_region` VALUES (1188, '休宁县', '341022', '0559', 1182, 'Xiuning');
+INSERT INTO `t_region` VALUES (1189, '黟县', '341023', '0559', 1182, 'Yixian');
+INSERT INTO `t_region` VALUES (1190, '祁门县', '341024', '0559', 1182, 'Qimen');
+INSERT INTO `t_region` VALUES (1191, '滁州市', '341100', '0550', 1110, 'Chuzhou City');
+INSERT INTO `t_region` VALUES (1192, '滁州市市辖区', '341101', '0550', 1191, 'Chuzhou municipal');
+INSERT INTO `t_region` VALUES (1193, '琅琊区', '341102', '0550', 1191, 'Langya');
+INSERT INTO `t_region` VALUES (1194, '南谯区', '341103', '0550', 1191, 'Nanqiao');
+INSERT INTO `t_region` VALUES (1195, '来安县', '341122', '0550', 1191, 'Lai’an');
+INSERT INTO `t_region` VALUES (1196, '全椒县', '341124', '0550', 1191, 'Quanjiao');
+INSERT INTO `t_region` VALUES (1197, '定远县', '341125', '0550', 1191, 'Dingyuan');
+INSERT INTO `t_region` VALUES (1198, '凤阳县', '341126', '0550', 1191, 'Fengyang');
+INSERT INTO `t_region` VALUES (1199, '天长市', '341181', '0550', 1191, 'tianchang');
+INSERT INTO `t_region` VALUES (1200, '明光市', '341182', '0550', 1191, 'Mingguang City');
+INSERT INTO `t_region` VALUES (1201, '阜阳市', '341200', '1558', 1110, 'Fuyang City');
+INSERT INTO `t_region` VALUES (1202, '阜阳市市辖区', '341201', '1558', 1201, 'Fuyang municipal');
+INSERT INTO `t_region` VALUES (1203, '颍州区', '341202', '1558', 1201, 'Yingzhou');
+INSERT INTO `t_region` VALUES (1204, '颍东区', '341203', '1558', 1201, 'Yingdong');
+INSERT INTO `t_region` VALUES (1205, '颍泉区', '341204', '1558', 1201, 'Yingquan');
+INSERT INTO `t_region` VALUES (1206, '临泉县', '341221', '1558', 1201, 'Linquan');
+INSERT INTO `t_region` VALUES (1207, '太和县', '341222', '1558', 1201, 'Taihe');
+INSERT INTO `t_region` VALUES (1208, '阜南县', '341225', '1558', 1201, 'Funan');
+INSERT INTO `t_region` VALUES (1209, '颍上县', '341226', '1558', 1201, 'Yingshang');
+INSERT INTO `t_region` VALUES (1210, '界首市', '341282', '1558', 1201, 'Jieshou');
+INSERT INTO `t_region` VALUES (1211, '宿州市', '341300', '0557', 1110, 'Suzhou City');
+INSERT INTO `t_region` VALUES (1212, '宿州市市辖区', '341301', '0557', 1211, 'Suzhou municipal');
+INSERT INTO `t_region` VALUES (1213, '埇桥区', '341302', '0557', 1211, 'Yongqiao');
+INSERT INTO `t_region` VALUES (1214, '砀山县', '341321', '0557', 1211, 'Dangshan');
+INSERT INTO `t_region` VALUES (1215, '萧县', '341322', '0557', 1211, 'Xiaoxian');
+INSERT INTO `t_region` VALUES (1216, '灵璧县', '341323', '0557', 1211, 'lingbi');
+INSERT INTO `t_region` VALUES (1217, '泗县', '341324', '0557', 1211, 'Sixian');
+INSERT INTO `t_region` VALUES (1218, '六安市', '341500', '0564', 1110, 'Lu\'an City');
+INSERT INTO `t_region` VALUES (1219, '六安市市辖区', '341501', '0564', 1218, 'Lu\'an municipal');
+INSERT INTO `t_region` VALUES (1220, '金安区', '341502', '0564', 1218, 'Jinan');
+INSERT INTO `t_region` VALUES (1221, '裕安区', '341503', '0564', 1218, 'yu\'an');
+INSERT INTO `t_region` VALUES (1222, '叶集区', '341504', '0564', 1218, 'Leaf area');
+INSERT INTO `t_region` VALUES (1223, '霍邱县', '341522', '0564', 1218, 'Huoqiu');
+INSERT INTO `t_region` VALUES (1224, '舒城县', '341523', '0564', 1218, 'Shucheng');
+INSERT INTO `t_region` VALUES (1225, '金寨县', '341524', '0564', 1218, 'Jinzhai');
+INSERT INTO `t_region` VALUES (1226, '霍山县', '341525', '0564', 1218, 'Huoshan');
+INSERT INTO `t_region` VALUES (1227, '亳州市', '341600', '0558', 1110, 'Bozhou City');
+INSERT INTO `t_region` VALUES (1228, '亳州市市辖区', '341601', '0558', 1227, 'Bozhou municipal');
+INSERT INTO `t_region` VALUES (1229, '谯城区', '341602', '0558', 1227, 'Qiaocheng');
+INSERT INTO `t_region` VALUES (1230, '涡阳县', '341621', '0558', 1227, 'Guoyang');
+INSERT INTO `t_region` VALUES (1231, '蒙城县', '341622', '0558', 1227, 'Mengcheng');
+INSERT INTO `t_region` VALUES (1232, '利辛县', '341623', '0558', 1227, 'Lixin');
+INSERT INTO `t_region` VALUES (1233, '池州市', '341700', '0566', 1110, 'chizhou');
+INSERT INTO `t_region` VALUES (1234, '池州市市辖区', '341701', '0566', 1233, 'Chizhou municipal');
+INSERT INTO `t_region` VALUES (1235, '贵池区', '341702', '0566', 1233, 'Guichi');
+INSERT INTO `t_region` VALUES (1236, '东至县', '341721', '0566', 1233, 'Dongzhi');
+INSERT INTO `t_region` VALUES (1237, '石台县', '341722', '0566', 1233, 'Shitai');
+INSERT INTO `t_region` VALUES (1238, '青阳县', '341723', '0566', 1233, 'Qingyang');
+INSERT INTO `t_region` VALUES (1239, '宣城市', '341800', '0563', 1110, 'Xuancheng City');
+INSERT INTO `t_region` VALUES (1240, '宣城市市辖区', '341801', '0563', 1239, 'Xuancheng municipal');
+INSERT INTO `t_region` VALUES (1241, '宣州区', '341802', '0563', 1239, 'xuanzhou');
+INSERT INTO `t_region` VALUES (1242, '郎溪县', '341821', '0563', 1239, 'Langxi');
+INSERT INTO `t_region` VALUES (1243, '广德县', '341822', '0563', 1239, 'Guangde');
+INSERT INTO `t_region` VALUES (1244, '泾县', '341823', '0563', 1239, 'Jingxian');
+INSERT INTO `t_region` VALUES (1245, '绩溪县', '341824', '0563', 1239, 'Jixi');
+INSERT INTO `t_region` VALUES (1246, '旌德县', '341825', '0563', 1239, 'Jingde');
+INSERT INTO `t_region` VALUES (1247, '宁国市', '341881', '0563', 1239, 'Ningguo City');
+INSERT INTO `t_region` VALUES (1248, '福建省', '350000', '', 0, 'Fujian Province ');
+INSERT INTO `t_region` VALUES (1249, '福州市', '350100', '0591', 1248, 'Fuzhou');
+INSERT INTO `t_region` VALUES (1250, '福州市市辖区', '350101', '0591', 1249, 'Fuzhou municipal');
+INSERT INTO `t_region` VALUES (1251, '鼓楼区', '350102', '0591', 1249, 'gulou');
+INSERT INTO `t_region` VALUES (1252, '台江区', '350103', '0591', 1249, 'taijiang');
+INSERT INTO `t_region` VALUES (1253, '仓山区', '350104', '0591', 1249, 'Cangshan');
+INSERT INTO `t_region` VALUES (1254, '马尾区', '350105', '0591', 1249, 'mawei');
+INSERT INTO `t_region` VALUES (1255, '晋安区', '350111', '0591', 1249, 'Jinan');
+INSERT INTO `t_region` VALUES (1256, '闽侯县', '350121', '0591', 1249, 'Minhou');
+INSERT INTO `t_region` VALUES (1257, '连江县', '350122', '0591', 1249, 'Lianjiang');
+INSERT INTO `t_region` VALUES (1258, '罗源县', '350123', '0591', 1249, 'Luoyuan');
+INSERT INTO `t_region` VALUES (1259, '闽清县', '350124', '0591', 1249, 'Minqing');
+INSERT INTO `t_region` VALUES (1260, '永泰县', '350125', '0591', 1249, 'Yongtai');
+INSERT INTO `t_region` VALUES (1261, '平潭县', '350128', '0591', 1249, 'Pingtan');
+INSERT INTO `t_region` VALUES (1262, '福清市', '350181', '0591', 1249, 'Fuqing City');
+INSERT INTO `t_region` VALUES (1263, '长乐市', '350182', '0591', 1249, 'Changle City');
+INSERT INTO `t_region` VALUES (1264, '厦门市', '350200', '0592', 1248, 'Xiamen');
+INSERT INTO `t_region` VALUES (1265, '厦门市市辖区', '350201', '0592', 1264, 'Xiamen municipal');
+INSERT INTO `t_region` VALUES (1266, '思明区', '350203', '0592', 1264, 'Siming');
+INSERT INTO `t_region` VALUES (1267, '海沧区', '350205', '0592', 1264, 'haicang');
+INSERT INTO `t_region` VALUES (1268, '湖里区', '350206', '0592', 1264, 'Huli');
+INSERT INTO `t_region` VALUES (1269, '集美区', '350211', '0592', 1264, 'Jimei');
+INSERT INTO `t_region` VALUES (1270, '同安区', '350212', '0592', 1264, 'Tongan area');
+INSERT INTO `t_region` VALUES (1271, '翔安区', '350213', '0592', 1264, 'Xiangan');
+INSERT INTO `t_region` VALUES (1272, '莆田市', '350300', '0594', 1248, 'Putian City');
+INSERT INTO `t_region` VALUES (1273, '莆田市市辖区', '350301', '0594', 1272, 'Putian municipal');
+INSERT INTO `t_region` VALUES (1274, '城厢区', '350302', '0594', 1272, 'Chengxiang');
+INSERT INTO `t_region` VALUES (1275, '涵江区', '350303', '0594', 1272, 'Hanjiang');
+INSERT INTO `t_region` VALUES (1276, '荔城区', '350304', '0594', 1272, 'licheng');
+INSERT INTO `t_region` VALUES (1277, '秀屿区', '350305', '0594', 1272, 'Xiuyu');
+INSERT INTO `t_region` VALUES (1278, '仙游县', '350322', '0594', 1272, 'Xianyou');
+INSERT INTO `t_region` VALUES (1279, '三明市', '350400', '0598', 1248, 'Sanming');
+INSERT INTO `t_region` VALUES (1280, '三明市市辖区', '350401', '0598', 1279, 'Sanming City');
+INSERT INTO `t_region` VALUES (1281, '梅列区', '350402', '0598', 1279, 'Meilie');
+INSERT INTO `t_region` VALUES (1282, '三元区', '350403', '0598', 1279, 'Three Yuan area');
+INSERT INTO `t_region` VALUES (1283, '明溪县', '350421', '0598', 1279, 'Mingxi');
+INSERT INTO `t_region` VALUES (1284, '清流县', '350423', '0598', 1279, 'Qingliu');
+INSERT INTO `t_region` VALUES (1285, '宁化县', '350424', '0598', 1279, 'Ninghua');
+INSERT INTO `t_region` VALUES (1286, '大田县', '350425', '0598', 1279, 'Datian');
+INSERT INTO `t_region` VALUES (1287, '尤溪县', '350426', '0598', 1279, 'Youxi');
+INSERT INTO `t_region` VALUES (1288, '沙县', '350427', '0598', 1279, 'Sa');
+INSERT INTO `t_region` VALUES (1289, '将乐县', '350428', '0598', 1279, 'Jiangle');
+INSERT INTO `t_region` VALUES (1290, '泰宁县', '350429', '0598', 1279, 'Taining');
+INSERT INTO `t_region` VALUES (1291, '建宁县', '350430', '0598', 1279, 'Jianning');
+INSERT INTO `t_region` VALUES (1292, '永安市', '350481', '0598', 1279, 'Yongan City');
+INSERT INTO `t_region` VALUES (1293, '泉州市', '350500', '0595', 1248, 'Quanzhou');
+INSERT INTO `t_region` VALUES (1294, '泉州市市辖区', '350501', '0595', 1293, 'Quanzhou municipal');
+INSERT INTO `t_region` VALUES (1295, '鲤城区', '350502', '0595', 1293, 'Licheng');
+INSERT INTO `t_region` VALUES (1296, '丰泽区', '350503', '0595', 1293, 'fengze');
+INSERT INTO `t_region` VALUES (1297, '洛江区', '350504', '0595', 1293, 'Luojiang');
+INSERT INTO `t_region` VALUES (1298, '泉港区', '350505', '0595', 1293, 'QuanGang');
+INSERT INTO `t_region` VALUES (1299, '惠安县', '350521', '0595', 1293, 'Hui’an');
+INSERT INTO `t_region` VALUES (1300, '安溪县', '350524', '0595', 1293, 'Anxi');
+INSERT INTO `t_region` VALUES (1301, '永春县', '350525', '0595', 1293, 'Yongchun');
+INSERT INTO `t_region` VALUES (1302, '德化县', '350526', '0595', 1293, 'Dehua');
+INSERT INTO `t_region` VALUES (1303, '金门县', '350527', '0595', 1293, 'Jinmen');
+INSERT INTO `t_region` VALUES (1304, '石狮市', '350581', '0595', 1293, 'Shishi City');
+INSERT INTO `t_region` VALUES (1305, '晋江市', '350582', '0595', 1293, 'Jinjiang');
+INSERT INTO `t_region` VALUES (1306, '南安市', '350583', '0595', 1293, 'Nanan City');
+INSERT INTO `t_region` VALUES (1307, '漳州市', '350600', '0596', 1248, 'Zhangzhou');
+INSERT INTO `t_region` VALUES (1308, '漳州市市辖区', '350601', '0596', 1307, 'Zhangzhou municipal');
+INSERT INTO `t_region` VALUES (1309, '芗城区', '350602', '0596', 1307, 'Xiangcheng');
+INSERT INTO `t_region` VALUES (1310, '龙文区', '350603', '0596', 1307, 'Longwen');
+INSERT INTO `t_region` VALUES (1311, '云霄县', '350622', '0596', 1307, 'Yunxiao');
+INSERT INTO `t_region` VALUES (1312, '漳浦县', '350623', '0596', 1307, 'Zhangpu');
+INSERT INTO `t_region` VALUES (1313, '诏安县', '350624', '0596', 1307, 'Zhao’an');
+INSERT INTO `t_region` VALUES (1314, '长泰县', '350625', '0596', 1307, 'Changtai');
+INSERT INTO `t_region` VALUES (1315, '东山县', '350626', '0596', 1307, 'Dongshan');
+INSERT INTO `t_region` VALUES (1316, '南靖县', '350627', '0596', 1307, 'Nanjing');
+INSERT INTO `t_region` VALUES (1317, '平和县', '350628', '0596', 1307, 'Pinghe');
+INSERT INTO `t_region` VALUES (1318, '华安县', '350629', '0596', 1307, 'Hua’an');
+INSERT INTO `t_region` VALUES (1319, '龙海市', '350681', '0596', 1307, 'Longhai');
+INSERT INTO `t_region` VALUES (1320, '南平市', '350700', '0599', 1248, 'Nanping');
+INSERT INTO `t_region` VALUES (1321, '南平市市辖区', '350701', '0599', 1320, 'Nanping municipal');
+INSERT INTO `t_region` VALUES (1322, '延平区', '350702', '0599', 1320, 'yanping');
+INSERT INTO `t_region` VALUES (1323, '建阳区', '350703', '0599', 1320, 'Jianyang');
+INSERT INTO `t_region` VALUES (1324, '顺昌县', '350721', '0599', 1320, 'Shunchang');
+INSERT INTO `t_region` VALUES (1325, '浦城县', '350722', '0599', 1320, 'Pucheng');
+INSERT INTO `t_region` VALUES (1326, '光泽县', '350723', '0599', 1320, 'Guangze');
+INSERT INTO `t_region` VALUES (1327, '松溪县', '350724', '0599', 1320, 'Songxi');
+INSERT INTO `t_region` VALUES (1328, '政和县', '350725', '0599', 1320, 'Zhenghe');
+INSERT INTO `t_region` VALUES (1329, '邵武市', '350781', '0599', 1320, 'shaowu city');
+INSERT INTO `t_region` VALUES (1330, '武夷山市', '350782', '0599', 1320, 'Wuyishan City');
+INSERT INTO `t_region` VALUES (1331, '建瓯市', '350783', '0599', 1320, 'Jianou City');
+INSERT INTO `t_region` VALUES (1332, '龙岩市', '350800', '0597', 1248, 'Longyan City');
+INSERT INTO `t_region` VALUES (1333, '龙岩市市辖区', '350801', '0597', 1332, 'Longyan municipal');
+INSERT INTO `t_region` VALUES (1334, '新罗区', '350802', '0597', 1332, 'xinluo');
+INSERT INTO `t_region` VALUES (1335, '永定区', '350803', '0597', 1332, 'Yongding');
+INSERT INTO `t_region` VALUES (1336, '长汀县', '350821', '0597', 1332, 'Changting');
+INSERT INTO `t_region` VALUES (1337, '上杭县', '350823', '0597', 1332, 'Shanghang');
+INSERT INTO `t_region` VALUES (1338, '武平县', '350824', '0597', 1332, 'Wuping');
+INSERT INTO `t_region` VALUES (1339, '连城县', '350825', '0597', 1332, 'Liancheng');
+INSERT INTO `t_region` VALUES (1340, '漳平市', '350881', '0597', 1332, 'Zhangping City');
+INSERT INTO `t_region` VALUES (1341, '宁德市', '350900', '0593', 1248, 'Ningde City');
+INSERT INTO `t_region` VALUES (1342, '宁德市市辖区', '350901', '0593', 1341, 'Ningde municipal');
+INSERT INTO `t_region` VALUES (1343, '蕉城区', '350902', '0593', 1341, 'Jiaocheng');
+INSERT INTO `t_region` VALUES (1344, '霞浦县', '350921', '0593', 1341, 'Xiapu');
+INSERT INTO `t_region` VALUES (1345, '古田县', '350922', '0593', 1341, 'Gutian');
+INSERT INTO `t_region` VALUES (1346, '屏南县', '350923', '0593', 1341, 'Pingnan');
+INSERT INTO `t_region` VALUES (1347, '寿宁县', '350924', '0593', 1341, 'Shouning');
+INSERT INTO `t_region` VALUES (1348, '周宁县', '350925', '0593', 1341, 'Zhouning');
+INSERT INTO `t_region` VALUES (1349, '柘荣县', '350926', '0593', 1341, 'Zherong');
+INSERT INTO `t_region` VALUES (1350, '福安市', '350981', '0593', 1341, 'Fu\'an City');
+INSERT INTO `t_region` VALUES (1351, '福鼎市', '350982', '0593', 1341, 'fuding');
+INSERT INTO `t_region` VALUES (1352, '江西省', '360000', '', 0, 'Jiangxi Province ');
+INSERT INTO `t_region` VALUES (1353, '南昌市', '360100', '0791', 1352, 'Nanchang');
+INSERT INTO `t_region` VALUES (1354, '南昌市市辖区', '360101', '0791', 1353, 'Nanchang municipal');
+INSERT INTO `t_region` VALUES (1355, '东湖区', '360102', '0791', 1353, 'donghu');
+INSERT INTO `t_region` VALUES (1356, '西湖区', '360103', '0791', 1353, 'xihu');
+INSERT INTO `t_region` VALUES (1357, '青云谱区', '360104', '0791', 1353, 'Qingyunpu');
+INSERT INTO `t_region` VALUES (1358, '湾里区', '360105', '0791', 1353, 'Wanli');
+INSERT INTO `t_region` VALUES (1359, '青山湖区', '360111', '0791', 1353, 'Qingshanhu');
+INSERT INTO `t_region` VALUES (1360, '南昌县', '360121', '0791', 1353, 'Nanchang');
+INSERT INTO `t_region` VALUES (1361, '新建区', '360112', '0791', 1353, 'New Area');
+INSERT INTO `t_region` VALUES (1362, '安义县', '360123', '0791', 1353, 'Anyi');
+INSERT INTO `t_region` VALUES (1363, '进贤县', '360124', '0791', 1353, 'Jinxian');
+INSERT INTO `t_region` VALUES (1364, '景德镇市', '360200', '0798', 1352, 'Jingdezhen');
+INSERT INTO `t_region` VALUES (1365, '景德镇市市辖区', '360201', '0798', 1364, 'Jingdezhen municipal');
+INSERT INTO `t_region` VALUES (1366, '昌江区', '360202', '0798', 1364, 'changjiang');
+INSERT INTO `t_region` VALUES (1367, '珠山区', '360203', '0798', 1364, 'Zhushan');
+INSERT INTO `t_region` VALUES (1368, '浮梁县', '360222', '0798', 1364, 'Fuliang');
+INSERT INTO `t_region` VALUES (1369, '乐平市', '360281', '0798', 1364, 'Leping');
+INSERT INTO `t_region` VALUES (1370, '萍乡市', '360300', '0799', 1352, 'Pingxiang');
+INSERT INTO `t_region` VALUES (1371, '萍乡市市辖区', '360301', '0799', 1370, 'Pingxiang municipal');
+INSERT INTO `t_region` VALUES (1372, '安源区', '360302', '0799', 1370, 'Anyuan');
+INSERT INTO `t_region` VALUES (1373, '湘东区', '360313', '0799', 1370, 'Xiangdong');
+INSERT INTO `t_region` VALUES (1374, '莲花县', '360321', '0799', 1370, 'Lianhua');
+INSERT INTO `t_region` VALUES (1375, '上栗县', '360322', '0799', 1370, 'Shangli');
+INSERT INTO `t_region` VALUES (1376, '芦溪县', '360323', '0799', 1370, 'Luxi');
+INSERT INTO `t_region` VALUES (1377, '九江市', '360400', '0792', 1352, 'Jiujiang');
+INSERT INTO `t_region` VALUES (1378, '九江市市辖区', '360401', '0792', 1377, 'Jiujiang');
+INSERT INTO `t_region` VALUES (1379, '濂溪区', '360402', '0792', 1377, 'Lian Xi');
+INSERT INTO `t_region` VALUES (1380, '浔阳区', '360403', '0792', 1377, 'Xunyang');
+INSERT INTO `t_region` VALUES (1381, '九江县', '360421', '0792', 1377, 'Jiujiang');
+INSERT INTO `t_region` VALUES (1382, '武宁县', '360423', '0792', 1377, 'Wuning');
+INSERT INTO `t_region` VALUES (1383, '修水县', '360424', '0792', 1377, 'Xiushui');
+INSERT INTO `t_region` VALUES (1384, '永修县', '360425', '0792', 1377, 'Yongxiu');
+INSERT INTO `t_region` VALUES (1385, '德安县', '360426', '0792', 1377, 'De’an');
+INSERT INTO `t_region` VALUES (1386, '庐山市', '360483', '0792', 1377, 'Mount Lu City');
+INSERT INTO `t_region` VALUES (1387, '都昌县', '360428', '0792', 1377, 'Duchang');
+INSERT INTO `t_region` VALUES (1388, '湖口县', '360429', '0792', 1377, 'Hukou');
+INSERT INTO `t_region` VALUES (1389, '彭泽县', '360430', '0792', 1377, 'Pengze');
+INSERT INTO `t_region` VALUES (1390, '瑞昌市', '360481', '0792', 1377, 'ruichang city');
+INSERT INTO `t_region` VALUES (1391, '共青城市', '360482', '0792', 1377, 'Gongqingcheng');
+INSERT INTO `t_region` VALUES (1392, '新余市', '360500', '0790', 1352, 'Xinyu City');
+INSERT INTO `t_region` VALUES (1393, '新余市市辖区', '360501', '0790', 1392, 'Xinyu municipal');
+INSERT INTO `t_region` VALUES (1394, '渝水区', '360502', '0790', 1392, 'yushui');
+INSERT INTO `t_region` VALUES (1395, '分宜县', '360521', '0790', 1392, 'Fenyi');
+INSERT INTO `t_region` VALUES (1396, '鹰潭市', '360600', '0701', 1352, 'Yingtan City');
+INSERT INTO `t_region` VALUES (1397, '鹰潭市市辖区', '360601', '0701', 1396, 'Yingtan municipal');
+INSERT INTO `t_region` VALUES (1398, '月湖区', '360602', '0701', 1396, 'Yuehu');
+INSERT INTO `t_region` VALUES (1399, '余江县', '360622', '0701', 1396, 'Yujiang');
+INSERT INTO `t_region` VALUES (1400, '贵溪市', '360681', '0701', 1396, 'Guixi');
+INSERT INTO `t_region` VALUES (1401, '赣州市', '360700', '0797', 1352, 'Ganzhou');
+INSERT INTO `t_region` VALUES (1402, '赣州市市辖区', '360701', '0797', 1401, 'Ganzhou municipal');
+INSERT INTO `t_region` VALUES (1403, '章贡区', '360702', '0797', 1401, 'zhanggong');
+INSERT INTO `t_region` VALUES (1404, '南康区', '360703', '0797', 1401, 'Nankang');
+INSERT INTO `t_region` VALUES (1405, '赣县区', '360704', '0797', 1401, 'Ganxian');
+INSERT INTO `t_region` VALUES (1406, '信丰县', '360722', '0797', 1401, 'Xinfeng');
+INSERT INTO `t_region` VALUES (1407, '大余县', '360723', '0797', 1401, 'Dayu');
+INSERT INTO `t_region` VALUES (1408, '上犹县', '360724', '0797', 1401, 'Shangyou');
+INSERT INTO `t_region` VALUES (1409, '崇义县', '360725', '0797', 1401, 'Chongyi');
+INSERT INTO `t_region` VALUES (1410, '安远县', '360726', '0797', 1401, 'Anyuan');
+INSERT INTO `t_region` VALUES (1411, '龙南县', '360727', '0797', 1401, 'Longnan');
+INSERT INTO `t_region` VALUES (1412, '定南县', '360728', '0797', 1401, 'Dingnan');
+INSERT INTO `t_region` VALUES (1413, '全南县', '360729', '0797', 1401, 'Quannan');
+INSERT INTO `t_region` VALUES (1414, '宁都县', '360730', '0797', 1401, 'Ningdu');
+INSERT INTO `t_region` VALUES (1415, '于都县', '360731', '0797', 1401, 'Yudu');
+INSERT INTO `t_region` VALUES (1416, '兴国县', '360732', '0797', 1401, 'Xingguo');
+INSERT INTO `t_region` VALUES (1417, '会昌县', '360733', '0797', 1401, 'Huichang');
+INSERT INTO `t_region` VALUES (1418, '寻乌县', '360734', '0797', 1401, 'Xunwu');
+INSERT INTO `t_region` VALUES (1419, '石城县', '360735', '0797', 1401, 'Shicheng');
+INSERT INTO `t_region` VALUES (1420, '瑞金市', '360781', '0797', 1401, 'Ruijin City');
+INSERT INTO `t_region` VALUES (1421, '吉安市', '360800', '0796', 1352, 'Jian City');
+INSERT INTO `t_region` VALUES (1422, '吉安市市辖区', '360801', '0796', 1421, 'Ji\'an municipal');
+INSERT INTO `t_region` VALUES (1423, '吉州区', '360802', '0796', 1421, 'Jizhou');
+INSERT INTO `t_region` VALUES (1424, '青原区', '360803', '0796', 1421, 'Qingyuan');
+INSERT INTO `t_region` VALUES (1425, '吉安县', '360821', '0796', 1421, 'Jian');
+INSERT INTO `t_region` VALUES (1426, '吉水县', '360822', '0796', 1421, 'Jishui');
+INSERT INTO `t_region` VALUES (1427, '峡江县', '360823', '0796', 1421, 'Xiajiang');
+INSERT INTO `t_region` VALUES (1428, '新干县', '360824', '0796', 1421, 'Xingan');
+INSERT INTO `t_region` VALUES (1429, '永丰县', '360825', '0796', 1421, 'Yongfeng');
+INSERT INTO `t_region` VALUES (1430, '泰和县', '360826', '0796', 1421, 'Taihe');
+INSERT INTO `t_region` VALUES (1431, '遂川县', '360827', '0796', 1421, 'Suichuan');
+INSERT INTO `t_region` VALUES (1432, '万安县', '360828', '0796', 1421, 'Wan’an');
+INSERT INTO `t_region` VALUES (1433, '安福县', '360829', '0796', 1421, 'Anfu');
+INSERT INTO `t_region` VALUES (1434, '永新县', '360830', '0796', 1421, 'Yongxin');
+INSERT INTO `t_region` VALUES (1435, '井冈山市', '360881', '0796', 1421, 'Jinggangshan City');
+INSERT INTO `t_region` VALUES (1436, '宜春市', '360900', '0795', 1352, 'Yichun City');
+INSERT INTO `t_region` VALUES (1437, '宜春市市辖区', '360901', '0795', 1436, 'Yichun municipal');
+INSERT INTO `t_region` VALUES (1438, '袁州区', '360902', '0795', 1436, 'Yuanzhou');
+INSERT INTO `t_region` VALUES (1439, '奉新县', '360921', '0795', 1436, 'Fengxin');
+INSERT INTO `t_region` VALUES (1440, '万载县', '360922', '0795', 1436, 'Wanzai');
+INSERT INTO `t_region` VALUES (1441, '上高县', '360923', '0795', 1436, 'Shanggao');
+INSERT INTO `t_region` VALUES (1442, '宜丰县', '360924', '0795', 1436, 'Yifeng');
+INSERT INTO `t_region` VALUES (1443, '靖安县', '360925', '0795', 1436, 'Jing’an');
+INSERT INTO `t_region` VALUES (1444, '铜鼓县', '360926', '0795', 1436, 'Tonggu');
+INSERT INTO `t_region` VALUES (1445, '丰城市', '360981', '0795', 1436, 'Fengcheng');
+INSERT INTO `t_region` VALUES (1446, '樟树市', '360982', '0795', 1436, 'zhangshu');
+INSERT INTO `t_region` VALUES (1447, '高安市', '360983', '0795', 1436, 'Ko an City');
+INSERT INTO `t_region` VALUES (1448, '抚州市', '361000', '0794', 1352, 'Fuzhou');
+INSERT INTO `t_region` VALUES (1449, '抚州市市辖区', '361001', '0794', 1448, 'Fuzhou municipal');
+INSERT INTO `t_region` VALUES (1450, '临川区', '361002', '0794', 1448, 'Linchuan');
+INSERT INTO `t_region` VALUES (1451, '南城县', '361021', '0794', 1448, 'Nancheng');
+INSERT INTO `t_region` VALUES (1452, '黎川县', '361022', '0794', 1448, 'Lichuan');
+INSERT INTO `t_region` VALUES (1453, '南丰县', '361023', '0794', 1448, 'Nanfeng');
+INSERT INTO `t_region` VALUES (1454, '崇仁县', '361024', '0794', 1448, 'Chongren');
+INSERT INTO `t_region` VALUES (1455, '乐安县', '361025', '0794', 1448, 'Le’an');
+INSERT INTO `t_region` VALUES (1456, '宜黄县', '361026', '0794', 1448, 'Yihuang');
+INSERT INTO `t_region` VALUES (1457, '金溪县', '361027', '0794', 1448, 'Jinxi');
+INSERT INTO `t_region` VALUES (1458, '资溪县', '361028', '0794', 1448, 'Zixi');
+INSERT INTO `t_region` VALUES (1459, '东乡区', '361003', '0794', 1448, 'Dongxiang');
+INSERT INTO `t_region` VALUES (1460, '广昌县', '361030', '0794', 1448, 'Guangchang');
+INSERT INTO `t_region` VALUES (1461, '上饶市', '361100', '0793', 1352, 'Shangrao');
+INSERT INTO `t_region` VALUES (1462, '上饶市市辖区', '361101', '0793', 1461, 'Shangrao municipal');
+INSERT INTO `t_region` VALUES (1463, '信州区', '361102', '0793', 1461, 'Xinzhou');
+INSERT INTO `t_region` VALUES (1464, '广丰区', '361103', '0793', 1461, 'Guangfeng');
+INSERT INTO `t_region` VALUES (1465, '上饶县', '361121', '0793', 1461, 'Shangrao');
+INSERT INTO `t_region` VALUES (1466, '玉山县', '361123', '0793', 1461, 'Yushan');
+INSERT INTO `t_region` VALUES (1467, '铅山县', '361124', '0793', 1461, 'Yanshan');
+INSERT INTO `t_region` VALUES (1468, '横峰县', '361125', '0793', 1461, 'Hengfeng');
+INSERT INTO `t_region` VALUES (1469, '弋阳县', '361126', '0793', 1461, 'Yiyang');
+INSERT INTO `t_region` VALUES (1470, '余干县', '361127', '0793', 1461, 'Yugan');
+INSERT INTO `t_region` VALUES (1471, '鄱阳县', '361128', '0793', 1461, 'Poyang');
+INSERT INTO `t_region` VALUES (1472, '万年县', '361129', '0793', 1461, 'Wannian');
+INSERT INTO `t_region` VALUES (1473, '婺源县', '361130', '0793', 1461, 'Wuyuan');
+INSERT INTO `t_region` VALUES (1474, '德兴市', '361181', '0793', 1461, 'Dexing');
+INSERT INTO `t_region` VALUES (1475, '山东省', '370000', '', 0, 'a folk art form popular in Shandong ');
+INSERT INTO `t_region` VALUES (1476, '济南市', '370100', '0531', 1475, 'Jinan');
+INSERT INTO `t_region` VALUES (1477, '济南市市辖区', '370101', '0531', 1476, 'Ji\'nan municipal');
+INSERT INTO `t_region` VALUES (1478, '历下区', '370102', '0531', 1476, 'Lixia');
+INSERT INTO `t_region` VALUES (1479, '市中区', '370103', '0531', 1476, 'Shizhong');
+INSERT INTO `t_region` VALUES (1480, '槐荫区', '370104', '0531', 1476, 'huaiyin');
+INSERT INTO `t_region` VALUES (1481, '天桥区', '370105', '0531', 1476, 'tianqiao');
+INSERT INTO `t_region` VALUES (1482, '历城区', '370112', '0531', 1476, 'licheng');
+INSERT INTO `t_region` VALUES (1483, '长清区', '370113', '0531', 1476, 'Changqing');
+INSERT INTO `t_region` VALUES (1484, '平阴县', '370124', '0531', 1476, 'Pingyin');
+INSERT INTO `t_region` VALUES (1485, '济阳县', '370125', '0531', 1476, 'Jiyang');
+INSERT INTO `t_region` VALUES (1486, '商河县', '370126', '0531', 1476, 'Shanghe');
+INSERT INTO `t_region` VALUES (1487, '章丘区', '370114', '0531', 1476, 'Zhangqiu');
+INSERT INTO `t_region` VALUES (1488, '青岛市', '370200', '0532', 1475, 'Qingdao');
+INSERT INTO `t_region` VALUES (1489, '青岛市市辖区', '370201', '0532', 1488, 'Qingdao municipal');
+INSERT INTO `t_region` VALUES (1490, '市南区', '370202', '0532', 1488, 'Shinan');
+INSERT INTO `t_region` VALUES (1491, '市北区', '370203', '0532', 1488, 'shibei');
+INSERT INTO `t_region` VALUES (1492, '黄岛区', '370211', '0532', 1488, 'Huangdao');
+INSERT INTO `t_region` VALUES (1493, '崂山区', '370212', '0532', 1488, 'Laoshan');
+INSERT INTO `t_region` VALUES (1494, '李沧区', '370213', '0532', 1488, 'Licang');
+INSERT INTO `t_region` VALUES (1495, '城阳区', '370214', '0532', 1488, 'chengyang');
+INSERT INTO `t_region` VALUES (1496, '胶州市', '370281', '0532', 1488, 'jiaozhou city');
+INSERT INTO `t_region` VALUES (1497, '即墨市', '370282', '0532', 1488, 'Jimo City');
+INSERT INTO `t_region` VALUES (1498, '平度市', '370283', '0532', 1488, 'Pingdu City');
+INSERT INTO `t_region` VALUES (1499, '莱西市', '370285', '0532', 1488, 'Laixi City');
+INSERT INTO `t_region` VALUES (1500, '淄博市', '370300', '0533', 1475, 'Zibo');
+INSERT INTO `t_region` VALUES (1501, '淄博市市辖区', '370301', '0533', 1500, 'Zibo municipal');
+INSERT INTO `t_region` VALUES (1502, '淄川区', '370302', '0533', 1500, 'zichuan');
+INSERT INTO `t_region` VALUES (1503, '张店区', '370303', '0533', 1500, 'zhangdian');
+INSERT INTO `t_region` VALUES (1504, '博山区', '370304', '0533', 1500, 'Boshan');
+INSERT INTO `t_region` VALUES (1505, '临淄区', '370305', '0533', 1500, 'Linzi');
+INSERT INTO `t_region` VALUES (1506, '周村区', '370306', '0533', 1500, 'Zhoucun');
+INSERT INTO `t_region` VALUES (1507, '桓台县', '370321', '0533', 1500, 'Huantai');
+INSERT INTO `t_region` VALUES (1508, '高青县', '370322', '0533', 1500, 'Gaoqing');
+INSERT INTO `t_region` VALUES (1509, '沂源县', '370323', '0533', 1500, 'Yiyuan');
+INSERT INTO `t_region` VALUES (1510, '枣庄市', '370400', '0632', 1475, 'Zaozhuang');
+INSERT INTO `t_region` VALUES (1511, '枣庄市市辖区', '370401', '0632', 1510, 'Zaozhuang municipal');
+INSERT INTO `t_region` VALUES (1512, '市中区', '370402', '0632', 1510, 'Shizhong');
+INSERT INTO `t_region` VALUES (1513, '薛城区', '370403', '0632', 1510, 'xuecheng');
+INSERT INTO `t_region` VALUES (1514, '峄城区', '370404', '0632', 1510, 'Yicheng');
+INSERT INTO `t_region` VALUES (1515, '台儿庄区', '370405', '0632', 1510, 'Taierzhuang');
+INSERT INTO `t_region` VALUES (1516, '山亭区', '370406', '0632', 1510, 'shanting');
+INSERT INTO `t_region` VALUES (1517, '滕州市', '370481', '0632', 1510, 'Tengzhou City');
+INSERT INTO `t_region` VALUES (1518, '东营市', '370500', '0546', 1475, 'Dongying City');
+INSERT INTO `t_region` VALUES (1519, '东营市市辖区', '370501', '0546', 1518, 'Dongying municipal');
+INSERT INTO `t_region` VALUES (1520, '东营区', '370502', '0546', 1518, 'Dongying');
+INSERT INTO `t_region` VALUES (1521, '河口区', '370503', '0546', 1518, 'Hekou');
+INSERT INTO `t_region` VALUES (1522, '垦利区', '370505', '0546', 1518, 'Kenli');
+INSERT INTO `t_region` VALUES (1523, '利津县', '370522', '0546', 1518, 'Lijin');
+INSERT INTO `t_region` VALUES (1524, '广饶县', '370523', '0546', 1518, 'Guangrao');
+INSERT INTO `t_region` VALUES (1525, '烟台市', '370600', '0535', 1475, 'Yantai');
+INSERT INTO `t_region` VALUES (1526, '烟台市市辖区', '370601', '0535', 1525, 'Yantai municipal');
+INSERT INTO `t_region` VALUES (1527, '芝罘区', '370602', '0535', 1525, 'Zhifu');
+INSERT INTO `t_region` VALUES (1528, '福山区', '370611', '0535', 1525, 'fushan');
+INSERT INTO `t_region` VALUES (1529, '牟平区', '370612', '0535', 1525, 'Muping');
+INSERT INTO `t_region` VALUES (1530, '莱山区', '370613', '0535', 1525, 'Laishan');
+INSERT INTO `t_region` VALUES (1531, '长岛县', '370634', '0535', 1525, 'Changdao');
+INSERT INTO `t_region` VALUES (1532, '龙口市', '370681', '0535', 1525, 'Longkou City');
+INSERT INTO `t_region` VALUES (1533, '莱阳市', '370682', '0535', 1525, 'Laiyang City');
+INSERT INTO `t_region` VALUES (1534, '莱州市', '370683', '0535', 1525, 'Laizhou City');
+INSERT INTO `t_region` VALUES (1535, '蓬莱市', '370684', '0535', 1525, 'Penglai City');
+INSERT INTO `t_region` VALUES (1536, '招远市', '370685', '0535', 1525, 'Zhaoyuan City');
+INSERT INTO `t_region` VALUES (1537, '栖霞市', '370686', '0535', 1525, 'Qixia City');
+INSERT INTO `t_region` VALUES (1538, '海阳市', '370687', '0535', 1525, 'Haiyang');
+INSERT INTO `t_region` VALUES (1539, '潍坊市', '370700', '0536', 1475, 'Weifang');
+INSERT INTO `t_region` VALUES (1540, '潍坊市市辖区', '370701', '0536', 1539, 'Weifang municipal');
+INSERT INTO `t_region` VALUES (1541, '潍城区', '370702', '0536', 1539, 'Weicheng');
+INSERT INTO `t_region` VALUES (1542, '寒亭区', '370703', '0536', 1539, 'Hanting');
+INSERT INTO `t_region` VALUES (1543, '坊子区', '370704', '0536', 1539, 'fangzi');
+INSERT INTO `t_region` VALUES (1544, '奎文区', '370705', '0536', 1539, 'Kuiwen');
+INSERT INTO `t_region` VALUES (1545, '临朐县', '370724', '0536', 1539, 'Linqu');
+INSERT INTO `t_region` VALUES (1546, '昌乐县', '370725', '0536', 1539, 'Changle');
+INSERT INTO `t_region` VALUES (1547, '青州市', '370781', '0536', 1539, 'Qingzhou City');
+INSERT INTO `t_region` VALUES (1548, '诸城市', '370782', '0536', 1539, 'Various cities');
+INSERT INTO `t_region` VALUES (1549, '寿光市', '370783', '0536', 1539, 'Shouguang City');
+INSERT INTO `t_region` VALUES (1550, '安丘市', '370784', '0536', 1539, 'Anqiu');
+INSERT INTO `t_region` VALUES (1551, '高密市', '370785', '0536', 1539, 'Gaomi City');
+INSERT INTO `t_region` VALUES (1552, '昌邑市', '370786', '0536', 1539, 'Changyi City');
+INSERT INTO `t_region` VALUES (1553, '济宁市', '370800', '0537', 1475, 'Jining');
+INSERT INTO `t_region` VALUES (1554, '济宁市市辖区', '370801', '0537', 1553, 'Jining municipal');
+INSERT INTO `t_region` VALUES (1555, '任城区', '370811', '0537', 1553, 'Rencheng');
+INSERT INTO `t_region` VALUES (1556, '兖州区', '370812', '0537', 1553, 'Yanzhou');
+INSERT INTO `t_region` VALUES (1557, '微山县', '370826', '0537', 1553, 'Weishan');
+INSERT INTO `t_region` VALUES (1558, '鱼台县', '370827', '0537', 1553, 'Yutai');
+INSERT INTO `t_region` VALUES (1559, '金乡县', '370828', '0537', 1553, 'Jinxiang');
+INSERT INTO `t_region` VALUES (1560, '嘉祥县', '370829', '0537', 1553, 'Jiaxiang');
+INSERT INTO `t_region` VALUES (1561, '汶上县', '370830', '0537', 1553, 'Wenshang');
+INSERT INTO `t_region` VALUES (1562, '泗水县', '370831', '0537', 1553, 'Sishui');
+INSERT INTO `t_region` VALUES (1563, '梁山县', '370832', '0537', 1553, 'Liangshan');
+INSERT INTO `t_region` VALUES (1564, '曲阜市', '370881', '0537', 1553, 'Qufu City');
+INSERT INTO `t_region` VALUES (1565, '邹城市', '370883', '0537', 1553, 'Zoucheng');
+INSERT INTO `t_region` VALUES (1566, '泰安市', '370900', '0538', 1475, 'Tai\'an City');
+INSERT INTO `t_region` VALUES (1567, '泰安市市辖区', '370901', '0538', 1566, 'Tai\'an City');
+INSERT INTO `t_region` VALUES (1568, '泰山区', '370902', '0538', 1566, 'Taishan');
+INSERT INTO `t_region` VALUES (1569, '岱岳区', '370911', '0538', 1566, 'Daiyue');
+INSERT INTO `t_region` VALUES (1570, '宁阳县', '370921', '0538', 1566, 'Ningyang');
+INSERT INTO `t_region` VALUES (1571, '东平县', '370923', '0538', 1566, 'Dongping');
+INSERT INTO `t_region` VALUES (1572, '新泰市', '370982', '0538', 1566, 'Xintai city');
+INSERT INTO `t_region` VALUES (1573, '肥城市', '370983', '0538', 1566, 'Feicheng City');
+INSERT INTO `t_region` VALUES (1574, '威海市', '371000', '0631', 1475, 'Weihai');
+INSERT INTO `t_region` VALUES (1575, '威海市市辖区', '371001', '0631', 1574, 'Weihai municipal');
+INSERT INTO `t_region` VALUES (1576, '环翠区', '371002', '0631', 1574, 'huancui');
+INSERT INTO `t_region` VALUES (1577, '文登区', '371003', '0631', 1574, 'Wendeng');
+INSERT INTO `t_region` VALUES (1578, '荣成市', '371082', '0631', 1574, 'Rongcheng City');
+INSERT INTO `t_region` VALUES (1579, '乳山市', '371083', '0631', 1574, 'Rushan City');
+INSERT INTO `t_region` VALUES (1580, '日照市', '371100', '0633', 1475, 'Rizhao City');
+INSERT INTO `t_region` VALUES (1581, '日照市市辖区', '371101', '0633', 1580, 'Rizhao City');
+INSERT INTO `t_region` VALUES (1582, '东港区', '371102', '0633', 1580, 'Donggang');
+INSERT INTO `t_region` VALUES (1583, '岚山区', '371103', '0633', 1580, 'lanshan');
+INSERT INTO `t_region` VALUES (1584, '五莲县', '371121', '0633', 1580, 'Wulian');
+INSERT INTO `t_region` VALUES (1585, '莒县', '371122', '0633', 1580, 'Juxian');
+INSERT INTO `t_region` VALUES (1586, '莱芜市', '371200', '0634', 1475, 'Laiwu');
+INSERT INTO `t_region` VALUES (1587, '莱芜市市辖区', '371201', '0634', 1586, 'Laiwu municipal');
+INSERT INTO `t_region` VALUES (1588, '莱城区', '371202', '0634', 1586, 'Laicheng');
+INSERT INTO `t_region` VALUES (1589, '钢城区', '371203', '0634', 1586, 'Steel city');
+INSERT INTO `t_region` VALUES (1590, '临沂市', '371300', '0539', 1475, 'Linyi City');
+INSERT INTO `t_region` VALUES (1591, '临沂市市辖区', '371301', '0539', 1590, 'Linyi municipal');
+INSERT INTO `t_region` VALUES (1592, '兰山区', '371302', '0539', 1590, 'lanshan');
+INSERT INTO `t_region` VALUES (1593, '罗庄区', '371311', '0539', 1590, 'Luozhuang');
+INSERT INTO `t_region` VALUES (1594, '河东区', '371312', '0539', 1590, 'Hedong');
+INSERT INTO `t_region` VALUES (1595, '沂南县', '371321', '0539', 1590, 'Yinan');
+INSERT INTO `t_region` VALUES (1596, '郯城县', '371322', '0539', 1590, 'Tancheng');
+INSERT INTO `t_region` VALUES (1597, '沂水县', '371323', '0539', 1590, 'Yishui');
+INSERT INTO `t_region` VALUES (1598, '兰陵县', '371324', '0539', 1590, 'Lan Ling');
+INSERT INTO `t_region` VALUES (1599, '费县', '371325', '0539', 1590, 'Feixian');
+INSERT INTO `t_region` VALUES (1600, '平邑县', '371326', '0539', 1590, 'Pingyi');
+INSERT INTO `t_region` VALUES (1601, '莒南县', '371327', '0539', 1590, 'Junan');
+INSERT INTO `t_region` VALUES (1602, '蒙阴县', '371328', '0539', 1590, 'Mengyin');
+INSERT INTO `t_region` VALUES (1603, '临沭县', '371329', '0539', 1590, 'Linshu');
+INSERT INTO `t_region` VALUES (1604, '德州市', '371400', '0534', 1475, 'Dezhou');
+INSERT INTO `t_region` VALUES (1605, '德州市市辖区', '371401', '0534', 1604, 'Dezhou municipal');
+INSERT INTO `t_region` VALUES (1606, '德城区', '371402', '0534', 1604, 'De City');
+INSERT INTO `t_region` VALUES (1607, '陵城区', '371403', '0534', 1604, 'Mausoleum');
+INSERT INTO `t_region` VALUES (1608, '宁津县', '371422', '0534', 1604, 'Ningjin');
+INSERT INTO `t_region` VALUES (1609, '庆云县', '371423', '0534', 1604, 'Qingyun');
+INSERT INTO `t_region` VALUES (1610, '临邑县', '371424', '0534', 1604, 'Linyi');
+INSERT INTO `t_region` VALUES (1611, '齐河县', '371425', '0534', 1604, 'Qihe');
+INSERT INTO `t_region` VALUES (1612, '平原县', '371426', '0534', 1604, 'Pingyuan');
+INSERT INTO `t_region` VALUES (1613, '夏津县', '371427', '0534', 1604, 'Xiajin');
+INSERT INTO `t_region` VALUES (1614, '武城县', '371428', '0534', 1604, 'Wucheng');
+INSERT INTO `t_region` VALUES (1615, '乐陵市', '371481', '0534', 1604, 'Leling City');
+INSERT INTO `t_region` VALUES (1616, '禹城市', '371482', '0534', 1604, 'yucheng city');
+INSERT INTO `t_region` VALUES (1617, '聊城市', '371500', '0635', 1475, 'LiaoCheng');
+INSERT INTO `t_region` VALUES (1618, '聊城市市辖区', '371501', '0635', 1617, 'Liaocheng municipal');
+INSERT INTO `t_region` VALUES (1619, '东昌府区', '371502', '0635', 1617, 'Dongchangfu');
+INSERT INTO `t_region` VALUES (1620, '阳谷县', '371521', '0635', 1617, 'Yanggu');
+INSERT INTO `t_region` VALUES (1621, '莘县', '371522', '0635', 1617, 'Shenxian');
+INSERT INTO `t_region` VALUES (1622, '茌平县', '371523', '0635', 1617, 'Chiping');
+INSERT INTO `t_region` VALUES (1623, '东阿县', '371524', '0635', 1617, 'Dong’e');
+INSERT INTO `t_region` VALUES (1624, '冠县', '371525', '0635', 1617, 'Guanxian');
+INSERT INTO `t_region` VALUES (1625, '高唐县', '371526', '0635', 1617, 'Gaotang');
+INSERT INTO `t_region` VALUES (1626, '临清市', '371581', '0635', 1617, 'Linqing City');
+INSERT INTO `t_region` VALUES (1627, '滨州市', '371600', '0543', 1475, 'Binzhou City');
+INSERT INTO `t_region` VALUES (1628, '滨州市市辖区', '371601', '0543', 1627, 'Binzhou municipal');
+INSERT INTO `t_region` VALUES (1629, '滨城区', '371602', '0543', 1627, 'bincheng');
+INSERT INTO `t_region` VALUES (1630, '沾化区', '371603', '0543', 1627, 'Zhanhua');
+INSERT INTO `t_region` VALUES (1631, '惠民县', '371621', '0543', 1627, 'Huimin');
+INSERT INTO `t_region` VALUES (1632, '阳信县', '371622', '0543', 1627, 'Yangxin');
+INSERT INTO `t_region` VALUES (1633, '无棣县', '371623', '0543', 1627, 'Wudi');
+INSERT INTO `t_region` VALUES (1634, '博兴县', '371625', '0543', 1627, 'Boxing');
+INSERT INTO `t_region` VALUES (1635, '邹平县', '371626', '0543', 1627, 'Zouping');
+INSERT INTO `t_region` VALUES (1636, '菏泽市', '371700', '0530', 1475, 'HeZe');
+INSERT INTO `t_region` VALUES (1637, '菏泽市市辖区', '371701', '0530', 1636, 'Heze municipal');
+INSERT INTO `t_region` VALUES (1638, '牡丹区', '371702', '0530', 1636, 'Mudan');
+INSERT INTO `t_region` VALUES (1639, '曹县', '371721', '0530', 1636, 'Caoxian');
+INSERT INTO `t_region` VALUES (1640, '单县', '371722', '0530', 1636, 'Shanxian');
+INSERT INTO `t_region` VALUES (1641, '成武县', '371723', '0530', 1636, 'Chengwu');
+INSERT INTO `t_region` VALUES (1642, '巨野县', '371724', '0530', 1636, 'Juye');
+INSERT INTO `t_region` VALUES (1643, '郓城县', '371725', '0530', 1636, 'Yuncheng');
+INSERT INTO `t_region` VALUES (1644, '鄄城县', '371726', '0530', 1636, 'Juancheng');
+INSERT INTO `t_region` VALUES (1645, '定陶区', '371703', '0530', 1636, 'Dingtao');
+INSERT INTO `t_region` VALUES (1646, '东明县', '371728', '0530', 1636, 'Dongming');
+INSERT INTO `t_region` VALUES (1647, '河南省', '410000', '', 0, 'Henan Province ');
+INSERT INTO `t_region` VALUES (1648, '郑州市', '410100', '0371', 1647, 'Zhengzhou');
+INSERT INTO `t_region` VALUES (1649, '郑州市市辖区', '410101', '0371', 1648, 'Zhengzhou municipal');
+INSERT INTO `t_region` VALUES (1650, '中原区', '410102', '0371', 1648, 'Zhongyuan');
+INSERT INTO `t_region` VALUES (1651, '二七区', '410103', '0371', 1648, 'erqi');
+INSERT INTO `t_region` VALUES (1652, '管城回族区', '410104', '0371', 1648, 'Guancheng Hui');
+INSERT INTO `t_region` VALUES (1653, '金水区', '410105', '0371', 1648, 'jinshui');
+INSERT INTO `t_region` VALUES (1654, '上街区', '410106', '0371', 1648, 'Upper Street area');
+INSERT INTO `t_region` VALUES (1655, '惠济区', '410108', '0371', 1648, 'Huiji');
+INSERT INTO `t_region` VALUES (1656, '中牟县', '410122', '0371', 1648, 'Zhongmou');
+INSERT INTO `t_region` VALUES (1657, '巩义市', '410181', '0371', 1648, 'Gongyi');
+INSERT INTO `t_region` VALUES (1658, '荥阳市', '410182', '0371', 1648, 'xingyang');
+INSERT INTO `t_region` VALUES (1659, '新密市', '410183', '0371', 1648, 'Xinmi');
+INSERT INTO `t_region` VALUES (1660, '新郑市', '410184', '0371', 1648, 'Xinzheng City');
+INSERT INTO `t_region` VALUES (1661, '登封市', '410185', '0371', 1648, 'Dengfeng');
+INSERT INTO `t_region` VALUES (1662, '开封市', '410200', '0378', 1647, 'Kaifeng');
+INSERT INTO `t_region` VALUES (1663, '开封市市辖区', '410201', '0378', 1662, 'Kaifeng City');
+INSERT INTO `t_region` VALUES (1664, '龙亭区', '410202', '0378', 1662, 'Longting');
+INSERT INTO `t_region` VALUES (1665, '顺河回族区', '410203', '0378', 1662, 'shunhe hui');
+INSERT INTO `t_region` VALUES (1666, '鼓楼区', '410204', '0378', 1662, 'gulou');
+INSERT INTO `t_region` VALUES (1667, '禹王台区', '410205', '0378', 1662, 'Yuwangtai');
+INSERT INTO `t_region` VALUES (1668, '祥符区', '410212', '0378', 1662, 'Auspicious symbol area');
+INSERT INTO `t_region` VALUES (1669, '杞县', '410221', '0378', 1662, 'Qixian');
+INSERT INTO `t_region` VALUES (1670, '通许县', '410222', '0378', 1662, 'Tongxu');
+INSERT INTO `t_region` VALUES (1671, '尉氏县', '410223', '0378', 1662, 'Weishi');
+INSERT INTO `t_region` VALUES (1672, '兰考县', '410225', '0378', 1662, 'Lankao');
+INSERT INTO `t_region` VALUES (1673, '洛阳市', '410300', '0379', 1647, 'Luoyang');
+INSERT INTO `t_region` VALUES (1674, '洛阳市市辖区', '410301', '0379', 1673, 'Luoyang municipal');
+INSERT INTO `t_region` VALUES (1675, '老城区', '410302', '0379', 1673, 'old town');
+INSERT INTO `t_region` VALUES (1676, '西工区', '410303', '0379', 1673, 'Xigong');
+INSERT INTO `t_region` VALUES (1677, '瀍河回族区', '410304', '0379', 1673, 'Hui Nationality Area');
+INSERT INTO `t_region` VALUES (1678, '涧西区', '410305', '0379', 1673, 'Jianxi');
+INSERT INTO `t_region` VALUES (1679, '吉利区', '410306', '0379', 1673, 'Jili');
+INSERT INTO `t_region` VALUES (1680, '洛龙区', '410311', '0379', 1673, 'Luolong');
+INSERT INTO `t_region` VALUES (1681, '孟津县', '410322', '0379', 1673, 'Hengjin');
+INSERT INTO `t_region` VALUES (1682, '新安县', '410323', '0379', 1673, 'Xin’an');
+INSERT INTO `t_region` VALUES (1683, '栾川县', '410324', '0379', 1673, 'Luanchuan');
+INSERT INTO `t_region` VALUES (1684, '嵩县', '410325', '0379', 1673, 'Songxian');
+INSERT INTO `t_region` VALUES (1685, '汝阳县', '410326', '0379', 1673, 'Ruyang');
+INSERT INTO `t_region` VALUES (1686, '宜阳县', '410327', '0379', 1673, 'Yiyang');
+INSERT INTO `t_region` VALUES (1687, '洛宁县', '410328', '0379', 1673, 'Luoning');
+INSERT INTO `t_region` VALUES (1688, '伊川县', '410329', '0379', 1673, 'Yichuan');
+INSERT INTO `t_region` VALUES (1689, '偃师市', '410381', '0379', 1673, 'Yanshi');
+INSERT INTO `t_region` VALUES (1690, '平顶山市', '410400', '0375', 1647, 'Pingdingshan');
+INSERT INTO `t_region` VALUES (1691, '平顶山市市辖区', '410401', '0375', 1690, 'Pingdingshan municipal');
+INSERT INTO `t_region` VALUES (1692, '新华区', '410402', '0375', 1690, 'Xinhua');
+INSERT INTO `t_region` VALUES (1693, '卫东区', '410403', '0375', 1690, 'Weidong');
+INSERT INTO `t_region` VALUES (1694, '石龙区', '410404', '0375', 1690, 'Shilong');
+INSERT INTO `t_region` VALUES (1695, '湛河区', '410411', '0375', 1690, 'Zhanhe');
+INSERT INTO `t_region` VALUES (1696, '宝丰县', '410421', '0375', 1690, 'Baofeng');
+INSERT INTO `t_region` VALUES (1697, '叶县', '410422', '0375', 1690, 'Yexian');
+INSERT INTO `t_region` VALUES (1698, '鲁山县', '410423', '0375', 1690, 'Lushan');
+INSERT INTO `t_region` VALUES (1699, '郏县', '410425', '0375', 1690, 'Jiaxian (ain Henan Province) ');
+INSERT INTO `t_region` VALUES (1700, '舞钢市', '410481', '0375', 1690, 'Wugang City');
+INSERT INTO `t_region` VALUES (1701, '汝州市', '410482', '0375', 1690, 'Ruzhou');
+INSERT INTO `t_region` VALUES (1702, '安阳市', '410500', '0372', 1647, 'Anyang');
+INSERT INTO `t_region` VALUES (1703, '安阳市市辖区', '410501', '0372', 1702, 'Anyang municipal');
+INSERT INTO `t_region` VALUES (1704, '文峰区', '410502', '0372', 1702, 'Wenfeng');
+INSERT INTO `t_region` VALUES (1705, '北关区', '410503', '0372', 1702, 'Beiguan');
+INSERT INTO `t_region` VALUES (1706, '殷都区', '410505', '0372', 1702, 'Yindu');
+INSERT INTO `t_region` VALUES (1707, '龙安区', '410506', '0372', 1702, 'Long\'an');
+INSERT INTO `t_region` VALUES (1708, '安阳县', '410522', '0372', 1702, 'Anyang');
+INSERT INTO `t_region` VALUES (1709, '汤阴县', '410523', '0372', 1702, 'Tangyin');
+INSERT INTO `t_region` VALUES (1710, '滑县', '410526', '0372', 1702, 'Huaxian');
+INSERT INTO `t_region` VALUES (1711, '内黄县', '410527', '0372', 1702, 'Neihuang');
+INSERT INTO `t_region` VALUES (1712, '林州市', '410581', '0372', 1702, 'Linzhou City');
+INSERT INTO `t_region` VALUES (1713, '鹤壁市', '410600', '0392', 1647, 'Hebi');
+INSERT INTO `t_region` VALUES (1714, '鹤壁市市辖区', '410601', '0392', 1713, 'Hebi municipal');
+INSERT INTO `t_region` VALUES (1715, '鹤山区', '410602', '0392', 1713, 'Heshan');
+INSERT INTO `t_region` VALUES (1716, '山城区', '410603', '0392', 1713, 'Shancheng');
+INSERT INTO `t_region` VALUES (1717, '淇滨区', '410611', '0392', 1713, 'Qibin');
+INSERT INTO `t_region` VALUES (1718, '浚县', '410621', '0392', 1713, 'Xunxian (ain Henan Province) ');
+INSERT INTO `t_region` VALUES (1719, '淇县', '410622', '0392', 1713, 'Qixian');
+INSERT INTO `t_region` VALUES (1720, '新乡市', '410700', '0373', 1647, 'Xinxiang');
+INSERT INTO `t_region` VALUES (1721, '新乡市市辖区', '410701', '0373', 1720, 'Xinxiang municipal');
+INSERT INTO `t_region` VALUES (1722, '红旗区', '410702', '0373', 1720, 'Hongqi');
+INSERT INTO `t_region` VALUES (1723, '卫滨区', '410703', '0373', 1720, 'Weibin');
+INSERT INTO `t_region` VALUES (1724, '凤泉区', '410704', '0373', 1720, 'Fengquan');
+INSERT INTO `t_region` VALUES (1725, '牧野区', '410711', '0373', 1720, 'Muye');
+INSERT INTO `t_region` VALUES (1726, '新乡县', '410721', '0373', 1720, 'Xinxiang');
+INSERT INTO `t_region` VALUES (1727, '获嘉县', '410724', '0373', 1720, 'Huojia');
+INSERT INTO `t_region` VALUES (1728, '原阳县', '410725', '0373', 1720, 'Yuanyang');
+INSERT INTO `t_region` VALUES (1729, '延津县', '410726', '0373', 1720, 'Yanjin');
+INSERT INTO `t_region` VALUES (1730, '封丘县', '410727', '0373', 1720, 'Fengqiu');
+INSERT INTO `t_region` VALUES (1731, '长垣县', '410728', '0373', 1720, 'Changyuan');
+INSERT INTO `t_region` VALUES (1732, '卫辉市', '410781', '0373', 1720, 'weihui city');
+INSERT INTO `t_region` VALUES (1733, '辉县市', '410782', '0373', 1720, 'huixian');
+INSERT INTO `t_region` VALUES (1734, '焦作市', '410800', '0391', 1647, 'Jiaozuo');
+INSERT INTO `t_region` VALUES (1735, '焦作市市辖区', '410801', '0391', 1734, 'Jiaozuo municipal');
+INSERT INTO `t_region` VALUES (1736, '解放区', '410802', '0391', 1734, 'liberated area ');
+INSERT INTO `t_region` VALUES (1737, '中站区', '410803', '0391', 1734, 'Zhongzhan');
+INSERT INTO `t_region` VALUES (1738, '马村区', '410804', '0391', 1734, 'Macun');
+INSERT INTO `t_region` VALUES (1739, '山阳区', '410811', '0391', 1734, 'Shanyang');
+INSERT INTO `t_region` VALUES (1740, '修武县', '410821', '0391', 1734, 'Xiuwu');
+INSERT INTO `t_region` VALUES (1741, '博爱县', '410822', '0391', 1734, 'Bo’ai');
+INSERT INTO `t_region` VALUES (1742, '武陟县', '410823', '0391', 1734, 'Wuzhi');
+INSERT INTO `t_region` VALUES (1743, '温县', '410825', '0391', 1734, 'Wenxian');
+INSERT INTO `t_region` VALUES (1744, '沁阳市', '410882', '0391', 1734, 'Qinyang City');
+INSERT INTO `t_region` VALUES (1745, '孟州市', '410883', '0391', 1734, 'Mengzhou');
+INSERT INTO `t_region` VALUES (1746, '濮阳市', '410900', '0393', 1647, 'Puyang City');
+INSERT INTO `t_region` VALUES (1747, '濮阳市市辖区', '410901', '0393', 1746, 'Puyang municipal');
+INSERT INTO `t_region` VALUES (1748, '华龙区', '410902', '0393', 1746, 'Hualong');
+INSERT INTO `t_region` VALUES (1749, '清丰县', '410922', '0393', 1746, 'Qingfeng');
+INSERT INTO `t_region` VALUES (1750, '南乐县', '410923', '0393', 1746, 'Nanle');
+INSERT INTO `t_region` VALUES (1751, '范县', '410926', '0393', 1746, 'Fanxian');
+INSERT INTO `t_region` VALUES (1752, '台前县', '410927', '0393', 1746, 'Taiqian');
+INSERT INTO `t_region` VALUES (1753, '濮阳县', '410928', '0393', 1746, 'Puyang');
+INSERT INTO `t_region` VALUES (1754, '许昌市', '411000', '0374', 1647, 'Xuchang');
+INSERT INTO `t_region` VALUES (1755, '许昌市市辖区', '411001', '0374', 1754, 'Xuchang municipal');
+INSERT INTO `t_region` VALUES (1756, '魏都区', '411002', '0374', 1754, 'Weidu');
+INSERT INTO `t_region` VALUES (1757, '建安区', '411003', '0374', 1754, 'Kien An');
+INSERT INTO `t_region` VALUES (1758, '鄢陵县', '411024', '0374', 1754, 'Yanling');
+INSERT INTO `t_region` VALUES (1759, '襄城县', '411025', '0374', 1754, 'Xiangcheng');
+INSERT INTO `t_region` VALUES (1760, '禹州市', '411081', '0374', 1754, 'Yuzhou City');
+INSERT INTO `t_region` VALUES (1761, '长葛市', '411082', '0374', 1754, 'Changge City');
+INSERT INTO `t_region` VALUES (1762, '漯河市', '411100', '0395', 1647, 'Luohe');
+INSERT INTO `t_region` VALUES (1763, '漯河市市辖区', '411101', '0395', 1762, 'Luohe municipal');
+INSERT INTO `t_region` VALUES (1764, '源汇区', '411102', '0395', 1762, 'yuanhui');
+INSERT INTO `t_region` VALUES (1765, '郾城区', '411103', '0395', 1762, 'Yancheng');
+INSERT INTO `t_region` VALUES (1766, '召陵区', '411104', '0395', 1762, 'Shaoling');
+INSERT INTO `t_region` VALUES (1767, '舞阳县', '411121', '0395', 1762, 'Wuyang');
+INSERT INTO `t_region` VALUES (1768, '临颍县', '411122', '0395', 1762, 'Linying');
+INSERT INTO `t_region` VALUES (1769, '三门峡市', '411200', '0398', 1647, 'Sanmenxia');
+INSERT INTO `t_region` VALUES (1770, '三门峡市市辖区', '411201', '0398', 1769, 'Sanmenxia municipal');
+INSERT INTO `t_region` VALUES (1771, '湖滨区', '411202', '0398', 1769, 'Lakeside Area');
+INSERT INTO `t_region` VALUES (1772, '陕州区', '411203', '0398', 1769, 'Shanxi Prefecture');
+INSERT INTO `t_region` VALUES (1773, '渑池县', '411221', '0398', 1769, 'Mianchi');
+INSERT INTO `t_region` VALUES (1774, '卢氏县', '411224', '0398', 1769, 'Lushi');
+INSERT INTO `t_region` VALUES (1775, '义马市', '411281', '0398', 1769, 'Yima City');
+INSERT INTO `t_region` VALUES (1776, '灵宝市', '411282', '0398', 1769, 'Lingbao City');
+INSERT INTO `t_region` VALUES (1777, '南阳市', '411300', '0377', 1647, 'Nanyang');
+INSERT INTO `t_region` VALUES (1778, '南阳市市辖区', '411301', '0377', 1777, 'Nanyang municipal');
+INSERT INTO `t_region` VALUES (1779, '宛城区', '411302', '0377', 1777, 'wancheng');
+INSERT INTO `t_region` VALUES (1780, '卧龙区', '411303', '0377', 1777, 'Wolong');
+INSERT INTO `t_region` VALUES (1781, '南召县', '411321', '0377', 1777, 'Nanzhao');
+INSERT INTO `t_region` VALUES (1782, '方城县', '411322', '0377', 1777, 'Fangcheng');
+INSERT INTO `t_region` VALUES (1783, '西峡县', '411323', '0377', 1777, 'Xixia');
+INSERT INTO `t_region` VALUES (1784, '镇平县', '411324', '0377', 1777, 'Zhenping');
+INSERT INTO `t_region` VALUES (1785, '内乡县', '411325', '0377', 1777, 'Neixiang');
+INSERT INTO `t_region` VALUES (1786, '淅川县', '411326', '0377', 1777, 'Xichuan');
+INSERT INTO `t_region` VALUES (1787, '社旗县', '411327', '0377', 1777, 'Sheqi');
+INSERT INTO `t_region` VALUES (1788, '唐河县', '411328', '0377', 1777, 'Tanghe');
+INSERT INTO `t_region` VALUES (1789, '新野县', '411329', '0377', 1777, 'Xinye');
+INSERT INTO `t_region` VALUES (1790, '桐柏县', '411330', '0377', 1777, 'Tongbai');
+INSERT INTO `t_region` VALUES (1791, '邓州市', '411381', '0377', 1777, 'Dengzhou');
+INSERT INTO `t_region` VALUES (1792, '商丘市', '411400', '0370', 1647, 'Shangqiu');
+INSERT INTO `t_region` VALUES (1793, '商丘市市辖区', '411401', '0370', 1792, 'Shangqiu municipal');
+INSERT INTO `t_region` VALUES (1794, '梁园区', '411402', '0370', 1792, 'Beam Park');
+INSERT INTO `t_region` VALUES (1795, '睢阳区', '411403', '0370', 1792, 'Suiyang');
+INSERT INTO `t_region` VALUES (1796, '民权县', '411421', '0370', 1792, 'Minquan');
+INSERT INTO `t_region` VALUES (1797, '睢县', '411422', '0370', 1792, 'Suixian (ain Henan Province) ');
+INSERT INTO `t_region` VALUES (1798, '宁陵县', '411423', '0370', 1792, 'Ningling');
+INSERT INTO `t_region` VALUES (1799, '柘城县', '411424', '0370', 1792, 'Zhecheng');
+INSERT INTO `t_region` VALUES (1800, '虞城县', '411425', '0370', 1792, 'Yucheng');
+INSERT INTO `t_region` VALUES (1801, '夏邑县', '411426', '0370', 1792, 'Xiayi');
+INSERT INTO `t_region` VALUES (1802, '永城市', '411481', '0370', 1792, 'Yongcheng');
+INSERT INTO `t_region` VALUES (1803, '信阳市', '411500', '0376', 1647, 'Xinyang');
+INSERT INTO `t_region` VALUES (1804, '信阳市市辖区', '411501', '0376', 1803, 'Xinyang municipal');
+INSERT INTO `t_region` VALUES (1805, '浉河区', '411502', '0376', 1803, 'The Shihe River');
+INSERT INTO `t_region` VALUES (1806, '平桥区', '411503', '0376', 1803, 'Pingqiao');
+INSERT INTO `t_region` VALUES (1807, '罗山县', '411521', '0376', 1803, 'Luoshan');
+INSERT INTO `t_region` VALUES (1808, '光山县', '411522', '0376', 1803, 'Guangshan');
+INSERT INTO `t_region` VALUES (1809, '新县', '411523', '0376', 1803, 'Xinxian');
+INSERT INTO `t_region` VALUES (1810, '商城县', '411524', '0376', 1803, 'Shangcheng');
+INSERT INTO `t_region` VALUES (1811, '固始县', '411525', '0376', 1803, 'Gushi');
+INSERT INTO `t_region` VALUES (1812, '潢川县', '411526', '0376', 1803, 'Huangchuan');
+INSERT INTO `t_region` VALUES (1813, '淮滨县', '411527', '0376', 1803, 'Huaibin');
+INSERT INTO `t_region` VALUES (1814, '息县', '411528', '0376', 1803, 'Xixian');
+INSERT INTO `t_region` VALUES (1815, '周口市', '411600', '0394', 1647, 'Zhoukou');
+INSERT INTO `t_region` VALUES (1816, '周口市市辖区', '411601', '0394', 1815, 'Zhoukou municipal');
+INSERT INTO `t_region` VALUES (1817, '川汇区', '411602', '0394', 1815, 'Chuanhui');
+INSERT INTO `t_region` VALUES (1818, '扶沟县', '411621', '0394', 1815, 'Fugou');
+INSERT INTO `t_region` VALUES (1819, '西华县', '411622', '0394', 1815, 'Xihua');
+INSERT INTO `t_region` VALUES (1820, '商水县', '411623', '0394', 1815, 'Shangshui');
+INSERT INTO `t_region` VALUES (1821, '沈丘县', '411624', '0394', 1815, 'Shenqiu');
+INSERT INTO `t_region` VALUES (1822, '郸城县', '411625', '0394', 1815, 'Dancheng');
+INSERT INTO `t_region` VALUES (1823, '淮阳县', '411626', '0394', 1815, 'Huaiyang');
+INSERT INTO `t_region` VALUES (1824, '太康县', '411627', '0394', 1815, 'Taikang');
+INSERT INTO `t_region` VALUES (1825, '鹿邑县', '411628', '0394', 1815, 'Luyi');
+INSERT INTO `t_region` VALUES (1826, '项城市', '411681', '0394', 1815, 'Xiangcheng city');
+INSERT INTO `t_region` VALUES (1827, '驻马店市', '411700', '0396', 1647, 'zhumadian');
+INSERT INTO `t_region` VALUES (1828, '驻马店市市辖区', '411701', '0396', 1827, 'Zhumadian municipal');
+INSERT INTO `t_region` VALUES (1829, '驿城区', '411702', '0396', 1827, 'Yicheng');
+INSERT INTO `t_region` VALUES (1830, '西平县', '411721', '0396', 1827, 'Xiping');
+INSERT INTO `t_region` VALUES (1831, '上蔡县', '411722', '0396', 1827, 'Shangcai');
+INSERT INTO `t_region` VALUES (1832, '平舆县', '411723', '0396', 1827, 'Pingyu');
+INSERT INTO `t_region` VALUES (1833, '正阳县', '411724', '0396', 1827, 'Zhengyang');
+INSERT INTO `t_region` VALUES (1834, '确山县', '411725', '0396', 1827, 'Queshan');
+INSERT INTO `t_region` VALUES (1835, '泌阳县', '411726', '0396', 1827, 'Biyang');
+INSERT INTO `t_region` VALUES (1836, '汝南县', '411727', '0396', 1827, 'Runan');
+INSERT INTO `t_region` VALUES (1837, '遂平县', '411728', '0396', 1827, 'Suiping');
+INSERT INTO `t_region` VALUES (1838, '新蔡县', '411729', '0396', 1827, 'Xincai');
+INSERT INTO `t_region` VALUES (1839, '济源市', '419001', '1391', 1827, 'Jiyuan City');
+INSERT INTO `t_region` VALUES (1840, '湖北省', '420000', '', 0, 'Hubei province ');
+INSERT INTO `t_region` VALUES (1841, '武汉市', '420100', '027', 1840, 'Wuhan');
+INSERT INTO `t_region` VALUES (1842, '武汉市市辖区', '420101', '027', 1841, 'Wuhan municipal');
+INSERT INTO `t_region` VALUES (1843, '江岸区', '420102', '027', 1841, 'Riverside area');
+INSERT INTO `t_region` VALUES (1844, '江汉区', '420103', '027', 1841, 'Jianghan');
+INSERT INTO `t_region` VALUES (1845, '硚口区', '420104', '027', 1841, 'Mouth area');
+INSERT INTO `t_region` VALUES (1846, '汉阳区', '420105', '027', 1841, 'Hanyang');
+INSERT INTO `t_region` VALUES (1847, '武昌区', '420106', '027', 1841, 'Wuchang');
+INSERT INTO `t_region` VALUES (1848, '青山区', '420107', '027', 1841, 'Qingshan');
+INSERT INTO `t_region` VALUES (1849, '洪山区', '420111', '027', 1841, 'Hongshan');
+INSERT INTO `t_region` VALUES (1850, '东西湖区', '420112', '027', 1841, 'Dongxihu');
+INSERT INTO `t_region` VALUES (1851, '汉南区', '420113', '027', 1841, 'hannan');
+INSERT INTO `t_region` VALUES (1852, '蔡甸区', '420114', '027', 1841, 'Caidian');
+INSERT INTO `t_region` VALUES (1853, '江夏区', '420115', '027', 1841, 'jiangxia');
+INSERT INTO `t_region` VALUES (1854, '黄陂区', '420116', '027', 1841, 'Huangpi');
+INSERT INTO `t_region` VALUES (1855, '新洲区', '420117', '027', 1841, 'xinzhou');
+INSERT INTO `t_region` VALUES (1856, '黄石市', '420200', '0714', 1840, 'Huangshi');
+INSERT INTO `t_region` VALUES (1857, '黄石市市辖区', '420201', '0714', 1856, 'Huangshi municipal');
+INSERT INTO `t_region` VALUES (1858, '黄石港区', '420202', '0714', 1856, 'Huangshigang');
+INSERT INTO `t_region` VALUES (1859, '西塞山区', '420203', '0714', 1856, 'Xisaishan');
+INSERT INTO `t_region` VALUES (1860, '下陆区', '420204', '0714', 1856, 'Xialu');
+INSERT INTO `t_region` VALUES (1861, '铁山区', '420205', '0714', 1856, 'Tieshan');
+INSERT INTO `t_region` VALUES (1862, '阳新县', '420222', '0714', 1856, 'Yangxin');
+INSERT INTO `t_region` VALUES (1863, '大冶市', '420281', '0714', 1856, 'Daye');
+INSERT INTO `t_region` VALUES (1864, '十堰市', '420300', '0719', 1840, 'Shiyan');
+INSERT INTO `t_region` VALUES (1865, '十堰市市辖区', '420301', '0719', 1864, 'Shiyan municipal');
+INSERT INTO `t_region` VALUES (1866, '茅箭区', '420302', '0719', 1864, 'maojian');
+INSERT INTO `t_region` VALUES (1867, '张湾区', '420303', '0719', 1864, 'Zhangwan');
+INSERT INTO `t_region` VALUES (1868, '郧阳区', '420304', '0719', 1864, 'Yunyang');
+INSERT INTO `t_region` VALUES (1869, '郧西县', '420322', '0719', 1864, 'Xunxi');
+INSERT INTO `t_region` VALUES (1870, '竹山县', '420323', '0719', 1864, 'Zhushan');
+INSERT INTO `t_region` VALUES (1871, '竹溪县', '420324', '0719', 1864, 'Zhuxi');
+INSERT INTO `t_region` VALUES (1872, '房县', '420325', '0719', 1864, 'Fangxian');
+INSERT INTO `t_region` VALUES (1873, '丹江口市', '420381', '0719', 1864, 'Danjiangkou City');
+INSERT INTO `t_region` VALUES (1874, '宜昌市', '420500', '0717', 1840, 'Yichang');
+INSERT INTO `t_region` VALUES (1875, '宜昌市市辖区', '420501', '0717', 1874, 'Yichang municipal');
+INSERT INTO `t_region` VALUES (1876, '西陵区', '420502', '0717', 1874, 'Xiling');
+INSERT INTO `t_region` VALUES (1877, '伍家岗区', '420503', '0717', 1874, 'Wujiagang');
+INSERT INTO `t_region` VALUES (1878, '点军区', '420504', '0717', 1874, 'Dianjun');
+INSERT INTO `t_region` VALUES (1879, '猇亭区', '420505', '0717', 1874, 'Xiaoting');
+INSERT INTO `t_region` VALUES (1880, '夷陵区', '420506', '0717', 1874, 'yiling');
+INSERT INTO `t_region` VALUES (1881, '远安县', '420525', '0717', 1874, 'Yuan’an');
+INSERT INTO `t_region` VALUES (1882, '兴山县', '420526', '0717', 1874, 'Xingshan');
+INSERT INTO `t_region` VALUES (1883, '秭归县', '420527', '0717', 1874, 'Zigui');
+INSERT INTO `t_region` VALUES (1884, '长阳土家族自治县', '420528', '0717', 1874, 'changyang tujia autonomous');
+INSERT INTO `t_region` VALUES (1885, '五峰土家族自治县', '420529', '0717', 1874, 'Wufeng Tujia Autonomous');
+INSERT INTO `t_region` VALUES (1886, '宜都市', '420581', '0717', 1874, 'Yidu City');
+INSERT INTO `t_region` VALUES (1887, '当阳市', '420582', '0717', 1874, 'Dangyang City');
+INSERT INTO `t_region` VALUES (1888, '枝江市', '420583', '0717', 1874, 'Zhijiang');
+INSERT INTO `t_region` VALUES (1889, '襄阳市', '420600', '0710', 1840, 'Xiangyang');
+INSERT INTO `t_region` VALUES (1890, '襄阳市市辖区', '420601', '0710', 1889, 'Xiangyang municipal');
+INSERT INTO `t_region` VALUES (1891, '襄城区', '420602', '0710', 1889, 'Xiangcheng');
+INSERT INTO `t_region` VALUES (1892, '樊城区', '420606', '0710', 1889, 'Fancheng');
+INSERT INTO `t_region` VALUES (1893, '襄州区', '420607', '0710', 1889, 'Xiangzhou');
+INSERT INTO `t_region` VALUES (1894, '南漳县', '420624', '0710', 1889, 'Nanzhang');
+INSERT INTO `t_region` VALUES (1895, '谷城县', '420625', '0710', 1889, 'Gucheng');
+INSERT INTO `t_region` VALUES (1896, '保康县', '420626', '0710', 1889, 'Baokang');
+INSERT INTO `t_region` VALUES (1897, '老河口市', '420682', '0710', 1889, 'laohekou');
+INSERT INTO `t_region` VALUES (1898, '枣阳市', '420683', '0710', 1889, 'Zaoyang City');
+INSERT INTO `t_region` VALUES (1899, '宜城市', '420684', '0710', 1889, 'Yicheng City');
+INSERT INTO `t_region` VALUES (1900, '鄂州市', '420700', '0711', 1840, 'Ezhou City');
+INSERT INTO `t_region` VALUES (1901, '鄂州市市辖区', '420701', '0711', 1900, 'Ezhou municipal');
+INSERT INTO `t_region` VALUES (1902, '梁子湖区', '420702', '0711', 1900, 'Liangzihu');
+INSERT INTO `t_region` VALUES (1903, '华容区', '420703', '0711', 1900, 'Huarong');
+INSERT INTO `t_region` VALUES (1904, '鄂城区', '420704', '0711', 1900, 'Echeng');
+INSERT INTO `t_region` VALUES (1905, '荆门市', '420800', '0724', 1840, 'Jingmen City');
+INSERT INTO `t_region` VALUES (1906, '荆门市市辖区', '420801', '0724', 1905, 'Jingmen municipal');
+INSERT INTO `t_region` VALUES (1907, '东宝区', '420802', '0724', 1905, 'Dongbao');
+INSERT INTO `t_region` VALUES (1908, '掇刀区', '420804', '0724', 1905, 'Duodao');
+INSERT INTO `t_region` VALUES (1909, '京山县', '420821', '0724', 1905, 'Jingshan Count y ');
+INSERT INTO `t_region` VALUES (1910, '沙洋县', '420822', '0724', 1905, 'shayang');
+INSERT INTO `t_region` VALUES (1911, '钟祥市', '420881', '0724', 1905, 'Zhongxiang');
+INSERT INTO `t_region` VALUES (1912, '孝感市', '420900', '0712', 1840, 'Xiaogan City');
+INSERT INTO `t_region` VALUES (1913, '孝感市市辖区', '420901', '0712', 1912, 'Xiaogan municipal');
+INSERT INTO `t_region` VALUES (1914, '孝南区', '420902', '0712', 1912, 'xiaonan');
+INSERT INTO `t_region` VALUES (1915, '孝昌县', '420921', '0712', 1912, 'Xiaochang');
+INSERT INTO `t_region` VALUES (1916, '大悟县', '420922', '0712', 1912, 'Dawu');
+INSERT INTO `t_region` VALUES (1917, '云梦县', '420923', '0712', 1912, 'Yunmeng');
+INSERT INTO `t_region` VALUES (1918, '应城市', '420981', '0712', 1912, 'City');
+INSERT INTO `t_region` VALUES (1919, '安陆市', '420982', '0712', 1912, 'anlu city');
+INSERT INTO `t_region` VALUES (1920, '汉川市', '420984', '0712', 1912, 'Hanchuan City');
+INSERT INTO `t_region` VALUES (1921, '荆州市', '421000', '0716', 1840, 'jingzhou');
+INSERT INTO `t_region` VALUES (1922, '荆州市市辖区', '421001', '0716', 1921, 'Jingzhou municipal');
+INSERT INTO `t_region` VALUES (1923, '沙市区', '421002', '0716', 1921, 'Sha City');
+INSERT INTO `t_region` VALUES (1924, '荆州区', '421003', '0716', 1921, 'Jingzhou');
+INSERT INTO `t_region` VALUES (1925, '公安县', '421022', '0716', 1921, 'Gong’an');
+INSERT INTO `t_region` VALUES (1926, '监利县', '421023', '0716', 1921, 'Jianli');
+INSERT INTO `t_region` VALUES (1927, '江陵县', '421024', '0716', 1921, 'Jiangling');
+INSERT INTO `t_region` VALUES (1928, '石首市', '421081', '0716', 1921, 'Shishou City');
+INSERT INTO `t_region` VALUES (1929, '洪湖市', '421083', '0716', 1921, 'honghu city');
+INSERT INTO `t_region` VALUES (1930, '松滋市', '421087', '0716', 1921, 'Songzi City');
+INSERT INTO `t_region` VALUES (1931, '黄冈市', '421100', '0713', 1840, 'Huanggang City');
+INSERT INTO `t_region` VALUES (1932, '黄冈市市辖区', '421101', '0713', 1931, 'Huanggang municipal');
+INSERT INTO `t_region` VALUES (1933, '黄州区', '421102', '0713', 1931, 'huangzhou');
+INSERT INTO `t_region` VALUES (1934, '团风县', '421121', '0713', 1931, 'tuanfeng');
+INSERT INTO `t_region` VALUES (1935, '红安县', '421122', '0713', 1931, 'Hong’an');
+INSERT INTO `t_region` VALUES (1936, '罗田县', '421123', '0713', 1931, 'Luotian');
+INSERT INTO `t_region` VALUES (1937, '英山县', '421124', '0713', 1931, 'Yingshan');
+INSERT INTO `t_region` VALUES (1938, '浠水县', '421125', '0713', 1931, 'Xishui');
+INSERT INTO `t_region` VALUES (1939, '蕲春县', '421126', '0713', 1931, 'Qichun');
+INSERT INTO `t_region` VALUES (1940, '黄梅县', '421127', '0713', 1931, 'Huangmei');
+INSERT INTO `t_region` VALUES (1941, '麻城市', '421181', '0713', 1931, 'Macheng');
+INSERT INTO `t_region` VALUES (1942, '武穴市', '421182', '0713', 1931, 'Wuxue');
+INSERT INTO `t_region` VALUES (1943, '咸宁市', '421200', '0715', 1840, 'Xianning');
+INSERT INTO `t_region` VALUES (1944, '咸宁市市辖区', '421201', '0715', 1943, 'Xianning municipal');
+INSERT INTO `t_region` VALUES (1945, '咸安区', '421202', '0715', 1943, 'Xian\'an');
+INSERT INTO `t_region` VALUES (1946, '嘉鱼县', '421221', '0715', 1943, 'Jiayu');
+INSERT INTO `t_region` VALUES (1947, '通城县', '421222', '0715', 1943, 'Tongcheng');
+INSERT INTO `t_region` VALUES (1948, '崇阳县', '421223', '0715', 1943, 'Chongyang');
+INSERT INTO `t_region` VALUES (1949, '通山县', '421224', '0715', 1943, 'Tongshan');
+INSERT INTO `t_region` VALUES (1950, '赤壁市', '421281', '0715', 1943, 'chibi city');
+INSERT INTO `t_region` VALUES (1951, '随州市', '421300', '0722', 1840, 'suizhou');
+INSERT INTO `t_region` VALUES (1952, '随州市市辖区', '421301', '0722', 1951, 'Suizhou municipal');
+INSERT INTO `t_region` VALUES (1953, '曾都区', '421303', '0722', 1951, 'Zengdu');
+INSERT INTO `t_region` VALUES (1954, '随县', '421321', '0722', 1951, 'Suixian');
+INSERT INTO `t_region` VALUES (1955, '广水市', '421381', '0722', 1951, 'Guangshui City');
+INSERT INTO `t_region` VALUES (1956, '恩施土家族苗族自治州', '422800', '0718', 1840, 'Enshi Tujia and Miao Autonomous Prefecture');
+INSERT INTO `t_region` VALUES (1957, '恩施市', '422801', '0718', 1956, 'Enshi City');
+INSERT INTO `t_region` VALUES (1958, '利川市', '422802', '0718', 1956, 'Lichuan city');
+INSERT INTO `t_region` VALUES (1959, '建始县', '422822', '0718', 1956, 'Jianshi');
+INSERT INTO `t_region` VALUES (1960, '巴东县', '422823', '0718', 1956, 'Badong');
+INSERT INTO `t_region` VALUES (1961, '宣恩县', '422825', '0718', 1956, 'Xuan’en');
+INSERT INTO `t_region` VALUES (1962, '咸丰县', '422826', '0718', 1956, 'Xianfeng');
+INSERT INTO `t_region` VALUES (1963, '来凤县', '422827', '0718', 1956, 'Laifeng');
+INSERT INTO `t_region` VALUES (1964, '鹤峰县', '422828', '0718', 1956, 'Hefeng');
+INSERT INTO `t_region` VALUES (1965, '仙桃市', '429004', '0728', 1956, 'Xiantao');
+INSERT INTO `t_region` VALUES (1966, '潜江市', '429005', '2728', 1956, 'Qianjiang');
+INSERT INTO `t_region` VALUES (1967, '天门市', '429006', '1728', 1956, 'Tianmen');
+INSERT INTO `t_region` VALUES (1968, '神农架林区', '429021', '1719', 1956, 'Shennongjia Forestry');
+INSERT INTO `t_region` VALUES (1969, '湖南省', '430000', '', 0, 'Hunan Province ');
+INSERT INTO `t_region` VALUES (1970, '长沙市', '430100', '0731', 1969, 'Changsha');
+INSERT INTO `t_region` VALUES (1971, '长沙市市辖区', '430101', '0731', 1970, 'Changsha municipal');
+INSERT INTO `t_region` VALUES (1972, '芙蓉区', '430102', '0731', 1970, 'furong');
+INSERT INTO `t_region` VALUES (1973, '天心区', '430103', '0731', 1970, 'Tianxin');
+INSERT INTO `t_region` VALUES (1974, '岳麓区', '430104', '0731', 1970, 'Yuelu');
+INSERT INTO `t_region` VALUES (1975, '开福区', '430105', '0731', 1970, 'kaifu');
+INSERT INTO `t_region` VALUES (1976, '雨花区', '430111', '0731', 1970, 'Yuhua');
+INSERT INTO `t_region` VALUES (1977, '望城区', '430112', '0731', 1970, 'Wangcheng');
+INSERT INTO `t_region` VALUES (1978, '长沙县', '430121', '0731', 1970, 'Changsha');
+INSERT INTO `t_region` VALUES (1979, '宁乡市', '430124', '0731', 1970, 'Ningxiang City');
+INSERT INTO `t_region` VALUES (1980, '浏阳市', '430181', '0731', 1970, 'Liuyang City');
+INSERT INTO `t_region` VALUES (1981, '株洲市', '430200', '0733', 1969, 'Zhuzhou City');
+INSERT INTO `t_region` VALUES (1982, '株洲市市辖区', '430201', '0733', 1981, 'Zhuzhou municipal');
+INSERT INTO `t_region` VALUES (1983, '荷塘区', '430202', '0733', 1981, 'Hetang');
+INSERT INTO `t_region` VALUES (1984, '芦淞区', '430203', '0733', 1981, 'Lusong');
+INSERT INTO `t_region` VALUES (1985, '石峰区', '430204', '0733', 1981, 'Shifeng');
+INSERT INTO `t_region` VALUES (1986, '天元区', '430211', '0733', 1981, 'Tianyuan');
+INSERT INTO `t_region` VALUES (1987, '株洲县', '430221', '0733', 1981, 'Zhuzhou');
+INSERT INTO `t_region` VALUES (1988, '攸县', '430223', '0733', 1981, 'Youxian');
+INSERT INTO `t_region` VALUES (1989, '茶陵县', '430224', '0733', 1981, 'Chaling');
+INSERT INTO `t_region` VALUES (1990, '炎陵县', '430225', '0733', 1981, 'Yanling');
+INSERT INTO `t_region` VALUES (1991, '醴陵市', '430281', '0733', 1981, 'Liling City');
+INSERT INTO `t_region` VALUES (1992, '湘潭市', '430300', '0732', 1969, 'Xiangtan');
+INSERT INTO `t_region` VALUES (1993, '湘潭市市辖区', '430301', '0732', 1992, 'Xiangtan municipal');
+INSERT INTO `t_region` VALUES (1994, '雨湖区', '430302', '0732', 1992, 'Yuhu');
+INSERT INTO `t_region` VALUES (1995, '岳塘区', '430304', '0732', 1992, 'Yuetang');
+INSERT INTO `t_region` VALUES (1996, '湘潭县', '430321', '0732', 1992, 'Xiangtan');
+INSERT INTO `t_region` VALUES (1997, '湘乡市', '430381', '0732', 1992, 'Xiangxiang');
+INSERT INTO `t_region` VALUES (1998, '韶山市', '430382', '0732', 1992, 'Shaoshan City');
+INSERT INTO `t_region` VALUES (1999, '衡阳市', '430400', '0734', 1969, '');
+INSERT INTO `t_region` VALUES (2000, '衡阳市市辖区', '430401', '0734', 1999, '');
+INSERT INTO `t_region` VALUES (2001, '珠晖区', '430405', '0734', 1999, 'Zhuhui');
+INSERT INTO `t_region` VALUES (2002, '雁峰区', '430406', '0734', 1999, 'Yanfeng');
+INSERT INTO `t_region` VALUES (2003, '石鼓区', '430407', '0734', 1999, 'Shigu');
+INSERT INTO `t_region` VALUES (2004, '蒸湘区', '430408', '0734', 1999, 'Zhengxiang');
+INSERT INTO `t_region` VALUES (2005, '南岳区', '430412', '0734', 1999, 'Nanyue');
+INSERT INTO `t_region` VALUES (2006, '衡阳县', '430421', '0734', 1999, '');
+INSERT INTO `t_region` VALUES (2007, '衡南县', '430422', '0734', 1999, '');
+INSERT INTO `t_region` VALUES (2008, '衡山县', '430423', '0734', 1999, '');
+INSERT INTO `t_region` VALUES (2009, '衡东县', '430424', '0734', 1999, '');
+INSERT INTO `t_region` VALUES (2010, '祁东县', '430426', '0734', 1999, 'Qidong');
+INSERT INTO `t_region` VALUES (2011, '耒阳市', '430481', '0734', 1999, 'Leiyang City');
+INSERT INTO `t_region` VALUES (2012, '常宁市', '430482', '0734', 1999, 'Changning City');
+INSERT INTO `t_region` VALUES (2013, '邵阳市', '430500', '0739', 1969, 'Shaoyang');
+INSERT INTO `t_region` VALUES (2014, '邵阳市市辖区', '430501', '0739', 2013, 'Shaoyang municipal');
+INSERT INTO `t_region` VALUES (2015, '双清区', '430502', '0739', 2013, 'Shuangqing');
+INSERT INTO `t_region` VALUES (2016, '大祥区', '430503', '0739', 2013, 'Daxiang');
+INSERT INTO `t_region` VALUES (2017, '北塔区', '430511', '0739', 2013, 'Beita');
+INSERT INTO `t_region` VALUES (2018, '邵东县', '430521', '0739', 2013, 'Shaodong');
+INSERT INTO `t_region` VALUES (2019, '新邵县', '430522', '0739', 2013, 'Xinshao');
+INSERT INTO `t_region` VALUES (2020, '邵阳县', '430523', '0739', 2013, 'Shaoyang');
+INSERT INTO `t_region` VALUES (2021, '隆回县', '430524', '0739', 2013, 'Longhui');
+INSERT INTO `t_region` VALUES (2022, '洞口县', '430525', '0739', 2013, 'Dongkou');
+INSERT INTO `t_region` VALUES (2023, '绥宁县', '430527', '0739', 2013, 'Suining');
+INSERT INTO `t_region` VALUES (2024, '新宁县', '430528', '0739', 2013, 'Xinning');
+INSERT INTO `t_region` VALUES (2025, '城步苗族自治县', '430529', '0739', 2013, 'Miao Autonomousof Chengbu ');
+INSERT INTO `t_region` VALUES (2026, '武冈市', '430581', '0739', 2013, 'wugang city');
+INSERT INTO `t_region` VALUES (2027, '岳阳市', '430600', '0730', 1969, 'Yueyang City');
+INSERT INTO `t_region` VALUES (2028, '岳阳市市辖区', '430601', '0730', 2027, 'Yueyang municipal');
+INSERT INTO `t_region` VALUES (2029, '岳阳楼区', '430602', '0730', 2027, 'Yueyanglou');
+INSERT INTO `t_region` VALUES (2030, '云溪区', '430603', '0730', 2027, 'Yunxi');
+INSERT INTO `t_region` VALUES (2031, '君山区', '430611', '0730', 2027, 'Junshan');
+INSERT INTO `t_region` VALUES (2032, '岳阳县', '430621', '0730', 2027, 'Yueyang');
+INSERT INTO `t_region` VALUES (2033, '华容县', '430623', '0730', 2027, 'Huarong');
+INSERT INTO `t_region` VALUES (2034, '湘阴县', '430624', '0730', 2027, 'Xiangyin');
+INSERT INTO `t_region` VALUES (2035, '平江县', '430626', '0730', 2027, 'Pingjiang');
+INSERT INTO `t_region` VALUES (2036, '汨罗市', '430681', '0730', 2027, 'miluo city');
+INSERT INTO `t_region` VALUES (2037, '临湘市', '430682', '0730', 2027, 'Linxiang City');
+INSERT INTO `t_region` VALUES (2038, '常德市', '430700', '0736', 1969, 'Changde');
+INSERT INTO `t_region` VALUES (2039, '常德市市辖区', '430701', '0736', 2038, 'Changde municipal');
+INSERT INTO `t_region` VALUES (2040, '武陵区', '430702', '0736', 2038, 'Wuling');
+INSERT INTO `t_region` VALUES (2041, '鼎城区', '430703', '0736', 2038, 'Dingcheng');
+INSERT INTO `t_region` VALUES (2042, '安乡县', '430721', '0736', 2038, 'Anxiang');
+INSERT INTO `t_region` VALUES (2043, '汉寿县', '430722', '0736', 2038, 'Hanshou');
+INSERT INTO `t_region` VALUES (2044, '澧县', '430723', '0736', 2038, 'Lixian');
+INSERT INTO `t_region` VALUES (2045, '临澧县', '430724', '0736', 2038, 'Linli');
+INSERT INTO `t_region` VALUES (2046, '桃源县', '430725', '0736', 2038, 'Taoyuan');
+INSERT INTO `t_region` VALUES (2047, '石门县', '430726', '0736', 2038, 'Shimen');
+INSERT INTO `t_region` VALUES (2048, '津市市', '430781', '0736', 2038, 'Jinshi City');
+INSERT INTO `t_region` VALUES (2049, '张家界市', '430800', '0744', 1969, 'Zhangjiajie City');
+INSERT INTO `t_region` VALUES (2050, '张家界市市辖区', '430801', '0744', 2049, 'Zhangjiajie municipal');
+INSERT INTO `t_region` VALUES (2051, '永定区', '430802', '0744', 2049, 'Yongding');
+INSERT INTO `t_region` VALUES (2052, '武陵源区', '430811', '0744', 2049, 'Wulingyuan');
+INSERT INTO `t_region` VALUES (2053, '慈利县', '430821', '0744', 2049, 'Cili');
+INSERT INTO `t_region` VALUES (2054, '桑植县', '430822', '0744', 2049, 'Sangzhi');
+INSERT INTO `t_region` VALUES (2055, '益阳市', '430900', '0737', 1969, 'Yiyang');
+INSERT INTO `t_region` VALUES (2056, '益阳市市辖区', '430901', '0737', 2055, 'Yiyang municipal');
+INSERT INTO `t_region` VALUES (2057, '资阳区', '430902', '0737', 2055, 'Ziyang');
+INSERT INTO `t_region` VALUES (2058, '赫山区', '430903', '0737', 2055, 'Heshan');
+INSERT INTO `t_region` VALUES (2059, '南县', '430921', '0737', 2055, 'Nanxian');
+INSERT INTO `t_region` VALUES (2060, '桃江县', '430922', '0737', 2055, 'Taojiang');
+INSERT INTO `t_region` VALUES (2061, '安化县', '430923', '0737', 2055, 'Anhua');
+INSERT INTO `t_region` VALUES (2062, '沅江市', '430981', '0737', 2055, 'yuanjiang city');
+INSERT INTO `t_region` VALUES (2063, '郴州市', '431000', '0735', 1969, 'Chenzhou City');
+INSERT INTO `t_region` VALUES (2064, '郴州市市辖区', '431001', '0735', 2063, 'Chenzhou municipal');
+INSERT INTO `t_region` VALUES (2065, '北湖区', '431002', '0735', 2063, 'Beihu');
+INSERT INTO `t_region` VALUES (2066, '苏仙区', '431003', '0735', 2063, 'Suxian');
+INSERT INTO `t_region` VALUES (2067, '桂阳县', '431021', '0735', 2063, 'Guiyang');
+INSERT INTO `t_region` VALUES (2068, '宜章县', '431022', '0735', 2063, 'Yizhang');
+INSERT INTO `t_region` VALUES (2069, '永兴县', '431023', '0735', 2063, 'Yongxing');
+INSERT INTO `t_region` VALUES (2070, '嘉禾县', '431024', '0735', 2063, 'Jiahe');
+INSERT INTO `t_region` VALUES (2071, '临武县', '431025', '0735', 2063, 'Linwu');
+INSERT INTO `t_region` VALUES (2072, '汝城县', '431026', '0735', 2063, 'Rucheng');
+INSERT INTO `t_region` VALUES (2073, '桂东县', '431027', '0735', 2063, 'Guidong');
+INSERT INTO `t_region` VALUES (2074, '安仁县', '431028', '0735', 2063, 'Anren');
+INSERT INTO `t_region` VALUES (2075, '资兴市', '431081', '0735', 2063, 'Zixing City');
+INSERT INTO `t_region` VALUES (2076, '永州市', '431100', '0746', 1969, 'yongzhou city');
+INSERT INTO `t_region` VALUES (2077, '永州市市辖区', '431101', '0746', 2076, 'Yongzhou municipal');
+INSERT INTO `t_region` VALUES (2078, '零陵区', '431102', '0746', 2076, 'Lingling');
+INSERT INTO `t_region` VALUES (2079, '冷水滩区', '431103', '0746', 2076, 'Lengshuitan');
+INSERT INTO `t_region` VALUES (2080, '祁阳县', '431121', '0746', 2076, 'Qiyang');
+INSERT INTO `t_region` VALUES (2081, '东安县', '431122', '0746', 2076, 'Dong’an');
+INSERT INTO `t_region` VALUES (2082, '双牌县', '431123', '0746', 2076, 'Shuangpai');
+INSERT INTO `t_region` VALUES (2083, '道县', '431124', '0746', 2076, 'Daoxian');
+INSERT INTO `t_region` VALUES (2084, '江永县', '431125', '0746', 2076, 'Jiangyong');
+INSERT INTO `t_region` VALUES (2085, '宁远县', '431126', '0746', 2076, 'Ningyuan');
+INSERT INTO `t_region` VALUES (2086, '蓝山县', '431127', '0746', 2076, 'Lanshan');
+INSERT INTO `t_region` VALUES (2087, '新田县', '431128', '0746', 2076, 'Xintian');
+INSERT INTO `t_region` VALUES (2088, '江华瑶族自治县', '431129', '0746', 2076, 'Yao Autonomousof Jianghua ');
+INSERT INTO `t_region` VALUES (2089, '怀化市', '431200', '0745', 1969, 'huaihua');
+INSERT INTO `t_region` VALUES (2090, '怀化市市辖区', '431201', '0745', 2089, 'Huaihua municipal');
+INSERT INTO `t_region` VALUES (2091, '鹤城区', '431202', '0745', 2089, 'Hecheng');
+INSERT INTO `t_region` VALUES (2092, '中方县', '431221', '0745', 2089, 'Chinese');
+INSERT INTO `t_region` VALUES (2093, '沅陵县', '431222', '0745', 2089, 'Yuanling');
+INSERT INTO `t_region` VALUES (2094, '辰溪县', '431223', '0745', 2089, 'Chenxi');
+INSERT INTO `t_region` VALUES (2095, '溆浦县', '431224', '0745', 2089, 'Xupu');
+INSERT INTO `t_region` VALUES (2096, '会同县', '431225', '0745', 2089, 'Huitong');
+INSERT INTO `t_region` VALUES (2097, '麻阳苗族自治县', '431226', '0745', 2089, 'Mayang Miao Autonomous');
+INSERT INTO `t_region` VALUES (2098, '新晃侗族自治县', '431227', '0745', 2089, 'Dong Autonomousof Xinhuang ');
+INSERT INTO `t_region` VALUES (2099, '芷江侗族自治县', '431228', '0745', 2089, 'Zhijiang Dong Autonomous');
+INSERT INTO `t_region` VALUES (2100, '靖州苗族侗族自治县', '431229', '0745', 2089, 'Jingzhou Miao and Dong Autonomous');
+INSERT INTO `t_region` VALUES (2101, '通道侗族自治县', '431230', '0745', 2089, 'Dong Autonomousof Tongdao ');
+INSERT INTO `t_region` VALUES (2102, '洪江市', '431281', '0745', 2089, 'hongjiang city');
+INSERT INTO `t_region` VALUES (2103, '娄底市', '431300', '0738', 1969, 'Loudi City');
+INSERT INTO `t_region` VALUES (2104, '娄底市市辖区', '431301', '0738', 2103, 'Loudi municipal');
+INSERT INTO `t_region` VALUES (2105, '娄星区', '431302', '0738', 2103, 'Louxing');
+INSERT INTO `t_region` VALUES (2106, '双峰县', '431321', '0738', 2103, 'Shuangfeng');
+INSERT INTO `t_region` VALUES (2107, '新化县', '431322', '0738', 2103, 'Xinhua');
+INSERT INTO `t_region` VALUES (2108, '冷水江市', '431381', '0738', 2103, 'Lengshuijiang');
+INSERT INTO `t_region` VALUES (2109, '涟源市', '431382', '0738', 2103, 'lianyuan city');
+INSERT INTO `t_region` VALUES (2110, '湘西土家族苗族自治州', '433100', '0743', 1969, 'Tujia-Miao Autonomous Prefecture of Xiangxi ');
+INSERT INTO `t_region` VALUES (2111, '吉首市', '433101', '0743', 2110, 'jishou city');
+INSERT INTO `t_region` VALUES (2112, '泸溪县', '433122', '0743', 2110, 'Luxi');
+INSERT INTO `t_region` VALUES (2113, '凤凰县', '433123', '0743', 2110, 'Phoenix');
+INSERT INTO `t_region` VALUES (2114, '花垣县', '433124', '0743', 2110, 'Huayuan');
+INSERT INTO `t_region` VALUES (2115, '保靖县', '433125', '0743', 2110, 'Baojing');
+INSERT INTO `t_region` VALUES (2116, '古丈县', '433126', '0743', 2110, 'Guzhang');
+INSERT INTO `t_region` VALUES (2117, '永顺县', '433127', '0743', 2110, 'Yongshun');
+INSERT INTO `t_region` VALUES (2118, '龙山县', '433130', '0743', 2110, 'Longshan');
+INSERT INTO `t_region` VALUES (2119, '广东省', '440000', '', 0, 'Guangdong Province ');
+INSERT INTO `t_region` VALUES (2120, '广州市', '440100', '020', 2119, 'Guangzhou');
+INSERT INTO `t_region` VALUES (2121, '广州市市辖区', '440101', '020', 2120, 'Guangzhou municipal');
+INSERT INTO `t_region` VALUES (2122, '荔湾区', '440103', '020', 2120, 'Liwan');
+INSERT INTO `t_region` VALUES (2123, '越秀区', '440104', '020', 2120, 'Yuexiu');
+INSERT INTO `t_region` VALUES (2124, '海珠区', '440105', '020', 2120, 'Haizhuqu');
+INSERT INTO `t_region` VALUES (2125, '天河区', '440106', '020', 2120, 'Tianhe');
+INSERT INTO `t_region` VALUES (2126, '白云区', '440111', '020', 2120, 'Baiyun');
+INSERT INTO `t_region` VALUES (2127, '黄埔区', '440112', '020', 2120, '[地名] [新加坡] Whampoa Estate ');
+INSERT INTO `t_region` VALUES (2128, '番禺区', '440113', '020', 2120, 'Panyu');
+INSERT INTO `t_region` VALUES (2129, '花都区', '440114', '020', 2120, 'Huadu area');
+INSERT INTO `t_region` VALUES (2130, '南沙区', '440115', '020', 2120, 'Nansha');
+INSERT INTO `t_region` VALUES (2131, '从化区', '440117', '020', 2120, 'Conghua');
+INSERT INTO `t_region` VALUES (2132, '增城区', '440118', '020', 2120, 'Zengcheng');
+INSERT INTO `t_region` VALUES (2133, '韶关市', '440200', '0751', 2119, 'Shaoguan');
+INSERT INTO `t_region` VALUES (2134, '韶关市市辖区', '440201', '0751', 2133, 'Shaoguan municipal');
+INSERT INTO `t_region` VALUES (2135, '武江区', '440203', '0751', 2133, 'wujiang');
+INSERT INTO `t_region` VALUES (2136, '浈江区', '440204', '0751', 2133, 'Zhenjiang');
+INSERT INTO `t_region` VALUES (2137, '曲江区', '440205', '0751', 2133, 'Qujiang');
+INSERT INTO `t_region` VALUES (2138, '始兴县', '440222', '0751', 2133, 'Shixing');
+INSERT INTO `t_region` VALUES (2139, '仁化县', '440224', '0751', 2133, 'Renhua');
+INSERT INTO `t_region` VALUES (2140, '翁源县', '440229', '0751', 2133, 'Wengyuan');
+INSERT INTO `t_region` VALUES (2141, '乳源瑶族自治县', '440232', '0751', 2133, 'Yao Autonomousof Ruyuan ');
+INSERT INTO `t_region` VALUES (2142, '新丰县', '440233', '0751', 2133, 'Xinfeng');
+INSERT INTO `t_region` VALUES (2143, '乐昌市', '440281', '0751', 2133, 'lechang city');
+INSERT INTO `t_region` VALUES (2144, '南雄市', '440282', '0751', 2133, 'Nanxiong City');
+INSERT INTO `t_region` VALUES (2145, '深圳市', '440300', '0755', 2119, 'Shenzhen City');
+INSERT INTO `t_region` VALUES (2146, '深圳市市辖区', '440301', '0755', 2145, 'Shenzhen municipal');
+INSERT INTO `t_region` VALUES (2147, '罗湖区', '440303', '0755', 2145, 'luohu');
+INSERT INTO `t_region` VALUES (2148, '福田区', '440304', '0755', 2145, 'Futian');
+INSERT INTO `t_region` VALUES (2149, '南山区', '440305', '0755', 2145, 'Nanshan');
+INSERT INTO `t_region` VALUES (2150, '宝安区', '440306', '0755', 2145, 'Baoan');
+INSERT INTO `t_region` VALUES (2151, '龙岗区', '440307', '0755', 2145, 'longgang');
+INSERT INTO `t_region` VALUES (2152, '盐田区', '440308', '0755', 2145, 'Yantian');
+INSERT INTO `t_region` VALUES (2153, '龙华区', '440309', '0755', 2145, 'Longhua');
+INSERT INTO `t_region` VALUES (2154, '坪山区', '440310', '0755', 2145, 'Pingshan');
+INSERT INTO `t_region` VALUES (2155, '珠海市', '440400', '0756', 2119, 'Zhuhai City');
+INSERT INTO `t_region` VALUES (2156, '珠海市市辖区', '440401', '0756', 2155, 'Zhuhai municipal');
+INSERT INTO `t_region` VALUES (2157, '香洲区', '440402', '0756', 2155, 'Xiangzhou');
+INSERT INTO `t_region` VALUES (2158, '斗门区', '440403', '0756', 2155, 'Doumen');
+INSERT INTO `t_region` VALUES (2159, '金湾区', '440404', '0756', 2155, 'Jinwan');
+INSERT INTO `t_region` VALUES (2160, '汕头市', '440500', '0754', 2119, 'Shantou');
+INSERT INTO `t_region` VALUES (2161, '汕头市市辖区', '440501', '0754', 2160, 'Shantou municipal');
+INSERT INTO `t_region` VALUES (2162, '龙湖区', '440507', '0754', 2160, 'Longhu');
+INSERT INTO `t_region` VALUES (2163, '金平区', '440511', '0754', 2160, 'Jinping');
+INSERT INTO `t_region` VALUES (2164, '濠江区', '440512', '0754', 2160, 'haojiang');
+INSERT INTO `t_region` VALUES (2165, '潮阳区', '440513', '0754', 2160, 'Chaoyang');
+INSERT INTO `t_region` VALUES (2166, '潮南区', '440514', '0754', 2160, 'South Chaonan area');
+INSERT INTO `t_region` VALUES (2167, '澄海区', '440515', '0754', 2160, 'Chenghai');
+INSERT INTO `t_region` VALUES (2168, '南澳县', '440523', '0754', 2160, 'Nan’ao');
+INSERT INTO `t_region` VALUES (2169, '佛山市', '440600', '0757', 2119, 'Foshan');
+INSERT INTO `t_region` VALUES (2170, '佛山市市辖区', '440601', '0757', 2169, 'Foshan municipal');
+INSERT INTO `t_region` VALUES (2171, '禅城区', '440604', '0757', 2169, 'Chancheng');
+INSERT INTO `t_region` VALUES (2172, '南海区', '440605', '0757', 2169, 'South China Sea Area');
+INSERT INTO `t_region` VALUES (2173, '顺德区', '440606', '0757', 2169, 'Shunde');
+INSERT INTO `t_region` VALUES (2174, '三水区', '440607', '0757', 2169, 'sanshui');
+INSERT INTO `t_region` VALUES (2175, '高明区', '440608', '0757', 2169, 'Gaoming');
+INSERT INTO `t_region` VALUES (2176, '江门市', '440700', '0750', 2119, 'Jiangmen');
+INSERT INTO `t_region` VALUES (2177, '江门市市辖区', '440701', '0750', 2176, 'Jiangmen municipal');
+INSERT INTO `t_region` VALUES (2178, '蓬江区', '440703', '0750', 2176, 'Pengjiang');
+INSERT INTO `t_region` VALUES (2179, '江海区', '440704', '0750', 2176, 'jianghai');
+INSERT INTO `t_region` VALUES (2180, '新会区', '440705', '0750', 2176, 'xinhui');
+INSERT INTO `t_region` VALUES (2181, '台山市', '440781', '0750', 2176, 'Taishan City');
+INSERT INTO `t_region` VALUES (2182, '开平市', '440783', '0750', 2176, 'Kaiping City');
+INSERT INTO `t_region` VALUES (2183, '鹤山市', '440784', '0750', 2176, 'Heshan City');
+INSERT INTO `t_region` VALUES (2184, '恩平市', '440785', '0750', 2176, 'enping');
+INSERT INTO `t_region` VALUES (2185, '湛江市', '440800', '0759', 2119, 'Zhanjiang');
+INSERT INTO `t_region` VALUES (2186, '湛江市市辖区', '440801', '0759', 2185, 'Zhanjiang municipal');
+INSERT INTO `t_region` VALUES (2187, '赤坎区', '440802', '0759', 2185, 'Chikan');
+INSERT INTO `t_region` VALUES (2188, '霞山区', '440803', '0759', 2185, 'Xiashan');
+INSERT INTO `t_region` VALUES (2189, '坡头区', '440804', '0759', 2185, 'potou');
+INSERT INTO `t_region` VALUES (2190, '麻章区', '440811', '0759', 2185, 'Mazhang');
+INSERT INTO `t_region` VALUES (2191, '遂溪县', '440823', '0759', 2185, 'Suixi');
+INSERT INTO `t_region` VALUES (2192, '徐闻县', '440825', '0759', 2185, 'Xuwen');
+INSERT INTO `t_region` VALUES (2193, '廉江市', '440881', '0759', 2185, 'Lianjiang City');
+INSERT INTO `t_region` VALUES (2194, '雷州市', '440882', '0759', 2185, 'leizhou city');
+INSERT INTO `t_region` VALUES (2195, '吴川市', '440883', '0759', 2185, 'Wuchuan City');
+INSERT INTO `t_region` VALUES (2196, '茂名市', '440900', '0668', 2119, 'Maoming City');
+INSERT INTO `t_region` VALUES (2197, '茂名市市辖区', '440901', '0668', 2196, 'Maoming municipal');
+INSERT INTO `t_region` VALUES (2198, '茂南区', '440902', '0668', 2196, 'maonan');
+INSERT INTO `t_region` VALUES (2199, '电白区', '440904', '0668', 2196, 'White area');
+INSERT INTO `t_region` VALUES (2200, '高州市', '440981', '0668', 2196, 'Gaozhou City');
+INSERT INTO `t_region` VALUES (2201, '化州市', '440982', '0668', 2196, 'Huazhou City');
+INSERT INTO `t_region` VALUES (2202, '信宜市', '440983', '0668', 2196, 'Xinyi City');
+INSERT INTO `t_region` VALUES (2203, '肇庆市', '441200', '0758', 2119, 'Zhaoqing');
+INSERT INTO `t_region` VALUES (2204, '肇庆市市辖区', '441201', '0758', 2203, 'Zhaoqing municipal');
+INSERT INTO `t_region` VALUES (2205, '端州区', '441202', '0758', 2203, 'duanzhou');
+INSERT INTO `t_region` VALUES (2206, '鼎湖区', '441203', '0758', 2203, 'Dinghu');
+INSERT INTO `t_region` VALUES (2207, '广宁县', '441223', '0758', 2203, 'Guangning');
+INSERT INTO `t_region` VALUES (2208, '怀集县', '441224', '0758', 2203, 'Huaiji');
+INSERT INTO `t_region` VALUES (2209, '封开县', '441225', '0758', 2203, 'Fengkai');
+INSERT INTO `t_region` VALUES (2210, '德庆县', '441226', '0758', 2203, 'Deqinn');
+INSERT INTO `t_region` VALUES (2211, '高要区', '441204', '0758', 2203, 'Gaoyao area');
+INSERT INTO `t_region` VALUES (2212, '四会市', '441284', '0758', 2203, 'Sihui City');
+INSERT INTO `t_region` VALUES (2213, '惠州市', '441300', '0752', 2119, 'Huizhou');
+INSERT INTO `t_region` VALUES (2214, '惠州市市辖区', '441301', '0752', 2213, 'Huizhou municipal');
+INSERT INTO `t_region` VALUES (2215, '惠城区', '441302', '0752', 2213, 'huicheng');
+INSERT INTO `t_region` VALUES (2216, '惠阳区', '441303', '0752', 2213, 'huiyang');
+INSERT INTO `t_region` VALUES (2217, '博罗县', '441322', '0752', 2213, 'Boluo');
+INSERT INTO `t_region` VALUES (2218, '惠东县', '441323', '0752', 2213, 'Huidong');
+INSERT INTO `t_region` VALUES (2219, '龙门县', '441324', '0752', 2213, 'Longmen');
+INSERT INTO `t_region` VALUES (2220, '梅州市', '441400', '0753', 2119, 'Meizhou City');
+INSERT INTO `t_region` VALUES (2221, '梅州市市辖区', '441401', '0753', 2220, 'Meizhou municipal');
+INSERT INTO `t_region` VALUES (2222, '梅江区', '441402', '0753', 2220, 'meijiang');
+INSERT INTO `t_region` VALUES (2223, '梅县区', '441403', '0753', 2220, 'Meixian');
+INSERT INTO `t_region` VALUES (2224, '大埔县', '441422', '0753', 2220, 'Dabu');
+INSERT INTO `t_region` VALUES (2225, '丰顺县', '441423', '0753', 2220, 'Fengshun');
+INSERT INTO `t_region` VALUES (2226, '五华县', '441424', '0753', 2220, 'Wuhua');
+INSERT INTO `t_region` VALUES (2227, '平远县', '441426', '0753', 2220, 'Pingyuan');
+INSERT INTO `t_region` VALUES (2228, '蕉岭县', '441427', '0753', 2220, 'Jiaoling');
+INSERT INTO `t_region` VALUES (2229, '兴宁市', '441481', '0753', 2220, 'Xingning City');
+INSERT INTO `t_region` VALUES (2230, '汕尾市', '441500', '0660', 2119, 'Shanwei City');
+INSERT INTO `t_region` VALUES (2231, '汕尾市市辖区', '441501', '0660', 2230, 'Shanwei municipal');
+INSERT INTO `t_region` VALUES (2232, '城区', '441502', '0660', 2230, 'theproper');
+INSERT INTO `t_region` VALUES (2233, '海丰县', '441521', '0660', 2230, 'Haifeng');
+INSERT INTO `t_region` VALUES (2234, '陆河县', '441523', '0660', 2230, 'luhe');
+INSERT INTO `t_region` VALUES (2235, '陆丰市', '441581', '0660', 2230, 'Lufeng City');
+INSERT INTO `t_region` VALUES (2236, '河源市', '441600', '0762', 2119, 'Heyuan City');
+INSERT INTO `t_region` VALUES (2237, '河源市市辖区', '441601', '0762', 2236, 'Heyuan municipal');
+INSERT INTO `t_region` VALUES (2238, '源城区', '441602', '0762', 2236, 'Yuancheng');
+INSERT INTO `t_region` VALUES (2239, '紫金县', '441621', '0762', 2236, 'Zijin');
+INSERT INTO `t_region` VALUES (2240, '龙川县', '441622', '0762', 2236, 'Longchuan');
+INSERT INTO `t_region` VALUES (2241, '连平县', '441623', '0762', 2236, 'Lianping');
+INSERT INTO `t_region` VALUES (2242, '和平县', '441624', '0762', 2236, 'Heping');
+INSERT INTO `t_region` VALUES (2243, '东源县', '441625', '0762', 2236, 'dongyuan');
+INSERT INTO `t_region` VALUES (2244, '阳江市', '441700', '0662', 2119, 'Yangjiang City');
+INSERT INTO `t_region` VALUES (2245, '阳江市市辖区', '441701', '0662', 2244, 'Yangjiang municipal');
+INSERT INTO `t_region` VALUES (2246, '江城区', '441702', '0662', 2244, 'jiangcheng');
+INSERT INTO `t_region` VALUES (2247, '阳东区', '441704', '0662', 2244, 'Yangdong');
+INSERT INTO `t_region` VALUES (2248, '阳西县', '441721', '0662', 2244, 'yangxi');
+INSERT INTO `t_region` VALUES (2249, '阳春市', '441781', '0662', 2244, 'Yangchun');
+INSERT INTO `t_region` VALUES (2250, '清远市', '441800', '0763', 2119, 'Qingyuan City');
+INSERT INTO `t_region` VALUES (2251, '清远市市辖区', '441801', '0763', 2250, 'Qingyuan municipal');
+INSERT INTO `t_region` VALUES (2252, '清城区', '441802', '0763', 2250, 'qingcheng');
+INSERT INTO `t_region` VALUES (2253, '清新区', '441803', '0763', 2250, 'Fresh area');
+INSERT INTO `t_region` VALUES (2254, '佛冈县', '441821', '0763', 2250, 'Fogang');
+INSERT INTO `t_region` VALUES (2255, '阳山县', '441823', '0763', 2250, 'Yangshan');
+INSERT INTO `t_region` VALUES (2256, '连山壮族瑶族自治县', '441825', '0763', 2250, 'Zhuang-Yao Autonomousof Lianshan ');
+INSERT INTO `t_region` VALUES (2257, '连南瑶族自治县', '441826', '0763', 2250, 'Yao Autonomousof Liannan ');
+INSERT INTO `t_region` VALUES (2258, '英德市', '441881', '0763', 2250, 'Yingde');
+INSERT INTO `t_region` VALUES (2259, '连州市', '441882', '0763', 2250, 'Lianzhou city');
+INSERT INTO `t_region` VALUES (2260, '东莞市', '441900', '0769', 2119, 'Dongguan City');
+INSERT INTO `t_region` VALUES (2261, '中山市', '442000', '0760', 2119, 'zhongshan');
+INSERT INTO `t_region` VALUES (2262, '东沙群岛', '442101', '', 2261, 'Dongsha Islands ');
+INSERT INTO `t_region` VALUES (2263, '潮州市', '445100', '0768', 2119, 'Chaozhou City');
+INSERT INTO `t_region` VALUES (2264, '潮州市市辖区', '445101', '0768', 2263, 'Chaozhou municipal');
+INSERT INTO `t_region` VALUES (2265, '湘桥区', '445102', '0768', 2263, 'Xiangqiao');
+INSERT INTO `t_region` VALUES (2266, '潮安区', '445103', '0768', 2263, 'Chaoan');
+INSERT INTO `t_region` VALUES (2267, '饶平县', '445122', '0768', 2263, 'Raoping');
+INSERT INTO `t_region` VALUES (2268, '揭阳市', '445200', '0663', 2119, 'Jieyang City');
+INSERT INTO `t_region` VALUES (2269, '揭阳市市辖区', '445201', '0663', 2268, 'Jieyang municipal');
+INSERT INTO `t_region` VALUES (2270, '榕城区', '445202', '0663', 2268, 'rongcheng');
+INSERT INTO `t_region` VALUES (2271, '揭东区', '445203', '0663', 2268, 'Jiedong');
+INSERT INTO `t_region` VALUES (2272, '揭西县', '445222', '0663', 2268, 'Jiexi');
+INSERT INTO `t_region` VALUES (2273, '惠来县', '445224', '0663', 2268, 'Huilai');
+INSERT INTO `t_region` VALUES (2274, '普宁市', '445281', '0663', 2268, 'Puning City');
+INSERT INTO `t_region` VALUES (2275, '云浮市', '445300', '0766', 2119, 'Yunfu City');
+INSERT INTO `t_region` VALUES (2276, '云浮市市辖区', '445301', '0766', 2275, 'Yunfu municipal');
+INSERT INTO `t_region` VALUES (2277, '云城区', '445302', '0766', 2275, 'yuncheng');
+INSERT INTO `t_region` VALUES (2278, '云安区', '445303', '0766', 2275, 'Yunan area');
+INSERT INTO `t_region` VALUES (2279, '新兴县', '445321', '0766', 2275, 'Xinxing');
+INSERT INTO `t_region` VALUES (2280, '郁南县', '445322', '0766', 2275, 'Yunan');
+INSERT INTO `t_region` VALUES (2281, '罗定市', '445381', '0766', 2275, 'Luoding');
+INSERT INTO `t_region` VALUES (2282, '广西壮族自治区', '450000', '', 0, 'the Guangxi Zhuang Autonomous Region ');
+INSERT INTO `t_region` VALUES (2283, '南宁市', '450100', '0771', 2282, 'Nanning');
+INSERT INTO `t_region` VALUES (2284, '南宁市市辖区', '450101', '0771', 2283, 'Nanning municipal');
+INSERT INTO `t_region` VALUES (2285, '兴宁区', '450102', '0771', 2283, 'Xingning');
+INSERT INTO `t_region` VALUES (2286, '青秀区', '450103', '0771', 2283, 'Qingxiu');
+INSERT INTO `t_region` VALUES (2287, '江南区', '450105', '0771', 2283, 'Jiangnan');
+INSERT INTO `t_region` VALUES (2288, '西乡塘区', '450107', '0771', 2283, 'Xixiangtang');
+INSERT INTO `t_region` VALUES (2289, '良庆区', '450108', '0771', 2283, 'Liangqing');
+INSERT INTO `t_region` VALUES (2290, '邕宁区', '450109', '0771', 2283, 'Yongning');
+INSERT INTO `t_region` VALUES (2291, '武鸣区', '450110', '0771', 2283, 'Wuming');
+INSERT INTO `t_region` VALUES (2292, '隆安县', '450123', '0771', 2283, 'Long’an');
+INSERT INTO `t_region` VALUES (2293, '马山县', '450124', '0771', 2283, 'Mashan');
+INSERT INTO `t_region` VALUES (2294, '上林县', '450125', '0771', 2283, 'Shanglin');
+INSERT INTO `t_region` VALUES (2295, '宾阳县', '450126', '0771', 2283, 'Binyang');
+INSERT INTO `t_region` VALUES (2296, '横县', '450127', '0771', 2283, 'Hengxian');
+INSERT INTO `t_region` VALUES (2297, '柳州市', '450200', '0772', 2282, 'Liuzhou');
+INSERT INTO `t_region` VALUES (2298, '柳州市市辖区', '450201', '0772', 2297, 'Liuzhou municipal');
+INSERT INTO `t_region` VALUES (2299, '城中区', '450202', '0772', 2297, 'city central');
+INSERT INTO `t_region` VALUES (2300, '鱼峰区', '450203', '0772', 2297, 'Yufeng');
+INSERT INTO `t_region` VALUES (2301, '柳南区', '450204', '0772', 2297, 'Liunan');
+INSERT INTO `t_region` VALUES (2302, '柳北区', '450205', '0772', 2297, 'Liubei');
+INSERT INTO `t_region` VALUES (2303, '柳江区', '450206', '0772', 2297, 'The Liujiang River');
+INSERT INTO `t_region` VALUES (2304, '柳城县', '450222', '0772', 2297, 'Liucheng');
+INSERT INTO `t_region` VALUES (2305, '鹿寨县', '450223', '0772', 2297, 'Luzhai');
+INSERT INTO `t_region` VALUES (2306, '融安县', '450224', '0772', 2297, 'Rong’an');
+INSERT INTO `t_region` VALUES (2307, '融水苗族自治县', '450225', '0772', 2297, 'Miao Autonomousof Rongshui ');
+INSERT INTO `t_region` VALUES (2308, '三江侗族自治县', '450226', '0772', 2297, 'Dong Autonomousof Sanjiang ');
+INSERT INTO `t_region` VALUES (2309, '桂林市', '450300', '0773', 2282, 'Guilin');
+INSERT INTO `t_region` VALUES (2310, '桂林市市辖区', '450301', '0773', 2309, 'Guilin City');
+INSERT INTO `t_region` VALUES (2311, '秀峰区', '450302', '0773', 2309, 'Xiufeng');
+INSERT INTO `t_region` VALUES (2312, '叠彩区', '450303', '0773', 2309, 'Diecai');
+INSERT INTO `t_region` VALUES (2313, '象山区', '450304', '0773', 2309, 'Xiangshan');
+INSERT INTO `t_region` VALUES (2314, '七星区', '450305', '0773', 2309, 'Qixing');
+INSERT INTO `t_region` VALUES (2315, '雁山区', '450311', '0773', 2309, 'Yanshan');
+INSERT INTO `t_region` VALUES (2316, '临桂区', '450312', '0773', 2309, 'Lingui');
+INSERT INTO `t_region` VALUES (2317, '阳朔县', '450321', '0773', 2309, 'Yangshuo');
+INSERT INTO `t_region` VALUES (2318, '灵川县', '450323', '0773', 2309, 'Lingchuan');
+INSERT INTO `t_region` VALUES (2319, '全州县', '450324', '0773', 2309, 'Quanzhou');
+INSERT INTO `t_region` VALUES (2320, '兴安县', '450325', '0773', 2309, 'Xing’an');
+INSERT INTO `t_region` VALUES (2321, '永福县', '450326', '0773', 2309, 'Yongfu');
+INSERT INTO `t_region` VALUES (2322, '灌阳县', '450327', '0773', 2309, 'Guanyang');
+INSERT INTO `t_region` VALUES (2323, '龙胜各族自治县', '450328', '0773', 2309, 'Multinational Autonomousof Longsheng ');
+INSERT INTO `t_region` VALUES (2324, '资源县', '450329', '0773', 2309, 'Ziyuan');
+INSERT INTO `t_region` VALUES (2325, '平乐县', '450330', '0773', 2309, 'Pingle');
+INSERT INTO `t_region` VALUES (2326, '荔浦县', '450331', '0773', 2309, 'Lipu');
+INSERT INTO `t_region` VALUES (2327, '恭城瑶族自治县', '450332', '0773', 2309, 'Gongcheng Yao Autonomous');
+INSERT INTO `t_region` VALUES (2328, '梧州市', '450400', '0774', 2282, 'Wuzhou');
+INSERT INTO `t_region` VALUES (2329, '梧州市市辖区', '450401', '0774', 2328, 'Wuzhou municipal');
+INSERT INTO `t_region` VALUES (2330, '万秀区', '450403', '0774', 2328, 'Wanxiu');
+INSERT INTO `t_region` VALUES (2331, '长洲区', '450405', '0774', 2328, 'Changzhou');
+INSERT INTO `t_region` VALUES (2332, '龙圩区', '450406', '0774', 2328, 'Longxu');
+INSERT INTO `t_region` VALUES (2333, '苍梧县', '450421', '0774', 2328, 'Cangwu');
+INSERT INTO `t_region` VALUES (2334, '藤县', '450422', '0774', 2328, 'Tengxian');
+INSERT INTO `t_region` VALUES (2335, '蒙山县', '450423', '0774', 2328, 'Mengshan');
+INSERT INTO `t_region` VALUES (2336, '岑溪市', '450481', '0774', 2328, 'cenxi');
+INSERT INTO `t_region` VALUES (2337, '北海市', '450500', '0779', 2282, 'Beihai');
+INSERT INTO `t_region` VALUES (2338, '北海市市辖区', '450501', '0779', 2337, 'Beihai municipal');
+INSERT INTO `t_region` VALUES (2339, '海城区', '450502', '0779', 2337, 'Haicheng');
+INSERT INTO `t_region` VALUES (2340, '银海区', '450503', '0779', 2337, 'Yinhai');
+INSERT INTO `t_region` VALUES (2341, '铁山港区', '450512', '0779', 2337, 'Tieshangang');
+INSERT INTO `t_region` VALUES (2342, '合浦县', '450521', '0779', 2337, 'Hepu');
+INSERT INTO `t_region` VALUES (2343, '防城港市', '450600', '0770', 2282, 'Fangchenggang City');
+INSERT INTO `t_region` VALUES (2344, '防城港市市辖区', '450601', '0770', 2343, 'Fangchenggang municipal');
+INSERT INTO `t_region` VALUES (2345, '港口区', '450602', '0770', 2343, 'Port area');
+INSERT INTO `t_region` VALUES (2346, '防城区', '450603', '0770', 2343, 'Fangcheng');
+INSERT INTO `t_region` VALUES (2347, '上思县', '450621', '0770', 2343, 'Shangsi');
+INSERT INTO `t_region` VALUES (2348, '东兴市', '450681', '0770', 2343, 'Dongxing City');
+INSERT INTO `t_region` VALUES (2349, '钦州市', '450700', '0777', 2282, 'Qinzhou City');
+INSERT INTO `t_region` VALUES (2350, '钦州市市辖区', '450701', '0777', 2349, 'Qinzhou municipal');
+INSERT INTO `t_region` VALUES (2351, '钦南区', '450702', '0777', 2349, 'Qinnan');
+INSERT INTO `t_region` VALUES (2352, '钦北区', '450703', '0777', 2349, 'Qinbei');
+INSERT INTO `t_region` VALUES (2353, '灵山县', '450721', '0777', 2349, 'Lingshan');
+INSERT INTO `t_region` VALUES (2354, '浦北县', '450722', '0777', 2349, 'Pubei');
+INSERT INTO `t_region` VALUES (2355, '贵港市', '450800', '1755', 2282, 'Guigang City');
+INSERT INTO `t_region` VALUES (2356, '贵港市市辖区', '450801', '1755', 2355, 'City of Guigang City');
+INSERT INTO `t_region` VALUES (2357, '港北区', '450802', '1755', 2355, 'Gangbei');
+INSERT INTO `t_region` VALUES (2358, '港南区', '450803', '1755', 2355, 'Gangnan');
+INSERT INTO `t_region` VALUES (2359, '覃塘区', '450804', '1755', 2355, 'Qintang');
+INSERT INTO `t_region` VALUES (2360, '平南县', '450821', '1755', 2355, 'Pingnan');
+INSERT INTO `t_region` VALUES (2361, '桂平市', '450881', '1755', 2355, 'Guiping');
+INSERT INTO `t_region` VALUES (2362, '玉林市', '450900', '0775', 2282, 'Yulin City');
+INSERT INTO `t_region` VALUES (2363, '玉林市市辖区', '450901', '0775', 2362, 'Yulin municipal');
+INSERT INTO `t_region` VALUES (2364, '玉州区', '450902', '0775', 2362, 'Yuzhou');
+INSERT INTO `t_region` VALUES (2365, '福绵区', '450903', '0775', 2362, 'Fu Mian');
+INSERT INTO `t_region` VALUES (2366, '容县', '450921', '0775', 2362, 'Rongxian');
+INSERT INTO `t_region` VALUES (2367, '陆川县', '450922', '0775', 2362, 'Luchuan');
+INSERT INTO `t_region` VALUES (2368, '博白县', '450923', '0775', 2362, 'Bobai');
+INSERT INTO `t_region` VALUES (2369, '兴业县', '450924', '0775', 2362, 'Xingye');
+INSERT INTO `t_region` VALUES (2370, '北流市', '450981', '0775', 2362, 'Beiliu');
+INSERT INTO `t_region` VALUES (2371, '百色市', '451000', '0776', 2282, 'Baise');
+INSERT INTO `t_region` VALUES (2372, '百色市市辖区', '451001', '0776', 2371, 'Baise');
+INSERT INTO `t_region` VALUES (2373, '右江区', '451002', '0776', 2371, 'Youjiang');
+INSERT INTO `t_region` VALUES (2374, '田阳县', '451021', '0776', 2371, 'Tianyang');
+INSERT INTO `t_region` VALUES (2375, '田东县', '451022', '0776', 2371, 'Tiandong');
+INSERT INTO `t_region` VALUES (2376, '平果县', '451023', '0776', 2371, 'Pingguo');
+INSERT INTO `t_region` VALUES (2377, '德保县', '451024', '0776', 2371, 'Debao');
+INSERT INTO `t_region` VALUES (2378, '靖西市', '451081', '0776', 2371, 'Jingxi City');
+INSERT INTO `t_region` VALUES (2379, '那坡县', '451026', '0776', 2371, 'Napo');
+INSERT INTO `t_region` VALUES (2380, '凌云县', '451027', '0776', 2371, 'Lingyun');
+INSERT INTO `t_region` VALUES (2381, '乐业县', '451028', '0776', 2371, 'Leye');
+INSERT INTO `t_region` VALUES (2382, '田林县', '451029', '0776', 2371, 'Tianlin');
+INSERT INTO `t_region` VALUES (2383, '西林县', '451030', '0776', 2371, 'Xilin');
+INSERT INTO `t_region` VALUES (2384, '隆林各族自治县', '451031', '0776', 2371, 'Multinational Autonomousof Longlin ');
+INSERT INTO `t_region` VALUES (2385, '贺州市', '451100', '1774', 2282, 'Hezhou');
+INSERT INTO `t_region` VALUES (2386, '贺州市市辖区', '451101', '1774', 2385, 'Hezhou municipal');
+INSERT INTO `t_region` VALUES (2387, '八步区', '451102', '1774', 2385, 'Eight step area');
+INSERT INTO `t_region` VALUES (2388, '平桂区', '451103', '1774', 2385, 'Guangxi');
+INSERT INTO `t_region` VALUES (2389, '昭平县', '451121', '1774', 2385, 'Zhaoping');
+INSERT INTO `t_region` VALUES (2390, '钟山县', '451122', '1774', 2385, 'Zhongshan');
+INSERT INTO `t_region` VALUES (2391, '富川瑶族自治县', '451123', '1774', 2385, 'Fuchuan Yao Autonomous');
+INSERT INTO `t_region` VALUES (2392, '河池市', '451200', '0778', 2282, 'Hechi City');
+INSERT INTO `t_region` VALUES (2393, '河池市市辖区', '451201', '0778', 2392, 'Hechi municipal');
+INSERT INTO `t_region` VALUES (2394, '金城江区', '451202', '0778', 2392, 'Jinchengjiang');
+INSERT INTO `t_region` VALUES (2395, '南丹县', '451221', '0778', 2392, 'Nandan');
+INSERT INTO `t_region` VALUES (2396, '天峨县', '451222', '0778', 2392, 'Tian’e');
+INSERT INTO `t_region` VALUES (2397, '凤山县', '451223', '0778', 2392, 'Fengshan');
+INSERT INTO `t_region` VALUES (2398, '东兰县', '451224', '0778', 2392, 'Donglan');
+INSERT INTO `t_region` VALUES (2399, '罗城仫佬族自治县', '451225', '0778', 2392, 'Luocheng Mulao Autonomous');
+INSERT INTO `t_region` VALUES (2400, '环江毛南族自治县', '451226', '0778', 2392, 'Huanjiang Maonan Autonomous');
+INSERT INTO `t_region` VALUES (2401, '巴马瑶族自治县', '451227', '0778', 2392, 'Bama');
+INSERT INTO `t_region` VALUES (2402, '都安瑶族自治县', '451228', '0778', 2392, 'Yao Autonomousof Du’an');
+INSERT INTO `t_region` VALUES (2403, '大化瑶族自治县', '451229', '0778', 2392, 'dahua');
+INSERT INTO `t_region` VALUES (2404, '宜州区', '451203', '0778', 2392, 'Yizhou');
+INSERT INTO `t_region` VALUES (2405, '来宾市', '451300', '1772', 2282, 'Laibin City');
+INSERT INTO `t_region` VALUES (2406, '来宾市市辖区', '451301', '1772', 2405, 'Laibin City');
+INSERT INTO `t_region` VALUES (2407, '兴宾区', '451302', '1772', 2405, 'Xingbin');
+INSERT INTO `t_region` VALUES (2408, '忻城县', '451321', '1772', 2405, 'Xincheng');
+INSERT INTO `t_region` VALUES (2409, '象州县', '451322', '1772', 2405, 'Xiangzhou');
+INSERT INTO `t_region` VALUES (2410, '武宣县', '451323', '1772', 2405, 'Wuxuan');
+INSERT INTO `t_region` VALUES (2411, '金秀瑶族自治县', '451324', '1772', 2405, 'Yao Autonomousof Jinxiu ');
+INSERT INTO `t_region` VALUES (2412, '合山市', '451381', '1772', 2405, 'Heshan');
+INSERT INTO `t_region` VALUES (2413, '崇左市', '451400', '1771', 2282, 'Chongzuo City');
+INSERT INTO `t_region` VALUES (2414, '崇左市市辖区', '451401', '1771', 2413, 'Chongzuo municipal');
+INSERT INTO `t_region` VALUES (2415, '江州区', '451402', '1771', 2413, 'Jiangzhou');
+INSERT INTO `t_region` VALUES (2416, '扶绥县', '451421', '1771', 2413, 'Fusui');
+INSERT INTO `t_region` VALUES (2417, '宁明县', '451422', '1771', 2413, 'Ningming');
+INSERT INTO `t_region` VALUES (2418, '龙州县', '451423', '1771', 2413, 'Longzhou');
+INSERT INTO `t_region` VALUES (2419, '大新县', '451424', '1771', 2413, 'Daxin');
+INSERT INTO `t_region` VALUES (2420, '天等县', '451425', '1771', 2413, 'Tiandeng');
+INSERT INTO `t_region` VALUES (2421, '凭祥市', '451481', '1771', 2413, 'Pingxiang');
+INSERT INTO `t_region` VALUES (2422, '海南省', '460000', '', 0, 'Hainan');
+INSERT INTO `t_region` VALUES (2423, '海口市', '460100', '0898', 2422, 'Haikou');
+INSERT INTO `t_region` VALUES (2424, '海口市市辖区', '460101', '0898', 2423, 'Haikou municipal');
+INSERT INTO `t_region` VALUES (2425, '秀英区', '460105', '0898', 2423, 'Xiuying');
+INSERT INTO `t_region` VALUES (2426, '龙华区', '460106', '0898', 2423, 'Longhua');
+INSERT INTO `t_region` VALUES (2427, '琼山区', '460107', '0898', 2423, 'Qiongshan');
+INSERT INTO `t_region` VALUES (2428, '美兰区', '460108', '0898', 2423, 'meilan');
+INSERT INTO `t_region` VALUES (2429, '三亚市', '460200', '0899', 2422, 'Theof Sanya');
+INSERT INTO `t_region` VALUES (2430, '三亚市市辖区', '460201', '0899', 2429, 'Sanya municipal');
+INSERT INTO `t_region` VALUES (2431, '海棠区', '460202', '0899', 2429, 'Begonia area');
+INSERT INTO `t_region` VALUES (2432, '吉阳区', '460203', '0899', 2429, 'Jiyang');
+INSERT INTO `t_region` VALUES (2433, '天涯区', '460204', '0899', 2429, 'Tianya');
+INSERT INTO `t_region` VALUES (2434, '崖州区', '460205', '0899', 2429, 'Ya Zhou');
+INSERT INTO `t_region` VALUES (2435, '三沙市', '460300', '2898', 2422, 'Sansha');
+INSERT INTO `t_region` VALUES (2436, '三沙市市辖区', '460301', '2898', 2435, 'City of San Sha City');
+INSERT INTO `t_region` VALUES (2437, '西沙群岛', '460321', '1895', 2435, 'the Xisha Islands ');
+INSERT INTO `t_region` VALUES (2438, '南沙群岛', '460322', '1891', 2435, 'the Nansha Islands ');
+INSERT INTO `t_region` VALUES (2439, '中沙群岛的岛礁及其海域', '460323', '2801', 2435, 'The islands, reefs and sea areas of the central Sand Islands');
+INSERT INTO `t_region` VALUES (2440, '儋州市', '460400', '0805', 2422, 'Danzhou City');
+INSERT INTO `t_region` VALUES (2441, '五指山市', '469001', '1897', 2440, 'Five Fingers Group City');
+INSERT INTO `t_region` VALUES (2442, '琼海市', '469002', '1894', 2440, 'Qionghai City');
+INSERT INTO `t_region` VALUES (2443, '文昌市', '469005', '1893', 2440, 'Wenchang City');
+INSERT INTO `t_region` VALUES (2444, '万宁市', '469006', '1898', 2440, 'Wanning City');
+INSERT INTO `t_region` VALUES (2445, '东方市', '469007', '0807', 2440, '[地名] [巴拉圭] Ciudad del Este ');
+INSERT INTO `t_region` VALUES (2446, '定安县', '469021', '0806', 2440, 'Ding’an');
+INSERT INTO `t_region` VALUES (2447, '屯昌县', '469022', '1892', 2440, 'Tunchang');
+INSERT INTO `t_region` VALUES (2448, '澄迈县', '469023', '0804', 2440, 'Chengmai');
+INSERT INTO `t_region` VALUES (2449, '临高县', '469024', '1896', 2440, 'Lingao');
+INSERT INTO `t_region` VALUES (2450, '白沙黎族自治县', '469025', '0802', 2440, 'Baisha Li Autonomous');
+INSERT INTO `t_region` VALUES (2451, '昌江黎族自治县', '469026', '0803', 2440, 'Changjiang');
+INSERT INTO `t_region` VALUES (2452, '乐东黎族自治县', '469027', '2802', 2440, 'Ledong Li Autonomous');
+INSERT INTO `t_region` VALUES (2453, '陵水黎族自治县', '469028', '0809', 2440, 'Lingshui Li Autonomous');
+INSERT INTO `t_region` VALUES (2454, '保亭黎族苗族自治县', '469029', '0801', 2440, 'Baoting Li nationality and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2455, '琼中黎族苗族自治县', '469030', '1899', 2440, 'Qiongzhong');
+INSERT INTO `t_region` VALUES (2456, '重庆市', '500000', '023', 0, 'Chongqing');
+INSERT INTO `t_region` VALUES (2457, '重庆市市辖区', '500100', '023', 2456, 'Chongqing municipal');
+INSERT INTO `t_region` VALUES (2458, '万州区', '500101', '023', 2457, 'Wanzhou');
+INSERT INTO `t_region` VALUES (2459, '涪陵区', '500102', '023', 2457, 'fuling');
+INSERT INTO `t_region` VALUES (2460, '渝中区', '500103', '023', 2457, 'Yuzhong');
+INSERT INTO `t_region` VALUES (2461, '大渡口区', '500104', '023', 2457, 'dadukou');
+INSERT INTO `t_region` VALUES (2462, '江北区', '500105', '023', 2457, 'jiangbei');
+INSERT INTO `t_region` VALUES (2463, '沙坪坝区', '500106', '023', 2457, 'shapingba');
+INSERT INTO `t_region` VALUES (2464, '九龙坡区', '500107', '023', 2457, 'jiulongpo');
+INSERT INTO `t_region` VALUES (2465, '南岸区', '500108', '023', 2457, 'Nanan');
+INSERT INTO `t_region` VALUES (2466, '北碚区', '500109', '023', 2457, 'Beibei');
+INSERT INTO `t_region` VALUES (2467, '綦江区', '500110', '023', 2457, 'Qijiang');
+INSERT INTO `t_region` VALUES (2468, '大足区', '500111', '023', 2457, 'Dazu');
+INSERT INTO `t_region` VALUES (2469, '渝北区', '500112', '023', 2457, 'Yubei');
+INSERT INTO `t_region` VALUES (2470, '巴南区', '500113', '023', 2457, 'banan');
+INSERT INTO `t_region` VALUES (2471, '黔江区', '500114', '023', 2457, 'Qianjiang');
+INSERT INTO `t_region` VALUES (2472, '长寿区', '500115', '023', 2457, 'changshou');
+INSERT INTO `t_region` VALUES (2473, '江津区', '500116', '023', 2457, 'Jiangjin');
+INSERT INTO `t_region` VALUES (2474, '合川区', '500117', '023', 2457, 'Hechuan');
+INSERT INTO `t_region` VALUES (2475, '永川区', '500118', '023', 2457, 'yongchuan');
+INSERT INTO `t_region` VALUES (2476, '南川区', '500119', '023', 2457, 'Nanchuan');
+INSERT INTO `t_region` VALUES (2477, '璧山区', '500120', '023', 2457, 'Bishan');
+INSERT INTO `t_region` VALUES (2478, '铜梁区', '500151', '023', 2457, 'Tongliang');
+INSERT INTO `t_region` VALUES (2479, '潼南区', '500152', '023', 2457, 'Tongnan');
+INSERT INTO `t_region` VALUES (2480, '荣昌区', '500153', '023', 2457, 'Rongchang');
+INSERT INTO `t_region` VALUES (2481, '开州区', '500154', '023', 2457, 'Kai Zhou');
+INSERT INTO `t_region` VALUES (2482, '梁平区', '500155', '023', 2457, 'Liangping');
+INSERT INTO `t_region` VALUES (2483, '武隆区', '500156', '023', 2457, 'Wulong');
+INSERT INTO `t_region` VALUES (2484, '重庆市郊县', '500200', '023', 2456, 'Suburbanof Chongqing');
+INSERT INTO `t_region` VALUES (2485, '城口县', '500229', '023', 2484, 'Chengkou');
+INSERT INTO `t_region` VALUES (2486, '丰都县', '500230', '023', 2484, 'Fengdu');
+INSERT INTO `t_region` VALUES (2487, '垫江县', '500231', '023', 2484, 'Dianjiang');
+INSERT INTO `t_region` VALUES (2488, '忠县', '500233', '023', 2484, 'Zhongxian');
+INSERT INTO `t_region` VALUES (2489, '云阳县', '500235', '023', 2484, 'Yunyang');
+INSERT INTO `t_region` VALUES (2490, '奉节县', '500236', '023', 2484, 'Fengjie');
+INSERT INTO `t_region` VALUES (2491, '巫山县', '500237', '023', 2484, 'Wushan');
+INSERT INTO `t_region` VALUES (2492, '巫溪县', '500238', '023', 2484, 'Wuxi');
+INSERT INTO `t_region` VALUES (2493, '石柱土家族自治县', '500240', '023', 2484, 'Shizhu Tujia Autonomous');
+INSERT INTO `t_region` VALUES (2494, '秀山土家族苗族自治县', '500241', '023', 2484, 'Xiushan Tujia and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2495, '酉阳土家族苗族自治县', '500242', '023', 2484, 'Youyang Tujia and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2496, '彭水苗族土家族自治县', '500243', '023', 2484, 'pengshui miao and tujia autonomous');
+INSERT INTO `t_region` VALUES (2497, '四川省', '510000', '', 0, 'Sichuan Province ');
+INSERT INTO `t_region` VALUES (2498, '成都市', '510100', '028', 2497, 'Chengdu');
+INSERT INTO `t_region` VALUES (2499, '成都市市辖区', '510101', '028', 2498, 'Chengdu municipal');
+INSERT INTO `t_region` VALUES (2500, '锦江区', '510104', '028', 2498, 'Jinjiang');
+INSERT INTO `t_region` VALUES (2501, '青羊区', '510105', '028', 2498, 'Qingyang');
+INSERT INTO `t_region` VALUES (2502, '金牛区', '510106', '028', 2498, 'Jinniu');
+INSERT INTO `t_region` VALUES (2503, '武侯区', '510107', '028', 2498, 'wuhou');
+INSERT INTO `t_region` VALUES (2504, '成华区', '510108', '028', 2498, 'Chenghua');
+INSERT INTO `t_region` VALUES (2505, '龙泉驿区', '510112', '028', 2498, 'Longquanyi');
+INSERT INTO `t_region` VALUES (2506, '青白江区', '510113', '028', 2498, 'qingbaijiang');
+INSERT INTO `t_region` VALUES (2507, '新都区', '510114', '028', 2498, 'xindu');
+INSERT INTO `t_region` VALUES (2508, '温江区', '510115', '028', 2498, 'Wenjiang');
+INSERT INTO `t_region` VALUES (2509, '金堂县', '510121', '028', 2498, 'Jintang');
+INSERT INTO `t_region` VALUES (2510, '双流区', '510116', '028', 2498, 'Double flow area');
+INSERT INTO `t_region` VALUES (2511, '郫都区', '510117', '028', 2498, 'PI Du');
+INSERT INTO `t_region` VALUES (2512, '大邑县', '510129', '028', 2498, 'Dayi');
+INSERT INTO `t_region` VALUES (2513, '蒲江县', '510131', '028', 2498, 'Pujiang');
+INSERT INTO `t_region` VALUES (2514, '新津县', '510132', '028', 2498, 'Xinjin');
+INSERT INTO `t_region` VALUES (2515, '简阳市', '510185', '028', 2498, 'Jianyang');
+INSERT INTO `t_region` VALUES (2516, '都江堰市', '510181', '028', 2498, 'dujiangyan city');
+INSERT INTO `t_region` VALUES (2517, '彭州市', '510182', '028', 2498, 'Pengzhou City');
+INSERT INTO `t_region` VALUES (2518, '邛崃市', '510183', '028', 2498, 'Qionglai City');
+INSERT INTO `t_region` VALUES (2519, '崇州市', '510184', '028', 2498, 'Chongzhou');
+INSERT INTO `t_region` VALUES (2520, '自贡市', '510300', '0813', 2497, 'Zigong');
+INSERT INTO `t_region` VALUES (2521, '自贡市市辖区', '510301', '0813', 2520, 'Zigong municipal');
+INSERT INTO `t_region` VALUES (2522, '自流井区', '510302', '0813', 2520, 'ziliujing');
+INSERT INTO `t_region` VALUES (2523, '贡井区', '510303', '0813', 2520, 'Gongjing');
+INSERT INTO `t_region` VALUES (2524, '大安区', '510304', '0813', 2520, 'Da\'an');
+INSERT INTO `t_region` VALUES (2525, '沿滩区', '510311', '0813', 2520, 'Yantan');
+INSERT INTO `t_region` VALUES (2526, '荣县', '510321', '0813', 2520, 'Rongxian');
+INSERT INTO `t_region` VALUES (2527, '富顺县', '510322', '0813', 2520, 'Fushun');
+INSERT INTO `t_region` VALUES (2528, '攀枝花市', '510400', '0812', 2497, 'Panzhihua City');
+INSERT INTO `t_region` VALUES (2529, '攀枝花市市辖区', '510401', '0812', 2528, 'Panzhihua municipal');
+INSERT INTO `t_region` VALUES (2530, '东区', '510402', '0812', 2528, 'Eastern Conference ');
+INSERT INTO `t_region` VALUES (2531, '西区', '510403', '0812', 2528, '[体]western conference ');
+INSERT INTO `t_region` VALUES (2532, '仁和区', '510411', '0812', 2528, 'renhe');
+INSERT INTO `t_region` VALUES (2533, '米易县', '510421', '0812', 2528, 'Miyi');
+INSERT INTO `t_region` VALUES (2534, '盐边县', '510422', '0812', 2528, 'Yanbian');
+INSERT INTO `t_region` VALUES (2535, '泸州市', '510500', '0830', 2497, 'Luzhou City');
+INSERT INTO `t_region` VALUES (2536, '泸州市市辖区', '510501', '0830', 2535, 'Luzhou municipal');
+INSERT INTO `t_region` VALUES (2537, '江阳区', '510502', '0830', 2535, 'jiangyang');
+INSERT INTO `t_region` VALUES (2538, '纳溪区', '510503', '0830', 2535, 'Naxi');
+INSERT INTO `t_region` VALUES (2539, '龙马潭区', '510504', '0830', 2535, 'Longmatan');
+INSERT INTO `t_region` VALUES (2540, '泸县', '510521', '0830', 2535, 'Luxian');
+INSERT INTO `t_region` VALUES (2541, '合江县', '510522', '0830', 2535, 'Hejiang');
+INSERT INTO `t_region` VALUES (2542, '叙永县', '510524', '0830', 2535, 'Xuyong');
+INSERT INTO `t_region` VALUES (2543, '古蔺县', '510525', '0830', 2535, 'Gulin');
+INSERT INTO `t_region` VALUES (2544, '德阳市', '510600', '0838', 2497, 'deyang');
+INSERT INTO `t_region` VALUES (2545, '德阳市市辖区', '510601', '0838', 2544, 'Deyang municipal');
+INSERT INTO `t_region` VALUES (2546, '旌阳区', '510603', '0838', 2544, 'Jingyang');
+INSERT INTO `t_region` VALUES (2547, '中江县', '510623', '0838', 2544, 'Zhongjiang');
+INSERT INTO `t_region` VALUES (2548, '罗江县', '510626', '0838', 2544, 'Luojiang');
+INSERT INTO `t_region` VALUES (2549, '广汉市', '510681', '0838', 2544, 'Guanghan');
+INSERT INTO `t_region` VALUES (2550, '什邡市', '510682', '0838', 2544, 'Shifang City');
+INSERT INTO `t_region` VALUES (2551, '绵竹市', '510683', '0838', 2544, 'Mianzhu City');
+INSERT INTO `t_region` VALUES (2552, '绵阳市', '510700', '0816', 2497, 'Mianyang');
+INSERT INTO `t_region` VALUES (2553, '绵阳市市辖区', '510701', '0816', 2552, 'Mianyang municipal');
+INSERT INTO `t_region` VALUES (2554, '涪城区', '510703', '0816', 2552, 'fucheng');
+INSERT INTO `t_region` VALUES (2555, '游仙区', '510704', '0816', 2552, 'Youxian');
+INSERT INTO `t_region` VALUES (2556, '三台县', '510722', '0816', 2552, 'Santai');
+INSERT INTO `t_region` VALUES (2557, '盐亭县', '510723', '0816', 2552, 'Yanting');
+INSERT INTO `t_region` VALUES (2558, '安州区', '510705', '0816', 2552, 'Anzhou');
+INSERT INTO `t_region` VALUES (2559, '梓潼县', '510725', '0816', 2552, 'Zitong');
+INSERT INTO `t_region` VALUES (2560, '北川羌族自治县', '510726', '0816', 2552, 'Beichuan Qiang Autonomous');
+INSERT INTO `t_region` VALUES (2561, '平武县', '510727', '0816', 2552, 'Pingwu');
+INSERT INTO `t_region` VALUES (2562, '江油市', '510781', '0816', 2552, 'Jiangyou City');
+INSERT INTO `t_region` VALUES (2563, '广元市', '510800', '0839', 2497, 'Guangyuan City');
+INSERT INTO `t_region` VALUES (2564, '广元市市辖区', '510801', '0839', 2563, 'Guangyuan municipal');
+INSERT INTO `t_region` VALUES (2565, '利州区', '510802', '0839', 2563, 'Lezhou');
+INSERT INTO `t_region` VALUES (2566, '昭化区', '510811', '0839', 2563, 'Zhao Hua');
+INSERT INTO `t_region` VALUES (2567, '朝天区', '510812', '0839', 2563, 'chaotian');
+INSERT INTO `t_region` VALUES (2568, '旺苍县', '510821', '0839', 2563, 'Wangcang');
+INSERT INTO `t_region` VALUES (2569, '青川县', '510822', '0839', 2563, 'Qingchuan');
+INSERT INTO `t_region` VALUES (2570, '剑阁县', '510823', '0839', 2563, 'Jiange');
+INSERT INTO `t_region` VALUES (2571, '苍溪县', '510824', '0839', 2563, 'Cangxi');
+INSERT INTO `t_region` VALUES (2572, '遂宁市', '510900', '0825', 2497, 'suining city');
+INSERT INTO `t_region` VALUES (2573, '遂宁市市辖区', '510901', '0825', 2572, 'Suining municipal');
+INSERT INTO `t_region` VALUES (2574, '船山区', '510903', '0825', 2572, 'Ship mountain');
+INSERT INTO `t_region` VALUES (2575, '安居区', '510904', '0825', 2572, 'anju');
+INSERT INTO `t_region` VALUES (2576, '蓬溪县', '510921', '0825', 2572, 'Pengxi');
+INSERT INTO `t_region` VALUES (2577, '射洪县', '510922', '0825', 2572, 'Shehong');
+INSERT INTO `t_region` VALUES (2578, '大英县', '510923', '0825', 2572, 'Daying');
+INSERT INTO `t_region` VALUES (2579, '内江市', '511000', '1832', 2497, 'Neijiang');
+INSERT INTO `t_region` VALUES (2580, '内江市市辖区', '511001', '1832', 2579, 'Neijiang municipal');
+INSERT INTO `t_region` VALUES (2581, '市中区', '511002', '1832', 2579, 'Shizhong');
+INSERT INTO `t_region` VALUES (2582, '东兴区', '511011', '1832', 2579, 'dongxing');
+INSERT INTO `t_region` VALUES (2583, '威远县', '511024', '1832', 2579, 'Weiyuan');
+INSERT INTO `t_region` VALUES (2584, '资中县', '511025', '1832', 2579, 'Zizhong');
+INSERT INTO `t_region` VALUES (2585, '隆昌市', '511028', '1832', 2579, 'Longchang City');
+INSERT INTO `t_region` VALUES (2586, '乐山市', '511100', '0833', 2497, 'Leshan City');
+INSERT INTO `t_region` VALUES (2587, '乐山市市辖区', '511101', '0833', 2586, 'Leshan municipal');
+INSERT INTO `t_region` VALUES (2588, '市中区', '511102', '0833', 2586, 'Shizhong');
+INSERT INTO `t_region` VALUES (2589, '沙湾区', '511111', '0833', 2586, 'Shawan');
+INSERT INTO `t_region` VALUES (2590, '五通桥区', '511112', '0833', 2586, 'Wutongqiao');
+INSERT INTO `t_region` VALUES (2591, '金口河区', '511113', '0833', 2586, 'Jinkouhe');
+INSERT INTO `t_region` VALUES (2592, '犍为县', '511123', '0833', 2586, 'Qianwei');
+INSERT INTO `t_region` VALUES (2593, '井研县', '511124', '0833', 2586, 'Jingyan');
+INSERT INTO `t_region` VALUES (2594, '夹江县', '511126', '0833', 2586, 'Jiajiang');
+INSERT INTO `t_region` VALUES (2595, '沐川县', '511129', '0833', 2586, 'Muchuan');
+INSERT INTO `t_region` VALUES (2596, '峨边彝族自治县', '511132', '0833', 2586, 'Ebian Yi Autonomous');
+INSERT INTO `t_region` VALUES (2597, '马边彝族自治县', '511133', '0833', 2586, 'Mabian');
+INSERT INTO `t_region` VALUES (2598, '峨眉山市', '511181', '0833', 2586, 'Emeishan City');
+INSERT INTO `t_region` VALUES (2599, '南充市', '511300', '0817', 2497, 'Nanchong');
+INSERT INTO `t_region` VALUES (2600, '南充市市辖区', '511301', '0817', 2599, 'Nanchong municipal');
+INSERT INTO `t_region` VALUES (2601, '顺庆区', '511302', '0817', 2599, 'Shunqing');
+INSERT INTO `t_region` VALUES (2602, '高坪区', '511303', '0817', 2599, 'gaoping');
+INSERT INTO `t_region` VALUES (2603, '嘉陵区', '511304', '0817', 2599, 'jialing');
+INSERT INTO `t_region` VALUES (2604, '南部县', '511321', '0817', 2599, 'Nanbu');
+INSERT INTO `t_region` VALUES (2605, '营山县', '511322', '0817', 2599, 'Yingshan');
+INSERT INTO `t_region` VALUES (2606, '蓬安县', '511323', '0817', 2599, 'Peng’an');
+INSERT INTO `t_region` VALUES (2607, '仪陇县', '511324', '0817', 2599, 'Yilong');
+INSERT INTO `t_region` VALUES (2608, '西充县', '511325', '0817', 2599, 'Xichong');
+INSERT INTO `t_region` VALUES (2609, '阆中市', '511381', '0817', 2599, 'Langzhong');
+INSERT INTO `t_region` VALUES (2610, '眉山市', '511400', '1833', 2497, 'Meishan City');
+INSERT INTO `t_region` VALUES (2611, '眉山市市辖区', '511401', '1833', 2610, 'Meishan municipal');
+INSERT INTO `t_region` VALUES (2612, '东坡区', '511402', '1833', 2610, 'Dongpo');
+INSERT INTO `t_region` VALUES (2613, '彭山区', '511403', '1833', 2610, 'Pengshan');
+INSERT INTO `t_region` VALUES (2614, '仁寿县', '511421', '1833', 2610, 'Renshou');
+INSERT INTO `t_region` VALUES (2615, '洪雅县', '511423', '1833', 2610, 'Hongya');
+INSERT INTO `t_region` VALUES (2616, '丹棱县', '511424', '1833', 2610, 'Danleng');
+INSERT INTO `t_region` VALUES (2617, '青神县', '511425', '1833', 2610, 'Qingshen');
+INSERT INTO `t_region` VALUES (2618, '宜宾市', '511500', '0831', 2497, 'Yibin');
+INSERT INTO `t_region` VALUES (2619, '宜宾市市辖区', '511501', '0831', 2618, 'Yibin municipal');
+INSERT INTO `t_region` VALUES (2620, '翠屏区', '511502', '0831', 2618, 'Cuiping');
+INSERT INTO `t_region` VALUES (2621, '南溪区', '511503', '0831', 2618, 'Nanxi');
+INSERT INTO `t_region` VALUES (2622, '宜宾县', '511521', '0831', 2618, 'Yibin');
+INSERT INTO `t_region` VALUES (2623, '江安县', '511523', '0831', 2618, 'Jiang’an');
+INSERT INTO `t_region` VALUES (2624, '长宁县', '511524', '0831', 2618, 'Changning');
+INSERT INTO `t_region` VALUES (2625, '高县', '511525', '0831', 2618, 'Gaoxian');
+INSERT INTO `t_region` VALUES (2626, '珙县', '511526', '0831', 2618, 'Gongxian');
+INSERT INTO `t_region` VALUES (2627, '筠连县', '511527', '0831', 2618, 'Junlian');
+INSERT INTO `t_region` VALUES (2628, '兴文县', '511528', '0831', 2618, 'Xingwen');
+INSERT INTO `t_region` VALUES (2629, '屏山县', '511529', '0831', 2618, 'Pingshan');
+INSERT INTO `t_region` VALUES (2630, '广安市', '511600', '0826', 2497, 'Guang\'an City');
+INSERT INTO `t_region` VALUES (2631, '广安市市辖区', '511601', '0826', 2630, 'Guang\'an municipal');
+INSERT INTO `t_region` VALUES (2632, '广安区', '511602', '0826', 2630, 'Guang\'an');
+INSERT INTO `t_region` VALUES (2633, '前锋区', '511603', '0826', 2630, 'Forward area');
+INSERT INTO `t_region` VALUES (2634, '岳池县', '511621', '0826', 2630, 'Yuechi');
+INSERT INTO `t_region` VALUES (2635, '武胜县', '511622', '0826', 2630, 'Wusheng');
+INSERT INTO `t_region` VALUES (2636, '邻水县', '511623', '0826', 2630, 'Linshui');
+INSERT INTO `t_region` VALUES (2637, '华蓥市', '511681', '0826', 2630, 'Huaying');
+INSERT INTO `t_region` VALUES (2638, '达州市', '511700', '0818', 2497, 'Dazhou City');
+INSERT INTO `t_region` VALUES (2639, '达州市市辖区', '511701', '0818', 2638, 'Dazhou municipal');
+INSERT INTO `t_region` VALUES (2640, '通川区', '511702', '0818', 2638, 'Tongchuan');
+INSERT INTO `t_region` VALUES (2641, '达川区', '511703', '0818', 2638, 'Da Chuan');
+INSERT INTO `t_region` VALUES (2642, '宣汉县', '511722', '0818', 2638, 'Xuanhan');
+INSERT INTO `t_region` VALUES (2643, '开江县', '511723', '0818', 2638, 'Kaijiang');
+INSERT INTO `t_region` VALUES (2644, '大竹县', '511724', '0818', 2638, 'Dazhu');
+INSERT INTO `t_region` VALUES (2645, '渠县', '511725', '0818', 2638, 'Quxian');
+INSERT INTO `t_region` VALUES (2646, '万源市', '511781', '0818', 2638, 'wanyuan city');
+INSERT INTO `t_region` VALUES (2647, '雅安市', '511800', '0835', 2497, 'Ya\'an City');
+INSERT INTO `t_region` VALUES (2648, '雅安市市辖区', '511801', '0835', 2647, 'Ya\'an municipal');
+INSERT INTO `t_region` VALUES (2649, '雨城区', '511802', '0835', 2647, 'Yucheng City');
+INSERT INTO `t_region` VALUES (2650, '名山区', '511803', '0835', 2647, 'Mingshan');
+INSERT INTO `t_region` VALUES (2651, '荥经县', '511822', '0835', 2647, 'Xingjing');
+INSERT INTO `t_region` VALUES (2652, '汉源县', '511823', '0835', 2647, 'Hanyuan');
+INSERT INTO `t_region` VALUES (2653, '石棉县', '511824', '0835', 2647, 'Shimian');
+INSERT INTO `t_region` VALUES (2654, '天全县', '511825', '0835', 2647, 'Tianquan');
+INSERT INTO `t_region` VALUES (2655, '芦山县', '511826', '0835', 2647, 'Lushan');
+INSERT INTO `t_region` VALUES (2656, '宝兴县', '511827', '0835', 2647, 'Baoxing');
+INSERT INTO `t_region` VALUES (2657, '巴中市', '511900', '0827', 2497, 'Bazhong City');
+INSERT INTO `t_region` VALUES (2658, '巴中市市辖区', '511901', '0827', 2657, 'Bazhong municipal');
+INSERT INTO `t_region` VALUES (2659, '巴州区', '511902', '0827', 2657, 'bazhou');
+INSERT INTO `t_region` VALUES (2660, '恩阳区', '511903', '0827', 2657, 'EN Yang');
+INSERT INTO `t_region` VALUES (2661, '通江县', '511921', '0827', 2657, 'Tongjiang');
+INSERT INTO `t_region` VALUES (2662, '南江县', '511922', '0827', 2657, 'Nanjiang');
+INSERT INTO `t_region` VALUES (2663, '平昌县', '511923', '0827', 2657, 'Pingchang');
+INSERT INTO `t_region` VALUES (2664, '资阳市', '512000', '0832', 2497, 'Ziyang City');
+INSERT INTO `t_region` VALUES (2665, '资阳市市辖区', '512001', '0832', 2664, 'Ziyang City');
+INSERT INTO `t_region` VALUES (2666, '雁江区', '512002', '0832', 2664, 'yanjiang');
+INSERT INTO `t_region` VALUES (2667, '安岳县', '512021', '0832', 2664, 'Anyue');
+INSERT INTO `t_region` VALUES (2668, '乐至县', '512022', '0832', 2664, 'Lezhi');
+INSERT INTO `t_region` VALUES (2669, '阿坝藏族羌族自治州', '513200', '0837', 2497, 'Aba Tibetan and Qiang Autonomous Prefecture');
+INSERT INTO `t_region` VALUES (2670, '汶川县', '513221', '0837', 2669, 'Wenchuan');
+INSERT INTO `t_region` VALUES (2671, '理县', '513222', '0837', 2669, 'Lixian');
+INSERT INTO `t_region` VALUES (2672, '茂县', '513223', '0837', 2669, 'Maoxian');
+INSERT INTO `t_region` VALUES (2673, '松潘县', '513224', '0837', 2669, 'Songpan');
+INSERT INTO `t_region` VALUES (2674, '九寨沟县', '513225', '0837', 2669, 'Jiuzhaigou');
+INSERT INTO `t_region` VALUES (2675, '金川县', '513226', '0837', 2669, 'Jinchuan');
+INSERT INTO `t_region` VALUES (2676, '小金县', '513227', '0837', 2669, 'Xiaojin');
+INSERT INTO `t_region` VALUES (2677, '黑水县', '513228', '0837', 2669, 'Heishui');
+INSERT INTO `t_region` VALUES (2678, '马尔康市', '513201', '0837', 2669, 'Barkam City');
+INSERT INTO `t_region` VALUES (2679, '壤塘县', '513230', '0837', 2669, 'Zamtang');
+INSERT INTO `t_region` VALUES (2680, '阿坝县', '513231', '0837', 2669, 'Aba');
+INSERT INTO `t_region` VALUES (2681, '若尔盖县', '513232', '0837', 2669, 'Zoigê');
+INSERT INTO `t_region` VALUES (2682, '红原县', '513233', '0837', 2669, 'Hongyuan');
+INSERT INTO `t_region` VALUES (2683, '甘孜藏族自治州', '513300', '0836', 2497, 'Tibetan Autonomous Prefecture of Garzê');
+INSERT INTO `t_region` VALUES (2684, '康定市', '513301', '0836', 2683, 'Kangding City');
+INSERT INTO `t_region` VALUES (2685, '泸定县', '513322', '0836', 2683, 'Luding');
+INSERT INTO `t_region` VALUES (2686, '丹巴县', '513323', '0836', 2683, 'Danba');
+INSERT INTO `t_region` VALUES (2687, '九龙县', '513324', '0836', 2683, 'Jiulong');
+INSERT INTO `t_region` VALUES (2688, '雅江县', '513325', '0836', 2683, 'Yajiang');
+INSERT INTO `t_region` VALUES (2689, '道孚县', '513326', '0836', 2683, 'Dawu');
+INSERT INTO `t_region` VALUES (2690, '炉霍县', '513327', '0836', 2683, 'Luhuo');
+INSERT INTO `t_region` VALUES (2691, '甘孜县', '513328', '0836', 2683, 'Garzê');
+INSERT INTO `t_region` VALUES (2692, '新龙县', '513329', '0836', 2683, 'Xinlong');
+INSERT INTO `t_region` VALUES (2693, '德格县', '513330', '0836', 2683, 'Dêgê');
+INSERT INTO `t_region` VALUES (2694, '白玉县', '513331', '0836', 2683, 'Baiyü');
+INSERT INTO `t_region` VALUES (2695, '石渠县', '513332', '0836', 2683, 'Sêrxü');
+INSERT INTO `t_region` VALUES (2696, '色达县', '513333', '0836', 2683, 'Sêrtar');
+INSERT INTO `t_region` VALUES (2697, '理塘县', '513334', '0836', 2683, 'Litang');
+INSERT INTO `t_region` VALUES (2698, '巴塘县', '513335', '0836', 2683, 'Batang');
+INSERT INTO `t_region` VALUES (2699, '乡城县', '513336', '0836', 2683, 'Xiangcheng');
+INSERT INTO `t_region` VALUES (2700, '稻城县', '513337', '0836', 2683, 'Daocheng');
+INSERT INTO `t_region` VALUES (2701, '得荣县', '513338', '0836', 2683, 'Dêrong');
+INSERT INTO `t_region` VALUES (2702, '凉山彝族自治州', '513400', '0834', 2497, 'Yi Autonomous Prefecture of Liangshan ');
+INSERT INTO `t_region` VALUES (2703, '西昌市', '513401', '0834', 2702, 'Xichang City');
+INSERT INTO `t_region` VALUES (2704, '木里藏族自治县', '513422', '0834', 2702, 'Tibetan Autonomousof Muli ');
+INSERT INTO `t_region` VALUES (2705, '盐源县', '513423', '0834', 2702, 'Yanyuan');
+INSERT INTO `t_region` VALUES (2706, '德昌县', '513424', '0834', 2702, 'Dechang');
+INSERT INTO `t_region` VALUES (2707, '会理县', '513425', '0834', 2702, 'Huili');
+INSERT INTO `t_region` VALUES (2708, '会东县', '513426', '0834', 2702, 'Huidong');
+INSERT INTO `t_region` VALUES (2709, '宁南县', '513427', '0834', 2702, 'Ningnan');
+INSERT INTO `t_region` VALUES (2710, '普格县', '513428', '0834', 2702, 'Puge');
+INSERT INTO `t_region` VALUES (2711, '布拖县', '513429', '0834', 2702, 'Butuo');
+INSERT INTO `t_region` VALUES (2712, '金阳县', '513430', '0834', 2702, 'Jinyang');
+INSERT INTO `t_region` VALUES (2713, '昭觉县', '513431', '0834', 2702, 'Zhaojue');
+INSERT INTO `t_region` VALUES (2714, '喜德县', '513432', '0834', 2702, 'Xide');
+INSERT INTO `t_region` VALUES (2715, '冕宁县', '513433', '0834', 2702, 'Mianning');
+INSERT INTO `t_region` VALUES (2716, '越西县', '513434', '0834', 2702, 'Yuexi');
+INSERT INTO `t_region` VALUES (2717, '甘洛县', '513435', '0834', 2702, 'Ganluo');
+INSERT INTO `t_region` VALUES (2718, '美姑县', '513436', '0834', 2702, 'Meigu');
+INSERT INTO `t_region` VALUES (2719, '雷波县', '513437', '0834', 2702, 'Leibo');
+INSERT INTO `t_region` VALUES (2720, '贵州省', '520000', '', 0, 'Guizhou Province ');
+INSERT INTO `t_region` VALUES (2721, '贵阳市', '520100', '0851', 2720, 'Guiyang');
+INSERT INTO `t_region` VALUES (2722, '贵阳市市辖区', '520101', '0851', 2721, 'Guiyang municipal');
+INSERT INTO `t_region` VALUES (2723, '南明区', '520102', '0851', 2721, 'Nanming');
+INSERT INTO `t_region` VALUES (2724, '云岩区', '520103', '0851', 2721, 'yunyan');
+INSERT INTO `t_region` VALUES (2725, '花溪区', '520111', '0851', 2721, 'huaxi');
+INSERT INTO `t_region` VALUES (2726, '乌当区', '520112', '0851', 2721, 'Wudang');
+INSERT INTO `t_region` VALUES (2727, '白云区', '520113', '0851', 2721, 'Baiyun');
+INSERT INTO `t_region` VALUES (2728, '观山湖区', '520115', '0851', 2721, 'Guan Shan Lake area');
+INSERT INTO `t_region` VALUES (2729, '开阳县', '520121', '0851', 2721, 'Kaiyang');
+INSERT INTO `t_region` VALUES (2730, '息烽县', '520122', '0851', 2721, 'Xifeng');
+INSERT INTO `t_region` VALUES (2731, '修文县', '520123', '0851', 2721, 'Xiuwen');
+INSERT INTO `t_region` VALUES (2732, '清镇市', '520181', '0851', 2721, 'qingzhen');
+INSERT INTO `t_region` VALUES (2733, '六盘水市', '520200', '0858', 2720, 'liupanshui city');
+INSERT INTO `t_region` VALUES (2734, '钟山区', '520201', '0858', 2733, 'Zhongshan');
+INSERT INTO `t_region` VALUES (2735, '六枝特区', '520203', '0858', 2733, 'Six special economic zones');
+INSERT INTO `t_region` VALUES (2736, '水城县', '520221', '0858', 2733, 'Shuicheng');
+INSERT INTO `t_region` VALUES (2737, '盘州市', '520222', '0858', 2733, 'Pan Zhou City');
+INSERT INTO `t_region` VALUES (2738, '遵义市', '520300', '0852', 2720, 'Zunyi');
+INSERT INTO `t_region` VALUES (2739, '遵义市市辖区', '520301', '0852', 2738, 'Zunyi municipal');
+INSERT INTO `t_region` VALUES (2740, '红花岗区', '520302', '0852', 2738, 'honghuagang');
+INSERT INTO `t_region` VALUES (2741, '汇川区', '520303', '0852', 2738, 'Huichuan');
+INSERT INTO `t_region` VALUES (2742, '播州区', '520304', '0852', 2738, 'Sow state');
+INSERT INTO `t_region` VALUES (2743, '桐梓县', '520322', '0852', 2738, 'Tongzi');
+INSERT INTO `t_region` VALUES (2744, '绥阳县', '520323', '0852', 2738, 'Suiyang');
+INSERT INTO `t_region` VALUES (2745, '正安县', '520324', '0852', 2738, 'Zheng’an');
+INSERT INTO `t_region` VALUES (2746, '道真仡佬族苗族自治县', '520325', '0852', 2738, 'Daozhen Gelao and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2747, '务川仡佬族苗族自治县', '520326', '0852', 2738, 'Wuchuan Gelao and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2748, '凤冈县', '520327', '0852', 2738, 'Fenggang');
+INSERT INTO `t_region` VALUES (2749, '湄潭县', '520328', '0852', 2738, 'Meitan');
+INSERT INTO `t_region` VALUES (2750, '余庆县', '520329', '0852', 2738, 'Yuqing');
+INSERT INTO `t_region` VALUES (2751, '习水县', '520330', '0852', 2738, 'Xishui');
+INSERT INTO `t_region` VALUES (2752, '赤水市', '520381', '0852', 2738, 'Chishui');
+INSERT INTO `t_region` VALUES (2753, '仁怀市', '520382', '0852', 2738, 'Renhuai');
+INSERT INTO `t_region` VALUES (2754, '安顺市', '520400', '0853', 2720, 'Anshun');
+INSERT INTO `t_region` VALUES (2755, '安顺市市辖区', '520401', '0853', 2754, 'Anshun municipal');
+INSERT INTO `t_region` VALUES (2756, '西秀区', '520402', '0853', 2754, 'Xixiu');
+INSERT INTO `t_region` VALUES (2757, '平坝区', '520403', '0853', 2754, 'Pingba area');
+INSERT INTO `t_region` VALUES (2758, '普定县', '520422', '0853', 2754, 'Puding');
+INSERT INTO `t_region` VALUES (2759, '镇宁布依族苗族自治县', '520423', '0853', 2754, 'Bouyei-Miao Autonomousof Zhenning ');
+INSERT INTO `t_region` VALUES (2760, '关岭布依族苗族自治县', '520424', '0853', 2754, 'Guanling');
+INSERT INTO `t_region` VALUES (2761, '紫云苗族布依族自治县', '520425', '0853', 2754, 'Bouyei-Miao Autonomousof Ziyun ');
+INSERT INTO `t_region` VALUES (2762, '毕节市', '520500', '0857', 2720, 'Bijie City');
+INSERT INTO `t_region` VALUES (2763, '七星关区', '520502', '0857', 2762, 'Qixingguan');
+INSERT INTO `t_region` VALUES (2764, '大方县', '520521', '0857', 2762, 'Dafang');
+INSERT INTO `t_region` VALUES (2765, '黔西县', '520522', '0857', 2762, 'Qianxi');
+INSERT INTO `t_region` VALUES (2766, '金沙县', '520523', '0857', 2762, 'Jinsha');
+INSERT INTO `t_region` VALUES (2767, '织金县', '520524', '0857', 2762, 'Zhijin');
+INSERT INTO `t_region` VALUES (2768, '纳雍县', '520525', '0857', 2762, 'Nayong');
+INSERT INTO `t_region` VALUES (2769, '威宁彝族回族苗族自治县', '520526', '0857', 2762, 'Yi-Hui-Miao Autonomousof Weining ');
+INSERT INTO `t_region` VALUES (2770, '赫章县', '520527', '0857', 2762, 'Hezhang');
+INSERT INTO `t_region` VALUES (2771, '铜仁市', '520600', '0856', 2720, 'Tongren');
+INSERT INTO `t_region` VALUES (2772, '碧江区', '520602', '0856', 2771, 'Bijiang');
+INSERT INTO `t_region` VALUES (2773, '万山区', '520603', '0856', 2771, 'Wanshan');
+INSERT INTO `t_region` VALUES (2774, '江口县', '520621', '0856', 2771, 'Jiangkou');
+INSERT INTO `t_region` VALUES (2775, '玉屏侗族自治县', '520622', '0856', 2771, 'Yuping Dong Autonomous');
+INSERT INTO `t_region` VALUES (2776, '石阡县', '520623', '0856', 2771, 'Shiqian');
+INSERT INTO `t_region` VALUES (2777, '思南县', '520624', '0856', 2771, 'Sinan');
+INSERT INTO `t_region` VALUES (2778, '印江土家族苗族自治县', '520625', '0856', 2771, 'Yinjiang Tujia and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2779, '德江县', '520626', '0856', 2771, 'Dejiang');
+INSERT INTO `t_region` VALUES (2780, '沿河土家族自治县', '520627', '0856', 2771, 'Yanhe');
+INSERT INTO `t_region` VALUES (2781, '松桃苗族自治县', '520628', '0856', 2771, 'Miao Autonomousof Songtao ');
+INSERT INTO `t_region` VALUES (2782, '黔西南布依族苗族自治州', '522300', '0859', 2720, 'Qianxinan Buyei and Miao Autonomous Prefecture');
+INSERT INTO `t_region` VALUES (2783, '兴义市', '522301', '0859', 2782, 'Xingyi');
+INSERT INTO `t_region` VALUES (2784, '兴仁县', '522322', '0859', 2782, 'Xingren');
+INSERT INTO `t_region` VALUES (2785, '普安县', '522323', '0859', 2782, 'Pu’an');
+INSERT INTO `t_region` VALUES (2786, '晴隆县', '522324', '0859', 2782, 'Qinglong');
+INSERT INTO `t_region` VALUES (2787, '贞丰县', '522325', '0859', 2782, 'Zhenfeng');
+INSERT INTO `t_region` VALUES (2788, '望谟县', '522326', '0859', 2782, 'Wangmo');
+INSERT INTO `t_region` VALUES (2789, '册亨县', '522327', '0859', 2782, 'Ceheng');
+INSERT INTO `t_region` VALUES (2790, '安龙县', '522328', '0859', 2782, 'Anlong');
+INSERT INTO `t_region` VALUES (2791, '黔东南苗族侗族自治州', '522600', '0855', 2720, 'Miao-Dong Autonomous Prefecture of Qiandongnan ');
+INSERT INTO `t_region` VALUES (2792, '凯里市', '522601', '0855', 2791, 'Kaili');
+INSERT INTO `t_region` VALUES (2793, '黄平县', '522622', '0855', 2791, 'Huangping');
+INSERT INTO `t_region` VALUES (2794, '施秉县', '522623', '0855', 2791, 'Shibing');
+INSERT INTO `t_region` VALUES (2795, '三穗县', '522624', '0855', 2791, 'Sansui');
+INSERT INTO `t_region` VALUES (2796, '镇远县', '522625', '0855', 2791, 'Zhenyuan');
+INSERT INTO `t_region` VALUES (2797, '岑巩县', '522626', '0855', 2791, 'Cengong');
+INSERT INTO `t_region` VALUES (2798, '天柱县', '522627', '0855', 2791, 'Tianzhu');
+INSERT INTO `t_region` VALUES (2799, '锦屏县', '522628', '0855', 2791, 'Jinping');
+INSERT INTO `t_region` VALUES (2800, '剑河县', '522629', '0855', 2791, 'Jianhe');
+INSERT INTO `t_region` VALUES (2801, '台江县', '522630', '0855', 2791, 'Taijiang');
+INSERT INTO `t_region` VALUES (2802, '黎平县', '522631', '0855', 2791, 'Liping');
+INSERT INTO `t_region` VALUES (2803, '榕江县', '522632', '0855', 2791, 'Rongjiang');
+INSERT INTO `t_region` VALUES (2804, '从江县', '522633', '0855', 2791, 'Congjiang');
+INSERT INTO `t_region` VALUES (2805, '雷山县', '522634', '0855', 2791, 'Leishan');
+INSERT INTO `t_region` VALUES (2806, '麻江县', '522635', '0855', 2791, 'Majiang');
+INSERT INTO `t_region` VALUES (2807, '丹寨县', '522636', '0855', 2791, 'Danzhai');
+INSERT INTO `t_region` VALUES (2808, '黔南布依族苗族自治州', '522700', '0854', 2720, 'Qiannan');
+INSERT INTO `t_region` VALUES (2809, '都匀市', '522701', '0854', 2808, 'Duyun');
+INSERT INTO `t_region` VALUES (2810, '福泉市', '522702', '0854', 2808, 'fuquan');
+INSERT INTO `t_region` VALUES (2811, '荔波县', '522722', '0854', 2808, 'Libo');
+INSERT INTO `t_region` VALUES (2812, '贵定县', '522723', '0854', 2808, 'Guiding');
+INSERT INTO `t_region` VALUES (2813, '瓮安县', '522725', '0854', 2808, 'Weng’an');
+INSERT INTO `t_region` VALUES (2814, '独山县', '522726', '0854', 2808, 'DuShan');
+INSERT INTO `t_region` VALUES (2815, '平塘县', '522727', '0854', 2808, 'Pingtang');
+INSERT INTO `t_region` VALUES (2816, '罗甸县', '522728', '0854', 2808, 'Luodian');
+INSERT INTO `t_region` VALUES (2817, '长顺县', '522729', '0854', 2808, 'Changshun');
+INSERT INTO `t_region` VALUES (2818, '龙里县', '522730', '0854', 2808, 'Longli');
+INSERT INTO `t_region` VALUES (2819, '惠水县', '522731', '0854', 2808, 'Huishui');
+INSERT INTO `t_region` VALUES (2820, '三都水族自治县', '522732', '0854', 2808, 'Shui Antonomousof Sandu ');
+INSERT INTO `t_region` VALUES (2821, '云南省', '530000', '', 0, 'Yunnan Province ');
+INSERT INTO `t_region` VALUES (2822, '昆明市', '530100', '0871', 2821, 'Kunming');
+INSERT INTO `t_region` VALUES (2823, '昆明市市辖区', '530101', '0871', 2822, 'Kunming municipal');
+INSERT INTO `t_region` VALUES (2824, '五华区', '530102', '0871', 2822, 'wuhua');
+INSERT INTO `t_region` VALUES (2825, '盘龙区', '530103', '0871', 2822, 'Panlong area');
+INSERT INTO `t_region` VALUES (2826, '官渡区', '530111', '0871', 2822, 'Guandu');
+INSERT INTO `t_region` VALUES (2827, '西山区', '530112', '0871', 2822, 'Xishan');
+INSERT INTO `t_region` VALUES (2828, '东川区', '530113', '0871', 2822, 'Dongchuan');
+INSERT INTO `t_region` VALUES (2829, '呈贡区', '530114', '0871', 2822, 'Chenggong');
+INSERT INTO `t_region` VALUES (2830, '晋宁区', '530115', '0871', 2822, 'Jinning');
+INSERT INTO `t_region` VALUES (2831, '富民县', '530124', '0871', 2822, 'Fumin');
+INSERT INTO `t_region` VALUES (2832, '宜良县', '530125', '0871', 2822, 'Yiliang');
+INSERT INTO `t_region` VALUES (2833, '石林彝族自治县', '530126', '0871', 2822, 'Shilin Yi Autonomous');
+INSERT INTO `t_region` VALUES (2834, '嵩明县', '530127', '0871', 2822, 'Songming');
+INSERT INTO `t_region` VALUES (2835, '禄劝彝族苗族自治县', '530128', '0871', 2822, 'Luquan Yi and Miao Autonomous');
+INSERT INTO `t_region` VALUES (2836, '寻甸回族彝族自治县', '530129', '0871', 2822, 'Xundian');
+INSERT INTO `t_region` VALUES (2837, '安宁市', '530181', '0871', 2822, 'Anning');
+INSERT INTO `t_region` VALUES (2838, '曲靖市', '530300', '0874', 2821, 'Qujing');
+INSERT INTO `t_region` VALUES (2839, '曲靖市市辖区', '530301', '0874', 2838, 'Qujing municipal');
+INSERT INTO `t_region` VALUES (2840, '麒麟区', '530302', '0874', 2838, 'Qilin');
+INSERT INTO `t_region` VALUES (2841, '马龙县', '530321', '0874', 2838, 'Malong');
+INSERT INTO `t_region` VALUES (2842, '陆良县', '530322', '0874', 2838, 'Luliang');
+INSERT INTO `t_region` VALUES (2843, '师宗县', '530323', '0874', 2838, 'Shizong');
+INSERT INTO `t_region` VALUES (2844, '罗平县', '530324', '0874', 2838, 'Luoping');
+INSERT INTO `t_region` VALUES (2845, '富源县', '530325', '0874', 2838, 'Fuyuan');
+INSERT INTO `t_region` VALUES (2846, '会泽县', '530326', '0874', 2838, 'Huize');
+INSERT INTO `t_region` VALUES (2847, '沾益区', '530303', '0874', 2838, 'Zhanyi');
+INSERT INTO `t_region` VALUES (2848, '宣威市', '530381', '0874', 2838, 'xuanwei city');
+INSERT INTO `t_region` VALUES (2849, '玉溪市', '530400', '0877', 2821, 'YuXi');
+INSERT INTO `t_region` VALUES (2850, '玉溪市市辖区', '530401', '0877', 2849, 'Yuxi municipal');
+INSERT INTO `t_region` VALUES (2851, '红塔区', '530402', '0877', 2849, 'Hongta');
+INSERT INTO `t_region` VALUES (2852, '江川区', '530403', '0877', 2849, 'Jiangchuan');
+INSERT INTO `t_region` VALUES (2853, '澄江县', '530422', '0877', 2849, 'Chengjiang');
+INSERT INTO `t_region` VALUES (2854, '通海县', '530423', '0877', 2849, 'Tonghai');
+INSERT INTO `t_region` VALUES (2855, '华宁县', '530424', '0877', 2849, 'Huaning');
+INSERT INTO `t_region` VALUES (2856, '易门县', '530425', '0877', 2849, 'Yimen');
+INSERT INTO `t_region` VALUES (2857, '峨山彝族自治县', '530426', '0877', 2849, 'Yi Autonomousof Eshan ');
+INSERT INTO `t_region` VALUES (2858, '新平彝族傣族自治县', '530427', '0877', 2849, 'Xinping Yi and Dai Autonomous');
+INSERT INTO `t_region` VALUES (2859, '元江哈尼族彝族傣族自治县', '530428', '0877', 2849, 'Yi nationality and Dai Autonomousof Yuanjiang Hani Nationality');
+INSERT INTO `t_region` VALUES (2860, '保山市', '530500', '0875', 2821, 'baoshan');
+INSERT INTO `t_region` VALUES (2861, '保山市市辖区', '530501', '0875', 2860, 'Baoshan municipal');
+INSERT INTO `t_region` VALUES (2862, '隆阳区', '530502', '0875', 2860, 'Longyang');
+INSERT INTO `t_region` VALUES (2863, '施甸县', '530521', '0875', 2860, 'Shidian');
+INSERT INTO `t_region` VALUES (2864, '腾冲市', '530581', '0875', 2860, 'Tengchong City');
+INSERT INTO `t_region` VALUES (2865, '龙陵县', '530523', '0875', 2860, 'Longling');
+INSERT INTO `t_region` VALUES (2866, '昌宁县', '530524', '0875', 2860, 'Changning');
+INSERT INTO `t_region` VALUES (2867, '昭通市', '530600', '0870', 2821, 'zhaotong');
+INSERT INTO `t_region` VALUES (2868, '昭通市市辖区', '530601', '0870', 2867, 'Zhaotong municipal');
+INSERT INTO `t_region` VALUES (2869, '昭阳区', '530602', '0870', 2867, 'Zhaoyang');
+INSERT INTO `t_region` VALUES (2870, '鲁甸县', '530621', '0870', 2867, 'Ludian');
+INSERT INTO `t_region` VALUES (2871, '巧家县', '530622', '0870', 2867, 'Qiaojia');
+INSERT INTO `t_region` VALUES (2872, '盐津县', '530623', '0870', 2867, 'Yanjin');
+INSERT INTO `t_region` VALUES (2873, '大关县', '530624', '0870', 2867, 'Daguan');
+INSERT INTO `t_region` VALUES (2874, '永善县', '530625', '0870', 2867, 'Yongshan');
+INSERT INTO `t_region` VALUES (2875, '绥江县', '530626', '0870', 2867, 'Suijiang');
+INSERT INTO `t_region` VALUES (2876, '镇雄县', '530627', '0870', 2867, 'Zhenxiong');
+INSERT INTO `t_region` VALUES (2877, '彝良县', '530628', '0870', 2867, 'Yiliang');
+INSERT INTO `t_region` VALUES (2878, '威信县', '530629', '0870', 2867, 'Weixin');
+INSERT INTO `t_region` VALUES (2879, '水富县', '530630', '0870', 2867, 'Shuifu');
+INSERT INTO `t_region` VALUES (2880, '丽江市', '530700', '0888', 2821, 'lijiang');
+INSERT INTO `t_region` VALUES (2881, '丽江市市辖区', '530701', '0888', 2880, 'Lijiang municipal');
+INSERT INTO `t_region` VALUES (2882, '古城区', '530702', '0888', 2880, 'old town');
+INSERT INTO `t_region` VALUES (2883, '玉龙纳西族自治县', '530721', '0888', 2880, 'Yulong Naxi Autonomous');
+INSERT INTO `t_region` VALUES (2884, '永胜县', '530722', '0888', 2880, 'Yongsheng');
+INSERT INTO `t_region` VALUES (2885, '华坪县', '530723', '0888', 2880, 'Huaping');
+INSERT INTO `t_region` VALUES (2886, '宁蒗彝族自治县', '530724', '0888', 2880, 'Yi Autonomousof Ninglang ');
+INSERT INTO `t_region` VALUES (2887, '普洱市', '530800', '0879', 2821, 'Pu\'er City');
+INSERT INTO `t_region` VALUES (2888, '普洱市市辖区', '530801', '0879', 2887, 'Pu\'er City');
+INSERT INTO `t_region` VALUES (2889, '思茅区', '530802', '0879', 2887, 'Simao');
+INSERT INTO `t_region` VALUES (2890, '宁洱哈尼族彝族自治县', '530821', '0879', 2887, 'Ning\'er');
+INSERT INTO `t_region` VALUES (2891, '墨江哈尼族自治县', '530822', '0879', 2887, 'Mojiang Hani Autonomous');
+INSERT INTO `t_region` VALUES (2892, '景东彝族自治县', '530823', '0879', 2887, 'Jingdong Yi Autonomous');
+INSERT INTO `t_region` VALUES (2893, '景谷傣族彝族自治县', '530824', '0879', 2887, 'Jinggu');
+INSERT INTO `t_region` VALUES (2894, '镇沅彝族哈尼族拉祜族自治县', '530825', '0879', 2887, 'Hani ethnic Lahu Autonomousof Zhenyuan Yi Nationality');
+INSERT INTO `t_region` VALUES (2895, '江城哈尼族彝族自治县', '530826', '0879', 2887, 'Hani-Yi Autonomousof Jiangcheng ');
+INSERT INTO `t_region` VALUES (2896, '孟连傣族拉祜族佤族自治县', '530827', '0879', 2887, 'Dai-Lahu-Va Autonomousof Menglian ');
+INSERT INTO `t_region` VALUES (2897, '澜沧拉祜族自治县', '530828', '0879', 2887, 'Lahu Autonomousof Lancang ');
+INSERT INTO `t_region` VALUES (2898, '西盟佤族自治县', '530829', '0879', 2887, 'Ximeng Vazu Zizhixian');
+INSERT INTO `t_region` VALUES (2899, '临沧市', '530900', '0883', 2821, 'Lincang City');
+INSERT INTO `t_region` VALUES (2900, '临沧市市辖区', '530901', '0883', 2899, 'Lincang City');
+INSERT INTO `t_region` VALUES (2901, '临翔区', '530902', '0883', 2899, 'Linxiang');
+INSERT INTO `t_region` VALUES (2902, '凤庆县', '530921', '0883', 2899, 'Fengqing');
+INSERT INTO `t_region` VALUES (2903, '云县', '530922', '0883', 2899, 'Yunxian');
+INSERT INTO `t_region` VALUES (2904, '永德县', '530923', '0883', 2899, 'Yongde');
+INSERT INTO `t_region` VALUES (2905, '镇康县', '530924', '0883', 2899, 'Zhenkang');
+INSERT INTO `t_region` VALUES (2906, '双江拉祜族佤族布朗族傣族自治县', '530925', '0883', 2899, 'Shuang Jiang Lahu nationality Wa nationality and Dai Nationality Autonomousof Brown nationality');
+INSERT INTO `t_region` VALUES (2907, '耿马傣族佤族自治县', '530926', '0883', 2899, 'Dai-Va Autonomousof Gengma ');
+INSERT INTO `t_region` VALUES (2908, '沧源佤族自治县', '530927', '0883', 2899, 'Va Autonomousof Cangyuan ');
+INSERT INTO `t_region` VALUES (2909, '楚雄彝族自治州', '532300', '0878', 2821, 'Yi Autonomous Prefecture of Chuxiong ');
+INSERT INTO `t_region` VALUES (2910, '楚雄市', '532301', '0878', 2909, 'Chuxiong City');
+INSERT INTO `t_region` VALUES (2911, '双柏县', '532322', '0878', 2909, 'Shuangbai');
+INSERT INTO `t_region` VALUES (2912, '牟定县', '532323', '0878', 2909, 'Mouding');
+INSERT INTO `t_region` VALUES (2913, '南华县', '532324', '0878', 2909, 'Nanhua');
+INSERT INTO `t_region` VALUES (2914, '姚安县', '532325', '0878', 2909, 'Yao’an');
+INSERT INTO `t_region` VALUES (2915, '大姚县', '532326', '0878', 2909, 'Dayao');
+INSERT INTO `t_region` VALUES (2916, '永仁县', '532327', '0878', 2909, 'Yongren');
+INSERT INTO `t_region` VALUES (2917, '元谋县', '532328', '0878', 2909, 'Yuanmou');
+INSERT INTO `t_region` VALUES (2918, '武定县', '532329', '0878', 2909, 'Wuding');
+INSERT INTO `t_region` VALUES (2919, '禄丰县', '532331', '0878', 2909, 'Lufeng');
+INSERT INTO `t_region` VALUES (2920, '红河哈尼族彝族自治州', '532500', '0873', 2821, 'Hani-Yi Autonomous Prefecture of Honghe ');
+INSERT INTO `t_region` VALUES (2921, '个旧市', '532501', '0873', 2920, 'Gejiu');
+INSERT INTO `t_region` VALUES (2922, '开远市', '532502', '0873', 2920, 'Kaiyuan');
+INSERT INTO `t_region` VALUES (2923, '蒙自市', '532503', '0873', 2920, 'Mengzi City');
+INSERT INTO `t_region` VALUES (2924, '弥勒市', '532504', '0873', 2920, 'Maitreya City');
+INSERT INTO `t_region` VALUES (2925, '屏边苗族自治县', '532523', '0873', 2920, 'Miao Autonomousof Pingbian ');
+INSERT INTO `t_region` VALUES (2926, '建水县', '532524', '0873', 2920, 'Jianshui');
+INSERT INTO `t_region` VALUES (2927, '石屏县', '532525', '0873', 2920, 'Shiping');
+INSERT INTO `t_region` VALUES (2928, '泸西县', '532527', '0873', 2920, 'Luxi');
+INSERT INTO `t_region` VALUES (2929, '元阳县', '532528', '0873', 2920, 'Yuanyang');
+INSERT INTO `t_region` VALUES (2930, '红河县', '532529', '0873', 2920, 'Honghe');
+INSERT INTO `t_region` VALUES (2931, '金平苗族瑶族傣族自治县', '532530', '0873', 2920, 'Jinping Miao nationality, Yao and Dai Autonomous');
+INSERT INTO `t_region` VALUES (2932, '绿春县', '532531', '0873', 2920, 'Lüchun');
+INSERT INTO `t_region` VALUES (2933, '河口瑶族自治县', '532532', '0873', 2920, 'Yao Autonomousof Hekou ');
+INSERT INTO `t_region` VALUES (2934, '文山壮族苗族自治州', '532600', '0876', 2821, 'Zhuang-Miao Autonomous Prefecture of Wenshan ');
+INSERT INTO `t_region` VALUES (2935, '文山市', '532601', '0876', 2934, 'Wenshan City');
+INSERT INTO `t_region` VALUES (2936, '砚山县', '532622', '0876', 2934, 'Yanshan');
+INSERT INTO `t_region` VALUES (2937, '西畴县', '532623', '0876', 2934, 'Xichou');
+INSERT INTO `t_region` VALUES (2938, '麻栗坡县', '532624', '0876', 2934, 'Malipo');
+INSERT INTO `t_region` VALUES (2939, '马关县', '532625', '0876', 2934, 'Maguan');
+INSERT INTO `t_region` VALUES (2940, '丘北县', '532626', '0876', 2934, 'Qiubei');
+INSERT INTO `t_region` VALUES (2941, '广南县', '532627', '0876', 2934, 'Guangnan');
+INSERT INTO `t_region` VALUES (2942, '富宁县', '532628', '0876', 2934, 'Funing');
+INSERT INTO `t_region` VALUES (2943, '西双版纳傣族自治州', '532800', '0691', 2821, 'Dai Autonomous Prefecture of Xishuangbanna ');
+INSERT INTO `t_region` VALUES (2944, '景洪市', '532801', '0691', 2943, 'Jinghong City');
+INSERT INTO `t_region` VALUES (2945, '勐海县', '532822', '0691', 2943, 'Menghai');
+INSERT INTO `t_region` VALUES (2946, '勐腊县', '532823', '0691', 2943, 'Mengla');
+INSERT INTO `t_region` VALUES (2947, '大理白族自治州', '532900', '0872', 2821, 'Bai Autonomous Prefecture of Dali ');
+INSERT INTO `t_region` VALUES (2948, '大理市', '532901', '0872', 2947, 'Dali City');
+INSERT INTO `t_region` VALUES (2949, '漾濞彝族自治县', '532922', '0872', 2947, 'Yangbi');
+INSERT INTO `t_region` VALUES (2950, '祥云县', '532923', '0872', 2947, 'Xiangyun');
+INSERT INTO `t_region` VALUES (2951, '宾川县', '532924', '0872', 2947, 'Binchuan');
+INSERT INTO `t_region` VALUES (2952, '弥渡县', '532925', '0872', 2947, 'Midu');
+INSERT INTO `t_region` VALUES (2953, '南涧彝族自治县', '532926', '0872', 2947, 'Yi Autonomousof Nanjian ');
+INSERT INTO `t_region` VALUES (2954, '巍山彝族回族自治县', '532927', '0872', 2947, 'Yi-Hui Autonomousof Weishan ');
+INSERT INTO `t_region` VALUES (2955, '永平县', '532928', '0872', 2947, 'Yongping');
+INSERT INTO `t_region` VALUES (2956, '云龙县', '532929', '0872', 2947, 'Yunlong');
+INSERT INTO `t_region` VALUES (2957, '洱源县', '532930', '0872', 2947, 'Eryuan');
+INSERT INTO `t_region` VALUES (2958, '剑川县', '532931', '0872', 2947, 'Jianchuan');
+INSERT INTO `t_region` VALUES (2959, '鹤庆县', '532932', '0872', 2947, 'Heqing');
+INSERT INTO `t_region` VALUES (2960, '德宏傣族景颇族自治州', '533100', '0692', 2821, 'Dai-Jingpo Autonomous Prefecture of Dehong ');
+INSERT INTO `t_region` VALUES (2961, '瑞丽市', '533102', '0692', 2960, 'Ruili');
+INSERT INTO `t_region` VALUES (2962, '芒市', '533103', '0692', 2960, 'Mangshi ');
+INSERT INTO `t_region` VALUES (2963, '梁河县', '533122', '0692', 2960, 'Lianghe');
+INSERT INTO `t_region` VALUES (2964, '盈江县', '533123', '0692', 2960, 'Yingjiang');
+INSERT INTO `t_region` VALUES (2965, '陇川县', '533124', '0692', 2960, 'Longchuan');
+INSERT INTO `t_region` VALUES (2966, '怒江傈僳族自治州', '533300', '0886', 2821, 'Lisu Autonomous Prefecture of Nujiang ');
+INSERT INTO `t_region` VALUES (2967, '泸水市', '533301', '0886', 2966, 'Lushui City');
+INSERT INTO `t_region` VALUES (2968, '福贡县', '533323', '0886', 2966, 'Fugong');
+INSERT INTO `t_region` VALUES (2969, '贡山独龙族怒族自治县', '533324', '0886', 2966, 'Drung-Nu Autonomousof Gongshan ');
+INSERT INTO `t_region` VALUES (2970, '兰坪白族普米族自治县', '533325', '0886', 2966, 'Lanping');
+INSERT INTO `t_region` VALUES (2971, '迪庆藏族自治州', '533400', '0887', 2821, 'Tibetan Autonomous Prefecture of Dêqên');
+INSERT INTO `t_region` VALUES (2972, '香格里拉市', '533401', '0887', 2971, 'Shangri-La City');
+INSERT INTO `t_region` VALUES (2973, '德钦县', '533422', '0887', 2971, 'Dêqên');
+INSERT INTO `t_region` VALUES (2974, '维西傈僳族自治县', '533423', '0887', 2971, 'Weixi Lisu Autonomous');
+INSERT INTO `t_region` VALUES (2975, '西藏自治区', '540000', '', 0, 'Xizang(Tibet) Autonomous Region');
+INSERT INTO `t_region` VALUES (2976, '拉萨市', '540100', '0891', 2975, 'Lhasa');
+INSERT INTO `t_region` VALUES (2977, '拉萨市市辖区', '540101', '0891', 2976, 'Lhasa municipal');
+INSERT INTO `t_region` VALUES (2978, '城关区', '540102', '0891', 2976, 'Chengguan');
+INSERT INTO `t_region` VALUES (2979, '林周县', '540121', '0891', 2976, 'Lhünzhub');
+INSERT INTO `t_region` VALUES (2980, '当雄县', '540122', '0891', 2976, 'Damxung');
+INSERT INTO `t_region` VALUES (2981, '尼木县', '540123', '0891', 2976, 'Nyêmo');
+INSERT INTO `t_region` VALUES (2982, '曲水县', '540124', '0891', 2976, 'Qüxü');
+INSERT INTO `t_region` VALUES (2983, '堆龙德庆区', '540103', '0891', 2976, 'Duke De Qing');
+INSERT INTO `t_region` VALUES (2984, '达孜县', '540126', '0891', 2976, 'Dagzê');
+INSERT INTO `t_region` VALUES (2985, '墨竹工卡县', '540127', '0891', 2976, 'Maizhokunggar');
+INSERT INTO `t_region` VALUES (2986, '日喀则市', '540200', '0892', 2975, 'Shigatse City');
+INSERT INTO `t_region` VALUES (2987, '桑珠孜区', '540202', '0892', 2986, 'Zan Zhu Zi');
+INSERT INTO `t_region` VALUES (2988, '南木林县', '540221', '0892', 2986, 'Namling');
+INSERT INTO `t_region` VALUES (2989, '江孜县', '540222', '0892', 2986, 'Gyangzê');
+INSERT INTO `t_region` VALUES (2990, '定日县', '540223', '0892', 2986, 'Tingri');
+INSERT INTO `t_region` VALUES (2991, '萨迦县', '540224', '0892', 2986, 'Sa’gya');
+INSERT INTO `t_region` VALUES (2992, '拉孜县', '540225', '0892', 2986, 'Lhazê');
+INSERT INTO `t_region` VALUES (2993, '昂仁县', '540226', '0892', 2986, 'Ngamring');
+INSERT INTO `t_region` VALUES (2994, '谢通门县', '540227', '0892', 2986, 'Xaitongmoin');
+INSERT INTO `t_region` VALUES (2995, '白朗县', '540228', '0892', 2986, 'Bainang');
+INSERT INTO `t_region` VALUES (2996, '仁布县', '540229', '0892', 2986, 'Rinbung');
+INSERT INTO `t_region` VALUES (2997, '康马县', '540230', '0892', 2986, 'Kangmar');
+INSERT INTO `t_region` VALUES (2998, '定结县', '540231', '0892', 2986, 'Dinggyê');
+INSERT INTO `t_region` VALUES (2999, '仲巴县', '540232', '0892', 2986, 'Zhongba');
+INSERT INTO `t_region` VALUES (3000, '亚东县', '540233', '0892', 2986, 'Yadong');
+INSERT INTO `t_region` VALUES (3001, '吉隆县', '540234', '0892', 2986, 'Gyirong');
+INSERT INTO `t_region` VALUES (3002, '聂拉木县', '540235', '0892', 2986, 'Nyalam');
+INSERT INTO `t_region` VALUES (3003, '萨嘎县', '540236', '0892', 2986, 'Saga');
+INSERT INTO `t_region` VALUES (3004, '岗巴县', '540237', '0892', 2986, 'Gamba');
+INSERT INTO `t_region` VALUES (3005, '昌都市', '540300', '0895', 2975, 'Changcheng');
+INSERT INTO `t_region` VALUES (3006, '卡若区', '540302', '0895', 3005, 'QaN');
+INSERT INTO `t_region` VALUES (3007, '江达县', '540321', '0895', 3005, 'Jomda');
+INSERT INTO `t_region` VALUES (3008, '贡觉县', '540322', '0895', 3005, 'Gonjo');
+INSERT INTO `t_region` VALUES (3009, '类乌齐县', '540323', '0895', 3005, 'Riwoqê');
+INSERT INTO `t_region` VALUES (3010, '丁青县', '540324', '0895', 3005, 'Dêngqên');
+INSERT INTO `t_region` VALUES (3011, '察雅县', '540325', '0895', 3005, 'Chag’yab');
+INSERT INTO `t_region` VALUES (3012, '八宿县', '540326', '0895', 3005, 'Baxoi');
+INSERT INTO `t_region` VALUES (3013, '左贡县', '540327', '0895', 3005, 'Zogang');
+INSERT INTO `t_region` VALUES (3014, '芒康县', '540328', '0895', 3005, 'Markam');
+INSERT INTO `t_region` VALUES (3015, '洛隆县', '540329', '0895', 3005, 'Lhorong');
+INSERT INTO `t_region` VALUES (3016, '边坝县', '540330', '0895', 3005, 'Banbar');
+INSERT INTO `t_region` VALUES (3017, '山南市', '540500', '0893', 2975, 'Shannan City');
+INSERT INTO `t_region` VALUES (3018, '乃东区', '540502', '0893', 3017, 'Nai Dong');
+INSERT INTO `t_region` VALUES (3019, '扎囊县', '540521', '0893', 3017, 'Zhanang');
+INSERT INTO `t_region` VALUES (3020, '贡嘎县', '540522', '0893', 3017, 'Gonggar');
+INSERT INTO `t_region` VALUES (3021, '桑日县', '540523', '0893', 3017, 'Sangri');
+INSERT INTO `t_region` VALUES (3022, '琼结县', '540524', '0893', 3017, 'Qonggyai');
+INSERT INTO `t_region` VALUES (3023, '曲松县', '540525', '0893', 3017, 'Qusum');
+INSERT INTO `t_region` VALUES (3024, '措美县', '540526', '0893', 3017, 'Comai');
+INSERT INTO `t_region` VALUES (3025, '洛扎县', '540527', '0893', 3017, 'Lhozhag');
+INSERT INTO `t_region` VALUES (3026, '加查县', '540528', '0893', 3017, 'Gyaca');
+INSERT INTO `t_region` VALUES (3027, '隆子县', '540529', '0893', 3017, 'Lhünzê');
+INSERT INTO `t_region` VALUES (3028, '错那县', '540530', '0893', 3017, 'Cona');
+INSERT INTO `t_region` VALUES (3029, '浪卡子县', '540531', '0893', 3017, 'Nagarzê');
+INSERT INTO `t_region` VALUES (3030, '那曲地区', '542400', '0896', 2975, 'Nagqu Prefecture ');
+INSERT INTO `t_region` VALUES (3031, '那曲县', '542421', '0896', 3030, 'Nagqu');
+INSERT INTO `t_region` VALUES (3032, '嘉黎县', '542422', '0896', 3030, 'Lhari');
+INSERT INTO `t_region` VALUES (3033, '比如县', '542423', '0896', 3030, 'Biru');
+INSERT INTO `t_region` VALUES (3034, '聂荣县', '542424', '0896', 3030, 'Nyainrong');
+INSERT INTO `t_region` VALUES (3035, '安多县', '542425', '0896', 3030, 'Amdo');
+INSERT INTO `t_region` VALUES (3036, '申扎县', '542426', '0896', 3030, 'Xainza');
+INSERT INTO `t_region` VALUES (3037, '索县', '542427', '0896', 3030, 'Sog');
+INSERT INTO `t_region` VALUES (3038, '班戈县', '542428', '0896', 3030, 'Baingoin');
+INSERT INTO `t_region` VALUES (3039, '巴青县', '542429', '0896', 3030, 'Baqên');
+INSERT INTO `t_region` VALUES (3040, '尼玛县', '542430', '0896', 3030, 'Nyima');
+INSERT INTO `t_region` VALUES (3041, '双湖县', '542431', '0896', 3030, 'Double Lake');
+INSERT INTO `t_region` VALUES (3042, '阿里地区', '542500', '0897', 2975, 'Ngari Prefecture ');
+INSERT INTO `t_region` VALUES (3043, '普兰县', '542521', '0897', 3042, 'Burang');
+INSERT INTO `t_region` VALUES (3044, '札达县', '542522', '0897', 3042, 'Zanda');
+INSERT INTO `t_region` VALUES (3045, '噶尔县', '542523', '0897', 3042, 'Gar');
+INSERT INTO `t_region` VALUES (3046, '日土县', '542524', '0897', 3042, 'Rutog');
+INSERT INTO `t_region` VALUES (3047, '革吉县', '542525', '0897', 3042, 'Gê’gya');
+INSERT INTO `t_region` VALUES (3048, '改则县', '542526', '0897', 3042, 'Gêrzê');
+INSERT INTO `t_region` VALUES (3049, '措勤县', '542527', '0897', 3042, 'Coqen');
+INSERT INTO `t_region` VALUES (3050, '林芝市', '540400', '0894', 2975, 'Linzhi City');
+INSERT INTO `t_region` VALUES (3051, '巴宜区', '540402', '0894', 3050, 'Ba Yi');
+INSERT INTO `t_region` VALUES (3052, '工布江达县', '540421', '0894', 3050, 'Gongbo’gvamda');
+INSERT INTO `t_region` VALUES (3053, '米林县', '540422', '0894', 3050, 'Mainling');
+INSERT INTO `t_region` VALUES (3054, '墨脱县', '540423', '0894', 3050, 'Mêdog');
+INSERT INTO `t_region` VALUES (3055, '波密县', '540424', '0894', 3050, 'Bomi');
+INSERT INTO `t_region` VALUES (3056, '察隅县', '540425', '0894', 3050, 'Zayü');
+INSERT INTO `t_region` VALUES (3057, '朗县', '540426', '0894', 3050, 'Nangxian');
+INSERT INTO `t_region` VALUES (3058, '陕西省', '610000', '', 0, 'Shaanxi Province');
+INSERT INTO `t_region` VALUES (3059, '西安市', '610100', '029', 3058, 'Xi’an City');
+INSERT INTO `t_region` VALUES (3060, '西安市市辖区', '610101', '029', 3059, 'Xi\'an municipal');
+INSERT INTO `t_region` VALUES (3061, '新城区', '610102', '029', 3059, 'New urban area');
+INSERT INTO `t_region` VALUES (3062, '碑林区', '610103', '029', 3059, 'Forest of steles');
+INSERT INTO `t_region` VALUES (3063, '莲湖区', '610104', '029', 3059, 'Lianhu area');
+INSERT INTO `t_region` VALUES (3064, '灞桥区', '610111', '029', 3059, 'Baqiao');
+INSERT INTO `t_region` VALUES (3065, '未央区', '610112', '029', 3059, 'No central area');
+INSERT INTO `t_region` VALUES (3066, '雁塔区', '610113', '029', 3059, 'Yanta area');
+INSERT INTO `t_region` VALUES (3067, '阎良区', '610114', '029', 3059, 'yanliang');
+INSERT INTO `t_region` VALUES (3068, '临潼区', '610115', '029', 3059, 'Lintong');
+INSERT INTO `t_region` VALUES (3069, '长安区', '610116', '029', 3059, 'Changan');
+INSERT INTO `t_region` VALUES (3070, '高陵区', '610117', '029', 3059, 'Gaoling');
+INSERT INTO `t_region` VALUES (3071, '蓝田县', '610122', '029', 3059, 'Lantian');
+INSERT INTO `t_region` VALUES (3072, '周至县', '610124', '029', 3059, 'Zhouzhi');
+INSERT INTO `t_region` VALUES (3073, '鄠邑区', '610118', '029', 3059, 'Yi Yi');
+INSERT INTO `t_region` VALUES (3074, '铜川市', '610200', '0919', 3058, 'Tongchuan');
+INSERT INTO `t_region` VALUES (3075, '铜川市市辖区', '610201', '0919', 3074, 'Tongchuan municipal');
+INSERT INTO `t_region` VALUES (3076, '王益区', '610202', '0919', 3074, 'Wangyi');
+INSERT INTO `t_region` VALUES (3077, '印台区', '610203', '0919', 3074, 'Yintai');
+INSERT INTO `t_region` VALUES (3078, '耀州区', '610204', '0919', 3074, 'Yaozhou');
+INSERT INTO `t_region` VALUES (3079, '宜君县', '610222', '0919', 3074, 'Yijun');
+INSERT INTO `t_region` VALUES (3080, '宝鸡市', '610300', '0917', 3058, 'Baoji');
+INSERT INTO `t_region` VALUES (3081, '宝鸡市市辖区', '610301', '0917', 3080, 'Baoji municipal');
+INSERT INTO `t_region` VALUES (3082, '渭滨区', '610302', '0917', 3080, 'Weibin');
+INSERT INTO `t_region` VALUES (3083, '金台区', '610303', '0917', 3080, 'Jintai');
+INSERT INTO `t_region` VALUES (3084, '陈仓区', '610304', '0917', 3080, 'Chencang');
+INSERT INTO `t_region` VALUES (3085, '凤翔县', '610322', '0917', 3080, 'Fengxiang');
+INSERT INTO `t_region` VALUES (3086, '岐山县', '610323', '0917', 3080, 'Qishan');
+INSERT INTO `t_region` VALUES (3087, '扶风县', '610324', '0917', 3080, 'Fufeng');
+INSERT INTO `t_region` VALUES (3088, '眉县', '610326', '0917', 3080, 'Meixian');
+INSERT INTO `t_region` VALUES (3089, '陇县', '610327', '0917', 3080, 'Longxian');
+INSERT INTO `t_region` VALUES (3090, '千阳县', '610328', '0917', 3080, 'Qianyang');
+INSERT INTO `t_region` VALUES (3091, '麟游县', '610329', '0917', 3080, 'Linyou');
+INSERT INTO `t_region` VALUES (3092, '凤县', '610330', '0917', 3080, 'Fengxian');
+INSERT INTO `t_region` VALUES (3093, '太白县', '610331', '0917', 3080, 'Taibai');
+INSERT INTO `t_region` VALUES (3094, '咸阳市', '610400', '0910', 3058, 'Xianyang');
+INSERT INTO `t_region` VALUES (3095, '咸阳市市辖区', '610401', '0910', 3094, 'Xianyang municipal');
+INSERT INTO `t_region` VALUES (3096, '秦都区', '610402', '0910', 3094, 'Qin Du');
+INSERT INTO `t_region` VALUES (3097, '杨陵区', '610403', '0910', 3094, 'Yangling');
+INSERT INTO `t_region` VALUES (3098, '渭城区', '610404', '0910', 3094, 'Weicheng');
+INSERT INTO `t_region` VALUES (3099, '三原县', '610422', '0910', 3094, 'Sanyuan');
+INSERT INTO `t_region` VALUES (3100, '泾阳县', '610423', '0910', 3094, 'Jingyang');
+INSERT INTO `t_region` VALUES (3101, '乾县', '610424', '0910', 3094, 'Qianxian');
+INSERT INTO `t_region` VALUES (3102, '礼泉县', '610425', '0910', 3094, 'Liquan');
+INSERT INTO `t_region` VALUES (3103, '永寿县', '610426', '0910', 3094, 'Yongshou');
+INSERT INTO `t_region` VALUES (3104, '彬县', '610427', '0910', 3094, 'Binxian');
+INSERT INTO `t_region` VALUES (3105, '长武县', '610428', '0910', 3094, 'Changwu');
+INSERT INTO `t_region` VALUES (3106, '旬邑县', '610429', '0910', 3094, 'Xunyi');
+INSERT INTO `t_region` VALUES (3107, '淳化县', '610430', '0910', 3094, 'Chunhua');
+INSERT INTO `t_region` VALUES (3108, '武功县', '610431', '0910', 3094, 'Wugong');
+INSERT INTO `t_region` VALUES (3109, '兴平市', '610481', '0910', 3094, 'xingping');
+INSERT INTO `t_region` VALUES (3110, '渭南市', '610500', '0913', 3058, 'Weinan City');
+INSERT INTO `t_region` VALUES (3111, '渭南市市辖区', '610501', '0913', 3110, 'Weinan municipal');
+INSERT INTO `t_region` VALUES (3112, '临渭区', '610502', '0913', 3110, 'Linwei');
+INSERT INTO `t_region` VALUES (3113, '华州区', '610503', '0913', 3110, 'Hua Zhou');
+INSERT INTO `t_region` VALUES (3114, '潼关县', '610522', '0913', 3110, 'Tongguan');
+INSERT INTO `t_region` VALUES (3115, '大荔县', '610523', '0913', 3110, 'Dali');
+INSERT INTO `t_region` VALUES (3116, '合阳县', '610524', '0913', 3110, 'Heyang');
+INSERT INTO `t_region` VALUES (3117, '澄城县', '610525', '0913', 3110, 'Chengcheng');
+INSERT INTO `t_region` VALUES (3118, '蒲城县', '610526', '0913', 3110, 'Pucheng');
+INSERT INTO `t_region` VALUES (3119, '白水县', '610527', '0913', 3110, 'Baishui');
+INSERT INTO `t_region` VALUES (3120, '富平县', '610528', '0913', 3110, 'Fuping');
+INSERT INTO `t_region` VALUES (3121, '韩城市', '610581', '0913', 3110, 'Hancheng');
+INSERT INTO `t_region` VALUES (3122, '华阴市', '610582', '0913', 3110, 'Huayin');
+INSERT INTO `t_region` VALUES (3123, '延安市', '610600', '0911', 3058, 'Yan’an City');
+INSERT INTO `t_region` VALUES (3124, '延安市市辖区', '610601', '0911', 3123, 'Yanan municipal');
+INSERT INTO `t_region` VALUES (3125, '宝塔区', '610602', '0911', 3123, 'Pagoda');
+INSERT INTO `t_region` VALUES (3126, '延长县', '610621', '0911', 3123, 'Yanchang');
+INSERT INTO `t_region` VALUES (3127, '延川县', '610622', '0911', 3123, 'Yanchuan');
+INSERT INTO `t_region` VALUES (3128, '子长县', '610623', '0911', 3123, 'Zichang');
+INSERT INTO `t_region` VALUES (3129, '安塞区', '610603', '0911', 3123, 'Ansai');
+INSERT INTO `t_region` VALUES (3130, '志丹县', '610625', '0911', 3123, 'Zhidan');
+INSERT INTO `t_region` VALUES (3131, '吴起县', '610626', '0911', 3123, 'Wuqi');
+INSERT INTO `t_region` VALUES (3132, '甘泉县', '610627', '0911', 3123, 'Ganquan');
+INSERT INTO `t_region` VALUES (3133, '富县', '610628', '0911', 3123, 'Fuxian');
+INSERT INTO `t_region` VALUES (3134, '洛川县', '610629', '0911', 3123, 'Luochuan');
+INSERT INTO `t_region` VALUES (3135, '宜川县', '610630', '0911', 3123, 'Yichuan');
+INSERT INTO `t_region` VALUES (3136, '黄龙县', '610631', '0911', 3123, 'Huanglong');
+INSERT INTO `t_region` VALUES (3137, '黄陵县', '610632', '0911', 3123, 'Huangling');
+INSERT INTO `t_region` VALUES (3138, '汉中市', '610700', '0916', 3058, 'Hanzhoung City');
+INSERT INTO `t_region` VALUES (3139, '汉中市市辖区', '610701', '0916', 3138, 'Hanzhoung municipal');
+INSERT INTO `t_region` VALUES (3140, '汉台区', '610702', '0916', 3138, 'Hantai');
+INSERT INTO `t_region` VALUES (3141, '南郑县', '610721', '0916', 3138, 'Nanzheng');
+INSERT INTO `t_region` VALUES (3142, '城固县', '610722', '0916', 3138, 'Chenggu');
+INSERT INTO `t_region` VALUES (3143, '洋县', '610723', '0916', 3138, 'Yangxian');
+INSERT INTO `t_region` VALUES (3144, '西乡县', '610724', '0916', 3138, 'Xixiang');
+INSERT INTO `t_region` VALUES (3145, '勉县', '610725', '0916', 3138, 'Mianxian');
+INSERT INTO `t_region` VALUES (3146, '宁强县', '610726', '0916', 3138, 'Ningqiang');
+INSERT INTO `t_region` VALUES (3147, '略阳县', '610727', '0916', 3138, 'Lüeyang');
+INSERT INTO `t_region` VALUES (3148, '镇巴县', '610728', '0916', 3138, 'Zhenba');
+INSERT INTO `t_region` VALUES (3149, '留坝县', '610729', '0916', 3138, 'Liuba');
+INSERT INTO `t_region` VALUES (3150, '佛坪县', '610730', '0916', 3138, 'Foping');
+INSERT INTO `t_region` VALUES (3151, '榆林市', '610800', '0912', 3058, 'Yulin City');
+INSERT INTO `t_region` VALUES (3152, '榆林市市辖区', '610801', '0912', 3151, 'Yulin municipal');
+INSERT INTO `t_region` VALUES (3153, '榆阳区', '610802', '0912', 3151, 'Yuyang');
+INSERT INTO `t_region` VALUES (3154, '神木市', '610881', '0912', 3151, 'Shenmu City');
+INSERT INTO `t_region` VALUES (3155, '府谷县', '610822', '0912', 3151, 'Fugu');
+INSERT INTO `t_region` VALUES (3156, '横山区', '610803', '0912', 3151, 'Hengshan');
+INSERT INTO `t_region` VALUES (3157, '靖边县', '610824', '0912', 3151, 'Jingbian');
+INSERT INTO `t_region` VALUES (3158, '定边县', '610825', '0912', 3151, 'Dingbian');
+INSERT INTO `t_region` VALUES (3159, '绥德县', '610826', '0912', 3151, 'Suide');
+INSERT INTO `t_region` VALUES (3160, '米脂县', '610827', '0912', 3151, 'Mizhi');
+INSERT INTO `t_region` VALUES (3161, '佳县', '610828', '0912', 3151, 'Jiaxian');
+INSERT INTO `t_region` VALUES (3162, '吴堡县', '610829', '0912', 3151, 'Wubu');
+INSERT INTO `t_region` VALUES (3163, '清涧县', '610830', '0912', 3151, 'Qingjian');
+INSERT INTO `t_region` VALUES (3164, '子洲县', '610831', '0912', 3151, 'Zizhou');
+INSERT INTO `t_region` VALUES (3165, '安康市', '610900', '0915', 3058, 'Ankang City');
+INSERT INTO `t_region` VALUES (3166, '安康市市辖区', '610901', '0915', 3165, 'The municipal of Ankang City');
+INSERT INTO `t_region` VALUES (3167, '汉滨区', '610902', '0915', 3165, 'Han Bin');
+INSERT INTO `t_region` VALUES (3168, '汉阴县', '610921', '0915', 3165, 'Hanyin');
+INSERT INTO `t_region` VALUES (3169, '石泉县', '610922', '0915', 3165, 'Shiquan');
+INSERT INTO `t_region` VALUES (3170, '宁陕县', '610923', '0915', 3165, 'Ningshan');
+INSERT INTO `t_region` VALUES (3171, '紫阳县', '610924', '0915', 3165, 'Ziyang');
+INSERT INTO `t_region` VALUES (3172, '岚皋县', '610925', '0915', 3165, 'Langao');
+INSERT INTO `t_region` VALUES (3173, '平利县', '610926', '0915', 3165, 'Pingli');
+INSERT INTO `t_region` VALUES (3174, '镇坪县', '610927', '0915', 3165, 'Zhenping');
+INSERT INTO `t_region` VALUES (3175, '旬阳县', '610928', '0915', 3165, 'Xunyang');
+INSERT INTO `t_region` VALUES (3176, '白河县', '610929', '0915', 3165, 'Baihe');
+INSERT INTO `t_region` VALUES (3177, '商洛市', '611000', '0914', 3058, 'shangluo');
+INSERT INTO `t_region` VALUES (3178, '商洛市市辖区', '611001', '0914', 3177, 'Shangluo municipal');
+INSERT INTO `t_region` VALUES (3179, '商州区', '611002', '0914', 3177, 'Shangzhou');
+INSERT INTO `t_region` VALUES (3180, '洛南县', '611021', '0914', 3177, 'Luonan');
+INSERT INTO `t_region` VALUES (3181, '丹凤县', '611022', '0914', 3177, 'Danfeng');
+INSERT INTO `t_region` VALUES (3182, '商南县', '611023', '0914', 3177, 'Shangnan');
+INSERT INTO `t_region` VALUES (3183, '山阳县', '611024', '0914', 3177, 'Shanyang');
+INSERT INTO `t_region` VALUES (3184, '镇安县', '611025', '0914', 3177, 'Zhen’an');
+INSERT INTO `t_region` VALUES (3185, '柞水县', '611026', '0914', 3177, 'Zhashui');
+INSERT INTO `t_region` VALUES (3186, '甘肃省', '620000', '', 0, 'Gansu Province ');
+INSERT INTO `t_region` VALUES (3187, '兰州市', '620100', '0931', 3186, 'Lanzhou');
+INSERT INTO `t_region` VALUES (3188, '兰州市市辖区', '620101', '0931', 3187, 'Lanzhou municipal');
+INSERT INTO `t_region` VALUES (3189, '城关区', '620102', '0931', 3187, 'Chengguan');
+INSERT INTO `t_region` VALUES (3190, '七里河区', '620103', '0931', 3187, 'Qilihe');
+INSERT INTO `t_region` VALUES (3191, '西固区', '620104', '0931', 3187, 'Xigu');
+INSERT INTO `t_region` VALUES (3192, '安宁区', '620105', '0931', 3187, 'Anning');
+INSERT INTO `t_region` VALUES (3193, '红古区', '620111', '0931', 3187, 'honggu');
+INSERT INTO `t_region` VALUES (3194, '永登县', '620121', '0931', 3187, 'Yongdeng');
+INSERT INTO `t_region` VALUES (3195, '皋兰县', '620122', '0931', 3187, 'Gaolan');
+INSERT INTO `t_region` VALUES (3196, '榆中县', '620123', '0931', 3187, 'Yuzhong');
+INSERT INTO `t_region` VALUES (3197, '嘉峪关市', '620200', '1937', 3186, 'Jiayuguan');
+INSERT INTO `t_region` VALUES (3198, '嘉峪关市市辖区', '620201', '1937', 3197, 'Jiayuguan municipal');
+INSERT INTO `t_region` VALUES (3199, '金昌市', '620300', '0935', 3186, 'Jinchang');
+INSERT INTO `t_region` VALUES (3200, '金昌市市辖区', '620301', '0935', 3199, 'Jinchang municipal');
+INSERT INTO `t_region` VALUES (3201, '金川区', '620302', '0935', 3199, 'Jinchuan');
+INSERT INTO `t_region` VALUES (3202, '永昌县', '620321', '0935', 3199, 'Yongchang');
+INSERT INTO `t_region` VALUES (3203, '白银市', '620400', '0943', 3186, 'Baiyin');
+INSERT INTO `t_region` VALUES (3204, '白银市市辖区', '620401', '0943', 3203, 'Baiyin');
+INSERT INTO `t_region` VALUES (3205, '白银区', '620402', '0943', 3203, 'baiyin');
+INSERT INTO `t_region` VALUES (3206, '平川区', '620403', '0943', 3203, 'Pingchuan');
+INSERT INTO `t_region` VALUES (3207, '靖远县', '620421', '0943', 3203, 'Jingyuan');
+INSERT INTO `t_region` VALUES (3208, '会宁县', '620422', '0943', 3203, 'Huining');
+INSERT INTO `t_region` VALUES (3209, '景泰县', '620423', '0943', 3203, 'Jingtai');
+INSERT INTO `t_region` VALUES (3210, '天水市', '620500', '0938', 3186, 'Tianshui');
+INSERT INTO `t_region` VALUES (3211, '天水市市辖区', '620501', '0938', 3210, 'Tianshui');
+INSERT INTO `t_region` VALUES (3212, '秦州区', '620502', '0938', 3210, 'Qinzhou');
+INSERT INTO `t_region` VALUES (3213, '麦积区', '620503', '0938', 3210, 'Maiji');
+INSERT INTO `t_region` VALUES (3214, '清水县', '620521', '0938', 3210, 'Qingshui');
+INSERT INTO `t_region` VALUES (3215, '秦安县', '620522', '0938', 3210, 'Qin’an');
+INSERT INTO `t_region` VALUES (3216, '甘谷县', '620523', '0938', 3210, 'Gangu');
+INSERT INTO `t_region` VALUES (3217, '武山县', '620524', '0938', 3210, 'Wushan');
+INSERT INTO `t_region` VALUES (3218, '张家川回族自治县', '620525', '0938', 3210, 'Hui Autonomousof Zhangjiachuan ');
+INSERT INTO `t_region` VALUES (3219, '武威市', '620600', '1935', 3186, 'Wuwei City');
+INSERT INTO `t_region` VALUES (3220, '武威市市辖区', '620601', '1935', 3219, 'Wuwei municipal');
+INSERT INTO `t_region` VALUES (3221, '凉州区', '620602', '1935', 3219, 'Liangzhou');
+INSERT INTO `t_region` VALUES (3222, '民勤县', '620621', '1935', 3219, 'Minqin');
+INSERT INTO `t_region` VALUES (3223, '古浪县', '620622', '1935', 3219, 'Gulang');
+INSERT INTO `t_region` VALUES (3224, '天祝藏族自治县', '620623', '1935', 3219, 'Tibetan Autonomousof Tianzhu ');
+INSERT INTO `t_region` VALUES (3225, '张掖市', '620700', '0936', 3186, 'Zhangye City');
+INSERT INTO `t_region` VALUES (3226, '张掖市市辖区', '620701', '0936', 3225, 'Zhangye municipal');
+INSERT INTO `t_region` VALUES (3227, '甘州区', '620702', '0936', 3225, 'Ganzhou');
+INSERT INTO `t_region` VALUES (3228, '肃南裕固族自治县', '620721', '0936', 3225, 'Yugur Autonomousof Sunan ');
+INSERT INTO `t_region` VALUES (3229, '民乐县', '620722', '0936', 3225, 'Minle');
+INSERT INTO `t_region` VALUES (3230, '临泽县', '620723', '0936', 3225, 'Linze');
+INSERT INTO `t_region` VALUES (3231, '高台县', '620724', '0936', 3225, 'Gaotai');
+INSERT INTO `t_region` VALUES (3232, '山丹县', '620725', '0936', 3225, 'Shandan');
+INSERT INTO `t_region` VALUES (3233, '平凉市', '620800', '0933', 3186, 'Pingliang');
+INSERT INTO `t_region` VALUES (3234, '平凉市市辖区', '620801', '0933', 3233, 'Pingliang municipal');
+INSERT INTO `t_region` VALUES (3235, '崆峒区', '620802', '0933', 3233, 'Kongtong');
+INSERT INTO `t_region` VALUES (3236, '泾川县', '620821', '0933', 3233, 'Jingchuan');
+INSERT INTO `t_region` VALUES (3237, '灵台县', '620822', '0933', 3233, 'Lingtai');
+INSERT INTO `t_region` VALUES (3238, '崇信县', '620823', '0933', 3233, 'Chongxin');
+INSERT INTO `t_region` VALUES (3239, '华亭县', '620824', '0933', 3233, 'Huating');
+INSERT INTO `t_region` VALUES (3240, '庄浪县', '620825', '0933', 3233, 'Zhuanglang');
+INSERT INTO `t_region` VALUES (3241, '静宁县', '620826', '0933', 3233, 'Jingning');
+INSERT INTO `t_region` VALUES (3242, '酒泉市', '620900', '0937', 3186, 'jiuquan');
+INSERT INTO `t_region` VALUES (3243, '酒泉市市辖区', '620901', '0937', 3242, 'Jiuquan municipal');
+INSERT INTO `t_region` VALUES (3244, '肃州区', '620902', '0937', 3242, 'Suzhou');
+INSERT INTO `t_region` VALUES (3245, '金塔县', '620921', '0937', 3242, 'Jinta');
+INSERT INTO `t_region` VALUES (3246, '瓜州县', '620922', '0937', 3242, 'Guzhou');
+INSERT INTO `t_region` VALUES (3247, '肃北蒙古族自治县', '620923', '0937', 3242, 'Mongolian Autonomousof Subei ');
+INSERT INTO `t_region` VALUES (3248, '阿克塞哈萨克族自治县', '620924', '0937', 3242, 'Kazak Autonomousof Aksay ');
+INSERT INTO `t_region` VALUES (3249, '玉门市', '620981', '0937', 3242, 'Yumen');
+INSERT INTO `t_region` VALUES (3250, '敦煌市', '620982', '0937', 3242, 'Dunhuang');
+INSERT INTO `t_region` VALUES (3251, '庆阳市', '621000', '0934', 3186, 'qingyang');
+INSERT INTO `t_region` VALUES (3252, '庆阳市市辖区', '621001', '0934', 3251, 'Qingyang municipal');
+INSERT INTO `t_region` VALUES (3253, '西峰区', '621002', '0934', 3251, 'Xifeng');
+INSERT INTO `t_region` VALUES (3254, '庆城县', '621021', '0934', 3251, 'Qingcheng');
+INSERT INTO `t_region` VALUES (3255, '环县', '621022', '0934', 3251, 'Huanxian');
+INSERT INTO `t_region` VALUES (3256, '华池县', '621023', '0934', 3251, 'Huachi');
+INSERT INTO `t_region` VALUES (3257, '合水县', '621024', '0934', 3251, 'Heshui');
+INSERT INTO `t_region` VALUES (3258, '正宁县', '621025', '0934', 3251, 'Zhengning');
+INSERT INTO `t_region` VALUES (3259, '宁县', '621026', '0934', 3251, 'Ningxian');
+INSERT INTO `t_region` VALUES (3260, '镇原县', '621027', '0934', 3251, 'Zhenyuan');
+INSERT INTO `t_region` VALUES (3261, '定西市', '621100', '0932', 3186, 'dingxi');
+INSERT INTO `t_region` VALUES (3262, '定西市市辖区', '621101', '0932', 3261, 'Dingxi municipal');
+INSERT INTO `t_region` VALUES (3263, '安定区', '621102', '0932', 3261, 'Anding');
+INSERT INTO `t_region` VALUES (3264, '通渭县', '621121', '0932', 3261, 'Tongwei');
+INSERT INTO `t_region` VALUES (3265, '陇西县', '621122', '0932', 3261, 'Longxi');
+INSERT INTO `t_region` VALUES (3266, '渭源县', '621123', '0932', 3261, 'Weiyuan');
+INSERT INTO `t_region` VALUES (3267, '临洮县', '621124', '0932', 3261, 'Lintao');
+INSERT INTO `t_region` VALUES (3268, '漳县', '621125', '0932', 3261, 'Zhangxian');
+INSERT INTO `t_region` VALUES (3269, '岷县', '621126', '0932', 3261, 'Minxian');
+INSERT INTO `t_region` VALUES (3270, '陇南市', '621200', '2935', 3186, 'Longnan City');
+INSERT INTO `t_region` VALUES (3271, '陇南市市辖区', '621201', '2935', 3270, 'Longnan municipal');
+INSERT INTO `t_region` VALUES (3272, '武都区', '621202', '2935', 3270, 'wudu');
+INSERT INTO `t_region` VALUES (3273, '成县', '621221', '2935', 3270, 'Chengxian');
+INSERT INTO `t_region` VALUES (3274, '文县', '621222', '2935', 3270, 'Wenxian');
+INSERT INTO `t_region` VALUES (3275, '宕昌县', '621223', '2935', 3270, 'Dangchang');
+INSERT INTO `t_region` VALUES (3276, '康县', '621224', '2935', 3270, 'Kangxian');
+INSERT INTO `t_region` VALUES (3277, '西和县', '621225', '2935', 3270, 'Xihe');
+INSERT INTO `t_region` VALUES (3278, '礼县', '621226', '2935', 3270, 'Lixian');
+INSERT INTO `t_region` VALUES (3279, '徽县', '621227', '2935', 3270, 'Huixian');
+INSERT INTO `t_region` VALUES (3280, '两当县', '621228', '2935', 3270, 'Liangdang');
+INSERT INTO `t_region` VALUES (3281, '临夏回族自治州', '622900', '0930', 3186, 'Hui Autonomous Prefecture of Linxia ');
+INSERT INTO `t_region` VALUES (3282, '临夏市', '622901', '0930', 3281, 'linxia city');
+INSERT INTO `t_region` VALUES (3283, '临夏县', '622921', '0930', 3281, 'Linxia');
+INSERT INTO `t_region` VALUES (3284, '康乐县', '622922', '0930', 3281, 'Kangle');
+INSERT INTO `t_region` VALUES (3285, '永靖县', '622923', '0930', 3281, 'Yongjing');
+INSERT INTO `t_region` VALUES (3286, '广河县', '622924', '0930', 3281, 'Guanghe');
+INSERT INTO `t_region` VALUES (3287, '和政县', '622925', '0930', 3281, 'Hezheng');
+INSERT INTO `t_region` VALUES (3288, '东乡族自治县', '622926', '0930', 3281, 'Dongxiang Autonomous');
+INSERT INTO `t_region` VALUES (3289, '积石山保安族东乡族撒拉族自治县', '622927', '0930', 3281, 'Jishishan Bao\'an Dongxiang Sala Autonomous');
+INSERT INTO `t_region` VALUES (3290, '甘南藏族自治州', '623000', '0941', 3186, 'Tibetan Autonomous Prefecture of Ganan ');
+INSERT INTO `t_region` VALUES (3291, '合作市', '623001', '0941', 3290, 'Cooperative city');
+INSERT INTO `t_region` VALUES (3292, '临潭县', '623021', '0941', 3290, 'Lintan');
+INSERT INTO `t_region` VALUES (3293, '卓尼县', '623022', '0941', 3290, 'Jonê');
+INSERT INTO `t_region` VALUES (3294, '舟曲县', '623023', '0941', 3290, 'Zhugqu');
+INSERT INTO `t_region` VALUES (3295, '迭部县', '623024', '0941', 3290, 'Têwo');
+INSERT INTO `t_region` VALUES (3296, '玛曲县', '623025', '0941', 3290, 'Maqu');
+INSERT INTO `t_region` VALUES (3297, '碌曲县', '623026', '0941', 3290, 'Luqu');
+INSERT INTO `t_region` VALUES (3298, '夏河县', '623027', '0941', 3290, 'Xiahe');
+INSERT INTO `t_region` VALUES (3299, '青海省', '630000', '', 0, 'Qinghai Province ');
+INSERT INTO `t_region` VALUES (3300, '西宁市', '630100', '0971', 3299, 'Xining');
+INSERT INTO `t_region` VALUES (3301, '西宁市市辖区', '630101', '0971', 3300, 'Xining municipal');
+INSERT INTO `t_region` VALUES (3302, '城东区', '630102', '0971', 3300, 'Seongdong-gu');
+INSERT INTO `t_region` VALUES (3303, '城中区', '630103', '0971', 3300, 'city central');
+INSERT INTO `t_region` VALUES (3304, '城西区', '630104', '0971', 3300, 'Chengxi');
+INSERT INTO `t_region` VALUES (3305, '城北区', '630105', '0971', 3300, 'Seongbuk-gu');
+INSERT INTO `t_region` VALUES (3306, '大通回族土族自治县', '630121', '0971', 3300, 'Datong');
+INSERT INTO `t_region` VALUES (3307, '湟中县', '630122', '0971', 3300, 'Huangzhong');
+INSERT INTO `t_region` VALUES (3308, '湟源县', '630123', '0971', 3300, 'Huangyuan');
+INSERT INTO `t_region` VALUES (3309, '海东市', '630200', '0972', 3299, 'Haidong City');
+INSERT INTO `t_region` VALUES (3310, '乐都区', '630202', '0972', 3309, 'Ledu');
+INSERT INTO `t_region` VALUES (3311, '平安区', '630203', '0972', 3309, 'Safe area');
+INSERT INTO `t_region` VALUES (3312, '民和回族土族自治县', '630222', '0972', 3309, 'Minhe Hui and Tu Autonomous');
+INSERT INTO `t_region` VALUES (3313, '互助土族自治县', '630223', '0972', 3309, 'Tu Autonomousof Huzhu ');
+INSERT INTO `t_region` VALUES (3314, '化隆回族自治县', '630224', '0972', 3309, 'Hui Autonomousof Hualong ');
+INSERT INTO `t_region` VALUES (3315, '循化撒拉族自治县', '630225', '0972', 3309, 'Salar Autonomousof Xunhua ');
+INSERT INTO `t_region` VALUES (3316, '海北藏族自治州', '632200', '0970', 3299, 'Tibetan Autonomous Prefecture of Haibei ');
+INSERT INTO `t_region` VALUES (3317, '门源回族自治县', '632221', '0970', 3316, 'Hui Autonomousof Menyuan ');
+INSERT INTO `t_region` VALUES (3318, '祁连县', '632222', '0970', 3316, 'Qilian');
+INSERT INTO `t_region` VALUES (3319, '海晏县', '632223', '0970', 3316, 'Haiyan');
+INSERT INTO `t_region` VALUES (3320, '刚察县', '632224', '0970', 3316, 'Gangca');
+INSERT INTO `t_region` VALUES (3321, '黄南藏族自治州', '632300', '0973', 3299, 'Tibetan Autonomous Prefecture of Huangnan ');
+INSERT INTO `t_region` VALUES (3322, '同仁县', '632321', '0973', 3321, 'Tongren');
+INSERT INTO `t_region` VALUES (3323, '尖扎县', '632322', '0973', 3321, 'Jainca');
+INSERT INTO `t_region` VALUES (3324, '泽库县', '632323', '0973', 3321, 'Zêkog');
+INSERT INTO `t_region` VALUES (3325, '河南蒙古族自治县', '632324', '0973', 3321, 'Mongolian Autonomousof Henan ');
+INSERT INTO `t_region` VALUES (3326, '海南藏族自治州', '632500', '0974', 3299, 'Tibetan Autonomous Prefecture of Hainan ');
+INSERT INTO `t_region` VALUES (3327, '共和县', '632521', '0974', 3326, 'Gonghe');
+INSERT INTO `t_region` VALUES (3328, '同德县', '632522', '0974', 3326, 'Tongde');
+INSERT INTO `t_region` VALUES (3329, '贵德县', '632523', '0974', 3326, 'Guide');
+INSERT INTO `t_region` VALUES (3330, '兴海县', '632524', '0974', 3326, 'Xinghai');
+INSERT INTO `t_region` VALUES (3331, '贵南县', '632525', '0974', 3326, 'Guinan');
+INSERT INTO `t_region` VALUES (3332, '果洛藏族自治州', '632600', '0975', 3299, 'Tibetan Autonomous Prefecture of Golog ');
+INSERT INTO `t_region` VALUES (3333, '玛沁县', '632621', '0975', 3332, 'Maqên');
+INSERT INTO `t_region` VALUES (3334, '班玛县', '632622', '0975', 3332, 'Baima');
+INSERT INTO `t_region` VALUES (3335, '甘德县', '632623', '0975', 3332, 'Gadê');
+INSERT INTO `t_region` VALUES (3336, '达日县', '632624', '0975', 3332, 'Darlag');
+INSERT INTO `t_region` VALUES (3337, '久治县', '632625', '0975', 3332, 'Jigzhi');
+INSERT INTO `t_region` VALUES (3338, '玛多县', '632626', '0975', 3332, 'Madoi');
+INSERT INTO `t_region` VALUES (3339, '玉树藏族自治州', '632700', '0976', 3299, 'Tibetan Autonomous Prefecture of Yushu ');
+INSERT INTO `t_region` VALUES (3340, '玉树市', '632701', '0976', 3339, 'Yushu');
+INSERT INTO `t_region` VALUES (3341, '杂多县', '632722', '0976', 3339, 'Zadoi');
+INSERT INTO `t_region` VALUES (3342, '称多县', '632723', '0976', 3339, 'Chindu');
+INSERT INTO `t_region` VALUES (3343, '治多县', '632724', '0976', 3339, 'Zhidoi');
+INSERT INTO `t_region` VALUES (3344, '囊谦县', '632725', '0976', 3339, 'Nangqên');
+INSERT INTO `t_region` VALUES (3345, '曲麻莱县', '632726', '0976', 3339, 'Qumarlêb');
+INSERT INTO `t_region` VALUES (3346, '海西蒙古族藏族自治州', '632800', '0977', 3299, 'Haixi Mongol and Tibetan Autonomous Prefecture');
+INSERT INTO `t_region` VALUES (3347, '格尔木市', '632801', '0977', 3346, 'Golmud');
+INSERT INTO `t_region` VALUES (3348, '德令哈市', '632802', '0977', 3346, 'Delingha City');
+INSERT INTO `t_region` VALUES (3349, '乌兰县', '632821', '0977', 3346, 'Ulan');
+INSERT INTO `t_region` VALUES (3350, '都兰县', '632822', '0977', 3346, 'Dulan');
+INSERT INTO `t_region` VALUES (3351, '天峻县', '632823', '0977', 3346, 'Tianjun');
+INSERT INTO `t_region` VALUES (3352, '海西蒙古族藏族自治州直辖', '632825', '0977', 3346, 'The Autonomous Prefecture of the Haixi Mongolian nationality and Tibetan Autonomous Prefecture');
+INSERT INTO `t_region` VALUES (3353, '宁夏回族自治区', '640000', '', 0, 'the Ningxia Hui Autonomous Region ');
+INSERT INTO `t_region` VALUES (3354, '银川市', '640100', '0951', 3353, 'Yinchuan');
+INSERT INTO `t_region` VALUES (3355, '银川市市辖区', '640101', '0951', 3354, 'Yinchuan municipal');
+INSERT INTO `t_region` VALUES (3356, '兴庆区', '640104', '0951', 3354, 'Xingqing');
+INSERT INTO `t_region` VALUES (3357, '西夏区', '640105', '0951', 3354, 'Xixia');
+INSERT INTO `t_region` VALUES (3358, '金凤区', '640106', '0951', 3354, 'Jinfeng');
+INSERT INTO `t_region` VALUES (3359, '永宁县', '640121', '0951', 3354, 'Yongning');
+INSERT INTO `t_region` VALUES (3360, '贺兰县', '640122', '0951', 3354, 'Helan');
+INSERT INTO `t_region` VALUES (3361, '灵武市', '640181', '0951', 3354, 'Lingwu City');
+INSERT INTO `t_region` VALUES (3362, '石嘴山市', '640200', '0952', 3353, 'Shizuishan');
+INSERT INTO `t_region` VALUES (3363, '石嘴山市市辖区', '640201', '0952', 3362, 'Shizuishan municipal');
+INSERT INTO `t_region` VALUES (3364, '大武口区', '640202', '0952', 3362, 'Dawukou');
+INSERT INTO `t_region` VALUES (3365, '惠农区', '640205', '0952', 3362, 'Huinong');
+INSERT INTO `t_region` VALUES (3366, '平罗县', '640221', '0952', 3362, 'Pingluo');
+INSERT INTO `t_region` VALUES (3367, '吴忠市', '640300', '0953', 3353, 'Wuzhong city');
+INSERT INTO `t_region` VALUES (3368, '吴忠市市辖区', '640301', '0953', 3367, 'Wuzhong City');
+INSERT INTO `t_region` VALUES (3369, '利通区', '640302', '0953', 3367, 'Litong');
+INSERT INTO `t_region` VALUES (3370, '红寺堡区', '640303', '0953', 3367, 'Red temple');
+INSERT INTO `t_region` VALUES (3371, '盐池县', '640323', '0953', 3367, 'Yanchi');
+INSERT INTO `t_region` VALUES (3372, '同心县', '640324', '0953', 3367, 'Tongxin');
+INSERT INTO `t_region` VALUES (3373, '青铜峡市', '640381', '0953', 3367, 'qingtongxia');
+INSERT INTO `t_region` VALUES (3374, '固原市', '640400', '0954', 3353, 'Guyuan City');
+INSERT INTO `t_region` VALUES (3375, '固原市市辖区', '640401', '0954', 3374, 'Guyuan municipal');
+INSERT INTO `t_region` VALUES (3376, '原州区', '640402', '0954', 3374, 'Yuanzhou');
+INSERT INTO `t_region` VALUES (3377, '西吉县', '640422', '0954', 3374, 'Xiji');
+INSERT INTO `t_region` VALUES (3378, '隆德县', '640423', '0954', 3374, 'Longde');
+INSERT INTO `t_region` VALUES (3379, '泾源县', '640424', '0954', 3374, 'Jingyuan');
+INSERT INTO `t_region` VALUES (3380, '彭阳县', '640425', '0954', 3374, 'Pengyang');
+INSERT INTO `t_region` VALUES (3381, '中卫市', '640500', '1953', 3353, 'Zhong Wei City');
+INSERT INTO `t_region` VALUES (3382, '中卫市市辖区', '640501', '1953', 3381, 'City of central Wei');
+INSERT INTO `t_region` VALUES (3383, '沙坡头区', '640502', '1953', 3381, 'Shapotou');
+INSERT INTO `t_region` VALUES (3384, '中宁县', '640521', '1953', 3381, 'Zhongning');
+INSERT INTO `t_region` VALUES (3385, '海原县', '640522', '1953', 3381, 'Haiyuan');
+INSERT INTO `t_region` VALUES (3386, '新疆维吾尔自治区', '650000', '', 0, 'the Xinjiang Uygur [Uighur] Autonomous Region ');
+INSERT INTO `t_region` VALUES (3387, '乌鲁木齐市', '650100', '0991', 3386, 'Ürümqi City');
+INSERT INTO `t_region` VALUES (3388, '乌鲁木齐市市辖区', '650101', '0991', 3387, 'Urumqi municipal');
+INSERT INTO `t_region` VALUES (3389, '天山区', '650102', '0991', 3387, 'Tianshan');
+INSERT INTO `t_region` VALUES (3390, '沙依巴克区', '650103', '0991', 3387, 'Saybagh');
+INSERT INTO `t_region` VALUES (3391, '新市区', '650104', '0991', 3387, 'New urban area');
+INSERT INTO `t_region` VALUES (3392, '水磨沟区', '650105', '0991', 3387, 'shuimogou');
+INSERT INTO `t_region` VALUES (3393, '头屯河区', '650106', '0991', 3387, 'Toutunhe');
+INSERT INTO `t_region` VALUES (3394, '达坂城区', '650107', '0991', 3387, 'Dabancheng');
+INSERT INTO `t_region` VALUES (3395, '米东区', '650109', '0991', 3387, 'Midong');
+INSERT INTO `t_region` VALUES (3396, '乌鲁木齐县', '650121', '0991', 3387, 'Ürümqi');
+INSERT INTO `t_region` VALUES (3397, '克拉玛依市', '650200', '0990', 3386, 'Karamay');
+INSERT INTO `t_region` VALUES (3398, '克拉玛依市市辖区', '650201', '0990', 3397, 'Karamay municipal');
+INSERT INTO `t_region` VALUES (3399, '独山子区', '650202', '0990', 3397, 'Dushanzi');
+INSERT INTO `t_region` VALUES (3400, '克拉玛依区', '650203', '0990', 3397, 'Karamay');
+INSERT INTO `t_region` VALUES (3401, '白碱滩区', '650204', '0990', 3397, 'Baijiantan');
+INSERT INTO `t_region` VALUES (3402, '乌尔禾区', '650205', '0990', 3397, 'Urho');
+INSERT INTO `t_region` VALUES (3403, '吐鲁番市', '650400', '0995', 3386, 'Turpan');
+INSERT INTO `t_region` VALUES (3404, '高昌区', '650402', '0995', 3403, 'Gao Chang');
+INSERT INTO `t_region` VALUES (3405, '鄯善县', '650421', '0995', 3403, 'Shanshan');
+INSERT INTO `t_region` VALUES (3406, '托克逊县', '650422', '0995', 3403, 'Toksun');
+INSERT INTO `t_region` VALUES (3407, '哈密市', '650500', '0902', 3386, 'Hami City');
+INSERT INTO `t_region` VALUES (3408, '伊州区', '650502', '0902', 3407, 'Yizhou');
+INSERT INTO `t_region` VALUES (3409, '巴里坤哈萨克自治县', '650521', '0902', 3407, 'Kazak Autonomousof Barkol ');
+INSERT INTO `t_region` VALUES (3410, '伊吾县', '650522', '0902', 3407, 'Yiwu');
+INSERT INTO `t_region` VALUES (3411, '昌吉回族自治州', '652300', '0994', 3386, 'Hui Autonomous Prefecture of Changji ');
+INSERT INTO `t_region` VALUES (3412, '昌吉市', '652301', '0994', 3411, 'Changji City');
+INSERT INTO `t_region` VALUES (3413, '阜康市', '652302', '0994', 3411, 'Fukang');
+INSERT INTO `t_region` VALUES (3414, '呼图壁县', '652323', '0994', 3411, 'Hutubi');
+INSERT INTO `t_region` VALUES (3415, '玛纳斯县', '652324', '0994', 3411, 'Manas');
+INSERT INTO `t_region` VALUES (3416, '奇台县', '652325', '0994', 3411, 'Qitai');
+INSERT INTO `t_region` VALUES (3417, '吉木萨尔县', '652327', '0994', 3411, 'Jimsar');
+INSERT INTO `t_region` VALUES (3418, '木垒哈萨克自治县', '652328', '0994', 3411, 'Kazak Autonomousof Mori ');
+INSERT INTO `t_region` VALUES (3419, '博尔塔拉蒙古自治州', '652700', '0909', 3386, 'Mongolian Autonomous Prefecture of Bortala ');
+INSERT INTO `t_region` VALUES (3420, '博乐市', '652701', '0909', 3419, 'Bole');
+INSERT INTO `t_region` VALUES (3421, '阿拉山口市', '652702', '0909', 3419, 'Ara Yamaguchi');
+INSERT INTO `t_region` VALUES (3422, '精河县', '652722', '0909', 3419, 'Jinghe');
+INSERT INTO `t_region` VALUES (3423, '温泉县', '652723', '0909', 3419, '[地名] [美国] Hot Springs');
+INSERT INTO `t_region` VALUES (3424, '巴音郭楞蒙古自治州', '652800', '0996', 3386, 'Mongolian Autonomous Prefecture of Bayingolin ');
+INSERT INTO `t_region` VALUES (3425, '库尔勒市', '652801', '0996', 3424, 'Korla');
+INSERT INTO `t_region` VALUES (3426, '轮台县', '652822', '0996', 3424, 'Luntai');
+INSERT INTO `t_region` VALUES (3427, '尉犁县', '652823', '0996', 3424, 'Yuli');
+INSERT INTO `t_region` VALUES (3428, '若羌县', '652824', '0996', 3424, 'Ruoqiang');
+INSERT INTO `t_region` VALUES (3429, '且末县', '652825', '0996', 3424, 'Qiemo');
+INSERT INTO `t_region` VALUES (3430, '焉耆回族自治县', '652826', '0996', 3424, 'Hui Autonomousof Yanqi ');
+INSERT INTO `t_region` VALUES (3431, '和静县', '652827', '0996', 3424, 'Hejing');
+INSERT INTO `t_region` VALUES (3432, '和硕县', '652828', '0996', 3424, 'Hoxud');
+INSERT INTO `t_region` VALUES (3433, '博湖县', '652829', '0996', 3424, 'Bohu');
+INSERT INTO `t_region` VALUES (3434, '阿克苏地区', '652900', '0997', 3386, 'Aksu Prefecture ');
+INSERT INTO `t_region` VALUES (3435, '阿克苏市', '652901', '0997', 3434, 'Akesu City');
+INSERT INTO `t_region` VALUES (3436, '温宿县', '652922', '0997', 3434, 'Wensu');
+INSERT INTO `t_region` VALUES (3437, '库车县', '652923', '0997', 3434, 'Kuqa');
+INSERT INTO `t_region` VALUES (3438, '沙雅县', '652924', '0997', 3434, 'Xayar');
+INSERT INTO `t_region` VALUES (3439, '新和县', '652925', '0997', 3434, 'Xinhe');
+INSERT INTO `t_region` VALUES (3440, '拜城县', '652926', '0997', 3434, 'Baicheng');
+INSERT INTO `t_region` VALUES (3441, '乌什县', '652927', '0997', 3434, 'Wushi');
+INSERT INTO `t_region` VALUES (3442, '阿瓦提县', '652928', '0997', 3434, 'Awat');
+INSERT INTO `t_region` VALUES (3443, '柯坪县', '652929', '0997', 3434, 'Kalpin');
+INSERT INTO `t_region` VALUES (3444, '克孜勒苏柯尔克孜自治州', '653000', '0908', 3386, 'Kergez Autonomous Prefecture of Kizilsu ');
+INSERT INTO `t_region` VALUES (3445, '阿图什市', '653001', '0908', 3444, 'Artux City');
+INSERT INTO `t_region` VALUES (3446, '阿克陶县', '653022', '0908', 3444, 'Akto');
+INSERT INTO `t_region` VALUES (3447, '阿合奇县', '653023', '0908', 3444, 'Akqi');
+INSERT INTO `t_region` VALUES (3448, '乌恰县', '653024', '0908', 3444, 'Wuqia');
+INSERT INTO `t_region` VALUES (3449, '喀什地区', '653100', '0998', 3386, 'Kashi Prefecture ');
+INSERT INTO `t_region` VALUES (3450, '喀什市', '653101', '0998', 3449, 'Kashi');
+INSERT INTO `t_region` VALUES (3451, '疏附县', '653121', '0998', 3449, 'Shufu');
+INSERT INTO `t_region` VALUES (3452, '疏勒县', '653122', '0998', 3449, 'Shule');
+INSERT INTO `t_region` VALUES (3453, '英吉沙县', '653123', '0998', 3449, 'Yengisar');
+INSERT INTO `t_region` VALUES (3454, '泽普县', '653124', '0998', 3449, 'Zepu');
+INSERT INTO `t_region` VALUES (3455, '莎车县', '653125', '0998', 3449, 'Shache');
+INSERT INTO `t_region` VALUES (3456, '叶城县', '653126', '0998', 3449, 'Yecheng');
+INSERT INTO `t_region` VALUES (3457, '麦盖提县', '653127', '0998', 3449, 'Markit');
+INSERT INTO `t_region` VALUES (3458, '岳普湖县', '653128', '0998', 3449, 'Yopurga');
+INSERT INTO `t_region` VALUES (3459, '伽师县', '653129', '0998', 3449, 'Jiashi');
+INSERT INTO `t_region` VALUES (3460, '巴楚县', '653130', '0998', 3449, 'Bachu');
+INSERT INTO `t_region` VALUES (3461, '塔什库尔干塔吉克自治县', '653131', '0998', 3449, 'Tajik Autonomousof Taxkorgan ');
+INSERT INTO `t_region` VALUES (3462, '和田地区', '653200', '0903', 3386, 'Hotan Prefecture ');
+INSERT INTO `t_region` VALUES (3463, '和田市', '653201', '0903', 3462, 'Hetian City');
+INSERT INTO `t_region` VALUES (3464, '和田县', '653221', '0903', 3462, 'Hotan');
+INSERT INTO `t_region` VALUES (3465, '墨玉县', '653222', '0903', 3462, 'Moyu');
+INSERT INTO `t_region` VALUES (3466, '皮山县', '653223', '0903', 3462, 'Pishan');
+INSERT INTO `t_region` VALUES (3467, '洛浦县', '653224', '0903', 3462, 'Lop');
+INSERT INTO `t_region` VALUES (3468, '策勒县', '653225', '0903', 3462, 'Qira');
+INSERT INTO `t_region` VALUES (3469, '于田县', '653226', '0903', 3462, 'Yutian');
+INSERT INTO `t_region` VALUES (3470, '民丰县', '653227', '0903', 3462, 'Minfeng');
+INSERT INTO `t_region` VALUES (3471, '伊犁哈萨克自治州', '654000', '0999', 3386, 'Kazak Autonomous Prefecture of Ili ');
+INSERT INTO `t_region` VALUES (3472, '伊宁市', '654002', '0999', 3471, 'Yining');
+INSERT INTO `t_region` VALUES (3473, '奎屯市', '654003', '0999', 3471, 'Kuytun');
+INSERT INTO `t_region` VALUES (3474, '霍尔果斯市', '654004', '0999', 3471, 'Huoerguosi City');
+INSERT INTO `t_region` VALUES (3475, '伊宁县', '654021', '0999', 3471, 'Yining');
+INSERT INTO `t_region` VALUES (3476, '察布查尔锡伯自治县', '654022', '0999', 3471, 'Xibe Autonomousof Qapqal ');
+INSERT INTO `t_region` VALUES (3477, '霍城县', '654023', '0999', 3471, 'Huocheng');
+INSERT INTO `t_region` VALUES (3478, '巩留县', '654024', '0999', 3471, 'Gongliu');
+INSERT INTO `t_region` VALUES (3479, '新源县', '654025', '0999', 3471, 'Xinyuan');
+INSERT INTO `t_region` VALUES (3480, '昭苏县', '654026', '0999', 3471, 'Zhaosu');
+INSERT INTO `t_region` VALUES (3481, '特克斯县', '654027', '0999', 3471, 'Tekes');
+INSERT INTO `t_region` VALUES (3482, '尼勒克县', '654028', '0999', 3471, 'Nilka');
+INSERT INTO `t_region` VALUES (3483, '塔城地区', '654200', '0901', 3386, 'Tacheng Prefecture ');
+INSERT INTO `t_region` VALUES (3484, '塔城市', '654201', '0901', 3483, 'tacheng city');
+INSERT INTO `t_region` VALUES (3485, '乌苏市', '654202', '0901', 3483, 'Wusu');
+INSERT INTO `t_region` VALUES (3486, '额敏县', '654221', '0901', 3483, 'Emin');
+INSERT INTO `t_region` VALUES (3487, '沙湾县', '654223', '0901', 3483, 'Shawan');
+INSERT INTO `t_region` VALUES (3488, '托里县', '654224', '0901', 3483, 'Toli');
+INSERT INTO `t_region` VALUES (3489, '裕民县', '654225', '0901', 3483, 'Yumin');
+INSERT INTO `t_region` VALUES (3490, '和布克赛尔蒙古自治县', '654226', '0901', 3483, 'Mongolian Autonomousof Hoboksar ');
+INSERT INTO `t_region` VALUES (3491, '阿勒泰地区', '654300', '0906', 3386, 'Altay Prefecture ');
+INSERT INTO `t_region` VALUES (3492, '阿勒泰市', '654301', '0906', 3491, 'Aletai City');
+INSERT INTO `t_region` VALUES (3493, '布尔津县', '654321', '0906', 3491, 'Burqin');
+INSERT INTO `t_region` VALUES (3494, '富蕴县', '654322', '0906', 3491, 'Fuyun');
+INSERT INTO `t_region` VALUES (3495, '福海县', '654323', '0906', 3491, 'Fuhai');
+INSERT INTO `t_region` VALUES (3496, '哈巴河县', '654324', '0906', 3491, 'Habahe');
+INSERT INTO `t_region` VALUES (3497, '青河县', '654325', '0906', 3491, 'Qinghe');
+INSERT INTO `t_region` VALUES (3498, '吉木乃县', '654326', '0906', 3491, 'Jeminay');
+INSERT INTO `t_region` VALUES (3499, '石河子市', '659001', '0993', 3491, 'Shihezi');
+INSERT INTO `t_region` VALUES (3500, '阿拉尔市', '659002', '1997', 3491, 'Alar City');
+INSERT INTO `t_region` VALUES (3501, '图木舒克市', '659003', '1998', 3491, 'Tumxuk');
+INSERT INTO `t_region` VALUES (3502, '五家渠市', '659004', '1994', 3491, 'Wujiaqu');
+INSERT INTO `t_region` VALUES (3503, '北屯市', '659005', '1906', 3491, 'North Tun City');
+INSERT INTO `t_region` VALUES (3504, '铁门关市', '659006', '1996', 3491, 'Iron gate in the city');
+INSERT INTO `t_region` VALUES (3505, '双河市', '659007', '1909', 3491, 'Shuanghe City');
+INSERT INTO `t_region` VALUES (3506, '可克达拉市', '659008', '1999', 3491, 'Kirdalla City');
+INSERT INTO `t_region` VALUES (3507, '昆玉市', '659009', '1903', 3491, 'Kun Yu City');
+INSERT INTO `t_region` VALUES (3508, '台湾省', '710000', '1886', 0, 'Taiwan Province ');
+INSERT INTO `t_region` VALUES (3509, '香港特别行政区', '810000', '1852', 0, 'Hong Kong Special Administrative Region(HKSAR) ');
+INSERT INTO `t_region` VALUES (3510, '中西区', '810001', '1852', 3491, 'Western and Western Region');
+INSERT INTO `t_region` VALUES (3511, '湾仔区', '810002', '1852', 3491, 'wan chai');
+INSERT INTO `t_region` VALUES (3512, '东区', '810003', '1852', 3491, 'Eastern Conference ');
+INSERT INTO `t_region` VALUES (3513, '南区', '810004', '1852', 3491, 'South Area');
+INSERT INTO `t_region` VALUES (3514, '油尖旺区', '810005', '1852', 3491, 'Oil spike');
+INSERT INTO `t_region` VALUES (3515, '深水埗区', '810006', '1852', 3491, 'Deepwater');
+INSERT INTO `t_region` VALUES (3516, '九龙城区', '810007', '1852', 3491, 'Kowloon City');
+INSERT INTO `t_region` VALUES (3517, '黄大仙区', '810008', '1852', 3491, 'Huang Da Xian');
+INSERT INTO `t_region` VALUES (3518, '观塘区', '810009', '1852', 3491, 'Kwun Tong');
+INSERT INTO `t_region` VALUES (3519, '荃湾区', '810010', '1852', 3491, 'Tsuen Wan');
+INSERT INTO `t_region` VALUES (3520, '屯门区', '810011', '1852', 3491, 'Tuen Mun');
+INSERT INTO `t_region` VALUES (3521, '元朗区', '810012', '1852', 3491, 'Yuen Long');
+INSERT INTO `t_region` VALUES (3522, '北区', '810013', '1852', 3491, 'Norte, Reg.');
+INSERT INTO `t_region` VALUES (3523, '大埔区', '810014', '1852', 3491, 'Tai Po');
+INSERT INTO `t_region` VALUES (3524, '西贡区', '810015', '1852', 3491, 'Sai Kung');
+INSERT INTO `t_region` VALUES (3525, '沙田区', '810016', '1852', 3491, 'sha tin');
+INSERT INTO `t_region` VALUES (3526, '葵青区', '810017', '1852', 3491, 'Kwai Tsing');
+INSERT INTO `t_region` VALUES (3527, '离岛区', '810018', '1852', 3491, 'islands');
+INSERT INTO `t_region` VALUES (3528, '澳门特别行政区', '820000', '1853', 0, 'the Macao Special Administrative Region');
+INSERT INTO `t_region` VALUES (3529, '花地玛堂区', '820001', '1853', 3491, 'Our Lady of Fatima Parish');
+INSERT INTO `t_region` VALUES (3530, '花王堂区', '820002', '1853', 3491, 'Flower Wang Tang');
+INSERT INTO `t_region` VALUES (3531, '望德堂区', '820003', '1853', 3491, 'Wang de Tang');
+INSERT INTO `t_region` VALUES (3532, '大堂区', '820004', '1853', 3491, 'Cathedral Parish');
+INSERT INTO `t_region` VALUES (3533, '风顺堂区', '820005', '1853', 3491, 'St. Lawrence Parish');
+INSERT INTO `t_region` VALUES (3534, '嘉模堂区', '820006', '1853', 3491, 'Jiaxu Tang');
+INSERT INTO `t_region` VALUES (3535, '路凼填海区', '820007', '1853', 3491, 'Taipan reclamation area');
+INSERT INTO `t_region` VALUES (3536, '圣方济各堂区', '820008', '1853', 3491, 'San Francisco');
+
+-- ----------------------------
+-- Table structure for t_server_carmodel
+-- ----------------------------
+DROP TABLE IF EXISTS `t_server_carmodel`;
+CREATE TABLE `t_server_carmodel`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `type` int(1) NULL DEFAULT NULL COMMENT '业务类型(1=专车,2=城际,3=包车)',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '车型名称',
+  `img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '车型图片',
+  `price` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '包车价格(100-300)',
+  `state` int(1) NULL DEFAULT NULL COMMENT '状态(1=正常,2=冻结,3=删除)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '服务车型' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_server_carmodel
+-- ----------------------------
+INSERT INTO `t_server_carmodel` VALUES (1, 1, '经济型', NULL, NULL, 1, '2020-09-21 11:32:44');
+INSERT INTO `t_server_carmodel` VALUES (2, 1, '尊享型', NULL, NULL, 1, '2020-09-21 11:32:58');
+INSERT INTO `t_server_carmodel` VALUES (3, 1, '豪华型', NULL, NULL, 1, '2020-09-21 11:33:11');
+INSERT INTO `t_server_carmodel` VALUES (4, 2, '优享型', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/0b1e60b708114e4e9d3aca11aa70c960.jpg', NULL, 1, '2020-09-23 17:41:22');
+INSERT INTO `t_server_carmodel` VALUES (5, 2, '豪华型', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/ea2426d214a94acc87bb68724dc4e1bd.jpg', NULL, 1, '2020-09-23 17:41:34');
+INSERT INTO `t_server_carmodel` VALUES (6, 2, '舒适型', '', NULL, 1, '2020-09-23 17:41:42');
+INSERT INTO `t_server_carmodel` VALUES (7, 3, '优享型', '', '100-300', 2, '2020-09-24 09:42:57');
+INSERT INTO `t_server_carmodel` VALUES (8, 3, '豪华型', 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/581833e2b52345a482a983a1070be783.jpg', '300-500', 1, '2020-09-24 09:43:25');
+
+-- ----------------------------
+-- Table structure for t_site
+-- ----------------------------
+DROP TABLE IF EXISTS `t_site`;
+CREATE TABLE `t_site`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '站点名称',
+  `province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '省名称',
+  `provinceCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '省编号',
+  `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '市名称',
+  `cityCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '市编号',
+  `district` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '区县名称',
+  `districtCode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '区县编号',
+  `coordinate` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '电子围栏坐标(多个以分号分隔)',
+  `state` int(2) NULL DEFAULT NULL COMMENT '状态(1=正常,2=冻结,3=删除)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `insertUserId` int(11) NULL DEFAULT NULL COMMENT '添加人id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '线路站点' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_site
+-- ----------------------------
+INSERT INTO `t_site` VALUES (1, '四川南充', '四川省', '510000', '南充市', '511300', NULL, NULL, NULL, 1, '2020-09-23 17:14:23', 1);
+INSERT INTO `t_site` VALUES (2, '四川成都', '四川省', '510000', '成都市', '510100', NULL, NULL, NULL, 1, '2020-09-23 17:46:03', 1);
+
+-- ----------------------------
+-- Table structure for t_smsrecord
+-- ----------------------------
+DROP TABLE IF EXISTS `t_smsrecord`;
+CREATE TABLE `t_smsrecord`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型:1=用户端注册/登录,2=用户端更换手机,3=用户端忘记密码,4=用户修改密码,5=司机注册,6=司机忘记密码,7=司机修改手机号,8=司机修改密码',
+  `phone` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '电话 ',
+  `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '验证码',
+  `content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '短信内容',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间 ',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1526 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '验证码' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_smsrecord
+-- ----------------------------
+INSERT INTO `t_smsrecord` VALUES (1183, 2, '18125525858', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 10:38:33');
+INSERT INTO `t_smsrecord` VALUES (1184, 5, '15928265276', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 10:51:08');
+INSERT INTO `t_smsrecord` VALUES (1185, 2, '18583838369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 11:07:17');
+INSERT INTO `t_smsrecord` VALUES (1186, 1, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 11:07:56');
+INSERT INTO `t_smsrecord` VALUES (1187, 1, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 11:08:48');
+INSERT INTO `t_smsrecord` VALUES (1188, 1, '18253738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 11:12:47');
+INSERT INTO `t_smsrecord` VALUES (1189, 2, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 11:15:16');
+INSERT INTO `t_smsrecord` VALUES (1190, 1, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 11:16:21');
+INSERT INTO `t_smsrecord` VALUES (1191, 1, '15907727138', '9538', '短信验证码【9538】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 19:04:25');
+INSERT INTO `t_smsrecord` VALUES (1192, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 19:07:46');
+INSERT INTO `t_smsrecord` VALUES (1193, 2, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 19:17:56');
+INSERT INTO `t_smsrecord` VALUES (1194, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-17 19:19:59');
+INSERT INTO `t_smsrecord` VALUES (1195, 5, '15928265276', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-18 09:00:43');
+INSERT INTO `t_smsrecord` VALUES (1196, 1, '15928265276', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-18 09:28:27');
+INSERT INTO `t_smsrecord` VALUES (1197, 1, '15828353127', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-18 22:06:50');
+INSERT INTO `t_smsrecord` VALUES (1198, 2, '15620989414', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 15:03:05');
+INSERT INTO `t_smsrecord` VALUES (1199, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 15:25:05');
+INSERT INTO `t_smsrecord` VALUES (1200, 5, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 15:38:42');
+INSERT INTO `t_smsrecord` VALUES (1201, 8, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 15:48:54');
+INSERT INTO `t_smsrecord` VALUES (1202, 8, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 16:06:08');
+INSERT INTO `t_smsrecord` VALUES (1203, 5, '15928265275', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 16:07:37');
+INSERT INTO `t_smsrecord` VALUES (1204, 8, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 16:08:23');
+INSERT INTO `t_smsrecord` VALUES (1205, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 16:13:38');
+INSERT INTO `t_smsrecord` VALUES (1206, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 16:19:03');
+INSERT INTO `t_smsrecord` VALUES (1207, 5, '15928265274', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 16:25:07');
+INSERT INTO `t_smsrecord` VALUES (1208, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:08:47');
+INSERT INTO `t_smsrecord` VALUES (1209, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:09:41');
+INSERT INTO `t_smsrecord` VALUES (1210, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:10:37');
+INSERT INTO `t_smsrecord` VALUES (1211, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:11:26');
+INSERT INTO `t_smsrecord` VALUES (1212, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:19:17');
+INSERT INTO `t_smsrecord` VALUES (1213, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:21:28');
+INSERT INTO `t_smsrecord` VALUES (1214, 5, '15946464646', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:24:43');
+INSERT INTO `t_smsrecord` VALUES (1215, 5, '11949467664', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:26:45');
+INSERT INTO `t_smsrecord` VALUES (1216, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:34:55');
+INSERT INTO `t_smsrecord` VALUES (1217, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:36:34');
+INSERT INTO `t_smsrecord` VALUES (1218, 1, '15828353127', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 17:37:59');
+INSERT INTO `t_smsrecord` VALUES (1219, 1, '15828353124', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 18:06:33');
+INSERT INTO `t_smsrecord` VALUES (1220, 1, '15828353127', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-19 18:08:35');
+INSERT INTO `t_smsrecord` VALUES (1221, 1, '15907727138', '9287', '短信验证码【9287】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-20 15:52:20');
+INSERT INTO `t_smsrecord` VALUES (1222, 1, '15928267524', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-21 11:34:48');
+INSERT INTO `t_smsrecord` VALUES (1223, 1, '18172192319', '3420', '短信验证码【3420】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-22 20:37:45');
+INSERT INTO `t_smsrecord` VALUES (1224, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-24 09:43:00');
+INSERT INTO `t_smsrecord` VALUES (1225, 1, '15828353127', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-24 18:55:33');
+INSERT INTO `t_smsrecord` VALUES (1226, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-27 10:24:18');
+INSERT INTO `t_smsrecord` VALUES (1227, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-27 10:26:09');
+INSERT INTO `t_smsrecord` VALUES (1228, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-27 10:32:53');
+INSERT INTO `t_smsrecord` VALUES (1229, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-27 15:35:49');
+INSERT INTO `t_smsrecord` VALUES (1230, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-27 15:40:18');
+INSERT INTO `t_smsrecord` VALUES (1231, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-27 15:43:43');
+INSERT INTO `t_smsrecord` VALUES (1232, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-28 06:09:17');
+INSERT INTO `t_smsrecord` VALUES (1233, 5, '15943464646', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-28 11:23:19');
+INSERT INTO `t_smsrecord` VALUES (1234, 5, '18588980387', '2267', '短信验证码【2267】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-28 14:58:27');
+INSERT INTO `t_smsrecord` VALUES (1235, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 05:04:43');
+INSERT INTO `t_smsrecord` VALUES (1236, 1, '15907721776', '3895', '短信验证码【3895】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 08:41:38');
+INSERT INTO `t_smsrecord` VALUES (1237, 1, '15620989414', '9208', '短信验证码【9208】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 09:38:51');
+INSERT INTO `t_smsrecord` VALUES (1238, 1, '18077225823', '0453', '短信验证码【0453】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 12:08:49');
+INSERT INTO `t_smsrecord` VALUES (1239, 1, '15907721776', '9759', '短信验证码【9759】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 12:43:43');
+INSERT INTO `t_smsrecord` VALUES (1240, 1, '13326849396', '8601', '短信验证码【8601】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 12:57:03');
+INSERT INTO `t_smsrecord` VALUES (1241, 2, '17677327183', '0155', '短信验证码【0155】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 14:11:04');
+INSERT INTO `t_smsrecord` VALUES (1242, 1, '15907721776', '6928', '短信验证码【6928】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 14:47:45');
+INSERT INTO `t_smsrecord` VALUES (1243, 1, '15907727138', '2387', '短信验证码【2387】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 14:53:32');
+INSERT INTO `t_smsrecord` VALUES (1244, 8, '13481260636', '8958', '短信验证码【8958】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 15:00:20');
+INSERT INTO `t_smsrecord` VALUES (1245, 1, '15777252036', '5237', '短信验证码【5237】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 16:58:00');
+INSERT INTO `t_smsrecord` VALUES (1246, 2, '15677223830', '4086', '短信验证码【4086】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-29 18:13:40');
+INSERT INTO `t_smsrecord` VALUES (1247, 8, '13977273005', '9170', '短信验证码【9170】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 05:09:57');
+INSERT INTO `t_smsrecord` VALUES (1248, 1, '13907720849', '8430', '短信验证码【8430】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 09:29:06');
+INSERT INTO `t_smsrecord` VALUES (1249, 1, '13507721721', '5050', '短信验证码【5050】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 09:37:53');
+INSERT INTO `t_smsrecord` VALUES (1250, 2, '13026928410', '3283', '短信验证码【3283】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 12:13:55');
+INSERT INTO `t_smsrecord` VALUES (1251, 2, '18577201716', '2235', '短信验证码【2235】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 12:30:23');
+INSERT INTO `t_smsrecord` VALUES (1252, 1, '18277265480', '9521', '短信验证码【9521】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 14:26:22');
+INSERT INTO `t_smsrecord` VALUES (1253, 1, '18277265480', '7851', '短信验证码【7851】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 14:27:21');
+INSERT INTO `t_smsrecord` VALUES (1254, 1, '17774857859', '6042', '短信验证码【6042】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 17:02:24');
+INSERT INTO `t_smsrecord` VALUES (1255, 1, '18172248490', '2573', '短信验证码【2573】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 19:35:01');
+INSERT INTO `t_smsrecord` VALUES (1256, 1, '13977291069', '1799', '短信验证码【1799】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-30 20:40:08');
+INSERT INTO `t_smsrecord` VALUES (1257, 1, '13247563624', '5729', '短信验证码【5729】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 07:49:08');
+INSERT INTO `t_smsrecord` VALUES (1258, 1, '15077218939', '5500', '短信验证码【5500】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 08:44:35');
+INSERT INTO `t_smsrecord` VALUES (1259, 1, '15907721776', '7885', '短信验证码【7885】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 09:15:53');
+INSERT INTO `t_smsrecord` VALUES (1260, 1, '18176724543', '2801', '短信验证码【2801】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 12:10:34');
+INSERT INTO `t_smsrecord` VALUES (1261, 1, '13548059194', '5759', '短信验证码【5759】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 12:40:20');
+INSERT INTO `t_smsrecord` VALUES (1262, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 13:56:55');
+INSERT INTO `t_smsrecord` VALUES (1263, 1, '13633094627', '9140', '短信验证码【9140】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 16:18:02');
+INSERT INTO `t_smsrecord` VALUES (1264, 2, '13557721933', '3768', '短信验证码【3768】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-08-31 16:34:04');
+INSERT INTO `t_smsrecord` VALUES (1265, 1, '17376113373', '1170', '短信验证码【1170】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 09:00:15');
+INSERT INTO `t_smsrecord` VALUES (1266, 1, '18380475176', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 09:05:07');
+INSERT INTO `t_smsrecord` VALUES (1267, 1, '18380475138', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 09:22:16');
+INSERT INTO `t_smsrecord` VALUES (1268, 1, '13059464518', '4821', '短信验证码【4821】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 11:06:20');
+INSERT INTO `t_smsrecord` VALUES (1269, 2, '18077213921', '1397', '短信验证码【1397】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 13:14:08');
+INSERT INTO `t_smsrecord` VALUES (1270, 1, '13633081142', '8802', '短信验证码【8802】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 13:51:26');
+INSERT INTO `t_smsrecord` VALUES (1271, 1, '13633081142', '7249', '短信验证码【7249】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 13:52:54');
+INSERT INTO `t_smsrecord` VALUES (1272, 1, '15878737003', '3437', '短信验证码【3437】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 15:16:15');
+INSERT INTO `t_smsrecord` VALUES (1273, 1, '15878737003', '0444', '短信验证码【0444】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 15:18:26');
+INSERT INTO `t_smsrecord` VALUES (1274, 1, '19849702178', '2817', '短信验证码【2817】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-01 21:44:17');
+INSERT INTO `t_smsrecord` VALUES (1275, 1, '15278894074', '2279', '短信验证码【2279】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 06:55:35');
+INSERT INTO `t_smsrecord` VALUES (1276, 1, '15278894074', '0085', '短信验证码【0085】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 07:00:28');
+INSERT INTO `t_smsrecord` VALUES (1277, 1, '15278894074', '0135', '短信验证码【0135】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 07:29:21');
+INSERT INTO `t_smsrecord` VALUES (1278, 1, '15278894074', '5213', '短信验证码【5213】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 07:53:51');
+INSERT INTO `t_smsrecord` VALUES (1279, 1, '18507720528', '9140', '短信验证码【9140】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 09:31:58');
+INSERT INTO `t_smsrecord` VALUES (1280, 1, '18778920921', '3937', '短信验证码【3937】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 14:10:10');
+INSERT INTO `t_smsrecord` VALUES (1281, 1, '15907721776', '0091', '短信验证码【0091】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 14:30:18');
+INSERT INTO `t_smsrecord` VALUES (1282, 2, '13877285931', '8162', '短信验证码【8162】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 14:51:18');
+INSERT INTO `t_smsrecord` VALUES (1283, 1, '13321624505', '3946', '短信验证码【3946】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 16:13:11');
+INSERT INTO `t_smsrecord` VALUES (1284, 1, '15907727138', '5381', '短信验证码【5381】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 17:03:25');
+INSERT INTO `t_smsrecord` VALUES (1285, 1, '13321624505', '1650', '短信验证码【1650】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 17:35:35');
+INSERT INTO `t_smsrecord` VALUES (1286, 1, '13321624505', '1642', '短信验证码【1642】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 17:43:31');
+INSERT INTO `t_smsrecord` VALUES (1287, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 18:15:06');
+INSERT INTO `t_smsrecord` VALUES (1288, 1, '19957368198', '8700', '短信验证码【8700】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-02 19:46:47');
+INSERT INTO `t_smsrecord` VALUES (1289, 1, '13321624505', '4460', '短信验证码【4460】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 13:39:29');
+INSERT INTO `t_smsrecord` VALUES (1290, 1, '15907727138', '4954', '短信验证码【4954】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 13:59:37');
+INSERT INTO `t_smsrecord` VALUES (1291, 1, '15907727138', '4970', '短信验证码【4970】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 14:00:51');
+INSERT INTO `t_smsrecord` VALUES (1292, 1, '13321624505', '1357', '短信验证码【1357】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 14:06:56');
+INSERT INTO `t_smsrecord` VALUES (1293, 1, '18178803160', '6967', '短信验证码【6967】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 14:25:24');
+INSERT INTO `t_smsrecord` VALUES (1294, 1, '18178803160', '0560', '短信验证码【0560】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 14:31:37');
+INSERT INTO `t_smsrecord` VALUES (1295, 1, '18178803160', '8239', '短信验证码【8239】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 14:36:03');
+INSERT INTO `t_smsrecord` VALUES (1296, 1, '18178803160', '7156', '短信验证码【7156】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 14:55:04');
+INSERT INTO `t_smsrecord` VALUES (1297, 1, '18077285431', '3305', '短信验证码【3305】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-03 21:01:14');
+INSERT INTO `t_smsrecord` VALUES (1298, 2, '18577622045', '9016', '短信验证码【9016】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 07:41:22');
+INSERT INTO `t_smsrecord` VALUES (1299, 2, '18589999268', '8390', '短信验证码【8390】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 10:55:38');
+INSERT INTO `t_smsrecord` VALUES (1300, 4, '13633081142', '2968', '短信验证码【2968】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 12:32:27');
+INSERT INTO `t_smsrecord` VALUES (1301, 4, '13633081142', '2968', '短信验证码【2968】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 12:32:36');
+INSERT INTO `t_smsrecord` VALUES (1302, 4, '13633081142', '2968', '短信验证码【2968】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 12:32:45');
+INSERT INTO `t_smsrecord` VALUES (1303, 1, '18177224916', '9238', '短信验证码【9238】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:43:41');
+INSERT INTO `t_smsrecord` VALUES (1304, 1, '18177224916', '2373', '短信验证码【2373】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:44:21');
+INSERT INTO `t_smsrecord` VALUES (1305, 1, '13907728538', '6578', '短信验证码【6578】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:47:46');
+INSERT INTO `t_smsrecord` VALUES (1306, 4, '13907728538', '1566', '短信验证码【1566】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:49:19');
+INSERT INTO `t_smsrecord` VALUES (1307, 4, '13907728538', '1566', '短信验证码【1566】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:49:35');
+INSERT INTO `t_smsrecord` VALUES (1308, 4, '13907728538', '2141', '短信验证码【2141】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:50:32');
+INSERT INTO `t_smsrecord` VALUES (1309, 4, '13907728538', '2141', '短信验证码【2141】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:50:33');
+INSERT INTO `t_smsrecord` VALUES (1310, 4, '13907728538', '2141', '短信验证码【2141】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:50:34');
+INSERT INTO `t_smsrecord` VALUES (1311, 4, '13907728538', '2141', '短信验证码【2141】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:50:34');
+INSERT INTO `t_smsrecord` VALUES (1312, 4, '13907728538', '1566', '短信验证码【1566】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 15:50:44');
+INSERT INTO `t_smsrecord` VALUES (1313, 1, '13667808997', '7131', '短信验证码【7131】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 18:30:56');
+INSERT INTO `t_smsrecord` VALUES (1314, 8, '13597065619', '8506', '短信验证码【8506】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 19:31:48');
+INSERT INTO `t_smsrecord` VALUES (1315, 6, '13597065619', '8506', '短信验证码【8506】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 19:31:49');
+INSERT INTO `t_smsrecord` VALUES (1316, 1, '18177247130', '9565', '短信验证码【9565】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 20:00:53');
+INSERT INTO `t_smsrecord` VALUES (1317, 8, '15777278144', '5103', '短信验证码【5103】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 21:01:27');
+INSERT INTO `t_smsrecord` VALUES (1318, 6, '15777278144', '5103', '短信验证码【5103】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 21:01:27');
+INSERT INTO `t_smsrecord` VALUES (1319, 8, '15077216767', '8905', '短信验证码【8905】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 21:56:34');
+INSERT INTO `t_smsrecord` VALUES (1320, 6, '15077216767', '8905', '短信验证码【8905】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 21:56:34');
+INSERT INTO `t_smsrecord` VALUES (1321, 2, '15678056880', '9011', '短信验证码【9011】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:11:17');
+INSERT INTO `t_smsrecord` VALUES (1322, 4, '15678056880', '0201', '短信验证码【0201】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:12:20');
+INSERT INTO `t_smsrecord` VALUES (1323, 4, '15678056880', '0201', '短信验证码【0201】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:12:22');
+INSERT INTO `t_smsrecord` VALUES (1324, 4, '15678056880', '0201', '短信验证码【0201】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:12:23');
+INSERT INTO `t_smsrecord` VALUES (1325, 4, '15678056880', '0201', '短信验证码【0201】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:12:23');
+INSERT INTO `t_smsrecord` VALUES (1326, 4, '15678056880', '0201', '短信验证码【0201】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:12:26');
+INSERT INTO `t_smsrecord` VALUES (1327, 8, '13669623698', '7096', '短信验证码【7096】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:13:36');
+INSERT INTO `t_smsrecord` VALUES (1328, 6, '13669623698', '7096', '短信验证码【7096】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-04 23:13:36');
+INSERT INTO `t_smsrecord` VALUES (1329, 1, '15877280926', '9297', '短信验证码【9297】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 08:33:24');
+INSERT INTO `t_smsrecord` VALUES (1330, 1, '13877253131', '9406', '短信验证码【9406】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 09:05:58');
+INSERT INTO `t_smsrecord` VALUES (1331, 1, '15177753267', '5144', '短信验证码【5144】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 11:22:02');
+INSERT INTO `t_smsrecord` VALUES (1332, 1, '13507720175', '6343', '短信验证码【6343】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 13:29:27');
+INSERT INTO `t_smsrecord` VALUES (1333, 1, '13737275888', '4875', '短信验证码【4875】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 14:57:03');
+INSERT INTO `t_smsrecord` VALUES (1334, 1, '13877261338', '5853', '短信验证码【5853】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 17:09:23');
+INSERT INTO `t_smsrecord` VALUES (1335, 2, '13597030858', '4132', '短信验证码【4132】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 17:49:50');
+INSERT INTO `t_smsrecord` VALUES (1336, 1, '18276809035', '7555', '短信验证码【7555】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 18:19:14');
+INSERT INTO `t_smsrecord` VALUES (1337, 1, '17776456572', '8947', '短信验证码【8947】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 18:28:35');
+INSERT INTO `t_smsrecord` VALUES (1338, 1, '18276724507', '9813', '短信验证码【9813】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 20:04:54');
+INSERT INTO `t_smsrecord` VALUES (1339, 1, '18154758996', '2723', '短信验证码【2723】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 21:08:38');
+INSERT INTO `t_smsrecord` VALUES (1340, 1, '18974559352', '4563', '短信验证码【4563】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 21:24:39');
+INSERT INTO `t_smsrecord` VALUES (1341, 2, '18978029828', '3887', '短信验证码【3887】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 22:36:00');
+INSERT INTO `t_smsrecord` VALUES (1342, 8, '15676264710', '4945', '短信验证码【4945】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 22:57:37');
+INSERT INTO `t_smsrecord` VALUES (1343, 1, '18276221693', '2136', '短信验证码【2136】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-05 23:10:00');
+INSERT INTO `t_smsrecord` VALUES (1344, 1, '13977240801', '7620', '短信验证码【7620】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 05:24:38');
+INSERT INTO `t_smsrecord` VALUES (1345, 8, '15077201667', '1129', '短信验证码【1129】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 08:16:01');
+INSERT INTO `t_smsrecord` VALUES (1346, 6, '15077201667', '1129', '短信验证码【1129】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 08:16:02');
+INSERT INTO `t_smsrecord` VALUES (1347, 5, '18607721255', '9936', '短信验证码【9936】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 09:34:30');
+INSERT INTO `t_smsrecord` VALUES (1348, 7, '18607721255', '9936', '短信验证码【9936】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 09:34:30');
+INSERT INTO `t_smsrecord` VALUES (1349, 8, '18178268722', '5100', '短信验证码【5100】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 12:32:57');
+INSERT INTO `t_smsrecord` VALUES (1350, 6, '18178268722', '5100', '短信验证码【5100】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 12:32:57');
+INSERT INTO `t_smsrecord` VALUES (1351, 1, '18276957734', '3208', '短信验证码【3208】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-06 14:04:48');
+INSERT INTO `t_smsrecord` VALUES (1352, 1, '13877296096', '1036', '短信验证码【1036】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 07:39:00');
+INSERT INTO `t_smsrecord` VALUES (1353, 1, '13633066910', '0340', '短信验证码【0340】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 07:46:55');
+INSERT INTO `t_smsrecord` VALUES (1354, 1, '15977281576', '9192', '短信验证码【9192】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 08:05:10');
+INSERT INTO `t_smsrecord` VALUES (1355, 1, '13687737839', '2151', '短信验证码【2151】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 08:27:09');
+INSERT INTO `t_smsrecord` VALUES (1356, 1, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 10:35:21');
+INSERT INTO `t_smsrecord` VALUES (1357, 1, '18978075163', '1991', '短信验证码【1991】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 10:38:06');
+INSERT INTO `t_smsrecord` VALUES (1358, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 11:25:40');
+INSERT INTO `t_smsrecord` VALUES (1359, 1, '18897720762', '2026', '短信验证码【2026】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 13:49:04');
+INSERT INTO `t_smsrecord` VALUES (1360, 1, '15907721890', '3943', '短信验证码【3943】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 14:41:05');
+INSERT INTO `t_smsrecord` VALUES (1361, 1, '15277215208', '3023', '短信验证码【3023】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 17:09:15');
+INSERT INTO `t_smsrecord` VALUES (1362, 1, '13977277909', '0229', '短信验证码【0229】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 17:50:31');
+INSERT INTO `t_smsrecord` VALUES (1363, 2, '18687031537', '8236', '短信验证码【8236】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 18:41:57');
+INSERT INTO `t_smsrecord` VALUES (1364, 1, '18178284995', '5845', '短信验证码【5845】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 22:39:49');
+INSERT INTO `t_smsrecord` VALUES (1365, 1, '15347769432', '9013', '短信验证码【9013】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-07 23:55:44');
+INSERT INTO `t_smsrecord` VALUES (1366, 1, '13367622539', '2971', '短信验证码【2971】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 07:31:01');
+INSERT INTO `t_smsrecord` VALUES (1367, 1, '15878227532', '9460', '短信验证码【9460】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 08:46:52');
+INSERT INTO `t_smsrecord` VALUES (1368, 2, '13367729581', '6581', '短信验证码【6581】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 16:31:24');
+INSERT INTO `t_smsrecord` VALUES (1369, 1, '18078251949', '6255', '短信验证码【6255】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 18:11:28');
+INSERT INTO `t_smsrecord` VALUES (1370, 2, '18378905436', '3064', '短信验证码【3064】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 18:48:04');
+INSERT INTO `t_smsrecord` VALUES (1371, 5, '19977241198', '7235', '短信验证码【7235】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 19:16:50');
+INSERT INTO `t_smsrecord` VALUES (1372, 1, '15130510371', '0961', '短信验证码【0961】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 19:58:00');
+INSERT INTO `t_smsrecord` VALUES (1373, 2, '13481232100', '6332', '短信验证码【6332】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 20:12:48');
+INSERT INTO `t_smsrecord` VALUES (1374, 8, '19977241198', '1519', '短信验证码【1519】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-08 21:02:59');
+INSERT INTO `t_smsrecord` VALUES (1375, 1, '18277211260', '2776', '短信验证码【2776】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 02:13:01');
+INSERT INTO `t_smsrecord` VALUES (1376, 8, '13707809357', '5854', '短信验证码【5854】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 05:05:42');
+INSERT INTO `t_smsrecord` VALUES (1377, 1, '13317728686', '1238', '短信验证码【1238】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 08:16:55');
+INSERT INTO `t_smsrecord` VALUES (1378, 5, '18777261093', '6385', '短信验证码【6385】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 09:50:08');
+INSERT INTO `t_smsrecord` VALUES (1379, 8, '13471208127', '2277', '短信验证码【2277】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:05:47');
+INSERT INTO `t_smsrecord` VALUES (1380, 8, '13471208127', '2664', '短信验证码【2664】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:09:30');
+INSERT INTO `t_smsrecord` VALUES (1381, 1, '18178803160', '4497', '短信验证码【4497】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:10:24');
+INSERT INTO `t_smsrecord` VALUES (1382, 8, '18177245220', '5980', '短信验证码【5980】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:32:18');
+INSERT INTO `t_smsrecord` VALUES (1383, 6, '18177245220', '5980', '短信验证码【5980】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:32:18');
+INSERT INTO `t_smsrecord` VALUES (1384, 8, '18177245220', '0736', '短信验证码【0736】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:34:22');
+INSERT INTO `t_smsrecord` VALUES (1385, 6, '18177245220', '0736', '短信验证码【0736】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:34:22');
+INSERT INTO `t_smsrecord` VALUES (1386, 8, '18177245220', '2286', '短信验证码【2286】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:36:39');
+INSERT INTO `t_smsrecord` VALUES (1387, 5, '15102822653', '5509', '短信验证码【5509】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 10:37:28');
+INSERT INTO `t_smsrecord` VALUES (1388, 1, '13877277700', '6606', '短信验证码【6606】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 12:08:41');
+INSERT INTO `t_smsrecord` VALUES (1389, 1, '15878198800', '9831', '短信验证码【9831】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 13:30:44');
+INSERT INTO `t_smsrecord` VALUES (1390, 8, '13471208127', '0401', '短信验证码【0401】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 14:47:11');
+INSERT INTO `t_smsrecord` VALUES (1391, 6, '13471208127', '0401', '短信验证码【0401】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 14:47:11');
+INSERT INTO `t_smsrecord` VALUES (1392, 8, '13471208127', '8262', '短信验证码【8262】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 15:04:43');
+INSERT INTO `t_smsrecord` VALUES (1393, 8, '13471208127', '7701', '短信验证码【7701】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 15:46:54');
+INSERT INTO `t_smsrecord` VALUES (1394, 5, '13978059360', '1084', '短信验证码【1084】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 16:43:12');
+INSERT INTO `t_smsrecord` VALUES (1395, 2, '18077225361', '2084', '短信验证码【2084】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 17:27:44');
+INSERT INTO `t_smsrecord` VALUES (1396, 5, '18816091653', '5506', '短信验证码【5506】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 21:53:13');
+INSERT INTO `t_smsrecord` VALUES (1397, 5, '18816091653', '5506', '短信验证码【5506】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 21:53:17');
+INSERT INTO `t_smsrecord` VALUES (1398, 5, '18816091653', '5506', '短信验证码【5506】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 21:53:21');
+INSERT INTO `t_smsrecord` VALUES (1399, 5, '18816091653', '5506', '短信验证码【5506】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 21:53:27');
+INSERT INTO `t_smsrecord` VALUES (1400, 1, '15347727656', '0324', '短信验证码【0324】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 23:35:33');
+INSERT INTO `t_smsrecord` VALUES (1401, 1, '15347727656', '4612', '短信验证码【4612】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-09 23:36:54');
+INSERT INTO `t_smsrecord` VALUES (1402, 1, '17776447894', '2153', '短信验证码【2153】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 08:41:37');
+INSERT INTO `t_smsrecord` VALUES (1403, 1, '15907721776', '1551', '短信验证码【1551】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 11:33:14');
+INSERT INTO `t_smsrecord` VALUES (1404, 5, '15621268288', '5999', '短信验证码【5999】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 13:58:05');
+INSERT INTO `t_smsrecord` VALUES (1405, 1, '15946464664', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 15:07:08');
+INSERT INTO `t_smsrecord` VALUES (1406, 1, '13321624505', '4568', '短信验证码【4568】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 16:47:54');
+INSERT INTO `t_smsrecord` VALUES (1407, 1, '17754572457', '9091', '短信验证码【9091】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 17:12:27');
+INSERT INTO `t_smsrecord` VALUES (1408, 1, '13558222821', '6715', '短信验证码【6715】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 20:13:03');
+INSERT INTO `t_smsrecord` VALUES (1409, 1, '17707838945', '8241', '短信验证码【8241】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 22:12:20');
+INSERT INTO `t_smsrecord` VALUES (1410, 1, '18977287613', '3926', '短信验证码【3926】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-10 23:08:23');
+INSERT INTO `t_smsrecord` VALUES (1411, 2, '15078464310', '2969', '短信验证码【2969】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 00:28:29');
+INSERT INTO `t_smsrecord` VALUES (1412, 8, '15621268288', '9590', '短信验证码【9590】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 09:25:09');
+INSERT INTO `t_smsrecord` VALUES (1413, 5, '15218107843', '7068', '短信验证码【7068】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 10:01:03');
+INSERT INTO `t_smsrecord` VALUES (1414, 2, '13481236587', '5922', '短信验证码【5922】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 10:10:44');
+INSERT INTO `t_smsrecord` VALUES (1415, 5, '18711330007', '2837', '短信验证码【2837】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 10:46:06');
+INSERT INTO `t_smsrecord` VALUES (1416, 1, '15907727138', '0576', '短信验证码【0576】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 10:55:09');
+INSERT INTO `t_smsrecord` VALUES (1417, 1, '18813898559', '7941', '短信验证码【7941】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 13:07:02');
+INSERT INTO `t_smsrecord` VALUES (1418, 2, '17300088571', '9491', '短信验证码【9491】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 13:19:20');
+INSERT INTO `t_smsrecord` VALUES (1419, 1, '13368407654', '3224', '短信验证码【3224】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 16:39:04');
+INSERT INTO `t_smsrecord` VALUES (1420, 1, '15347757983', '1843', '短信验证码【1843】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 17:34:32');
+INSERT INTO `t_smsrecord` VALUES (1421, 1, '15347757983', '2455', '短信验证码【2455】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 17:35:42');
+INSERT INTO `t_smsrecord` VALUES (1422, 5, '17776303397', '1080', '短信验证码【1080】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 17:44:20');
+INSERT INTO `t_smsrecord` VALUES (1423, 1, '17687271872', '0119', '短信验证码【0119】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 17:54:10');
+INSERT INTO `t_smsrecord` VALUES (1424, 1, '13877296706', '4184', '短信验证码【4184】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 17:55:23');
+INSERT INTO `t_smsrecord` VALUES (1425, 1, '13877296706', '1514', '短信验证码【1514】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 17:56:25');
+INSERT INTO `t_smsrecord` VALUES (1426, 1, '18978044060', '0721', '短信验证码【0721】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:02:24');
+INSERT INTO `t_smsrecord` VALUES (1427, 1, '18077242553', '0403', '短信验证码【0403】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:11:22');
+INSERT INTO `t_smsrecord` VALUES (1428, 1, '18077242553', '9519', '短信验证码【9519】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:12:23');
+INSERT INTO `t_smsrecord` VALUES (1429, 1, '13768866728', '7696', '短信验证码【7696】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:21:59');
+INSERT INTO `t_smsrecord` VALUES (1430, 1, '17776309588', '2513', '短信验证码【2513】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:21:59');
+INSERT INTO `t_smsrecord` VALUES (1431, 1, '13877269701', '4512', '短信验证码【4512】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:26:17');
+INSERT INTO `t_smsrecord` VALUES (1432, 5, '18376206939', '3251', '短信验证码【3251】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:30:17');
+INSERT INTO `t_smsrecord` VALUES (1433, 1, '13737258975', '2903', '短信验证码【2903】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:39:45');
+INSERT INTO `t_smsrecord` VALUES (1434, 1, '15347772319', '7686', '短信验证码【7686】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 18:44:02');
+INSERT INTO `t_smsrecord` VALUES (1435, 1, '18076702510', '3147', '短信验证码【3147】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 19:02:51');
+INSERT INTO `t_smsrecord` VALUES (1436, 1, '13977210484', '9025', '短信验证码【9025】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 19:25:54');
+INSERT INTO `t_smsrecord` VALUES (1437, 5, '13712632214', '1121', '短信验证码【1121】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 19:40:37');
+INSERT INTO `t_smsrecord` VALUES (1438, 1, '13257815618', '8025', '短信验证码【8025】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 19:41:43');
+INSERT INTO `t_smsrecord` VALUES (1439, 1, '13877266117', '7778', '短信验证码【7778】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 20:15:12');
+INSERT INTO `t_smsrecord` VALUES (1440, 2, '18586544243', '9484', '短信验证码【9484】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 20:53:34');
+INSERT INTO `t_smsrecord` VALUES (1441, 1, '15778286826', '1770', '短信验证码【1770】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:05:15');
+INSERT INTO `t_smsrecord` VALUES (1442, 2, '18154770905', '9190', '短信验证码【9190】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:07:51');
+INSERT INTO `t_smsrecord` VALUES (1443, 2, '18077209852', '2116', '短信验证码【2116】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:08:32');
+INSERT INTO `t_smsrecord` VALUES (1444, 1, '18177226729', '7124', '短信验证码【7124】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:13:21');
+INSERT INTO `t_smsrecord` VALUES (1445, 1, '18177226729', '6210', '短信验证码【6210】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:14:25');
+INSERT INTO `t_smsrecord` VALUES (1446, 1, '13558327170', '4429', '短信验证码【4429】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:27:06');
+INSERT INTO `t_smsrecord` VALUES (1447, 1, '19144205502', '8350', '短信验证码【8350】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 21:37:29');
+INSERT INTO `t_smsrecord` VALUES (1448, 5, '18178807704', '6747', '短信验证码【6747】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 22:01:31');
+INSERT INTO `t_smsrecord` VALUES (1449, 1, '18996324019', '2750', '短信验证码【2750】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 22:16:15');
+INSERT INTO `t_smsrecord` VALUES (1450, 1, '18978098622', '7794', '短信验证码【7794】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 22:22:23');
+INSERT INTO `t_smsrecord` VALUES (1451, 2, '13977295969', '7036', '短信验证码【7036】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 22:23:08');
+INSERT INTO `t_smsrecord` VALUES (1452, 1, '18978098622', '7555', '短信验证码【7555】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 22:25:38');
+INSERT INTO `t_smsrecord` VALUES (1453, 2, '15577219638', '0660', '短信验证码【0660】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-11 22:29:48');
+INSERT INTO `t_smsrecord` VALUES (1454, 5, '18977281049', '5017', '短信验证码【5017】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 01:22:34');
+INSERT INTO `t_smsrecord` VALUES (1455, 2, '17307727912', '3087', '短信验证码【3087】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 03:24:47');
+INSERT INTO `t_smsrecord` VALUES (1456, 1, '15278887738', '0876', '短信验证码【0876】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 03:37:53');
+INSERT INTO `t_smsrecord` VALUES (1457, 1, '13978068824', '4866', '短信验证码【4866】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 03:38:28');
+INSERT INTO `t_smsrecord` VALUES (1458, 1, '13978068824', '6698', '短信验证码【6698】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 03:41:04');
+INSERT INTO `t_smsrecord` VALUES (1459, 1, '13978068824', '2805', '短信验证码【2805】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 03:43:14');
+INSERT INTO `t_smsrecord` VALUES (1460, 8, '15218107843', '0080', '短信验证码【0080】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 07:39:04');
+INSERT INTO `t_smsrecord` VALUES (1461, 2, '17777217129', '5291', '短信验证码【5291】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 08:01:29');
+INSERT INTO `t_smsrecord` VALUES (1462, 5, '13724553985', '0303', '短信验证码【0303】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 08:54:33');
+INSERT INTO `t_smsrecord` VALUES (1463, 2, '18877278189', '2290', '短信验证码【2290】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 09:46:26');
+INSERT INTO `t_smsrecord` VALUES (1464, 1, '13877253131', '6018', '短信验证码【6018】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 15:25:44');
+INSERT INTO `t_smsrecord` VALUES (1465, 1, '18877200259', '0500', '短信验证码【0500】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 17:37:29');
+INSERT INTO `t_smsrecord` VALUES (1466, 1, '15778294727', '6616', '短信验证码【6616】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 17:59:26');
+INSERT INTO `t_smsrecord` VALUES (1467, 1, '13317728686', '2180', '短信验证码【2180】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 18:10:35');
+INSERT INTO `t_smsrecord` VALUES (1468, 5, '13669463381', '0814', '短信验证码【0814】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 19:14:10');
+INSERT INTO `t_smsrecord` VALUES (1469, 1, '15332789680', '6024', '短信验证码【6024】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-12 22:33:17');
+INSERT INTO `t_smsrecord` VALUES (1470, 5, '13558122848', '7745', '短信验证码【7745】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 10:35:48');
+INSERT INTO `t_smsrecord` VALUES (1471, 1, '18172171303', '1524', '短信验证码【1524】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 12:00:34');
+INSERT INTO `t_smsrecord` VALUES (1472, 5, '18978092602', '9397', '短信验证码【9397】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 19:00:21');
+INSERT INTO `t_smsrecord` VALUES (1473, 5, '18978092602', '9397', '短信验证码【9397】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 19:00:29');
+INSERT INTO `t_smsrecord` VALUES (1474, 5, '18978092602', '6263', '短信验证码【6263】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 19:01:15');
+INSERT INTO `t_smsrecord` VALUES (1475, 5, '18483608958', '4683', '短信验证码【4683】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 23:52:38');
+INSERT INTO `t_smsrecord` VALUES (1476, 5, '18483608958', '0917', '短信验证码【0917】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-13 23:54:17');
+INSERT INTO `t_smsrecord` VALUES (1477, 8, '13558122848', '1289', '短信验证码【1289】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-14 09:13:01');
+INSERT INTO `t_smsrecord` VALUES (1478, 5, '18328189962', '0318', '短信验证码【0318】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-14 09:31:48');
+INSERT INTO `t_smsrecord` VALUES (1479, 1, '13557123286', '5909', '短信验证码【5909】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-14 15:06:26');
+INSERT INTO `t_smsrecord` VALUES (1480, 2, '18377275719', '4777', '短信验证码【4777】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-14 23:07:06');
+INSERT INTO `t_smsrecord` VALUES (1481, 8, '18648865662', '4504', '短信验证码【4504】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 00:11:58');
+INSERT INTO `t_smsrecord` VALUES (1482, 1, '13907728740', '0466', '短信验证码【0466】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 03:21:53');
+INSERT INTO `t_smsrecord` VALUES (1483, 8, '18648865662', '6716', '短信验证码【6716】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 07:15:00');
+INSERT INTO `t_smsrecord` VALUES (1484, 5, '13633055037', '3623', '短信验证码【3623】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 10:16:07');
+INSERT INTO `t_smsrecord` VALUES (1485, 1, '15707725715', '1771', '短信验证码【1771】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 16:03:56');
+INSERT INTO `t_smsrecord` VALUES (1486, 5, '13754831701', '9132', '短信验证码【9132】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 20:14:21');
+INSERT INTO `t_smsrecord` VALUES (1487, 8, '13036822669', '5342', '短信验证码【5342】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 20:33:48');
+INSERT INTO `t_smsrecord` VALUES (1488, 6, '13036822669', '5342', '短信验证码【5342】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 20:33:48');
+INSERT INTO `t_smsrecord` VALUES (1489, 5, '13428468045', '6533', '短信验证码【6533】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-15 23:34:19');
+INSERT INTO `t_smsrecord` VALUES (1490, 1, '18577275127', '7153', '短信验证码【7153】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-16 10:52:55');
+INSERT INTO `t_smsrecord` VALUES (1491, 1, '13593739812', '8669', '短信验证码【8669】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-16 10:54:25');
+INSERT INTO `t_smsrecord` VALUES (1492, 1, '13321624505', '0816', '短信验证码【0816】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-16 15:38:13');
+INSERT INTO `t_smsrecord` VALUES (1493, 5, '13738448628', '8476', '短信验证码【8476】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-16 17:07:45');
+INSERT INTO `t_smsrecord` VALUES (1494, 2, '18579412324', '0333', '短信验证码【0333】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-16 21:09:42');
+INSERT INTO `t_smsrecord` VALUES (1495, 1, '13597063052', '5134', '短信验证码【5134】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-17 22:14:55');
+INSERT INTO `t_smsrecord` VALUES (1496, 8, '18483608958', '5163', '短信验证码【5163】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 08:09:01');
+INSERT INTO `t_smsrecord` VALUES (1497, 1, '18178803160', '6573', '短信验证码【6573】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 11:48:59');
+INSERT INTO `t_smsrecord` VALUES (1498, 5, '18636852725', '4730', '短信验证码【4730】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 15:23:21');
+INSERT INTO `t_smsrecord` VALUES (1499, 1, '13321624505', '4293', '短信验证码【4293】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 16:48:07');
+INSERT INTO `t_smsrecord` VALUES (1500, 1, '18177210887', '3622', '短信验证码【3622】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 17:14:33');
+INSERT INTO `t_smsrecord` VALUES (1501, 2, '13557423483', '5732', '短信验证码【5732】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 17:23:15');
+INSERT INTO `t_smsrecord` VALUES (1502, 1, '13677721685', '7272', '短信验证码【7272】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 17:28:37');
+INSERT INTO `t_smsrecord` VALUES (1503, 2, '19906561880', '2278', '短信验证码【2278】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 18:29:02');
+INSERT INTO `t_smsrecord` VALUES (1504, 2, '18948744087', '6987', '短信验证码【6987】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 19:45:59');
+INSERT INTO `t_smsrecord` VALUES (1505, 1, '18948744087', '4250', '短信验证码【4250】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 19:46:42');
+INSERT INTO `t_smsrecord` VALUES (1506, 1, '18948744087', '8232', '短信验证码【8232】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-18 19:48:22');
+INSERT INTO `t_smsrecord` VALUES (1507, 5, '13582158214', '5852', '短信验证码【5852】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 10:38:23');
+INSERT INTO `t_smsrecord` VALUES (1508, 8, '13582158214', '8901', '短信验证码【8901】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 10:46:49');
+INSERT INTO `t_smsrecord` VALUES (1509, 2, '18269585832', '7367', '短信验证码【7367】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 12:42:00');
+INSERT INTO `t_smsrecord` VALUES (1510, 8, '13100492848', '2801', '短信验证码【2801】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 13:45:05');
+INSERT INTO `t_smsrecord` VALUES (1511, 6, '13100492848', '2801', '短信验证码【2801】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 13:45:05');
+INSERT INTO `t_smsrecord` VALUES (1512, 8, '13100492848', '6899', '短信验证码【6899】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 13:47:25');
+INSERT INTO `t_smsrecord` VALUES (1513, 6, '13100492848', '6899', '短信验证码【6899】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-19 13:47:25');
+INSERT INTO `t_smsrecord` VALUES (1514, 5, '15289622030', '4205', '短信验证码【4205】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-20 07:11:50');
+INSERT INTO `t_smsrecord` VALUES (1515, 8, '18607721255', '9829', '短信验证码【9829】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-20 09:47:00');
+INSERT INTO `t_smsrecord` VALUES (1516, 6, '18607721255', '9829', '短信验证码【9829】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-20 09:47:01');
+INSERT INTO `t_smsrecord` VALUES (1517, 5, '13851086865', '1989', '短信验证码【1989】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-20 18:34:44');
+INSERT INTO `t_smsrecord` VALUES (1518, 1, '15943495464', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-21 11:21:19');
+INSERT INTO `t_smsrecord` VALUES (1519, 1, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-22 14:38:44');
+INSERT INTO `t_smsrecord` VALUES (1520, 1, '18583738369', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-22 14:39:21');
+INSERT INTO `t_smsrecord` VALUES (1521, 1, '18123292546', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-22 15:10:51');
+INSERT INTO `t_smsrecord` VALUES (1522, 1, '15449434646', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-22 15:57:25');
+INSERT INTO `t_smsrecord` VALUES (1523, 1, '15434646464', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-22 16:13:09');
+INSERT INTO `t_smsrecord` VALUES (1524, 1, '18380581367', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-29 18:41:31');
+INSERT INTO `t_smsrecord` VALUES (1525, 1, '17708110425', '1234', '短信验证码【1234】已发到您的手机,验证码将在5分钟后失效,请及时登录!', '2020-09-29 18:44:36');
+
+-- ----------------------------
+-- Table structure for t_sys_cancle_order
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_cancle_order`;
+CREATE TABLE `t_sys_cancle_order`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `minuteNum` int(11) NULL DEFAULT NULL COMMENT '时间(分钟)',
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '1=普通单取消,2=预约单取消',
+  `orderType` smallint(1) NULL DEFAULT NULL COMMENT '1=专车,2=出租车',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-取消订单' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_cancle_order
+-- ----------------------------
+INSERT INTO `t_sys_cancle_order` VALUES (1, 1, 0, 3.00, 1, 1);
+INSERT INTO `t_sys_cancle_order` VALUES (2, 1, 10, 3.00, 1, 2);
+INSERT INTO `t_sys_cancle_order` VALUES (3, 1, 0, 3.00, 2, 1);
+INSERT INTO `t_sys_cancle_order` VALUES (4, 1, 1, 5.00, 2, 2);
+INSERT INTO `t_sys_cancle_order` VALUES (5, 1, 5, 10.00, 1, 3);
+
+-- ----------------------------
+-- Table structure for t_sys_coupon_activity
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_coupon_activity`;
+CREATE TABLE `t_sys_coupon_activity`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `fullMoney` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '满减金额',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `couponUseType` smallint(1) NULL DEFAULT NULL COMMENT '优惠券使用类型(0=通用,1=专车,2=出租车,3=城际,4=小件物流)',
+  `couponType` smallint(1) NULL DEFAULT NULL COMMENT '优惠券类型(1=抵扣,2=满减)',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '活动名称',
+  `effective` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+  `companyType` smallint(1) NULL DEFAULT NULL COMMENT '1=平台 2=分公司 3=加盟商',
+  `status` smallint(1) NULL DEFAULT NULL COMMENT '状态(1=待审核,2=驳回,3=通过)',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `sendType` smallint(1) NULL DEFAULT NULL COMMENT '发送类型(1=全部用户,2=部分)',
+  `sendUserId` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '发送用户id',
+  `number` int(11) NULL DEFAULT NULL COMMENT '张数',
+  `sendUserNum` int(11) NULL DEFAULT NULL COMMENT '领取人数',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-优惠券活动' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_coupon_activity
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_sys_coupon_record
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_coupon_record`;
+CREATE TABLE `t_sys_coupon_record`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `fullMoney` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '满减金额',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `couponUseType` smallint(1) NULL DEFAULT NULL COMMENT '优惠券使用类型(0=通用,1=专车,2=出租车,3=城际,4=小件物流)',
+  `couponType` smallint(1) NULL DEFAULT NULL COMMENT '优惠券类型(1=抵扣,2=满减)',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '优惠券名称',
+  `effective` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+  `companyType` smallint(1) NULL DEFAULT NULL COMMENT '1=平台 2=分公司 3=加盟商',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 39 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-优惠券记录' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_coupon_record
+-- ----------------------------
+INSERT INTO `t_sys_coupon_record` VALUES (38, 5.00, 10.00, '2020-09-18 10:06:29', 1, 2, 2, '内侧优惠券', NULL, 1);
+
+-- ----------------------------
+-- Table structure for t_sys_face_distinguish
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_face_distinguish`;
+CREATE TABLE `t_sys_face_distinguish`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `isOpen` smallint(1) NULL DEFAULT NULL COMMENT '是否打开(1=是,2=否)',
+  `minuteNum` int(11) NULL DEFAULT NULL COMMENT '间隔分钟数',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-人脸识别' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_face_distinguish
+-- ----------------------------
+INSERT INTO `t_sys_face_distinguish` VALUES (2, 1, 2, 0);
+
+-- ----------------------------
+-- Table structure for t_sys_integral
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_integral`;
+CREATE TABLE `t_sys_integral`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `integral` int(11) NULL DEFAULT NULL COMMENT '积分',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-积分' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_integral
+-- ----------------------------
+INSERT INTO `t_sys_integral` VALUES (1, 1, 5);
+
+-- ----------------------------
+-- Table structure for t_sys_push_order
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_push_order`;
+CREATE TABLE `t_sys_push_order`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `pushDistance` double(10, 2) NULL DEFAULT NULL COMMENT '推单距离(公里)',
+  `pushTime` int(11) NULL DEFAULT NULL COMMENT '推单时间(秒)',
+  `driverProportion` double(10, 2) NULL DEFAULT NULL COMMENT '推单占所有司机百分比',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '1=第一轮,2=第二轮,3=第三轮',
+  `pushType` smallint(1) NULL DEFAULT NULL COMMENT '1=专车,2=出租车',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-推单' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_push_order
+-- ----------------------------
+INSERT INTO `t_sys_push_order` VALUES (1, 1, 1.00, 15, 100.00, 1, 2);
+INSERT INTO `t_sys_push_order` VALUES (2, 1, 1.20, 20, 100.00, 2, 2);
+INSERT INTO `t_sys_push_order` VALUES (3, 1, 1.50, 30, 100.00, 3, 2);
+INSERT INTO `t_sys_push_order` VALUES (4, 1, 100.00, 10, 100.00, 1, 1);
+INSERT INTO `t_sys_push_order` VALUES (5, 1, 200.00, 10, 80.00, 2, 1);
+INSERT INTO `t_sys_push_order` VALUES (6, 1, 300.00, 10, 60.00, 3, 1);
+
+-- ----------------------------
+-- Table structure for t_sys_red_packet_record
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_red_packet_record`;
+CREATE TABLE `t_sys_red_packet_record`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '红包名称',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型(1=固定金额,2=随机金额)',
+  `totalMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '总金额',
+  `laveMoney` double(10, 2) NULL DEFAULT NULL COMMENT '剩余金额',
+  `startMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '开始金额',
+  `endMoney` decimal(10, 2) NULL DEFAULT NULL COMMENT '结束金额',
+  `effective` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+  `companyType` smallint(1) NULL DEFAULT NULL COMMENT '1=平台 2=分公司 3=加盟商',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-红包记录' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_red_packet_record
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_sys_reformist
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_reformist`;
+CREATE TABLE `t_sys_reformist`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `isSpecialCar` int(1) NULL DEFAULT 1 COMMENT '专车改派 1=否 2=是',
+  `isTaxiCar` int(1) NULL DEFAULT 1 COMMENT '出租车改派  1=否 2=是',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-改派' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_reformist
+-- ----------------------------
+INSERT INTO `t_sys_reformist` VALUES (1, 1, 0.01, 1, 2);
+
+-- ----------------------------
+-- Table structure for t_sys_sensitive_words
+-- ----------------------------
+DROP TABLE IF EXISTS `t_sys_sensitive_words`;
+CREATE TABLE `t_sys_sensitive_words`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `createTime` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `content` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '敏感词',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统设置-敏感词' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_sys_sensitive_words
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_system_notice
+-- ----------------------------
+DROP TABLE IF EXISTS `t_system_notice`;
+CREATE TABLE `t_system_notice`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `type` int(1) NULL DEFAULT NULL COMMENT '1=公告,2=系统消息',
+  `noticeType` int(1) NULL DEFAULT NULL COMMENT '系统消息类型(1=打车业务,2=优惠券)',
+  `userType` int(1) NULL DEFAULT NULL COMMENT '1=用户,2=司机',
+  `noticesId` int(11) NULL DEFAULT NULL COMMENT '公告id',
+  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '消息内容',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '接收对象id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `read` int(1) NULL DEFAULT NULL COMMENT '1=未读,2=已读',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6505 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '系统通知' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_system_notice
+-- ----------------------------
+INSERT INTO `t_system_notice` VALUES (5115, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 179, '2020-08-17 10:14:02', 1);
+INSERT INTO `t_system_notice` VALUES (5116, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 180, '2020-08-17 10:38:23', 1);
+INSERT INTO `t_system_notice` VALUES (5117, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 181, '2020-08-17 11:07:56', 1);
+INSERT INTO `t_system_notice` VALUES (5118, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 182, '2020-08-17 11:12:47', 1);
+INSERT INTO `t_system_notice` VALUES (5119, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 183, '2020-08-17 11:15:08', 1);
+INSERT INTO `t_system_notice` VALUES (5120, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 184, '2020-08-17 19:04:25', 1);
+INSERT INTO `t_system_notice` VALUES (5121, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-17 19:04:41', 1);
+INSERT INTO `t_system_notice` VALUES (5122, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 904, '2020-08-17 19:04:49', 2);
+INSERT INTO `t_system_notice` VALUES (5123, 2, NULL, 1, NULL, '您的订单已指派给罗师傅,请保持电话畅通!', 184, '2020-08-17 19:04:49', 1);
+INSERT INTO `t_system_notice` VALUES (5124, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 184, '2020-08-17 19:05:01', 1);
+INSERT INTO `t_system_notice` VALUES (5125, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 184, '2020-08-17 19:05:07', 1);
+INSERT INTO `t_system_notice` VALUES (5126, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-17 19:06:21', 1);
+INSERT INTO `t_system_notice` VALUES (5127, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 185, '2020-08-17 19:07:46', 1);
+INSERT INTO `t_system_notice` VALUES (5128, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 184, '2020-08-17 19:14:08', 1);
+INSERT INTO `t_system_notice` VALUES (5129, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 184, '2020-08-17 19:14:15', 1);
+INSERT INTO `t_system_notice` VALUES (5130, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 185, '2020-08-17 19:15:02', 1);
+INSERT INTO `t_system_notice` VALUES (5131, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 905, '2020-08-17 19:15:07', 1);
+INSERT INTO `t_system_notice` VALUES (5132, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 185, '2020-08-17 19:15:07', 1);
+INSERT INTO `t_system_notice` VALUES (5133, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 185, '2020-08-17 19:15:10', 1);
+INSERT INTO `t_system_notice` VALUES (5134, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 185, '2020-08-17 19:15:12', 1);
+INSERT INTO `t_system_notice` VALUES (5135, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 185, '2020-08-17 19:15:16', 1);
+INSERT INTO `t_system_notice` VALUES (5136, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 186, '2020-08-17 19:17:38', 1);
+INSERT INTO `t_system_notice` VALUES (5137, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 185, '2020-08-17 19:19:07', 1);
+INSERT INTO `t_system_notice` VALUES (5138, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-17 19:20:34', 1);
+INSERT INTO `t_system_notice` VALUES (5139, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 905, '2020-08-17 19:20:38', 1);
+INSERT INTO `t_system_notice` VALUES (5140, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 186, '2020-08-17 19:20:38', 1);
+INSERT INTO `t_system_notice` VALUES (5141, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 186, '2020-08-17 19:20:44', 1);
+INSERT INTO `t_system_notice` VALUES (5142, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 186, '2020-08-17 19:20:54', 1);
+INSERT INTO `t_system_notice` VALUES (5143, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 186, '2020-08-17 19:21:00', 1);
+INSERT INTO `t_system_notice` VALUES (5144, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 186, '2020-08-17 19:21:24', 1);
+INSERT INTO `t_system_notice` VALUES (5145, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-17 20:15:44', 2);
+INSERT INTO `t_system_notice` VALUES (5146, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 903, '2020-08-17 20:16:04', 1);
+INSERT INTO `t_system_notice` VALUES (5147, 2, NULL, 1, NULL, '您的订单已指派给罗师傅,请保持电话畅通!', 184, '2020-08-17 20:16:04', 2);
+INSERT INTO `t_system_notice` VALUES (5148, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 184, '2020-08-17 20:17:24', 2);
+INSERT INTO `t_system_notice` VALUES (5149, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-17 20:17:46', 2);
+INSERT INTO `t_system_notice` VALUES (5150, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 403, '2020-08-17 20:17:52', 1);
+INSERT INTO `t_system_notice` VALUES (5151, 2, NULL, 1, NULL, '您的订单已指派给韦师傅,请保持电话畅通!', 184, '2020-08-17 20:17:52', 2);
+INSERT INTO `t_system_notice` VALUES (5152, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-17 20:21:14', 2);
+INSERT INTO `t_system_notice` VALUES (5153, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 184, '2020-08-17 20:22:36', 2);
+INSERT INTO `t_system_notice` VALUES (5154, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 184, '2020-08-17 20:24:26', 2);
+INSERT INTO `t_system_notice` VALUES (5155, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 187, '2020-08-18 09:28:27', 1);
+INSERT INTO `t_system_notice` VALUES (5156, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 187, '2020-08-18 09:28:52', 1);
+INSERT INTO `t_system_notice` VALUES (5157, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 187, '2020-08-18 09:53:37', 1);
+INSERT INTO `t_system_notice` VALUES (5158, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 187, '2020-08-18 09:53:38', 1);
+INSERT INTO `t_system_notice` VALUES (5159, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 187, '2020-08-18 09:53:47', 1);
+INSERT INTO `t_system_notice` VALUES (5160, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 187, '2020-08-18 09:54:37', 1);
+INSERT INTO `t_system_notice` VALUES (5161, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 187, '2020-08-18 09:55:18', 1);
+INSERT INTO `t_system_notice` VALUES (5162, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 187, '2020-08-18 09:56:03', 1);
+INSERT INTO `t_system_notice` VALUES (5163, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 187, '2020-08-18 09:56:19', 1);
+INSERT INTO `t_system_notice` VALUES (5164, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 187, '2020-08-18 10:00:29', 1);
+INSERT INTO `t_system_notice` VALUES (5165, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 187, '2020-08-18 10:03:11', 1);
+INSERT INTO `t_system_notice` VALUES (5166, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 188, '2020-08-18 22:06:50', 1);
+INSERT INTO `t_system_notice` VALUES (5167, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 189, '2020-08-19 15:02:57', 1);
+INSERT INTO `t_system_notice` VALUES (5168, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-08-19 15:03:17', 1);
+INSERT INTO `t_system_notice` VALUES (5169, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-08-19 15:03:57', 1);
+INSERT INTO `t_system_notice` VALUES (5170, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-08-19 15:04:03', 1);
+INSERT INTO `t_system_notice` VALUES (5171, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 190, '2020-08-19 15:25:05', 2);
+INSERT INTO `t_system_notice` VALUES (5172, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:08:53', 1);
+INSERT INTO `t_system_notice` VALUES (5173, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:09:06', 1);
+INSERT INTO `t_system_notice` VALUES (5174, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:09:42', 1);
+INSERT INTO `t_system_notice` VALUES (5175, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:10:07', 1);
+INSERT INTO `t_system_notice` VALUES (5176, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:10:12', 1);
+INSERT INTO `t_system_notice` VALUES (5177, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:10:14', 1);
+INSERT INTO `t_system_notice` VALUES (5178, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:10:39', 1);
+INSERT INTO `t_system_notice` VALUES (5179, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:10:49', 1);
+INSERT INTO `t_system_notice` VALUES (5180, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:11:31', 1);
+INSERT INTO `t_system_notice` VALUES (5181, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:11:37', 1);
+INSERT INTO `t_system_notice` VALUES (5182, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:11:42', 1);
+INSERT INTO `t_system_notice` VALUES (5183, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:11:45', 1);
+INSERT INTO `t_system_notice` VALUES (5184, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:19:37', 1);
+INSERT INTO `t_system_notice` VALUES (5185, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:19:45', 1);
+INSERT INTO `t_system_notice` VALUES (5186, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:21:34', 1);
+INSERT INTO `t_system_notice` VALUES (5187, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:21:42', 1);
+INSERT INTO `t_system_notice` VALUES (5188, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:35:01', 1);
+INSERT INTO `t_system_notice` VALUES (5189, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:35:07', 1);
+INSERT INTO `t_system_notice` VALUES (5190, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:36:35', 1);
+INSERT INTO `t_system_notice` VALUES (5191, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:36:46', 1);
+INSERT INTO `t_system_notice` VALUES (5192, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 186, '2020-08-19 17:37:42', 1);
+INSERT INTO `t_system_notice` VALUES (5193, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 186, '2020-08-19 17:37:43', 1);
+INSERT INTO `t_system_notice` VALUES (5194, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 188, '2020-08-19 17:38:25', 1);
+INSERT INTO `t_system_notice` VALUES (5195, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 17:38:29', 1);
+INSERT INTO `t_system_notice` VALUES (5196, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 188, '2020-08-19 17:38:29', 1);
+INSERT INTO `t_system_notice` VALUES (5197, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 188, '2020-08-19 17:38:45', 1);
+INSERT INTO `t_system_notice` VALUES (5198, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 188, '2020-08-19 17:38:51', 1);
+INSERT INTO `t_system_notice` VALUES (5199, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 17:38:53', 1);
+INSERT INTO `t_system_notice` VALUES (5200, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 188, '2020-08-19 17:38:53', 1);
+INSERT INTO `t_system_notice` VALUES (5201, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 188, '2020-08-19 17:41:17', 1);
+INSERT INTO `t_system_notice` VALUES (5202, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 188, '2020-08-19 17:41:21', 1);
+INSERT INTO `t_system_notice` VALUES (5203, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 188, '2020-08-19 17:45:19', 1);
+INSERT INTO `t_system_notice` VALUES (5204, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 188, '2020-08-19 17:45:44', 1);
+INSERT INTO `t_system_notice` VALUES (5205, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-08-19 17:48:50', 1);
+INSERT INTO `t_system_notice` VALUES (5206, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-08-19 17:48:57', 1);
+INSERT INTO `t_system_notice` VALUES (5207, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 188, '2020-08-19 17:59:55', 1);
+INSERT INTO `t_system_notice` VALUES (5208, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 17:59:57', 1);
+INSERT INTO `t_system_notice` VALUES (5209, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 188, '2020-08-19 17:59:57', 1);
+INSERT INTO `t_system_notice` VALUES (5210, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 188, '2020-08-19 18:00:15', 1);
+INSERT INTO `t_system_notice` VALUES (5211, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 188, '2020-08-19 18:00:17', 1);
+INSERT INTO `t_system_notice` VALUES (5212, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 188, '2020-08-19 18:03:18', 1);
+INSERT INTO `t_system_notice` VALUES (5213, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 188, '2020-08-19 18:03:47', 1);
+INSERT INTO `t_system_notice` VALUES (5214, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 191, '2020-08-19 18:06:33', 1);
+INSERT INTO `t_system_notice` VALUES (5215, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 188, '2020-08-19 18:08:51', 1);
+INSERT INTO `t_system_notice` VALUES (5216, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 18:08:53', 1);
+INSERT INTO `t_system_notice` VALUES (5217, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 188, '2020-08-19 18:08:53', 1);
+INSERT INTO `t_system_notice` VALUES (5218, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 188, '2020-08-19 18:09:43', 1);
+INSERT INTO `t_system_notice` VALUES (5219, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 188, '2020-08-19 18:09:45', 1);
+INSERT INTO `t_system_notice` VALUES (5220, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 188, '2020-08-19 18:10:06', 1);
+INSERT INTO `t_system_notice` VALUES (5221, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 188, '2020-08-19 18:10:57', 1);
+INSERT INTO `t_system_notice` VALUES (5222, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 188, '2020-08-19 18:11:14', 1);
+INSERT INTO `t_system_notice` VALUES (5223, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 188, '2020-08-19 18:12:11', 1);
+INSERT INTO `t_system_notice` VALUES (5224, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 18:12:13', 1);
+INSERT INTO `t_system_notice` VALUES (5225, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 188, '2020-08-19 18:12:13', 1);
+INSERT INTO `t_system_notice` VALUES (5226, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 188, '2020-08-19 18:12:15', 1);
+INSERT INTO `t_system_notice` VALUES (5227, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 188, '2020-08-19 18:12:17', 1);
+INSERT INTO `t_system_notice` VALUES (5228, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 188, '2020-08-19 18:12:22', 1);
+INSERT INTO `t_system_notice` VALUES (5229, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 188, '2020-08-19 18:12:40', 1);
+INSERT INTO `t_system_notice` VALUES (5230, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 188, '2020-08-19 18:13:00', 1);
+INSERT INTO `t_system_notice` VALUES (5231, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 18:13:03', 1);
+INSERT INTO `t_system_notice` VALUES (5232, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 188, '2020-08-19 18:13:03', 1);
+INSERT INTO `t_system_notice` VALUES (5233, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 188, '2020-08-19 18:13:05', 1);
+INSERT INTO `t_system_notice` VALUES (5234, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 188, '2020-08-19 18:13:06', 1);
+INSERT INTO `t_system_notice` VALUES (5235, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 188, '2020-08-19 18:13:10', 1);
+INSERT INTO `t_system_notice` VALUES (5236, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 188, '2020-08-19 18:13:18', 1);
+INSERT INTO `t_system_notice` VALUES (5237, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-08-19 18:15:34', 2);
+INSERT INTO `t_system_notice` VALUES (5238, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-08-19 18:16:21', 2);
+INSERT INTO `t_system_notice` VALUES (5239, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-19 18:16:26', 1);
+INSERT INTO `t_system_notice` VALUES (5240, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 189, '2020-08-19 18:16:26', 2);
+INSERT INTO `t_system_notice` VALUES (5241, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-08-19 18:17:01', 2);
+INSERT INTO `t_system_notice` VALUES (5242, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-08-19 18:17:05', 2);
+INSERT INTO `t_system_notice` VALUES (5243, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-08-19 18:17:24', 2);
+INSERT INTO `t_system_notice` VALUES (5244, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 189, '2020-08-19 18:17:43', 2);
+INSERT INTO `t_system_notice` VALUES (5245, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-08-19 18:18:32', 2);
+INSERT INTO `t_system_notice` VALUES (5246, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-08-19 18:18:46', 2);
+INSERT INTO `t_system_notice` VALUES (5247, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 189, '2020-08-19 18:18:59', 2);
+INSERT INTO `t_system_notice` VALUES (5248, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-20 15:53:17', 2);
+INSERT INTO `t_system_notice` VALUES (5249, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 913, '2020-08-20 15:53:31', 1);
+INSERT INTO `t_system_notice` VALUES (5250, 2, NULL, 1, NULL, '您的订单已指派给梁师傅,请保持电话畅通!', 184, '2020-08-20 15:53:31', 2);
+INSERT INTO `t_system_notice` VALUES (5251, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-20 15:56:39', 2);
+INSERT INTO `t_system_notice` VALUES (5252, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 184, '2020-08-20 15:58:18', 2);
+INSERT INTO `t_system_notice` VALUES (5253, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-20 15:58:37', 2);
+INSERT INTO `t_system_notice` VALUES (5254, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 913, '2020-08-20 15:58:57', 1);
+INSERT INTO `t_system_notice` VALUES (5255, 2, NULL, 1, NULL, '您的订单已指派给梁师傅,请保持电话畅通!', 184, '2020-08-20 15:58:57', 2);
+INSERT INTO `t_system_notice` VALUES (5256, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-20 16:02:17', 2);
+INSERT INTO `t_system_notice` VALUES (5257, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 184, '2020-08-20 16:02:47', 2);
+INSERT INTO `t_system_notice` VALUES (5258, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-20 16:03:27', 2);
+INSERT INTO `t_system_notice` VALUES (5259, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 913, '2020-08-20 16:03:33', 1);
+INSERT INTO `t_system_notice` VALUES (5260, 2, NULL, 1, NULL, '您的订单已指派给梁师傅,请保持电话畅通!', 184, '2020-08-20 16:03:33', 2);
+INSERT INTO `t_system_notice` VALUES (5261, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-20 16:06:09', 2);
+INSERT INTO `t_system_notice` VALUES (5262, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 184, '2020-08-20 16:06:39', 2);
+INSERT INTO `t_system_notice` VALUES (5263, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-21 09:33:51', 2);
+INSERT INTO `t_system_notice` VALUES (5264, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 403, '2020-08-21 09:34:01', 1);
+INSERT INTO `t_system_notice` VALUES (5265, 2, NULL, 1, NULL, '您的订单已指派给韦师傅,请保持电话畅通!', 184, '2020-08-21 09:34:01', 2);
+INSERT INTO `t_system_notice` VALUES (5266, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-21 09:37:22', 2);
+INSERT INTO `t_system_notice` VALUES (5267, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 184, '2020-08-21 09:37:58', 2);
+INSERT INTO `t_system_notice` VALUES (5268, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 192, '2020-08-21 11:34:48', 1);
+INSERT INTO `t_system_notice` VALUES (5269, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:34:58', 1);
+INSERT INTO `t_system_notice` VALUES (5270, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:35:03', 1);
+INSERT INTO `t_system_notice` VALUES (5271, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:35:03', 1);
+INSERT INTO `t_system_notice` VALUES (5272, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:37:49', 1);
+INSERT INTO `t_system_notice` VALUES (5273, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:38:13', 1);
+INSERT INTO `t_system_notice` VALUES (5274, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:38:16', 1);
+INSERT INTO `t_system_notice` VALUES (5275, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:38:16', 1);
+INSERT INTO `t_system_notice` VALUES (5276, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:38:21', 1);
+INSERT INTO `t_system_notice` VALUES (5277, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:39:52', 1);
+INSERT INTO `t_system_notice` VALUES (5278, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:39:57', 1);
+INSERT INTO `t_system_notice` VALUES (5279, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:39:57', 1);
+INSERT INTO `t_system_notice` VALUES (5280, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:40:41', 1);
+INSERT INTO `t_system_notice` VALUES (5281, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:45:45', 1);
+INSERT INTO `t_system_notice` VALUES (5282, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:45:49', 1);
+INSERT INTO `t_system_notice` VALUES (5283, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:45:49', 1);
+INSERT INTO `t_system_notice` VALUES (5284, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:45:55', 1);
+INSERT INTO `t_system_notice` VALUES (5285, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:46:24', 1);
+INSERT INTO `t_system_notice` VALUES (5286, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:46:27', 1);
+INSERT INTO `t_system_notice` VALUES (5287, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:46:27', 1);
+INSERT INTO `t_system_notice` VALUES (5288, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:47:29', 1);
+INSERT INTO `t_system_notice` VALUES (5289, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:51:41', 1);
+INSERT INTO `t_system_notice` VALUES (5290, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:51:45', 1);
+INSERT INTO `t_system_notice` VALUES (5291, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:51:45', 1);
+INSERT INTO `t_system_notice` VALUES (5292, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:51:52', 1);
+INSERT INTO `t_system_notice` VALUES (5293, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:52:58', 1);
+INSERT INTO `t_system_notice` VALUES (5294, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:53:01', 1);
+INSERT INTO `t_system_notice` VALUES (5295, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:53:01', 1);
+INSERT INTO `t_system_notice` VALUES (5296, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:53:12', 1);
+INSERT INTO `t_system_notice` VALUES (5297, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 192, '2020-08-21 11:56:20', 1);
+INSERT INTO `t_system_notice` VALUES (5298, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 910, '2020-08-21 11:56:22', 1);
+INSERT INTO `t_system_notice` VALUES (5299, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 192, '2020-08-21 11:56:22', 1);
+INSERT INTO `t_system_notice` VALUES (5300, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 192, '2020-08-21 11:56:41', 1);
+INSERT INTO `t_system_notice` VALUES (5301, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-22 20:19:02', 2);
+INSERT INTO `t_system_notice` VALUES (5302, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 184, '2020-08-22 20:20:47', 2);
+INSERT INTO `t_system_notice` VALUES (5303, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-22 20:21:41', 2);
+INSERT INTO `t_system_notice` VALUES (5304, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 184, '2020-08-22 20:22:36', 2);
+INSERT INTO `t_system_notice` VALUES (5305, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-08-22 20:23:00', 2);
+INSERT INTO `t_system_notice` VALUES (5306, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 875, '2020-08-22 20:23:30', 1);
+INSERT INTO `t_system_notice` VALUES (5307, 2, NULL, 1, NULL, '您的订单已指派给郭师傅,请保持电话畅通!', 184, '2020-08-22 20:23:30', 2);
+INSERT INTO `t_system_notice` VALUES (5308, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-08-22 20:30:37', 2);
+INSERT INTO `t_system_notice` VALUES (5309, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 184, '2020-08-22 20:30:57', 2);
+INSERT INTO `t_system_notice` VALUES (5310, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 184, '2020-08-22 20:31:17', 2);
+INSERT INTO `t_system_notice` VALUES (5311, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 193, '2020-08-22 20:37:45', 1);
+INSERT INTO `t_system_notice` VALUES (5312, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 193, '2020-08-22 20:38:02', 1);
+INSERT INTO `t_system_notice` VALUES (5313, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 875, '2020-08-22 20:38:11', 1);
+INSERT INTO `t_system_notice` VALUES (5314, 2, NULL, 1, NULL, '您的订单已指派给郭师傅,请保持电话畅通!', 193, '2020-08-22 20:38:11', 1);
+INSERT INTO `t_system_notice` VALUES (5315, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 193, '2020-08-22 20:38:22', 1);
+INSERT INTO `t_system_notice` VALUES (5316, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 193, '2020-08-22 20:40:00', 1);
+INSERT INTO `t_system_notice` VALUES (5317, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 193, '2020-08-22 20:40:09', 1);
+INSERT INTO `t_system_notice` VALUES (5318, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 194, '2020-08-29 08:41:38', 2);
+INSERT INTO `t_system_notice` VALUES (5319, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-08-29 08:43:05', 1);
+INSERT INTO `t_system_notice` VALUES (5320, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-08-29 08:43:18', 1);
+INSERT INTO `t_system_notice` VALUES (5321, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-08-29 09:40:00', 1);
+INSERT INTO `t_system_notice` VALUES (5322, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-08-29 09:40:45', 1);
+INSERT INTO `t_system_notice` VALUES (5323, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 195, '2020-08-29 12:08:49', 1);
+INSERT INTO `t_system_notice` VALUES (5324, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 196, '2020-08-29 12:08:53', 1);
+INSERT INTO `t_system_notice` VALUES (5325, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 195, '2020-08-29 12:09:41', 1);
+INSERT INTO `t_system_notice` VALUES (5326, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 195, '2020-08-29 12:10:03', 1);
+INSERT INTO `t_system_notice` VALUES (5327, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 197, '2020-08-29 12:43:48', 1);
+INSERT INTO `t_system_notice` VALUES (5328, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 198, '2020-08-29 12:57:03', 1);
+INSERT INTO `t_system_notice` VALUES (5329, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 199, '2020-08-29 14:10:49', 2);
+INSERT INTO `t_system_notice` VALUES (5330, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 200, '2020-08-29 16:58:00', 1);
+INSERT INTO `t_system_notice` VALUES (5331, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 201, '2020-08-29 16:58:02', 1);
+INSERT INTO `t_system_notice` VALUES (5332, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 200, '2020-08-29 16:58:51', 1);
+INSERT INTO `t_system_notice` VALUES (5333, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 202, '2020-08-29 18:13:23', 1);
+INSERT INTO `t_system_notice` VALUES (5334, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 202, '2020-08-29 18:14:07', 1);
+INSERT INTO `t_system_notice` VALUES (5335, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 202, '2020-08-29 18:14:23', 1);
+INSERT INTO `t_system_notice` VALUES (5336, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 202, '2020-08-29 18:14:30', 1);
+INSERT INTO `t_system_notice` VALUES (5337, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 202, '2020-08-29 18:16:02', 1);
+INSERT INTO `t_system_notice` VALUES (5338, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 203, '2020-08-30 09:28:41', 1);
+INSERT INTO `t_system_notice` VALUES (5339, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 204, '2020-08-30 09:29:06', 1);
+INSERT INTO `t_system_notice` VALUES (5340, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 205, '2020-08-30 09:37:53', 1);
+INSERT INTO `t_system_notice` VALUES (5341, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 206, '2020-08-30 12:13:36', 1);
+INSERT INTO `t_system_notice` VALUES (5342, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 206, '2020-08-30 12:14:24', 1);
+INSERT INTO `t_system_notice` VALUES (5343, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 206, '2020-08-30 12:15:35', 1);
+INSERT INTO `t_system_notice` VALUES (5344, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 206, '2020-08-30 12:15:55', 1);
+INSERT INTO `t_system_notice` VALUES (5345, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 206, '2020-08-30 12:17:01', 1);
+INSERT INTO `t_system_notice` VALUES (5346, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 206, '2020-08-30 12:18:20', 1);
+INSERT INTO `t_system_notice` VALUES (5347, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 206, '2020-08-30 12:18:51', 1);
+INSERT INTO `t_system_notice` VALUES (5348, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 206, '2020-08-30 12:19:33', 1);
+INSERT INTO `t_system_notice` VALUES (5349, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 206, '2020-08-30 12:20:42', 1);
+INSERT INTO `t_system_notice` VALUES (5350, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 207, '2020-08-30 12:29:39', 1);
+INSERT INTO `t_system_notice` VALUES (5351, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 207, '2020-08-30 12:31:07', 1);
+INSERT INTO `t_system_notice` VALUES (5352, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 207, '2020-08-30 12:32:23', 1);
+INSERT INTO `t_system_notice` VALUES (5353, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 208, '2020-08-30 14:26:22', 1);
+INSERT INTO `t_system_notice` VALUES (5354, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 209, '2020-08-30 14:26:26', 1);
+INSERT INTO `t_system_notice` VALUES (5355, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 210, '2020-08-30 14:47:45', 1);
+INSERT INTO `t_system_notice` VALUES (5356, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 208, '2020-08-30 14:48:19', 1);
+INSERT INTO `t_system_notice` VALUES (5357, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 208, '2020-08-30 14:49:54', 1);
+INSERT INTO `t_system_notice` VALUES (5358, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 211, '2020-08-30 17:02:24', 1);
+INSERT INTO `t_system_notice` VALUES (5359, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 212, '2020-08-30 17:02:38', 1);
+INSERT INTO `t_system_notice` VALUES (5360, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 211, '2020-08-30 17:03:33', 1);
+INSERT INTO `t_system_notice` VALUES (5361, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 211, '2020-08-30 17:04:40', 1);
+INSERT INTO `t_system_notice` VALUES (5362, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 213, '2020-08-30 19:35:01', 1);
+INSERT INTO `t_system_notice` VALUES (5363, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 214, '2020-08-30 19:35:08', 1);
+INSERT INTO `t_system_notice` VALUES (5364, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 213, '2020-08-30 19:38:27', 1);
+INSERT INTO `t_system_notice` VALUES (5365, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 213, '2020-08-30 19:40:41', 1);
+INSERT INTO `t_system_notice` VALUES (5366, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 215, '2020-08-30 20:40:08', 1);
+INSERT INTO `t_system_notice` VALUES (5367, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 215, '2020-08-30 20:41:00', 1);
+INSERT INTO `t_system_notice` VALUES (5368, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 215, '2020-08-30 20:41:40', 1);
+INSERT INTO `t_system_notice` VALUES (5369, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 216, '2020-08-31 07:49:08', 1);
+INSERT INTO `t_system_notice` VALUES (5370, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 217, '2020-08-31 08:44:35', 1);
+INSERT INTO `t_system_notice` VALUES (5371, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 218, '2020-08-31 08:44:40', 1);
+INSERT INTO `t_system_notice` VALUES (5372, 2, 1, 1, NULL, '您的反馈已提交成功,我们会尽快处理!', 194, '2020-08-31 09:18:22', 1);
+INSERT INTO `t_system_notice` VALUES (5373, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-08-31 09:20:01', 1);
+INSERT INTO `t_system_notice` VALUES (5374, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-08-31 09:20:05', 2);
+INSERT INTO `t_system_notice` VALUES (5375, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 211, '2020-08-31 09:38:11', 1);
+INSERT INTO `t_system_notice` VALUES (5376, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 211, '2020-08-31 09:39:05', 1);
+INSERT INTO `t_system_notice` VALUES (5377, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 219, '2020-08-31 12:10:34', 1);
+INSERT INTO `t_system_notice` VALUES (5378, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 220, '2020-08-31 12:10:38', 1);
+INSERT INTO `t_system_notice` VALUES (5379, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 219, '2020-08-31 12:14:01', 1);
+INSERT INTO `t_system_notice` VALUES (5380, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 390, '2020-08-31 12:14:49', 1);
+INSERT INTO `t_system_notice` VALUES (5381, 2, NULL, 1, NULL, '您的订单已指派给张师傅,请保持电话畅通!', 219, '2020-08-31 12:14:49', 1);
+INSERT INTO `t_system_notice` VALUES (5382, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 221, '2020-08-31 12:40:20', 1);
+INSERT INTO `t_system_notice` VALUES (5383, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 13:01:11', 1);
+INSERT INTO `t_system_notice` VALUES (5384, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 13:32:55', 1);
+INSERT INTO `t_system_notice` VALUES (5385, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 13:39:36', 1);
+INSERT INTO `t_system_notice` VALUES (5386, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 13:54:14', 1);
+INSERT INTO `t_system_notice` VALUES (5387, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 14:11:26', 1);
+INSERT INTO `t_system_notice` VALUES (5388, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 14:26:15', 1);
+INSERT INTO `t_system_notice` VALUES (5389, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 14:43:19', 1);
+INSERT INTO `t_system_notice` VALUES (5390, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-08-31 15:01:19', 1);
+INSERT INTO `t_system_notice` VALUES (5391, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 222, '2020-08-31 16:18:02', 1);
+INSERT INTO `t_system_notice` VALUES (5392, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 223, '2020-08-31 16:18:07', 1);
+INSERT INTO `t_system_notice` VALUES (5393, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 224, '2020-08-31 16:33:42', 1);
+INSERT INTO `t_system_notice` VALUES (5394, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 225, '2020-09-01 09:00:14', 1);
+INSERT INTO `t_system_notice` VALUES (5395, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 226, '2020-09-01 09:00:18', 1);
+INSERT INTO `t_system_notice` VALUES (5396, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 227, '2020-09-01 09:05:07', 1);
+INSERT INTO `t_system_notice` VALUES (5397, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 228, '2020-09-01 11:06:20', 1);
+INSERT INTO `t_system_notice` VALUES (5398, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 229, '2020-09-01 11:06:22', 1);
+INSERT INTO `t_system_notice` VALUES (5399, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 228, '2020-09-01 11:08:06', 1);
+INSERT INTO `t_system_notice` VALUES (5400, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 228, '2020-09-01 11:08:20', 1);
+INSERT INTO `t_system_notice` VALUES (5401, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 230, '2020-09-01 13:13:42', 1);
+INSERT INTO `t_system_notice` VALUES (5402, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 231, '2020-09-01 13:51:26', 1);
+INSERT INTO `t_system_notice` VALUES (5403, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 232, '2020-09-01 13:51:31', 1);
+INSERT INTO `t_system_notice` VALUES (5404, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 233, '2020-09-01 15:16:07', 1);
+INSERT INTO `t_system_notice` VALUES (5405, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 234, '2020-09-01 15:16:15', 1);
+INSERT INTO `t_system_notice` VALUES (5406, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 235, '2020-09-01 21:44:17', 2);
+INSERT INTO `t_system_notice` VALUES (5407, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 04:44:20', 1);
+INSERT INTO `t_system_notice` VALUES (5408, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 05:05:26', 1);
+INSERT INTO `t_system_notice` VALUES (5409, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 05:16:43', 1);
+INSERT INTO `t_system_notice` VALUES (5410, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 05:36:19', 1);
+INSERT INTO `t_system_notice` VALUES (5411, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 05:52:27', 1);
+INSERT INTO `t_system_notice` VALUES (5412, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 06:25:03', 1);
+INSERT INTO `t_system_notice` VALUES (5413, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 06:32:14', 1);
+INSERT INTO `t_system_notice` VALUES (5414, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 219, '2020-09-02 06:52:13', 1);
+INSERT INTO `t_system_notice` VALUES (5415, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 236, '2020-09-02 06:55:35', 2);
+INSERT INTO `t_system_notice` VALUES (5416, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 237, '2020-09-02 06:55:42', 1);
+INSERT INTO `t_system_notice` VALUES (5417, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 236, '2020-09-02 07:04:37', 2);
+INSERT INTO `t_system_notice` VALUES (5418, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 390, '2020-09-02 07:05:27', 1);
+INSERT INTO `t_system_notice` VALUES (5419, 2, NULL, 1, NULL, '您的订单已指派给张师傅,请保持电话畅通!', 236, '2020-09-02 07:05:27', 2);
+INSERT INTO `t_system_notice` VALUES (5420, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 236, '2020-09-02 07:50:29', 1);
+INSERT INTO `t_system_notice` VALUES (5421, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 236, '2020-09-02 07:54:44', 1);
+INSERT INTO `t_system_notice` VALUES (5422, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-02 08:04:38', 2);
+INSERT INTO `t_system_notice` VALUES (5423, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-02 08:05:46', 2);
+INSERT INTO `t_system_notice` VALUES (5424, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 238, '2020-09-02 09:31:58', 1);
+INSERT INTO `t_system_notice` VALUES (5425, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 238, '2020-09-02 09:32:50', 1);
+INSERT INTO `t_system_notice` VALUES (5426, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 238, '2020-09-02 09:33:58', 1);
+INSERT INTO `t_system_notice` VALUES (5427, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 239, '2020-09-02 14:10:10', 1);
+INSERT INTO `t_system_notice` VALUES (5428, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 240, '2020-09-02 14:10:14', 1);
+INSERT INTO `t_system_notice` VALUES (5429, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 239, '2020-09-02 14:11:12', 1);
+INSERT INTO `t_system_notice` VALUES (5430, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 239, '2020-09-02 14:11:48', 1);
+INSERT INTO `t_system_notice` VALUES (5431, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 241, '2020-09-02 14:51:00', 2);
+INSERT INTO `t_system_notice` VALUES (5432, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 242, '2020-09-02 16:13:11', 1);
+INSERT INTO `t_system_notice` VALUES (5433, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-02 16:35:37', 1);
+INSERT INTO `t_system_notice` VALUES (5434, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 583, '2020-09-02 16:35:53', 1);
+INSERT INTO `t_system_notice` VALUES (5435, 2, NULL, 1, NULL, '您的订单已指派给蒙师傅,请保持电话畅通!', 242, '2020-09-02 16:35:53', 1);
+INSERT INTO `t_system_notice` VALUES (5436, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-02 16:39:24', 1);
+INSERT INTO `t_system_notice` VALUES (5437, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 242, '2020-09-02 16:41:09', 1);
+INSERT INTO `t_system_notice` VALUES (5438, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-02 16:43:29', 1);
+INSERT INTO `t_system_notice` VALUES (5439, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-02 16:43:33', 1);
+INSERT INTO `t_system_notice` VALUES (5440, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-02 16:43:33', 1);
+INSERT INTO `t_system_notice` VALUES (5441, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 242, '2020-09-02 16:43:43', 1);
+INSERT INTO `t_system_notice` VALUES (5442, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 242, '2020-09-02 16:43:56', 1);
+INSERT INTO `t_system_notice` VALUES (5443, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-02 16:44:07', 1);
+INSERT INTO `t_system_notice` VALUES (5444, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 242, '2020-09-02 16:44:36', 1);
+INSERT INTO `t_system_notice` VALUES (5445, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-02 16:47:28', 1);
+INSERT INTO `t_system_notice` VALUES (5446, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 583, '2020-09-02 16:47:33', 1);
+INSERT INTO `t_system_notice` VALUES (5447, 2, NULL, 1, NULL, '您的订单已指派给蒙师傅,请保持电话畅通!', 242, '2020-09-02 16:47:33', 1);
+INSERT INTO `t_system_notice` VALUES (5448, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-02 16:56:19', 1);
+INSERT INTO `t_system_notice` VALUES (5449, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-02 16:57:50', 1);
+INSERT INTO `t_system_notice` VALUES (5450, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 583, '2020-09-02 16:57:56', 1);
+INSERT INTO `t_system_notice` VALUES (5451, 2, NULL, 1, NULL, '您的订单已指派给蒙师傅,请保持电话畅通!', 242, '2020-09-02 16:57:56', 1);
+INSERT INTO `t_system_notice` VALUES (5452, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-02 17:01:20', 1);
+INSERT INTO `t_system_notice` VALUES (5453, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 184, '2020-09-02 17:03:30', 2);
+INSERT INTO `t_system_notice` VALUES (5454, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-02 17:03:37', 1);
+INSERT INTO `t_system_notice` VALUES (5455, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 184, '2020-09-02 17:03:37', 2);
+INSERT INTO `t_system_notice` VALUES (5456, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 184, '2020-09-02 17:03:53', 2);
+INSERT INTO `t_system_notice` VALUES (5457, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 184, '2020-09-02 17:04:01', 2);
+INSERT INTO `t_system_notice` VALUES (5458, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 243, '2020-09-02 17:35:38', 1);
+INSERT INTO `t_system_notice` VALUES (5459, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-02 17:37:53', 1);
+INSERT INTO `t_system_notice` VALUES (5460, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 924, '2020-09-02 17:38:31', 1);
+INSERT INTO `t_system_notice` VALUES (5461, 2, NULL, 1, NULL, '您的订单已指派给温师傅,请保持电话畅通!', 242, '2020-09-02 17:38:31', 1);
+INSERT INTO `t_system_notice` VALUES (5462, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 242, '2020-09-02 17:38:37', 1);
+INSERT INTO `t_system_notice` VALUES (5463, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 242, '2020-09-02 17:38:43', 1);
+INSERT INTO `t_system_notice` VALUES (5464, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-02 17:38:56', 1);
+INSERT INTO `t_system_notice` VALUES (5465, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 242, '2020-09-02 17:39:15', 1);
+INSERT INTO `t_system_notice` VALUES (5466, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-02 17:43:33', 1);
+INSERT INTO `t_system_notice` VALUES (5467, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 924, '2020-09-02 17:43:36', 1);
+INSERT INTO `t_system_notice` VALUES (5468, 2, NULL, 1, NULL, '您的订单已指派给温师傅,请保持电话畅通!', 242, '2020-09-02 17:43:36', 1);
+INSERT INTO `t_system_notice` VALUES (5469, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 242, '2020-09-02 17:43:39', 1);
+INSERT INTO `t_system_notice` VALUES (5470, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 242, '2020-09-02 17:43:57', 1);
+INSERT INTO `t_system_notice` VALUES (5471, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-02 17:44:33', 1);
+INSERT INTO `t_system_notice` VALUES (5472, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 242, '2020-09-02 17:44:55', 1);
+INSERT INTO `t_system_notice` VALUES (5473, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 228, '2020-09-02 17:52:53', 1);
+INSERT INTO `t_system_notice` VALUES (5474, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 228, '2020-09-02 17:53:30', 1);
+INSERT INTO `t_system_notice` VALUES (5475, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-02 18:02:51', 1);
+INSERT INTO `t_system_notice` VALUES (5476, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-02 18:02:57', 1);
+INSERT INTO `t_system_notice` VALUES (5477, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 244, '2020-09-02 19:46:47', 1);
+INSERT INTO `t_system_notice` VALUES (5478, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 184, '2020-09-03 13:58:54', 2);
+INSERT INTO `t_system_notice` VALUES (5479, 2, 1, 1, NULL, '您已使用余额成功支付取消订单费用,谢谢使用!', 184, '2020-09-03 13:59:53', 2);
+INSERT INTO `t_system_notice` VALUES (5480, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-03 14:07:05', 1);
+INSERT INTO `t_system_notice` VALUES (5481, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-03 14:07:44', 1);
+INSERT INTO `t_system_notice` VALUES (5482, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-03 14:07:44', 1);
+INSERT INTO `t_system_notice` VALUES (5483, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-03 14:11:58', 1);
+INSERT INTO `t_system_notice` VALUES (5484, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 245, '2020-09-03 14:25:24', 2);
+INSERT INTO `t_system_notice` VALUES (5485, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 246, '2020-09-03 14:36:12', 1);
+INSERT INTO `t_system_notice` VALUES (5486, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 247, '2020-09-03 21:01:14', 1);
+INSERT INTO `t_system_notice` VALUES (5487, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 248, '2020-09-03 21:01:16', 1);
+INSERT INTO `t_system_notice` VALUES (5488, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 249, '2020-09-04 07:40:49', 1);
+INSERT INTO `t_system_notice` VALUES (5489, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 250, '2020-09-04 10:17:26', 1);
+INSERT INTO `t_system_notice` VALUES (5490, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 251, '2020-09-04 10:55:22', 1);
+INSERT INTO `t_system_notice` VALUES (5491, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 251, '2020-09-04 10:56:32', 1);
+INSERT INTO `t_system_notice` VALUES (5492, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 251, '2020-09-04 10:58:34', 1);
+INSERT INTO `t_system_notice` VALUES (5493, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 252, '2020-09-04 12:31:22', 1);
+INSERT INTO `t_system_notice` VALUES (5494, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-04 14:52:36', 2);
+INSERT INTO `t_system_notice` VALUES (5495, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 203, '2020-09-04 14:52:53', 1);
+INSERT INTO `t_system_notice` VALUES (5496, 2, NULL, 1, NULL, '您的订单已指派给周师傅,请保持电话畅通!', 194, '2020-09-04 14:52:53', 2);
+INSERT INTO `t_system_notice` VALUES (5497, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-04 15:27:32', 2);
+INSERT INTO `t_system_notice` VALUES (5498, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-04 15:27:56', 2);
+INSERT INTO `t_system_notice` VALUES (5499, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 203, '2020-09-04 15:28:01', 1);
+INSERT INTO `t_system_notice` VALUES (5500, 2, NULL, 1, NULL, '您的订单已指派给周师傅,请保持电话畅通!', 194, '2020-09-04 15:28:01', 2);
+INSERT INTO `t_system_notice` VALUES (5501, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 253, '2020-09-04 15:43:41', 1);
+INSERT INTO `t_system_notice` VALUES (5502, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 254, '2020-09-04 15:43:43', 2);
+INSERT INTO `t_system_notice` VALUES (5503, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 255, '2020-09-04 15:47:46', 1);
+INSERT INTO `t_system_notice` VALUES (5504, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 256, '2020-09-04 15:47:50', 1);
+INSERT INTO `t_system_notice` VALUES (5505, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 194, '2020-09-04 15:50:04', 2);
+INSERT INTO `t_system_notice` VALUES (5506, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 194, '2020-09-04 15:50:43', 2);
+INSERT INTO `t_system_notice` VALUES (5507, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 194, '2020-09-04 15:53:15', 2);
+INSERT INTO `t_system_notice` VALUES (5508, 2, 1, 1, NULL, '您已使用微信成功支付取消订单费用,谢谢使用!', 194, '2020-09-04 15:56:36', 2);
+INSERT INTO `t_system_notice` VALUES (5509, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-04 15:57:02', 2);
+INSERT INTO `t_system_notice` VALUES (5510, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 203, '2020-09-04 15:57:07', 1);
+INSERT INTO `t_system_notice` VALUES (5511, 2, NULL, 1, NULL, '您的订单已指派给周师傅,请保持电话畅通!', 194, '2020-09-04 15:57:07', 2);
+INSERT INTO `t_system_notice` VALUES (5512, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-04 15:58:22', 2);
+INSERT INTO `t_system_notice` VALUES (5513, 2, 1, 1, NULL, '您已使用微信成功支付取消订单费用,谢谢使用!', 194, '2020-09-04 16:34:05', 2);
+INSERT INTO `t_system_notice` VALUES (5514, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-04 16:34:44', 2);
+INSERT INTO `t_system_notice` VALUES (5515, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-04 16:35:41', 2);
+INSERT INTO `t_system_notice` VALUES (5516, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-04 16:36:19', 2);
+INSERT INTO `t_system_notice` VALUES (5517, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-04 16:37:09', 2);
+INSERT INTO `t_system_notice` VALUES (5518, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 257, '2020-09-04 17:43:06', 2);
+INSERT INTO `t_system_notice` VALUES (5519, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 258, '2020-09-04 18:30:56', 1);
+INSERT INTO `t_system_notice` VALUES (5520, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 259, '2020-09-04 18:31:00', 1);
+INSERT INTO `t_system_notice` VALUES (5521, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 258, '2020-09-04 18:32:05', 1);
+INSERT INTO `t_system_notice` VALUES (5522, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 258, '2020-09-04 18:32:31', 1);
+INSERT INTO `t_system_notice` VALUES (5523, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 258, '2020-09-04 18:33:06', 1);
+INSERT INTO `t_system_notice` VALUES (5524, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 258, '2020-09-04 18:36:01', 1);
+INSERT INTO `t_system_notice` VALUES (5525, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 260, '2020-09-04 19:28:35', 1);
+INSERT INTO `t_system_notice` VALUES (5526, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 261, '2020-09-04 20:00:53', 1);
+INSERT INTO `t_system_notice` VALUES (5527, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 262, '2020-09-04 20:00:59', 1);
+INSERT INTO `t_system_notice` VALUES (5528, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 263, '2020-09-04 23:10:45', 2);
+INSERT INTO `t_system_notice` VALUES (5529, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 264, '2020-09-05 00:37:17', 1);
+INSERT INTO `t_system_notice` VALUES (5530, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 265, '2020-09-05 04:42:55', 1);
+INSERT INTO `t_system_notice` VALUES (5531, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 266, '2020-09-05 05:13:15', 2);
+INSERT INTO `t_system_notice` VALUES (5532, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 267, '2020-09-05 08:33:24', 1);
+INSERT INTO `t_system_notice` VALUES (5533, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 268, '2020-09-05 08:33:28', 1);
+INSERT INTO `t_system_notice` VALUES (5534, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 267, '2020-09-05 08:35:46', 1);
+INSERT INTO `t_system_notice` VALUES (5535, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 267, '2020-09-05 08:42:10', 1);
+INSERT INTO `t_system_notice` VALUES (5536, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 267, '2020-09-05 08:43:50', 1);
+INSERT INTO `t_system_notice` VALUES (5537, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 267, '2020-09-05 08:45:06', 1);
+INSERT INTO `t_system_notice` VALUES (5538, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 269, '2020-09-05 09:05:58', 2);
+INSERT INTO `t_system_notice` VALUES (5539, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 270, '2020-09-05 09:06:01', 1);
+INSERT INTO `t_system_notice` VALUES (5540, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 269, '2020-09-05 09:07:49', 2);
+INSERT INTO `t_system_notice` VALUES (5541, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 54, '2020-09-05 09:08:01', 1);
+INSERT INTO `t_system_notice` VALUES (5542, 2, NULL, 1, NULL, '您的订单已指派给李师傅,请保持电话畅通!', 269, '2020-09-05 09:08:01', 2);
+INSERT INTO `t_system_notice` VALUES (5543, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 269, '2020-09-05 09:35:30', 2);
+INSERT INTO `t_system_notice` VALUES (5544, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 207, '2020-09-05 09:52:07', 1);
+INSERT INTO `t_system_notice` VALUES (5545, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 269, '2020-09-05 10:46:37', 2);
+INSERT INTO `t_system_notice` VALUES (5546, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 323, '2020-09-05 10:48:47', 1);
+INSERT INTO `t_system_notice` VALUES (5547, 2, NULL, 1, NULL, '您的订单已指派给何师傅,请保持电话畅通!', 269, '2020-09-05 10:48:47', 2);
+INSERT INTO `t_system_notice` VALUES (5548, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 269, '2020-09-05 10:55:16', 2);
+INSERT INTO `t_system_notice` VALUES (5549, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 271, '2020-09-05 11:22:02', 1);
+INSERT INTO `t_system_notice` VALUES (5550, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 271, '2020-09-05 11:22:35', 1);
+INSERT INTO `t_system_notice` VALUES (5551, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 269, '2020-09-05 11:23:39', 1);
+INSERT INTO `t_system_notice` VALUES (5552, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 271, '2020-09-05 11:23:45', 1);
+INSERT INTO `t_system_notice` VALUES (5553, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 271, '2020-09-05 11:25:23', 1);
+INSERT INTO `t_system_notice` VALUES (5554, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 269, '2020-09-05 11:40:32', 1);
+INSERT INTO `t_system_notice` VALUES (5555, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 272, '2020-09-05 13:29:27', 1);
+INSERT INTO `t_system_notice` VALUES (5556, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 273, '2020-09-05 13:29:31', 1);
+INSERT INTO `t_system_notice` VALUES (5557, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 272, '2020-09-05 13:31:33', 1);
+INSERT INTO `t_system_notice` VALUES (5558, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 323, '2020-09-05 13:31:49', 1);
+INSERT INTO `t_system_notice` VALUES (5559, 2, NULL, 1, NULL, '您的订单已指派给何师傅,请保持电话畅通!', 272, '2020-09-05 13:31:49', 1);
+INSERT INTO `t_system_notice` VALUES (5560, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 272, '2020-09-05 13:55:51', 1);
+INSERT INTO `t_system_notice` VALUES (5561, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 274, '2020-09-05 14:57:03', 1);
+INSERT INTO `t_system_notice` VALUES (5562, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 275, '2020-09-05 14:57:06', 1);
+INSERT INTO `t_system_notice` VALUES (5563, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 274, '2020-09-05 14:57:49', 1);
+INSERT INTO `t_system_notice` VALUES (5564, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 274, '2020-09-05 14:59:57', 1);
+INSERT INTO `t_system_notice` VALUES (5565, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 274, '2020-09-05 15:00:00', 1);
+INSERT INTO `t_system_notice` VALUES (5566, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 274, '2020-09-05 15:01:36', 1);
+INSERT INTO `t_system_notice` VALUES (5567, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 276, '2020-09-05 17:09:23', 1);
+INSERT INTO `t_system_notice` VALUES (5568, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 277, '2020-09-05 17:09:29', 1);
+INSERT INTO `t_system_notice` VALUES (5569, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 276, '2020-09-05 17:11:38', 1);
+INSERT INTO `t_system_notice` VALUES (5570, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 324, '2020-09-05 17:12:06', 1);
+INSERT INTO `t_system_notice` VALUES (5571, 2, NULL, 1, NULL, '您的订单已指派给韦师傅,请保持电话畅通!', 276, '2020-09-05 17:12:06', 1);
+INSERT INTO `t_system_notice` VALUES (5572, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 278, '2020-09-05 17:48:38', 1);
+INSERT INTO `t_system_notice` VALUES (5573, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 278, '2020-09-05 17:50:56', 1);
+INSERT INTO `t_system_notice` VALUES (5574, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 334, '2020-09-05 17:51:08', 1);
+INSERT INTO `t_system_notice` VALUES (5575, 2, NULL, 1, NULL, '您的订单已指派给吴师傅,请保持电话畅通!', 278, '2020-09-05 17:51:08', 1);
+INSERT INTO `t_system_notice` VALUES (5576, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-05 18:06:09', 1);
+INSERT INTO `t_system_notice` VALUES (5577, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-05 18:06:59', 1);
+INSERT INTO `t_system_notice` VALUES (5578, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 18:09:28', 1);
+INSERT INTO `t_system_notice` VALUES (5579, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 279, '2020-09-05 18:19:14', 1);
+INSERT INTO `t_system_notice` VALUES (5580, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 280, '2020-09-05 18:19:18', 1);
+INSERT INTO `t_system_notice` VALUES (5581, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 279, '2020-09-05 18:20:17', 1);
+INSERT INTO `t_system_notice` VALUES (5582, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 279, '2020-09-05 18:20:59', 1);
+INSERT INTO `t_system_notice` VALUES (5583, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 281, '2020-09-05 18:28:35', 1);
+INSERT INTO `t_system_notice` VALUES (5584, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 282, '2020-09-05 18:28:39', 1);
+INSERT INTO `t_system_notice` VALUES (5585, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 18:31:19', 1);
+INSERT INTO `t_system_notice` VALUES (5586, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 18:43:10', 1);
+INSERT INTO `t_system_notice` VALUES (5587, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 18:56:42', 1);
+INSERT INTO `t_system_notice` VALUES (5588, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 19:03:35', 1);
+INSERT INTO `t_system_notice` VALUES (5589, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 19:13:44', 1);
+INSERT INTO `t_system_notice` VALUES (5590, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 19:15:40', 1);
+INSERT INTO `t_system_notice` VALUES (5591, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 19:32:03', 1);
+INSERT INTO `t_system_notice` VALUES (5592, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 19:32:06', 1);
+INSERT INTO `t_system_notice` VALUES (5593, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 19:51:26', 1);
+INSERT INTO `t_system_notice` VALUES (5594, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 20:00:18', 1);
+INSERT INTO `t_system_notice` VALUES (5595, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 283, '2020-09-05 20:04:54', 1);
+INSERT INTO `t_system_notice` VALUES (5596, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 284, '2020-09-05 20:04:58', 1);
+INSERT INTO `t_system_notice` VALUES (5597, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 283, '2020-09-05 20:05:44', 1);
+INSERT INTO `t_system_notice` VALUES (5598, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 283, '2020-09-05 20:06:05', 1);
+INSERT INTO `t_system_notice` VALUES (5599, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 283, '2020-09-05 20:06:50', 1);
+INSERT INTO `t_system_notice` VALUES (5600, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 283, '2020-09-05 20:07:40', 1);
+INSERT INTO `t_system_notice` VALUES (5601, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 276, '2020-09-05 20:28:25', 1);
+INSERT INTO `t_system_notice` VALUES (5602, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 20:51:56', 1);
+INSERT INTO `t_system_notice` VALUES (5603, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 285, '2020-09-05 21:08:38', 1);
+INSERT INTO `t_system_notice` VALUES (5604, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 286, '2020-09-05 21:08:42', 1);
+INSERT INTO `t_system_notice` VALUES (5605, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 21:11:59', 1);
+INSERT INTO `t_system_notice` VALUES (5606, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 285, '2020-09-05 21:12:11', 1);
+INSERT INTO `t_system_notice` VALUES (5607, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 285, '2020-09-05 21:17:56', 1);
+INSERT INTO `t_system_notice` VALUES (5608, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 285, '2020-09-05 21:18:03', 1);
+INSERT INTO `t_system_notice` VALUES (5609, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 285, '2020-09-05 21:20:48', 1);
+INSERT INTO `t_system_notice` VALUES (5610, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 285, '2020-09-05 21:21:11', 1);
+INSERT INTO `t_system_notice` VALUES (5611, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 285, '2020-09-05 21:21:15', 1);
+INSERT INTO `t_system_notice` VALUES (5612, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 287, '2020-09-05 21:24:39', 2);
+INSERT INTO `t_system_notice` VALUES (5613, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 21:44:09', 1);
+INSERT INTO `t_system_notice` VALUES (5614, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 21:54:39', 1);
+INSERT INTO `t_system_notice` VALUES (5615, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 22:23:33', 1);
+INSERT INTO `t_system_notice` VALUES (5616, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 288, '2020-09-05 22:35:45', 1);
+INSERT INTO `t_system_notice` VALUES (5617, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 22:37:15', 1);
+INSERT INTO `t_system_notice` VALUES (5618, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 278, '2020-09-05 22:53:53', 1);
+INSERT INTO `t_system_notice` VALUES (5619, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 289, '2020-09-05 23:10:00', 1);
+INSERT INTO `t_system_notice` VALUES (5620, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 290, '2020-09-05 23:10:06', 1);
+INSERT INTO `t_system_notice` VALUES (5621, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 288, '2020-09-05 23:11:15', 1);
+INSERT INTO `t_system_notice` VALUES (5622, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 289, '2020-09-05 23:11:32', 1);
+INSERT INTO `t_system_notice` VALUES (5623, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 456, '2020-09-05 23:11:59', 1);
+INSERT INTO `t_system_notice` VALUES (5624, 2, NULL, 1, NULL, '您的订单已指派给黄师傅,请保持电话畅通!', 288, '2020-09-05 23:11:59', 1);
+INSERT INTO `t_system_notice` VALUES (5625, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 289, '2020-09-05 23:12:25', 1);
+INSERT INTO `t_system_notice` VALUES (5626, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 288, '2020-09-05 23:37:09', 1);
+INSERT INTO `t_system_notice` VALUES (5627, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 288, '2020-09-05 23:38:07', 1);
+INSERT INTO `t_system_notice` VALUES (5628, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 291, '2020-09-06 05:24:38', 1);
+INSERT INTO `t_system_notice` VALUES (5629, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 292, '2020-09-06 05:24:43', 1);
+INSERT INTO `t_system_notice` VALUES (5630, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 291, '2020-09-06 05:27:14', 1);
+INSERT INTO `t_system_notice` VALUES (5631, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 291, '2020-09-06 05:32:57', 1);
+INSERT INTO `t_system_notice` VALUES (5632, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 291, '2020-09-06 05:33:09', 1);
+INSERT INTO `t_system_notice` VALUES (5633, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 801, '2020-09-06 05:33:50', 1);
+INSERT INTO `t_system_notice` VALUES (5634, 2, NULL, 1, NULL, '您的订单已指派给黄师傅,请保持电话畅通!', 291, '2020-09-06 05:33:50', 1);
+INSERT INTO `t_system_notice` VALUES (5635, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 291, '2020-09-06 05:49:06', 1);
+INSERT INTO `t_system_notice` VALUES (5636, 2, 1, 1, NULL, '您已使用微信成功支付取消订单费用,谢谢使用!', 291, '2020-09-06 05:49:32', 1);
+INSERT INTO `t_system_notice` VALUES (5637, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 293, '2020-09-06 14:04:48', 2);
+INSERT INTO `t_system_notice` VALUES (5638, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 294, '2020-09-06 14:04:51', 1);
+INSERT INTO `t_system_notice` VALUES (5639, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 295, '2020-09-06 15:10:43', 1);
+INSERT INTO `t_system_notice` VALUES (5640, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 296, '2020-09-07 07:39:00', 1);
+INSERT INTO `t_system_notice` VALUES (5641, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 297, '2020-09-07 07:39:04', 1);
+INSERT INTO `t_system_notice` VALUES (5642, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 296, '2020-09-07 07:40:15', 1);
+INSERT INTO `t_system_notice` VALUES (5643, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 298, '2020-09-07 07:46:55', 1);
+INSERT INTO `t_system_notice` VALUES (5644, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 299, '2020-09-07 07:46:58', 1);
+INSERT INTO `t_system_notice` VALUES (5645, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 296, '2020-09-07 07:47:27', 1);
+INSERT INTO `t_system_notice` VALUES (5646, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 300, '2020-09-07 08:05:10', 1);
+INSERT INTO `t_system_notice` VALUES (5647, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 301, '2020-09-07 08:05:18', 1);
+INSERT INTO `t_system_notice` VALUES (5648, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 300, '2020-09-07 08:07:26', 1);
+INSERT INTO `t_system_notice` VALUES (5649, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 300, '2020-09-07 08:08:41', 1);
+INSERT INTO `t_system_notice` VALUES (5650, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 302, '2020-09-07 08:27:09', 1);
+INSERT INTO `t_system_notice` VALUES (5651, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 303, '2020-09-07 08:27:12', 1);
+INSERT INTO `t_system_notice` VALUES (5652, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 302, '2020-09-07 08:27:56', 1);
+INSERT INTO `t_system_notice` VALUES (5653, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 302, '2020-09-07 08:28:47', 1);
+INSERT INTO `t_system_notice` VALUES (5654, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 302, '2020-09-07 08:29:14', 1);
+INSERT INTO `t_system_notice` VALUES (5655, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 215, '2020-09-07 08:31:53', 1);
+INSERT INTO `t_system_notice` VALUES (5656, 2, NULL, 1, NULL, '您的订单已指派给邓师傅,请保持电话畅通!', 302, '2020-09-07 08:31:53', 1);
+INSERT INTO `t_system_notice` VALUES (5657, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 302, '2020-09-07 08:56:21', 1);
+INSERT INTO `t_system_notice` VALUES (5658, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 304, '2020-09-07 10:38:06', 1);
+INSERT INTO `t_system_notice` VALUES (5659, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 305, '2020-09-07 10:38:11', 1);
+INSERT INTO `t_system_notice` VALUES (5660, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 304, '2020-09-07 10:39:06', 1);
+INSERT INTO `t_system_notice` VALUES (5661, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 304, '2020-09-07 10:39:13', 1);
+INSERT INTO `t_system_notice` VALUES (5662, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 304, '2020-09-07 10:39:21', 1);
+INSERT INTO `t_system_notice` VALUES (5663, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 306, '2020-09-07 13:49:04', 1);
+INSERT INTO `t_system_notice` VALUES (5664, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 307, '2020-09-07 13:49:14', 1);
+INSERT INTO `t_system_notice` VALUES (5665, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 306, '2020-09-07 13:51:47', 1);
+INSERT INTO `t_system_notice` VALUES (5666, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 308, '2020-09-07 14:41:05', 1);
+INSERT INTO `t_system_notice` VALUES (5667, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 309, '2020-09-07 14:41:08', 1);
+INSERT INTO `t_system_notice` VALUES (5668, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 308, '2020-09-07 14:42:00', 1);
+INSERT INTO `t_system_notice` VALUES (5669, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 928, '2020-09-07 14:42:38', 1);
+INSERT INTO `t_system_notice` VALUES (5670, 2, NULL, 1, NULL, '您的订单已指派给刘师傅,请保持电话畅通!', 308, '2020-09-07 14:42:38', 1);
+INSERT INTO `t_system_notice` VALUES (5671, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 308, '2020-09-07 14:45:02', 1);
+INSERT INTO `t_system_notice` VALUES (5672, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 308, '2020-09-07 14:45:08', 1);
+INSERT INTO `t_system_notice` VALUES (5673, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 308, '2020-09-07 14:47:32', 1);
+INSERT INTO `t_system_notice` VALUES (5674, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 310, '2020-09-07 17:09:15', 1);
+INSERT INTO `t_system_notice` VALUES (5675, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 311, '2020-09-07 17:09:19', 1);
+INSERT INTO `t_system_notice` VALUES (5676, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 312, '2020-09-07 17:50:31', 1);
+INSERT INTO `t_system_notice` VALUES (5677, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 313, '2020-09-07 17:50:36', 1);
+INSERT INTO `t_system_notice` VALUES (5678, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 314, '2020-09-07 18:41:26', 1);
+INSERT INTO `t_system_notice` VALUES (5679, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 287, '2020-09-07 18:54:45', 1);
+INSERT INTO `t_system_notice` VALUES (5680, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 287, '2020-09-07 18:55:58', 1);
+INSERT INTO `t_system_notice` VALUES (5681, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 315, '2020-09-07 22:39:48', 1);
+INSERT INTO `t_system_notice` VALUES (5682, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 316, '2020-09-07 22:39:54', 1);
+INSERT INTO `t_system_notice` VALUES (5683, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 317, '2020-09-07 23:55:44', 1);
+INSERT INTO `t_system_notice` VALUES (5684, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 318, '2020-09-07 23:55:46', 1);
+INSERT INTO `t_system_notice` VALUES (5685, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 319, '2020-09-08 07:31:01', 1);
+INSERT INTO `t_system_notice` VALUES (5686, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 320, '2020-09-08 07:31:05', 1);
+INSERT INTO `t_system_notice` VALUES (5687, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 319, '2020-09-08 07:31:54', 1);
+INSERT INTO `t_system_notice` VALUES (5688, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 319, '2020-09-08 07:33:40', 1);
+INSERT INTO `t_system_notice` VALUES (5689, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 321, '2020-09-08 08:46:52', 1);
+INSERT INTO `t_system_notice` VALUES (5690, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 322, '2020-09-08 08:47:14', 1);
+INSERT INTO `t_system_notice` VALUES (5691, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 306, '2020-09-08 09:10:02', 1);
+INSERT INTO `t_system_notice` VALUES (5692, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-08 15:08:37', 2);
+INSERT INTO `t_system_notice` VALUES (5693, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-08 15:08:43', 1);
+INSERT INTO `t_system_notice` VALUES (5694, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 245, '2020-09-08 15:08:43', 2);
+INSERT INTO `t_system_notice` VALUES (5695, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 245, '2020-09-08 15:15:16', 2);
+INSERT INTO `t_system_notice` VALUES (5696, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 245, '2020-09-08 15:16:39', 2);
+INSERT INTO `t_system_notice` VALUES (5697, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 323, '2020-09-08 16:06:28', 2);
+INSERT INTO `t_system_notice` VALUES (5698, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 324, '2020-09-08 16:30:59', 1);
+INSERT INTO `t_system_notice` VALUES (5699, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 324, '2020-09-08 16:32:01', 1);
+INSERT INTO `t_system_notice` VALUES (5700, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 324, '2020-09-08 16:32:06', 1);
+INSERT INTO `t_system_notice` VALUES (5701, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 325, '2020-09-08 18:11:28', 1);
+INSERT INTO `t_system_notice` VALUES (5702, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 326, '2020-09-08 18:47:51', 1);
+INSERT INTO `t_system_notice` VALUES (5703, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 327, '2020-09-08 19:58:00', 1);
+INSERT INTO `t_system_notice` VALUES (5704, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 328, '2020-09-08 19:58:05', 1);
+INSERT INTO `t_system_notice` VALUES (5705, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 329, '2020-09-08 20:12:22', 1);
+INSERT INTO `t_system_notice` VALUES (5706, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 329, '2020-09-08 20:20:24', 1);
+INSERT INTO `t_system_notice` VALUES (5707, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 329, '2020-09-08 20:20:33', 1);
+INSERT INTO `t_system_notice` VALUES (5708, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 329, '2020-09-08 20:20:51', 1);
+INSERT INTO `t_system_notice` VALUES (5709, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 329, '2020-09-08 20:21:25', 1);
+INSERT INTO `t_system_notice` VALUES (5710, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 330, '2020-09-09 02:13:01', 1);
+INSERT INTO `t_system_notice` VALUES (5711, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 331, '2020-09-09 02:13:04', 1);
+INSERT INTO `t_system_notice` VALUES (5712, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 330, '2020-09-09 02:14:14', 1);
+INSERT INTO `t_system_notice` VALUES (5713, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 332, '2020-09-09 08:16:55', 1);
+INSERT INTO `t_system_notice` VALUES (5714, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 333, '2020-09-09 08:17:01', 1);
+INSERT INTO `t_system_notice` VALUES (5715, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-09 10:08:14', 2);
+INSERT INTO `t_system_notice` VALUES (5716, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 179, '2020-09-09 10:08:24', 1);
+INSERT INTO `t_system_notice` VALUES (5717, 2, NULL, 1, NULL, '您的订单已指派给黄师傅,请保持电话畅通!', 245, '2020-09-09 10:08:24', 2);
+INSERT INTO `t_system_notice` VALUES (5718, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 245, '2020-09-09 10:09:07', 2);
+INSERT INTO `t_system_notice` VALUES (5719, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-09 10:10:27', 2);
+INSERT INTO `t_system_notice` VALUES (5720, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 932, '2020-09-09 10:11:51', 1);
+INSERT INTO `t_system_notice` VALUES (5721, 2, NULL, 1, NULL, '您的订单已指派给赖师傅,请保持电话畅通!', 245, '2020-09-09 10:11:51', 2);
+INSERT INTO `t_system_notice` VALUES (5722, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 245, '2020-09-09 10:11:57', 2);
+INSERT INTO `t_system_notice` VALUES (5723, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 245, '2020-09-09 10:11:59', 2);
+INSERT INTO `t_system_notice` VALUES (5724, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 245, '2020-09-09 10:12:08', 2);
+INSERT INTO `t_system_notice` VALUES (5725, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 245, '2020-09-09 10:12:33', 2);
+INSERT INTO `t_system_notice` VALUES (5726, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 334, '2020-09-09 12:08:41', 1);
+INSERT INTO `t_system_notice` VALUES (5727, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 335, '2020-09-09 12:08:45', 1);
+INSERT INTO `t_system_notice` VALUES (5728, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 334, '2020-09-09 12:11:45', 1);
+INSERT INTO `t_system_notice` VALUES (5729, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 334, '2020-09-09 12:12:11', 1);
+INSERT INTO `t_system_notice` VALUES (5730, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 336, '2020-09-09 13:30:44', 1);
+INSERT INTO `t_system_notice` VALUES (5731, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 337, '2020-09-09 13:30:46', 1);
+INSERT INTO `t_system_notice` VALUES (5732, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 338, '2020-09-09 17:27:20', 1);
+INSERT INTO `t_system_notice` VALUES (5733, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 338, '2020-09-09 17:28:12', 1);
+INSERT INTO `t_system_notice` VALUES (5734, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 338, '2020-09-09 17:38:11', 1);
+INSERT INTO `t_system_notice` VALUES (5735, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 339, '2020-09-09 21:46:08', 1);
+INSERT INTO `t_system_notice` VALUES (5736, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 340, '2020-09-09 23:35:33', 1);
+INSERT INTO `t_system_notice` VALUES (5737, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 341, '2020-09-09 23:35:37', 1);
+INSERT INTO `t_system_notice` VALUES (5738, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 340, '2020-09-09 23:38:25', 1);
+INSERT INTO `t_system_notice` VALUES (5739, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 340, '2020-09-10 00:10:32', 1);
+INSERT INTO `t_system_notice` VALUES (5740, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 302, '2020-09-10 08:13:54', 1);
+INSERT INTO `t_system_notice` VALUES (5741, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 342, '2020-09-10 08:41:37', 2);
+INSERT INTO `t_system_notice` VALUES (5742, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 343, '2020-09-10 08:41:42', 1);
+INSERT INTO `t_system_notice` VALUES (5743, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 342, '2020-09-10 08:44:23', 2);
+INSERT INTO `t_system_notice` VALUES (5744, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 342, '2020-09-10 08:46:45', 2);
+INSERT INTO `t_system_notice` VALUES (5745, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 342, '2020-09-10 08:46:55', 2);
+INSERT INTO `t_system_notice` VALUES (5746, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 342, '2020-09-10 08:49:28', 2);
+INSERT INTO `t_system_notice` VALUES (5747, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 342, '2020-09-10 08:49:52', 2);
+INSERT INTO `t_system_notice` VALUES (5748, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 140, '2020-09-10 08:50:23', 2);
+INSERT INTO `t_system_notice` VALUES (5749, 2, NULL, 1, NULL, '您的订单已指派给郭师傅,请保持电话畅通!', 342, '2020-09-10 08:50:23', 2);
+INSERT INTO `t_system_notice` VALUES (5750, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 340, '2020-09-10 08:52:45', 1);
+INSERT INTO `t_system_notice` VALUES (5751, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 340, '2020-09-10 08:53:55', 1);
+INSERT INTO `t_system_notice` VALUES (5752, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 09:26:57', 2);
+INSERT INTO `t_system_notice` VALUES (5753, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 09:46:31', 2);
+INSERT INTO `t_system_notice` VALUES (5754, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 10:23:12', 2);
+INSERT INTO `t_system_notice` VALUES (5755, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 10:29:19', 2);
+INSERT INTO `t_system_notice` VALUES (5756, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 334, '2020-09-10 11:14:06', 1);
+INSERT INTO `t_system_notice` VALUES (5757, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 754, '2020-09-10 11:14:14', 1);
+INSERT INTO `t_system_notice` VALUES (5758, 2, NULL, 1, NULL, '您的订单已指派给谢师傅,请保持电话畅通!', 334, '2020-09-10 11:14:14', 1);
+INSERT INTO `t_system_notice` VALUES (5759, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 11:19:20', 2);
+INSERT INTO `t_system_notice` VALUES (5760, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 334, '2020-09-10 11:29:51', 1);
+INSERT INTO `t_system_notice` VALUES (5761, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 334, '2020-09-10 11:30:18', 1);
+INSERT INTO `t_system_notice` VALUES (5762, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-10 11:33:17', 2);
+INSERT INTO `t_system_notice` VALUES (5763, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-10 11:34:28', 2);
+INSERT INTO `t_system_notice` VALUES (5764, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-10 11:34:34', 2);
+INSERT INTO `t_system_notice` VALUES (5765, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-10 11:35:42', 2);
+INSERT INTO `t_system_notice` VALUES (5766, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 11:42:40', 2);
+INSERT INTO `t_system_notice` VALUES (5767, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 342, '2020-09-10 13:16:49', 2);
+INSERT INTO `t_system_notice` VALUES (5768, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 344, '2020-09-10 15:07:08', 1);
+INSERT INTO `t_system_notice` VALUES (5769, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:07:45', 1);
+INSERT INTO `t_system_notice` VALUES (5770, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-10 15:07:51', 1);
+INSERT INTO `t_system_notice` VALUES (5771, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 344, '2020-09-10 15:07:51', 1);
+INSERT INTO `t_system_notice` VALUES (5772, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 344, '2020-09-10 15:13:36', 1);
+INSERT INTO `t_system_notice` VALUES (5773, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:15:14', 1);
+INSERT INTO `t_system_notice` VALUES (5774, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-10 15:15:55', 1);
+INSERT INTO `t_system_notice` VALUES (5775, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 344, '2020-09-10 15:15:55', 1);
+INSERT INTO `t_system_notice` VALUES (5776, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 344, '2020-09-10 15:19:17', 1);
+INSERT INTO `t_system_notice` VALUES (5777, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:21:01', 1);
+INSERT INTO `t_system_notice` VALUES (5778, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 344, '2020-09-10 15:21:53', 1);
+INSERT INTO `t_system_notice` VALUES (5779, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:21:57', 1);
+INSERT INTO `t_system_notice` VALUES (5780, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 344, '2020-09-10 15:22:07', 1);
+INSERT INTO `t_system_notice` VALUES (5781, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:22:20', 1);
+INSERT INTO `t_system_notice` VALUES (5782, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 344, '2020-09-10 15:22:26', 1);
+INSERT INTO `t_system_notice` VALUES (5783, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:23:14', 1);
+INSERT INTO `t_system_notice` VALUES (5784, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 344, '2020-09-10 15:23:23', 1);
+INSERT INTO `t_system_notice` VALUES (5785, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:23:35', 1);
+INSERT INTO `t_system_notice` VALUES (5786, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-10 15:23:39', 1);
+INSERT INTO `t_system_notice` VALUES (5787, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 344, '2020-09-10 15:23:39', 1);
+INSERT INTO `t_system_notice` VALUES (5788, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 344, '2020-09-10 15:24:02', 1);
+INSERT INTO `t_system_notice` VALUES (5789, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 15:50:32', 1);
+INSERT INTO `t_system_notice` VALUES (5790, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-10 15:50:36', 1);
+INSERT INTO `t_system_notice` VALUES (5791, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 344, '2020-09-10 15:50:36', 1);
+INSERT INTO `t_system_notice` VALUES (5792, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 344, '2020-09-10 15:50:57', 1);
+INSERT INTO `t_system_notice` VALUES (5793, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-10 16:48:02', 1);
+INSERT INTO `t_system_notice` VALUES (5794, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-10 16:48:07', 1);
+INSERT INTO `t_system_notice` VALUES (5795, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-10 16:48:07', 1);
+INSERT INTO `t_system_notice` VALUES (5796, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-10 16:59:13', 1);
+INSERT INTO `t_system_notice` VALUES (5797, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-10 17:01:18', 1);
+INSERT INTO `t_system_notice` VALUES (5798, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 242, '2020-09-10 17:01:20', 1);
+INSERT INTO `t_system_notice` VALUES (5799, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 242, '2020-09-10 17:02:43', 1);
+INSERT INTO `t_system_notice` VALUES (5800, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-10 17:04:27', 1);
+INSERT INTO `t_system_notice` VALUES (5801, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-10 17:04:33', 1);
+INSERT INTO `t_system_notice` VALUES (5802, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-10 17:04:33', 1);
+INSERT INTO `t_system_notice` VALUES (5803, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 345, '2020-09-10 17:12:27', 1);
+INSERT INTO `t_system_notice` VALUES (5804, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 346, '2020-09-10 17:12:32', 1);
+INSERT INTO `t_system_notice` VALUES (5805, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 345, '2020-09-10 17:14:18', 1);
+INSERT INTO `t_system_notice` VALUES (5806, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 345, '2020-09-10 17:15:30', 1);
+INSERT INTO `t_system_notice` VALUES (5807, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 345, '2020-09-10 17:15:35', 1);
+INSERT INTO `t_system_notice` VALUES (5808, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 345, '2020-09-10 17:16:47', 1);
+INSERT INTO `t_system_notice` VALUES (5809, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-10 17:18:49', 1);
+INSERT INTO `t_system_notice` VALUES (5810, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 18:28:57', 1);
+INSERT INTO `t_system_notice` VALUES (5811, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-10 18:29:01', 1);
+INSERT INTO `t_system_notice` VALUES (5812, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 344, '2020-09-10 18:29:01', 1);
+INSERT INTO `t_system_notice` VALUES (5813, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 344, '2020-09-10 18:29:37', 1);
+INSERT INTO `t_system_notice` VALUES (5814, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 344, '2020-09-10 18:30:45', 1);
+INSERT INTO `t_system_notice` VALUES (5815, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-10 18:30:48', 1);
+INSERT INTO `t_system_notice` VALUES (5816, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 344, '2020-09-10 18:30:48', 1);
+INSERT INTO `t_system_notice` VALUES (5817, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 344, '2020-09-10 18:36:29', 1);
+INSERT INTO `t_system_notice` VALUES (5818, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 342, '2020-09-10 18:58:36', 2);
+INSERT INTO `t_system_notice` VALUES (5819, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 8, '2020-09-10 18:58:51', 1);
+INSERT INTO `t_system_notice` VALUES (5820, 2, NULL, 1, NULL, '您的订单已指派给曾师傅,请保持电话畅通!', 342, '2020-09-10 18:58:51', 2);
+INSERT INTO `t_system_notice` VALUES (5821, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 19:29:08', 2);
+INSERT INTO `t_system_notice` VALUES (5822, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 19:48:43', 2);
+INSERT INTO `t_system_notice` VALUES (5823, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 347, '2020-09-10 20:13:03', 1);
+INSERT INTO `t_system_notice` VALUES (5824, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 348, '2020-09-10 20:13:08', 1);
+INSERT INTO `t_system_notice` VALUES (5825, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 347, '2020-09-10 20:14:12', 1);
+INSERT INTO `t_system_notice` VALUES (5826, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 20:14:17', 2);
+INSERT INTO `t_system_notice` VALUES (5827, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 347, '2020-09-10 20:14:27', 1);
+INSERT INTO `t_system_notice` VALUES (5828, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 347, '2020-09-10 20:15:25', 1);
+INSERT INTO `t_system_notice` VALUES (5829, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 20:27:17', 2);
+INSERT INTO `t_system_notice` VALUES (5830, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 20:53:06', 2);
+INSERT INTO `t_system_notice` VALUES (5831, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 21:11:12', 2);
+INSERT INTO `t_system_notice` VALUES (5832, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 21:26:45', 2);
+INSERT INTO `t_system_notice` VALUES (5833, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 21:51:17', 2);
+INSERT INTO `t_system_notice` VALUES (5834, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 349, '2020-09-10 22:12:20', 1);
+INSERT INTO `t_system_notice` VALUES (5835, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 350, '2020-09-10 22:12:22', 1);
+INSERT INTO `t_system_notice` VALUES (5836, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 342, '2020-09-10 22:13:23', 2);
+INSERT INTO `t_system_notice` VALUES (5837, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 351, '2020-09-10 23:08:23', 1);
+INSERT INTO `t_system_notice` VALUES (5838, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 352, '2020-09-10 23:08:27', 1);
+INSERT INTO `t_system_notice` VALUES (5839, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 353, '2020-09-11 00:27:51', 1);
+INSERT INTO `t_system_notice` VALUES (5840, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-11 09:36:39', 1);
+INSERT INTO `t_system_notice` VALUES (5841, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-11 09:36:46', 1);
+INSERT INTO `t_system_notice` VALUES (5842, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-11 09:36:46', 1);
+INSERT INTO `t_system_notice` VALUES (5843, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-11 09:48:30', 1);
+INSERT INTO `t_system_notice` VALUES (5844, 2, 1, 1, NULL, '您已使用微信成功完成出行订单支付,谢谢使用!', 242, '2020-09-11 09:48:56', 1);
+INSERT INTO `t_system_notice` VALUES (5845, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-11 09:53:19', 1);
+INSERT INTO `t_system_notice` VALUES (5846, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-11 09:53:24', 1);
+INSERT INTO `t_system_notice` VALUES (5847, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-11 09:53:24', 1);
+INSERT INTO `t_system_notice` VALUES (5848, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-11 10:06:13', 1);
+INSERT INTO `t_system_notice` VALUES (5849, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 354, '2020-09-11 10:10:02', 2);
+INSERT INTO `t_system_notice` VALUES (5850, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 184, '2020-09-11 10:55:19', 2);
+INSERT INTO `t_system_notice` VALUES (5851, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 355, '2020-09-11 13:07:02', 1);
+INSERT INTO `t_system_notice` VALUES (5852, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 356, '2020-09-11 13:07:07', 1);
+INSERT INTO `t_system_notice` VALUES (5853, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 357, '2020-09-11 13:18:49', 1);
+INSERT INTO `t_system_notice` VALUES (5854, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 357, '2020-09-11 13:20:05', 1);
+INSERT INTO `t_system_notice` VALUES (5855, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 357, '2020-09-11 13:20:10', 1);
+INSERT INTO `t_system_notice` VALUES (5856, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 334, '2020-09-11 13:44:51', 1);
+INSERT INTO `t_system_notice` VALUES (5857, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 334, '2020-09-11 13:44:57', 1);
+INSERT INTO `t_system_notice` VALUES (5858, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 334, '2020-09-11 13:48:04', 1);
+INSERT INTO `t_system_notice` VALUES (5859, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 334, '2020-09-11 13:48:09', 1);
+INSERT INTO `t_system_notice` VALUES (5860, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 358, '2020-09-11 16:39:04', 2);
+INSERT INTO `t_system_notice` VALUES (5861, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 359, '2020-09-11 16:39:07', 1);
+INSERT INTO `t_system_notice` VALUES (5862, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 358, '2020-09-11 16:39:36', 2);
+INSERT INTO `t_system_notice` VALUES (5863, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 358, '2020-09-11 16:40:47', 2);
+INSERT INTO `t_system_notice` VALUES (5864, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 358, '2020-09-11 16:41:56', 1);
+INSERT INTO `t_system_notice` VALUES (5865, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 358, '2020-09-11 16:45:56', 1);
+INSERT INTO `t_system_notice` VALUES (5866, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 358, '2020-09-11 16:46:11', 1);
+INSERT INTO `t_system_notice` VALUES (5867, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 358, '2020-09-11 16:46:25', 1);
+INSERT INTO `t_system_notice` VALUES (5868, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 358, '2020-09-11 16:47:07', 1);
+INSERT INTO `t_system_notice` VALUES (5869, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 358, '2020-09-11 16:47:51', 1);
+INSERT INTO `t_system_notice` VALUES (5870, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 360, '2020-09-11 17:34:32', 1);
+INSERT INTO `t_system_notice` VALUES (5871, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 361, '2020-09-11 17:34:36', 1);
+INSERT INTO `t_system_notice` VALUES (5872, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 324, '2020-09-11 17:53:10', 1);
+INSERT INTO `t_system_notice` VALUES (5873, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 324, '2020-09-11 17:53:24', 1);
+INSERT INTO `t_system_notice` VALUES (5874, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 324, '2020-09-11 17:53:41', 1);
+INSERT INTO `t_system_notice` VALUES (5875, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 324, '2020-09-11 17:54:04', 1);
+INSERT INTO `t_system_notice` VALUES (5876, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 362, '2020-09-11 17:54:10', 1);
+INSERT INTO `t_system_notice` VALUES (5877, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 363, '2020-09-11 17:54:13', 1);
+INSERT INTO `t_system_notice` VALUES (5878, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 324, '2020-09-11 17:54:47', 1);
+INSERT INTO `t_system_notice` VALUES (5879, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 362, '2020-09-11 17:54:56', 1);
+INSERT INTO `t_system_notice` VALUES (5880, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 324, '2020-09-11 17:55:08', 1);
+INSERT INTO `t_system_notice` VALUES (5881, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 364, '2020-09-11 17:55:23', 1);
+INSERT INTO `t_system_notice` VALUES (5882, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 365, '2020-09-11 17:55:28', 1);
+INSERT INTO `t_system_notice` VALUES (5883, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 362, '2020-09-11 17:55:30', 1);
+INSERT INTO `t_system_notice` VALUES (5884, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 366, '2020-09-11 18:02:24', 1);
+INSERT INTO `t_system_notice` VALUES (5885, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 367, '2020-09-11 18:02:29', 1);
+INSERT INTO `t_system_notice` VALUES (5886, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 269, '2020-09-11 18:03:19', 1);
+INSERT INTO `t_system_notice` VALUES (5887, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 269, '2020-09-11 18:05:53', 1);
+INSERT INTO `t_system_notice` VALUES (5888, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 368, '2020-09-11 18:11:22', 1);
+INSERT INTO `t_system_notice` VALUES (5889, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 369, '2020-09-11 18:11:24', 1);
+INSERT INTO `t_system_notice` VALUES (5890, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 370, '2020-09-11 18:19:57', 1);
+INSERT INTO `t_system_notice` VALUES (5891, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 371, '2020-09-11 18:21:59', 1);
+INSERT INTO `t_system_notice` VALUES (5892, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 372, '2020-09-11 18:21:59', 1);
+INSERT INTO `t_system_notice` VALUES (5893, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 373, '2020-09-11 18:22:03', 1);
+INSERT INTO `t_system_notice` VALUES (5894, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 374, '2020-09-11 18:22:04', 1);
+INSERT INTO `t_system_notice` VALUES (5895, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 372, '2020-09-11 18:22:45', 1);
+INSERT INTO `t_system_notice` VALUES (5896, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 371, '2020-09-11 18:23:11', 1);
+INSERT INTO `t_system_notice` VALUES (5897, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 372, '2020-09-11 18:23:34', 1);
+INSERT INTO `t_system_notice` VALUES (5898, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 375, '2020-09-11 18:26:16', 1);
+INSERT INTO `t_system_notice` VALUES (5899, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 376, '2020-09-11 18:26:20', 1);
+INSERT INTO `t_system_notice` VALUES (5900, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 371, '2020-09-11 18:26:37', 1);
+INSERT INTO `t_system_notice` VALUES (5901, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 371, '2020-09-11 18:27:07', 1);
+INSERT INTO `t_system_notice` VALUES (5902, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 371, '2020-09-11 18:27:24', 1);
+INSERT INTO `t_system_notice` VALUES (5903, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 371, '2020-09-11 18:27:33', 1);
+INSERT INTO `t_system_notice` VALUES (5904, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 371, '2020-09-11 18:29:03', 1);
+INSERT INTO `t_system_notice` VALUES (5905, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 377, '2020-09-11 18:39:45', 1);
+INSERT INTO `t_system_notice` VALUES (5906, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 378, '2020-09-11 18:39:52', 1);
+INSERT INTO `t_system_notice` VALUES (5907, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 379, '2020-09-11 18:43:40', 1);
+INSERT INTO `t_system_notice` VALUES (5908, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 380, '2020-09-11 18:44:02', 1);
+INSERT INTO `t_system_notice` VALUES (5909, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 380, '2020-09-11 18:44:51', 1);
+INSERT INTO `t_system_notice` VALUES (5910, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 380, '2020-09-11 18:46:32', 1);
+INSERT INTO `t_system_notice` VALUES (5911, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 380, '2020-09-11 18:56:14', 1);
+INSERT INTO `t_system_notice` VALUES (5912, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 381, '2020-09-11 19:02:51', 1);
+INSERT INTO `t_system_notice` VALUES (5913, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 382, '2020-09-11 19:02:55', 1);
+INSERT INTO `t_system_notice` VALUES (5914, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 381, '2020-09-11 19:04:34', 1);
+INSERT INTO `t_system_notice` VALUES (5915, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 381, '2020-09-11 19:06:22', 1);
+INSERT INTO `t_system_notice` VALUES (5916, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 383, '2020-09-11 19:23:27', 1);
+INSERT INTO `t_system_notice` VALUES (5917, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 384, '2020-09-11 19:25:54', 1);
+INSERT INTO `t_system_notice` VALUES (5918, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 385, '2020-09-11 19:26:02', 1);
+INSERT INTO `t_system_notice` VALUES (5919, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 384, '2020-09-11 19:27:03', 1);
+INSERT INTO `t_system_notice` VALUES (5920, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 384, '2020-09-11 19:27:32', 1);
+INSERT INTO `t_system_notice` VALUES (5921, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 384, '2020-09-11 19:27:48', 1);
+INSERT INTO `t_system_notice` VALUES (5922, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 384, '2020-09-11 19:28:19', 1);
+INSERT INTO `t_system_notice` VALUES (5923, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 386, '2020-09-11 19:41:43', 1);
+INSERT INTO `t_system_notice` VALUES (5924, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 387, '2020-09-11 20:15:12', 1);
+INSERT INTO `t_system_notice` VALUES (5925, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 388, '2020-09-11 20:15:17', 1);
+INSERT INTO `t_system_notice` VALUES (5926, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 387, '2020-09-11 20:16:46', 1);
+INSERT INTO `t_system_notice` VALUES (5927, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 387, '2020-09-11 20:18:00', 1);
+INSERT INTO `t_system_notice` VALUES (5928, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 387, '2020-09-11 20:19:40', 1);
+INSERT INTO `t_system_notice` VALUES (5929, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 387, '2020-09-11 20:21:08', 1);
+INSERT INTO `t_system_notice` VALUES (5930, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 387, '2020-09-11 20:23:02', 1);
+INSERT INTO `t_system_notice` VALUES (5931, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 387, '2020-09-11 20:24:15', 1);
+INSERT INTO `t_system_notice` VALUES (5932, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 387, '2020-09-11 20:31:35', 1);
+INSERT INTO `t_system_notice` VALUES (5933, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 387, '2020-09-11 20:32:48', 1);
+INSERT INTO `t_system_notice` VALUES (5934, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 389, '2020-09-11 20:35:23', 1);
+INSERT INTO `t_system_notice` VALUES (5935, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 390, '2020-09-11 20:53:11', 1);
+INSERT INTO `t_system_notice` VALUES (5936, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 390, '2020-09-11 20:54:16', 1);
+INSERT INTO `t_system_notice` VALUES (5937, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 390, '2020-09-11 20:55:43', 1);
+INSERT INTO `t_system_notice` VALUES (5938, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 391, '2020-09-11 21:05:14', 1);
+INSERT INTO `t_system_notice` VALUES (5939, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 391, '2020-09-11 21:05:53', 1);
+INSERT INTO `t_system_notice` VALUES (5940, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 392, '2020-09-11 21:07:34', 1);
+INSERT INTO `t_system_notice` VALUES (5941, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 393, '2020-09-11 21:08:17', 1);
+INSERT INTO `t_system_notice` VALUES (5942, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 392, '2020-09-11 21:08:19', 1);
+INSERT INTO `t_system_notice` VALUES (5943, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 393, '2020-09-11 21:09:12', 1);
+INSERT INTO `t_system_notice` VALUES (5944, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 393, '2020-09-11 21:09:46', 1);
+INSERT INTO `t_system_notice` VALUES (5945, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 394, '2020-09-11 21:13:21', 1);
+INSERT INTO `t_system_notice` VALUES (5946, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 395, '2020-09-11 21:13:24', 1);
+INSERT INTO `t_system_notice` VALUES (5947, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 392, '2020-09-11 21:14:20', 1);
+INSERT INTO `t_system_notice` VALUES (5948, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 394, '2020-09-11 21:17:10', 1);
+INSERT INTO `t_system_notice` VALUES (5949, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 394, '2020-09-11 21:18:38', 1);
+INSERT INTO `t_system_notice` VALUES (5950, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 396, '2020-09-11 21:27:06', 1);
+INSERT INTO `t_system_notice` VALUES (5951, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 397, '2020-09-11 21:27:09', 1);
+INSERT INTO `t_system_notice` VALUES (5952, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 394, '2020-09-11 21:27:41', 1);
+INSERT INTO `t_system_notice` VALUES (5953, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 394, '2020-09-11 21:28:38', 1);
+INSERT INTO `t_system_notice` VALUES (5954, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 398, '2020-09-11 21:37:29', 1);
+INSERT INTO `t_system_notice` VALUES (5955, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 372, '2020-09-11 22:11:19', 1);
+INSERT INTO `t_system_notice` VALUES (5956, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 399, '2020-09-11 22:16:15', 1);
+INSERT INTO `t_system_notice` VALUES (5957, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 400, '2020-09-11 22:16:18', 1);
+INSERT INTO `t_system_notice` VALUES (5958, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 372, '2020-09-11 22:16:31', 1);
+INSERT INTO `t_system_notice` VALUES (5959, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 401, '2020-09-11 22:22:23', 1);
+INSERT INTO `t_system_notice` VALUES (5960, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 402, '2020-09-11 22:22:30', 1);
+INSERT INTO `t_system_notice` VALUES (5961, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 402, '2020-09-11 22:25:57', 1);
+INSERT INTO `t_system_notice` VALUES (5962, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 372, '2020-09-11 22:28:18', 1);
+INSERT INTO `t_system_notice` VALUES (5963, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 372, '2020-09-11 22:28:39', 1);
+INSERT INTO `t_system_notice` VALUES (5964, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 403, '2020-09-11 22:29:34', 1);
+INSERT INTO `t_system_notice` VALUES (5965, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 372, '2020-09-11 22:30:08', 1);
+INSERT INTO `t_system_notice` VALUES (5966, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 403, '2020-09-11 22:30:11', 1);
+INSERT INTO `t_system_notice` VALUES (5967, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 372, '2020-09-11 22:30:38', 1);
+INSERT INTO `t_system_notice` VALUES (5968, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 403, '2020-09-11 22:31:22', 1);
+INSERT INTO `t_system_notice` VALUES (5969, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 403, '2020-09-11 22:31:31', 1);
+INSERT INTO `t_system_notice` VALUES (5970, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 402, '2020-09-11 22:32:02', 1);
+INSERT INTO `t_system_notice` VALUES (5971, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 403, '2020-09-11 22:32:22', 1);
+INSERT INTO `t_system_notice` VALUES (5972, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 288, '2020-09-12 02:01:42', 1);
+INSERT INTO `t_system_notice` VALUES (5973, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 288, '2020-09-12 02:10:43', 1);
+INSERT INTO `t_system_notice` VALUES (5974, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 404, '2020-09-12 03:24:31', 1);
+INSERT INTO `t_system_notice` VALUES (5975, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 404, '2020-09-12 03:26:37', 1);
+INSERT INTO `t_system_notice` VALUES (5976, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 404, '2020-09-12 03:30:40', 1);
+INSERT INTO `t_system_notice` VALUES (5977, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 405, '2020-09-12 03:37:53', 1);
+INSERT INTO `t_system_notice` VALUES (5978, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 406, '2020-09-12 03:37:57', 1);
+INSERT INTO `t_system_notice` VALUES (5979, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 407, '2020-09-12 03:38:28', 1);
+INSERT INTO `t_system_notice` VALUES (5980, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 408, '2020-09-12 03:38:33', 1);
+INSERT INTO `t_system_notice` VALUES (5981, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 407, '2020-09-12 03:45:23', 1);
+INSERT INTO `t_system_notice` VALUES (5982, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 409, '2020-09-12 08:01:13', 1);
+INSERT INTO `t_system_notice` VALUES (5983, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 409, '2020-09-12 08:01:54', 1);
+INSERT INTO `t_system_notice` VALUES (5984, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 409, '2020-09-12 08:02:46', 1);
+INSERT INTO `t_system_notice` VALUES (5985, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 409, '2020-09-12 08:03:00', 1);
+INSERT INTO `t_system_notice` VALUES (5986, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 409, '2020-09-12 08:04:08', 1);
+INSERT INTO `t_system_notice` VALUES (5987, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-12 08:19:36', 1);
+INSERT INTO `t_system_notice` VALUES (5988, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 333, '2020-09-12 08:20:25', 1);
+INSERT INTO `t_system_notice` VALUES (5989, 2, NULL, 1, NULL, '您的订单已指派给陈师傅,请保持电话畅通!', 245, '2020-09-12 08:20:25', 1);
+INSERT INTO `t_system_notice` VALUES (5990, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 393, '2020-09-12 08:23:48', 1);
+INSERT INTO `t_system_notice` VALUES (5991, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 393, '2020-09-12 08:24:32', 1);
+INSERT INTO `t_system_notice` VALUES (5992, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 245, '2020-09-12 08:44:03', 1);
+INSERT INTO `t_system_notice` VALUES (5993, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 245, '2020-09-12 08:46:45', 1);
+INSERT INTO `t_system_notice` VALUES (5994, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 410, '2020-09-12 09:45:56', 2);
+INSERT INTO `t_system_notice` VALUES (5995, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 410, '2020-09-12 09:48:21', 2);
+INSERT INTO `t_system_notice` VALUES (5996, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 309, '2020-09-12 09:51:02', 1);
+INSERT INTO `t_system_notice` VALUES (5997, 2, NULL, 1, NULL, '您的订单已指派给肖师傅,请保持电话畅通!', 410, '2020-09-12 09:51:02', 2);
+INSERT INTO `t_system_notice` VALUES (5998, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 410, '2020-09-12 10:06:09', 1);
+INSERT INTO `t_system_notice` VALUES (5999, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 308, '2020-09-12 11:57:33', 1);
+INSERT INTO `t_system_notice` VALUES (6000, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 771, '2020-09-12 11:58:20', 1);
+INSERT INTO `t_system_notice` VALUES (6001, 2, NULL, 1, NULL, '您的订单已指派给吴师傅,请保持电话畅通!', 308, '2020-09-12 11:58:20', 1);
+INSERT INTO `t_system_notice` VALUES (6002, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 308, '2020-09-12 12:00:20', 1);
+INSERT INTO `t_system_notice` VALUES (6003, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 308, '2020-09-12 12:09:52', 1);
+INSERT INTO `t_system_notice` VALUES (6004, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 308, '2020-09-12 12:12:16', 1);
+INSERT INTO `t_system_notice` VALUES (6005, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 269, '2020-09-12 15:26:04', 1);
+INSERT INTO `t_system_notice` VALUES (6006, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 269, '2020-09-12 15:30:48', 1);
+INSERT INTO `t_system_notice` VALUES (6007, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 269, '2020-09-12 15:31:40', 1);
+INSERT INTO `t_system_notice` VALUES (6008, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 269, '2020-09-12 15:33:17', 1);
+INSERT INTO `t_system_notice` VALUES (6009, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 411, '2020-09-12 17:37:29', 1);
+INSERT INTO `t_system_notice` VALUES (6010, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 412, '2020-09-12 17:37:37', 1);
+INSERT INTO `t_system_notice` VALUES (6011, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 413, '2020-09-12 17:59:26', 1);
+INSERT INTO `t_system_notice` VALUES (6012, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 414, '2020-09-12 17:59:30', 1);
+INSERT INTO `t_system_notice` VALUES (6013, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 413, '2020-09-12 18:01:59', 1);
+INSERT INTO `t_system_notice` VALUES (6014, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 324, '2020-09-12 18:02:41', 1);
+INSERT INTO `t_system_notice` VALUES (6015, 2, NULL, 1, NULL, '您的订单已指派给韦师傅,请保持电话畅通!', 413, '2020-09-12 18:02:41', 1);
+INSERT INTO `t_system_notice` VALUES (6016, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 413, '2020-09-12 18:37:48', 1);
+INSERT INTO `t_system_notice` VALUES (6017, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 415, '2020-09-12 22:33:17', 1);
+INSERT INTO `t_system_notice` VALUES (6018, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-13 05:01:23', 1);
+INSERT INTO `t_system_notice` VALUES (6019, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 245, '2020-09-13 05:03:47', 1);
+INSERT INTO `t_system_notice` VALUES (6020, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 416, '2020-09-13 12:00:34', 1);
+INSERT INTO `t_system_notice` VALUES (6021, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 416, '2020-09-13 12:01:07', 1);
+INSERT INTO `t_system_notice` VALUES (6022, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 416, '2020-09-13 12:03:07', 1);
+INSERT INTO `t_system_notice` VALUES (6023, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 416, '2020-09-13 12:03:11', 1);
+INSERT INTO `t_system_notice` VALUES (6024, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 416, '2020-09-13 12:03:24', 1);
+INSERT INTO `t_system_notice` VALUES (6025, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 416, '2020-09-13 12:15:02', 1);
+INSERT INTO `t_system_notice` VALUES (6026, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 416, '2020-09-13 12:16:27', 1);
+INSERT INTO `t_system_notice` VALUES (6027, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-13 17:28:39', 1);
+INSERT INTO `t_system_notice` VALUES (6028, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 245, '2020-09-13 17:29:11', 1);
+INSERT INTO `t_system_notice` VALUES (6029, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-14 14:54:39', 2);
+INSERT INTO `t_system_notice` VALUES (6030, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-14 14:55:49', 2);
+INSERT INTO `t_system_notice` VALUES (6031, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 194, '2020-09-14 14:55:58', 2);
+INSERT INTO `t_system_notice` VALUES (6032, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 194, '2020-09-14 14:58:18', 2);
+INSERT INTO `t_system_notice` VALUES (6033, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 417, '2020-09-14 15:06:26', 2);
+INSERT INTO `t_system_notice` VALUES (6034, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 418, '2020-09-14 23:06:51', 1);
+INSERT INTO `t_system_notice` VALUES (6035, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 419, '2020-09-15 03:21:53', 2);
+INSERT INTO `t_system_notice` VALUES (6036, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 420, '2020-09-15 16:03:56', 1);
+INSERT INTO `t_system_notice` VALUES (6037, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 420, '2020-09-15 16:05:00', 1);
+INSERT INTO `t_system_notice` VALUES (6038, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 420, '2020-09-15 16:06:07', 1);
+INSERT INTO `t_system_notice` VALUES (6039, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 420, '2020-09-15 16:06:28', 1);
+INSERT INTO `t_system_notice` VALUES (6040, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 420, '2020-09-15 16:06:40', 1);
+INSERT INTO `t_system_notice` VALUES (6041, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 420, '2020-09-15 16:07:40', 1);
+INSERT INTO `t_system_notice` VALUES (6042, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 420, '2020-09-15 16:08:13', 1);
+INSERT INTO `t_system_notice` VALUES (6043, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 421, '2020-09-16 10:52:55', 1);
+INSERT INTO `t_system_notice` VALUES (6044, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 421, '2020-09-16 10:53:27', 1);
+INSERT INTO `t_system_notice` VALUES (6045, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 421, '2020-09-16 10:53:57', 1);
+INSERT INTO `t_system_notice` VALUES (6046, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 422, '2020-09-16 10:54:25', 1);
+INSERT INTO `t_system_notice` VALUES (6047, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 422, '2020-09-16 10:54:51', 1);
+INSERT INTO `t_system_notice` VALUES (6048, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 422, '2020-09-16 11:11:20', 1);
+INSERT INTO `t_system_notice` VALUES (6049, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 242, '2020-09-16 15:38:28', 1);
+INSERT INTO `t_system_notice` VALUES (6050, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 73, '2020-09-16 15:38:32', 1);
+INSERT INTO `t_system_notice` VALUES (6051, 2, NULL, 1, NULL, '您的订单已指派给谷师傅,请保持电话畅通!', 242, '2020-09-16 15:38:32', 1);
+INSERT INTO `t_system_notice` VALUES (6052, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 242, '2020-09-16 15:50:19', 1);
+INSERT INTO `t_system_notice` VALUES (6053, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 423, '2020-09-16 21:09:26', 1);
+INSERT INTO `t_system_notice` VALUES (6054, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 423, '2020-09-16 21:10:01', 1);
+INSERT INTO `t_system_notice` VALUES (6055, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 423, '2020-09-16 21:10:23', 1);
+INSERT INTO `t_system_notice` VALUES (6056, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 423, '2020-09-16 21:10:58', 1);
+INSERT INTO `t_system_notice` VALUES (6057, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 423, '2020-09-16 21:11:14', 1);
+INSERT INTO `t_system_notice` VALUES (6058, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 423, '2020-09-17 09:25:20', 1);
+INSERT INTO `t_system_notice` VALUES (6059, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 423, '2020-09-17 09:25:44', 1);
+INSERT INTO `t_system_notice` VALUES (6060, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 423, '2020-09-17 09:26:00', 1);
+INSERT INTO `t_system_notice` VALUES (6061, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 423, '2020-09-17 09:26:29', 1);
+INSERT INTO `t_system_notice` VALUES (6062, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 423, '2020-09-17 09:31:06', 1);
+INSERT INTO `t_system_notice` VALUES (6063, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 423, '2020-09-17 09:57:28', 1);
+INSERT INTO `t_system_notice` VALUES (6064, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 424, '2020-09-17 22:14:55', 1);
+INSERT INTO `t_system_notice` VALUES (6065, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 424, '2020-09-17 22:15:16', 1);
+INSERT INTO `t_system_notice` VALUES (6066, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 63, '2020-09-17 22:16:22', 1);
+INSERT INTO `t_system_notice` VALUES (6067, 2, NULL, 1, NULL, '您的订单已指派给黄师傅,请保持电话畅通!', 424, '2020-09-17 22:16:22', 1);
+INSERT INTO `t_system_notice` VALUES (6068, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 424, '2020-09-17 22:35:24', 1);
+INSERT INTO `t_system_notice` VALUES (6069, 2, 1, 1, NULL, '您已使用支付宝成功完成出行订单支付,谢谢使用!', 424, '2020-09-17 22:35:55', 1);
+INSERT INTO `t_system_notice` VALUES (6070, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 245, '2020-09-18 11:49:02', 1);
+INSERT INTO `t_system_notice` VALUES (6071, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 245, '2020-09-18 11:50:14', 1);
+INSERT INTO `t_system_notice` VALUES (6072, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 425, '2020-09-18 17:14:33', 1);
+INSERT INTO `t_system_notice` VALUES (6073, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 426, '2020-09-18 17:22:35', 1);
+INSERT INTO `t_system_notice` VALUES (6074, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 427, '2020-09-18 17:28:37', 1);
+INSERT INTO `t_system_notice` VALUES (6075, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 428, '2020-09-18 18:28:47', 1);
+INSERT INTO `t_system_notice` VALUES (6076, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 429, '2020-09-18 19:45:50', 1);
+INSERT INTO `t_system_notice` VALUES (6077, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 430, '2020-09-19 12:41:31', 1);
+INSERT INTO `t_system_notice` VALUES (6078, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 430, '2020-09-19 12:43:10', 1);
+INSERT INTO `t_system_notice` VALUES (6079, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 430, '2020-09-19 12:43:59', 1);
+INSERT INTO `t_system_notice` VALUES (6080, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 430, '2020-09-19 12:44:17', 1);
+INSERT INTO `t_system_notice` VALUES (6081, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 430, '2020-09-19 12:44:35', 1);
+INSERT INTO `t_system_notice` VALUES (6082, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 431, '2020-09-20 21:43:29', 1);
+INSERT INTO `t_system_notice` VALUES (6083, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 432, '2020-09-21 11:21:19', 1);
+INSERT INTO `t_system_notice` VALUES (6084, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 11:43:56', 1);
+INSERT INTO `t_system_notice` VALUES (6085, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 15:25:43', 1);
+INSERT INTO `t_system_notice` VALUES (6086, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 15:32:34', 1);
+INSERT INTO `t_system_notice` VALUES (6087, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-21 15:39:25', 1);
+INSERT INTO `t_system_notice` VALUES (6088, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-21 15:40:52', 1);
+INSERT INTO `t_system_notice` VALUES (6089, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-21 15:41:08', 1);
+INSERT INTO `t_system_notice` VALUES (6090, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-21 15:41:29', 1);
+INSERT INTO `t_system_notice` VALUES (6091, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 15:59:52', 1);
+INSERT INTO `t_system_notice` VALUES (6092, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 16:00:22', 1);
+INSERT INTO `t_system_notice` VALUES (6093, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 16:00:28', 1);
+INSERT INTO `t_system_notice` VALUES (6094, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 16:17:33', 1);
+INSERT INTO `t_system_notice` VALUES (6095, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 16:27:47', 1);
+INSERT INTO `t_system_notice` VALUES (6096, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 16:28:06', 1);
+INSERT INTO `t_system_notice` VALUES (6097, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 16:30:14', 1);
+INSERT INTO `t_system_notice` VALUES (6098, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 16:34:11', 1);
+INSERT INTO `t_system_notice` VALUES (6099, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 16:34:28', 1);
+INSERT INTO `t_system_notice` VALUES (6100, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 16:34:45', 1);
+INSERT INTO `t_system_notice` VALUES (6101, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 16:34:51', 1);
+INSERT INTO `t_system_notice` VALUES (6102, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-21 16:35:03', 1);
+INSERT INTO `t_system_notice` VALUES (6103, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-21 16:37:12', 1);
+INSERT INTO `t_system_notice` VALUES (6104, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 432, '2020-09-22 10:10:55', 1);
+INSERT INTO `t_system_notice` VALUES (6105, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 432, '2020-09-22 10:11:10', 1);
+INSERT INTO `t_system_notice` VALUES (6106, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 432, '2020-09-22 10:24:26', 1);
+INSERT INTO `t_system_notice` VALUES (6107, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 432, '2020-09-22 10:24:39', 1);
+INSERT INTO `t_system_notice` VALUES (6108, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:38:46', 1);
+INSERT INTO `t_system_notice` VALUES (6109, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 14:39:52', 1);
+INSERT INTO `t_system_notice` VALUES (6110, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:39:57', 1);
+INSERT INTO `t_system_notice` VALUES (6111, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 14:40:05', 1);
+INSERT INTO `t_system_notice` VALUES (6112, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:40:10', 1);
+INSERT INTO `t_system_notice` VALUES (6113, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 14:40:16', 1);
+INSERT INTO `t_system_notice` VALUES (6114, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:50:35', 1);
+INSERT INTO `t_system_notice` VALUES (6115, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 14:51:43', 1);
+INSERT INTO `t_system_notice` VALUES (6116, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:51:47', 1);
+INSERT INTO `t_system_notice` VALUES (6117, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 14:52:09', 1);
+INSERT INTO `t_system_notice` VALUES (6118, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:52:13', 1);
+INSERT INTO `t_system_notice` VALUES (6119, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 14:53:44', 1);
+INSERT INTO `t_system_notice` VALUES (6120, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 14:53:50', 1);
+INSERT INTO `t_system_notice` VALUES (6121, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 15:00:38', 1);
+INSERT INTO `t_system_notice` VALUES (6122, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 15:00:43', 1);
+INSERT INTO `t_system_notice` VALUES (6123, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 15:01:14', 1);
+INSERT INTO `t_system_notice` VALUES (6124, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 15:01:17', 1);
+INSERT INTO `t_system_notice` VALUES (6125, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 183, '2020-09-22 15:03:14', 1);
+INSERT INTO `t_system_notice` VALUES (6126, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 432, '2020-09-22 15:09:25', 1);
+INSERT INTO `t_system_notice` VALUES (6127, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 432, '2020-09-22 15:09:36', 1);
+INSERT INTO `t_system_notice` VALUES (6128, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 15:11:14', 1);
+INSERT INTO `t_system_notice` VALUES (6129, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 432, '2020-09-22 15:20:32', 1);
+INSERT INTO `t_system_notice` VALUES (6130, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 432, '2020-09-22 15:20:49', 1);
+INSERT INTO `t_system_notice` VALUES (6131, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 432, '2020-09-22 15:20:58', 1);
+INSERT INTO `t_system_notice` VALUES (6132, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 15:21:08', 1);
+INSERT INTO `t_system_notice` VALUES (6133, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 432, '2020-09-22 15:21:08', 1);
+INSERT INTO `t_system_notice` VALUES (6134, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 15:22:59', 1);
+INSERT INTO `t_system_notice` VALUES (6135, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 15:23:26', 1);
+INSERT INTO `t_system_notice` VALUES (6136, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 432, '2020-09-22 15:26:35', 1);
+INSERT INTO `t_system_notice` VALUES (6137, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 432, '2020-09-22 15:26:39', 1);
+INSERT INTO `t_system_notice` VALUES (6138, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 183, '2020-09-22 15:33:44', 1);
+INSERT INTO `t_system_notice` VALUES (6139, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 910, '2020-09-22 15:33:52', 1);
+INSERT INTO `t_system_notice` VALUES (6140, 2, NULL, 1, NULL, '您的订单已指派给任师傅,请保持电话畅通!', 183, '2020-09-22 15:33:52', 1);
+INSERT INTO `t_system_notice` VALUES (6141, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 183, '2020-09-22 15:37:16', 1);
+INSERT INTO `t_system_notice` VALUES (6142, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 183, '2020-09-22 15:37:23', 1);
+INSERT INTO `t_system_notice` VALUES (6143, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 432, '2020-09-22 15:49:26', 1);
+INSERT INTO `t_system_notice` VALUES (6144, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 15:49:31', 1);
+INSERT INTO `t_system_notice` VALUES (6145, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 432, '2020-09-22 15:49:31', 1);
+INSERT INTO `t_system_notice` VALUES (6146, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 432, '2020-09-22 15:49:34', 1);
+INSERT INTO `t_system_notice` VALUES (6147, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 432, '2020-09-22 15:49:44', 1);
+INSERT INTO `t_system_notice` VALUES (6148, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 433, '2020-09-22 15:57:25', 1);
+INSERT INTO `t_system_notice` VALUES (6149, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 433, '2020-09-22 15:57:33', 1);
+INSERT INTO `t_system_notice` VALUES (6150, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 433, '2020-09-22 15:58:39', 1);
+INSERT INTO `t_system_notice` VALUES (6151, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 433, '2020-09-22 15:58:43', 1);
+INSERT INTO `t_system_notice` VALUES (6152, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 15:58:48', 1);
+INSERT INTO `t_system_notice` VALUES (6153, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 433, '2020-09-22 15:58:48', 1);
+INSERT INTO `t_system_notice` VALUES (6154, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 433, '2020-09-22 15:58:52', 1);
+INSERT INTO `t_system_notice` VALUES (6155, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 433, '2020-09-22 15:58:54', 1);
+INSERT INTO `t_system_notice` VALUES (6156, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 433, '2020-09-22 16:01:17', 1);
+INSERT INTO `t_system_notice` VALUES (6157, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 433, '2020-09-22 16:01:26', 1);
+INSERT INTO `t_system_notice` VALUES (6158, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 433, '2020-09-22 16:02:44', 1);
+INSERT INTO `t_system_notice` VALUES (6159, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 16:02:49', 1);
+INSERT INTO `t_system_notice` VALUES (6160, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 433, '2020-09-22 16:02:49', 1);
+INSERT INTO `t_system_notice` VALUES (6161, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 433, '2020-09-22 16:03:01', 1);
+INSERT INTO `t_system_notice` VALUES (6162, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 433, '2020-09-22 16:03:35', 1);
+INSERT INTO `t_system_notice` VALUES (6163, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 433, '2020-09-22 16:09:06', 1);
+INSERT INTO `t_system_notice` VALUES (6164, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 434, '2020-09-22 16:13:09', 1);
+INSERT INTO `t_system_notice` VALUES (6165, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 434, '2020-09-22 16:13:33', 1);
+INSERT INTO `t_system_notice` VALUES (6166, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 16:13:40', 1);
+INSERT INTO `t_system_notice` VALUES (6167, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 434, '2020-09-22 16:13:40', 1);
+INSERT INTO `t_system_notice` VALUES (6168, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 434, '2020-09-22 16:13:42', 1);
+INSERT INTO `t_system_notice` VALUES (6169, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 434, '2020-09-22 16:13:43', 1);
+INSERT INTO `t_system_notice` VALUES (6170, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 434, '2020-09-22 16:13:47', 1);
+INSERT INTO `t_system_notice` VALUES (6171, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:19:57', 1);
+INSERT INTO `t_system_notice` VALUES (6172, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:31:18', 1);
+INSERT INTO `t_system_notice` VALUES (6173, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:31:34', 1);
+INSERT INTO `t_system_notice` VALUES (6174, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:31:48', 1);
+INSERT INTO `t_system_notice` VALUES (6175, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:31:54', 1);
+INSERT INTO `t_system_notice` VALUES (6176, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:32:05', 1);
+INSERT INTO `t_system_notice` VALUES (6177, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:32:51', 1);
+INSERT INTO `t_system_notice` VALUES (6178, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:34:38', 1);
+INSERT INTO `t_system_notice` VALUES (6179, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:34:47', 1);
+INSERT INTO `t_system_notice` VALUES (6180, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:36:24', 1);
+INSERT INTO `t_system_notice` VALUES (6181, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:36:31', 1);
+INSERT INTO `t_system_notice` VALUES (6182, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:36:51', 1);
+INSERT INTO `t_system_notice` VALUES (6183, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:37:17', 1);
+INSERT INTO `t_system_notice` VALUES (6184, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:37:44', 1);
+INSERT INTO `t_system_notice` VALUES (6185, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:40:30', 1);
+INSERT INTO `t_system_notice` VALUES (6186, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:40:35', 1);
+INSERT INTO `t_system_notice` VALUES (6187, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:48:41', 1);
+INSERT INTO `t_system_notice` VALUES (6188, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:56:33', 1);
+INSERT INTO `t_system_notice` VALUES (6189, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:56:42', 1);
+INSERT INTO `t_system_notice` VALUES (6190, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:56:50', 1);
+INSERT INTO `t_system_notice` VALUES (6191, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 16:57:02', 1);
+INSERT INTO `t_system_notice` VALUES (6192, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 16:58:22', 1);
+INSERT INTO `t_system_notice` VALUES (6193, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 16:58:26', 1);
+INSERT INTO `t_system_notice` VALUES (6194, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 190, '2020-09-22 16:58:26', 1);
+INSERT INTO `t_system_notice` VALUES (6195, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 183, '2020-09-22 17:36:55', 1);
+INSERT INTO `t_system_notice` VALUES (6196, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-22 17:48:32', 1);
+INSERT INTO `t_system_notice` VALUES (6197, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-22 17:48:33', 1);
+INSERT INTO `t_system_notice` VALUES (6198, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-22 17:48:34', 1);
+INSERT INTO `t_system_notice` VALUES (6199, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 191, '2020-09-22 17:49:16', 1);
+INSERT INTO `t_system_notice` VALUES (6200, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 191, '2020-09-22 17:50:09', 1);
+INSERT INTO `t_system_notice` VALUES (6201, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 17:53:13', 1);
+INSERT INTO `t_system_notice` VALUES (6202, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-22 17:54:01', 1);
+INSERT INTO `t_system_notice` VALUES (6203, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 17:54:21', 1);
+INSERT INTO `t_system_notice` VALUES (6204, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-22 17:54:39', 1);
+INSERT INTO `t_system_notice` VALUES (6205, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 17:54:45', 1);
+INSERT INTO `t_system_notice` VALUES (6206, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 17:54:47', 1);
+INSERT INTO `t_system_notice` VALUES (6207, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-22 17:54:47', 1);
+INSERT INTO `t_system_notice` VALUES (6208, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-22 17:54:54', 1);
+INSERT INTO `t_system_notice` VALUES (6209, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-22 17:54:56', 1);
+INSERT INTO `t_system_notice` VALUES (6210, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-22 17:54:59', 1);
+INSERT INTO `t_system_notice` VALUES (6211, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:02:01', 1);
+INSERT INTO `t_system_notice` VALUES (6212, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-22 18:02:05', 1);
+INSERT INTO `t_system_notice` VALUES (6213, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-22 18:02:05', 1);
+INSERT INTO `t_system_notice` VALUES (6214, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 18:03:12', 1);
+INSERT INTO `t_system_notice` VALUES (6215, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:04:53', 1);
+INSERT INTO `t_system_notice` VALUES (6216, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-22 18:04:55', 1);
+INSERT INTO `t_system_notice` VALUES (6217, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-22 18:04:55', 1);
+INSERT INTO `t_system_notice` VALUES (6218, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-22 18:05:03', 1);
+INSERT INTO `t_system_notice` VALUES (6219, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-22 18:05:54', 1);
+INSERT INTO `t_system_notice` VALUES (6220, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 18:16:44', 1);
+INSERT INTO `t_system_notice` VALUES (6221, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 18:16:53', 1);
+INSERT INTO `t_system_notice` VALUES (6222, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-22 18:16:53', 1);
+INSERT INTO `t_system_notice` VALUES (6223, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-22 18:17:03', 1);
+INSERT INTO `t_system_notice` VALUES (6224, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-22 18:17:13', 1);
+INSERT INTO `t_system_notice` VALUES (6225, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-22 18:17:30', 1);
+INSERT INTO `t_system_notice` VALUES (6226, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:17:44', 1);
+INSERT INTO `t_system_notice` VALUES (6227, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 18:17:53', 1);
+INSERT INTO `t_system_notice` VALUES (6228, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 190, '2020-09-22 18:17:54', 1);
+INSERT INTO `t_system_notice` VALUES (6229, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-22 18:18:03', 1);
+INSERT INTO `t_system_notice` VALUES (6230, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-22 18:18:09', 1);
+INSERT INTO `t_system_notice` VALUES (6231, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-22 18:18:17', 1);
+INSERT INTO `t_system_notice` VALUES (6232, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:18:41', 1);
+INSERT INTO `t_system_notice` VALUES (6233, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 18:18:49', 1);
+INSERT INTO `t_system_notice` VALUES (6234, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:19:03', 1);
+INSERT INTO `t_system_notice` VALUES (6235, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-22 18:19:09', 1);
+INSERT INTO `t_system_notice` VALUES (6236, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-22 18:19:09', 1);
+INSERT INTO `t_system_notice` VALUES (6237, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-22 18:19:17', 1);
+INSERT INTO `t_system_notice` VALUES (6238, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 18:19:25', 1);
+INSERT INTO `t_system_notice` VALUES (6239, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-22 18:19:30', 1);
+INSERT INTO `t_system_notice` VALUES (6240, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-22 18:19:30', 1);
+INSERT INTO `t_system_notice` VALUES (6241, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-22 18:19:35', 1);
+INSERT INTO `t_system_notice` VALUES (6242, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-22 18:19:39', 1);
+INSERT INTO `t_system_notice` VALUES (6243, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-22 18:21:44', 1);
+INSERT INTO `t_system_notice` VALUES (6244, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 18:22:26', 1);
+INSERT INTO `t_system_notice` VALUES (6245, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 906, '2020-09-22 18:22:31', 1);
+INSERT INTO `t_system_notice` VALUES (6246, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-22 18:22:31', 1);
+INSERT INTO `t_system_notice` VALUES (6247, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-22 18:22:39', 1);
+INSERT INTO `t_system_notice` VALUES (6248, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-22 18:22:49', 1);
+INSERT INTO `t_system_notice` VALUES (6249, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-22 18:22:52', 1);
+INSERT INTO `t_system_notice` VALUES (6250, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-22 18:22:52', 1);
+INSERT INTO `t_system_notice` VALUES (6251, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-22 18:22:55', 1);
+INSERT INTO `t_system_notice` VALUES (6252, 2, NULL, 2, NULL, '您的改派申请已成功提交,我们会尽快为你处理!', 905, '2020-09-22 18:23:32', 1);
+INSERT INTO `t_system_notice` VALUES (6253, 2, NULL, 2, NULL, '您已使用余额成功支付改派申请费用!', 905, '2020-09-22 18:23:32', 1);
+INSERT INTO `t_system_notice` VALUES (6254, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-22 18:23:48', 1);
+INSERT INTO `t_system_notice` VALUES (6255, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:26:31', 1);
+INSERT INTO `t_system_notice` VALUES (6256, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 18:27:23', 1);
+INSERT INTO `t_system_notice` VALUES (6257, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:28:46', 1);
+INSERT INTO `t_system_notice` VALUES (6258, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 18:28:52', 1);
+INSERT INTO `t_system_notice` VALUES (6259, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:29:10', 1);
+INSERT INTO `t_system_notice` VALUES (6260, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-22 18:29:18', 1);
+INSERT INTO `t_system_notice` VALUES (6261, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-22 18:29:24', 1);
+INSERT INTO `t_system_notice` VALUES (6262, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-22 18:29:27', 1);
+INSERT INTO `t_system_notice` VALUES (6263, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-22 18:29:27', 1);
+INSERT INTO `t_system_notice` VALUES (6264, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-22 18:29:33', 1);
+INSERT INTO `t_system_notice` VALUES (6265, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-22 18:29:38', 1);
+INSERT INTO `t_system_notice` VALUES (6266, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-22 18:37:44', 1);
+INSERT INTO `t_system_notice` VALUES (6267, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-22 18:43:54', 1);
+INSERT INTO `t_system_notice` VALUES (6268, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 183, '2020-09-23 11:16:36', 1);
+INSERT INTO `t_system_notice` VALUES (6269, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 183, '2020-09-23 11:25:16', 1);
+INSERT INTO `t_system_notice` VALUES (6270, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-23 14:25:35', 1);
+INSERT INTO `t_system_notice` VALUES (6271, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 14:51:43', 1);
+INSERT INTO `t_system_notice` VALUES (6272, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-23 14:51:59', 1);
+INSERT INTO `t_system_notice` VALUES (6273, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 14:57:38', 1);
+INSERT INTO `t_system_notice` VALUES (6274, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-23 14:57:42', 1);
+INSERT INTO `t_system_notice` VALUES (6275, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 14:57:42', 1);
+INSERT INTO `t_system_notice` VALUES (6276, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-23 14:57:52', 1);
+INSERT INTO `t_system_notice` VALUES (6277, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-23 14:57:56', 1);
+INSERT INTO `t_system_notice` VALUES (6278, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-23 14:58:16', 1);
+INSERT INTO `t_system_notice` VALUES (6279, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-23 14:58:34', 1);
+INSERT INTO `t_system_notice` VALUES (6280, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 15:22:31', 1);
+INSERT INTO `t_system_notice` VALUES (6281, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-23 15:22:34', 1);
+INSERT INTO `t_system_notice` VALUES (6282, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 15:22:34', 1);
+INSERT INTO `t_system_notice` VALUES (6283, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-23 15:22:39', 1);
+INSERT INTO `t_system_notice` VALUES (6284, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-23 15:22:42', 1);
+INSERT INTO `t_system_notice` VALUES (6285, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-23 15:22:56', 1);
+INSERT INTO `t_system_notice` VALUES (6286, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-23 15:23:04', 1);
+INSERT INTO `t_system_notice` VALUES (6287, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 190, '2020-09-23 15:23:48', 1);
+INSERT INTO `t_system_notice` VALUES (6288, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 190, '2020-09-23 15:24:02', 1);
+INSERT INTO `t_system_notice` VALUES (6289, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 190, '2020-09-23 15:24:30', 1);
+INSERT INTO `t_system_notice` VALUES (6290, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 15:35:55', 1);
+INSERT INTO `t_system_notice` VALUES (6291, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-23 15:36:44', 1);
+INSERT INTO `t_system_notice` VALUES (6292, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 15:36:59', 1);
+INSERT INTO `t_system_notice` VALUES (6293, 2, NULL, 2, NULL, '您已成功抢得出租车订单,请及时联系客户!', 905, '2020-09-23 15:37:02', 1);
+INSERT INTO `t_system_notice` VALUES (6294, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 15:37:02', 1);
+INSERT INTO `t_system_notice` VALUES (6295, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-23 15:37:16', 1);
+INSERT INTO `t_system_notice` VALUES (6296, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-23 15:37:31', 1);
+INSERT INTO `t_system_notice` VALUES (6297, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-23 15:37:55', 1);
+INSERT INTO `t_system_notice` VALUES (6298, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-23 15:38:08', 1);
+INSERT INTO `t_system_notice` VALUES (6299, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 15:38:22', 1);
+INSERT INTO `t_system_notice` VALUES (6300, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-23 15:38:25', 1);
+INSERT INTO `t_system_notice` VALUES (6301, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 15:38:25', 1);
+INSERT INTO `t_system_notice` VALUES (6302, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-23 15:39:21', 1);
+INSERT INTO `t_system_notice` VALUES (6303, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-23 15:39:23', 1);
+INSERT INTO `t_system_notice` VALUES (6304, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-23 15:39:37', 1);
+INSERT INTO `t_system_notice` VALUES (6305, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-23 15:39:50', 1);
+INSERT INTO `t_system_notice` VALUES (6306, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 190, '2020-09-23 15:40:04', 1);
+INSERT INTO `t_system_notice` VALUES (6307, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 15:51:09', 1);
+INSERT INTO `t_system_notice` VALUES (6308, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-23 15:51:27', 1);
+INSERT INTO `t_system_notice` VALUES (6309, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 15:51:27', 1);
+INSERT INTO `t_system_notice` VALUES (6310, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-23 16:05:11', 1);
+INSERT INTO `t_system_notice` VALUES (6311, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-23 16:05:14', 1);
+INSERT INTO `t_system_notice` VALUES (6312, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-23 16:05:23', 1);
+INSERT INTO `t_system_notice` VALUES (6313, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-23 16:05:28', 1);
+INSERT INTO `t_system_notice` VALUES (6314, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 190, '2020-09-23 16:05:33', 1);
+INSERT INTO `t_system_notice` VALUES (6315, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 16:06:29', 1);
+INSERT INTO `t_system_notice` VALUES (6316, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-23 16:06:37', 1);
+INSERT INTO `t_system_notice` VALUES (6317, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 16:06:37', 1);
+INSERT INTO `t_system_notice` VALUES (6318, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-23 16:17:46', 1);
+INSERT INTO `t_system_notice` VALUES (6319, 2, 1, 1, NULL, '您已使用余额成功支付取消订单费用,谢谢使用!', 190, '2020-09-23 16:42:44', 1);
+INSERT INTO `t_system_notice` VALUES (6320, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-23 17:06:44', 1);
+INSERT INTO `t_system_notice` VALUES (6321, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-23 17:06:47', 1);
+INSERT INTO `t_system_notice` VALUES (6322, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-23 17:06:47', 1);
+INSERT INTO `t_system_notice` VALUES (6323, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-23 17:07:06', 1);
+INSERT INTO `t_system_notice` VALUES (6324, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-23 17:07:15', 1);
+INSERT INTO `t_system_notice` VALUES (6325, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-23 17:15:33', 1);
+INSERT INTO `t_system_notice` VALUES (6326, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-24 15:44:37', 1);
+INSERT INTO `t_system_notice` VALUES (6327, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 15:54:56', 1);
+INSERT INTO `t_system_notice` VALUES (6328, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 15:55:08', 1);
+INSERT INTO `t_system_notice` VALUES (6329, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 16:08:05', 1);
+INSERT INTO `t_system_notice` VALUES (6330, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 16:08:16', 1);
+INSERT INTO `t_system_notice` VALUES (6331, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 16:14:38', 1);
+INSERT INTO `t_system_notice` VALUES (6332, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-24 16:14:41', 1);
+INSERT INTO `t_system_notice` VALUES (6333, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-24 16:14:41', 1);
+INSERT INTO `t_system_notice` VALUES (6334, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-24 16:14:44', 1);
+INSERT INTO `t_system_notice` VALUES (6335, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-24 16:14:47', 1);
+INSERT INTO `t_system_notice` VALUES (6336, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-24 16:17:54', 1);
+INSERT INTO `t_system_notice` VALUES (6337, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-24 16:17:59', 1);
+INSERT INTO `t_system_notice` VALUES (6338, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 16:38:49', 1);
+INSERT INTO `t_system_notice` VALUES (6339, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-24 16:38:51', 1);
+INSERT INTO `t_system_notice` VALUES (6340, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-24 16:38:51', 1);
+INSERT INTO `t_system_notice` VALUES (6341, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-24 16:38:55', 1);
+INSERT INTO `t_system_notice` VALUES (6342, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-24 16:38:58', 1);
+INSERT INTO `t_system_notice` VALUES (6343, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-24 16:39:07', 1);
+INSERT INTO `t_system_notice` VALUES (6344, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-24 16:39:16', 1);
+INSERT INTO `t_system_notice` VALUES (6345, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 16:45:03', 1);
+INSERT INTO `t_system_notice` VALUES (6346, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-24 16:45:05', 1);
+INSERT INTO `t_system_notice` VALUES (6347, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-24 16:45:05', 1);
+INSERT INTO `t_system_notice` VALUES (6348, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 190, '2020-09-24 16:45:08', 1);
+INSERT INTO `t_system_notice` VALUES (6349, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 190, '2020-09-24 16:45:10', 1);
+INSERT INTO `t_system_notice` VALUES (6350, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 190, '2020-09-24 16:45:17', 1);
+INSERT INTO `t_system_notice` VALUES (6351, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 190, '2020-09-24 16:45:23', 1);
+INSERT INTO `t_system_notice` VALUES (6352, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 17:02:56', 1);
+INSERT INTO `t_system_notice` VALUES (6353, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 17:03:35', 1);
+INSERT INTO `t_system_notice` VALUES (6354, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 17:07:04', 1);
+INSERT INTO `t_system_notice` VALUES (6355, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 17:08:09', 1);
+INSERT INTO `t_system_notice` VALUES (6356, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 17:09:37', 1);
+INSERT INTO `t_system_notice` VALUES (6357, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 17:09:41', 1);
+INSERT INTO `t_system_notice` VALUES (6358, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 17:12:14', 1);
+INSERT INTO `t_system_notice` VALUES (6359, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 17:13:57', 1);
+INSERT INTO `t_system_notice` VALUES (6360, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 17:26:02', 1);
+INSERT INTO `t_system_notice` VALUES (6361, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 17:31:27', 1);
+INSERT INTO `t_system_notice` VALUES (6362, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 190, '2020-09-24 17:31:34', 1);
+INSERT INTO `t_system_notice` VALUES (6363, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 905, '2020-09-24 17:31:38', 1);
+INSERT INTO `t_system_notice` VALUES (6364, 2, NULL, 1, NULL, '您的订单已指派给测师傅,请保持电话畅通!', 190, '2020-09-24 17:31:38', 1);
+INSERT INTO `t_system_notice` VALUES (6365, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 190, '2020-09-24 17:46:00', 1);
+INSERT INTO `t_system_notice` VALUES (6366, 2, 1, 1, NULL, '您已使用余额成功支付取消订单费用,谢谢使用!', 190, '2020-09-24 17:46:03', 1);
+INSERT INTO `t_system_notice` VALUES (6367, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 09:23:25', 1);
+INSERT INTO `t_system_notice` VALUES (6368, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-29 09:23:37', 1);
+INSERT INTO `t_system_notice` VALUES (6369, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 09:23:56', 1);
+INSERT INTO `t_system_notice` VALUES (6370, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 09:23:59', 1);
+INSERT INTO `t_system_notice` VALUES (6371, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 09:23:59', 1);
+INSERT INTO `t_system_notice` VALUES (6372, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 09:28:18', 1);
+INSERT INTO `t_system_notice` VALUES (6373, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 09:28:25', 1);
+INSERT INTO `t_system_notice` VALUES (6374, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 09:28:34', 1);
+INSERT INTO `t_system_notice` VALUES (6375, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 09:28:53', 1);
+INSERT INTO `t_system_notice` VALUES (6376, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 09:28:55', 1);
+INSERT INTO `t_system_notice` VALUES (6377, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 09:28:55', 1);
+INSERT INTO `t_system_notice` VALUES (6378, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 09:31:21', 1);
+INSERT INTO `t_system_notice` VALUES (6379, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 09:31:22', 1);
+INSERT INTO `t_system_notice` VALUES (6380, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 09:31:25', 1);
+INSERT INTO `t_system_notice` VALUES (6381, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 09:31:43', 1);
+INSERT INTO `t_system_notice` VALUES (6382, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 09:31:46', 1);
+INSERT INTO `t_system_notice` VALUES (6383, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 09:31:46', 1);
+INSERT INTO `t_system_notice` VALUES (6384, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 09:32:53', 1);
+INSERT INTO `t_system_notice` VALUES (6385, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 09:34:00', 1);
+INSERT INTO `t_system_notice` VALUES (6386, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 09:34:04', 1);
+INSERT INTO `t_system_notice` VALUES (6387, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 09:34:19', 1);
+INSERT INTO `t_system_notice` VALUES (6388, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 09:34:25', 1);
+INSERT INTO `t_system_notice` VALUES (6389, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 09:34:25', 1);
+INSERT INTO `t_system_notice` VALUES (6390, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 09:36:49', 1);
+INSERT INTO `t_system_notice` VALUES (6391, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 09:36:50', 1);
+INSERT INTO `t_system_notice` VALUES (6392, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 09:36:52', 1);
+INSERT INTO `t_system_notice` VALUES (6393, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 09:37:09', 1);
+INSERT INTO `t_system_notice` VALUES (6394, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 09:37:13', 1);
+INSERT INTO `t_system_notice` VALUES (6395, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 09:37:13', 1);
+INSERT INTO `t_system_notice` VALUES (6396, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-29 09:56:26', 1);
+INSERT INTO `t_system_notice` VALUES (6397, 2, 1, 1, NULL, '您已使用余额成功支付取消订单费用,谢谢使用!', 189, '2020-09-29 10:15:51', 1);
+INSERT INTO `t_system_notice` VALUES (6398, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 10:16:02', 1);
+INSERT INTO `t_system_notice` VALUES (6399, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 10:20:21', 1);
+INSERT INTO `t_system_notice` VALUES (6400, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 10:33:29', 1);
+INSERT INTO `t_system_notice` VALUES (6401, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 10:33:32', 1);
+INSERT INTO `t_system_notice` VALUES (6402, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 10:33:32', 1);
+INSERT INTO `t_system_notice` VALUES (6403, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 10:36:19', 1);
+INSERT INTO `t_system_notice` VALUES (6404, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 10:36:24', 1);
+INSERT INTO `t_system_notice` VALUES (6405, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 10:36:27', 1);
+INSERT INTO `t_system_notice` VALUES (6406, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 10:37:49', 1);
+INSERT INTO `t_system_notice` VALUES (6407, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:23:56', 1);
+INSERT INTO `t_system_notice` VALUES (6408, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:27:01', 1);
+INSERT INTO `t_system_notice` VALUES (6409, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-29 11:27:05', 1);
+INSERT INTO `t_system_notice` VALUES (6410, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:27:13', 1);
+INSERT INTO `t_system_notice` VALUES (6411, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:27:15', 1);
+INSERT INTO `t_system_notice` VALUES (6412, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:27:15', 1);
+INSERT INTO `t_system_notice` VALUES (6413, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:28:04', 1);
+INSERT INTO `t_system_notice` VALUES (6414, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:28:05', 1);
+INSERT INTO `t_system_notice` VALUES (6415, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:28:08', 1);
+INSERT INTO `t_system_notice` VALUES (6416, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:30:31', 1);
+INSERT INTO `t_system_notice` VALUES (6417, 2, 1, 1, NULL, '您已成功添加订单评价,谢谢使用!', 189, '2020-09-29 11:31:26', 1);
+INSERT INTO `t_system_notice` VALUES (6418, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:32:45', 1);
+INSERT INTO `t_system_notice` VALUES (6419, 2, 1, 1, NULL, '您的出租车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:32:55', 1);
+INSERT INTO `t_system_notice` VALUES (6420, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-29 11:33:25', 1);
+INSERT INTO `t_system_notice` VALUES (6421, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:41:35', 1);
+INSERT INTO `t_system_notice` VALUES (6422, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:41:38', 1);
+INSERT INTO `t_system_notice` VALUES (6423, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:41:38', 1);
+INSERT INTO `t_system_notice` VALUES (6424, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:41:54', 1);
+INSERT INTO `t_system_notice` VALUES (6425, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:42:02', 1);
+INSERT INTO `t_system_notice` VALUES (6426, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:42:10', 1);
+INSERT INTO `t_system_notice` VALUES (6427, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:42:22', 1);
+INSERT INTO `t_system_notice` VALUES (6428, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:42:36', 1);
+INSERT INTO `t_system_notice` VALUES (6429, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:43:27', 1);
+INSERT INTO `t_system_notice` VALUES (6430, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:43:41', 1);
+INSERT INTO `t_system_notice` VALUES (6431, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:43:49', 1);
+INSERT INTO `t_system_notice` VALUES (6432, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:43:52', 1);
+INSERT INTO `t_system_notice` VALUES (6433, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:43:52', 1);
+INSERT INTO `t_system_notice` VALUES (6434, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:44:07', 1);
+INSERT INTO `t_system_notice` VALUES (6435, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:44:23', 1);
+INSERT INTO `t_system_notice` VALUES (6436, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:45:02', 1);
+INSERT INTO `t_system_notice` VALUES (6437, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:46:38', 1);
+INSERT INTO `t_system_notice` VALUES (6438, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:46:42', 1);
+INSERT INTO `t_system_notice` VALUES (6439, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:46:42', 1);
+INSERT INTO `t_system_notice` VALUES (6440, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:47:03', 1);
+INSERT INTO `t_system_notice` VALUES (6441, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:47:20', 1);
+INSERT INTO `t_system_notice` VALUES (6442, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:47:30', 1);
+INSERT INTO `t_system_notice` VALUES (6443, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:47:38', 1);
+INSERT INTO `t_system_notice` VALUES (6444, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:47:47', 1);
+INSERT INTO `t_system_notice` VALUES (6445, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:47:50', 1);
+INSERT INTO `t_system_notice` VALUES (6446, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:47:50', 1);
+INSERT INTO `t_system_notice` VALUES (6447, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:48:07', 1);
+INSERT INTO `t_system_notice` VALUES (6448, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:48:19', 1);
+INSERT INTO `t_system_notice` VALUES (6449, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:48:27', 1);
+INSERT INTO `t_system_notice` VALUES (6450, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:49:00', 1);
+INSERT INTO `t_system_notice` VALUES (6451, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:49:15', 1);
+INSERT INTO `t_system_notice` VALUES (6452, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:49:19', 1);
+INSERT INTO `t_system_notice` VALUES (6453, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:49:19', 1);
+INSERT INTO `t_system_notice` VALUES (6454, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:49:36', 1);
+INSERT INTO `t_system_notice` VALUES (6455, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:49:46', 1);
+INSERT INTO `t_system_notice` VALUES (6456, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:50:06', 1);
+INSERT INTO `t_system_notice` VALUES (6457, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:50:39', 1);
+INSERT INTO `t_system_notice` VALUES (6458, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:50:43', 1);
+INSERT INTO `t_system_notice` VALUES (6459, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:50:43', 1);
+INSERT INTO `t_system_notice` VALUES (6460, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:50:45', 1);
+INSERT INTO `t_system_notice` VALUES (6461, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:50:47', 1);
+INSERT INTO `t_system_notice` VALUES (6462, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:50:51', 1);
+INSERT INTO `t_system_notice` VALUES (6463, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:52:45', 1);
+INSERT INTO `t_system_notice` VALUES (6464, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 11:54:22', 1);
+INSERT INTO `t_system_notice` VALUES (6465, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 11:54:24', 1);
+INSERT INTO `t_system_notice` VALUES (6466, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 11:54:24', 1);
+INSERT INTO `t_system_notice` VALUES (6467, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 11:54:30', 1);
+INSERT INTO `t_system_notice` VALUES (6468, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 11:54:31', 1);
+INSERT INTO `t_system_notice` VALUES (6469, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 11:54:33', 1);
+INSERT INTO `t_system_notice` VALUES (6470, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 11:54:42', 1);
+INSERT INTO `t_system_notice` VALUES (6471, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 18:23:29', 1);
+INSERT INTO `t_system_notice` VALUES (6472, 2, 1, 1, NULL, '您已成功取消出行订单,谢谢使用!', 189, '2020-09-29 18:23:33', 1);
+INSERT INTO `t_system_notice` VALUES (6473, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 18:40:01', 1);
+INSERT INTO `t_system_notice` VALUES (6474, 2, 1, 1, NULL, '您已使用余额成功完成出行订单支付,谢谢使用!', 189, '2020-09-29 18:40:13', 1);
+INSERT INTO `t_system_notice` VALUES (6475, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 189, '2020-09-29 18:40:18', 1);
+INSERT INTO `t_system_notice` VALUES (6476, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 18:40:24', 1);
+INSERT INTO `t_system_notice` VALUES (6477, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 189, '2020-09-29 18:40:24', 1);
+INSERT INTO `t_system_notice` VALUES (6478, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 189, '2020-09-29 18:40:30', 1);
+INSERT INTO `t_system_notice` VALUES (6479, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 189, '2020-09-29 18:40:34', 1);
+INSERT INTO `t_system_notice` VALUES (6480, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 189, '2020-09-29 18:40:40', 1);
+INSERT INTO `t_system_notice` VALUES (6481, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 185, '2020-09-29 18:41:33', 1);
+INSERT INTO `t_system_notice` VALUES (6482, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 18:41:36', 1);
+INSERT INTO `t_system_notice` VALUES (6483, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 185, '2020-09-29 18:41:36', 1);
+INSERT INTO `t_system_notice` VALUES (6484, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 185, '2020-09-29 18:41:45', 1);
+INSERT INTO `t_system_notice` VALUES (6485, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 185, '2020-09-29 18:41:46', 1);
+INSERT INTO `t_system_notice` VALUES (6486, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 185, '2020-09-29 18:41:50', 1);
+INSERT INTO `t_system_notice` VALUES (6487, 2, 2, 1, NULL, '您已获得0张优惠券,点击查看', 435, '2020-09-29 18:44:36', 1);
+INSERT INTO `t_system_notice` VALUES (6488, 2, 1, 1, NULL, '您的专车订单已下单成功,我们正在为您指派司机,请稍后!', 435, '2020-09-29 18:45:08', 1);
+INSERT INTO `t_system_notice` VALUES (6489, 2, NULL, 2, NULL, '您已成功抢得专车订单,请及时联系客户!', 906, '2020-09-29 18:45:18', 1);
+INSERT INTO `t_system_notice` VALUES (6490, 2, NULL, 1, NULL, '您的订单已指派给唐师傅,请保持电话畅通!', 435, '2020-09-29 18:45:18', 1);
+INSERT INTO `t_system_notice` VALUES (6491, 2, NULL, 1, NULL, '司机已出发,请耐心等待', 435, '2020-09-29 18:45:21', 1);
+INSERT INTO `t_system_notice` VALUES (6492, 2, NULL, 1, NULL, '司机已到达您设置的预约地点,请及时上车', 435, '2020-09-29 18:45:23', 1);
+INSERT INTO `t_system_notice` VALUES (6493, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-09-29 18:45:32', 1);
+INSERT INTO `t_system_notice` VALUES (6494, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:24:12', 1);
+INSERT INTO `t_system_notice` VALUES (6495, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:24:49', 1);
+INSERT INTO `t_system_notice` VALUES (6496, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:25:45', 1);
+INSERT INTO `t_system_notice` VALUES (6497, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:26:00', 1);
+INSERT INTO `t_system_notice` VALUES (6498, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:26:34', 1);
+INSERT INTO `t_system_notice` VALUES (6499, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:27:33', 1);
+INSERT INTO `t_system_notice` VALUES (6500, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:31:14', 1);
+INSERT INTO `t_system_notice` VALUES (6501, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:31:33', 1);
+INSERT INTO `t_system_notice` VALUES (6502, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:31:47', 1);
+INSERT INTO `t_system_notice` VALUES (6503, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:32:04', 1);
+INSERT INTO `t_system_notice` VALUES (6504, 2, NULL, 1, NULL, '司机已结束本次行程,谢谢使用', 435, '2020-10-19 21:32:21', 1);
+
+-- ----------------------------
+-- Table structure for t_system_price
+-- ----------------------------
+DROP TABLE IF EXISTS `t_system_price`;
+CREATE TABLE `t_system_price`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `type` int(1) NULL DEFAULT NULL COMMENT '业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `serverCarModelId` int(11) NULL DEFAULT NULL COMMENT '服务车型id',
+  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '价格规则,每个输入框为一个参数{\"num1\":1,\"num2\":2.3}',
+  `fareTypeNote` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '运价类型说明',
+  `state` int(1) NULL DEFAULT 1 COMMENT '状态(1=正常,2=冻结,3=删除)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '服务价格计算规则' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_system_price
+-- ----------------------------
+INSERT INTO `t_system_price` VALUES (1, 1, 1, 1, '{\"num1\":\"5\",\"num2\":\"1\",\"num3\":\"3\",\"num4\":\"1\",\"num5\":\"0.2\",\"num6\":\"1\",\"num7\":\"0.5\",\"num8\":\"2\",\"num9\":\"4\",\"num10\":\"1\",\"num11\":\"4\",\"num12\":\"6\",\"num13\":\"2\",\"num14\":\"6\",\"num15\":\"3\",\"num16\":\"23:00 - 06:00\",\"num17\":\"7\",\"num18\":\"1.5\",\"num19\":\"0.5\",\"num20\":\"1\",\"num21\":\"2\",\"num22\":\"3\",\"num23\":\"08:00 - 09:30\",\"num24\":\"18:00 - 19:30\",\"num25\":\"6\",\"num26\":\"1.3\",\"num27\":\"0.4\",\"num28\":\"1\",\"num29\":\"1\",\"num30\":\"1\"}', NULL, 1);
+INSERT INTO `t_system_price` VALUES (2, 1, 1, 2, '{\"num1\":10,\"num2\":5,\"num3\":15,\"num4\":1.5,\"num5\":0.5,\"num6\":5,\"num7\":1,\"num8\":8,\"num9\":20,\"num10\":1.5,\"num11\":20,\"num12\":30,\"num13\":1,\"num14\":30,\"num15\":0.5,\"num16\":\"22:00:00 - 23:59:59\",\"num17\":15,\"num18\":2,\"num19\":1,\"num20\":2,\"num21\":1.5,\"num22\":1,\"num23\":\"07:00:00 - 08:59:59\",\"num24\":\"17:00:00 - 19:59:59\",\"num25\":15,\"num26\":2,\"num27\":1,\"num28\":2,\"num29\":1.5,\"num30\":1}', NULL, 1);
+INSERT INTO `t_system_price` VALUES (3, 1, 1, 3, '{\"num1\":\"15\",\"num2\":\"5\",\"num3\":\"15\",\"num4\":\"1.5\",\"num5\":\"0.5\",\"num6\":\"5\",\"num7\":\"1\",\"num8\":\"8\",\"num9\":\"20\",\"num10\":\"1.5\",\"num11\":\"20\",\"num12\":\"30\",\"num13\":\"1\",\"num14\":\"30\",\"num15\":\"0.5\",\"num16\":\"22:00:00 - 23:59:59\",\"num17\":\"20\",\"num18\":\"2\",\"num19\":\"1\",\"num20\":\"2\",\"num21\":\"1.5\",\"num22\":\"1\",\"num23\":\"07:00:00 - 08:59:59\",\"num24\":\"17:00:00 - 19:59:59\",\"num25\":\"20\",\"num26\":\"2\",\"num27\":\"1\",\"num28\":\"2\",\"num29\":\"1.5\",\"num30\":\"1\"}', '测试说明数据', 1);
+INSERT INTO `t_system_price` VALUES (4, 5, 1, NULL, '{\"num1\":\"10\",\"num2\":\"12\"}', NULL, 1);
+INSERT INTO `t_system_price` VALUES (5, 4, 1, NULL, '{\"num1\":\"5\",\"num2\":\"5\",\"num3\":\"5\",\"num4\":\"10\",\"num5\":\"10\",\"num6\":\"10\",\"num7\":\"15\",\"num8\":\"15\",\"num9\":\"15\",\"num10\":\"20\",\"num11\":\"20\",\"num12\":\"5\",\"num13\":\"5\",\"num14\":\"5\",\"num15\":\"10\",\"num16\":\"10\",\"num17\":\"10\",\"num18\":\"15\",\"num19\":\"15\",\"num20\":\"15\",\"num21\":\"20\",\"num22\":\"20\"}', NULL, 1);
+INSERT INTO `t_system_price` VALUES (6, 1, 2, 1, '{\"num1\":8,\"num2\":5,\"num3\":15,\"num4\":1.5,\"num5\":0.5,\"num6\":5,\"num7\":1,\"num8\":8,\"num9\":20,\"num10\":1.5,\"num11\":20,\"num12\":30,\"num13\":1,\"num14\":30,\"num15\":0.5,\"num16\":\"22:00:00 - 23:59:59\",\"num17\":10,\"num18\":2,\"num19\":1,\"num20\":2,\"num21\":1.5,\"num22\":1,\"num23\":\"07:00:00 - 08:59:59\",\"num24\":\"17:00:00 - 19:59:59\",\"num25\":10,\"num26\":2,\"num27\":1,\"num28\":2,\"num29\":1.5,\"num30\":1}', NULL, 1);
+INSERT INTO `t_system_price` VALUES (7, 1, 2, 2, '{\"num1\":10,\"num2\":5,\"num3\":15,\"num4\":1.5,\"num5\":0.5,\"num6\":5,\"num7\":1,\"num8\":8,\"num9\":20,\"num10\":1.5,\"num11\":20,\"num12\":30,\"num13\":1,\"num14\":30,\"num15\":0.5,\"num16\":\"22:00:00 - 23:59:59\",\"num17\":15,\"num18\":2,\"num19\":1,\"num20\":2,\"num21\":1.5,\"num22\":1,\"num23\":\"07:00:00 - 08:59:59\",\"num24\":\"17:00:00 - 19:59:59\",\"num25\":15,\"num26\":2,\"num27\":1,\"num28\":2,\"num29\":1.5,\"num30\":1}', NULL, 1);
+INSERT INTO `t_system_price` VALUES (8, 1, 2, 3, '{\"num1\":\"15\",\"num2\":\"5\",\"num3\":\"15\",\"num4\":\"1.5\",\"num5\":\"0.5\",\"num6\":\"5\",\"num7\":\"1\",\"num8\":\"8\",\"num9\":\"20\",\"num10\":\"1.5\",\"num11\":\"20\",\"num12\":\"30\",\"num13\":\"1\",\"num14\":\"30\",\"num15\":\"0.5\",\"num16\":\"22:00:00 - 23:59:59\",\"num17\":\"20\",\"num18\":\"2\",\"num19\":\"1\",\"num20\":\"2\",\"num21\":\"1.5\",\"num22\":\"1\",\"num23\":\"07:00:00 - 08:59:59\",\"num24\":\"17:00:00 - 19:59:59\",\"num25\":\"20\",\"num26\":\"2\",\"num27\":\"1\",\"num28\":\"2\",\"num29\":\"1.5\",\"num30\":\"1\"}', NULL, 1);
+
+-- ----------------------------
+-- Table structure for t_token
+-- ----------------------------
+DROP TABLE IF EXISTS `t_token`;
+CREATE TABLE `t_token`  (
+  `id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `appid` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '应用id',
+  `app_secret` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用密钥',
+  `token` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `expire` bigint(20) UNSIGNED NULL DEFAULT NULL,
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `accessTokenJson` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业微信/微信,token json包体',
+  `corpid` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '企业微信产品id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口token验证' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_token
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user`;
+CREATE TABLE `t_user`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '企业id',
+  `registIp` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '注册ip',
+  `registAreaCode` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '注册地区县code',
+  `phone` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '手机号',
+  `nickName` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '昵称',
+  `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '头像',
+  `birthday` date NULL DEFAULT NULL COMMENT '生日',
+  `sex` int(1) NULL DEFAULT NULL COMMENT '性别(1:男,2:女)',
+  `emergencyContact` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '紧急联系人',
+  `emergencyContactNumber` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '紧急联系电话',
+  `isAuth` smallint(1) NULL DEFAULT NULL COMMENT '是否实名认证(1=否,2=是)',
+  `name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '真实姓名',
+  `idCard` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证号',
+  `idCardFront` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证正面',
+  `idCardReverse` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '身份证反面',
+  `consumption` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '历史消费',
+  `balance` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '余额',
+  `integral` int(11) NULL DEFAULT 0 COMMENT '积分',
+  `passWord` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '密码',
+  `openId` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '微信openid',
+  `appletsOpenId` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '小程序openid',
+  `unionid` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '微信unionid',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `state` int(1) NULL DEFAULT 1 COMMENT '1=正常,2=冻结',
+  `flag` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '1' COMMENT '1:创建,2:修改,3:删除',
+  `insertTime` datetime(0) NULL DEFAULT NULL,
+  `insertUser` int(11) NULL DEFAULT NULL,
+  `updateTime` datetime(0) NULL DEFAULT NULL,
+  `updateUser` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 436 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户信息' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_user
+-- ----------------------------
+INSERT INTO `t_user` VALUES (183, 1, NULL, '450200', '18583738369', '风紧,扯呼', 'http://thirdwx.qlogo.cn/mmopen/vi_32/gEoJwds84rEzjfibdIHxibcIu0Ob5gMnsDgQnnlD2L6L5CqobOUlqYQrysYzD4U81j30XsiaaYEVHNRKgG6wRDR5w/132', '2019-03-01', 1, '罗明文', '18555555555', 1, NULL, NULL, NULL, NULL, 0.00, 9886.00, 570, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwcokmIAIGBGPOsgilr8zYM0', 'oVlD60MFcQ8Z6YKPoU2hXw14WoPg', 'oKbrKt6kIKE0ULv_OTfC9oDWv30o', NULL, 1, '1', '2020-08-17 11:15:08', NULL, '2020-08-17 11:15:16', 183);
+INSERT INTO `t_user` VALUES (184, 1, NULL, '450202', '15907727138', 'OK000002', NULL, NULL, NULL, '韦小姐', '15907723121', 1, NULL, NULL, NULL, NULL, 0.00, 95.01, 160, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60PaoWQQspgZ6AIO55S475Gc', NULL, NULL, 1, '1', '2020-08-17 19:04:25', NULL, '2020-08-23 17:04:02', 1);
+INSERT INTO `t_user` VALUES (185, NULL, NULL, '510107', '18380581367', 'OK000003', NULL, NULL, NULL, '张三', '17708110425', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60PdAncx6ToiZmjYumCPgDFM', NULL, NULL, 1, '1', '2020-08-17 19:07:46', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (186, 1, NULL, '510107', '18380475138', 'OK000004', 'http://newok.oss-cn-shenzhen.aliyuncs.com/avatar1598882352.png', NULL, NULL, '任老师', '18380475142', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60I-6XxK_sTtqgFE6VT0yNac', 'oKbrKt5RPcTv-u08A_ukOuKV6_AY', NULL, 1, '1', '2020-08-17 19:17:38', NULL, '2020-08-17 19:17:56', 186);
+INSERT INTO `t_user` VALUES (187, 1, NULL, '510107', '15928265276', 'OK000005', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 50, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LqwXN6_JYXQP_m5zfQst_A', NULL, NULL, 1, '1', '2020-08-18 09:28:27', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (189, 1, NULL, '510107', '15620989414', 'OK000007', NULL, NULL, NULL, '极力', '18385886868', 1, NULL, NULL, NULL, NULL, 0.00, 999518.00, 2395, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60HxdI_yMnIyUnuD1nA8Y3L4', NULL, NULL, 1, '1', '2020-08-19 15:02:57', NULL, '2020-08-19 15:03:05', 189);
+INSERT INTO `t_user` VALUES (190, 1, NULL, '510107', '18123292546', 'OK000008', NULL, NULL, NULL, '1812329254', '18123292545', 1, NULL, NULL, NULL, NULL, 0.00, 917.00, 385, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Lc1f_8feRA-dJAZw7tHQDk', NULL, NULL, 1, '1', '2020-08-19 15:25:05', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (191, 1, NULL, '510107', '15828353124', 'OK000009', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-19 18:06:33', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (192, 1, NULL, '510107', '15928267524', 'OK000010', NULL, NULL, NULL, 'by', '15946449464', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-21 11:34:48', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (193, 1, NULL, '450202', '18172192319', 'OK000011', NULL, NULL, NULL, '韦小姐', '15907723121', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-22 20:37:45', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (194, 1, NULL, '450202', '15907721776', '黄宁裘', 'https://thirdwx.qlogo.cn/mmopen/vi_32/dicYnIuz436enN38eySZ3SuEIQzpvsIJTCCfzPqhWZgUblQv1e0oIoVaeBTbaZAiclgKUh1mJiajyw9iaEaU8s0iajw/132', NULL, 2, '我', '15907728888', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 115, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwT-qQnlULUAZzR1ejJs4XTM', 'oVlD60CqGiEBsg1O5X8Gct_49eJ4', 'oKbrKt0C87xsFsPEZljFTXDF6puI', NULL, 1, '1', '2020-08-29 08:41:38', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (195, 1, NULL, '450203', '18077225823', 'OK000014', NULL, NULL, NULL, '莫新梅', '18077225823', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60K_gl06rbAWH1HW4q_C8ntM', NULL, NULL, 1, '1', '2020-08-29 12:08:49', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (198, 1, NULL, '510100', '13326849396', 'OK000014', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-29 12:57:03', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (199, 1, NULL, '450204', '17677327183', 'OK000015', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60MsJ3koBrqzOyyOFR3miRUI', NULL, NULL, 1, '1', '2020-08-29 14:10:49', NULL, '2020-08-29 14:11:04', 199);
+INSERT INTO `t_user` VALUES (200, 1, NULL, '450204', '15777252036', 'OK000017', NULL, NULL, NULL, '覃黎琳', '15777252036', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Kp3GtSlNARxdjIgr1LhKsA', NULL, NULL, 1, '1', '2020-08-29 16:58:00', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (202, 1, NULL, '450202', '15677223830', 'OK000017', NULL, NULL, NULL, '韦', '15677223830', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60EakGdnQmDGJqqtfItwTo_o', NULL, NULL, 1, '1', '2020-08-29 18:13:23', NULL, '2020-08-29 18:13:40', 202);
+INSERT INTO `t_user` VALUES (203, 1, NULL, '450204', NULL, 'OK000018', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60OLa1BteIoWxLD4TAsTZxnc', NULL, NULL, 1, '1', '2020-08-30 09:28:41', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (204, 1, NULL, '450204', '13907720849', 'OK000019', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-30 09:29:06', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (205, 1, NULL, '450203', '13507721721', 'OK000020', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-30 09:37:53', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (206, 1, NULL, '450206', '13026928410', 'OK000021', NULL, NULL, NULL, '韦皓竣', '13026928410', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60OZfRQP7uYoy_FTEvTQRK0A', NULL, NULL, 1, '1', '2020-08-30 12:13:36', NULL, '2020-08-30 12:13:55', 206);
+INSERT INTO `t_user` VALUES (207, 1, NULL, '450202', '18577201716', 'OK000022', NULL, NULL, NULL, '吴春天', '18577201716', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60BKDcKxyR_3SXiQp-v67oOY', NULL, NULL, 1, '1', '2020-08-30 12:29:39', NULL, '2020-08-30 12:30:23', 207);
+INSERT INTO `t_user` VALUES (208, 1, NULL, '450204', '18277265480', 'OK000025', NULL, NULL, NULL, '周', '18277265480', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60IjKGz5MRe9wZgGGpykhkYs', 'oKbrKt4jb5fC5v4u4Mktk6OOW-x0', NULL, 1, '1', '2020-08-30 14:26:22', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (209, 1, NULL, '450204', NULL, 'OK000024', NULL, NULL, NULL, '周', '18277265480', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Ln9tNfzMJViIoqGwsvlqMk', NULL, NULL, 1, '1', '2020-08-30 14:26:26', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (211, 1, NULL, '450204', '17774857859', 'OK000026', NULL, NULL, NULL, '黎香廷', '17774857859', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60MgPcOadqIH_RVQNSwKFXVo', NULL, NULL, 1, '1', '2020-08-30 17:02:24', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (213, 1, NULL, '450204', '18172248490', 'OK000027', NULL, NULL, NULL, '黄菊兰', '13377022205', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Fc0D-CdWpE2IqCza9L2-to', NULL, NULL, 1, '1', '2020-08-30 19:35:01', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (215, 1, NULL, '450204', '13977291069', 'OK000027', NULL, NULL, NULL, '杨建军', '13877269841', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-30 20:40:08', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (216, NULL, NULL, NULL, '13247563624', 'OK000028', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-31 07:49:08', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (217, 1, NULL, '450204', '15077218939', 'OK000029', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-31 08:44:35', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (218, 1, NULL, '450204', NULL, 'OK000030', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60PYpAioj5RpPdT0K2CUUMW0', NULL, NULL, 1, '1', '2020-08-31 08:44:40', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (219, 1, NULL, '450204', '18176724543', 'OK000032', NULL, NULL, NULL, '周晓威', '18176724543', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LOzVTqlTTrgNn7Gk3tWXdw', NULL, NULL, 1, '1', '2020-08-31 12:10:34', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (221, 1, NULL, '450200', '13548059194', 'OK000032', 'http://newok.oss-cn-shenzhen.aliyuncs.com/avatar1598877754.png', NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-08-31 12:40:20', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (222, 1, NULL, '450202', '13633094627', 'OK000034', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60AyiTgvrUMfSbxcoEX0d7fA', NULL, NULL, 1, '1', '2020-08-31 16:18:02', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (224, 1, NULL, '450203', '13557721933', 'OK000034', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60PqoC_-doKvdhCAUhPGv_hA', NULL, NULL, 1, '1', '2020-08-31 16:33:42', NULL, '2020-08-31 16:34:04', 224);
+INSERT INTO `t_user` VALUES (225, 1, NULL, '450205', '17376113373', 'OK000036', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60C_jQqFTZcLtdkMqgMG_oRU', NULL, NULL, 1, '1', '2020-09-01 09:00:14', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (227, 1, NULL, '510107', '18380475176', 'OK000036', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-01 09:05:07', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (228, 1, NULL, '450204', '13059464518', 'OK000037', NULL, NULL, NULL, '袁培竣', '13059464518', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60AkUseIiJ1eFE7wOa2xqeH8', NULL, NULL, 1, '1', '2020-09-01 11:06:20', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (230, 1, NULL, '450205', '18077213921', 'OK000037', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DgFpDndwSea8BZ67zd8EBY', NULL, NULL, 1, '1', '2020-09-01 13:13:42', NULL, '2020-09-01 13:14:08', 230);
+INSERT INTO `t_user` VALUES (231, 1, NULL, '450204', '13633081142', 'OK000039', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60H391NcrVB39Vh_UtbK5hR0', NULL, NULL, 1, '1', '2020-09-01 13:51:26', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (234, 1, NULL, '450204', '15878737003', 'OK000039', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DGOf9LA8o4wuPB3e7KYpEY', NULL, NULL, 1, '1', '2020-09-01 15:16:15', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (235, 1, NULL, '510100', '19849702178', 'OK000040', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-01 21:44:17', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (236, 1, NULL, '450204', '15278894074', 'OK000042', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Lu-9MSgPu1ZkX3EByqzqNo', NULL, NULL, 1, '1', '2020-09-02 06:55:35', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (238, 1, NULL, '450203', '18507720528', 'OK000042', NULL, NULL, NULL, '韦泽芳', '13877276765', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-02 09:31:58', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (239, 1, NULL, '450206', '18778920921', 'OK000044', NULL, NULL, NULL, '刘女士', '18778920921', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ApQcZNC6LgY07PIbBBFh3I', NULL, NULL, 1, '1', '2020-09-02 14:10:10', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (241, 1, NULL, '450202', '13877285931', 'OK000044', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60BdW8slVr2dKZsMYI84MDuI', NULL, NULL, 1, '1', '2020-09-02 14:51:00', NULL, '2020-09-02 14:51:18', 241);
+INSERT INTO `t_user` VALUES (242, 1, NULL, '450202', '13321624505', 'OK000046', NULL, NULL, NULL, '莫程图', '13407876638', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 185, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60O0D_8TG3kwQl4xxEhn1Wl0', NULL, NULL, 1, '1', '2020-09-02 16:13:11', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (244, 1, NULL, '450200', '19957368198', 'OK000046', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-02 19:46:47', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (245, 1, NULL, '450202', '18178803160', 'OK000048', NULL, NULL, NULL, '韦小姐', '15907723121', 1, NULL, NULL, NULL, NULL, 0.00, 0.02, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60JDptmWBIaYvJa9YW7hsHnw', NULL, NULL, 1, '1', '2020-09-03 14:25:24', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (247, 1, NULL, '451324', '18077285431', 'OK000048', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-03 21:01:14', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (248, 1, NULL, '451324', NULL, 'OK000049', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60JQssdTNGsPpahtxsAqvWtU', NULL, NULL, 1, '1', '2020-09-03 21:01:16', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (249, 1, NULL, '450202', '18577622045', 'OK000050', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60C56gjEr3hj2kyBvl91v7rQ', NULL, NULL, 1, '1', '2020-09-04 07:40:49', NULL, '2020-09-04 07:41:22', 249);
+INSERT INTO `t_user` VALUES (250, NULL, NULL, '441322', NULL, 'OK000051', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ONx9ONCVORNLB_lJYDg-d8', NULL, NULL, 1, '1', '2020-09-04 10:17:26', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (251, 1, NULL, '450202', '18589999268', 'OK000052', NULL, NULL, NULL, '林格', '13977219208', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DP6cvEu7jQeHk8cBwvxaZw', 'oKbrKt2wImuYdMIbQcIAUf_AqdEA', NULL, 1, '1', '2020-09-04 10:55:22', NULL, '2020-09-04 10:55:38', 251);
+INSERT INTO `t_user` VALUES (252, 1, NULL, '450204', NULL, '11yaya', 'https://thirdwx.qlogo.cn/mmopen/vi_32/Bra1pVUwv9kgcHxia96XGiaMoQq12KsUkwzU7oQ1iaxWYoqYRSCF6eoY9TAQIfd5pfO6cDGAKeXibR9hjcoR4dicT7Q/132', NULL, 2, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwS2jV3LqnsEcxnHhibbBF9Q', NULL, 'oKbrKt0oUGqp9_ynz_9adKWHt4Ak', NULL, 1, '1', '2020-09-04 12:31:22', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (253, 1, NULL, '450202', '18177224916', 'OK000054', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-04 15:43:41', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (254, 1, NULL, '450202', NULL, 'OK000055', NULL, NULL, NULL, '1', '13800138000', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Kgc5BkbtYPXhl2RBAE5LQw', 'oKbrKt9M3KNkh3r2hIHR4ejvLqfc', NULL, 1, '1', '2020-09-04 15:43:43', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (255, 1, NULL, '450202', '13907728538', 'OK000057', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60BNa8QJpkCFF1CUJx3a_QpU', NULL, NULL, 1, '1', '2020-09-04 15:47:46', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (257, NULL, NULL, '430103', NULL, 'OK000057', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Jyfpy8cn_AWtunTnVISUoM', 'oKbrKt3TjGIJjMca8l3B0TxL3Rsc', NULL, 1, '1', '2020-09-04 17:43:06', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (258, 1, NULL, '450202', '13667808997', 'OK000059', NULL, NULL, NULL, '张先生', '13667808997', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60E9RdovLq-nRU743p5seffk', NULL, NULL, 1, '1', '2020-09-04 18:30:56', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (260, 1, NULL, '450205', NULL, '.', 'https://thirdwx.qlogo.cn/mmopen/vi_32/C9FVqGQlxNLDicqosDlCmykVaN29kVhJHGMt1ibJo9niaSictsp0Un4tKbic2pVdY5tCyZ2eoPsYSWpxY7TBTlIz6dA/132', NULL, 2, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwUih__YJzYtBDdNtSkDf0wo', NULL, 'oKbrKt06qQk5dya18tS2xZy0cQEo', NULL, 1, '1', '2020-09-04 19:28:35', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (261, 1, NULL, '450202', '18177247130', 'OK000060', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-04 20:00:53', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (262, 1, NULL, '450202', NULL, 'OK000061', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60HlrcEJ8BKrd60Q9Tsixc24', NULL, NULL, 1, '1', '2020-09-04 20:00:59', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (263, 1, NULL, '450203', '15678056880', 'OK000062', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60NvRAD2pDmWMSA2argLZRR4', NULL, NULL, 1, '1', '2020-09-04 23:10:45', NULL, '2020-09-04 23:11:17', 263);
+INSERT INTO `t_user` VALUES (264, 1, NULL, '450204', NULL, 'OK000063', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60OxRF90em3TrrUHv70irzaY', 'oKbrKtxSWnuGVYltDfLstrckOftg', NULL, 1, '1', '2020-09-05 00:37:17', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (265, 1, NULL, '450125', NULL, 'OK000064', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60KhHXyCr-ThbjG5TaOJxz7s', NULL, NULL, 1, '1', '2020-09-05 04:42:55', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (266, 1, NULL, '450206', NULL, 'OK000065', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LWNrOJwZtkBlkRAwhYeutw', NULL, NULL, 1, '1', '2020-09-05 05:13:15', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (267, 1, NULL, '450204', '15877280926', 'OK000067', NULL, NULL, NULL, '韦国荣', '18177232230', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LiA9m_W3v2djX70xhfvXcE', NULL, NULL, 1, '1', '2020-09-05 08:33:24', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (269, 1, NULL, '450204', '13877253131', 'OK000068', NULL, NULL, NULL, '周杨', '18677225695', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DuuvVz9nn1g2BEd-SS6c_E', NULL, NULL, 1, '1', '2020-09-05 09:05:58', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (271, 1, NULL, '450203', '15177753267', 'OK000068', NULL, NULL, NULL, '吴志娟', '13768852913', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-05 11:22:02', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (272, 1, NULL, '450203', '13507720175', 'OK000070', NULL, NULL, NULL, '邓', '13807721721', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60AtAkxeS_xISskCGTeqcDLI', NULL, NULL, 1, '1', '2020-09-05 13:29:27', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (274, 1, NULL, '450204', '13737275888', 'OK000071', NULL, NULL, NULL, '苏子镇', '13737275888', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DOUR9DPOXxv8e9Y7xyrgBU', NULL, NULL, 1, '1', '2020-09-05 14:57:03', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (276, 1, NULL, '450204', '13877261338', 'OK000072', NULL, NULL, NULL, '韦华松', '18276222489', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60MbRPLdSZD8-IqezXf0COz4', NULL, NULL, 1, '1', '2020-09-05 17:09:23', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (278, 1, NULL, '450205', '13597030858', 'OK000072', NULL, NULL, NULL, '龙孜岩', '13597030858', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60I_EdIRnjYCSsDjZJ_pCsVY', NULL, NULL, 1, '1', '2020-09-05 17:48:38', NULL, '2020-09-05 17:49:50', 278);
+INSERT INTO `t_user` VALUES (279, 1, NULL, '450205', '18276809035', 'OK000074', NULL, NULL, NULL, '梁垒', '18276809035', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Isi-fBRaB5NPjWGsqOMr54', 'oKbrKtw65ZrwRCmR_-aT3TvZpKyc', NULL, 1, '1', '2020-09-05 18:19:14', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (281, 1, NULL, '450204', '17776456572', 'OK000074', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-05 18:28:35', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (282, 1, NULL, '450204', NULL, 'OK000075', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60BZoLskR6B2WM4HFjFReOVs', NULL, NULL, 1, '1', '2020-09-05 18:28:39', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (283, 1, NULL, '450202', '18276724507', 'OK000077', NULL, NULL, NULL, '母亲', '13768692258', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60JPCJgZLIelxhW_FQXivFDo', NULL, NULL, 1, '1', '2020-09-05 20:04:54', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (285, 1, NULL, '450203', '18154758996', 'OK000078', NULL, NULL, NULL, '全婷婷', '18154758996', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60G2_c_HFJPmnCBgLAicDUII', NULL, NULL, 1, '1', '2020-09-05 21:08:38', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (287, 1, NULL, '450200', '18974559352', 'OK000078', NULL, NULL, NULL, '刘君', '19914403334', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-05 21:24:39', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (288, 1, NULL, '450202', '18978029828', 'OK000079', NULL, NULL, NULL, '陀艳淇', '15177733033', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ILXXrEWjNvXkNUDKNUeqgI', NULL, NULL, 1, '1', '2020-09-05 22:35:45', NULL, '2020-09-05 22:36:00', 288);
+INSERT INTO `t_user` VALUES (289, 1, NULL, '450206', '18276221693', 'OK000081', NULL, NULL, NULL, '梁合', '18276221693', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DEKbTMT55aRzc7HOvX7D28', NULL, NULL, 1, '1', '2020-09-05 23:10:00', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (291, 1, NULL, '450206', '13977240801', 'OK000082', NULL, NULL, NULL, '罗', '15077274933', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60D1-CiQY7n8C77PXWw3L9Hs', NULL, NULL, 1, '1', '2020-09-06 05:24:38', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (293, 1, NULL, '450204', '18276957734', 'OK000083', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60IJ8z2VxOORx7zNtISBHO4g', 'oKbrKt-yCL_4gSW9cmkTu_ZShst8', NULL, 1, '1', '2020-09-06 14:04:48', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (295, 1, NULL, '450204', NULL, 'OK000083', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60COvyj3dDrszQ9GNOCDMEyw', NULL, NULL, 1, '1', '2020-09-06 15:10:43', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (296, 1, NULL, '450202', '13877296096', 'OK000085', NULL, NULL, NULL, '李迪', '13788027168', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Ok8BsqXPGCQpPOcya7Umvc', NULL, NULL, 1, '1', '2020-09-07 07:39:00', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (298, 1, NULL, '450205', '13633066910', 'OK000086', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60JDLH3xdd3GDeRiZ2eVNyNs', NULL, NULL, 1, '1', '2020-09-07 07:46:55', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (300, 1, NULL, '450202', '15977281576', 'OK000087', NULL, NULL, NULL, '阳晓云', '15977281576', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60N6OTEi2LLR_lDS-WGon75o', NULL, NULL, 1, '1', '2020-09-07 08:05:10', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (302, 1, NULL, '450203', '13687737839', 'OK000088', NULL, NULL, NULL, '于', '13005950016', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Lp8HWEovX3rjK_UpIcskF8', NULL, NULL, 1, '1', '2020-09-07 08:27:09', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (304, 1, NULL, '450204', '18978075163', 'OK000089', NULL, NULL, NULL, '韦忠良', '18978075163', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FMQBDU2nvJYO89uhUOqDBE', NULL, NULL, 1, '1', '2020-09-07 10:38:06', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (306, 1, NULL, '450205', '18897720762', 'OK000090', NULL, NULL, NULL, '秦天', '15177729768', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60NoyUEmGYSj3ZufyIUDtV8k', NULL, NULL, 1, '1', '2020-09-07 13:49:04', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (308, 1, NULL, '450202', '15907721890', 'OK000091', NULL, NULL, NULL, '翁昌民', '15907721890', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60GcC7txqJdHYQhlsEuk8JtA', 'oKbrKtw2jEjlUzAtyaNalswTuSvA', NULL, 1, '1', '2020-09-07 14:41:05', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (310, 1, NULL, '450202', '15277215208', 'OK000092', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60APlt_sSLJgXRRpsw1IR4kk', NULL, NULL, 1, '1', '2020-09-07 17:09:15', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (312, 1, NULL, '450202', '13977277909', 'OK000093', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60IZSr8SpVhIzxyt-vzWmRIw', 'oKbrKt0Opjje97VMJLC8EbNXFb3Q', NULL, 1, '1', '2020-09-07 17:50:31', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (314, 1, NULL, '450202', '18687031537', 'OK000093', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60JHJHCKlMTRYa_SAFDHcGWI', NULL, NULL, 1, '1', '2020-09-07 18:41:26', NULL, '2020-09-07 18:41:57', 314);
+INSERT INTO `t_user` VALUES (315, 1, NULL, '450204', '18178284995', 'OK000094', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-07 22:39:48', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (316, 1, NULL, '450204', NULL, 'OK000095', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60EcBlPAN3N5zSonACPu7fwY', NULL, NULL, 1, '1', '2020-09-07 22:39:54', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (317, 1, NULL, '450203', '15347769432', 'OK000096', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-07 23:55:44', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (318, 1, NULL, '450203', NULL, 'OK000097', NULL, NULL, NULL, '黄', '1334120695', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60MetXBOzYVdqnq3UeRPI4_A', NULL, NULL, 1, '1', '2020-09-07 23:55:46', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (319, 1, NULL, '450204', '13367622539', 'OK000099', NULL, NULL, NULL, '姚先生', '13367622539', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60DXaVAmolxbbixjri6nZbjM', NULL, NULL, 1, '1', '2020-09-08 07:31:01', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (321, 1, NULL, '450203', '15878227532', 'OK000100', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Mw-GioeSTEKACduAm1zcR4', NULL, NULL, 1, '1', '2020-09-08 08:46:52', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (323, 1, NULL, '450202', NULL, 'zw', 'https://thirdwx.qlogo.cn/mmopen/vi_32/cagWe1nxocmUAoFtTVyjZ10UdSqSshukdGUxWJiakXWrc3gaqQ8PxLhd2hkoBxnk3lQ9Th1qQNlyMNyOPREicVuA/132', NULL, 2, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwcTrlErysl3UScjmuywxCvA', NULL, 'oKbrKt8N7m5lvZGsnTZDQGesZkHI', NULL, 1, '1', '2020-09-08 16:06:28', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (324, 1, NULL, '450204', '13367729581', 'OK000101', NULL, NULL, NULL, '陆金国', '13367729581', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60E4hICETE5x6sOs9Xhh-59A', 'oKbrKtz0xGmc8mpFDHsyD0VawlhM', NULL, 1, '1', '2020-09-08 16:30:59', NULL, '2020-09-08 16:31:24', 324);
+INSERT INTO `t_user` VALUES (325, 1, NULL, '450205', '18078251949', 'OK000102', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-08 18:11:28', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (326, 1, NULL, '450204', '18378905436', 'OK000103', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FOxF2r5qQx9IXhTVW6Pv88', NULL, NULL, 1, '1', '2020-09-08 18:47:51', NULL, '2020-09-08 18:48:04', 326);
+INSERT INTO `t_user` VALUES (327, 1, NULL, '450202', '15130510371', 'OK000104', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-08 19:58:00', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (328, 1, NULL, '450202', NULL, 'OK000105', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FCP0WE_3OWf6uaarBVqCXA', NULL, NULL, 1, '1', '2020-09-08 19:58:05', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (329, 1, NULL, '450202', '13481232100', 'OK000106', NULL, NULL, NULL, '梁锦光', '13788521341', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60HSsHQui9MbcOWcs6tTkmX0', 'oKbrKt1NDGfJok_Xclpuw59iOdLw', NULL, 1, '1', '2020-09-08 20:12:22', NULL, '2020-09-08 20:12:48', 329);
+INSERT INTO `t_user` VALUES (330, 1, NULL, '450203', '18277211260', 'OK000108', NULL, NULL, NULL, '何', '18277212964', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60IqnAC-I_VXExpWoZiqybMo', NULL, NULL, 1, '1', '2020-09-09 02:13:01', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (332, 1, NULL, '450204', '13317728686', 'OK000109', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Ci8XacKg6GE4B4W4XOCA4s', 'oKbrKtwfh5JvkkAA6wu8XT3YHZGs', NULL, 1, '1', '2020-09-09 08:16:55', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (334, 1, NULL, '450202', '13877277700', 'OK000110', NULL, NULL, NULL, '黄倩', '13877200077', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 45, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60N4NM7C_tqi9HMpIO7Lv12g', NULL, NULL, 1, '1', '2020-09-09 12:08:41', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (336, 1, NULL, '450202', '15878198800', 'OK000110', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-09 13:30:44', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (337, 1, NULL, '450202', NULL, 'OK000111', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60G0XLOWPp5jtH9KSQu3ODSE', NULL, NULL, 1, '1', '2020-09-09 13:30:46', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (338, 1, NULL, '450204', '18077225361', 'OK000112', NULL, NULL, NULL, '周宇东', '18077225361', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60PKi_4RoqhBz_N_3wzSCcNw', NULL, NULL, 1, '1', '2020-09-09 17:27:20', NULL, '2020-09-09 17:27:44', 338);
+INSERT INTO `t_user` VALUES (339, 1, NULL, '450203', NULL, '网名太帅无法显示!', 'https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTIcu5pBsZPqcDOqZb6eCg7oPbQia8L0cYaQ3cQ8f7h34ia966sHUWib1QCBULIagiaEY8IiaEEicYmrFsibg/132', NULL, 2, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwUD7AxK9tH7Um82BdM72YJE', NULL, 'oKbrKtxUpIorvT-1EAeLjl2rqqnA', NULL, 1, '1', '2020-09-09 21:46:08', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (340, 1, NULL, '450204', '15347727656', 'OK000115', NULL, NULL, NULL, '陆先生', '15347727656', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60GolWc9wHQ85puW_Jn4CQeo', NULL, NULL, 1, '1', '2020-09-09 23:35:33', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (342, 1, NULL, '450205', '17776447894', 'OK000116', NULL, NULL, NULL, '欧荣光', '13978232835', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 60, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60MBnxcrH4J7y7JSiaT3n09I', NULL, NULL, 1, '1', '2020-09-10 08:41:37', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (344, 1, NULL, '510107', '15946464664', 'OK000116', NULL, NULL, NULL, '积极', '14646464664', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-10 15:07:08', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (345, 1, NULL, '450204', '17754572457', 'OK000118', NULL, NULL, NULL, '亲', '17754572457', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60EIbAIEebUpXLhqFAox92Lo', NULL, NULL, 1, '1', '2020-09-10 17:12:27', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (347, 1, NULL, '450204', '13558222821', 'OK000119', NULL, NULL, NULL, '罗键忠', '13558222821', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60C_KPOS0F_RHqn7z4i5ct8k', NULL, NULL, 1, '1', '2020-09-10 20:13:03', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (349, 1, NULL, '450323', '17707838945', 'OK000119', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-10 22:12:20', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (350, 1, NULL, '450323', NULL, 'OK000120', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60PIl3oqFCtlCsi8X1jYBdyk', 'oKbrKt0-c30AUerYhgZmvMm4atcg', NULL, 1, '1', '2020-09-10 22:12:22', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (351, 1, NULL, '450203', '18977287613', 'OK000122', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FhOY7kAP_64_VkEqWI7C3c', NULL, NULL, 1, '1', '2020-09-10 23:08:23', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (353, 1, NULL, '450206', '15078464310', 'OK000122', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Dvq1V9IvHU8YqXlaI2GZBE', NULL, NULL, 1, '1', '2020-09-11 00:27:51', NULL, '2020-09-11 00:28:29', 353);
+INSERT INTO `t_user` VALUES (354, 1, NULL, '450204', '13481236587', 'OK000123', NULL, NULL, NULL, '彭莹', '13457245208', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FIePDhilLyFn9UMN98jezs', 'oKbrKty12bOIM5D20C0c34pc9Ejg', NULL, 1, '1', '2020-09-11 10:10:02', NULL, '2020-09-11 10:10:44', 354);
+INSERT INTO `t_user` VALUES (355, NULL, NULL, '441284', '18813898559', 'OK000125', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LZHX7PPFIVq9Usb0c_7qNQ', NULL, NULL, 1, '1', '2020-09-11 13:07:02', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (357, 1, NULL, '450203', '17300088571', 'OK000125', NULL, NULL, NULL, '覃家快', '17300088571', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60HreCVZdTzdpMp8IE3gQ7tI', NULL, NULL, 1, '1', '2020-09-11 13:18:49', NULL, '2020-09-11 13:19:20', 357);
+INSERT INTO `t_user` VALUES (358, 1, NULL, '450203', '13368407654', 'OK000127', NULL, NULL, NULL, '唐茂', '13368407654', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60A7oZUR15Hzwiwpq0PxAmkg', NULL, NULL, 1, '1', '2020-09-11 16:39:04', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (360, 1, NULL, '450206', '15347757983', 'OK000127', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 17:34:32', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (361, 1, NULL, '450206', NULL, 'OK000128', NULL, NULL, NULL, '龚昌意', '15347757983', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60EKHs9KM1XW8H2yG7RRm0rc', NULL, NULL, 1, '1', '2020-09-11 17:34:36', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (362, 1, NULL, '450205', '17687271872', 'OK000130', NULL, NULL, NULL, '莫', '17687271872', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60AaUcPy8Vntf0vBxvzD_Dnc', NULL, NULL, 1, '1', '2020-09-11 17:54:10', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (364, 1, NULL, '450205', '13877296706', 'OK000130', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 17:55:23', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (365, 1, NULL, '450205', NULL, 'OK000131', NULL, NULL, NULL, '梁春光', '13877296706', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LA2AO851yIaa3RloM7e6c0', NULL, NULL, 1, '1', '2020-09-11 17:55:28', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (366, 1, NULL, '450203', '18978044060', 'OK000133', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60EvwO3YfYK-gRM8CGnslC9E', NULL, NULL, 1, '1', '2020-09-11 18:02:24', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (368, 1, NULL, '450204', '18077242553', 'OK000133', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 18:11:22', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (369, 1, NULL, '450204', NULL, 'OK000134', NULL, NULL, NULL, '罗苏荣', '18978000294', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60NYkwV1n1G1LqDXzO0aNTmQ', NULL, NULL, 1, '1', '2020-09-11 18:11:24', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (370, 1, NULL, '450206', NULL, 'OK000135', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ChEDkY_7wOdC0BZF58dYJY', 'oKbrKtxN7f3izvqRsC46G3xPo0GA', NULL, 1, '1', '2020-09-11 18:19:57', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (371, 1, NULL, '450205', '13768866728', 'OK000139', NULL, NULL, NULL, '莫国辉', '13768866728', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60C31LA2NMcD19Y_2c45DN38', NULL, NULL, 1, '1', '2020-09-11 18:21:59', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (372, 1, NULL, '450205', '17776309588', 'OK000138', NULL, NULL, NULL, '黄叶盛', '17776309588', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60A28mLveQhUjPlfTNlsmvcY', 'oKbrKt2lRXfyRRB8yHbbcE1zqAzI', NULL, 1, '1', '2020-09-11 18:21:59', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (375, 1, NULL, '450202', '13877269701', 'OK000138', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 18:26:16', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (376, 1, NULL, '450202', NULL, 'OK000139', NULL, NULL, NULL, '谭女士', '13877217266', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FacfXtKkuqMLMbAVZglfBU', NULL, NULL, 1, '1', '2020-09-11 18:26:20', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (377, 1, NULL, '450205', '13737258975', 'OK000141', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60LFpFKM1Y3CaOVqTV6T-5dg', NULL, NULL, 1, '1', '2020-09-11 18:39:45', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (380, 1, NULL, '450202', '15347772319', 'OK000141', NULL, NULL, NULL, '韦嘉睿', '15347772319', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ACFYZdho355AHbQpKKOFhQ', NULL, NULL, 1, '1', '2020-09-11 18:44:02', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (381, 1, NULL, '450202', '18076702510', 'OK000143', NULL, NULL, NULL, '曾令忠', '18107720410', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60M8BoDJxAfIHoFf3gCTdunU', NULL, NULL, 1, '1', '2020-09-11 19:02:51', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (383, 1, NULL, '450204', NULL, 'OK000143', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Nso5DhcrVSzhqcGLiRBgjM', NULL, NULL, 1, '1', '2020-09-11 19:23:27', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (384, 1, NULL, '450204', '13977210484', 'OK000145', NULL, NULL, NULL, '柳凌风', '13977210484', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ICdtPWpzK2oqV7lzXohHRo', NULL, NULL, 1, '1', '2020-09-11 19:25:54', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (386, 1, NULL, '450202', '13257815618', 'OK000145', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 19:41:43', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (387, 1, NULL, '450204', '13877266117', 'OK000147', NULL, NULL, NULL, '覃文虎', '13877266117', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60FykAkSd4ACCwIR1bN3jaJE', NULL, NULL, 1, '1', '2020-09-11 20:15:12', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (389, 1, NULL, '450205', NULL, 'OK000147', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60CcSDsbBvKt8JYrOsfwW990', NULL, NULL, 1, '1', '2020-09-11 20:35:23', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (390, 1, NULL, '450204', '18586544243', '×××', 'https://thirdwx.qlogo.cn/mmopen/vi_32/39RiclPhWbnAXhYFoPYlhNffEZmiacjxu6QItXfx09Z5tqtqHmWN1ciaB5FC4nLKE4IyFIfB7AbcJ7bpUiblBTVJtg/132', NULL, 2, '杨宜涛', '15121462846', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwaaoY16-hdRE5UY2rUSfxAM', NULL, 'oKbrKt9l4sbU4MWGoDSc0Swvv3_0', NULL, 1, '1', '2020-09-11 20:53:11', NULL, '2020-09-11 20:53:34', 390);
+INSERT INTO `t_user` VALUES (391, 1, NULL, '450203', '15778286826', 'OK000149', NULL, NULL, NULL, '罗恒', '18878200097', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 21:05:14', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (392, 1, NULL, '450203', '18154770905', 'OK000150', NULL, NULL, NULL, '孔繁铭', '13557721655', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60L5sapvT2pmotWEWUuY1jrw', NULL, NULL, 1, '1', '2020-09-11 21:07:34', NULL, '2020-09-11 21:07:51', 392);
+INSERT INTO `t_user` VALUES (393, 1, NULL, '450203', '18077209852', 'OK000151', NULL, NULL, NULL, '张仁贵', '18077203380', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60EgZvZokT1NPglOzbxhMYTk', NULL, NULL, 1, '1', '2020-09-11 21:08:17', NULL, '2020-09-11 21:08:32', 393);
+INSERT INTO `t_user` VALUES (394, 1, NULL, '450204', '18177226729', 'OK000153', NULL, NULL, NULL, '钟', '18177226729', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Pmpu6wNrn6DnszS9MyuHbQ', NULL, NULL, 1, '1', '2020-09-11 21:13:21', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (396, 1, NULL, '450202', '13558327170', 'OK000153', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 21:27:06', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (397, 1, NULL, '450202', NULL, 'OK000154', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60KSZDg9RKclrdtDXd3T1CMs', NULL, NULL, 1, '1', '2020-09-11 21:27:09', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (398, 1, NULL, '450200', '19144205502', 'OK000155', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 21:37:29', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (399, 1, NULL, '450202', '18996324019', 'OK000156', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 22:16:15', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (400, 1, NULL, '450202', NULL, 'OK000157', NULL, NULL, NULL, '秦佳莹', '18083029741', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Fje-jf15o0BYH8ZWP8HYN4', NULL, NULL, 1, '1', '2020-09-11 22:16:18', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (401, 1, NULL, '450203', '18978098622', 'OK000158', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-11 22:22:23', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (402, 1, NULL, '450203', '13977295969', 'OK000159', NULL, NULL, NULL, '福', '13907723269', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60K3N2NDZ6PFYFTybC3pBvSc', NULL, NULL, 1, '1', '2020-09-11 22:22:30', NULL, '2020-09-11 22:23:08', 402);
+INSERT INTO `t_user` VALUES (403, 1, NULL, '450204', '15577219638', '冯越', 'https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eqiaoJicMRUO5tfPWu6dOtm12Ig7bu2tMlD41BW62FMhyHAjBIzLkic18j1L0mI2r0HCmV86ex9ic3IHg/132', NULL, 2, '吴光辉', '13788446135', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwSP4RdEdZsC_c9v8VgWGK5Y', NULL, 'oKbrKt553b3iSBqoga9PprPRJaOQ', NULL, 1, '1', '2020-09-11 22:29:34', NULL, '2020-09-11 22:29:48', 403);
+INSERT INTO `t_user` VALUES (404, 1, NULL, '450205', '17307727912', 'OK000161', NULL, NULL, NULL, '张', '17307727912', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60KNkFYqv6TOQLCGcdCGp8Mo', NULL, NULL, 1, '1', '2020-09-12 03:24:31', NULL, '2020-09-12 03:24:47', 404);
+INSERT INTO `t_user` VALUES (405, 1, NULL, '450202', '15278887738', 'OK000162', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-12 03:37:53', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (406, 1, NULL, '450202', NULL, 'OK000163', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60ItuMRQAxlvS_yEvjTKQlqc', NULL, NULL, 1, '1', '2020-09-12 03:37:57', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (407, 1, NULL, '450202', '13978068824', 'OK000165', NULL, NULL, NULL, '廖良会', '13978068824', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60GR2CQGBeMQgxUXKNbor2b4', NULL, NULL, 1, '1', '2020-09-12 03:38:28', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (409, 1, NULL, '450203', '17777217129', 'OK000165', NULL, NULL, NULL, '韦勇康', '17777217129', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60Eoej0mHK3fQxSoLQfEk93s', NULL, NULL, 1, '1', '2020-09-12 08:01:13', NULL, '2020-09-12 08:01:29', 409);
+INSERT INTO `t_user` VALUES (410, 1, NULL, '450203', '18877278189', 'OK000166', NULL, NULL, NULL, '杨莫', '13768896806', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60MX-i3cKQwTS3zRC8cfg2Vc', NULL, NULL, 1, '1', '2020-09-12 09:45:56', NULL, '2020-09-12 09:46:26', 410);
+INSERT INTO `t_user` VALUES (411, 1, NULL, '450204', '18877200259', 'OK000167', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-12 17:37:29', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (412, 1, NULL, '450204', NULL, 'OK000168', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60AaWCNjmPmmNPX9XUgBPZus', NULL, NULL, 1, '1', '2020-09-12 17:37:37', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (413, 1, NULL, '450205', '15778294727', 'OK000170', NULL, NULL, NULL, '覃斌', '15778294727', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, 'oVlD60KsV0ZMkQnRMO_4sAoTpLLI', NULL, NULL, 1, '1', '2020-09-12 17:59:26', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (415, 1, NULL, '450202', '15332789680', 'OK000170', NULL, NULL, 1, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-12 22:33:17', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (416, 1, NULL, '450203', '18172171303', 'OK000171', NULL, NULL, NULL, '吴献宁', '18172175807', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-13 12:00:34', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (417, 1, NULL, '450202', '13557123286', 'OK000172', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-14 15:06:26', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (418, 1, NULL, '450204', '18377275719', 'Gin', 'https://thirdwx.qlogo.cn/mmopen/vi_32/KUpZEfHx1SicMKoEdJ7SzNEOU35icEf8nxdMMkzLXhxN50JGuePKyDCNXN8cnmic4BiaPaZqjicZujGNiaH2hwzjrz9A/132', NULL, 2, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwXkvWTuWlmKj3uPJ2b99pPY', NULL, 'oKbrKt6ml7UtqcGBJ_a_xInWXr7M', NULL, 1, '1', '2020-09-14 23:06:51', NULL, '2020-09-14 23:07:06', 418);
+INSERT INTO `t_user` VALUES (419, 1, NULL, '450203', '13907728740', 'OK000174', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-15 03:21:53', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (420, 1, NULL, '450205', '15707725715', 'OK000175', NULL, NULL, NULL, '丹', '15877255838', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-15 16:03:56', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (421, 1, NULL, '450202', '18577275127', 'OK000176', NULL, NULL, NULL, '林', '17877889151', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-16 10:52:55', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (422, 1, NULL, '450202', '13593739812', 'OK000177', NULL, NULL, NULL, '邓子建', '13636248755', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-16 10:54:25', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (423, 1, NULL, '450204', '18579412324', 'i', 'https://thirdwx.qlogo.cn/mmopen/vi_32/qu4kMllA8GEP1Wjicd0xIqwHXibdhuibx0QBmDj2hzzeYlWrHaAzP2x22T686Vv8OArHnQ037y26KuqV96yYAxLnw/132', NULL, 2, '1', '13978235452', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwSAclIJjd73JRydf3PTxt1A', NULL, 'oKbrKt13Z4jsRBC2fZJB0ecdLpjY', NULL, 1, '1', '2020-09-16 21:09:26', NULL, '2020-09-16 21:09:42', 423);
+INSERT INTO `t_user` VALUES (424, 1, NULL, '450202', '13597063052', 'OK000179', NULL, NULL, NULL, '李荣伦', '13877225756', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 80, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-17 22:14:55', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (425, 1, NULL, '450202', '18177210887', 'OK000180', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-18 17:14:33', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (426, 1, NULL, '450203', '13557423483', '兜兜', 'https://thirdwx.qlogo.cn/mmopen/vi_32/PvoKibIA7vibBpvdIHODqAUWOJnTNzbqA9Mu5s89fN1ayYYACv2qJS3scg2QM3mUo4WrogxxxcUGIEXRxMYOd1Gw/132', NULL, 2, '张丽风', '13557727433', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwSTq9-4Piv-SvsInWc6ze1M', NULL, 'oKbrKt-E41-5-R0QuDpp7XLKewQw', NULL, 1, '1', '2020-09-18 17:22:35', NULL, '2020-09-18 17:23:15', 426);
+INSERT INTO `t_user` VALUES (427, 1, NULL, '450203', '13677721685', 'OK000182', NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-18 17:28:37', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (428, 1, NULL, '450203', '19906561880', 'Jinx', 'https://thirdwx.qlogo.cn/mmopen/vi_32/wucz7Tia1ofQO8XCsjO004pmIm5fUjTldFh02rQJuQSCyW2wezofV2yRJqSodwELplfSKFZXFFxKjXVJxNwajpA/132', NULL, 2, '王慧明', '15910222361', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwbe3ZmUuvzTvcGEFkrcqZRs', NULL, 'oKbrKt36fz1jch4NXMtf8uBz2Od4', NULL, 1, '1', '2020-09-18 18:28:47', NULL, '2020-09-18 18:29:02', 428);
+INSERT INTO `t_user` VALUES (429, 1, NULL, '510100', '18948744087', '陈晨', 'https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKKHNCIAMm1pXKTKRlD7MbRCxGXswvqRVF5XVP0EvuibOy60leiaKQ7qwAywq1d3bd6qq2QbqVKGGQQ/132', NULL, 2, '你咋', '13969586958', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwYBnrh4GwOxlZVwsNthVqEQ', NULL, 'oKbrKt3hSUxOOCVhMjVNKq-ddrww', NULL, 1, '1', '2020-09-18 19:45:50', NULL, '2020-09-18 19:45:59', 429);
+INSERT INTO `t_user` VALUES (430, 1, NULL, '450203', '18269585832', '好', 'https://thirdwx.qlogo.cn/mmopen/vi_32/ZOutpw1efJvWkI23TkgfBmDbiaZBSgAZGRGNYbXP2UqvV8LibKuHEldUQX3EEmA71jfkCcPiarYNFJ2YMpNYWwD3g/132', NULL, 2, '周家鹏', '15207850251', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', 'o2OUuwYgaikddzfOGJe5NMAML_IA', NULL, 'oKbrKt3tIgqs3h6llE_Yp1Iejti4', NULL, 1, '1', '2020-09-19 12:41:31', NULL, '2020-09-19 12:42:00', 430);
+INSERT INTO `t_user` VALUES (432, 1, NULL, '510107', '15943495464', 'OK000186', NULL, NULL, NULL, '回家', '15446946444', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-21 11:21:18', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (433, 1, NULL, '510107', '15449434646', 'OK000187', NULL, NULL, NULL, '可以', '15446434643', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-22 15:57:25', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (434, 1, NULL, '510107', '15434646464', 'OK000188', NULL, NULL, NULL, '李', '15449434646', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-22 16:13:09', NULL, NULL, NULL);
+INSERT INTO `t_user` VALUES (435, 1, NULL, '510107', '17708110425', 'OK000189', NULL, NULL, NULL, '张三', '18380581367', 1, NULL, NULL, NULL, NULL, 0.00, 0.00, 0, '08954fb4573f8b38065ccd902bcc5829', NULL, NULL, NULL, NULL, 1, '1', '2020-09-29 18:44:36', NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for t_user_activity
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity`;
+CREATE TABLE `t_user_activity`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '活动名称',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `status` smallint(1) NULL DEFAULT NULL COMMENT '状态(1=待审核,2=驳回,3=通过)',
+  `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
+  `companyType` smallint(1) NULL DEFAULT NULL COMMENT '1=平台 2=分公司 3=加盟商',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动主表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_balance
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_balance`;
+CREATE TABLE `t_user_activity_balance`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `enable` int(1) NULL DEFAULT NULL COMMENT '1=不启用,2=启用',
+  `userActivityId` int(11) NULL DEFAULT NULL COMMENT '用户活动主表id',
+  `money` double(11, 2) NULL DEFAULT NULL COMMENT '充值金额',
+  `generalNum` int(11) NULL DEFAULT NULL COMMENT '通用优惠券数量',
+  `generalCouponId` int(11) NULL DEFAULT NULL COMMENT '通用优惠券id',
+  `specialNum` int(11) NULL DEFAULT NULL COMMENT '专车优惠券数量',
+  `specialCouponId` int(11) NULL DEFAULT NULL COMMENT '专车优惠券id',
+  `taxiNum` int(11) NULL DEFAULT NULL COMMENT '出租车优惠券数量',
+  `taxiCouponId` int(11) NULL DEFAULT NULL COMMENT '出租车优惠券id',
+  `intercityNum` int(11) NULL DEFAULT NULL COMMENT '城际优惠券数量',
+  `intercityCouponId` int(11) NULL DEFAULT NULL COMMENT '城际优惠券id',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '添加时间',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `effective` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+  `generalCouponMoney` double(10, 2) NULL DEFAULT NULL COMMENT '通用优惠券金额',
+  `specialCouponMoney` double(10, 2) NULL DEFAULT NULL COMMENT '专车优惠券金额',
+  `taxiCouponMoney` double(10, 2) NULL DEFAULT NULL COMMENT '出租车优惠券金额',
+  `intercityCouponMoney` double(10, 2) NULL DEFAULT NULL COMMENT '城际优惠券金额',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动-充值' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_balance
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_discount1
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_discount1`;
+CREATE TABLE `t_user_activity_discount1`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userActivityId` int(11) NULL DEFAULT NULL COMMENT '用户活动主表id',
+  `special` double(11, 2) NULL DEFAULT NULL COMMENT '专车打折(8.5)',
+  `taxi` double(11, 2) NULL DEFAULT NULL COMMENT '出租车打折(8.5)',
+  `logistics` double(11, 2) NULL DEFAULT NULL COMMENT '小件物流打折(8.5)',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `enable` int(1) NULL DEFAULT NULL COMMENT '1=不启用,2=启用',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动-折扣1' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_discount1
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_discount2
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_discount2`;
+CREATE TABLE `t_user_activity_discount2`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userActivityId` int(11) NULL DEFAULT NULL COMMENT '用户活动主表id',
+  `lineId` int(11) NULL DEFAULT NULL COMMENT '跨城线路id',
+  `discount` double(11, 2) NULL DEFAULT NULL COMMENT '折扣(8.5)',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `enable` int(1) NULL DEFAULT NULL COMMENT '1=不启用,2=启用',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动-折扣2(跨城)' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_discount2
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_invite
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_invite`;
+CREATE TABLE `t_user_activity_invite`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userActivityId` int(11) NULL DEFAULT NULL COMMENT '用户活动主表id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  `totalNum` int(11) NULL DEFAULT NULL COMMENT '优惠券总数量',
+  `laveNum` int(11) NULL DEFAULT NULL COMMENT '剩余数量',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `enable` int(1) NULL DEFAULT NULL COMMENT '1=不启用,2=启用',
+  `effective` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动-邀请' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_invite
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_receive
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_receive`;
+CREATE TABLE `t_user_activity_receive`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `activityId` int(11) NULL DEFAULT NULL COMMENT '活动Id',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '领取用户id',
+  `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '领取金额',
+  `state` smallint(1) NULL DEFAULT NULL COMMENT '状态(1=未使用,2=已使用)',
+  `createTime` datetime(0) NULL DEFAULT NULL COMMENT '领取时间',
+  `expirationTime` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+  `type` smallint(1) NULL DEFAULT NULL COMMENT '类型(1=注册,2=邀请,3=打折,4=红包)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '活动领取记录表' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_receive
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_redenvelope
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_redenvelope`;
+CREATE TABLE `t_user_activity_redenvelope`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userActivityId` int(11) NULL DEFAULT NULL COMMENT '用户活动主表id',
+  `redEnvelopeId` int(11) NULL DEFAULT NULL COMMENT '红包id',
+  `totalMoney` double(11, 2) NULL DEFAULT NULL COMMENT '总金额',
+  `laveMoney` double(11, 2) NULL DEFAULT NULL COMMENT '剩余金额',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `enable` int(1) NULL DEFAULT NULL COMMENT '1=不启用,2=启用',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动-红包' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_redenvelope
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_activity_registered
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_activity_registered`;
+CREATE TABLE `t_user_activity_registered`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userActivityId` int(11) NULL DEFAULT NULL COMMENT '用户活动id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券id',
+  `totalNum` int(11) NULL DEFAULT NULL COMMENT '每个人获取张数',
+  `laveNum` int(11) NULL DEFAULT NULL COMMENT '剩余数量',
+  `startTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期开始时间',
+  `endTime` datetime(0) NULL DEFAULT NULL COMMENT '有效期结束时间',
+  `enable` int(1) NULL DEFAULT NULL COMMENT '1=不启用,2=启用',
+  `effective` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户活动-注册' ROW_FORMAT = Compact;
+
+-- ----------------------------
+-- Records of t_user_activity_registered
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_coupon_record
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_coupon_record`;
+CREATE TABLE `t_user_coupon_record`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `fullMoney` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '满减金额',
+  `expirationTime` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '获取时间',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `state` smallint(1) NULL DEFAULT NULL COMMENT '状态(1=未使用,2=已使用,3=已过期)',
+  `couponUseType` smallint(1) NULL DEFAULT NULL COMMENT '优惠券使用类型(0=通用,1=专车,2=出租车,3=城际,4=小件物流)',
+  `couponType` smallint(1) NULL DEFAULT NULL COMMENT '优惠券类型(1=抵扣,2=满减)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `couponId` int(11) NULL DEFAULT NULL COMMENT '优惠券发放id',
+  `couponActivityId` int(11) NULL DEFAULT NULL COMMENT '活动id',
+  `activityType` smallint(1) NULL DEFAULT NULL COMMENT '活动类型(1=赠送活动,2=注册,3=邀请,4=充值)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户优惠券记录' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_user_coupon_record
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_user_red_packet_record
+-- ----------------------------
+DROP TABLE IF EXISTS `t_user_red_packet_record`;
+CREATE TABLE `t_user_red_packet_record`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `money` decimal(10, 2) NULL DEFAULT 0.00 COMMENT '金额',
+  `expirationTime` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '获取时间',
+  `companyId` int(11) NULL DEFAULT NULL COMMENT '公司id',
+  `state` smallint(1) NULL DEFAULT NULL COMMENT '状态(0=临时,1=未使用,2=已使用,3=已过期)',
+  `orderId` int(11) NULL DEFAULT NULL COMMENT '订单id',
+  `orderType` smallint(1) NULL DEFAULT NULL COMMENT '订单类型(1=专车,2=出租车,3=城际,4=小件物流)',
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `redPacketActivityId` int(11) NULL DEFAULT NULL COMMENT '活动id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户红包记录' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_user_red_packet_record
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_verified
+-- ----------------------------
+DROP TABLE IF EXISTS `t_verified`;
+CREATE TABLE `t_verified`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `userId` int(11) NULL DEFAULT NULL COMMENT '用户id',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '认证姓名',
+  `idcode` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '身份证号码',
+  `img1` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '身份证正面照',
+  `img2` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '身份证背面照',
+  `state` int(1) NULL DEFAULT NULL COMMENT '认证结果(1=待认证,2=认证通过,3=认证失败)',
+  `insertTime` datetime(0) NULL DEFAULT NULL COMMENT '请求时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '实名认证' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_verified
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for t_version_management
+-- ----------------------------
+DROP TABLE IF EXISTS `t_version_management`;
+CREATE TABLE `t_version_management`  (
+  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+  `url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '包路径',
+  `version` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '版本号',
+  `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '更新公告',
+  `mandatory` smallint(1) NULL DEFAULT 1 COMMENT '是否强制升级(1=是  2=否)',
+  `insertTime` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
+  `type` smallint(1) NULL DEFAULT 1 COMMENT '类型(1=用户端,2=司机端,3=车载端,4=调度端)',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '版本管理' ROW_FORMAT = COMPACT;
+
+-- ----------------------------
+-- Records of t_version_management
+-- ----------------------------
+INSERT INTO `t_version_management` VALUES (18, 'https://newok.oss-cn-shenzhen.aliyuncs.com/img/1617a58ad7f1474d89ff01823dea4915.apk', '1', '新版本', 2, '2020-08-27 12:05:13', 3);
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
new file mode 100644
index 0000000..52e34ea
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsApplication.java
@@ -0,0 +1,85 @@
+package com.stylefeng.guns;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.config.SocketConfig;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.http.converter.StringHttpMessageConverter;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.web.client.RestTemplate;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * SpringBoot方式启动类
+ *
+ * @author stylefeng
+ * @Date 2017/5/21 12:06
+ */
+@EnableEurekaClient//注册为服务提供者
+@SpringBootApplication
+@EnableScheduling//开启定时任务
+@EnableTransactionManagement//启动事务功能
+public class GunsApplication /*extends SpringBootServletInitializer*/ {
+
+    private final static Logger logger = LoggerFactory.getLogger(GunsApplication.class);
+
+    public static void main(String[] args) {
+        SpringApplication.run(GunsApplication.class, args);
+        logger.info("GunsApplication is success!");
+    }
+
+    /**
+     * 向Spring容器中定义RestTemplate对象
+     * @return
+     */
+    @Bean //SpringCloud内部服务质检使用服务名调用
+    @LoadBalanced
+    public RestTemplate internalRestTemplate() {
+        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
+        connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build());
+        connectionManager.setDefaultMaxPerRoute(100);//最大并发连接
+        connectionManager.setMaxTotal(200); // 总的最大连接数
+        HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
+        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
+        httpRequestFactory.setConnectionRequestTimeout(30 * 1000);
+        httpRequestFactory.setConnectTimeout(30 * 3000);
+        httpRequestFactory.setReadTimeout(30 * 3000);
+        RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
+        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+        return restTemplate;
+    }
+
+    @Bean //通过ip地址调用
+    public RestTemplate restTemplate() {
+        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();
+        connectionManager.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).build());
+        connectionManager.setDefaultMaxPerRoute(100);//最大并发连接
+        connectionManager.setMaxTotal(200); // 总的最大连接数
+        HttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
+        HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(httpClient);
+        httpRequestFactory.setConnectionRequestTimeout(30 * 1000);
+        httpRequestFactory.setConnectTimeout(30 * 3000);
+        httpRequestFactory.setReadTimeout(30 * 3000);
+        RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
+        restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+        return restTemplate;
+    }
+
+
+//    @Override
+//    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
+//        return builder.sources(GunsApplication.class);
+//    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsServletInitializer.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsServletInitializer.java
new file mode 100644
index 0000000..18e63c5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/GunsServletInitializer.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns;
+
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+/**
+ * Guns Web程序启动类
+ *
+ * @author fengshuonan
+ * @date 2017-05-21 9:43
+ */
+public class GunsServletInitializer extends SpringBootServletInitializer {
+
+    @Override
+    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
+        return builder.sources(GunsApplication.class);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/EhCacheConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/EhCacheConfig.java
new file mode 100644
index 0000000..7c1358d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/EhCacheConfig.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.config;
+
+import net.sf.ehcache.CacheManager;
+import org.springframework.cache.annotation.EnableCaching;
+import org.springframework.cache.ehcache.EhCacheCacheManager;
+import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.io.ClassPathResource;
+
+/**
+ * ehcache配置
+ *
+ * @author fengshuonan
+ * @date 2017-05-20 23:11
+ */
+@Configuration
+@EnableCaching
+public class EhCacheConfig {
+
+    /**
+     * EhCache的配置
+     */
+    @Bean
+    public EhCacheCacheManager cacheManager(CacheManager cacheManager) {
+        return new EhCacheCacheManager(cacheManager);
+    }
+
+    /**
+     * EhCache的配置
+     */
+    @Bean
+    public EhCacheManagerFactoryBean ehcache() {
+        EhCacheManagerFactoryBean ehCacheManagerFactoryBean = new EhCacheManagerFactoryBean();
+        ehCacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
+		ehCacheManagerFactoryBean.setShared(true);//共享缓存,避免tomcat启动报错
+        return ehCacheManagerFactoryBean;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java
new file mode 100644
index 0000000..d459612
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/RedisConfig.java
@@ -0,0 +1,46 @@
+package com.stylefeng.guns.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
+
+@Configuration
+@PropertySource("classpath:redis.properties")
+public class RedisConfig {
+    @Value("${spring.redis.host}")
+    private String host;
+
+    @Value("${spring.redis.port}")
+    private int port;
+
+    @Value("${spring.redis.timeout}")
+    private int timeout;
+
+    @Value("${spring.redis.jedis.pool.max-idle}")
+    private int maxIdle;
+
+    @Value("${spring.redis.jedis.pool.max-wait}")
+    private long maxWaitMillis;
+
+    @Value("${spring.redis.password}")
+    private String password;
+
+    @Value("${spring.redis.block-when-exhausted}")
+    private boolean  blockWhenExhausted;
+
+    @Bean
+    public JedisPool redisPoolFactory()  throws Exception{
+        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
+        jedisPoolConfig.setMaxIdle(maxIdle);
+        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
+        // 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true
+        jedisPoolConfig.setBlockWhenExhausted(blockWhenExhausted);
+        // 是否启用pool的jmx管理功能, 默认true
+        jedisPoolConfig.setJmxEnabled(true);
+        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);
+        return jedisPool;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SpringSessionConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SpringSessionConfig.java
new file mode 100644
index 0000000..ef9a5bc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SpringSessionConfig.java
@@ -0,0 +1,15 @@
+package com.stylefeng.guns.config;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+
+/**
+ * spring session配置
+ *
+ * @author fengshuonan
+ * @date 2017-07-13 21:05
+ */
+//@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)  //session过期时间  如果部署多机环境,需要打开注释
+@ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "true")
+public class SpringSessionConfig {
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
new file mode 100644
index 0000000..3637284
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/SwaggerConfig.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.config;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * swagger配置类
+ *
+ * @author fengshuonan
+ * @date 2017年6月1日19:42:59
+ */
+@Configuration
+@EnableSwagger2
+@ConditionalOnProperty(prefix = "guns", name = "swagger-open", havingValue = "true")
+public class SwaggerConfig{
+
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .select()
+                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))                         //这里采用包含注解的方式来确定要显示的接口
+                //.apis(RequestHandlerSelectors.basePackage("com.stylefeng.guns.modular.system.controller"))    //这里采用包扫描的方式来确定要显示的接口
+                .paths(PathSelectors.any())
+                .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                .title("日月出行 Doc")
+                .description("所有接口前需要加 /user 前缀,例如:/user/base/agreement/queryByType <br>" +
+                        "所有以 /api/*** 路径的接口需要上传签名参数sign")
+//                .termsOfServiceUrl("http://git.oschina.net/naan1993/guns")
+                .contact("stylefeng")
+                .version("1.0")
+                .build();
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/MultiDataSourceConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/MultiDataSourceConfig.java
new file mode 100644
index 0000000..d9e3fce
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/MultiDataSourceConfig.java
@@ -0,0 +1,125 @@
+package com.stylefeng.guns.config.datasource;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor;
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+import com.stylefeng.guns.core.config.properties.DruidProperties;
+import com.stylefeng.guns.core.config.properties.MutiDataSourceProperties;
+import com.stylefeng.guns.core.datascope.DataScopeInterceptor;
+import com.stylefeng.guns.core.mutidatasource.DynamicDataSource;
+import com.stylefeng.guns.core.mutidatasource.aop.MultiSourceExAop;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.jdbc.datasource.DataSourceTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+import java.sql.SQLException;
+import java.util.HashMap;
+
+/**
+ * 多数据源配置<br/>
+ * <p>
+ * 注:由于引入多数据源,所以让spring事务的aop要在多数据源切换aop的后面
+ *
+ * @author stylefeng
+ * @Date 2017/5/20 21:58
+ */
+@Configuration
+@ConditionalOnProperty(prefix = "guns.muti-datasource", name = "open", havingValue = "true")
+@EnableTransactionManagement(order = 2)
+@MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao","com.stylefeng.guns.multi.mapper"})
+public class MultiDataSourceConfig {
+
+    @Bean
+    @ConfigurationProperties(prefix = "guns.muti-datasource")
+    public MutiDataSourceProperties mutiDataSourceProperties() {
+        return new MutiDataSourceProperties();
+    }
+
+    @Bean
+    public MultiSourceExAop multiSourceExAop() {
+        return new MultiSourceExAop();
+    }
+
+    /**
+     * guns的数据源
+     */
+    private DruidDataSource dataSource(DruidProperties druidProperties) {
+        DruidDataSource dataSource = new DruidDataSource();
+        druidProperties.config(dataSource);
+        return dataSource;
+    }
+
+    /**
+     * 多数据源,第二个数据源
+     */
+    private DruidDataSource bizDataSource(DruidProperties druidProperties, MutiDataSourceProperties mutiDataSourceProperties) {
+        DruidDataSource dataSource = new DruidDataSource();
+        druidProperties.config(dataSource);
+        mutiDataSourceProperties.config(dataSource);
+        return dataSource;
+    }
+
+    /**
+     * 多数据源连接池配置
+     */
+    @Bean
+    public DynamicDataSource mutiDataSource(DruidProperties druidProperties, MutiDataSourceProperties mutiDataSourceProperties) {
+
+        DruidDataSource dataSourceGuns = dataSource(druidProperties);
+        DruidDataSource bizDataSource = bizDataSource(druidProperties, mutiDataSourceProperties);
+
+        try {
+            dataSourceGuns.init();
+            bizDataSource.init();
+        } catch (SQLException sql) {
+            sql.printStackTrace();
+        }
+
+        DynamicDataSource dynamicDataSource = new DynamicDataSource();
+        HashMap<Object, Object> hashMap = new HashMap<>();
+        hashMap.put(mutiDataSourceProperties.getDataSourceNames()[0], dataSourceGuns);
+        hashMap.put(mutiDataSourceProperties.getDataSourceNames()[1], bizDataSource);
+        dynamicDataSource.setTargetDataSources(hashMap);
+        dynamicDataSource.setDefaultTargetDataSource(dataSourceGuns);
+        return dynamicDataSource;
+    }
+
+    /**
+     * mybatis-plus分页插件
+     */
+    @Bean
+    public PaginationInterceptor paginationInterceptor() {
+        return new PaginationInterceptor();
+    }
+
+    /**
+     * 数据范围mybatis插件
+     */
+    @Bean
+    public DataScopeInterceptor dataScopeInterceptor() {
+        return new DataScopeInterceptor();
+    }
+
+    /**
+     * 乐观锁mybatis插件
+     */
+    @Bean
+    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
+        return new OptimisticLockerInterceptor();
+    }
+
+    /**
+     * 事务配置
+     *
+     * @author stylefeng
+     * @Date 2018/6/27 23:11
+     */
+    @Bean
+    public DataSourceTransactionManager dataSourceTransactionManager(DynamicDataSource mutiDataSource) {
+        return new DataSourceTransactionManager(mutiDataSource);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/SingleDataSourceConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/SingleDataSourceConfig.java
new file mode 100644
index 0000000..6496133
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/datasource/SingleDataSourceConfig.java
@@ -0,0 +1,61 @@
+package com.stylefeng.guns.config.datasource;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.baomidou.mybatisplus.plugins.OptimisticLockerInterceptor;
+import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
+import com.stylefeng.guns.core.config.properties.DruidProperties;
+import com.stylefeng.guns.core.datascope.DataScopeInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+/**
+ * 多数据源配置
+ *
+ * @author stylefeng
+ * @Date 2017/5/20 21:58
+ */
+@Configuration
+@ConditionalOnProperty(prefix = "guns.muti-datasource", name = "open", havingValue = "false", matchIfMissing = true)
+@EnableTransactionManagement
+@MapperScan(basePackages = {"com.stylefeng.guns.modular.*.dao"})
+public class SingleDataSourceConfig {
+
+    /**
+     * 单数据源连接池配置
+     */
+    @Bean
+    public DruidDataSource dataSource(DruidProperties druidProperties) {
+        DruidDataSource dataSource = new DruidDataSource();
+        druidProperties.config(dataSource);
+        return dataSource;
+    }
+
+    /**
+     * mybatis-plus分页插件
+     */
+    @Bean
+    public PaginationInterceptor paginationInterceptor() {
+        return new PaginationInterceptor();
+    }
+
+    /**
+     * 数据范围mybatis插件
+     */
+    @Bean
+    public DataScopeInterceptor dataScopeInterceptor() {
+        return new DataScopeInterceptor();
+    }
+
+    /**
+     * 乐观锁mybatis插件
+     */
+    @Bean
+    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
+        return new OptimisticLockerInterceptor();
+    }
+
+}
+
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/BeetlProperties.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/BeetlProperties.java
new file mode 100644
index 0000000..e1dc4cb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/BeetlProperties.java
@@ -0,0 +1,103 @@
+package com.stylefeng.guns.config.properties;
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * beetl配置(如果需要配置别的配置可参照这个形式自己添加)
+ *
+ * @author fengshuonan
+ * @date 2017-05-24 20:37
+ */
+@Configuration
+@ConfigurationProperties(prefix = BeetlProperties.BEETLCONF_PREFIX)
+public class BeetlProperties {
+
+    public static final String BEETLCONF_PREFIX = "beetl";
+
+    private String delimiterStatementStart;
+
+    private String delimiterStatementEnd;
+
+    private String resourceTagroot;
+
+    private String resourceTagsuffix;
+
+    private String resourceAutoCheck;
+
+    @Value("${spring.mvc.view.prefix}")
+    private String prefix;
+
+    public Properties getProperties(){
+        Properties properties = new Properties();
+        if(ToolUtil.isNotEmpty(delimiterStatementStart)){
+            if(delimiterStatementStart.startsWith("\\")){
+                delimiterStatementStart = delimiterStatementStart.substring(1);
+            }
+            properties.setProperty("DELIMITER_STATEMENT_START",delimiterStatementStart);
+        }
+        if(ToolUtil.isNotEmpty(delimiterStatementEnd)){
+            properties.setProperty("DELIMITER_STATEMENT_END",delimiterStatementEnd);
+        }else{
+            properties.setProperty("DELIMITER_STATEMENT_END","null");
+        }
+        if(ToolUtil.isNotEmpty(resourceTagroot)){
+            properties.setProperty("RESOURCE.tagRoot",resourceTagroot);
+        }
+        if(ToolUtil.isNotEmpty(resourceTagsuffix)){
+            properties.setProperty("RESOURCE.tagSuffix",resourceTagsuffix);
+        }
+        if(ToolUtil.isNotEmpty(resourceAutoCheck)){
+            properties.setProperty("RESOURCE.autoCheck",resourceAutoCheck);
+        }
+        return properties;
+    }
+
+    public String getPrefix() {
+        return prefix;
+    }
+
+    public String getDelimiterStatementStart() {
+        return delimiterStatementStart;
+    }
+
+    public void setDelimiterStatementStart(String delimiterStatementStart) {
+        this.delimiterStatementStart = delimiterStatementStart;
+    }
+
+    public String getDelimiterStatementEnd() {
+        return delimiterStatementEnd;
+    }
+
+    public void setDelimiterStatementEnd(String delimiterStatementEnd) {
+        this.delimiterStatementEnd = delimiterStatementEnd;
+    }
+
+    public String getResourceTagroot() {
+        return resourceTagroot;
+    }
+
+    public void setResourceTagroot(String resourceTagroot) {
+        this.resourceTagroot = resourceTagroot;
+    }
+
+    public String getResourceTagsuffix() {
+        return resourceTagsuffix;
+    }
+
+    public void setResourceTagsuffix(String resourceTagsuffix) {
+        this.resourceTagsuffix = resourceTagsuffix;
+    }
+
+    public String getResourceAutoCheck() {
+        return resourceAutoCheck;
+    }
+
+    public void setResourceAutoCheck(String resourceAutoCheck) {
+        this.resourceAutoCheck = resourceAutoCheck;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java
new file mode 100644
index 0000000..b260140
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/properties/GunsProperties.java
@@ -0,0 +1,105 @@
+package com.stylefeng.guns.config.properties;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import java.io.File;
+
+import static com.stylefeng.guns.core.util.ToolUtil.getTempPath;
+import static com.stylefeng.guns.core.util.ToolUtil.isEmpty;
+
+/**
+ * guns项目配置
+ *
+ * @author stylefeng
+ * @Date 2017/5/23 22:31
+ */
+@Component
+@ConfigurationProperties(prefix = GunsProperties.PREFIX)
+public class GunsProperties {
+
+    public static final String PREFIX = "guns";
+
+    private Boolean kaptchaOpen = false;
+
+    private Boolean swaggerOpen = false;
+
+    private String fileUploadPath;
+
+    private Boolean haveCreatePath = false;
+
+    private Boolean springSessionOpen = false;
+
+    /**
+     * session 失效时间(默认为30分钟 单位:秒)
+     */
+    private Integer sessionInvalidateTime = 30 * 60;
+
+    /**
+     * session 验证失效时间(默认为15分钟 单位:秒)
+     */
+    private Integer sessionValidationInterval = 15 * 60;
+
+    public String getFileUploadPath() {
+        //如果没有写文件上传路径,保存到临时目录
+        if (isEmpty(fileUploadPath)) {
+            return getTempPath();
+        } else {
+            //判断有没有结尾符,没有得加上
+            if (!fileUploadPath.endsWith(File.separator)) {
+                fileUploadPath = fileUploadPath + File.separator;
+            }
+            //判断目录存不存在,不存在得加上
+            if (!haveCreatePath) {
+                File file = new File(fileUploadPath);
+                file.mkdirs();
+                haveCreatePath = true;
+            }
+            return fileUploadPath;
+        }
+    }
+
+    public void setFileUploadPath(String fileUploadPath) {
+        this.fileUploadPath = fileUploadPath;
+    }
+
+    public Boolean getKaptchaOpen() {
+        return kaptchaOpen;
+    }
+
+    public void setKaptchaOpen(Boolean kaptchaOpen) {
+        this.kaptchaOpen = kaptchaOpen;
+    }
+
+    public Boolean getSwaggerOpen() {
+        return swaggerOpen;
+    }
+
+    public void setSwaggerOpen(Boolean swaggerOpen) {
+        this.swaggerOpen = swaggerOpen;
+    }
+
+    public Boolean getSpringSessionOpen() {
+        return springSessionOpen;
+    }
+
+    public void setSpringSessionOpen(Boolean springSessionOpen) {
+        this.springSessionOpen = springSessionOpen;
+    }
+
+    public Integer getSessionInvalidateTime() {
+        return sessionInvalidateTime;
+    }
+
+    public void setSessionInvalidateTime(Integer sessionInvalidateTime) {
+        this.sessionInvalidateTime = sessionInvalidateTime;
+    }
+
+    public Integer getSessionValidationInterval() {
+        return sessionValidationInterval;
+    }
+
+    public void setSessionValidationInterval(Integer sessionValidationInterval) {
+        this.sessionValidationInterval = sessionValidationInterval;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/BeetlConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/BeetlConfig.java
new file mode 100644
index 0000000..748ed06
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/BeetlConfig.java
@@ -0,0 +1,46 @@
+package com.stylefeng.guns.config.web;
+
+import com.stylefeng.guns.config.properties.BeetlProperties;
+import com.stylefeng.guns.core.beetl.BeetlConfiguration;
+import org.beetl.core.resource.ClasspathResourceLoader;
+import org.beetl.ext.spring.BeetlSpringViewResolver;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * web 配置类
+ *
+ * @author fengshuonan
+ * @date 2016年11月12日 下午5:03:32
+ */
+@Configuration
+public class BeetlConfig {
+
+    @Autowired
+    BeetlProperties beetlProperties;
+
+    /**
+     * beetl的配置
+     */
+    @Bean(initMethod = "init")
+    public BeetlConfiguration beetlConfiguration() {
+        BeetlConfiguration beetlConfiguration = new BeetlConfiguration();
+        beetlConfiguration.setResourceLoader(new ClasspathResourceLoader(BeetlConfig.class.getClassLoader(), beetlProperties.getPrefix()));
+        beetlConfiguration.setConfigProperties(beetlProperties.getProperties());
+        return beetlConfiguration;
+    }
+
+    /**
+     * beetl的视图解析器
+     */
+    @Bean
+    public BeetlSpringViewResolver beetlViewResolver() {
+        BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
+        beetlSpringViewResolver.setConfig(beetlConfiguration());
+        beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
+        beetlSpringViewResolver.setOrder(0);
+        return beetlSpringViewResolver;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java
new file mode 100644
index 0000000..40b7d7b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/ShiroConfig.java
@@ -0,0 +1,216 @@
+package com.stylefeng.guns.config.web;
+
+import com.stylefeng.guns.config.properties.GunsProperties;
+import com.stylefeng.guns.core.intercept.GunsUserFilter;
+import com.stylefeng.guns.core.shiro.ShiroDbRealm;
+import org.apache.shiro.cache.CacheManager;
+import org.apache.shiro.cache.ehcache.EhCacheManager;
+import org.apache.shiro.codec.Base64;
+import org.apache.shiro.session.mgt.SessionManager;
+import org.apache.shiro.spring.LifecycleBeanPostProcessor;
+import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
+import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
+import org.apache.shiro.web.mgt.CookieRememberMeManager;
+import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.apache.shiro.web.servlet.Cookie;
+import org.apache.shiro.web.servlet.ShiroHttpSession;
+import org.apache.shiro.web.servlet.SimpleCookie;
+import org.apache.shiro.web.session.mgt.DefaultWebSessionManager;
+import org.apache.shiro.web.session.mgt.ServletContainerSessionManager;
+import org.springframework.beans.factory.config.MethodInvokingFactoryBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.servlet.Filter;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * shiro权限管理的配置
+ *
+ * @author fengshuonan
+ * @date 2016年11月14日 下午3:03:44
+ */
+@Configuration
+public class ShiroConfig {
+
+    /**
+     * 安全管理器
+     */
+    @Bean
+    public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager, CacheManager cacheShiroManager, SessionManager sessionManager) {
+        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
+        securityManager.setRealm(this.shiroDbRealm());
+        securityManager.setCacheManager(cacheShiroManager);
+        securityManager.setRememberMeManager(rememberMeManager);
+        securityManager.setSessionManager(sessionManager);
+        return securityManager;
+    }
+
+    /**
+     * spring session管理器(多机环境)
+     */
+    @Bean
+    @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "true")
+    public ServletContainerSessionManager servletContainerSessionManager() {
+        return new ServletContainerSessionManager();
+    }
+
+    /**
+     * session管理器(单机环境)
+     */
+    @Bean
+    @ConditionalOnProperty(prefix = "guns", name = "spring-session-open", havingValue = "false")
+    public DefaultWebSessionManager defaultWebSessionManager(CacheManager cacheShiroManager, GunsProperties gunsProperties) {
+        DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
+        sessionManager.setCacheManager(cacheShiroManager);
+        sessionManager.setSessionValidationInterval(gunsProperties.getSessionValidationInterval() * 1000);
+        sessionManager.setGlobalSessionTimeout(gunsProperties.getSessionInvalidateTime() * 1000);
+        sessionManager.setDeleteInvalidSessions(true);
+        sessionManager.setSessionValidationSchedulerEnabled(true);
+        Cookie cookie = new SimpleCookie(ShiroHttpSession.DEFAULT_SESSION_ID_NAME);
+        cookie.setName("shiroCookie");
+        cookie.setHttpOnly(true);
+        sessionManager.setSessionIdCookie(cookie);
+        return sessionManager;
+    }
+
+    /**
+     * 缓存管理器 使用Ehcache实现
+     */
+    @Bean
+    public CacheManager getCacheShiroManager(EhCacheManagerFactoryBean ehcache) {
+        EhCacheManager ehCacheManager = new EhCacheManager();
+        ehCacheManager.setCacheManager(ehcache.getObject());
+        return ehCacheManager;
+    }
+
+    /**
+     * 项目自定义的Realm
+     */
+    @Bean
+    public ShiroDbRealm shiroDbRealm() {
+        return new ShiroDbRealm();
+    }
+
+    /**
+     * rememberMe管理器, cipherKey生成见{@code Base64Test.java}
+     */
+    @Bean
+    public CookieRememberMeManager rememberMeManager(SimpleCookie rememberMeCookie) {
+        CookieRememberMeManager manager = new CookieRememberMeManager();
+        manager.setCipherKey(Base64.decode(""));
+        manager.setCookie(rememberMeCookie);
+        return manager;
+    }
+
+    /**
+     * 记住密码Cookie
+     */
+    @Bean
+    public SimpleCookie rememberMeCookie() {
+        SimpleCookie simpleCookie = new SimpleCookie("");
+        simpleCookie.setHttpOnly(true);
+        simpleCookie.setMaxAge(7 * 24 * 60 * 60);//7天
+        return simpleCookie;
+    }
+
+    /**
+     * Shiro的过滤器链
+     */
+    @Bean
+    public ShiroFilterFactoryBean shiroFilter(DefaultWebSecurityManager securityManager) {
+        ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
+        shiroFilter.setSecurityManager(securityManager);
+        /**
+         * 默认的登陆访问url
+         */
+        shiroFilter.setLoginUrl("/login");
+        /**
+         * 登陆成功后跳转的url
+         */
+        shiroFilter.setSuccessUrl("/");
+        /**
+         * 没有权限跳转的url
+         */
+        shiroFilter.setUnauthorizedUrl("/global/error");
+
+        /**
+         * 覆盖默认的user拦截器(默认拦截器解决不了ajax请求 session超时的问题,若有更好的办法请及时反馈作者)
+         */
+        HashMap<String, Filter> myFilters = new HashMap<>();
+        myFilters.put("user", new GunsUserFilter());
+        shiroFilter.setFilters(myFilters);
+
+        /**
+         * 配置shiro拦截器链
+         *
+         * anon  不需要认证
+         * authc 需要认证
+         * user  验证通过或RememberMe登录的都可以
+         *
+         * 当应用开启了rememberMe时,用户下次访问时可以是一个user,但不会是authc,因为authc是需要重新认证的
+         *
+         * 顺序从上到下,优先级依次降低
+         *
+         * api开头的接口,走rest api鉴权,不走shiro鉴权
+         *
+         */
+        Map<String, String> hashMap = new LinkedHashMap<>();
+        hashMap.put("/swagger-ui.html", "anon");
+        hashMap.put("/swagger-resources/**", "anon");
+        hashMap.put("/v2/**", "anon");
+        hashMap.put("/webjars/**", "anon");
+        hashMap.put("/swagger-resources/configuration/ui/**", "anon");
+        hashMap.put("/swagger-resources/configuration/security/**", "anon");
+
+        hashMap.put("/base/**", "anon");
+        hashMap.put("/api/**", "anon");//api不走shiro验证
+        hashMap.put("/static/**", "anon");
+        hashMap.put("/gunsApi/**", "anon");
+        hashMap.put("/login", "anon");
+        hashMap.put("/global/sessionError", "anon");
+        hashMap.put("/kaptcha", "anon");
+        hashMap.put("/**", "user");
+
+
+        shiroFilter.setFilterChainDefinitionMap(hashMap);
+        return shiroFilter;
+    }
+
+    /**
+     * 在方法中 注入 securityManager,进行代理控制
+     */
+    @Bean
+    public MethodInvokingFactoryBean methodInvokingFactoryBean(DefaultWebSecurityManager securityManager) {
+        MethodInvokingFactoryBean bean = new MethodInvokingFactoryBean();
+        bean.setStaticMethod("org.apache.shiro.SecurityUtils.setSecurityManager");
+        bean.setArguments(new Object[]{securityManager});
+        return bean;
+    }
+
+    /**
+     * Shiro生命周期处理器:
+     * 用于在实现了Initializable接口的Shiro bean初始化时调用Initializable接口回调(例如:UserRealm)
+     * 在实现了Destroyable接口的Shiro bean销毁时调用 Destroyable接口回调(例如:DefaultSecurityManager)
+     */
+    @Bean
+    public LifecycleBeanPostProcessor lifecycleBeanPostProcessor() {
+        return new LifecycleBeanPostProcessor();
+    }
+
+    /**
+     * 启用shrio授权注解拦截方式,AOP式方法级权限检查
+     */
+    @Bean
+    public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(DefaultWebSecurityManager securityManager) {
+        AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor =
+                new AuthorizationAttributeSourceAdvisor();
+        authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);
+        return authorizationAttributeSourceAdvisor;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
new file mode 100644
index 0000000..20e6b8e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/config/web/WebConfig.java
@@ -0,0 +1,174 @@
+package com.stylefeng.guns.config.web;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.alibaba.druid.support.http.StatViewServlet;
+import com.alibaba.druid.support.http.WebStatFilter;
+import com.alibaba.druid.support.spring.stat.BeanTypeAutoProxyCreator;
+import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import com.stylefeng.guns.config.properties.GunsProperties;
+import com.stylefeng.guns.core.intercept.RestApiInteceptor;
+import com.stylefeng.guns.core.listener.ConfigListener;
+import com.stylefeng.guns.core.xss.XssFilter;
+import org.springframework.aop.Advisor;
+import org.springframework.aop.support.DefaultPointcutAdvisor;
+import org.springframework.aop.support.JdkRegexpMethodPointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.context.request.RequestContextListener;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+import java.util.Arrays;
+import java.util.Properties;
+
+/**
+ * web 配置类
+ *
+ * @author fengshuonan
+ * @date 2016年11月12日 下午5:03:32
+ */
+@Configuration
+public class WebConfig extends WebMvcConfigurerAdapter {
+
+    @Autowired
+    private GunsProperties gunsProperties;
+
+    /**
+     * 增加swagger的支持
+     */
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        if (gunsProperties.getSwaggerOpen()) {
+            registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+        }
+    }
+
+    /**
+     * 增加对rest api鉴权的spring mvc拦截器
+     */
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(new RestApiInteceptor()).addPathPatterns("/api/**");
+    }
+
+    /**
+     * druidServlet注册
+     */
+    @Bean
+    public ServletRegistrationBean druidServletRegistration() {
+        ServletRegistrationBean registration = new ServletRegistrationBean(new StatViewServlet());
+        registration.addUrlMappings("/druid/*");
+        return registration;
+    }
+
+    /**
+     * druid监控 配置URI拦截策略
+     */
+    @Bean
+    public FilterRegistrationBean druidStatFilter() {
+        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
+        //添加过滤规则.
+        filterRegistrationBean.addUrlPatterns("/*");
+        //添加不需要忽略的格式信息.
+        filterRegistrationBean.addInitParameter(
+                "exclusions", "/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid,/druid/*");
+        //用于session监控页面的用户名显示 需要登录后主动将username注入到session里
+        filterRegistrationBean.addInitParameter("principalSessionName", "username");
+        return filterRegistrationBean;
+    }
+
+    /**
+     * druid数据库连接池监控
+     */
+    @Bean
+    public DruidStatInterceptor druidStatInterceptor() {
+        return new DruidStatInterceptor();
+    }
+
+    @Bean
+    public JdkRegexpMethodPointcut druidStatPointcut() {
+        JdkRegexpMethodPointcut druidStatPointcut = new JdkRegexpMethodPointcut();
+        String patterns = "com.stylefeng.guns.modular.*.service.*";
+        //可以set多个
+        druidStatPointcut.setPatterns(patterns);
+        return druidStatPointcut;
+    }
+
+    /**
+     * druid数据库连接池监控
+     */
+    @Bean
+    public BeanTypeAutoProxyCreator beanTypeAutoProxyCreator() {
+        BeanTypeAutoProxyCreator beanTypeAutoProxyCreator = new BeanTypeAutoProxyCreator();
+        beanTypeAutoProxyCreator.setTargetBeanType(DruidDataSource.class);
+        beanTypeAutoProxyCreator.setInterceptorNames("druidStatInterceptor");
+        return beanTypeAutoProxyCreator;
+    }
+
+    /**
+     * druid 为druidStatPointcut添加拦截
+     *
+     * @return
+     */
+    @Bean
+    public Advisor druidStatAdvisor() {
+        return new DefaultPointcutAdvisor(druidStatPointcut(), druidStatInterceptor());
+    }
+
+    /**
+     * xssFilter注册
+     */
+    @Bean
+    public FilterRegistrationBean xssFilterRegistration() {
+        XssFilter xssFilter = new XssFilter();
+        xssFilter.setUrlExclusion(Arrays.asList("/notice/update", "/notice/add"));
+        FilterRegistrationBean registration = new FilterRegistrationBean(xssFilter);
+        registration.addUrlPatterns("/*");
+        return registration;
+    }
+
+    /**
+     * RequestContextListener注册
+     */
+    @Bean
+    public ServletListenerRegistrationBean<RequestContextListener> requestContextListenerRegistration() {
+        return new ServletListenerRegistrationBean<>(new RequestContextListener());
+    }
+
+    /**
+     * ConfigListener注册
+     */
+    @Bean
+    public ServletListenerRegistrationBean<ConfigListener> configListenerRegistration() {
+        return new ServletListenerRegistrationBean<>(new ConfigListener());
+    }
+
+    /**
+     * 验证码生成相关
+     */
+    @Bean
+    public DefaultKaptcha kaptcha() {
+        Properties properties = new Properties();
+        properties.put("kaptcha.border", "no");
+        properties.put("kaptcha.border.color", "105,179,90");
+        properties.put("kaptcha.textproducer.font.color", "blue");
+        properties.put("kaptcha.image.width", "125");
+        properties.put("kaptcha.image.height", "45");
+        properties.put("kaptcha.textproducer.font.size", "45");
+        properties.put("kaptcha.session.key", "code");
+        properties.put("kaptcha.textproducer.char.length", "4");
+        properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
+        Config config = new Config(properties);
+        DefaultKaptcha defaultKaptcha = new DefaultKaptcha();
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/GlobalExceptionHandler.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/GlobalExceptionHandler.java
new file mode 100644
index 0000000..5f4f745
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/GlobalExceptionHandler.java
@@ -0,0 +1,123 @@
+package com.stylefeng.guns.core.aop;
+
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.common.exception.InvalidKaptchaException;
+import com.stylefeng.guns.core.base.tips.ErrorTip;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogManager;
+import com.stylefeng.guns.core.log.factory.LogTaskFactory;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import org.apache.shiro.authc.AuthenticationException;
+import org.apache.shiro.authc.CredentialsException;
+import org.apache.shiro.authc.DisabledAccountException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.annotation.Order;
+import org.springframework.http.HttpStatus;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+
+import java.lang.reflect.UndeclaredThrowableException;
+
+import static com.stylefeng.guns.core.support.HttpKit.getIp;
+import static com.stylefeng.guns.core.support.HttpKit.getRequest;
+
+/**
+ * 全局的的异常拦截器(拦截所有的控制器)(带有@RequestMapping注解的方法上都会拦截)
+ *
+ * @author fengshuonan
+ * @date 2016年11月12日 下午3:19:56
+ */
+@ControllerAdvice
+@Order(-1)
+public class GlobalExceptionHandler {
+
+    private Logger log = LoggerFactory.getLogger(this.getClass());
+
+    /**
+     * 拦截业务异常
+     */
+    @ExceptionHandler(GunsException.class)
+    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+    @ResponseBody
+    public ErrorTip notFount(GunsException e) {
+        LogManager.me().executeLog(LogTaskFactory.exceptionLog(ShiroKit.getUser().getId(), e));
+        getRequest().setAttribute("tip", e.getMessage());
+        log.error("业务异常:", e);
+        return new ErrorTip(e.getCode(), e.getMessage());
+    }
+
+    /**
+     * 用户未登录异常
+     */
+    @ExceptionHandler(AuthenticationException.class)
+    @ResponseStatus(HttpStatus.UNAUTHORIZED)
+    public String unAuth(AuthenticationException e) {
+        log.error("用户未登陆:", e);
+        return "/login.html";
+    }
+
+    /**
+     * 账号被冻结异常
+     */
+    @ExceptionHandler(DisabledAccountException.class)
+    @ResponseStatus(HttpStatus.UNAUTHORIZED)
+    public String accountLocked(DisabledAccountException e, Model model) {
+        String username = getRequest().getParameter("username");
+        LogManager.me().executeLog(LogTaskFactory.loginLog(username, "账号被冻结", getIp()));
+        model.addAttribute("tips", "账号被冻结");
+        return "/login.html";
+    }
+
+    /**
+     * 账号密码错误异常
+     */
+    @ExceptionHandler(CredentialsException.class)
+    @ResponseStatus(HttpStatus.UNAUTHORIZED)
+    public String credentials(CredentialsException e, Model model) {
+        String username = getRequest().getParameter("username");
+        LogManager.me().executeLog(LogTaskFactory.loginLog(username, "账号密码错误", getIp()));
+        model.addAttribute("tips", "账号密码错误");
+        return "/login.html";
+    }
+
+    /**
+     * 验证码错误异常
+     */
+    @ExceptionHandler(InvalidKaptchaException.class)
+    @ResponseStatus(HttpStatus.BAD_REQUEST)
+    public String credentials(InvalidKaptchaException e, Model model) {
+        String username = getRequest().getParameter("username");
+        LogManager.me().executeLog(LogTaskFactory.loginLog(username, "验证码错误", getIp()));
+        model.addAttribute("tips", "验证码错误");
+        return "/login.html";
+    }
+
+    /**
+     * 无权访问该资源异常
+     */
+    @ExceptionHandler(UndeclaredThrowableException.class)
+    @ResponseStatus(HttpStatus.UNAUTHORIZED)
+    @ResponseBody
+    public ErrorTip credentials(UndeclaredThrowableException e) {
+        getRequest().setAttribute("tip", "权限异常");
+        log.error("权限异常!", e);
+        return new ErrorTip(BizExceptionEnum.NO_PERMITION.getCode(), BizExceptionEnum.NO_PERMITION.getMessage());
+    }
+
+    /**
+     * 拦截未知的运行时异常
+     */
+    @ExceptionHandler(RuntimeException.class)
+    @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+    @ResponseBody
+    public ErrorTip notFount(RuntimeException e) {
+        LogManager.me().executeLog(LogTaskFactory.exceptionLog(ShiroKit.getUser().getId(), e));
+        getRequest().setAttribute("tip", "服务器未知运行时异常");
+        log.error("运行时异常:", e);
+        return new ErrorTip(BizExceptionEnum.SERVER_ERROR.getCode(), BizExceptionEnum.SERVER_ERROR.getMessage());
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/LogAop.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/LogAop.java
new file mode 100644
index 0000000..d5123f4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/LogAop.java
@@ -0,0 +1,105 @@
+package com.stylefeng.guns.core.aop;
+
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+import com.stylefeng.guns.core.log.LogManager;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.log.factory.LogTaskFactory;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.support.HttpKit;
+import com.stylefeng.guns.core.util.Contrast;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.lang.reflect.Method;
+import java.util.Map;
+
+/**
+ * 日志记录
+ *
+ * @author fengshuonan
+ * @date 2016年12月6日 下午8:48:30
+ */
+@Aspect
+@Component
+public class LogAop {
+
+    private Logger log = LoggerFactory.getLogger(this.getClass());
+
+    @Pointcut(value = "@annotation(com.stylefeng.guns.core.common.annotion.BussinessLog)")
+    public void cutService() {
+    }
+
+    @Around("cutService()")
+    public Object recordSysLog(ProceedingJoinPoint point) throws Throwable {
+
+        //先执行业务
+        Object result = point.proceed();
+
+        try {
+            handle(point);
+        } catch (Exception e) {
+            log.error("日志记录出错!", e);
+        }
+
+        return result;
+    }
+
+    private void handle(ProceedingJoinPoint point) throws Exception {
+
+        //获取拦截的方法名
+        Signature sig = point.getSignature();
+        MethodSignature msig = null;
+        if (!(sig instanceof MethodSignature)) {
+            throw new IllegalArgumentException("该注解只能用于方法");
+        }
+        msig = (MethodSignature) sig;
+        Object target = point.getTarget();
+        Method currentMethod = target.getClass().getMethod(msig.getName(), msig.getParameterTypes());
+        String methodName = currentMethod.getName();
+
+        //如果当前用户未登录,不做日志
+        ShiroUser user = ShiroKit.getUser();
+        if (null == user) {
+            return;
+        }
+
+        //获取拦截方法的参数
+        String className = point.getTarget().getClass().getName();
+        Object[] params = point.getArgs();
+
+        //获取操作名称
+        BussinessLog annotation = currentMethod.getAnnotation(BussinessLog.class);
+        String bussinessName = annotation.value();
+        String key = annotation.key();
+        Class dictClass = annotation.dict();
+
+        StringBuilder sb = new StringBuilder();
+        for (Object param : params) {
+            sb.append(param);
+            sb.append(" & ");
+        }
+
+        //如果涉及到修改,比对变化
+        String msg;
+        if (bussinessName.indexOf("修改") != -1 || bussinessName.indexOf("编辑") != -1) {
+            Object obj1 = LogObjectHolder.me().get();
+            Map<String, String> obj2 = HttpKit.getRequestParameters();
+            msg = Contrast.contrastObj(dictClass, key, obj1, obj2);
+        } else {
+            Map<String, String> parameters = HttpKit.getRequestParameters();
+            AbstractDictMap dictMap = (AbstractDictMap) dictClass.newInstance();
+            msg = Contrast.parseMutiKey(dictMap,key,parameters);
+        }
+
+        LogManager.me().executeLog(LogTaskFactory.bussinessLog(user.getId(), bussinessName, className, methodName, msg));
+    }
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/PermissionAop.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/PermissionAop.java
new file mode 100644
index 0000000..13e9d6c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/aop/PermissionAop.java
@@ -0,0 +1,70 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.aop;
+
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.shiro.check.PermissionCheckManager;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import javax.naming.NoPermissionException;
+import java.lang.reflect.Method;
+
+/**
+ * AOP 权限自定义检查
+ */
+@Aspect
+@Component
+@Order(200)
+public class PermissionAop {
+
+    @Pointcut(value = "@annotation(com.stylefeng.guns.core.common.annotion.Permission)")
+    private void cutPermission() {
+
+    }
+
+    @Around("cutPermission()")
+    public Object doPermission(ProceedingJoinPoint point) throws Throwable {
+        MethodSignature ms = (MethodSignature) point.getSignature();
+        Method method = ms.getMethod();
+        Permission permission = method.getAnnotation(Permission.class);
+        Object[] permissions = permission.value();
+        if (permissions == null || permissions.length == 0) {
+            //检查全体角色
+            boolean result = PermissionCheckManager.checkAll();
+            if (result) {
+                return point.proceed();
+            } else {
+                throw new NoPermissionException();
+            }
+        } else {
+            //检查指定角色
+            boolean result = PermissionCheckManager.check(permissions);
+            if (result) {
+                return point.proceed();
+            } else {
+                throw new NoPermissionException();
+            }
+        }
+
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/BeetlConfiguration.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/BeetlConfiguration.java
new file mode 100644
index 0000000..fa53e22
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/BeetlConfiguration.java
@@ -0,0 +1,71 @@
+package com.stylefeng.guns.core.beetl;
+
+import com.stylefeng.guns.core.tag.DictSelectorTag;
+import com.stylefeng.guns.core.util.KaptchaUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.beetl.core.Context;
+import org.beetl.core.Function;
+import org.beetl.core.Tag;
+import org.beetl.core.TagFactory;
+import org.beetl.ext.spring.BeetlGroupUtilConfiguration;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.core.env.Environment;
+
+import java.io.UnsupportedEncodingException;
+
+/**
+ * beetl拓展配置,绑定一些工具类,方便在模板中直接调用
+ *
+ * @author stylefeng
+ * @Date 2018/2/22 21:03
+ */
+public class BeetlConfiguration extends BeetlGroupUtilConfiguration {
+
+    @Autowired
+    Environment env;
+
+    @Autowired
+    ApplicationContext applicationContext;
+
+    @Autowired
+    DictSelectorTag dictSelectorTag;
+
+
+
+    @Override
+    public void initOther() {
+        groupTemplate.registerFunctionPackage("shiro", new ShiroExt());
+        groupTemplate.registerFunctionPackage("tool", new ToolUtil());
+        groupTemplate.registerFunctionPackage("kaptcha", new KaptchaUtil());
+        groupTemplate.registerTagFactory("dictSelector", new TagFactory() {
+            @Override
+            public Tag createTag() {
+                return dictSelectorTag;
+            }
+        });
+
+        groupTemplate.registerFunction("env", new Function() {
+            @Override
+            public String call(Object[] paras, Context ctx) {
+                String key = (String)paras[0];
+                String value =  env.getProperty(key);
+                if(value!=null) {
+                    return getStr(value);
+                }
+                if(paras.length==2) {
+                    return (String)paras[1];
+                }
+                return null;
+            }
+
+            protected String getStr(String str) {
+                try {
+                    return new String(str.getBytes("iso8859-1"),"UTF-8");
+                } catch (UnsupportedEncodingException e) {
+                    throw new RuntimeException(e);
+                }
+            }
+        });
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/ShiroExt.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/ShiroExt.java
new file mode 100644
index 0000000..55e7234
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/beetl/ShiroExt.java
@@ -0,0 +1,186 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.beetl;
+
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.subject.Subject;
+import org.beetl.core.GroupTemplate;
+
+import com.stylefeng.guns.core.shiro.ShiroUser;
+
+public class ShiroExt {
+    private static final String NAMES_DELIMETER = ",";
+
+    /**
+     * 获取当前 Subject
+     *
+     * @return Subject
+     */
+    protected static Subject getSubject() {
+        return SecurityUtils.getSubject();
+    }
+
+    /**
+     * 获取封装的 ShiroUser
+     *
+     * @return ShiroUser
+     */
+    public ShiroUser getUser() {
+        if (isGuest()) {
+            return null;
+        } else {
+            return (ShiroUser) getSubject().getPrincipals().getPrimaryPrincipal();
+        }
+    }
+
+    /**
+     * 验证当前用户是否属于该角色?,使用时与lacksRole 搭配使用
+     *
+     * @param roleName 角色名
+     * @return 属于该角色:true,否则false
+     */
+    public boolean hasRole(String roleName) {
+        return getSubject() != null && roleName != null
+                && roleName.length() > 0 && getSubject().hasRole(roleName);
+    }
+
+    /**
+     * 与hasRole标签逻辑相反,当用户不属于该角色时验证通过。
+     *
+     * @param roleName 角色名
+     * @return 不属于该角色:true,否则false
+     */
+    public boolean lacksRole(String roleName) {
+        return !hasRole(roleName);
+    }
+
+    /**
+     * 验证当前用户是否属于以下任意一个角色。
+     *
+     * @param roleNames 角色列表
+     * @return 属于:true,否则false
+     */
+    public boolean hasAnyRoles(String roleNames) {
+        boolean hasAnyRole = false;
+        Subject subject = getSubject();
+        if (subject != null && roleNames != null && roleNames.length() > 0) {
+            for (String role : roleNames.split(NAMES_DELIMETER)) {
+                if (subject.hasRole(role.trim())) {
+                    hasAnyRole = true;
+                    break;
+                }
+            }
+        }
+        return hasAnyRole;
+    }
+
+    /**
+     * 验证当前用户是否属于以下所有角色。
+     *
+     * @param roleNames 角色列表
+     * @return 属于:true,否则false
+     */
+    public boolean hasAllRoles(String roleNames) {
+        boolean hasAllRole = true;
+        Subject subject = getSubject();
+        if (subject != null && roleNames != null && roleNames.length() > 0) {
+            for (String role : roleNames.split(NAMES_DELIMETER)) {
+                if (!subject.hasRole(role.trim())) {
+                    hasAllRole = false;
+                    break;
+                }
+            }
+        }
+        return hasAllRole;
+    }
+
+    /**
+     * 验证当前用户是否拥有指定权限,使用时与lacksPermission 搭配使用
+     *
+     * @param permission 权限名
+     * @return 拥有权限:true,否则false
+     */
+    public boolean hasPermission(String permission) {
+        return getSubject() != null && permission != null
+                && permission.length() > 0
+                && getSubject().isPermitted(permission);
+    }
+
+    /**
+     * 与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。
+     *
+     * @param permission 权限名
+     * @return 拥有权限:true,否则false
+     */
+    public boolean lacksPermission(String permission) {
+        return !hasPermission(permission);
+    }
+
+    /**
+     * 已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。与notAuthenticated搭配使用
+     *
+     * @return 通过身份验证:true,否则false
+     */
+    public boolean authenticated() {
+        return getSubject() != null && getSubject().isAuthenticated();
+    }
+
+    /**
+     * 未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。。
+     *
+     * @return 没有通过身份验证:true,否则false
+     */
+    public boolean notAuthenticated() {
+        return !authenticated();
+    }
+
+    /**
+     * 认证通过或已记住的用户。与guset搭配使用。
+     *
+     * @return 用户:true,否则 false
+     */
+    public boolean isUser() {
+        return getSubject() != null && getSubject().getPrincipal() != null;
+    }
+
+    /**
+     * 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。用user搭配使用
+     *
+     * @return 访客:true,否则false
+     */
+    public boolean isGuest() {
+        return !isUser();
+    }
+
+    /**
+     * 输出当前用户信息,通常为登录帐号信息。
+     *
+     * @return 当前用户信息
+     */
+    public String principal() {
+        if (getSubject() != null) {
+            Object principal = getSubject().getPrincipal();
+            return principal.toString();
+        }
+        return "";
+    }
+
+    public static void main(String[] args) {
+        GroupTemplate gt = new GroupTemplate();
+        gt.registerFunctionPackage("shiro", new ShiroExt());
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/BussinessLog.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/BussinessLog.java
new file mode 100644
index 0000000..369be8b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/BussinessLog.java
@@ -0,0 +1,33 @@
+package com.stylefeng.guns.core.common.annotion;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+import com.stylefeng.guns.core.common.constant.dictmap.base.SystemDict;
+
+import java.lang.annotation.*;
+
+/**
+ * 标记需要做业务日志的方法
+ *
+ * @author fengshuonan
+ * @date 2017-03-31 12:46
+ */
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD})
+public @interface BussinessLog {
+
+    /**
+     * 业务的名称,例如:"修改菜单"
+     */
+    String value() default "";
+
+    /**
+     * 被修改的实体的唯一标识,例如:菜单实体的唯一标识为"id"
+     */
+    String key() default "id";
+
+    /**
+     * 字典(用于查找key的中文名称和字段的中文名称)
+     */
+    Class<? extends AbstractDictMap> dict() default SystemDict.class;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/Permission.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/Permission.java
new file mode 100644
index 0000000..bfb1500
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/annotion/Permission.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.core.common.annotion;
+
+import java.lang.annotation.*;
+
+/**
+ * 权限注解 用于检查权限 规定访问权限
+ *
+ * @example @Permission({role1,role2})
+ * @example @Permission
+ */
+@Inherited
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD})
+public @interface Permission {
+
+    /**
+     * <p>角色英文名称</p>
+     * <p>使用注解时加上这个值表示限制只有某个角色的才可以访问对应的资源</p>
+     * <p>常用在某些资源限制只有超级管理员角色才可访问</p>
+     */
+    String[] value() default {};
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/Const.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/Const.java
new file mode 100644
index 0000000..1b2b5d8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/Const.java
@@ -0,0 +1,36 @@
+package com.stylefeng.guns.core.common.constant;
+
+/**
+ * 系统常量
+ *
+ * @author fengshuonan
+ * @date 2017年2月12日 下午9:42:53
+ */
+public interface Const {
+
+    /**
+     * 系统默认的管理员密码
+     */
+    String DEFAULT_PWD = "111111";
+
+    /**
+     * 管理员角色的名字
+     */
+    String ADMIN_NAME = "administrator";
+
+    /**
+     * 管理员id
+     */
+    Integer ADMIN_ID = 1;
+
+    /**
+     * 超级管理员角色id
+     */
+    Integer ADMIN_ROLE_ID = 1;
+
+    /**
+     * 接口文档的菜单名
+     */
+    String API_MENU_NAME = "接口文档";
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/DatasourceEnum.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/DatasourceEnum.java
new file mode 100644
index 0000000..b2b534f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/DatasourceEnum.java
@@ -0,0 +1,15 @@
+package com.stylefeng.guns.core.common.constant;
+
+/**
+ * 
+ * 多数据源的枚举
+ *
+ * @author fengshuonan
+ * @date 2017年3月5日 上午10:15:02
+ */
+public interface DatasourceEnum {
+
+	String DATA_SOURCE_GUNS = "dataSourceGuns";			//guns数据源
+	
+	String DATA_SOURCE_BIZ = "dataSourceBiz";			//其他业务的数据源
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/JwtConstants.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/JwtConstants.java
new file mode 100644
index 0000000..75472c8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/JwtConstants.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.core.common.constant;
+
+/**
+ * jwt相关配置
+ *
+ * @author fengshuonan
+ * @date 2017-08-23 9:23
+ */
+public interface JwtConstants {
+
+    String AUTH_HEADER = "Authorization";
+
+    String SECRET = "defaultSecret";
+
+    Long EXPIRATION = 604800L;
+
+    String AUTH_PATH = "/gunsApi/auth";
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/Cache.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/Cache.java
new file mode 100644
index 0000000..a24800f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/Cache.java
@@ -0,0 +1,15 @@
+package com.stylefeng.guns.core.common.constant.cache;
+
+/**
+ * 所有缓存名称的集合
+ *
+ * @author fengshuonan
+ * @date 2017-04-24 21:56
+ */
+public interface Cache {
+
+    /**
+     * 常量缓存
+     */
+    String CONSTANT = "CONSTANT";
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/CacheKey.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/CacheKey.java
new file mode 100644
index 0000000..a7a93cd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/cache/CacheKey.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.core.common.constant.cache;
+
+/**
+ * 缓存标识前缀集合,常用在ConstantFactory类中
+ *
+ * @author fengshuonan
+ * @date 2017-04-25 9:37
+ */
+public interface CacheKey {
+
+    /**
+     * 角色名称(多个)
+     */
+    String ROLES_NAME = "roles_name_";
+
+    /**
+     * 角色名称(单个)
+     */
+    String SINGLE_ROLE_NAME = "single_role_name_";
+
+    /**
+     * 角色英文名称
+     */
+    String SINGLE_ROLE_TIP = "single_role_tip_";
+
+    /**
+     * 部门名称
+     */
+    String DEPT_NAME = "dept_name_";
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeleteDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeleteDict.java
new file mode 100644
index 0000000..0436003
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeleteDict.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 用于删除业务的字典
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class DeleteDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("roleId","角色名称");
+        put("deptId", "部门名称");
+        put("menuId", "菜单名称");
+        put("dictId", "字典名称");
+        put("noticeId", "标题");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+        putFieldWrapperMethodName("roleId","getCacheObject");
+        putFieldWrapperMethodName("deptId","getCacheObject");
+        putFieldWrapperMethodName("menuId","getCacheObject");
+        putFieldWrapperMethodName("dictId","getCacheObject");
+        putFieldWrapperMethodName("noticeId","getCacheObject");
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeptDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeptDict.java
new file mode 100644
index 0000000..eb44e1c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DeptDict.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 部门的映射
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class DeptDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("deptId", "部门名称");
+        put("num", "部门排序");
+        put("pid", "上级名称");
+        put("simplename", "部门简称");
+        put("fullname", "部门全称");
+        put("tips", "备注");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+        putFieldWrapperMethodName("deptId", "getDeptName");
+        putFieldWrapperMethodName("pid", "getDeptName");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DictMap.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DictMap.java
new file mode 100644
index 0000000..a04927f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/DictMap.java
@@ -0,0 +1,24 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 字典map
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:43
+ */
+public class DictMap extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("dictId","字典名称");
+        put("dictName","字典名称");
+        put("dictValues","字典内容");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/LogDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/LogDict.java
new file mode 100644
index 0000000..f7b7bf9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/LogDict.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 日志的字典
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class LogDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("tips","备注");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/MenuDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/MenuDict.java
new file mode 100644
index 0000000..4b60184
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/MenuDict.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 菜单的字典
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class MenuDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("menuId","菜单id");
+        put("id","菜单id");
+        put("code","菜单编号");
+        put("pcode","菜单父编号");
+        put("name","菜单名称");
+        put("icon","菜单图标");
+        put("url","url地址");
+        put("num","菜单排序号");
+        put("levels","菜单层级");
+        put("tips","备注");
+        put("status","菜单状态");
+        put("isopen","是否打开");
+        put("","");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/NoticeMap.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/NoticeMap.java
new file mode 100644
index 0000000..a0a13c9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/NoticeMap.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 通知的映射
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class NoticeMap extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("title", "标题");
+        put("content", "内容");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/RoleDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/RoleDict.java
new file mode 100644
index 0000000..08389af
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/RoleDict.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 角色的字典
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class RoleDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("roleId","角色名称");
+        put("num","角色排序");
+        put("pid","角色的父级");
+        put("name","角色名称");
+        put("deptid","部门名称");
+        put("tips","备注");
+        put("ids","资源名称");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+        putFieldWrapperMethodName("pid","getSingleRoleName");
+        putFieldWrapperMethodName("deptid","getDeptName");
+        putFieldWrapperMethodName("roleId","getSingleRoleName");
+        putFieldWrapperMethodName("ids","getMenuNames");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/UserDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/UserDict.java
new file mode 100644
index 0000000..cc34eb5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/UserDict.java
@@ -0,0 +1,36 @@
+package com.stylefeng.guns.core.common.constant.dictmap;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+
+/**
+ * 用户的字典
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:01
+ */
+public class UserDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+        put("userId","账号");
+        put("avatar","头像");
+        put("account","账号");
+        put("name","名字");
+        put("birthday","生日");
+        put("sex","性别");
+        put("email","电子邮件");
+        put("phone","电话");
+        put("roleid","角色名称");
+        put("deptid","部门名称");
+        put("roleIds","角色名称集合");
+    }
+
+    @Override
+    protected void initBeWrapped() {
+        putFieldWrapperMethodName("sex","getSexName");
+        putFieldWrapperMethodName("deptid","getDeptName");
+        putFieldWrapperMethodName("roleid","getSingleRoleName");
+        putFieldWrapperMethodName("userId","getUserAccountById");
+        putFieldWrapperMethodName("roleIds","getRoleName");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/AbstractDictMap.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/AbstractDictMap.java
new file mode 100644
index 0000000..9f091a3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/AbstractDictMap.java
@@ -0,0 +1,53 @@
+package com.stylefeng.guns.core.common.constant.dictmap.base;
+
+import java.util.HashMap;
+
+/**
+ * 字典映射抽象类
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 14:58
+ */
+public abstract class AbstractDictMap {
+
+    protected HashMap<String, String> dictory = new HashMap<>();
+    protected HashMap<String, String> fieldWarpperDictory = new HashMap<>();
+
+    public AbstractDictMap(){
+        put("id","主键id");
+        init();
+        initBeWrapped();
+    }
+
+    /**
+     * 初始化字段英文名称和中文名称对应的字典
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 19:39
+     */
+    public abstract void init();
+
+    /**
+     * 初始化需要被包装的字段(例如:性别为1:男,2:女,需要被包装为汉字)
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 19:35
+     */
+    protected abstract void initBeWrapped();
+
+    public String get(String key) {
+        return this.dictory.get(key);
+    }
+
+    public void put(String key, String value) {
+        this.dictory.put(key, value);
+    }
+
+    public String getFieldWarpperMethodName(String key){
+        return this.fieldWarpperDictory.get(key);
+    }
+
+    public void putFieldWrapperMethodName(String key,String methodName){
+        this.fieldWarpperDictory.put(key,methodName);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/SystemDict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/SystemDict.java
new file mode 100644
index 0000000..110633e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/base/SystemDict.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.core.common.constant.dictmap.base;
+
+/**
+ * 系统相关的字典
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:48
+ */
+public class SystemDict extends AbstractDictMap {
+
+    @Override
+    public void init() {
+
+    }
+
+    @Override
+    protected void initBeWrapped() {
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/factory/DictFieldWarpperFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/factory/DictFieldWarpperFactory.java
new file mode 100644
index 0000000..9d86da3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/dictmap/factory/DictFieldWarpperFactory.java
@@ -0,0 +1,33 @@
+package com.stylefeng.guns.core.common.constant.dictmap.factory;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.constant.factory.IConstantFactory;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+
+import java.lang.reflect.Method;
+
+/**
+ * 字典字段的包装器(从ConstantFactory中获取包装值)
+ *
+ * @author fengshuonan
+ * @date 2017-05-06 15:12
+ */
+public class DictFieldWarpperFactory {
+
+    public static Object createFieldWarpper(Object parameter, String methodName) {
+        IConstantFactory constantFactory = ConstantFactory.me();
+        try {
+            Method method = IConstantFactory.class.getMethod(methodName, parameter.getClass());
+            return method.invoke(constantFactory, parameter);
+        } catch (Exception e) {
+            try {
+                Method method = IConstantFactory.class.getMethod(methodName, Integer.class);
+                return method.invoke(constantFactory, Integer.parseInt(parameter.toString()));
+            } catch (Exception e1) {
+                throw new GunsException(BizExceptionEnum.ERROR_WRAPPER_FIELD);
+            }
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/ConstantFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/ConstantFactory.java
new file mode 100644
index 0000000..ccfc26b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/ConstantFactory.java
@@ -0,0 +1,333 @@
+package com.stylefeng.guns.core.common.constant.factory;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.stylefeng.guns.core.common.constant.cache.Cache;
+import com.stylefeng.guns.core.common.constant.cache.CacheKey;
+import com.stylefeng.guns.core.common.constant.state.ManagerStatus;
+import com.stylefeng.guns.core.common.constant.state.MenuStatus;
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.support.StrKit;
+import com.stylefeng.guns.core.util.Convert;
+import com.stylefeng.guns.core.util.SpringContextHolder;
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 常量的生产工厂
+ *
+ * @author fengshuonan
+ * @date 2017年2月13日 下午10:55:21
+ */
+@Component
+@DependsOn("springContextHolder")
+public class ConstantFactory implements IConstantFactory {
+
+    private RoleMapper roleMapper = SpringContextHolder.getBean(RoleMapper.class);
+    private DeptMapper deptMapper = SpringContextHolder.getBean(DeptMapper.class);
+    private DictMapper dictMapper = SpringContextHolder.getBean(DictMapper.class);
+    private UserMapper userMapper = SpringContextHolder.getBean(UserMapper.class);
+    private MenuMapper menuMapper = SpringContextHolder.getBean(MenuMapper.class);
+    private NoticeMapper noticeMapper = SpringContextHolder.getBean(NoticeMapper.class);
+
+    public static IConstantFactory me() {
+        return SpringContextHolder.getBean("constantFactory");
+    }
+
+    /**
+     * 根据用户id获取用户名称
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 23:41
+     */
+    @Override
+    public String getUserNameById(Integer userId) {
+        User user = userMapper.selectById(userId);
+        if (user != null) {
+            return user.getName();
+        } else {
+            return "--";
+        }
+    }
+
+    /**
+     * 根据用户id获取用户账号
+     *
+     * @author stylefeng
+     * @date 2017年5月16日21:55:371
+     */
+    @Override
+    public String getUserAccountById(Integer userId) {
+        User user = userMapper.selectById(userId);
+        if (user != null) {
+            return user.getAccount();
+        } else {
+            return "--";
+        }
+    }
+
+    /**
+     * 通过角色ids获取角色名称
+     */
+    @Override
+    @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.ROLES_NAME + "'+#roleIds")
+    public String getRoleName(String roleIds) {
+        Integer[] roles = Convert.toIntArray(roleIds);
+        StringBuilder sb = new StringBuilder();
+        for (int role : roles) {
+            Role roleObj = roleMapper.selectById(role);
+            if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) {
+                sb.append(roleObj.getName()).append(",");
+            }
+        }
+        return StrKit.removeSuffix(sb.toString(), ",");
+    }
+
+    /**
+     * 通过角色id获取角色名称
+     */
+    @Override
+    @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_NAME + "'+#roleId")
+    public String getSingleRoleName(Integer roleId) {
+        if (0 == roleId) {
+            return "--";
+        }
+        Role roleObj = roleMapper.selectById(roleId);
+        if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) {
+            return roleObj.getName();
+        }
+        return "";
+    }
+
+    /**
+     * 通过角色id获取角色英文名称
+     */
+    @Override
+    @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.SINGLE_ROLE_TIP + "'+#roleId")
+    public String getSingleRoleTip(Integer roleId) {
+        if (0 == roleId) {
+            return "--";
+        }
+        Role roleObj = roleMapper.selectById(roleId);
+        if (ToolUtil.isNotEmpty(roleObj) && ToolUtil.isNotEmpty(roleObj.getName())) {
+            return roleObj.getTips();
+        }
+        return "";
+    }
+
+    /**
+     * 获取部门名称
+     */
+    @Override
+    @Cacheable(value = Cache.CONSTANT, key = "'" + CacheKey.DEPT_NAME + "'+#deptId")
+    public String getDeptName(Integer deptId) {
+        Dept dept = deptMapper.selectById(deptId);
+        if (ToolUtil.isNotEmpty(dept) && ToolUtil.isNotEmpty(dept.getFullname())) {
+            return dept.getFullname();
+        }
+        return "";
+    }
+
+    /**
+     * 获取菜单的名称们(多个)
+     */
+    @Override
+    public String getMenuNames(String menuIds) {
+        Integer[] menus = Convert.toIntArray(menuIds);
+        StringBuilder sb = new StringBuilder();
+        for (int menu : menus) {
+            Menu menuObj = menuMapper.selectById(menu);
+            if (ToolUtil.isNotEmpty(menuObj) && ToolUtil.isNotEmpty(menuObj.getName())) {
+                sb.append(menuObj.getName()).append(",");
+            }
+        }
+        return StrKit.removeSuffix(sb.toString(), ",");
+    }
+
+    /**
+     * 获取菜单名称
+     */
+    @Override
+    public String getMenuName(Long menuId) {
+        if (ToolUtil.isEmpty(menuId)) {
+            return "";
+        } else {
+            Menu menu = menuMapper.selectById(menuId);
+            if (menu == null) {
+                return "";
+            } else {
+                return menu.getName();
+            }
+        }
+    }
+
+    /**
+     * 获取菜单名称通过编号
+     */
+    @Override
+    public String getMenuNameByCode(String code) {
+        if (ToolUtil.isEmpty(code)) {
+            return "";
+        } else {
+            Menu param = new Menu();
+            param.setCode(code);
+            Menu menu = menuMapper.selectOne(param);
+            if (menu == null) {
+                return "";
+            } else {
+                return menu.getName();
+            }
+        }
+    }
+
+    /**
+     * 获取字典名称
+     */
+    @Override
+    public String getDictName(Integer dictId) {
+        if (ToolUtil.isEmpty(dictId)) {
+            return "";
+        } else {
+            Dict dict = dictMapper.selectById(dictId);
+            if (dict == null) {
+                return "";
+            } else {
+                return dict.getName();
+            }
+        }
+    }
+
+    /**
+     * 获取通知标题
+     */
+    @Override
+    public String getNoticeTitle(Integer dictId) {
+        if (ToolUtil.isEmpty(dictId)) {
+            return "";
+        } else {
+            Notice notice = noticeMapper.selectById(dictId);
+            if (notice == null) {
+                return "";
+            } else {
+                return notice.getTitle();
+            }
+        }
+    }
+
+    /**
+     * 根据字典名称和字典中的值获取对应的名称
+     */
+    @Override
+    public String getDictsByName(String name, Integer val) {
+        Dict temp = new Dict();
+        temp.setName(name);
+        Dict dict = dictMapper.selectOne(temp);
+        if (dict == null) {
+            return "";
+        } else {
+            Wrapper<Dict> wrapper = new EntityWrapper<>();
+            wrapper = wrapper.eq("pid", dict.getId());
+            List<Dict> dicts = dictMapper.selectList(wrapper);
+            for (Dict item : dicts) {
+                if (item.getNum() != null && item.getNum().equals(val)) {
+                    return item.getName();
+                }
+            }
+            return "";
+        }
+    }
+
+    /**
+     * 获取性别名称
+     */
+    @Override
+    public String getSexName(Integer sex) {
+        return getDictsByName("性别", sex);
+    }
+
+    /**
+     * 获取用户登录状态
+     */
+    @Override
+    public String getStatusName(Integer status) {
+        return ManagerStatus.valueOf(status);
+    }
+
+    /**
+     * 获取菜单状态
+     */
+    @Override
+    public String getMenuStatusName(Integer status) {
+        return MenuStatus.valueOf(status);
+    }
+
+    /**
+     * 查询字典
+     */
+    @Override
+    public List<Dict> findInDict(Integer id) {
+        if (ToolUtil.isEmpty(id)) {
+            return null;
+        } else {
+            EntityWrapper<Dict> wrapper = new EntityWrapper<>();
+            List<Dict> dicts = dictMapper.selectList(wrapper.eq("pid", id));
+            if (dicts == null || dicts.size() == 0) {
+                return null;
+            } else {
+                return dicts;
+            }
+        }
+    }
+
+    /**
+     * 获取被缓存的对象(用户删除业务)
+     */
+    @Override
+    public String getCacheObject(String para) {
+        return LogObjectHolder.me().get().toString();
+    }
+
+    /**
+     * 获取子部门id
+     */
+    @Override
+    public List<Integer> getSubDeptId(Integer deptid) {
+        Wrapper<Dept> wrapper = new EntityWrapper<>();
+        wrapper = wrapper.like("pids", "%[" + deptid + "]%");
+        List<Dept> depts = this.deptMapper.selectList(wrapper);
+
+        ArrayList<Integer> deptids = new ArrayList<>();
+
+        if(depts != null && depts.size() > 0){
+            for (Dept dept : depts) {
+                deptids.add(dept.getId());
+            }
+        }
+
+        return deptids;
+    }
+
+    /**
+     * 获取所有父部门id
+     */
+    @Override
+    public List<Integer> getParentDeptIds(Integer deptid) {
+        Dept dept = deptMapper.selectById(deptid);
+        String pids = dept.getPids();
+        String[] split = pids.split(",");
+        ArrayList<Integer> parentDeptIds = new ArrayList<>();
+        for (String s : split) {
+            parentDeptIds.add(Integer.valueOf(StrKit.removeSuffix(StrKit.removePrefix(s, "["), "]")));
+        }
+        return parentDeptIds;
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/IConstantFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/IConstantFactory.java
new file mode 100644
index 0000000..fc0a07b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/IConstantFactory.java
@@ -0,0 +1,116 @@
+package com.stylefeng.guns.core.common.constant.factory;
+
+import com.stylefeng.guns.modular.system.model.Dict;
+
+import java.util.List;
+
+/**
+ * 常量生产工厂的接口
+ *
+ * @author fengshuonan
+ * @date 2017-06-14 21:12
+ */
+public interface IConstantFactory {
+
+    /**
+     * 根据用户id获取用户名称
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 23:41
+     */
+    String getUserNameById(Integer userId);
+
+    /**
+     * 根据用户id获取用户账号
+     *
+     * @author stylefeng
+     * @date 2017年5月16日21:55:371
+     */
+    String getUserAccountById(Integer userId);
+
+    /**
+     * 通过角色ids获取角色名称
+     */
+    String getRoleName(String roleIds);
+
+    /**
+     * 通过角色id获取角色名称
+     */
+    String getSingleRoleName(Integer roleId);
+
+    /**
+     * 通过角色id获取角色英文名称
+     */
+    String getSingleRoleTip(Integer roleId);
+
+    /**
+     * 获取部门名称
+     */
+    String getDeptName(Integer deptId);
+
+    /**
+     * 获取菜单的名称们(多个)
+     */
+    String getMenuNames(String menuIds);
+
+    /**
+     * 获取菜单名称
+     */
+    String getMenuName(Long menuId);
+
+    /**
+     * 获取菜单名称通过编号
+     */
+    String getMenuNameByCode(String code);
+
+    /**
+     * 获取字典名称
+     */
+    String getDictName(Integer dictId);
+
+    /**
+     * 获取通知标题
+     */
+    String getNoticeTitle(Integer dictId);
+
+    /**
+     * 根据字典名称和字典中的值获取对应的名称
+     */
+    String getDictsByName(String name, Integer val);
+
+    /**
+     * 获取性别名称
+     */
+    String getSexName(Integer sex);
+
+    /**
+     * 获取用户登录状态
+     */
+    String getStatusName(Integer status);
+
+    /**
+     * 获取菜单状态
+     */
+    String getMenuStatusName(Integer status);
+
+    /**
+     * 查询字典
+     */
+    List<Dict> findInDict(Integer id);
+
+    /**
+     * 获取被缓存的对象(用户删除业务)
+     */
+    String getCacheObject(String para);
+
+    /**
+     * 获取子部门id
+     */
+    List<Integer> getSubDeptId(Integer deptid);
+
+    /**
+     * 获取所有父部门id
+     */
+    List<Integer> getParentDeptIds(Integer deptid);
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/MutiStrFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/MutiStrFactory.java
new file mode 100644
index 0000000..ae01578
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/MutiStrFactory.java
@@ -0,0 +1,96 @@
+package com.stylefeng.guns.core.common.constant.factory;
+
+import com.stylefeng.guns.core.support.StrKit;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 组合字符串生产者
+ *
+ * @author fengshuonan
+ * @date 2017-04-27 16:42
+ */
+public class MutiStrFactory {
+
+    /**
+     * 每个条目之间的分隔符
+     */
+    public static final String ITEM_SPLIT = ";";
+
+    /**
+     * 属性之间的分隔符
+     */
+    public static final String ATTR_SPLIT = ":";
+
+    /**
+     * 拼接字符串的id
+     */
+    public static final String MUTI_STR_ID = "ID";
+
+    /**
+     * 拼接字符串的CODE
+     */
+    public static final String MUTI_STR_CODE = "CODE";
+
+    /**
+     * 拼接字符串的NAME
+     */
+    public static final String MUTI_STR_NAME = "NAME";
+
+    /**
+     * 拼接字符串的NUM
+     */
+    public static final String MUTI_STR_NUM = "NUM";
+
+    /**
+     * 解析一个组合字符串(例如:  "1:启用;2:禁用;3:冻结"  这样的字符串)
+     *
+     * @author fengshuonan
+     * @Date 2017/4/27 16:44
+     */
+    public static List<Map<String,String>> parseKeyValue(String mutiString){
+        if(ToolUtil.isEmpty(mutiString)){
+            return new ArrayList<>();
+        }else{
+            ArrayList<Map<String,String>> results = new ArrayList<>();
+            String[] items = StrKit.split(StrKit.removeSuffix(mutiString, ITEM_SPLIT), ITEM_SPLIT);
+            for (String item : items) {
+                String[] attrs = item.split(ATTR_SPLIT);
+                HashMap<String, String> itemMap = new HashMap<>();
+                itemMap.put(MUTI_STR_CODE,attrs[0]);
+                itemMap.put(MUTI_STR_NAME,attrs[1]);
+                itemMap.put(MUTI_STR_NUM,attrs[2]);
+                results.add(itemMap);
+            }
+            return results;
+        }
+    }
+
+    /**
+     * 解析id:key:value这样类型的字符串
+     *
+     * @author fengshuonan
+     * @Date 2017/4/28 11:06
+     */
+    public static List<Map<String,String>> parseIdKeyValue(String mutiString){
+        if(ToolUtil.isEmpty(mutiString)){
+            return new ArrayList<>();
+        }else{
+            ArrayList<Map<String,String>> results = new ArrayList<>();
+            String[] items = StrKit.split(StrKit.removeSuffix(mutiString, ITEM_SPLIT), ITEM_SPLIT);
+            for (String item : items) {
+                String[] attrs = item.split(ATTR_SPLIT);
+                HashMap<String, String> itemMap = new HashMap<>();
+                itemMap.put(MUTI_STR_CODE,attrs[0]);
+                itemMap.put(MUTI_STR_NAME,attrs[1]);
+                itemMap.put(MUTI_STR_NUM,attrs[2]);
+                results.add(itemMap);
+            }
+            return results;
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/PageFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/PageFactory.java
new file mode 100644
index 0000000..9fd65e0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/factory/PageFactory.java
@@ -0,0 +1,38 @@
+package com.stylefeng.guns.core.common.constant.factory;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.core.common.constant.state.Order;
+import com.stylefeng.guns.core.support.HttpKit;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * BootStrap Table默认的分页参数创建
+ *
+ * @author fengshuonan
+ * @date 2017-04-05 22:25
+ */
+public class PageFactory<T> {
+
+    public Page<T> defaultPage() {
+        HttpServletRequest request = HttpKit.getRequest();
+        int limit = Integer.valueOf(request.getParameter("limit"));     //每页多少条数据
+        int offset = Integer.valueOf(request.getParameter("offset"));   //每页的偏移量(本页当前有多少条)
+        String sort = request.getParameter("sort");         //排序字段名称
+        String order = request.getParameter("order");       //asc或desc(升序或降序)
+        if (ToolUtil.isEmpty(sort)) {
+            Page<T> page = new Page<>((offset / limit + 1), limit);
+            page.setOpenSort(false);
+            return page;
+        } else {
+            Page<T> page = new Page<>((offset / limit + 1), limit, sort);
+            if (Order.ASC.getDes().equals(order)) {
+                page.setAsc(true);
+            } else {
+                page.setAsc(false);
+            }
+            return page;
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/BizLogType.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/BizLogType.java
new file mode 100644
index 0000000..18c15a7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/BizLogType.java
@@ -0,0 +1,51 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 业务日志类型
+ *
+ * @author fengshuonan
+ * @Date 2017年1月22日 下午12:14:59
+ */
+public enum BizLogType {
+
+    ALL(0, null),//全部日志
+    BUSSINESS(1, "业务日志"),
+    EXCEPTION(2, "异常日志");
+
+    Integer val;
+    String message;
+
+    BizLogType(Integer val, String message) {
+        this.val = val;
+        this.message = message;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public Integer getVal() {
+        return val;
+    }
+
+    public void setVal(Integer val) {
+        this.val = val;
+    }
+
+    public static String valueOf(Integer value) {
+        if (value == null) {
+            return null;
+        } else {
+            for (BizLogType bizLogType : BizLogType.values()) {
+                if (bizLogType.getVal().equals(value)) {
+                    return bizLogType.getMessage();
+                }
+            }
+            return null;
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ExpenseState.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ExpenseState.java
new file mode 100644
index 0000000..d4cffc3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ExpenseState.java
@@ -0,0 +1,52 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 是否是菜单的枚举
+ *
+ * @author fengshuonan
+ * @date 2017年6月1日22:50:11
+ */
+public enum ExpenseState {
+
+    SUBMITING(1, "待提交"),
+    CHECKING(2, "待审核"),
+    PASS(3, "审核通过"),
+    UN_PASS(4, "未通过");
+
+    int code;
+    String message;
+
+    ExpenseState(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public static String valueOf(Integer status) {
+        if (status == null) {
+            return "";
+        } else {
+            for (ExpenseState s : ExpenseState.values()) {
+                if (s.getCode() == status) {
+                    return s.getMessage();
+                }
+            }
+            return "";
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogSucceed.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogSucceed.java
new file mode 100644
index 0000000..2c2a823
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogSucceed.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 业务是否成功的日志记录
+ *
+ * @author fengshuonan
+ * @Date 2017年1月22日 下午12:14:59
+ */
+public enum LogSucceed {
+
+    SUCCESS("成功"),
+    FAIL("失败");
+
+    String message;
+
+    LogSucceed(String message) {
+        this.message = message;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogType.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogType.java
new file mode 100644
index 0000000..1c44232
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/LogType.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 日志类型
+ *
+ * @author fengshuonan
+ * @Date 2017年1月22日 下午12:14:59
+ */
+public enum LogType {
+
+    LOGIN("登录日志"),
+    LOGIN_FAIL("登录失败日志"),
+    EXIT("退出日志"),
+    EXCEPTION("异常日志"),
+    BUSSINESS("业务日志");
+
+    String message;
+
+    LogType(String message) {
+        this.message = message;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ManagerStatus.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ManagerStatus.java
new file mode 100644
index 0000000..0de9d4f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/ManagerStatus.java
@@ -0,0 +1,49 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 管理员的状态
+ *
+ * @author fengshuonan
+ * @Date 2017年1月10日 下午9:54:13
+ */
+public enum ManagerStatus {
+
+    OK(1, "启用"), FREEZED(2, "冻结"), DELETED(3, "被删除");
+
+    int code;
+    String message;
+
+    ManagerStatus(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public static String valueOf(Integer value) {
+        if (value == null) {
+            return "";
+        } else {
+            for (ManagerStatus ms : ManagerStatus.values()) {
+                if (ms.getCode() == value) {
+                    return ms.getMessage();
+                }
+            }
+            return "";
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuOpenStatus.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuOpenStatus.java
new file mode 100644
index 0000000..f0c5841
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuOpenStatus.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 菜单是否打开的状态
+ *
+ * @author fengshuonan
+ * @Date 2017年4月8日10:12:15
+ */
+public enum MenuOpenStatus {
+
+    OPEN(1, "打开"),
+    CLOSE(0, "关闭");
+
+    int code;
+    String message;
+
+    MenuOpenStatus(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public static String valueOf(Integer status) {
+        if (status == null) {
+            return "";
+        } else {
+            for (MenuOpenStatus s : MenuOpenStatus.values()) {
+                if (s.getCode() == status) {
+                    return s.getMessage();
+                }
+            }
+            return "";
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuStatus.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuStatus.java
new file mode 100644
index 0000000..940fe84
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/MenuStatus.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 菜单的状态
+ *
+ * @author fengshuonan
+ * @Date 2017年1月22日 下午12:14:59
+ */
+public enum MenuStatus {
+
+    ENABLE(1, "启用"),
+    DISABLE(0, "禁用");
+
+    int code;
+    String message;
+
+    MenuStatus(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public static String valueOf(Integer status) {
+        if (status == null) {
+            return "";
+        } else {
+            for (MenuStatus s : MenuStatus.values()) {
+                if (s.getCode() == status) {
+                    return s.getMessage();
+                }
+            }
+            return "";
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/Order.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/Order.java
new file mode 100644
index 0000000..5856284
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/constant/state/Order.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.core.common.constant.state;
+
+/**
+ * 数据库排序
+ *
+ * @author fengshuonan
+ * @Date 2017年5月31日20:48:41
+ */
+public enum Order {
+
+    ASC("asc"), DESC("desc");
+
+    private String des;
+
+    Order(String des) {
+        this.des = des;
+    }
+
+    public String getDes() {
+        return des;
+    }
+
+    public void setDes(String des) {
+        this.des = des;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/BizExceptionEnum.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/BizExceptionEnum.java
new file mode 100644
index 0000000..9360484
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/BizExceptionEnum.java
@@ -0,0 +1,100 @@
+package com.stylefeng.guns.core.common.exception;
+
+import com.stylefeng.guns.core.exception.ServiceExceptionEnum;
+
+/**
+ * @author fengshuonan
+ * @Description 所有业务异常的枚举
+ * @date 2016年11月12日 下午5:04:51
+ */
+public enum BizExceptionEnum implements ServiceExceptionEnum {
+
+    /**
+     * 字典
+     */
+    DICT_EXISTED(400, "字典已经存在"),
+    ERROR_CREATE_DICT(500, "创建字典失败"),
+    ERROR_WRAPPER_FIELD(500, "包装字典属性失败"),
+    ERROR_CODE_EMPTY(500, "字典类型不能为空"),
+
+    /**
+     * 文件上传
+     */
+    FILE_READING_ERROR(400, "FILE_READING_ERROR!"),
+    FILE_NOT_FOUND(400, "FILE_NOT_FOUND!"),
+    UPLOAD_ERROR(500, "上传图片出错"),
+
+    /**
+     * 权限和数据问题
+     */
+    DB_RESOURCE_NULL(400, "数据库中没有该资源"),
+    NO_PERMITION(405, "权限异常"),
+    REQUEST_INVALIDATE(400, "请求数据格式不正确"),
+    INVALID_KAPTCHA(400, "验证码不正确"),
+    CANT_DELETE_ADMIN(600, "不能删除超级管理员"),
+    CANT_FREEZE_ADMIN(600, "不能冻结超级管理员"),
+    CANT_CHANGE_ADMIN(600, "不能修改超级管理员角色"),
+
+    /**
+     * 账户问题
+     */
+    USER_ALREADY_REG(401, "该用户已经注册"),
+    NO_THIS_USER(400, "没有此用户"),
+    USER_NOT_EXISTED(400, "没有此用户"),
+    ACCOUNT_FREEZED(401, "账号被冻结"),
+    OLD_PWD_NOT_RIGHT(402, "原密码不正确"),
+    TWO_PWD_NOT_MATCH(405, "两次输入密码不一致"),
+
+    /**
+     * 错误的请求
+     */
+    MENU_PCODE_COINCIDENCE(400, "菜单编号和副编号不能一致"),
+    EXISTED_THE_MENU(400, "菜单编号重复,不能添加"),
+    DICT_MUST_BE_NUMBER(400, "字典的值必须为数字"),
+    REQUEST_NULL(400, "请求有错误"),
+    SESSION_TIMEOUT(400, "会话超时"),
+    SERVER_ERROR(500, "服务器异常"),
+
+    /**
+     * token异常
+     */
+    TOKEN_EXPIRED(600, "token过期"),
+    TOKEN_ERROR(600, "token验证失败"),
+
+    /**
+     * 签名异常
+     */
+    SIGN_ERROR(700, "签名验证失败"),
+
+    /**
+     * 其他
+     */
+    AUTH_REQUEST_ERROR(400, "账号密码错误");
+
+    BizExceptionEnum(int code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    private Integer code;
+
+    private String message;
+
+    @Override
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    @Override
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/InvalidKaptchaException.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/InvalidKaptchaException.java
new file mode 100644
index 0000000..78581cd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/common/exception/InvalidKaptchaException.java
@@ -0,0 +1,10 @@
+package com.stylefeng.guns.core.common.exception;
+
+/**
+ * 验证码错误异常
+ *
+ * @author fengshuonan
+ * @date 2017-05-05 23:52
+ */
+public class InvalidKaptchaException extends RuntimeException {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/GunsUserFilter.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/GunsUserFilter.java
new file mode 100644
index 0000000..5ff14b5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/GunsUserFilter.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.stylefeng.guns.core.intercept;
+
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import org.apache.shiro.subject.Subject;
+import org.apache.shiro.web.filter.AccessControlFilter;
+import org.apache.shiro.web.util.WebUtils;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Filter that allows access to resources if the accessor is a known user, which is defined as
+ * having a known principal.  This means that any user who is authenticated or remembered via a
+ * 'remember me' feature will be allowed access from this filter.
+ * <p/>
+ * If the accessor is not a known user, then they will be redirected to the {@link #setLoginUrl(String) loginUrl}</p>
+ *
+ * @since 0.9
+ */
+public class GunsUserFilter extends AccessControlFilter {
+
+    /**
+     * Returns <code>true</code> if the request is a
+     * {@link #isLoginRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) loginRequest} or
+     * if the current {@link #getSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse) subject}
+     * is not <code>null</code>, <code>false</code> otherwise.
+     *
+     * @return <code>true</code> if the request is a
+     * {@link #isLoginRequest(javax.servlet.ServletRequest, javax.servlet.ServletResponse) loginRequest} or
+     * if the current {@link #getSubject(javax.servlet.ServletRequest, javax.servlet.ServletResponse) subject}
+     * is not <code>null</code>, <code>false</code> otherwise.
+     */
+    protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) {
+        if (isLoginRequest(request, response)) {
+            return true;
+        } else {
+            Subject subject = getSubject(request, response);
+            // If principal is not null, then the user is known and should be allowed access.
+            return subject.getPrincipal() != null;
+        }
+    }
+
+    /**
+     * This default implementation simply calls
+     * {@link #saveRequestAndRedirectToLogin(javax.servlet.ServletRequest, javax.servlet.ServletResponse) saveRequestAndRedirectToLogin}
+     * and then immediately returns <code>false</code>, thereby preventing the chain from continuing so the redirect may
+     * execute.
+     */
+    protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {
+        HttpServletRequest httpServletRequest = WebUtils.toHttp(request);
+        HttpServletResponse httpServletResponse = WebUtils.toHttp(response);
+
+        /**
+         * 如果是ajax请求则不进行跳转
+         */
+        if (httpServletRequest.getHeader("x-requested-with") != null
+                && httpServletRequest.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {
+            httpServletResponse.setHeader("sessionstatus", "timeout");
+            return false;
+        } else {
+
+            /**
+             * 第一次点击页面
+             */
+            String referer = httpServletRequest.getHeader("Referer");
+            if (referer == null) {
+                saveRequestAndRedirectToLogin(request, response);
+                return false;
+            } else {
+
+                /**
+                 * 从别的页面跳转过来的
+                 */
+                if (ShiroKit.getSession().getAttribute("sessionFlag") == null) {
+                    httpServletRequest.setAttribute("tips", "session超时");
+                    httpServletRequest.getRequestDispatcher("/login").forward(request, response);
+                    return false;
+                } else {
+                    saveRequestAndRedirectToLogin(request, response);
+                    return false;
+                }
+            }
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/RestApiInteceptor.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/RestApiInteceptor.java
new file mode 100644
index 0000000..1415e13
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/RestApiInteceptor.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.core.intercept;
+
+import com.stylefeng.guns.core.base.tips.ErrorTip;
+import com.stylefeng.guns.core.common.constant.JwtConstants;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.util.JwtTokenUtil;
+import com.stylefeng.guns.core.util.RenderUtil;
+import io.jsonwebtoken.JwtException;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * Rest Api接口鉴权
+ *
+ * @author stylefeng
+ * @Date 2018/7/20 23:11
+ */
+public class RestApiInteceptor extends HandlerInterceptorAdapter {
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        if (handler instanceof org.springframework.web.servlet.resource.ResourceHttpRequestHandler) {
+            return true;
+        }
+        HandlerMethod handlerMethod = (HandlerMethod) handler;
+        return check(request, response, handlerMethod);
+    }
+
+    private boolean check(HttpServletRequest request, HttpServletResponse response, HandlerMethod handlerMethod) {
+        if (request.getServletPath().equals(JwtConstants.AUTH_PATH)) {
+            return true;
+        }
+        final String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER);
+        String authToken;
+        if (requestHeader != null && requestHeader.startsWith("Bearer ")) {
+            authToken = requestHeader.substring(7);
+
+            //验证token是否过期,包含了验证jwt是否正确
+            try {
+                boolean flag = JwtTokenUtil.isTokenExpired(authToken);
+                if (flag) {
+                    RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_EXPIRED.getCode(), BizExceptionEnum.TOKEN_EXPIRED.getMessage()));
+                    return false;
+                }
+            } catch (JwtException e) {
+                //有异常就是token解析失败
+                RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage()));
+                return false;
+            }
+        } else {
+            //header没有带Bearer字段
+            RenderUtil.renderJson(response, new ErrorTip(BizExceptionEnum.TOKEN_ERROR.getCode(), BizExceptionEnum.TOKEN_ERROR.getMessage()));
+            return false;
+        }
+        return true;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/SessionHolderInterceptor.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/SessionHolderInterceptor.java
new file mode 100644
index 0000000..acafeaf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/intercept/SessionHolderInterceptor.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.core.intercept;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.util.HttpSessionHolder;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.stereotype.Component;
+
+/**
+ * 静态调用session的拦截器
+ *
+ * @author fengshuonan
+ * @date 2016年11月13日 下午10:15:42
+ */
+@Aspect
+@Component
+public class SessionHolderInterceptor extends BaseController {
+
+    @Pointcut("execution(* com.stylefeng.guns.*..controller.*.*(..))")
+    public void cutService() {
+    }
+
+    @Around("cutService()")
+    public Object sessionKit(ProceedingJoinPoint point) throws Throwable {
+        HttpSessionHolder.put(super.getHttpServletRequest().getSession());
+        try {
+            return point.proceed();
+        } finally {
+            HttpSessionHolder.remove();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/listener/ConfigListener.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/listener/ConfigListener.java
new file mode 100644
index 0000000..18089f5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/listener/ConfigListener.java
@@ -0,0 +1,54 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.listener;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * ServletContext监听器
+ *
+ * @author stylefeng
+ * @Date 2018/2/22 21:07
+ */
+public class ConfigListener implements ServletContextListener {
+
+    private static Map<String, String> conf = new HashMap<>();
+
+    public static Map<String, String> getConf() {
+        return conf;
+    }
+
+    @Override
+    public void contextDestroyed(ServletContextEvent arg0) {
+        conf.clear();
+    }
+
+    @Override
+    public void contextInitialized(ServletContextEvent evt) {
+        ServletContext sc = evt.getServletContext();
+
+        //项目发布,当前运行环境的绝对路径
+        conf.put("realPath", sc.getRealPath("/").replaceFirst("/", ""));
+
+        //servletContextPath,默认""
+        conf.put("contextPath", sc.getContextPath());
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogManager.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogManager.java
new file mode 100644
index 0000000..8d5e20e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogManager.java
@@ -0,0 +1,33 @@
+package com.stylefeng.guns.core.log;
+
+import java.util.TimerTask;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 日志管理器
+ *
+ * @author fengshuonan
+ * @date 2017-03-30 16:29
+ */
+public class LogManager {
+
+    //日志记录操作延时
+    private final int OPERATE_DELAY_TIME = 10;
+
+    //异步操作记录日志的线程池
+    private ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);
+
+    private LogManager() {
+    }
+
+    public static LogManager logManager = new LogManager();
+
+    public static LogManager me() {
+        return logManager;
+    }
+
+    public void executeLog(TimerTask task) {
+        executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogObjectHolder.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogObjectHolder.java
new file mode 100644
index 0000000..f43d81b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/LogObjectHolder.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.core.log;
+
+import com.stylefeng.guns.core.util.SpringContextHolder;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.WebApplicationContext;
+
+import java.io.Serializable;
+
+/**
+ * 被修改的bean临时存放的地方
+ *
+ * @author fengshuonan
+ * @date 2017-03-31 11:19
+ */
+@Component
+@Scope(scopeName = WebApplicationContext.SCOPE_SESSION)
+public class LogObjectHolder implements Serializable{
+
+    private Object object = null;
+
+    public void set(Object obj) {
+        this.object = obj;
+    }
+
+    public Object get() {
+        return object;
+    }
+
+    public static LogObjectHolder me(){
+        LogObjectHolder bean = SpringContextHolder.getBean(LogObjectHolder.class);
+        return bean;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogFactory.java
new file mode 100644
index 0000000..3094dd9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogFactory.java
@@ -0,0 +1,47 @@
+package com.stylefeng.guns.core.log.factory;
+
+import com.stylefeng.guns.core.common.constant.state.LogSucceed;
+import com.stylefeng.guns.core.common.constant.state.LogType;
+import com.stylefeng.guns.modular.system.model.LoginLog;
+import com.stylefeng.guns.modular.system.model.OperationLog;
+
+import java.util.Date;
+
+/**
+ * 日志对象创建工厂
+ *
+ * @author fengshuonan
+ * @date 2016年12月6日 下午9:18:27
+ */
+public class LogFactory {
+
+    /**
+     * 创建操作日志
+     */
+    public static OperationLog createOperationLog(LogType logType, Integer userId, String bussinessName, String clazzName, String methodName, String msg, LogSucceed succeed) {
+        OperationLog operationLog = new OperationLog();
+        operationLog.setLogtype(logType.getMessage());
+        operationLog.setLogname(bussinessName);
+        operationLog.setUserid(userId);
+        operationLog.setClassname(clazzName);
+        operationLog.setMethod(methodName);
+        operationLog.setCreatetime(new Date());
+        operationLog.setSucceed(succeed.getMessage());
+        operationLog.setMessage(msg);
+        return operationLog;
+    }
+
+    /**
+     * 创建登录日志
+     */
+    public static LoginLog createLoginLog(LogType logType, Integer userId, String msg, String ip) {
+        LoginLog loginLog = new LoginLog();
+        loginLog.setLogname(logType.getMessage());
+        loginLog.setUserid(userId);
+        loginLog.setCreatetime(new Date());
+        loginLog.setSucceed(LogSucceed.SUCCESS.getMessage());
+        loginLog.setIp(ip);
+        loginLog.setMessage(msg);
+        return loginLog;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogTaskFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogTaskFactory.java
new file mode 100644
index 0000000..2c29451
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/log/factory/LogTaskFactory.java
@@ -0,0 +1,102 @@
+package com.stylefeng.guns.core.log.factory;
+
+import com.stylefeng.guns.core.common.constant.state.LogSucceed;
+import com.stylefeng.guns.core.common.constant.state.LogType;
+import com.stylefeng.guns.modular.system.dao.LoginLogMapper;
+import com.stylefeng.guns.modular.system.dao.OperationLogMapper;
+import com.stylefeng.guns.modular.system.model.LoginLog;
+import com.stylefeng.guns.modular.system.model.OperationLog;
+import com.stylefeng.guns.core.db.Db;
+import com.stylefeng.guns.core.log.LogManager;
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.TimerTask;
+
+/**
+ * 日志操作任务创建工厂
+ *
+ * @author fengshuonan
+ * @date 2016年12月6日 下午9:18:27
+ */
+public class LogTaskFactory {
+
+    private static Logger logger = LoggerFactory.getLogger(LogManager.class);
+    private static LoginLogMapper loginLogMapper = Db.getMapper(LoginLogMapper.class);
+    private static OperationLogMapper operationLogMapper = Db.getMapper(OperationLogMapper.class);
+
+    public static TimerTask loginLog(final Integer userId, final String ip) {
+        return new TimerTask() {
+            @Override
+            public void run() {
+                try {
+                    LoginLog loginLog = LogFactory.createLoginLog(LogType.LOGIN, userId, null, ip);
+                    loginLogMapper.insert(loginLog);
+                } catch (Exception e) {
+                    logger.error("创建登录日志异常!", e);
+                }
+            }
+        };
+    }
+
+    public static TimerTask loginLog(final String username, final String msg, final String ip) {
+        return new TimerTask() {
+            @Override
+            public void run() {
+                LoginLog loginLog = LogFactory.createLoginLog(
+                        LogType.LOGIN_FAIL, null, "账号:" + username + "," + msg, ip);
+                try {
+                    loginLogMapper.insert(loginLog);
+                } catch (Exception e) {
+                    logger.error("创建登录失败异常!", e);
+                }
+            }
+        };
+    }
+
+    public static TimerTask exitLog(final Integer userId, final String ip) {
+        return new TimerTask() {
+            @Override
+            public void run() {
+                LoginLog loginLog = LogFactory.createLoginLog(LogType.EXIT, userId, null,ip);
+                try {
+                    loginLogMapper.insert(loginLog);
+                } catch (Exception e) {
+                    logger.error("创建退出日志异常!", e);
+                }
+            }
+        };
+    }
+
+    public static TimerTask bussinessLog(final Integer userId, final String bussinessName, final String clazzName, final String methodName, final String msg) {
+        return new TimerTask() {
+            @Override
+            public void run() {
+                OperationLog operationLog = LogFactory.createOperationLog(
+                        LogType.BUSSINESS, userId, bussinessName, clazzName, methodName, msg, LogSucceed.SUCCESS);
+                try {
+                    operationLogMapper.insert(operationLog);
+                } catch (Exception e) {
+                    logger.error("创建业务日志异常!", e);
+                }
+            }
+        };
+    }
+
+    public static TimerTask exceptionLog(final Integer userId, final Exception exception) {
+        return new TimerTask() {
+            @Override
+            public void run() {
+                String msg = ToolUtil.getExceptionMsg(exception);
+                OperationLog operationLog = LogFactory.createOperationLog(
+                        LogType.EXCEPTION, userId, "", null, null, msg, LogSucceed.FAIL);
+                try {
+                    operationLogMapper.insert(operationLog);
+                } catch (Exception e) {
+                    logger.error("创建异常日志异常!", e);
+                }
+            }
+        };
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroDbRealm.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroDbRealm.java
new file mode 100644
index 0000000..2a95558
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroDbRealm.java
@@ -0,0 +1,78 @@
+package com.stylefeng.guns.core.shiro;
+
+import com.stylefeng.guns.core.shiro.factory.IShiro;
+import com.stylefeng.guns.core.shiro.factory.ShiroFactroy;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.User;
+import org.apache.shiro.authc.AuthenticationException;
+import org.apache.shiro.authc.AuthenticationInfo;
+import org.apache.shiro.authc.AuthenticationToken;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.authc.credential.CredentialsMatcher;
+import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
+import org.apache.shiro.authz.AuthorizationInfo;
+import org.apache.shiro.authz.SimpleAuthorizationInfo;
+import org.apache.shiro.realm.AuthorizingRealm;
+import org.apache.shiro.subject.PrincipalCollection;
+
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+public class ShiroDbRealm extends AuthorizingRealm {
+
+    /**
+     * 登录认证
+     */
+    @Override
+    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authcToken)
+            throws AuthenticationException {
+        IShiro shiroFactory = ShiroFactroy.me();
+        UsernamePasswordToken token = (UsernamePasswordToken) authcToken;
+        User user = shiroFactory.user(token.getUsername());
+        ShiroUser shiroUser = shiroFactory.shiroUser(user);
+        return shiroFactory.info(shiroUser, user, super.getName());
+    }
+
+    /**
+     * 权限认证
+     */
+    @Override
+    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
+        IShiro shiroFactory = ShiroFactroy.me();
+        ShiroUser shiroUser = (ShiroUser) principals.getPrimaryPrincipal();
+        List<Integer> roleList = shiroUser.getRoleList();
+
+        Set<String> permissionSet = new HashSet<>();
+        Set<String> roleNameSet = new HashSet<>();
+
+        for (Integer roleId : roleList) {
+            List<String> permissions = shiroFactory.findPermissionsByRoleId(roleId);
+            if (permissions != null) {
+                for (String permission : permissions) {
+                    if (ToolUtil.isNotEmpty(permission)) {
+                        permissionSet.add(permission);
+                    }
+                }
+            }
+            String roleName = shiroFactory.findRoleNameByRoleId(roleId);
+            roleNameSet.add(roleName);
+        }
+
+        SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
+        info.addStringPermissions(permissionSet);
+        info.addRoles(roleNameSet);
+        return info;
+    }
+
+    /**
+     * 设置认证加密方式
+     */
+    @Override
+    public void setCredentialsMatcher(CredentialsMatcher credentialsMatcher) {
+        HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
+        md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
+        md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
+        super.setCredentialsMatcher(md5CredentialsMatcher);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroKit.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroKit.java
new file mode 100644
index 0000000..eedfe1c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroKit.java
@@ -0,0 +1,290 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.shiro;
+
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.crypto.hash.Md5Hash;
+import org.apache.shiro.crypto.hash.SimpleHash;
+import org.apache.shiro.session.Session;
+import org.apache.shiro.subject.Subject;
+import org.apache.shiro.util.ByteSource;
+
+import java.util.List;
+
+/**
+ * shiro工具类
+ *
+ * @author dafei, Chill Zhuang
+ */
+public class ShiroKit {
+
+    private static final String NAMES_DELIMETER = ",";
+
+    /**
+     * 加盐参数
+     */
+    public final static String hashAlgorithmName = "MD5";
+
+    /**
+     * 循环次数
+     */
+    public final static int hashIterations = 1024;
+
+    /**
+     * shiro密码加密工具类
+     *
+     * @param credentials 密码
+     * @param saltSource 密码盐
+     * @return
+     */
+    public static String md5(String credentials, String saltSource) {
+        ByteSource salt = new Md5Hash(saltSource);
+        return new SimpleHash(hashAlgorithmName, credentials, salt, hashIterations).toString();
+    }
+
+    /**
+     * 获取随机盐值
+     * @param length
+     * @return
+     */
+    public static String getRandomSalt(int length) {
+        return ToolUtil.getRandomString(length);
+    }
+
+    /**
+     * 获取当前 Subject
+     *
+     * @return Subject
+     */
+    public static Subject getSubject() {
+        return SecurityUtils.getSubject();
+    }
+
+    /**
+     * 获取封装的 ShiroUser
+     *
+     * @return ShiroUser
+     */
+    public static ShiroUser getUser() {
+        if (isGuest()) {
+            return null;
+        } else {
+            return (ShiroUser) getSubject().getPrincipals().getPrimaryPrincipal();
+        }
+    }
+
+    /**
+     * 从shiro获取session
+     *
+     */
+    public static Session getSession() {
+        return getSubject().getSession();
+    }
+
+    /**
+     * 获取shiro指定的sessionKey
+     *
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T getSessionAttr(String key) {
+        Session session = getSession();
+        return session != null ? (T) session.getAttribute(key) : null;
+    }
+
+    /**
+     * 设置shiro指定的sessionKey
+     *
+     */
+    public static void setSessionAttr(String key, Object value) {
+        Session session = getSession();
+        session.setAttribute(key, value);
+    }
+
+    /**
+     * 移除shiro指定的sessionKey
+     */
+    public static void removeSessionAttr(String key) {
+        Session session = getSession();
+        if (session != null)
+            session.removeAttribute(key);
+    }
+
+    /**
+     * 验证当前用户是否属于该角色?,使用时与lacksRole 搭配使用
+     *
+     * @param roleName
+     *            角色名
+     * @return 属于该角色:true,否则false
+     */
+    public static boolean hasRole(String roleName) {
+        return getSubject() != null && roleName != null
+                && roleName.length() > 0 && getSubject().hasRole(roleName);
+    }
+
+    /**
+     * 与hasRole标签逻辑相反,当用户不属于该角色时验证通过。
+     *
+     * @param roleName
+     *            角色名
+     * @return 不属于该角色:true,否则false
+     */
+    public static boolean lacksRole(String roleName) {
+        return !hasRole(roleName);
+    }
+
+    /**
+     * 验证当前用户是否属于以下任意一个角色。
+     *
+     * @param roleNames
+     *            角色列表
+     * @return 属于:true,否则false
+     */
+    public static boolean hasAnyRoles(String roleNames) {
+        boolean hasAnyRole = false;
+        Subject subject = getSubject();
+        if (subject != null && roleNames != null && roleNames.length() > 0) {
+            for (String role : roleNames.split(NAMES_DELIMETER)) {
+                if (subject.hasRole(role.trim())) {
+                    hasAnyRole = true;
+                    break;
+                }
+            }
+        }
+        return hasAnyRole;
+    }
+
+    /**
+     * 验证当前用户是否属于以下所有角色。
+     *
+     * @param roleNames
+     *            角色列表
+     * @return 属于:true,否则false
+     */
+    public static boolean hasAllRoles(String roleNames) {
+        boolean hasAllRole = true;
+        Subject subject = getSubject();
+        if (subject != null && roleNames != null && roleNames.length() > 0) {
+            for (String role : roleNames.split(NAMES_DELIMETER)) {
+                if (!subject.hasRole(role.trim())) {
+                    hasAllRole = false;
+                    break;
+                }
+            }
+        }
+        return hasAllRole;
+    }
+
+    /**
+     * 验证当前用户是否拥有指定权限,使用时与lacksPermission 搭配使用
+     *
+     * @param permission
+     *            权限名
+     * @return 拥有权限:true,否则false
+     */
+    public static boolean hasPermission(String permission) {
+        return getSubject() != null && permission != null
+                && permission.length() > 0
+                && getSubject().isPermitted(permission);
+    }
+
+    /**
+     * 与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。
+     *
+     * @param permission
+     *            权限名
+     * @return 拥有权限:true,否则false
+     */
+    public static boolean lacksPermission(String permission) {
+        return !hasPermission(permission);
+    }
+
+    /**
+     * 已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。与notAuthenticated搭配使用
+     *
+     * @return 通过身份验证:true,否则false
+     */
+    public static boolean isAuthenticated() {
+        return getSubject() != null && getSubject().isAuthenticated();
+    }
+
+    /**
+     * 未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。。
+     *
+     * @return 没有通过身份验证:true,否则false
+     */
+    public static boolean notAuthenticated() {
+        return !isAuthenticated();
+    }
+
+    /**
+     * 认证通过或已记住的用户。与guset搭配使用。
+     *
+     * @return 用户:true,否则 false
+     */
+    public static boolean isUser() {
+        return getSubject() != null && getSubject().getPrincipal() != null;
+    }
+
+    /**
+     * 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。用user搭配使用
+     *
+     * @return 访客:true,否则false
+     */
+    public static boolean isGuest() {
+        return !isUser();
+    }
+
+    /**
+     * 输出当前用户信息,通常为登录帐号信息。
+     *
+     * @return 当前用户信息
+     */
+    public static String principal() {
+        if (getSubject() != null) {
+            Object principal = getSubject().getPrincipal();
+            return principal.toString();
+        }
+        return "";
+    }
+
+    /**
+     * 获取当前用户的部门数据范围的集合
+     */
+    public static List<Integer> getDeptDataScope() {
+        Integer deptId = getUser().getDeptId();
+        List<Integer> subDeptIds = ConstantFactory.me().getSubDeptId(deptId);
+        subDeptIds.add(deptId);
+        return subDeptIds;
+    }
+
+    /**
+     * 判断当前用户是否是超级管理员
+     */
+    public static boolean isAdmin() {
+        List<Integer> roleList = ShiroKit.getUser().getRoleList();
+        for (Integer integer : roleList) {
+            String singleRoleTip = ConstantFactory.me().getSingleRoleTip(integer);
+            if (singleRoleTip.equals(Const.ADMIN_NAME)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroUser.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroUser.java
new file mode 100644
index 0000000..4a91414
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/ShiroUser.java
@@ -0,0 +1,81 @@
+package com.stylefeng.guns.core.shiro;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 自定义Authentication对象,使得Subject除了携带用户的登录名外还可以携带更多信息
+ *
+ * @author fengshuonan
+ * @date 2016年12月5日 上午10:26:43
+ */
+public class ShiroUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer id;          // 主键ID
+    public String account;      // 账号
+    public String name;         // 姓名
+    public Integer deptId;      // 部门id
+    public List<Integer> roleList; // 角色集
+    public String deptName;        // 部门名称
+    public List<String> roleNames; // 角色名称集
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAccount() {
+        return account;
+    }
+
+    public void setAccount(String account) {
+        this.account = account;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getDeptId() {
+        return deptId;
+    }
+
+    public void setDeptId(Integer deptId) {
+        this.deptId = deptId;
+    }
+
+    public List<Integer> getRoleList() {
+        return roleList;
+    }
+
+    public void setRoleList(List<Integer> roleList) {
+        this.roleList = roleList;
+    }
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public List<String> getRoleNames() {
+        return roleNames;
+    }
+
+    public void setRoleNames(List<String> roleNames) {
+        this.roleNames = roleNames;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/ICheck.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/ICheck.java
new file mode 100644
index 0000000..b93a834
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/ICheck.java
@@ -0,0 +1,32 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.shiro.check;
+
+/**
+ * 检查用接口
+ */
+public interface ICheck {
+
+    /**
+     * 检查当前登录用户是否拥有指定的角色访问当
+     */
+    boolean check(Object[] permissions);
+
+    /**
+     * 检查当前登录用户是否拥有当前请求的servlet的权限
+     */
+    boolean checkAll();
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckFactory.java
new file mode 100644
index 0000000..89f602f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckFactory.java
@@ -0,0 +1,73 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.shiro.check;
+
+import com.stylefeng.guns.core.listener.ConfigListener;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.support.CollectionKit;
+import com.stylefeng.guns.core.support.HttpKit;
+import com.stylefeng.guns.core.util.SpringContextHolder;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 权限自定义检查
+ */
+@Service
+@DependsOn("springContextHolder")
+@Transactional(readOnly = true)
+public class PermissionCheckFactory implements ICheck {
+
+    public static ICheck me() {
+        return SpringContextHolder.getBean(ICheck.class);
+    }
+
+    @Override
+    public boolean check(Object[] permissions) {
+        ShiroUser user = ShiroKit.getUser();
+        if (null == user) {
+            return false;
+        }
+        String join = CollectionKit.join(permissions, ",");
+        if (ShiroKit.hasAnyRoles(join)) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public boolean checkAll() {
+        HttpServletRequest request = HttpKit.getRequest();
+        ShiroUser user = ShiroKit.getUser();
+        if (null == user) {
+            return false;
+        }
+        String requestURI = request.getRequestURI().replaceFirst(ConfigListener.getConf().get("contextPath"), "");
+        String[] str = requestURI.split("/");
+        if (str.length > 3) {
+            requestURI = "/" + str[1] + "/" + str[2];
+        }
+        if (ShiroKit.hasPermission(requestURI)) {
+            return true;
+        }
+        return false;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckManager.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckManager.java
new file mode 100644
index 0000000..690f728
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/check/PermissionCheckManager.java
@@ -0,0 +1,50 @@
+/**
+ * Copyright (c) 2015-2017, Chill Zhuang 庄骞 (smallchill@163.com).
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.stylefeng.guns.core.shiro.check;
+
+import com.stylefeng.guns.core.util.SpringContextHolder;
+
+/**
+ * 权限检查管理器(入口)
+ */
+public class PermissionCheckManager {
+    private final static PermissionCheckManager me = new PermissionCheckManager();
+
+    private ICheck defaultCheckFactory = SpringContextHolder.getBean(ICheck.class);
+
+    public static PermissionCheckManager me() {
+        return me;
+    }
+
+    private PermissionCheckManager() {
+    }
+
+    public PermissionCheckManager(ICheck checkFactory) {
+        this.defaultCheckFactory = checkFactory;
+    }
+
+    public void setDefaultCheckFactory(ICheck defaultCheckFactory) {
+        this.defaultCheckFactory = defaultCheckFactory;
+    }
+
+    public static boolean check(Object[] permissions) {
+        return me.defaultCheckFactory.check(permissions);
+    }
+
+    public static boolean checkAll() {
+        return me.defaultCheckFactory.checkAll();
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/IShiro.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/IShiro.java
new file mode 100644
index 0000000..c701170
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/IShiro.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.core.shiro.factory;
+
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.modular.system.model.User;
+import org.apache.shiro.authc.SimpleAuthenticationInfo;
+
+import java.util.List;
+
+/**
+ * 定义shirorealm所需数据的接口
+ *
+ * @author fengshuonan
+ * @date 2016年12月5日 上午10:23:34
+ */
+public interface IShiro {
+
+    /**
+     * 根据账号获取登录用户
+     *
+     * @param account 账号
+     */
+    User user(String account);
+
+    /**
+     * 根据系统用户获取Shiro的用户
+     *
+     * @param user 系统用户
+     */
+    ShiroUser shiroUser(User user);
+
+    /**
+     * 获取权限列表通过角色id
+     *
+     * @param roleId 角色id
+     */
+    List<String> findPermissionsByRoleId(Integer roleId);
+
+    /**
+     * 根据角色id获取角色名称
+     *
+     * @param roleId 角色id
+     */
+    String findRoleNameByRoleId(Integer roleId);
+
+    /**
+     * 获取shiro的认证信息
+     */
+    SimpleAuthenticationInfo info(ShiroUser shiroUser, User user, String realmName);
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/ShiroFactroy.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/ShiroFactroy.java
new file mode 100644
index 0000000..970a268
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/shiro/factory/ShiroFactroy.java
@@ -0,0 +1,98 @@
+package com.stylefeng.guns.core.shiro.factory;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.constant.state.ManagerStatus;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.util.Convert;
+import com.stylefeng.guns.core.util.SpringContextHolder;
+import com.stylefeng.guns.modular.system.dao.MenuMapper;
+import com.stylefeng.guns.modular.system.dao.UserMapper;
+import com.stylefeng.guns.modular.system.model.User;
+import org.apache.shiro.authc.CredentialsException;
+import org.apache.shiro.authc.LockedAccountException;
+import org.apache.shiro.authc.SimpleAuthenticationInfo;
+import org.apache.shiro.crypto.hash.Md5Hash;
+import org.apache.shiro.util.ByteSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.DependsOn;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+@DependsOn("springContextHolder")
+@Transactional(readOnly = true)
+public class ShiroFactroy implements IShiro {
+
+    @Autowired
+    private UserMapper userMapper;
+
+    @Autowired
+    private MenuMapper menuMapper;
+
+    public static IShiro me() {
+        return SpringContextHolder.getBean(IShiro.class);
+    }
+
+    @Override
+    public User user(String account) {
+
+        User user = userMapper.getByAccount(account);
+
+        // 账号不存在
+        if (null == user) {
+            throw new CredentialsException();
+        }
+        // 账号被冻结
+        if (user.getStatus() != ManagerStatus.OK.getCode()) {
+            throw new LockedAccountException();
+        }
+        return user;
+    }
+
+    @Override
+    public ShiroUser shiroUser(User user) {
+        ShiroUser shiroUser = new ShiroUser();
+
+        shiroUser.setId(user.getId());
+        shiroUser.setAccount(user.getAccount());
+        shiroUser.setDeptId(user.getDeptid());
+        shiroUser.setDeptName(ConstantFactory.me().getDeptName(user.getDeptid()));
+        shiroUser.setName(user.getName());
+
+        Integer[] roleArray = Convert.toIntArray(user.getRoleid());
+        List<Integer> roleList = new ArrayList<Integer>();
+        List<String> roleNameList = new ArrayList<String>();
+        for (int roleId : roleArray) {
+            roleList.add(roleId);
+            roleNameList.add(ConstantFactory.me().getSingleRoleName(roleId));
+        }
+        shiroUser.setRoleList(roleList);
+        shiroUser.setRoleNames(roleNameList);
+
+        return shiroUser;
+    }
+
+    @Override
+    public List<String> findPermissionsByRoleId(Integer roleId) {
+        return menuMapper.getResUrlsByRoleId(roleId);
+    }
+
+    @Override
+    public String findRoleNameByRoleId(Integer roleId) {
+        return ConstantFactory.me().getSingleRoleTip(roleId);
+    }
+
+    @Override
+    public SimpleAuthenticationInfo info(ShiroUser shiroUser, User user, String realmName) {
+        String credentials = user.getPassword();
+
+        // 密码加盐处理
+        String source = user.getSalt();
+        ByteSource credentialsSalt = new Md5Hash(source);
+        return new SimpleAuthenticationInfo(shiroUser, credentials, credentialsSalt, realmName);
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/tag/DictSelectorTag.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/tag/DictSelectorTag.java
new file mode 100644
index 0000000..a07afe1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/tag/DictSelectorTag.java
@@ -0,0 +1,201 @@
+package com.stylefeng.guns.core.tag;
+
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Dict;
+import com.stylefeng.guns.modular.system.service.IDictService;
+import org.beetl.core.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Scope;
+import org.springframework.stereotype.Component;
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 字典标签渲染
+ *
+ * @author zhangjiajia
+ * @Date 2018年6月4日17:33:32
+ */
+@Component
+@Scope("prototype")
+public class DictSelectorTag extends Tag {
+
+    @Autowired
+    IDictService iDictService;
+
+    @Override
+    public void render(){
+        //String tagName = (String) this.args[0];
+        Map attrs = (Map) args[1];
+        if(ToolUtil.isEmpty(attrs.get("code"))){
+            throw new GunsException(BizExceptionEnum.ERROR_CODE_EMPTY);
+        }
+
+        //字典类型编码
+        String code = attrs.get("code").toString();
+        //控件显示类型select 选择框,radio 单选按钮,checkbox 多选按钮
+        String type = ToolUtil.isNotEmpty(attrs.get("type"))?attrs.get("type").toString():"select";
+        //开启多选
+        String multiple = ToolUtil.isNotEmpty(attrs.get("multiple"))?attrs.get("multiple").toString():"";
+        //字典名称
+        String label = ToolUtil.isNotEmpty(attrs.get("label"))?attrs.get("label").toString():"";
+        //提示
+        String placeholder = (ToolUtil.isNotEmpty(attrs.get("placeholder"))?attrs.get("placeholder").toString():"");
+        //宽度
+        String width = ToolUtil.isNotEmpty(attrs.get("width"))?attrs.get("width").toString():"248";
+        //默认值
+        String value = ToolUtil.isNotEmpty(attrs.get("value"))?attrs.get("value").toString():"";
+        //id
+        String id = ToolUtil.isNotEmpty(attrs.get("id"))?attrs.get("id").toString():"";
+        //name
+        String name = ToolUtil.isNotEmpty(attrs.get("name"))?attrs.get("name").toString():"";
+        //分割线
+        String underline = ToolUtil.isNotEmpty(attrs.get("underline"))?attrs.get("underline").toString():"";
+        //onchange事件
+        String onchange = ToolUtil.isNotEmpty(attrs.get("onchange"))?attrs.get("onchange").toString():"";
+        //readonly属性
+        String readonly = ToolUtil.isNotEmpty(attrs.get("readonly"))?attrs.get("readonly").toString():"";
+        //disabled属性
+        String disabled = ToolUtil.isNotEmpty(attrs.get("disabled"))?attrs.get("disabled").toString():"";
+        //searchnum 下拉选项数量达到多少启用搜索,默认10
+        int searchnum = ToolUtil.isNum(attrs.get("searchnum"))?Integer.parseInt(attrs.get("searchnum").toString()):10;
+        //根据code查询字典数据
+        List<Dict>  list = iDictService.selectByParentCode(code);
+
+        StringBuffer html = new StringBuffer();
+        html.append("<div class=\"form-group\">\r\n");
+        html.append("<label class=\"col-sm-3 control-label\">"+label+"</label>\r\n");
+        html.append("<div class=\"col-sm-9\">\r\n");
+
+        //单选按钮
+        if("radio".equals(type)) {
+
+            list.forEach(obj->{
+                html.append("<label class=\"radio-inline i-checks\">\r\n<input type=\"radio\" ");
+                //判断控件是否禁用
+                if("true".equals(disabled)||"disabled".equals(disabled)) {
+                    html.append("disabled ");
+                }else{
+                    if(ToolUtil.isNotEmpty(name)){
+                        html.append("name=\""+name+"\" ");
+                    }
+                }
+                if("true".equals(readonly)||"disabled".equals(readonly)) {
+                    html.append("disabled ");
+                }
+                if(ToolUtil.isNotEmpty(value)&&value.equals(obj.getCode())){
+                    html.append("checked ");
+                }
+
+                html.append("value=\""+obj.getCode()+"\" >"+obj.getName()+"</label>\r\n");
+            });
+
+        //多选按钮
+        }else if("checkbox".equals(type)){
+            list.forEach(obj->{
+                html.append("<label class=\"checkbox-inline i-checks\">\r\n<input type=\"checkbox\" ");
+                //判断控件是否禁用
+                if("true".equals(disabled)||"disabled".equals(disabled)) {
+                    html.append("disabled ");
+                }else{
+                    if(ToolUtil.isNotEmpty(name)){
+                        html.append("name=\""+name+"\" ");
+                    }
+                }
+                if("true".equals(readonly)||"disabled".equals(readonly)) {
+                    html.append("disabled ");
+                }
+                if(ToolUtil.isNotEmpty(value)&&value.equals(obj.getCode())){
+                    html.append("checked ");
+                }
+
+                html.append("value=\""+obj.getCode()+"\" >"+obj.getName()+"</label>\r\n");
+            });
+
+        //默认select
+        }else{
+            //开启多选
+            if("true".equals(multiple)){
+                if(list.size()>=searchnum) {
+                    html.append("<select multiple ");
+                }else{
+                    html.append("<select multiple=\"multiple\" size=\"10\" ");
+                }
+            }else{
+                html.append("<select ");
+            }
+
+            //判断控件是否启用提示
+            if(ToolUtil.isNotEmpty(placeholder)){
+                html.append(" data-placeholder=\""+placeholder+"\" ");
+            }
+
+            //判断控件是否禁用
+            if("true".equals(disabled)||"disabled".equals(disabled)) {
+                html.append("disabled=\"disabled\" ");
+            }else{
+                //启用
+                if(ToolUtil.isNotEmpty(id)){
+                    html.append("id=\""+id+"\" ");
+                }
+
+                if(ToolUtil.isNotEmpty(name)){
+                    html.append("name=\""+name+"\" ");
+                }
+            }
+
+            //判断是否启用搜索框
+            //判断下拉数据,如果查询出来的条数达到启用搜索的数量就启用
+
+
+            if(list.size()>=searchnum){
+                html.append("class=\"form-control chosen-select\" style=\"width:"+width+"px\"  tabindex=\"1\" \r\n");
+            } else{
+                html.append("class=\"form-control\" style=\"width:"+width+"px\" \r\n");
+            }
+
+            //判断控件是否只读
+            if("true".equals(readonly)||"readonly".equals(readonly)) {
+                if(list.size()>=searchnum) {
+                    html.append("disabled=\"disabled\" ");
+                }else{
+                    html.append("onfocus=\"this.defaultIndex=this.selectedIndex;\" onchange=\"this.selectedIndex=this.defaultIndex;\" ");
+                }
+            }
+
+            //判断是否绑定onchange事件
+            if(ToolUtil.isNotEmpty(onchange)){
+                html.append("onchange=\""+onchange+"($(this).children('option:selected').val())\" ");
+            }
+
+            html.append(">");
+            if(ToolUtil.isNotEmpty(placeholder)){
+                html.append("<option value=\"\">"+placeholder+"</option>\r\n");
+            }
+            //将查询出来的数据添加到select中
+            list.forEach(obj->{
+                if(ToolUtil.isNotEmpty(value)&&value.equals(obj.getCode())){
+                    html.append("<option selected value=\""+obj.getCode()+"\">"+obj.getName()+"</option>\r\n");
+                }else{
+                    html.append("<option value=\""+obj.getCode()+"\">"+obj.getName()+"</option>\r\n");
+                }
+            });
+            html.append("</select>\r\n");
+        }
+
+        html.append("</div>\r\n</div>\r\n");
+        //判断是否添加分割线
+        if(ToolUtil.isNotEmpty(underline) && "true".equals(underline)) {
+            html.append("<div class=\"hr-line-dashed\" ></div >\r\n");
+        }
+
+        try{
+            this.ctx.byteWriter.writeString(html.toString());
+        }catch (IOException e){
+            throw new RuntimeException("输出字典标签错误");
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/ApiMenuFilter.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/ApiMenuFilter.java
new file mode 100644
index 0000000..ffba2f2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/ApiMenuFilter.java
@@ -0,0 +1,36 @@
+package com.stylefeng.guns.core.util;
+
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.config.properties.GunsProperties;
+import com.stylefeng.guns.core.node.MenuNode;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * api接口文档显示过滤
+ *
+ * @author fengshuonan
+ * @date 2017-08-17 16:55
+ */
+public class ApiMenuFilter extends MenuNode {
+
+    public static List<MenuNode> build(List<MenuNode> nodes) {
+
+        //如果关闭了接口文档,则不显示接口文档菜单
+        GunsProperties gunsProperties = SpringContextHolder.getBean(GunsProperties.class);
+        if (!gunsProperties.getSwaggerOpen()) {
+            List<MenuNode> menuNodesCopy = new ArrayList<>();
+            for (MenuNode menuNode : nodes) {
+                if (Const.API_MENU_NAME.equals(menuNode.getName())) {
+                    continue;
+                } else {
+                    menuNodesCopy.add(menuNode);
+                }
+            }
+            nodes = menuNodesCopy;
+        }
+
+        return nodes;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/Contrast.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/Contrast.java
new file mode 100644
index 0000000..72facc7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/Contrast.java
@@ -0,0 +1,211 @@
+package com.stylefeng.guns.core.util;
+
+import com.stylefeng.guns.core.common.constant.dictmap.base.AbstractDictMap;
+import com.stylefeng.guns.core.common.constant.dictmap.factory.DictFieldWarpperFactory;
+import com.stylefeng.guns.core.support.StrKit;
+
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * 对比两个对象的变化的工具类
+ *
+ * @author fengshuonan
+ * @Date 2017/3/31 10:36
+ */
+public class Contrast {
+
+    //记录每个修改字段的分隔符
+    public static final String separator = ";;;";
+
+    /**
+     * 比较两个对象,并返回不一致的信息
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 19:34
+     */
+    public static String contrastObj(Object pojo1, Object pojo2) {
+        String str = "";
+        try {
+            Class clazz = pojo1.getClass();
+            Field[] fields = pojo1.getClass().getDeclaredFields();
+            int i = 1;
+            for (Field field : fields) {
+                if ("serialVersionUID".equals(field.getName())) {
+                    continue;
+                }
+                PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
+                Method getMethod = pd.getReadMethod();
+                Object o1 = getMethod.invoke(pojo1);
+                Object o2 = getMethod.invoke(pojo2);
+                if (o1 == null || o2 == null) {
+                    continue;
+                }
+                if (o1 instanceof Date) {
+                    o1 = DateUtil.getDay((Date) o1);
+                }
+                if (!o1.toString().equals(o2.toString())) {
+                    if (i != 1) {
+                        str += separator;
+                    }
+                    str += "字段名称" + field.getName() + ",旧值:" + o1 + ",新值:" + o2;
+                    i++;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return str;
+    }
+
+    /**
+     * 比较两个对象pojo1和pojo2,并输出不一致信息
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 19:34
+     */
+    public static String contrastObj(Class dictClass, String key, Object pojo1, Map<String, String> pojo2) throws IllegalAccessException, InstantiationException {
+        AbstractDictMap dictMap = (AbstractDictMap) dictClass.newInstance();
+        String str = parseMutiKey(dictMap, key, pojo2) + separator;
+        try {
+            Class clazz = pojo1.getClass();
+            Field[] fields = pojo1.getClass().getDeclaredFields();
+            int i = 1;
+            for (Field field : fields) {
+                if ("serialVersionUID".equals(field.getName())) {
+                    continue;
+                }
+                PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz);
+                Method getMethod = pd.getReadMethod();
+                Object o1 = getMethod.invoke(pojo1);
+                Object o2 = pojo2.get(StrKit.firstCharToLowerCase(getMethod.getName().substring(3)));
+                if (o1 == null || o2 == null) {
+                    continue;
+                }
+                if (o1 instanceof Date) {
+                    o1 = DateUtil.getDay((Date) o1);
+                } else if (o1 instanceof Integer) {
+                    o2 = Integer.parseInt(o2.toString());
+                }
+                if (!o1.toString().equals(o2.toString())) {
+                    if (i != 1) {
+                        str += separator;
+                    }
+                    String fieldName = dictMap.get(field.getName());
+                    String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(field.getName());
+                    if (fieldWarpperMethodName != null) {
+                        Object o1Warpper = DictFieldWarpperFactory.createFieldWarpper(o1, fieldWarpperMethodName);
+                        Object o2Warpper = DictFieldWarpperFactory.createFieldWarpper(o2, fieldWarpperMethodName);
+                        str += "字段名称:" + fieldName + ",旧值:" + o1Warpper + ",新值:" + o2Warpper;
+                    } else {
+                        str += "字段名称:" + fieldName + ",旧值:" + o1 + ",新值:" + o2;
+                    }
+                    i++;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return str;
+    }
+
+    /**
+     * 比较两个对象pojo1和pojo2,并输出不一致信息
+     *
+     * @author stylefeng
+     * @Date 2017/5/9 19:34
+     */
+    public static String contrastObjByName(Class dictClass, String key, Object pojo1, Map<String, String> pojo2) throws IllegalAccessException, InstantiationException {
+        AbstractDictMap dictMap = (AbstractDictMap) dictClass.newInstance();
+        String str = parseMutiKey(dictMap, key, pojo2) + separator;
+        try {
+            Class clazz = pojo1.getClass();
+            Field[] fields = pojo1.getClass().getDeclaredFields();
+            int i = 1;
+            for (Field field : fields) {
+                if ("serialVersionUID".equals(field.getName())) {
+                    continue;
+                }
+                String prefix = "get";
+                int prefixLength = 3;
+                if (field.getType().getName().equals("java.lang.Boolean")) {
+                    prefix = "is";
+                    prefixLength = 2;
+                }
+                Method getMethod = null;
+                try {
+                    getMethod = clazz.getDeclaredMethod(prefix + StrKit.firstCharToUpperCase(field.getName()));
+                } catch (java.lang.NoSuchMethodException e) {
+                    System.err.println("this className:" + clazz.getName() + " is not methodName: " + e.getMessage());
+                    continue;
+                }
+                Object o1 = getMethod.invoke(pojo1);
+                Object o2 = pojo2.get(StrKit.firstCharToLowerCase(getMethod.getName().substring(prefixLength)));
+                if (o1 == null || o2 == null) {
+                    continue;
+                }
+                if (o1 instanceof Date) {
+                    o1 = DateUtil.getDay((Date) o1);
+                } else if (o1 instanceof Integer) {
+                    o2 = Integer.parseInt(o2.toString());
+                }
+                if (!o1.toString().equals(o2.toString())) {
+                    if (i != 1) {
+                        str += separator;
+                    }
+                    String fieldName = dictMap.get(field.getName());
+                    String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(field.getName());
+                    if (fieldWarpperMethodName != null) {
+                        Object o1Warpper = DictFieldWarpperFactory.createFieldWarpper(o1, fieldWarpperMethodName);
+                        Object o2Warpper = DictFieldWarpperFactory.createFieldWarpper(o2, fieldWarpperMethodName);
+                        str += "字段名称:" + fieldName + ",旧值:" + o1Warpper + ",新值:" + o2Warpper;
+                    } else {
+                        str += "字段名称:" + fieldName + ",旧值:" + o1 + ",新值:" + o2;
+                    }
+                    i++;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return str;
+    }
+
+    /**
+     * 解析多个key(逗号隔开的)
+     *
+     * @author stylefeng
+     * @Date 2017/5/16 22:19
+     */
+    public static String parseMutiKey(AbstractDictMap dictMap, String key, Map<String, String> requests) {
+        StringBuilder sb = new StringBuilder();
+        if (key.indexOf(",") != -1) {
+            String[] keys = key.split(",");
+            for (String item : keys) {
+                String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(item);
+                String value = requests.get(item);
+                if (fieldWarpperMethodName != null) {
+                    Object valueWarpper = DictFieldWarpperFactory.createFieldWarpper(value, fieldWarpperMethodName);
+                    sb.append(dictMap.get(item) + "=" + valueWarpper + ",");
+                } else {
+                    sb.append(dictMap.get(item) + "=" + value + ",");
+                }
+            }
+            return StrKit.removeSuffix(sb.toString(), ",");
+        } else {
+            String fieldWarpperMethodName = dictMap.getFieldWarpperMethodName(key);
+            String value = requests.get(key);
+            if (fieldWarpperMethodName != null) {
+                Object valueWarpper = DictFieldWarpperFactory.createFieldWarpper(value, fieldWarpperMethodName);
+                sb.append(dictMap.get(key) + "=" + valueWarpper);
+            } else {
+                sb.append(dictMap.get(key) + "=" + value);
+            }
+            return sb.toString();
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/GetMobile.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/GetMobile.java
new file mode 100644
index 0000000..fd3ada9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/GetMobile.java
@@ -0,0 +1,87 @@
+package com.stylefeng.guns.core.util;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.HttpResponse;
+import org.apache.http.util.EntityUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+public class GetMobile {
+
+    public static String getPhone(String accessToken,String androidOrIos){
+
+
+        String host = "http://verifystar.market.alicloudapi.com";
+        String path = "/api/v1/mobile/info";
+        String method = "POST";
+        String appcode = "b7d32437d08149099457dcb50fb57df2";
+        Map<String, String> headers = new HashMap<String, String>();
+        //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
+        headers.put("Authorization", "APPCODE " + appcode);
+        //根据API的要求,定义相对应的Content-Type
+        headers.put("Content-Type", "application/json; charset=UTF-8");
+        //需要给X-Ca-Nonce的值生成随机字符串,每次请求不能相同
+        headers.put("X-Ca-Nonce", UUID.randomUUID().toString());
+        Map<String, String> querys = new HashMap<String, String>();
+        if(androidOrIos.equals("android")){
+            querys.put("appkey", "5f02e3cc978eea07661bde20");
+            querys.put("verifyId", "");
+        }else{
+            querys.put("appkey", "5ee43367978eea081640dca7");
+            querys.put("verifyId", "");
+        }
+        /*;*/
+        String bodys = "{\"token\":\""+accessToken+"\"}";
+        try {
+            /**
+             * 重要提示如下:
+             * HttpUtils请从
+             * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
+             * 下载
+             *
+             * 相应的依赖请参照
+             * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
+             */
+
+            HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
+            System.err.println(response.toString());
+            return  EntityUtils.toString(response.getEntity());
+            //获取response的body
+            //System.out.println(EntityUtils.toString(response.getEntity()));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return  null;
+        }
+       /* DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI4G9Zez9H4B36vakPXGy4", "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ");
+        IAcsClient client = new DefaultAcsClient(profile);
+
+        GetMobileRequest request = new GetMobileRequest();
+        request.setRegionId("cn-hangzhou");
+        request.setAccessToken(accessToken);
+
+        try {
+            GetMobileResponse response = client.getAcsResponse(request);
+            才
+        } catch (ServerException e) {
+            e.printStackTrace();
+            return  null;
+        } catch (ClientException e) {
+            System.out.println("ErrCode:" + e.getErrCode());
+            System.out.println("ErrMsg:" + e.getErrMsg());
+            System.out.println("RequestId:" + e.getRequestId());
+            return  null;
+        }*/
+    }
+    public static void main(String[] args) {
+        //String response = GetMobile.getPhone("eyAgIm8iIDogImlPUyIsICAiayIgOiAiY2lNVmw2S0ZyM0xlWlJOQVNSNTdZXC9WV1FZS3BCZlVSR1pQa1I5OFJFWmVJWmF3OHJGM0NVSDZQZVwvNzRPVTBSalpoZE5QT002NHl3b05yZlJkWUlrUkxVY29hdm10Rkg1ODhrNjJmXC9vdTEzalN2ZDduZDlscXFLWm5Ca2hQZzBBa09yS2M1dlwvWWY0U05lUjd4RHh6MUJoOUVYbkxnbHFEclZqVW85TXQ5XC9ieXk2SmVNVVB3UzhqRHM2N3VwUEg0SWRTNElqUUxCUXVHb1FyM1ltb1lpUnQ2R29YWlJCRzhDbndUTVBrSHM4YXNMQzRGVUpmZHcxbFlzN0srNGlyTGJSdXVacTg1NW9NMEo5b05FOExmdDZGTFpmVWVQY0d0WlwvTnhIMnFXM1ZIU3NtUEgxdHlkTzdUeGRmVUM1cEo2SmhRclVvNEdIazBXVHF3RTlCYlFnPT0iLCAgImMiIDogIkVjS0dHSzB5TjA2Tm9vSjhYV1h1K3d6eGdodElDaGpqOUtHRlliSjl4ZjhQMUR6UERsYVdRcGcxMHg5SkdNV2hcL2wyVDd4bXNxSUZmWERDZlBjZ05NdFY2dVZueEU1aGFTUUdPbFowekp4Z2JPZ3ZrR2ZkbVJvOGZFSGhEQ0czM1RYNHR5ZHJXUGFuQTBBSmo3VjljaGN0d25UT0ZzSG82WlhLOWZsQUlSbHpmNE1yaGZsRkhtTVRoejQ1UG01cHhtSlh5N3EyVlZTK0tEbU9GU2lzNlwvMnByK24zQWttazYxZ0RVUUhYV2FoVFwvYzc0dzhrTDhWYlliM3dOc0VkVEh2ZDhzYjlPbFNpVHNJUHNFUVJ6Wm9JRFJUaE5pWVg1U3VwNklQXC9LTFlLOFdaSlJWamU2QUpLT2JOakEybTlleTM0Sys2MUhtQktPNmNwTlZ4TTJITlJERjRzcG9lWStYdnhTT1pVcExaSWxXd3NFdUtUeVVBSzJUMHpOUmZBQVhlOWR6alBcL2lHSFU3aitwUWlaaU1XbHg5WGtIREM3MjNkXC80b3d2dEluem9yVlBNNjJQTzJsWWttOEt4TVVTYlRRTnBVNGZzRzlXcHB0cFJRR0JFUTYyNmxlNFFZeWdaSWxjZXlcL1VJOWlLWDVWTzhCU01VUnNoZUdNU29HejF2dmw2QUVmdTdBNm0raUhUYkxOd01uQkM3VHZ4TlYxNmd4M2dWRGtha0ZGNEdZTjZsWm0zMkNnT2hVakhlODMrUXFHNXhNNkZxUlBnMWN0QzRRN05DZFpHNUN5UEZVd2dRcUx3MFFWaE9IRnNZTFwvU3p3T1JUMFFlb0h3T1piZ3FmNU96T0k1TFwvelRqNEFJV3ZqejlteWNJZVc3cXMzXC9IdnJXck5GM3lSZCtYTml5a2d6d1RDMnZjaXRrSkszSVBENjlEVVRVVzBCNllvdng2ako5QW5xZXdUc1J3Nlp4ZXcra0xpXC9HTlB0K0hHRGVjclVZcFpwOFQ5ckN6QkM0Z0ZEa0ZOQ0Z2UkJKSE5JVGkrRGNUeWhVZz09In0=","ios");
+        JSONObject json = JSONObject.parseObject("{\"success\":true,\"data\":{\"mobile\":\"15608199082\",\"score\":null,\"activeScore\":null,\"aesEncryptKey\":null},\"code\":2001,\"message\":\"gain mobile&#39;s result success\",\"requestId\":\"21D1E797-2B22-4D0E-B31D-AC470F7E06E7\"}");
+        String phone = json.getJSONObject("data").getString("mobile");
+        //JSONObject json = JSONObject.parseObject(response);
+        if(json.getInteger("code")!=2003){
+            System.out.println("1111="+ phone);
+        }
+        System.out.println( phone);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/HttpUtils.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/HttpUtils.java
new file mode 100644
index 0000000..f32411f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/HttpUtils.java
@@ -0,0 +1,312 @@
+package com.stylefeng.guns.core.util;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.conn.ClientConnectionManager;
+import org.apache.http.conn.scheme.Scheme;
+import org.apache.http.conn.scheme.SchemeRegistry;
+import org.apache.http.conn.ssl.SSLSocketFactory;
+import org.apache.http.entity.ByteArrayEntity;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.message.BasicNameValuePair;
+
+public class HttpUtils {
+
+    /**
+     * get
+     *
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doGet(String host, String path, String method,
+                                     Map<String, String> headers,
+                                     Map<String, String> querys)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpGet request = new HttpGet(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        return httpClient.execute(request);
+    }
+
+    /**
+     * post form
+     *
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @param bodys
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doPost(String host, String path, String method,
+                                      Map<String, String> headers,
+                                      Map<String, String> querys,
+                                      Map<String, String> bodys)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpPost request = new HttpPost(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        if (bodys != null) {
+            List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
+
+            for (String key : bodys.keySet()) {
+                nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key)));
+            }
+            UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8");
+            formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8");
+            request.setEntity(formEntity);
+        }
+
+        return httpClient.execute(request);
+    }
+
+    /**
+     * Post String
+     *
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @param body
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doPost(String host, String path, String method,
+                                      Map<String, String> headers,
+                                      Map<String, String> querys,
+                                      String body)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpPost request = new HttpPost(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        if (StringUtils.isNotBlank(body)) {
+            request.setEntity(new StringEntity(body, "utf-8"));
+        }
+
+        return httpClient.execute(request);
+    }
+
+    /**
+     * Post stream
+     *
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @param body
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doPost(String host, String path, String method,
+                                      Map<String, String> headers,
+                                      Map<String, String> querys,
+                                      byte[] body)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpPost request = new HttpPost(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        if (body != null) {
+            request.setEntity(new ByteArrayEntity(body));
+        }
+
+        return httpClient.execute(request);
+    }
+
+    /**
+     * Put String
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @param body
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doPut(String host, String path, String method,
+                                     Map<String, String> headers,
+                                     Map<String, String> querys,
+                                     String body)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpPut request = new HttpPut(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        if (StringUtils.isNotBlank(body)) {
+            request.setEntity(new StringEntity(body, "utf-8"));
+        }
+
+        return httpClient.execute(request);
+    }
+
+    /**
+     * Put stream
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @param body
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doPut(String host, String path, String method,
+                                     Map<String, String> headers,
+                                     Map<String, String> querys,
+                                     byte[] body)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpPut request = new HttpPut(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        if (body != null) {
+            request.setEntity(new ByteArrayEntity(body));
+        }
+
+        return httpClient.execute(request);
+    }
+
+    /**
+     * Delete
+     *
+     * @param host
+     * @param path
+     * @param method
+     * @param headers
+     * @param querys
+     * @return
+     * @throws Exception
+     */
+    public static HttpResponse doDelete(String host, String path, String method,
+                                        Map<String, String> headers,
+                                        Map<String, String> querys)
+            throws Exception {
+        HttpClient httpClient = wrapClient(host);
+
+        HttpDelete request = new HttpDelete(buildUrl(host, path, querys));
+        for (Map.Entry<String, String> e : headers.entrySet()) {
+            request.addHeader(e.getKey(), e.getValue());
+        }
+
+        return httpClient.execute(request);
+    }
+
+    private static String buildUrl(String host, String path, Map<String, String> querys) throws UnsupportedEncodingException {
+        StringBuilder sbUrl = new StringBuilder();
+        sbUrl.append(host);
+        if (!StringUtils.isBlank(path)) {
+            sbUrl.append(path);
+        }
+        if (null != querys) {
+            StringBuilder sbQuery = new StringBuilder();
+            for (Map.Entry<String, String> query : querys.entrySet()) {
+                if (0 < sbQuery.length()) {
+                    sbQuery.append("&");
+                }
+                if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) {
+                    sbQuery.append(query.getValue());
+                }
+                if (!StringUtils.isBlank(query.getKey())) {
+                    sbQuery.append(query.getKey());
+                    if (!StringUtils.isBlank(query.getValue())) {
+                        sbQuery.append("=");
+                        sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8"));
+                    }
+                }
+            }
+            if (0 < sbQuery.length()) {
+                sbUrl.append("?").append(sbQuery);
+            }
+        }
+
+        return sbUrl.toString();
+    }
+
+    private static HttpClient wrapClient(String host) {
+        HttpClient httpClient = new DefaultHttpClient();
+        if (host.startsWith("https://")) {
+            sslClient(httpClient);
+        }
+
+        return httpClient;
+    }
+
+    private static void sslClient(HttpClient httpClient) {
+        try {
+            SSLContext ctx = SSLContext.getInstance("TLS");
+            X509TrustManager tm = new X509TrustManager() {
+                public X509Certificate[] getAcceptedIssuers() {
+                    return null;
+                }
+                public void checkClientTrusted(X509Certificate[] xcs, String str) {
+
+                }
+                public void checkServerTrusted(X509Certificate[] xcs, String str) {
+
+                }
+            };
+            ctx.init(null, new TrustManager[] { tm }, null);
+            SSLSocketFactory ssf = new SSLSocketFactory(ctx);
+            ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
+            ClientConnectionManager ccm = httpClient.getConnectionManager();
+            SchemeRegistry registry = ccm.getSchemeRegistry();
+            registry.register(new Scheme("https", 443, ssf));
+        } catch (KeyManagementException ex) {
+            throw new RuntimeException(ex);
+        } catch (NoSuchAlgorithmException ex) {
+            throw new RuntimeException(ex);
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/JwtTokenUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/JwtTokenUtil.java
new file mode 100644
index 0000000..0b2eb41
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/JwtTokenUtil.java
@@ -0,0 +1,127 @@
+package com.stylefeng.guns.core.util;
+
+import com.stylefeng.guns.core.common.constant.JwtConstants;
+import io.jsonwebtoken.*;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * <p>jwt token工具类</p>
+ * <pre>
+ *     jwt的claim里一般包含以下几种数据:
+ *         1. iss -- token的发行者
+ *         2. sub -- 该JWT所面向的用户
+ *         3. aud -- 接收该JWT的一方
+ *         4. exp -- token的失效时间
+ *         5. nbf -- 在此时间段之前,不会被处理
+ *         6. iat -- jwt发布时间
+ *         7. jti -- jwt唯一标识,防止重复使用
+ * </pre>
+ *
+ * @author fengshuonan
+ * @Date 2017/8/25 10:59
+ */
+@Component
+public class JwtTokenUtil {
+
+    /**
+     * 获取用户名从token中
+     */
+    public static String getUsernameFromToken(String token) {
+        return getClaimFromToken(token).getSubject();
+    }
+
+    /**
+     * 获取jwt发布时间
+     */
+    public static Date getIssuedAtDateFromToken(String token) {
+        return getClaimFromToken(token).getIssuedAt();
+    }
+
+    /**
+     * 获取jwt失效时间
+     */
+    public static Date getExpirationDateFromToken(String token) {
+        return getClaimFromToken(token).getExpiration();
+    }
+
+    /**
+     * 获取jwt接收者
+     */
+    public static String getAudienceFromToken(String token) {
+        return getClaimFromToken(token).getAudience();
+    }
+
+    /**
+     * 获取私有的jwt claim
+     */
+    public static String getPrivateClaimFromToken(String token, String key) {
+        return getClaimFromToken(token).get(key).toString();
+    }
+
+    /**
+     * 获取jwt的payload部分
+     */
+    public static Claims getClaimFromToken(String token) {
+        return Jwts.parser()
+                .setSigningKey(JwtConstants.SECRET)
+                .parseClaimsJws(token)
+                .getBody();
+    }
+
+    /**
+     * 解析token是否正确,不正确会报异常<br>
+     */
+    public static void parseToken(String token) throws JwtException {
+        Jwts.parser().setSigningKey(JwtConstants.SECRET).parseClaimsJws(token).getBody();
+    }
+
+    /**
+     * <pre>
+     *  验证token是否失效
+     *  true:过期   false:没过期
+     * </pre>
+     */
+    public static Boolean isTokenExpired(String token) {
+        try {
+            final Date expiration = getExpirationDateFromToken(token);
+            return expiration.before(new Date());
+        } catch (ExpiredJwtException expiredJwtException) {
+            return true;
+        }
+    }
+
+    /**
+     * 生成token(通过用户名和签名时候用的随机数)
+     */
+    public static String generateToken(String userId) {
+        Map<String, Object> claims = new HashMap<>();
+        return doGenerateToken(claims, userId);
+    }
+
+    /**
+     * 生成token
+     */
+    private static String doGenerateToken(Map<String, Object> claims, String subject) {
+        final Date createdDate = new Date();
+        final Date expirationDate = new Date(createdDate.getTime() + JwtConstants.EXPIRATION * 1000);
+
+        return Jwts.builder()
+                .setClaims(claims)
+                .setSubject(subject)
+                .setIssuedAt(createdDate)
+                .setExpiration(expirationDate)
+                .signWith(SignatureAlgorithm.HS512, JwtConstants.SECRET)
+                .compact();
+    }
+
+    /**
+     * 获取混淆MD5签名用的随机字符串
+     */
+    public static String getRandomKey() {
+        return ToolUtil.getRandomString(6);
+    }
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/KaptchaUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/KaptchaUtil.java
new file mode 100644
index 0000000..719de81
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/core/util/KaptchaUtil.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.core.util;
+
+import com.stylefeng.guns.config.properties.GunsProperties;
+
+/**
+ * 验证码工具类
+ */
+public class KaptchaUtil {
+
+    /**
+     * 获取验证码开关
+     */
+    public static Boolean getKaptchaOnOff() {
+        return SpringContextHolder.getBean(GunsProperties.class).getKaptchaOpen();
+    }
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java
new file mode 100644
index 0000000..a3fc566
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/controller/OrderCharteredCarController.java
@@ -0,0 +1,59 @@
+package com.stylefeng.guns.modular.CharteredCar.controller;
+
+import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+@Api
+@RestController
+@RequestMapping("/api/orderCharteredCar")
+public class OrderCharteredCarController {
+
+    @Autowired
+    private IOrderCharteredCarService orderCharteredCarService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+    @ResponseBody
+    @RequestMapping(value = "/orderCharteredCar", method = RequestMethod.POST)
+    @ApiOperation(value = "提交包车订单", tags = {"用户端-包车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "出行时间(2020-09-21 16:00:00)", name = "travelTime", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "用车时长", name = "carTime", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "服务车型id", name = "serverCarModelId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "车型用途", name = "modelUse", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "出行人数", name = "peopleNumber", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "联系人", name = "contactPerson", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "联系电话", name = "contactPhone", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "下单地点经纬度(103.1233,30.135412)", name = "placeLonLat", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil orderCharteredCar(Date travelTime, Integer carTime, Integer serverCarModelId, String modelUse, Integer peopleNumber,
+                                        String contactPerson, String contactPhone, String placeLonLat, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderCharteredCarService.orderCharteredCar(travelTime, carTime, serverCarModelId, modelUse, peopleNumber, contactPerson, contactPhone, placeLonLat, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/OrderCharteredCarMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/OrderCharteredCarMapper.java
new file mode 100644
index 0000000..8a7481d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/OrderCharteredCarMapper.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.CharteredCar.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface OrderCharteredCarMapper extends BaseMapper<OrderCharteredCar> {
+
+
+    List<OrderCharteredCar> query(@Param("start") Date start, @Param("end") Date end);
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
+                                               @Param("size") Integer size);
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/mapping/OrderCharteredCarMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/mapping/OrderCharteredCarMapper.xml
new file mode 100644
index 0000000..ca3d4e2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/dao/mapping/OrderCharteredCarMapper.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.CharteredCar.dao.OrderCharteredCarMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="companyId" property="companyId"/>
+        <result column="orderNumber" property="orderNumber"/>
+        <result column="traveltime" property="traveltime"/>
+        <result column="carTime" property="carTime"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+        <result column="modelUse" property="modelUse"/>
+        <result column="peopleNumber" property="peopleNumber"/>
+        <result column="contactPerson" property="contactPerson"/>
+        <result column="contactPhone" property="contactPhone"/>
+        <result column="state" property="state"/>
+        <result column="remark" property="remark"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="OrderCharteredCar">
+        select
+        id as id,
+        userId as userId,
+        companyId as companyId,
+        orderNumber as orderNumber,
+        traveltime as traveltime,
+        carTime as carTime,
+        serverCarModelId as serverCarModelId,
+        modelUse as modelUse,
+        peopleNumber as peopleNumber,
+        contactPerson as contactPerson,
+        contactPhone as contactPhone,
+        state as state,
+        remark as remark,
+        isDelete as isDelete,
+        insertTime as insertTime
+        from t_order_chartered_car where isDelete = 1 and insertTime between #{start} and #{end}
+    </select>
+
+
+
+    <select id="queryMyOrderList" resultType="map">
+        select
+        id as orderId,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
+        DATE_FORMAT(traveltime, '%Y-%m-%d') as time,
+        carTime as carTime,
+        (select name from t_server_carmodel where state = 1 and type = 3 and id = a.serverCarModelId) as serverCarModel,
+        (6) as orderType,
+        state as state
+        from t_order_chartered_car as a where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
new file mode 100644
index 0000000..792fad4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/model/OrderCharteredCar.java
@@ -0,0 +1,232 @@
+package com.stylefeng.guns.modular.CharteredCar.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 包车订单
+ */
+@TableName("t_order_chartered_car")
+public class OrderCharteredCar {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 订单编号
+     */
+    @TableField("orderNumber")
+    private String orderNumber;
+    /**
+     * 出行时间
+     */
+    @TableField("traveltime")
+    private Date traveltime;
+    /**
+     * 用车时长
+     */
+    @TableField("carTime")
+    private Integer carTime;
+    /**
+     * 车型
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+    /**
+     * 车型用途
+     */
+    @TableField("modelUse")
+    private String modelUse;
+    /**
+     * 乘车人数
+     */
+    @TableField("peopleNumber")
+    private Integer peopleNumber;
+    /**
+     * 联系人
+     */
+    @TableField("contactPerson")
+    private String contactPerson;
+    /**
+     * 联系电话
+     */
+    @TableField("contactPhone")
+    private String contactPhone;
+    /**
+     * 状态(1=待处理,2=已处理,3=已取消)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 删除状态(1=否,2=是)
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getOrderNumber() {
+        return orderNumber;
+    }
+
+    public void setOrderNumber(String orderNumber) {
+        this.orderNumber = orderNumber;
+    }
+
+    public Date getTraveltime() {
+        return traveltime;
+    }
+
+    public void setTraveltime(Date traveltime) {
+        this.traveltime = traveltime;
+    }
+
+    public Integer getCarTime() {
+        return carTime;
+    }
+
+    public void setCarTime(Integer carTime) {
+        this.carTime = carTime;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public String getModelUse() {
+        return modelUse;
+    }
+
+    public void setModelUse(String modelUse) {
+        this.modelUse = modelUse;
+    }
+
+    public Integer getPeopleNumber() {
+        return peopleNumber;
+    }
+
+    public void setPeopleNumber(Integer peopleNumber) {
+        this.peopleNumber = peopleNumber;
+    }
+
+    public String getContactPerson() {
+        return contactPerson;
+    }
+
+    public void setContactPerson(String contactPerson) {
+        this.contactPerson = contactPerson;
+    }
+
+    public String getContactPhone() {
+        return contactPhone;
+    }
+
+    public void setContactPhone(String contactPhone) {
+        this.contactPhone = contactPhone;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderCharteredCar{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", companyId=" + companyId +
+                ", orderNumber='" + orderNumber + '\'' +
+                ", traveltime=" + traveltime +
+                ", carTime=" + carTime +
+                ", serverCarModelId=" + serverCarModelId +
+                ", modelUse='" + modelUse + '\'' +
+                ", peopleNumber=" + peopleNumber +
+                ", contactPerson='" + contactPerson + '\'' +
+                ", contactPhone='" + contactPhone + '\'' +
+                ", state=" + state +
+                ", remark='" + remark + '\'' +
+                ", isDelete=" + isDelete +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java
new file mode 100644
index 0000000..dbe6b1e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/IOrderCharteredCarService.java
@@ -0,0 +1,58 @@
+package com.stylefeng.guns.modular.CharteredCar.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderCharteredCarService extends IService<OrderCharteredCar> {
+
+
+    /**
+     * 下单
+     * @param traveltime
+     * @param carTime
+     * @param serverCarModelId
+     * @param modelUse
+     * @param peopleNumber
+     * @param contactPerson
+     * @param contactPhone
+     * @param placeLonLat
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil orderCharteredCar(Date travelTime, Integer carTime, Integer serverCarModelId, String modelUse, Integer peopleNumber,
+                                 String contactPerson, String contactPhone, String placeLonLat, Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+
+
+    /**
+     * 添加取消
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception;
+
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
new file mode 100644
index 0000000..7be0df6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/CharteredCar/server/impl/OrderCharteredCarServiceImpl.java
@@ -0,0 +1,153 @@
+package com.stylefeng.guns.modular.CharteredCar.server.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.CharteredCar.dao.OrderCharteredCarMapper;
+import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar;
+import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.model.OrderCancel;
+import com.stylefeng.guns.modular.system.model.SensitiveWords;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.service.ICompanyCityService;
+import com.stylefeng.guns.modular.system.service.IOrderCancelService;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.util.DateUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class OrderCharteredCarServiceImpl extends ServiceImpl<OrderCharteredCarMapper, OrderCharteredCar> implements IOrderCharteredCarService {
+
+    @Resource
+    private OrderCharteredCarMapper orderCharteredCarMapper;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+
+
+    /**
+     * 保存数据
+     * @param traveltime
+     * @param carTime
+     * @param modelUse
+     * @param peopleNumber
+     * @param contactPerson
+     * @param contactPhone
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil orderCharteredCar(Date travelTime, Integer carTime, Integer serverCarModelId, String modelUse, Integer peopleNumber,
+                                        String contactPerson, String contactPhone, String placeLonLat, Integer uid) throws Exception {
+        OrderCharteredCar orderCharteredCar = new OrderCharteredCar();
+        orderCharteredCar.setUserId(uid);
+        Company query = companyCityService.query(placeLonLat.split(",")[0], placeLonLat.split(",")[1]);
+        if(null == query){
+            return ResultUtil.error("该地点暂无企业服务");
+        }
+        orderCharteredCar.setCompanyId(query.getId());
+        orderCharteredCar.setOrderNumber(this.getOrderNum());
+        orderCharteredCar.setTraveltime(travelTime);
+        orderCharteredCar.setCarTime(carTime);
+        orderCharteredCar.setServerCarModelId(serverCarModelId);
+        orderCharteredCar.setModelUse(modelUse);
+        orderCharteredCar.setPeopleNumber(peopleNumber);
+        orderCharteredCar.setContactPerson(contactPerson);
+        orderCharteredCar.setContactPhone(contactPhone);
+        orderCharteredCar.setState(1);
+        orderCharteredCar.setIsDelete(1);
+        orderCharteredCar.setInsertTime(new Date());
+        this.insert(orderCharteredCar);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取个人中心订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        List<Map<String, Object>> maps = orderCharteredCarMapper.queryMyOrderList(uid, pageNum, size);
+        return maps;
+    }
+
+
+    @Override
+    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(remark)){
+            if(ToolUtil.isNotEmpty(remark)){
+                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+                for(SensitiveWords s : sensitiveWords){
+                    remark = remark.replaceAll(s.getContent(), "***");
+                }
+            }
+        }
+
+        OrderCharteredCar orderCharteredCar = this.selectById(id);
+        if(null == uid){
+            uid = orderCharteredCar.getUserId();
+        }
+        if(null == orderCharteredCar){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderCharteredCar.getState() != 1){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+
+        OrderCancel orderCancel = new OrderCancel();
+        orderCancel.setOrderId(id);
+        orderCancel.setOrderType(6);
+        orderCancel.setReason(reason);
+        orderCancel.setRemark(remark);
+        orderCancel.setState(2);
+        orderCancel.setInsertTime(new Date());
+        orderCancel.setUserType(1);
+        orderCancelService.insert(orderCancel);
+        orderCharteredCar.setState(3);
+        this.updateById(orderCharteredCar);
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您已成功取消旅游包车订单,谢谢使用!", orderCharteredCar.getUserId(), 1);
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", orderCancel.getId());
+        return ResultUtil.success(map);
+    }
+
+
+
+
+    public synchronized String getOrderNum() throws Exception{
+        int size = this.selectCount(null);
+        return "CHARTERED" + String.valueOf(1000000 + size + 1).substring(1);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AdvertisementController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AdvertisementController.java
new file mode 100644
index 0000000..c357960
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AdvertisementController.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.IAdvertisementService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 广告控制器
+ */
+@Api
+@RestController
+@RequestMapping("/base/advertisement")
+public class AdvertisementController {
+
+    @Autowired
+    private IAdvertisementService advertisementService;
+
+
+
+    @ResponseBody
+    @PostMapping("/queryByType")
+    @ApiOperation(value = "获取广告列表", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "数据类型(1:弹窗广告,2:底部广告)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "当前定位城市code(510100)", name = "code", required = true, dataType = "string")
+    })
+    public ResultUtil<List<AdvertisementWarpper>> queryAdvertisement(String code, Integer type){
+        try {
+            List<AdvertisementWarpper> advertisementWarpper = advertisementService.queryAdvertisement(code, type);
+            return ResultUtil.success(advertisementWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java
new file mode 100644
index 0000000..324a0c7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/AgreementController.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.IAgreementService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 协议控制器
+ */
+@Api
+@RestController
+//@CrossOrigin
+@RequestMapping("/base/agreement")
+public class AgreementController {
+
+    @Autowired
+    private IAgreementService agreementService;
+
+
+    /**
+     * 获取各种协议
+     * @param type
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryByType")
+    @ApiOperation(value = "获取各种协议及H5页面", tags = {"用户端-协议"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "数据类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置,9=司机注册协议,10=改派说明,11=跨城出行乘车须知,12:常见问题,13:计价规则,14:包车协议)", name = "type", required = true, dataType = "int")
+    })
+    public ResultUtil<BaseWarpper> queryByType(Integer type){
+        try {
+            String s = agreementService.queryByType(type);
+            BaseWarpper baseWarpper = new BaseWarpper();
+            baseWarpper.setContent(s);
+            return ResultUtil.success(baseWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
new file mode 100644
index 0000000..c60adfa
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ApiController.java
@@ -0,0 +1,80 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.ErrorTip;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.util.JwtTokenUtil;
+import com.stylefeng.guns.modular.system.dao.UserMapper;
+import com.stylefeng.guns.modular.system.model.User;
+import org.apache.shiro.authc.SimpleAuthenticationInfo;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
+import org.apache.shiro.crypto.hash.Md5Hash;
+import org.apache.shiro.util.ByteSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+
+/**
+ * 接口控制器提供
+ *
+ * @author stylefeng
+ * @Date 2018/7/20 23:39
+ */
+@RestController
+@RequestMapping("/gunsApi")
+public class ApiController extends BaseController {
+
+    @Autowired
+    private UserMapper userMapper;
+
+    /**
+     * api登录接口,通过账号密码获取token
+     */
+    @RequestMapping("/auth")
+    public Object auth(@RequestParam("username") String username,
+                       @RequestParam("password") String password) {
+
+        //封装请求账号密码为shiro可验证的token
+        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(username, password.toCharArray());
+
+        //获取数据库中的账号密码,准备比对
+        User user = userMapper.getByAccount(username);
+
+        String credentials = user.getPassword();
+        String salt = user.getSalt();
+        ByteSource credentialsSalt = new Md5Hash(salt);
+        SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
+                new ShiroUser(), credentials, credentialsSalt, "");
+
+        //校验用户账号密码
+        HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
+        md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
+        md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
+        boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
+                usernamePasswordToken, simpleAuthenticationInfo);
+
+        if (passwordTrueFlag) {
+            HashMap<String, Object> result = new HashMap<>();
+            result.put("token", JwtTokenUtil.generateToken(String.valueOf(user.getId())));
+            return result;
+        } else {
+            return new ErrorTip(500, "账号密码错误!");
+        }
+    }
+
+    /**
+     * 测试接口是否走鉴权
+     */
+    @RequestMapping(value = "/test", method = RequestMethod.POST)
+    public Object test() {
+        return SUCCESS_TIP;
+    }
+
+}
+
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BankCardController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BankCardController.java
new file mode 100644
index 0000000..75b8e9e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/BankCardController.java
@@ -0,0 +1,127 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.service.IBankCardService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.IUserService;
+import com.stylefeng.guns.modular.system.util.LiuZhouBank.ProtocolSignUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BankCardWarpper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@RequestMapping("")
+public class BankCardController {
+
+    @Autowired
+    private IBankCardService bankCardService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+    @ResponseBody
+    @PostMapping("/api/bankCard/getSignSendSms")
+    @ApiOperation(value = "发送签约银行验证短信", tags = {"司机端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "身份证号码", name = "IdNum", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "银行预留电话", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "开户姓名", name = "acctName", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "银行卡号", name = "acctNum", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil getSignSendSms(String IdNum, String phone, String acctName, String acctNum){
+        try {
+            ResultUtil<String> stringResultUtil = ProtocolSignUtil.protocolSignSendSms(IdNum, phone, acctName, acctNum);
+            if(200 != stringResultUtil.getCode()){
+                return stringResultUtil;
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    @ResponseBody
+    @PostMapping("/api/bankCard/addBankCard")
+    @ApiOperation(value = "添加银行卡", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "卡号", name = "bankNum", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "银行名称", name = "bankName", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "银行账户", name = "name", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "银行预留手机号", name = "phone", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "身份证号", name = "IdNum", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil addBankCard(String bankNum, String bankName, String name, String phone, String code, String IdNum, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(ToolUtil.isEmpty(uid)){
+                return ResultUtil.tokenErr();
+            }
+            return bankCardService.addBankCard(uid, bankNum, bankName, name, phone, code, IdNum);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    @ResponseBody
+    @PostMapping("/api/bankCard/queryBankCardList")
+    @ApiOperation(value = "获取银行卡列表", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<BankCardWarpper>> queryBankCardList(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(ToolUtil.isEmpty(uid)){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(bankCardService.queryBankCardList(uid));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/bankCard/delBankCard")
+    @ApiOperation(value = "删除银行卡", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "卡id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil delBankCard(Integer id, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(ToolUtil.isEmpty(uid)){
+                return ResultUtil.tokenErr();
+            }
+            return bankCardService.delBankCard(uid, id);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java
new file mode 100644
index 0000000..81a42a5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/CouponController.java
@@ -0,0 +1,145 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.CouponWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import sun.security.provider.MD5;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Base64;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 优惠券控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class CouponController {
+
+    @Autowired
+    private IUserCouponRecordService userCouponRecordService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+    /**
+     * 获取个人优惠券列表
+     * @param state
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/coupon/queryMyCoupons")
+    @ApiOperation(value = "获取个人优惠券列表", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "优惠券状态(1=未使用,2=已使用)", name = "state", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<CouponWarpper>> queryMyCoupons(Integer state, Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+               return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = userCouponRecordService.queryMyCoupons(state, pageNum, size, uid);
+            return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/coupon/queryUserCoupons")
+    @ApiOperation(value = "获取用户优惠券列表", tags = {"道行龙城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "用户id", name = "userId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "优惠券状态(1=未使用,2=已使用)", name = "state", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNo", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "pageSize", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "签名", name = "sign", required = true, dataType = "string"),
+    })
+    public ResultUtil<List<CouponWarpper>> queryUserCoupons(@RequestParam Integer userId, @RequestParam Integer state, @RequestParam Integer pageNo,
+                                                            @RequestParam Integer pageSize, @RequestParam String sign){
+        try {
+            List<Map<String, Object>> list = userCouponRecordService.queryMyCoupons(state, pageNo, pageSize, userId);
+            return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 删除优惠券
+     * @param id
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/coupon/delMyCoupon")
+    @ApiOperation(value = "删除优惠券", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "优惠券id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil delMyCoupon(Integer id, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return userCouponRecordService.delMyCoupon(id, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 赠送优惠券
+     * @param id
+     * @param userId
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/coupon/handselCoupon")
+    @ApiOperation(value = "赠送优惠券", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "优惠券id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "赠送用户id", name = "userId", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil handselCoupon(Integer id, Integer userId, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return userCouponRecordService.handselCoupon(id, uid, userId);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
new file mode 100644
index 0000000..f409dcd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -0,0 +1,122 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.service.IOrderEvaluateService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.DriverInfoWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderEvaluateWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 司机控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class DriverController {
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private IOrderEvaluateService orderEvaluateService;
+
+
+
+
+
+
+    /**
+     * 获取5公里范围内空闲司机数量
+     * @param type 业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/driver/queryIdleDriver")
+    @ApiOperation(value = "获取5公里范围内空闲司机数量", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "乘客当前定位经度", name = "lon", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "乘客当前定位纬度", name = "lat", required = true, dataType = "double")
+    })
+    public ResultUtil<BaseWarpper> queryIdleDriver(Integer type, Double lon, Double lat){
+        try {
+            List<Driver> list = driverService.queryIdleDriver(type, lon, lat, 5D, null);
+            BaseWarpper baseWarpper = new BaseWarpper();
+            baseWarpper.setNumber(list.size());
+            return ResultUtil.success(baseWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取司机详情
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/driver/queryDriverInfo")
+    @ApiOperation(value = "获取司机详情", tags = {"用户端-订单相关"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<DriverInfoWarpper> queryDriverInfo(Integer id){
+        try {
+            Map<String, Object> map = driverService.queryDriverInfo(id);
+            String name = String.valueOf(map.get("name"));
+            map.put("name", name.substring(0, 1) + "师傅");
+            List<BaseWarpper> list = driverService.queryBusiness(id);
+            map.put("list", list);
+            return ResultUtil.success(DriverInfoWarpper.getDriverInfoWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 获取司机的历史评价
+     * @param id
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/driver/queryOrderEvaluate")
+    @ApiOperation(value = "获取司机的历史评价", tags = {"用户端-订单相关"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<OrderEvaluateWarpper>> queryOrderEvaluate(Integer id, Integer pageNum, Integer size){
+        try {
+            List<Map<String, Object>> list = orderEvaluateService.queryOrderEvaluate(id, pageNum, size);
+            return ResultUtil.success(OrderEvaluateWarpper.getOrderEvaluateWarpper(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FeedbackController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FeedbackController.java
new file mode 100644
index 0000000..4d5fefd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/FeedbackController.java
@@ -0,0 +1,58 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.IFeedbackService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 反馈控制器
+ */
+@Api
+@RestController
+@RequestMapping("/api/feedback")
+public class FeedbackController {
+
+    @Autowired
+    private IFeedbackService feedbackService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+    /**
+     * 提交反馈意见
+     * @param content
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/feedback")
+    @ApiOperation(value = "提交反馈意见", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "反馈内容", name = "content", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil feedback(String content, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(uid == null){
+                return ResultUtil.tokenErr();
+            }
+            return feedbackService.feedback(content, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/IntegralGoodsController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/IntegralGoodsController.java
new file mode 100644
index 0000000..1eba6af
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/IntegralGoodsController.java
@@ -0,0 +1,140 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.model.IntegralOrder;
+import com.stylefeng.guns.modular.system.service.IIntegralGoodsService;
+import com.stylefeng.guns.modular.system.service.IIntegralOrderService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.IntegralGoodsWarpper;
+import com.stylefeng.guns.modular.system.warpper.IntegralOrderWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+@Api
+@RestController
+@RequestMapping("/api/integralGoods")
+public class IntegralGoodsController {
+
+    @Autowired
+    private IIntegralGoodsService integralGoodsService;
+
+    @Autowired
+    private IIntegralOrderService integralOrderService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+
+    /**
+     * 获取积分兑换的商品
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryGoods")
+    @ApiOperation(value = "获取积分兑换的商品", tags = {"用户端-积分相关"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<IntegralGoodsWarpper>> queryGoods(Integer pageNum, Integer size){
+        try {
+            List<Map<String, Object>> list = integralGoodsService.queryGoods(pageNum, size);
+            return ResultUtil.success(IntegralGoodsWarpper.getIntegralGoodsWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取商品详情
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryGoodsInfo")
+    @ApiOperation(value = "获取商品详情", tags = {"用户端-积分相关"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "商品id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryGoodsInfo(Integer id){
+        try {
+            Map<String, Object> map = integralGoodsService.queryGoodsInfo(id);
+            return ResultUtil.success(IntegralGoodsWarpper.getIntegralGoodsWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 兑换商品
+     * @param integralOrder
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/addIntegralOrder")
+    @ApiOperation(value = "兑换商品", tags = {"用户端-积分相关"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "商品id", name = "goodsId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "收件人", name = "consigneeName", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "收件人电话", name = "consigneePhone", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "收货地址", name = "consigneeAddress", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "备注", name = "remark", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil addIntegralOrder(IntegralOrder integralOrder, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return integralOrderService.addIntegralOrder(integralOrder, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/queryConvertHistory")
+    @ApiOperation(value = "获取兑换历史记录", tags = {"用户端-积分相关"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<IntegralOrderWarpper>> queryConvertHistory(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = integralOrderService.queryConvertHistory(pageNum, size, uid);
+            return ResultUtil.success(IntegralOrderWarpper.getIntegralOrderWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/InvoiceController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/InvoiceController.java
new file mode 100644
index 0000000..1815537
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/InvoiceController.java
@@ -0,0 +1,103 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.model.Invoice;
+import com.stylefeng.guns.modular.system.service.IInvoiceService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.InvoiceWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 发票控制器
+ */
+@Api
+@RestController
+@RequestMapping("/api/invoice")
+public class InvoiceController {
+
+    @Autowired
+    private IInvoiceService invoiceService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+
+    /**
+     * 开票操作
+     * @param invoice
+     * @param order
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/invoicing")
+    @ApiOperation(value = "开发票操作", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "开票订单数据([{\"type\":1,\"id\":12345}])分别为订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流),5=跨城小件物流和订单id", name = "order", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "开票类型(1=个人发票,2=单位发票)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "抬头名称(公司名字/个人姓名)", name = "name", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "税号", name = "code", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "发票内容", name = "content", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "地址+电话", name = "address", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "开户行+账号", name = "bank", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "邮箱地址", name = "email", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil invoicing(Invoice invoice, String order, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            invoiceService.invoicing(invoice, order, uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 获取开票历史
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryMyInvoice")
+    @ApiOperation(value = "获取开票历史", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "inr"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<InvoiceWarpper>> queryMyInvoice(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> maps = invoiceService.queryMyInvoice(pageNum, size, uid);
+            return ResultUtil.success(InvoiceWarpper.getInvoiceWarpper(maps));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/MinistryOfTransportController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/MinistryOfTransportController.java
new file mode 100644
index 0000000..49fa0b1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/MinistryOfTransportController.java
@@ -0,0 +1,37 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.util.MinistryOfTransport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * 交通部测试接口
+ */
+@Api
+@RestController
+@RequestMapping("/base/ministryOfTransport")
+public class MinistryOfTransportController {
+
+    @Autowired
+    private MinistryOfTransport ministryOfTransport;
+
+
+
+    @ResponseBody
+    @ApiOperation(value = "上传企业基础信息", tags = {"交通部测试接口"})
+    @RequestMapping(value = "/pushCompany", method = RequestMethod.POST)
+    public void pushCompany() {
+        try {
+            ministryOfTransport.baseInfoCompany();
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/NettyController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/NettyController.java
new file mode 100644
index 0000000..405a6b1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/NettyController.java
@@ -0,0 +1,91 @@
+package com.stylefeng.guns.modular.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.modular.system.service.INettyService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 仿Socket控制器
+ */
+@RestController
+@RequestMapping("/api/netty")
+public class NettyController {
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private INettyService nettyService;
+
+
+    /**
+     * 获取没有司机接单的提醒数据
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryEndPush")
+    @ApiOperation(value = "获取没有司机接单的提醒数据", tags = {"用户端-仿socket接口"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<EndPushWarpper> queryEndPush(Integer orderId, Integer orderType, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return nettyService.queryEndPush(orderId, orderType, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 获取服务中的及时数据
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryOrderServer")
+    @ApiOperation(value = "获取服务中的及时数据", tags = {"用户端-仿socket接口"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<OrderServerWarpper> queryOrderServer(Integer orderId, Integer orderType, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return nettyService.queryOrderServer(orderId, orderType, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
new file mode 100644
index 0000000..b6c78c2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OpenCityController.java
@@ -0,0 +1,125 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.service.IOpenCityBusinessService;
+import com.stylefeng.guns.modular.system.service.IOpenCityService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 开通城市控制器
+ */
+@Api
+@RestController
+@RequestMapping("/base/openCity")
+public class OpenCityController {
+
+    @Autowired
+    private IOpenCityService openCityService;
+
+    @Autowired
+    private IOpenCityBusinessService openCityBusinessService;
+
+
+    /**
+     * 获取开通城市列表
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryOpenCity")
+    @ApiOperation(value = "获取开通城市列表", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+    })
+    public ResultUtil<List<BaseWarpper>> queryOpenCity(){
+        try {
+            List<BaseWarpper> list = openCityService.queryOpenCity();
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 根据当前定位获取对应的业务类型
+     * @param province
+     * @param city
+     * @param district
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryBusiness")
+    @ApiOperation(value = "根据当前定位获取业务类型", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "省名称", name = "province", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "市名称", name = "city", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "区县名称", name = "district", required = true, dataType = "String")
+    })
+    public ResultUtil<List<BaseWarpper>> queryBusiness(String province, String city, String district){
+        try {
+            List<BaseWarpper> list = openCityBusinessService.queryBusiness(province, city, district);
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 根据开通城市id获取业务类型
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryBusinessById")
+    @ApiOperation(value = "选择开通城市获取业务类型", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "开通城市id", name = "id", required = true, dataType = "int")
+    })
+    public ResultUtil<List<BaseWarpper>> queryBusinessById(Integer id){
+        try {
+            List<BaseWarpper> list = openCityBusinessService.queryBusinessById(id);
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 判断开通城市
+     * @param code
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/openCity")
+    @ApiOperation(value = "判断当前是否是开通城市", tags = {"用户端-首页"}, notes = "open=1(是),open=2(否)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "当前定位城市code", name = "code", required = true, dataType = "String")
+    })
+    public ResultUtil openCity(String code){
+        try {
+            boolean b = openCityService.openCity(code);
+            Map<String, Object> map = new HashMap<>();
+            map.put("open", b ? 1 : 2);
+            return ResultUtil.success(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
new file mode 100644
index 0000000..e512a2e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -0,0 +1,1821 @@
+package com.stylefeng.guns.modular.api;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
+import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.OfflineTravelPayment;
+import com.stylefeng.guns.modular.system.model.OrderEvaluate;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.LiuZhouBank.PayUtil;
+import com.stylefeng.guns.modular.system.util.LiuZhouBank.ResultNotification;
+import com.stylefeng.guns.modular.system.warpper.*;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 订单控制器(综合)
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class OrderController {
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IOrderPositionService orderPositionService;
+
+    @Autowired
+    private PushUtil pushUtil;
+
+    @Autowired
+    private IOrderService orderService;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private WeChatUtil weChatUtil;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IComplaintService complaintService;
+
+    @Autowired
+    private IOrderEvaluateService orderEvaluateService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Autowired
+    private IOrderLogisticsService orderLogisticsService;
+
+    @Autowired
+    private IOrderCharteredCarService orderCharteredCarService;
+
+    @Autowired
+    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private IOfflineTravelPaymentService offlineTravelPaymentService;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+    @Value("${pushMinistryOfTransport}")
+    private boolean pushMinistryOfTransport;
+
+
+
+
+
+    /**
+     * 获取正在进行中的订单
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryServingOrder")
+    @ApiOperation(value = "获取正在进行中的订单", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<OrderStatusWarpper>> queryServingOrder(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<OrderStatusWarpper> data = new ArrayList<>();
+            List<OrderPrivateCar> orderPrivateCars = orderPrivateCarService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
+            for(OrderPrivateCar orderPrivateCar : orderPrivateCars){
+                if(orderPrivateCar.getState() == 11){
+                    orderPrivateCar.setState(orderPrivateCar.getOldState());
+                }
+                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
+                orderStatusWarpper.setOrderId(orderPrivateCar.getId());
+                orderStatusWarpper.setOrderType(1);
+                orderStatusWarpper.setState(orderPrivateCar.getState());
+                data.add(orderStatusWarpper);
+            }
+            List<OrderTaxi> list = orderTaxiService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
+            for(OrderTaxi orderTaxi : list){
+                if(orderTaxi.getState() == 11){
+                    orderTaxi.setState(orderTaxi.getOldState());
+                }
+                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
+                orderStatusWarpper.setOrderId(orderTaxi.getId());
+                orderStatusWarpper.setOrderType(2);
+                orderStatusWarpper.setState(orderTaxi.getState());
+                data.add(orderStatusWarpper);
+            }
+            List<OrderCrossCity> orderCrossCities = orderCrossCityService.queryOrder(uid, 1, 2, 3, 4, 5, 6, 7, 11, 12);
+            for(OrderCrossCity orderCrossCity : orderCrossCities){
+                if(orderCrossCity.getState() == 11){
+                    orderCrossCity.setState(orderCrossCity.getOldState());
+                }
+                OrderStatusWarpper orderStatusWarpper = new OrderStatusWarpper();
+                orderStatusWarpper.setOrderId(orderCrossCity.getId());
+                orderStatusWarpper.setOrderType(3);
+                orderStatusWarpper.setState(orderCrossCity.getState());
+                data.add(orderStatusWarpper);
+            }
+            return ResultUtil.success(data);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 获取个人中心订单列表
+     * @param type
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryMyOrderList")
+    @ApiOperation(value = "获取个人中心订单列表", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=小件物流,5=包车)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<OrderWarpper>> queryMyOrderList(Integer type, Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = null;
+            switch (type){
+                case 1:
+                    list = orderPrivateCarService.queryMyOrderList(uid, pageNum, size);
+                    break;
+                case 2:
+                    list = orderTaxiService.queryMyOrderList(uid, pageNum, size);
+                    break;
+                case 3:
+                    list = orderCrossCityService.queryMyOrderList(uid, pageNum, size);
+                    break;
+                case 4:
+                    list = orderLogisticsService.queryMyOrderList(uid, pageNum, size);
+                    break;
+                case 5:
+                    list = orderCharteredCarService.queryMyOrderList(uid, pageNum, size);
+                    break;
+            }
+            return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 获取消费记录
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryMyTravelRecord")
+    @ApiOperation(value = "获取消费记录", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<TravelRecordWarpper>> queryMyTravelRecord(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            Integer page = pageNum;
+            pageNum = (pageNum - 1) * size;
+            List<Map<String, Object>> maps = orderCancelService.queryCancel(uid, 2);
+            List<Map<String, Object>> list = orderPrivateCarService.queryMyTravelRecord(uid);//专车
+            List<Map<String, Object>> list1 = orderTaxiService.queryMyTravelRecord(uid);//出租车
+            List<Map<String, Object>> list2 = orderCrossCityService.queryMyTravelRecord(uid);//跨城车
+            List<Map<String, Object>> list3 = orderLogisticsService.queryMyTravelRecord(uid);//小件物流
+            List<TransactionDetails> transactionDetails = transactionDetailsService.selectList(new EntityWrapper<TransactionDetails>().eq("state", 1)
+                    .eq("type", 1).eq("userType", 1).eq("userId", uid));
+            List<Map<String, Object>> list4 = new ArrayList<>();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+            for(TransactionDetails transactionDetails1 : transactionDetails){
+                Map<String, Object> map = new HashMap<>();
+                map.put("money", transactionDetails1.getMoney());
+                map.put("time", sdf.format(transactionDetails1.getInsertTime()));
+                map.put("name", transactionDetails1.getOrderType() == 3 ? "跨城订单取消退款" : transactionDetails1.getOrderType() == 4 ? "小件物流订单取消退款" : "");
+                map.put("insertTime", Double.valueOf(transactionDetails1.getInsertTime().getTime() / 1000).intValue());
+                list4.add(map);
+            }
+            list.addAll(maps);
+            list.addAll(list1);
+            list.addAll(list2);
+            list.addAll(list3);
+            list.addAll(list4);
+
+            List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list);
+
+            //分页
+            if(orderWarpper.size() >= page * size){
+                orderWarpper = orderWarpper.subList(pageNum, pageNum + size);
+            }else if(pageNum < orderWarpper.size() && orderWarpper.size() < page * size){
+                orderWarpper = orderWarpper.subList(pageNum, orderWarpper.size());
+            }else{
+                orderWarpper = new ArrayList<>();
+            }
+            return ResultUtil.success(orderWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 发票页获取订单列表
+     * @param type
+     * @param orderType
+     * @param startTime
+     * @param endTime
+     * @param startMoney
+     * @param endMoney
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryInvoiceOrder")
+    @ApiOperation(value = "发票页获取订单列表", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单开票状态(1=未开票,2=其他)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流)", name = "orderType", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "开始日期", name = "startTime", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "结束日期", name = "endTime", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "开始金额", name = "startMoney", required = false, dataType = "double"),
+            @ApiImplicitParam(value = "结束金额", name = "endMoney", required = false, dataType = "double"),
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<OrderWarpper>> queryInvoiceOrder(Integer type, Integer orderType, Date startTime,
+                                                            Date endTime, Double startMoney, Double endMoney,
+                                                            Integer pageNum, Integer size, HttpServletRequest request){
+        Integer page = pageNum;
+        pageNum = (pageNum - 1) * size;
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = new ArrayList<>();
+            if(null != orderType){
+                switch (orderType){
+                    case 1://专车
+                        list = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                        break;
+                    case 2://出租车
+                        list = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                        break;
+                    case 3://跨城
+                        list = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                        break;
+                    case 4://同城小件物流
+                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+                        break;
+                    case 5://跨城小件物流
+                        list = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+                        break;
+                }
+            }else{
+                //专车
+                List<Map<String, Object>> maps = orderPrivateCarService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                list.addAll(maps);
+                //出租车
+                List<Map<String, Object>> list1 = orderTaxiService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                list.addAll(list1);
+                //跨城
+                List<Map<String, Object>> list2 = orderCrossCityService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+                list.addAll(list2);
+                //同城小件物流
+                List<Map<String, Object>> list3 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+                list.addAll(list3);
+                //跨城小件物流
+                List<Map<String, Object>> list4 = orderLogisticsService.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+                list.addAll(list4);
+            }
+
+            //分页
+            if(list.size() >= page * size){
+                list = list.subList(pageNum, pageNum + size);
+            }else if(pageNum < list.size() && list.size() < page * size){
+                list = list.subList(pageNum, list.size());
+            }else{
+                list = new ArrayList<>();
+            }
+
+            return ResultUtil.success(OrderWarpper.getOrderWarpper(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 继续等待推单操作
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/pushOrderTaxi")
+    @ApiOperation(value = "继续等待推单操作", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil pushOrderTaxi(Integer id, Integer orderType){
+        try {
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.pushOrderPrivateCar(id);
+                case 2:
+                    return orderTaxiService.pushOrderTaxi(id);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 获取服务中的详情数据
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryOrderInfo")
+    @ApiOperation(value = "获取服务中的详情数据", tags = {"用户端-服务中"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<OrderInfoWarpper> queryOrderInfo(Integer orderId, Integer orderType){
+        try {
+            Map<String, Object> map = null;
+            switch (orderType){
+                case 1://专车
+                    map = orderPrivateCarService.queryOrderInfo(orderId);
+                    break;
+                case 2://出租车
+                    map = orderTaxiService.queryOrderInfo(orderId);
+                    break;
+                case 3://跨城
+                    map = orderCrossCityService.queryOrderInfo(orderId);
+                    break;
+            }
+            if(map.get("telX") != null){
+                map.put("driverPhone", map.get("telX"));
+            }
+            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 获取服务中的详情数据
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/order/queryOrderInfo_")
+    @ApiOperation(value = "获取服务中的详情数据", tags = {"分享专用", "智慧屏"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+    })
+    public ResultUtil<OrderInfoWarpper> queryOrderInfo_(Integer orderId, Integer orderType){
+        try {
+            Map<String, Object> map = null;
+            switch (orderType){
+                case 1://专车
+                    map = orderPrivateCarService.queryOrderInfo(orderId);
+                    break;
+                case 2://出租车
+                    map = orderTaxiService.queryOrderInfo(orderId);
+                    break;
+                case 3://跨城
+                    map = orderCrossCityService.queryOrderInfo(orderId);
+                    break;
+            }
+            if(null != map.get("telX")){
+                map.put("driverPhone", map.get("telX"));
+            }
+
+            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 获取订单取消支付页面详情
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryCancelPage")
+    @ApiOperation(value = "获取订单取消支付页面详情", tags = {"用户端-服务中"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<OrderInfoWarpper> queryCancelPage(Integer orderId, Integer orderType){
+        try {
+            Map<String, Object> map = null;
+            switch (orderType) {
+                case 1://专车
+                    map = orderPrivateCarService.queryOrderInfo(orderId);
+                    ResultUtil<BaseWarpper> res = orderPrivateCarService.queryCancleAmount(orderId);
+                    map.put("cancelPayMoney", res.getData().getAmount());
+                    break;
+                case 2://出租车
+                    map = orderTaxiService.queryOrderInfo(orderId);
+                    ResultUtil<BaseWarpper> re = orderTaxiService.queryCancleAmount(orderId);
+                    map.put("cancelPayMoney", re.getData().getAmount());
+                    break;
+                case 3://跨城
+                    map = orderCrossCityService.queryOrderInfo(orderId);
+                    ResultUtil<BaseWarpper> r = orderCrossCityService.queryCancleAmount(orderId);
+                    map.put("cancelPayMoney", r.getData().getAmount());
+                    break;
+            }
+            return ResultUtil.success(OrderInfoWarpper.getOrderInfoWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取订单轨迹坐标
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/order/queryTrack")
+    @ApiOperation(value = "获取订单轨迹坐标", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryTrack(Integer orderId, Integer orderType){
+        try {
+            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 获取订单轨迹坐标
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/order/queryTrack_")
+    @ApiOperation(value = "获取订单轨迹坐标", tags = {"分享专用"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际)", name = "orderType", required = true, dataType = "int"),
+    })
+    public ResultUtil queryTrack_(Integer orderId, Integer orderType){
+        try {
+            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, orderType);
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 发送订单状态
+     * @param id
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/order/sendOrderState")
+    public ResultUtil cancelOrder(Integer id, Integer orderType){
+        try {
+            Integer driverId = null;
+            Integer userId = null;
+            Integer state = 0;
+            switch (orderType){
+                case 1:
+                    OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(id);
+                    driverId = orderPrivateCar.getDriverId();
+                    userId = orderPrivateCar.getUserId();
+                    state = orderPrivateCar.getState();
+                    if(null != driverId){
+                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+                    }
+                    break;
+                case 2:
+                    OrderTaxi orderTaxi = orderTaxiService.selectById(id);
+                    driverId = orderTaxi.getDriverId();
+                    userId = orderTaxi.getUserId();
+                    state = orderTaxi.getState();
+                    if(null != driverId){
+                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+                    }
+                    break;
+                case 3:
+                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
+                    driverId = orderCrossCity.getDriverId();
+                    userId = orderCrossCity.getUserId();
+                    state = orderCrossCity.getState();
+                    if(orderCrossCity.getPayMoney() == null && state == 10){//支付的情况才推送取消
+                        break;
+                    }else{
+                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+                    }
+                    break;
+                case 4:
+                    OrderLogistics orderLogistics = orderLogisticsService.selectById(id);
+                    driverId = orderLogistics.getDriverId();
+                    userId = orderLogistics.getUserId();
+                    state = orderLogistics.getState();
+                    if(orderLogistics.getPayMoney() == null && state == 10){//支付的情况才推送取消
+                        break;
+                    }else{
+                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+                    }
+                    break;
+                case 5:
+                    OrderLogistics orderLogistics1 = orderLogisticsService.selectById(id);
+                    driverId = orderLogistics1.getDriverId();
+                    userId = orderLogistics1.getUserId();
+                    state = orderLogistics1.getState();
+                    if(orderLogistics1.getPayMoney() == null && state == 10){//支付的情况才推送取消
+                        break;
+                    }else{
+                        pushUtil.pushOrderState(2, driverId, id, orderType, state, 0);
+                    }
+                    break;
+            }
+            pushUtil.pushOrderState(1, userId, id, orderType, state, 0);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * APP调用微信小程序支付
+     * @param orderId
+     * @param orderType
+     * @param type
+     * @param content
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/order/weChatPay")
+    @ApiOperation(value = "APP调用微信小程序支付", tags = {"用户端-服务中"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "业务类型(1=订单完成支付,2=订单取消支付,3=司机端改派支付,4=余额充值,5=小件物流差价支付)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "附加参数{\"key\":\"value\"}", name = "content", required = true, dataType = "string")
+    })
+    public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content){
+        try {
+            return orderService.weChatPay(orderId, orderType, type, userType, uid, content);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/order/queryUserOpenId")
+    @ApiOperation(value = "获取用户的微信openid", tags = {"用户端-服务中"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int")
+    })
+    public ResultUtil queryUserOpenId(Integer uid, Integer userType){
+        if(userType == 2){
+            Driver driver = driverService.selectById(uid);
+            return ResultUtil.success(driver.getAppletsOpenId());
+        }
+        if(userType == 1){
+            UserInfo userInfo = userInfoService.selectById(uid);
+            return ResultUtil.success(userInfo.getAppletsOpenId());
+        }
+        return ResultUtil.success();
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/order/getWeChatOpenId")
+    @ApiOperation(value = "用户授权获取小程序openid", tags = {"用户端-服务中"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "端口类型(1=用户端,2=司机端)", name = "userType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "用户id", name = "uid", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "小程序授权临时凭证", name = "jscode", required = true, dataType = "string"),
+    })
+    public ResultUtil getWeChatOpenId(Integer uid, Integer userType, String jscode){
+        Map<String, String> map = weChatUtil.code2Session(jscode);
+        if(userType == 2){
+            Driver driver = driverService.selectById(uid);
+            driver.setAppletsOpenId(map.get("openid"));
+            driverService.updateById(driver);
+        }
+        if(userType == 1){
+            UserInfo userInfo = userInfoService.selectById(uid);
+            userInfo.setAppletsOpenId(map.get("openid"));
+            userInfoService.updateById(userInfo);
+        }
+        return ResultUtil.success();
+    }
+
+
+
+    /**
+     * 获取预计行驶时间
+     * @param slon
+     * @param slat
+     * @param elon
+     * @param elat
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/taxi/queryExpectedTime")
+    @ApiOperation(value = "选择地点和终点后获取预计行驶时长", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "起点经度", name = "slon", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "起点纬度", name = "slat", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "终点经度", name = "elon", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "终点纬度", name = "elat", required = true, dataType = "double")
+    })
+    public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat){
+        try {
+            return orderService.queryExpectedTime(slon, slat, elon, elat);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 获取取消订单需要支付的费用金额
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/queryCancleAmount")
+    @ApiOperation(value = "获取取消订单需要支付的费用金额", tags = {"用户端-出租车", "用户端-专车"}, notes = "返回金额为0则不需要支付")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id, Integer orderType){
+        try {
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.queryCancleAmount(id);
+                case 2:
+                    return orderTaxiService.queryCancleAmount(id);
+                case 3:
+                    return orderCrossCityService.queryCancleAmount(id);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 添加取消记录
+     * @param id
+     * @param reason
+     * @param remark
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/addCancle")
+    @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil addCancle(Integer id, Integer orderType, String reason, String remark, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.addCancle(id, reason, remark, uid);
+                case 2:
+                    return orderTaxiService.addCancle(id, reason, remark, uid);
+                case 3:
+                    return orderCrossCityService.addCancle(id, reason, remark, uid);
+                case 4:
+                    return orderLogisticsService.addCancle(id, reason, remark, uid);
+                case 5:
+                    return orderLogisticsService.addCancle(id, reason, remark, uid);
+                case 6:
+                    return orderCharteredCarService.addCancle(id, reason, remark, uid);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 添加取消记录
+     * @param id
+     * @param reason
+     * @param remark
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/taxi/addCancle1")
+    @ApiOperation(value = "添加取消记录", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "智慧屏"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "取消原因", name = "reason", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil addCancle1(Integer id, Integer orderType, String reason, String remark){
+        try {
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.addCancle(id, reason, remark, null);
+                case 2:
+                    return orderTaxiService.addCancle(id, reason, remark, null);
+                case 3:
+                    return orderCrossCityService.addCancle(id, reason, remark, null);
+                case 4:
+                    return orderLogisticsService.addCancle(id, reason, remark, null);
+                case 5:
+                    return orderLogisticsService.addCancle(id, reason, remark, null);
+                case 6:
+                    return orderCharteredCarService.addCancle(id, reason, remark, null);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 取消操作支付
+     * @param id
+     * @param payType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/cancleOrderTaxi")
+    @ApiOperation(value = "取消操作支付", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "取消单id(取消操作返回)", name = "cancleId", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil cancleOrderTaxi(Integer id, Integer orderType, Integer payType, Integer cancleId, Integer type, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.cancleOrderPrivateCar(id, payType, cancleId, type);
+                case 2:
+                    return orderTaxiService.cancleOrderTaxi(id, payType, cancleId, type);
+                case 3:
+                    return orderCrossCityService.cancleOrderCrossCity(id, payType, cancleId, type);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 投诉操作
+     * @param driverId
+     * @param reason
+     * @param description
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/complaintService")
+    @ApiOperation(value = "添加投诉操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "投诉原因", name = "reason", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "投诉描述", name = "description", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil complaintService(Integer driverId, String reason, String description, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            complaintService.saveData(driverId, reason, description, uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 支付页面获取可用优惠券数量和余额
+     * @param orderId
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/queryBalance")
+    @ApiOperation(value = "支付页面获取可用优惠券数量和余额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "balance=余额,coupon=优惠券")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryBalance(Integer orderId, Integer orderType, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            Map<String, Object> map = new HashMap<>();
+            switch (orderType){
+                case 1:
+                    map = orderPrivateCarService.queryBalance(orderId, uid);
+                    break;
+                case 2:
+                    map = orderTaxiService.queryBalance(orderId, uid);
+                    break;
+                case 3:
+                    map = orderCrossCityService.queryBalance(orderId, uid);
+                    break;
+                case 4:
+                    map = orderLogisticsService.queryBalance(orderId, uid);
+                    break;
+                case 5:
+                    map = orderLogisticsService.queryBalance(orderId, uid);
+                    break;
+            }
+            return ResultUtil.success(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 获取支付页面的优惠券列表
+     * @param orderId
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/queryCoupon")
+    @ApiOperation(value = "获取支付页面的优惠券列表", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryCoupon(Integer orderId, Integer orderType, Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = new ArrayList<>();
+            switch (orderType){
+                case 1:
+                    list = orderPrivateCarService.queryCoupon(orderId, uid, pageNum, size);
+                    break;
+                case 2:
+                    list = orderTaxiService.queryCoupon(orderId, uid, pageNum, size);
+                    break;
+                case 3:
+                    list = orderCrossCityService.queryCoupon(orderId, uid, pageNum, size);
+                    break;
+            }
+            return ResultUtil.success(CouponWarpper.getCouponWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 订单完成支付订单操作
+     * @param payType
+     * @param orderId
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/payTaxiOrder")
+    @ApiOperation(value = "订单完成支付订单操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城", "用户端-小件物流"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城,4=小件物流)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "优惠券id", name = "couponId", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer orderType, Integer couponId, Integer type, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.payPrivateCarOrder(payType, orderId, couponId, type);
+                case 2:
+                    return orderTaxiService.payTaxiOrder(payType, orderId, couponId, type);
+                case 3:
+                    return orderCrossCityService.payCrossCityOrder(payType, orderId, couponId, type);
+                case 4:
+                    return orderLogisticsService.payLogisticsOrder(payType, orderId, type);
+                case 5:
+                    return orderLogisticsService.payLogisticsOrder(payType, orderId, type);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 订单完成后添加评价操作
+     * @param orderId
+     * @param fraction
+     * @param content
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/orderEvaluate")
+    @ApiOperation(value = "订单完成后添加评价操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "评分", name = "fraction", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "评价内容", name = "content", required = false, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil orderEvaluate(Integer orderId, Integer orderType, Integer fraction, String content){
+        try {
+            ResultUtil resultUtil = orderEvaluateService.saveData(orderId, orderType, fraction, content);
+            if(resultUtil.getCode() == 200){
+                switch (orderType){
+                    case 1:
+                        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                        orderPrivateCar.setState(9);
+                        orderPrivateCarService.updateById(orderPrivateCar);
+                        new Thread(new Runnable() {
+                            @Override
+                            public void run() {
+                                if(pushMinistryOfTransport){//上传数据
+                                    pushMinistryOfTransportUtil.ratedPassenger(Integer.valueOf(resultUtil.getData().toString()));
+                                    pushMinistryOfTransportUtil.ratedDriver(orderPrivateCar.getDriverId());
+                                }
+                            }
+                        }).start();
+                        break;
+                    case 2:
+                        OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                        orderTaxi.setState(9);
+                        orderTaxiService.updateById(orderTaxi);
+                        break;
+                    case 3:
+                        OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                        orderCrossCity.setState(9);
+                        orderCrossCityService.updateById(orderCrossCity);
+                        break;
+                }
+            }
+            return resultUtil.getCode() == 200 ? ResultUtil.success() : resultUtil;
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 评论成功后获取红包金额
+     * @param orderId
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/queryRedMoney")
+    @ApiOperation(value = "评论成功后获取红包金额", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> queryRedMoney(Integer orderId, Integer orderType){
+        try {
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.queryRedMoney(orderId);
+                case 2:
+                    return orderTaxiService.queryRedMoney(orderId);
+                case 3:
+                    return orderCrossCityService.queryRedMoney(orderId);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 分享成功后添加红包操作
+     * @param orderId
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/shareRedEnvelope")
+    @ApiOperation(value = "分享成功后添加红包操作", tags = {"用户端-出租车", "用户端-专车", "用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil shareRedEnvelope(Integer orderId, Integer orderType){
+        try {
+            switch (orderType){
+                case 1:
+                    return orderPrivateCarService.shareRedEnvelope(orderId);
+                case 2:
+                    return orderTaxiService.shareRedEnvelope(orderId);
+                case 3:
+                    return orderCrossCityService.shareRedEnvelope(orderId);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    /**
+     * 取消订单微信回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/wxCancelOrderTaxi")
+    public void wxCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+
+                String substring = out_trade_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+                switch (type){
+                    case 1:
+                        orderPrivateCarService.payCancelOrderPrivateCar(id, transaction_id, 1);
+                        break;
+                    case 2:
+                        orderTaxiService.payCancelOrderTaxi(id, transaction_id, 1);
+                        break;
+                    case 3:
+                        orderCrossCityService.payCancelOrderCrossCity(id, transaction_id, 1);
+                        break;
+                }
+
+                String result = map.get("result");
+                PrintWriter out = response.getWriter();
+                out.print(result);
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 取消订单支付宝回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/aliCancelOrderTaxi")
+    public void aliCancelOrderTaxi(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.alipayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String trade_no = map.get("trade_no");
+
+                String substring = out_trade_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+                switch (type){
+                    case 1:
+                        orderPrivateCarService.payCancelOrderPrivateCar(id, trade_no, 2);
+                        break;
+                    case 2:
+                        orderTaxiService.payCancelOrderTaxi(id, trade_no, 2);
+                        break;
+                    case 3:
+                        orderCrossCityService.payCancelOrderCrossCity(id, trade_no, 2);
+                        break;
+                }
+                PrintWriter out = response.getWriter();
+                out.print("success");
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 完成订单微信支付回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/wxPayOrderTaxi")
+    public void wxPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+
+                String substring = out_trade_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+                switch (type){
+                    case 1:
+                        orderPrivateCarService.payOrderPrivateCarCallback(id, transaction_id, 1);
+                        break;
+                    case 2:
+                        orderTaxiService.payOrderTaxiCallback(id, transaction_id, 1);
+                        break;
+                    case 3:
+                        orderCrossCityService.payOrderCrossCityCallback(id, transaction_id, 1);
+                        break;
+                    case 4:
+                        orderLogisticsService.payOrderLogisticsCallback(id, transaction_id, 1);
+                        break;
+                    case 5:
+                        orderLogisticsService.payOrderLogisticsCallback(id, transaction_id, 1);
+                        break;
+                }
+
+                String result = map.get("result");
+                PrintWriter out = response.getWriter();
+                out.print(result);
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 完成订单支付宝支付回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/aliPayOrderTaxi")
+    public void aliPayOrderTaxi(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.alipayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String trade_no = map.get("trade_no");
+
+                String substring = out_trade_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+                switch (type){
+                    case 1:
+                        orderPrivateCarService.payOrderPrivateCarCallback(id, trade_no, 2);
+                        break;
+                    case 2:
+                        orderTaxiService.payOrderTaxiCallback(id, trade_no, 2);
+                        break;
+                    case 3:
+                        orderCrossCityService.payOrderCrossCityCallback(id, trade_no, 2);
+                        break;
+                    case 4:
+                        orderLogisticsService.payOrderLogisticsCallback(id, trade_no, 2);
+                        break;
+                    case 5:
+                        orderLogisticsService.payOrderLogisticsCallback(id, trade_no, 2);
+                        break;
+                }
+                PrintWriter out = response.getWriter();
+                out.print("success");
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+
+
+    /**
+     * 小件物流差价微信支付回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/wxPayOrderLogisticsSpread")
+    public void wxPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+
+                String substring = out_trade_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+
+                orderLogisticsService.payOrderLogisticsSpreadCallback(id, transaction_id, 1);
+
+                String result = map.get("result");
+                PrintWriter out = response.getWriter();
+                out.print(result);
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 小件物流差价支付宝支付回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/base/aliPayOrderLogisticsSpread")
+    public void aliPayOrderLogisticsSpread(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.alipayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String trade_no = map.get("trade_no");
+
+                String substring = out_trade_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+                orderLogisticsService.payOrderLogisticsSpreadCallback(id, trade_no, 2);
+
+                PrintWriter out = response.getWriter();
+                out.print("success");
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/order/queryDriverInfo")
+    @ApiOperation(value = "获取司机信息", tags = {"线下收款"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
+    })
+    public ResultUtil<Map<String, Object>> queryDriverInfo(Integer driverId){
+        try {
+            Driver driver = driverService.selectById(driverId);
+            String phone = AESUtil.decrypt(driver.getPhone());
+            Map<String, Object> map = new HashMap<>();
+            map.put("name", driver.getName());
+            map.put("phone", phone.substring(0, 3) + "****" + phone.substring(7));
+            map.put("headImg", driver.getHeadImgUrl());
+            return ResultUtil.success(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    @ResponseBody
+    @PostMapping("/base/order/driverQrCodePaymentCollection")
+    @ApiOperation(value = "扫码司机收款码调起支付", tags = {"线下收款"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "支付金额", name = "money", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝)", name = "payType", required = true, dataType = "int"),
+    })
+    public ResultUtil<Map<String, String>> driverQrCodePaymentCollection(Integer driverId, Double money, Integer payType){
+        try {
+            return orderService.driverQrCodePaymentCollection(driverId, money, payType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/order/queryDriverQrCodePaymentStatus")
+    @ApiOperation(value = "获取线下收款支付状态", tags = {"线下收款"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "支付id", name = "id", required = true, dataType = "string"),
+    })
+    public ResultUtil<Integer> queryDriverQrCodePaymentStatus(String id){
+        try {
+            OfflineTravelPayment offlineTravelPayment = offlineTravelPaymentService.selectOne(new EntityWrapper<OfflineTravelPayment>().eq("orderId", id));
+            if(null != offlineTravelPayment){
+                return ResultUtil.success(offlineTravelPayment.getStatus());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+        return ResultUtil.success(0);
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/order/queryDriverByOrderNum")
+    @ApiOperation(value = "根据订单编号获取司机信息", tags = {"线下收款"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "支付id", name = "id", required = true, dataType = "string"),
+    })
+    public ResultUtil<Map<String, Object>> queryDriverByOrderNum(String id){
+        try {
+            OfflineTravelPayment offlineTravelPayment = offlineTravelPaymentService.selectOne(new EntityWrapper<OfflineTravelPayment>().eq("orderId", id));
+            if(null == offlineTravelPayment){
+                return ResultUtil.error("订单编号无效");
+            }
+            return queryDriverInfo(offlineTravelPayment.getDriverId());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+
+    @ResponseBody
+    @PostMapping("/base/order/evaluateDriver")
+    @ApiOperation(value = "支付完成后的评价操作", tags = {"线下收款"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "评分", name = "score", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "评价内容", name = "content", required = true, dataType = "string"),
+    })
+    public ResultUtil evaluateDriver(Integer driverId, Integer score, String content){
+        try {
+            OrderEvaluate orderEvaluate = new OrderEvaluate();
+            orderEvaluate.setDriverId(driverId);
+            orderEvaluate.setFraction(score);
+            orderEvaluate.setContent(content);
+            orderEvaluate.setInsertTime(new Date());
+            orderEvaluateService.insert(orderEvaluate);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+
+    /**
+     * 扫码司机收款码支付回调
+     * @param request
+     * @param response
+     */
+    @ResponseBody
+    @PostMapping("/base/offlineTravelPaymentCallback")
+    public void offlineTravelPaymentCallback(HttpServletRequest request, HttpServletResponse response){
+        try {
+            System.err.println("线下收款开始回调-------------------");
+            ResultNotification resultNotification = PayUtil.payResultNotification(request);
+            System.err.println("支付回调:" + JSON.toJSONString(resultNotification));
+            if(null != resultNotification){
+                if("000000".equals(resultNotification.getReturnCode())){
+                    if("00".equals(resultNotification.getResultCode())){
+                        String chnlSeq = resultNotification.getChnlSeq();
+                        String txnSeq = resultNotification.getTxnSeq();
+                        OfflineTravelPayment offlineTravelPayment = offlineTravelPaymentService.selectOne(new EntityWrapper<OfflineTravelPayment>().eq("orderId", chnlSeq));
+                        if(null != offlineTravelPayment && offlineTravelPayment.getStatus() == 1){
+                            offlineTravelPayment.setStatus(2);
+                            offlineTravelPayment.setPayTime(new Date());
+                            offlineTravelPayment.setPayNumber(txnSeq);
+                            offlineTravelPaymentService.updateById(offlineTravelPayment);
+
+                            PrintWriter out = response.getWriter();
+                            out.print(resultNotification.getResponseStr());
+                            out.flush();
+                            out.close();
+                        }
+                    }else{
+                        System.err.println(resultNotification.getResultMsg());
+                    }
+                }else{
+                    System.err.println(resultNotification.getReturnMessage());
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 微信支付退款回调
+     * @param request
+     * @param response
+     */
+    @ResponseBody
+    @PostMapping("/base/wxRefundCallback")
+    public void wxRefundCallback(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.wxRefundCallback(request);
+            if(null != map){
+                String out_refund_no = map.get("out_refund_no");
+                String refund_id = map.get("refund_id");
+                String result = map.get("result");
+                String substring = out_refund_no.substring(17);
+                Integer type = Integer.valueOf(substring.substring(0, 1));
+                Integer id = Integer.valueOf(substring.substring(1));
+
+                PaymentRecord paymentRecord = paymentRecordService.selectById(id);
+                if(paymentRecord.getRefundState() == 2){
+                    return;
+                }
+                if(type == 3){
+                    paymentRecord.setRefundCode(refund_id);
+                    paymentRecord.setRefundState(2);
+                    paymentRecordService.updateById(paymentRecord);
+                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(paymentRecord.getOrderId());
+                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
+                }
+                if(type == 4 || type == 5){
+                    paymentRecord.setRefundCode(refund_id);
+                    paymentRecord.setRefundState(2);
+                    paymentRecordService.updateById(paymentRecord);
+                    OrderLogistics orderLogistics = orderLogisticsService.selectById(paymentRecord.getOrderId());
+                    transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", orderLogistics.getPayMoney(), 1, 1, 1, orderLogistics.getType(), orderLogistics.getId());
+                }
+
+                PrintWriter out = response.getWriter();
+                out.print(result);
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 管理后台取消订单回退支付金额
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/order/cancelOrderRollbackAmount")
+    public String cancelOrderRollbackAmount(Integer orderId, Integer orderType){
+        try {
+            switch (orderType){
+                case 3:
+                    OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                    if(orderCrossCity.getPayType() == 3){//余额支付
+                        UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
+                        userInfo.setBalance(userInfo.getBalance() + orderCrossCity.getPayMoney());
+                        userInfoService.updateById(userInfo);
+                        //添加交易明细
+                        transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, orderId);
+                    }else{
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                        List<PaymentRecord> paymentRecords = paymentRecordService.selectList(new EntityWrapper<PaymentRecord>().eq("category", 1).eq("orderId", orderId)
+                                .eq("orderType", orderType).eq("state", 2).isNull("refundState"));
+                        for (PaymentRecord paymentRecord : paymentRecords) {
+                            String out_trade_no = sdf.format(new Date()) + orderType + paymentRecord.getId();
+                            if(paymentRecord.getPayType() == 1){//微信
+                                payMoneyUtil.wxRefund(paymentRecord.getCode(), out_trade_no, paymentRecord.getAmount().toString(), paymentRecord.getAmount().toString(), callbackPath + "/base/wxRefundCallback");
+                            }
+                            if(paymentRecord.getPayType() == 2){//支付宝
+                                Map<String, String> map = payMoneyUtil.aliRefund(paymentRecord.getCode(), paymentRecord.getAmount().toString());
+                                String code = map.get("code");
+                                if(!"10000".equals(code)){
+                                    return JSON.toJSONString(ResultUtil.error(map.get("msg")));
+                                }
+                                paymentRecord.setRefundState(2);
+                                paymentRecord.setRefundCode(map.get("trade_no"));
+                                paymentRecordService.updateById(paymentRecord);
+                                //添加交易明细
+                                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, orderId);
+                            }
+                        }
+                    }
+                    break;
+                case 4:
+                    OrderLogistics orderLogistics = orderLogisticsService.selectById(orderId);
+                    if(orderLogistics.getPayType() == 3){//余额支付
+                        UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId());
+                        userInfo.setBalance(userInfo.getBalance() + orderLogistics.getPayMoney());
+                        userInfoService.updateById(userInfo);
+                        //添加交易明细
+                        transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", orderLogistics.getPayMoney(), 1, 1, 1, orderLogistics.getType(), orderLogistics.getId());
+                    }else{
+                        //调用回退接口
+                        List<PaymentRecord> paymentRecords = paymentRecordService.selectList(new EntityWrapper<PaymentRecord>().eq("category", 1).eq("orderId", orderId)
+                                .eq("orderType", orderType).eq("state", 2).isNull("refundState"));
+                        for (PaymentRecord paymentRecord : paymentRecords) {
+                            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                            String out_trade_no = sdf.format(new Date()) + orderLogistics.getType() + paymentRecord.getId();
+
+                            if(paymentRecord.getPayType() == 1){//微信
+                                Map<String, String> map = payMoneyUtil.wxRefund(paymentRecord.getCode(), out_trade_no, paymentRecord.getAmount().toString(), paymentRecord.getAmount().toString(), callbackPath + "/base/wxRefundCallback");
+                                String return_code = map.get("return_code");
+                                if(!"SUCCESS".equals(return_code)){
+                                    return JSON.toJSONString(ResultUtil.error(map.get("return_msg")));
+                                }
+                            }
+                            if(paymentRecord.getPayType() == 2){//支付宝
+                                Map<String, String> map = payMoneyUtil.aliRefund(paymentRecord.getCode(), paymentRecord.getAmount().toString());
+                                String code = map.get("code");
+                                if(!"10000".equals(code)){
+                                    return JSON.toJSONString(ResultUtil.error(map.get("msg")));
+                                }
+                                paymentRecord.setRefundState(2);
+                                paymentRecord.setRefundCode(map.get("trade_no"));
+                                paymentRecordService.updateById(paymentRecord);
+                                //添加交易明细
+                                transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", orderLogistics.getPayMoney(), 1, 1, 1, orderLogistics.getType(), orderLogistics.getId());
+                            }
+                        }
+                    }
+                    break;
+                case 5:
+                    OrderLogistics orderLogistics1 = orderLogisticsService.selectById(orderId);
+                    if(orderLogistics1.getPayType() == 3){//余额支付
+                        UserInfo userInfo = userInfoService.selectById(orderLogistics1.getUserId());
+                        userInfo.setBalance(userInfo.getBalance() + orderLogistics1.getPayMoney());
+                        userInfoService.updateById(userInfo);
+                        //添加交易明细
+                        transactionDetailsService.saveData(orderLogistics1.getUserId(), "小件物流取消退款", orderLogistics1.getPayMoney(), 1, 1, 1, orderLogistics1.getType(), orderLogistics1.getId());
+                    }else{
+                        //调用回退接口
+                        List<PaymentRecord> paymentRecords = paymentRecordService.selectList(new EntityWrapper<PaymentRecord>().eq("category", 1).eq("orderId", orderId)
+                                .eq("orderType", orderType).eq("state", 2).isNull("refundState"));
+                        for (PaymentRecord paymentRecord : paymentRecords) {
+                            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                            String out_trade_no = sdf.format(new Date()) + orderLogistics1.getType() + paymentRecord.getId();
+
+                            if(paymentRecord.getPayType() == 1){//微信
+                                Map<String, String> map = payMoneyUtil.wxRefund(paymentRecord.getCode(), out_trade_no, paymentRecord.getAmount().toString(), paymentRecord.getAmount().toString(), callbackPath + "/base/wxRefundCallback");
+                                String return_code = map.get("return_code");
+                                if(!"SUCCESS".equals(return_code)){
+                                    return JSON.toJSONString(ResultUtil.error(map.get("return_msg")));
+                                }
+                            }
+                            if(paymentRecord.getPayType() == 2){//支付宝
+                                Map<String, String> map = payMoneyUtil.aliRefund(paymentRecord.getCode(), paymentRecord.getAmount().toString());
+                                String code = map.get("code");
+                                if(!"10000".equals(code)){
+                                    return JSON.toJSONString(ResultUtil.error(map.get("msg")));
+                                }
+                                paymentRecord.setRefundState(2);
+                                paymentRecord.setRefundCode(map.get("trade_no"));
+                                paymentRecordService.updateById(paymentRecord);
+                                //添加交易明细
+                                transactionDetailsService.saveData(orderLogistics1.getUserId(), "小件物流取消退款", orderLogistics1.getPayMoney(), 1, 1, 1, orderLogistics1.getType(), orderLogistics1.getId());
+                            }
+                        }
+                    }
+                    break;
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return JSON.toJSONString(ResultUtil.runErr());
+        }
+        return JSON.toJSONString(ResultUtil.success());
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/orderPrivateCar/directCallCar")
+    @ApiOperation(value = "智慧屏一键叫车", tags = {"智慧屏"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "下单手机号", name = "phone", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "下单地点经度", name = "placementLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "下单地点纬度", name = "placementLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点经度", name = "startLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点纬度", name = "startLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点地址", name = "startAddress", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "设备号", name = "deviceCode", required = true, dataType = "string"),
+    })
+    public ResultUtil<BaseWarpper> directCallCar(String phone, String placementLon, String placementLat, String startLon, String startLat, String startAddress, String deviceCode){
+        try {
+            return orderPrivateCarService.directCallCar(phone, placementLon, placementLat, startLon, startLat, startAddress, deviceCode);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/base/orderPrivateCar/querySmartScreenOrder")
+    @ApiOperation(value = "获取智慧屏订单列表", tags = {"智慧屏"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "设备号", name = "deviceCode", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "经纬度(103.2222,30.23554)", name = "lonLat", required = true, dataType = "string"),
+    })
+    public ResultUtil<List<SmartScreenOrderVo>> querySmartScreenOrder(String deviceCode, String lonLat){
+        try {
+            List<SmartScreenOrderVo> orderVos = orderPrivateCarService.querySmartScreenOrder(deviceCode, lonLat);
+            return ResultUtil.success(orderVos);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java
new file mode 100644
index 0000000..42054ce
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PhoneController.java
@@ -0,0 +1,72 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.model.Phone;
+import com.stylefeng.guns.modular.system.service.IPhoneService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 系统电话控制器
+ */
+@Api
+@RestController
+@RequestMapping("/base/phone")
+public class PhoneController {
+
+    @Autowired
+    private IPhoneService phoneService;
+
+    /**
+     * 获取系统所有电话
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryPhones")
+    @ApiOperation(value = "获取首页电话", tags = {"用户端-首页", "用户端-包车"}, notes = "type=1(报警电话),type=2(投诉电话),type=3(包车调度电话)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "当前定位行政区域编号", name = "code", required = true, dataType = "string")
+    })
+    public ResultUtil queryPhones(String code){
+        try {
+            List<Phone> phones = phoneService.queryPhones(code);
+            return ResultUtil.success(phones);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取个人中心的客服电话
+     * @param code
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryCustomerPhone")
+    @ApiOperation(value = "获取个人中心的客服电话", tags = {"用户端-个人中心"}, notes = "platform(平台电话),company(本地电话)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "当前定位行政区域编号", name = "code", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryCustomerPhone(String code){
+        try {
+            Map<String, Object> map = phoneService.queryCustomerPhone(code);
+            return ResultUtil.success(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ProblemController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ProblemController.java
new file mode 100644
index 0000000..01a6fde
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ProblemController.java
@@ -0,0 +1,92 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.IProblemService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.ProblemWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 在线客服控制器
+ */
+@Api
+@RestController
+@RequestMapping("/api/problem")
+public class ProblemController {
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IProblemService problemService;
+
+
+    /**
+     * 添加客服留言
+     * @param content
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/leaveMessage")
+    @ApiOperation(value = "添加客服留言", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "留言内容", name = "content", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil leaveMessage(String content, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return problemService.leaveMessage(content, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取历史提交的留言列表
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryProblems")
+    @ApiOperation(value = "获取历史提交的留言列表", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<ProblemWarpper>> queryProblems(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> maps = problemService.queryProblems(pageNum, size, uid);
+            return ResultUtil.success(ProblemWarpper.getProblemWarpper(maps));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java
new file mode 100644
index 0000000..9dc6ace
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/RedEnvelopeController.java
@@ -0,0 +1,135 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.IUserRedPacketRecordService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.TravelRecordWarpper;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 红包控制器
+ */
+@Api
+@RestController
+@RequestMapping("/api/redEnvelope")
+public class RedEnvelopeController {
+
+    @Autowired
+    private IUserRedPacketRecordService userRedPacketRecordService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+
+    /**
+     * 获取红包列表
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryMyRedEnvelope")
+    @ApiOperation(value = "获取红包列表", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<BaseWarpper>> queryMyRedEnvelope(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = userRedPacketRecordService.queryMyRedEnvelope(pageNum, size, uid);
+            List<BaseWarpper> baseWarppers = new ArrayList<>();
+            for(Map<String, Object> map : list){
+                BaseWarpper baseWarpper = new BaseWarpper();
+                baseWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+                baseWarpper.setAmount(null != map.get("money") ? Double.valueOf(String.valueOf(map.get("money"))) : 0);
+                baseWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+                baseWarppers.add(baseWarpper);
+            }
+            return ResultUtil.success(baseWarppers);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取红包使用记录
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryRedEnvelope")
+    @ApiOperation(value = "获取红包使用记录", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码(首页1)", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<TravelRecordWarpper>> queryRedEnvelope(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            Integer page = pageNum;
+            pageNum = (pageNum - 1) * size;
+            List<Map<String, Object>> list = orderPrivateCarService.queryRedEnvelope(uid);//专车
+            List<Map<String, Object>> list1 = orderTaxiService.queryRedEnvelope(uid);//出租车
+            List<Map<String, Object>> list2 = orderCrossCityService.queryRedEnvelope(uid);//跨城
+            list.addAll(list1);
+            list.addAll(list2);
+
+            List<TravelRecordWarpper> orderWarpper = TravelRecordWarpper.getTravelRecordWarpper(list);
+
+            //分页
+            if(orderWarpper.size() >= page * size){
+                orderWarpper = orderWarpper.subList(pageNum, pageNum + size);
+            }else if(pageNum < orderWarpper.size() && orderWarpper.size() < page * size){
+                orderWarpper = orderWarpper.subList(pageNum, orderWarpper.size());
+            }else{
+                orderWarpper = new ArrayList<>();
+            }
+            return ResultUtil.success(orderWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
new file mode 100644
index 0000000..855449e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/ServerCarModelController.java
@@ -0,0 +1,69 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.service.IServerCarModelService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Api
+@RestController
+@RequestMapping("/base/serverCarModel")
+public class ServerCarModelController {
+
+    @Autowired
+    private IServerCarModelService serverCarModelService;
+
+
+    /**
+     * 获取车型和预估价格
+     * @param startLonLat
+     * @param endLonLat
+     * @param type
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryServerCarModel")
+    @ApiOperation(value = "选择起点终点后获取车型和预估价格", tags = {"用户端-专车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "起点经纬度(103.22121,,30.26123)", name = "startLonLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点经纬度(103.22121,,30.26123)", name = "endLonLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)", name = "type", required = true, dataType = "int")
+    })
+    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type){
+        try {
+            return serverCarModelService.queryServerCarModel(startLonLat, endLonLat, type);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/queryServerCarModels")
+    @ApiOperation(value = "获取业务对应的所有车型", tags = {"用户端-包车"}, notes = "")
+    @ApiImplicitParams({
+    })
+    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModels(){
+        try {
+            List<Map<String, Object>> list = serverCarModelService.queryServerCarModels(3);
+            return ResultUtil.success(ServerCarModelWarpper.getServerCarModelWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SystemNoticeController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SystemNoticeController.java
new file mode 100644
index 0000000..97285ca
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/SystemNoticeController.java
@@ -0,0 +1,174 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.SystemNoticeWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 个人系统消息和公告控制器
+ */
+@Api
+@RestController
+@RequestMapping("/api/systemNotice")
+public class SystemNoticeController {
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+    @ResponseBody
+    @PostMapping("/queryNoReadNoticeNum")
+    @ApiOperation(value = "获取未读的消息数量", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> queryNoReadNoticeNum(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            int num = systemNoticeService.queryNoReadNoticeNum(uid);
+            BaseWarpper baseWarpper = new BaseWarpper();
+            baseWarpper.setNumber(num);
+            return ResultUtil.success(baseWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 获取系统消息和公告
+     * @param type
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryNotices")
+    @ApiOperation(value = "获取系统消息和公告", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "数据类型(1=公告,2=系统消息)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<SystemNoticeWarpper>> queryNotices(Integer type, Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = systemNoticeService.queryList(type, pageNum, size, uid);
+            return ResultUtil.success(SystemNoticeWarpper.getSystemNoticeWarpper(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 阅读操作
+     * @param id
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/readSystemNotice")
+    @ApiOperation(value = "阅读系统消息和公告操作", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "消息id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil readSystemNotice(Integer id, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            systemNoticeService.readSystemNotice(id, uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 删除单个消息或公告
+     * @param id
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/delSystemNotice")
+    @ApiOperation(value = "删除单个消息或公告", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "消息id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil delSystemNotice(Integer id, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            systemNoticeService.delSystemNotice(id, uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 清除所有消息或公告
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/clearSystemNotice")
+    @ApiOperation(value = "清除所有消息或公告", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil clearSystemNotice(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            systemNoticeService.clearSystemNotice(uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/TNoticeController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/TNoticeController.java
new file mode 100644
index 0000000..91d51d3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/TNoticeController.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.modular.api;
+
+import com.stylefeng.guns.modular.system.service.ITNoticesService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.TNoticeWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 公告控制器
+ */
+@Api
+@RestController
+@RequestMapping("/base/notice")
+public class TNoticeController {
+
+    @Autowired
+    private ITNoticesService noticeService;
+
+
+    /**
+     * 获取公告列表
+     * @param type
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryNotices")
+    @ApiOperation(value = "获取滚动消息", tags = {"用户端-首页"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "数据类型(1:滚动消息)", name = "type", required = true, dataType = "int")
+    })
+    public ResultUtil<List<TNoticeWarpper>> queryNotices(Integer type){
+        try {
+            List<TNoticeWarpper> list = noticeService.queryNotices(type);
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
new file mode 100644
index 0000000..72a0178
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserCallbackController.java
@@ -0,0 +1,96 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ICBCPayUtil;
+import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.util.Map;
+
+
+/**
+ * 支付回调
+ */
+@RestController
+@RequestMapping("/base")
+public class UserCallbackController {
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+
+
+
+
+    /**
+     * 微信余额充值回调函数
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/wxCancelUserBalance")
+    public void wxCancelUserBalance(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String transaction_id = map.get("transaction_id");
+                String uid = map.get("attach");
+
+                String id = out_trade_no.substring(17);
+                userInfoService.payCancelUserBalance(Integer.valueOf(uid), transaction_id, Integer.valueOf(id), 1);
+
+                String result = map.get("result");
+                PrintWriter out = response.getWriter();
+                out.print(result);
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    /**
+     * 支付宝余额充值回调
+     * @param request
+     */
+    @ResponseBody
+    @PostMapping("/aliCancelUserBalance")
+    public void aliCancelUserBalance(HttpServletRequest request, HttpServletResponse response){
+        try {
+            Map<String, String> map = payMoneyUtil.alipayCallback(request);
+            if(null != map){
+                String out_trade_no = map.get("out_trade_no");
+                String trade_no = map.get("trade_no");
+                String uid = map.get("subject");
+
+                String id = out_trade_no.substring(17);
+                userInfoService.payCancelUserBalance(Integer.valueOf(uid), trade_no, Integer.valueOf(id), 2);
+                PrintWriter out = response.getWriter();
+                out.print("success");
+                out.flush();
+                out.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
new file mode 100644
index 0000000..cb99e42
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -0,0 +1,862 @@
+package com.stylefeng.guns.modular.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.common.constant.JwtConstants;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.service.ISmsrecordService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.IVerifiedService;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
+import com.stylefeng.guns.modular.system.warpper.UserInfoWarpper;
+import com.stylefeng.guns.modular.system.warpper.VerifiedWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.util.*;
+
+/**
+ * 用户控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class UserInfoController {
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IVerifiedService verifiedService;
+
+    @Autowired
+    private ISmsrecordService smsrecordService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private WeChatUtil weChatUtil;
+
+    @Autowired
+    private IDriverService driverService;
+
+
+
+
+
+    /**
+     * 获取短信验证码
+     * @param phone
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/queryCaptcha")
+    @ApiOperation(value = "获取短信验证码", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "场景类型(1=身份验证,2=登录确认,3=用户注册,4=修改密码)", name = "type", required = true, dataType = "String")
+    })
+    public ResultUtil queryCaptcha(String phone, Integer type){
+        if(ToolUtil.isNotEmpty(phone)){
+            try {
+                phone = AESUtil.decrypt(phone);//对电话号码进行解密
+
+                return userInfoService.queryCaptcha(phone, type);
+            }catch (Exception e){
+                e.printStackTrace();
+                return ResultUtil.runErr();
+            }
+        }else{
+            return ResultUtil.paranErr();
+        }
+    }
+
+
+    /**
+     * 获取图形验证码
+     */
+    @ResponseBody
+    @GetMapping("/base/getVerifyCodeUtils")
+    @ApiOperation(value = "获取图形验证码", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+    })
+    public Object getVerifyCodeUtils(){
+        try {
+            String s = VerifyCodeUtils.generateVerifyCode(4);
+            File file = new File("/usr/local/server/VerifyCode/" + s + ".jpg");
+            if(!file.exists()){
+                file.createNewFile();
+                FileOutputStream out = new FileOutputStream(file);
+                VerifyCodeUtils.outputImage(100, 40, out, s);
+                file = new File("/usr/local/server/VerifyCode/" + s + ".jpg");
+                FileInputStream inputStream = new FileInputStream(file);
+                byte[] data = new byte[inputStream.available()];
+                inputStream.read(data);
+                inputStream.close();
+                String string = Base64.getEncoder().encodeToString(data);
+                Map<String, Object> map = new HashMap<>();
+                map.put("code", MD5AndKL.MD5(s.toLowerCase()));
+                map.put("img", string);
+                file.delete();
+                return ResultUtil.success(map);
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 手机验证码登录
+     * @param phone
+     * @param code
+     * @param registIp
+     * @param registAreaCode
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/user/captchaLogin")
+    @ApiOperation(value = "手机验证码登录", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "ip地址", name = "registIp", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "当前定位区县行政编号", name = "registAreaCode", required = false, dataType = "String")
+    })
+    public ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, String registAreaCode,String loginType){
+        try {
+            return userInfoService.captchaLogin(phone, code, registIp, registAreaCode,loginType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/base/user/oneClickLogin")
+    @ApiOperation(value = "手机一键登录", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "app端SDK获取的登录token。", name = "accessToken", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "ip地址", name = "registIp", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "当前定位区县行政编号", name = "registAreaCode", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "安卓或者苹果  安卓传android 苹果传ios", name = "androidOrIos", required = false, dataType = "String")
+    })
+    public ResultUtil<LoginWarpper> oneClickLogin(String accessToken, String registIp, String registAreaCode,String loginType,String androidOrIos){
+        try {
+            return userInfoService.oneClickLogin(accessToken, registIp, registAreaCode,loginType,androidOrIos);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 手机验证码登录
+     * @param phone
+     * @param code
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/user/captchaLogin_")
+    @ApiOperation(value = "手机验证码登录", tags = {"分享专用"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "分享的用户id", name = "uid", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "用户类型(1=用户,2=司机)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "注册类型(1=司机注册,2=用户注册)", name = "userType", required = true, dataType = "int")
+    })
+    public ResultUtil<LoginWarpper> captchaLogin_(String phone, String code, Integer uid, Integer type, Integer userType,String loginType){
+        try {
+            return userInfoService.captchaLogin(phone, code, uid, type, userType,loginType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+
+    /**
+     * 账号密码登录
+     * @param phone
+     * @param password
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/user/userLogin")
+    @ApiOperation(value = "账号密码登录", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "登录密码", name = "password", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "String"),
+    })
+    public ResultUtil<LoginWarpper> userLogin(String phone, String password,String loginType, String code){
+        if(ToolUtil.isNotEmpty(phone) && ToolUtil.isNotEmpty(password)){
+            try {
+                phone = AESUtil.decrypt(phone);//解密电话号码
+                boolean b = userInfoService.checkCaptcha(phone, code);
+                if(!b){
+                    return ResultUtil.error("验证码无效");
+                }
+                return userInfoService.userLogin(phone, password,loginType);
+            }catch (Exception e){
+                e.printStackTrace();
+                return ResultUtil.runErr();
+            }
+        }else{
+            return ResultUtil.paranErr();
+        }
+    }
+
+
+    /**
+     * 忘记密码
+     * @param phone
+     * @param code
+     * @param password
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/user/forgetPassword")
+    @ApiOperation(value = "忘记密码操作", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "手机号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "验证码", name = "code", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "新密码", name = "password", required = true, dataType = "String")
+    })
+    public ResultUtil forgetPassword(String phone, String code, String password){
+        if(ToolUtil.isNotEmpty(phone) && ToolUtil.isNotEmpty(code) && ToolUtil.isNotEmpty(password)){
+            try {
+                return userInfoService.forgetPassword(phone, code, password);
+            }catch (Exception e){
+                e.printStackTrace();
+                return ResultUtil.runErr();
+            }
+        }else{
+            return ResultUtil.paranErr();
+        }
+    }
+
+
+    /**
+     * 微信授权登录
+     * @param type              登录端口(1:APP登录,2:小程序)
+     * @param openid            微信openid
+     * @param unionid           微信unionid
+     * @param jscode            小程序登录时的jscode临时凭证
+     * @param registIp          ip地址
+     * @param registAreaCode    当前定位区县行政编号(6位)
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/user/wxLogin")
+    @ApiOperation(value = "微信授权登录", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "登录端口(1:APP,2:小程序)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "微信openid(APP登录上传)", name = "openid", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "微信unionid(APP登录上传)", name = "unionid", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "微信jscode(小程序登录上传)", name = "jscode", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "ip地址", name = "registIp", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "当前定位区县行政编号", name = "registAreaCode", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "头像", name = "avatar", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "昵称", name = "nickName", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "性别(1=男,2=女)", name = "sex", required = false, dataType = "int")
+    })
+    public ResultUtil<LoginWarpper> wxLogin(Integer type, String openid, String unionid, String jscode, String registIp, String registAreaCode, Integer sex, String nickName, String avatar,String loginType){
+        try {
+            return userInfoService.wxLogin(type, openid, unionid, jscode, registIp, registAreaCode, sex, nickName, avatar,loginType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 设置电话号码
+     * @param phone
+     * @param code
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/bindingPhone")
+    @ApiOperation(value = "设置电话号码", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "验证码", name = "code", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "登录端口-小程序传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<LoginWarpper> bindingPhone(String phone, String code, HttpServletRequest request,String loginType){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return userInfoService.bindingPhone(uid, phone, code,loginType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取用户个人信息
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/queryUserInfo")
+    @ApiOperation(value = "获取用户详情", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<UserInfoWarpper> queryUserInfo(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            Map<String, Object> map = userInfoService.queryUserInfo(uid);
+            return ResultUtil.success(UserInfoWarpper.getUserInfoWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 手机号码获取用户
+     * @param phone
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/queryUser")
+    @ApiOperation(value = "手机号码获取用户", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<Object> queryUser(String phone){
+        try {
+            Map<String, Object> map = userInfoService.queryUser(phone);
+            if(null != map){
+                return ResultUtil.success(UserInfoWarpper.getUserInfoWarpper(map));
+            }
+            return ResultUtil.success(new JSONObject());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 实名认证操作
+     * @param verifiedWarpper
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/verified")
+    @ApiOperation(value = "实名认证操作", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil verified(VerifiedWarpper verifiedWarpper, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return verifiedService.verified(VerifiedWarpper.getVerified(verifiedWarpper), uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 设置紧急联系人
+     * @param name
+     * @param phone
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/setUrgentUser")
+    @ApiOperation(value = "设置紧急联系人", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "姓名,没有传空字符串", name = "name", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "电话号码,没有传空字符串", name = "phone", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil setUrgentUser(String name, String phone, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            userInfoService.setUrgentUser(name, phone, uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 用户充值余额
+     * @param payType
+     * @param money
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/depositBalance")
+    @ApiOperation(value = "余额充值", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "充值金额", name = "money", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = false, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil depositBalance(Integer payType, Double money, Integer type, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return userInfoService.depositBalance(payType, money, uid, type);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 修改手机号码
+     * @param code
+     * @param phone
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/updatePhone")
+    @ApiOperation(value = "修改手机号码", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "验证码", name = "code", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "新手机号", name = "phone", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil updatePhone(String code, String phone, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return userInfoService.updatePhone(code, phone, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/api/user/checkCaptcha")
+    @ApiOperation(value = "验证短信验证码", tags = {"用户端-个人中心"}, notes = "1=正确,0=错误")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "电话号码", name = "phone", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "短信验证码", name = "code", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil checkCaptcha(String phone, String code, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            UserInfo userInfo = userInfoService.selectById(uid);
+            String phone1 = AESUtil.decrypt(userInfo.getPhone());//解密
+            smsrecordService.saveData(4, phone1, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
+            phone = AESUtil.decrypt(phone);//解密
+            boolean b = userInfoService.checkCaptcha(phone, code);
+            Map<String, Object> map = new HashMap<>();
+            map.put("ok", b ? 1 : 0);
+            return ResultUtil.success(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 修改登录密码
+     * @param password
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/updatePassword")
+    @ApiOperation(value = "修改登录密码", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "新密码", name = "password", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil updatePassword(String password, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return userInfoService.updatePass(password, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 修改个人信息
+     * @param avatar
+     * @param nickname
+     * @param sex
+     * @param birthday
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/updateInfo")
+    @ApiOperation(value = "修改个人信息", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "头像", name = "avatar", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "昵称", name = "nickname", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "性别(1=男,2=女)", name = "sex", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "生日(2020-06-15)", name = "birthday", required = false, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil updateInfo(String avatar, String nickname, Integer sex, Date birthday, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            userInfoService.updateInfo(avatar, nickname, sex, birthday, uid);
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/user/queryRealName")
+    @ApiOperation(value = "获取实名认证的数据", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryRealName(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            Map<String, Object> map = userInfoService.queryRealName(uid);
+            return ResultUtil.success(null != map ? map : new HashMap<>());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 后台调用禁用用户
+     * @param uid
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/user/freeze")
+    public ResultUtil freeze(Integer uid){
+        try {
+            UserInfo userInfo = userInfoService.selectById(uid);
+            String value = redisUtil.getValue(userInfo.getPhone());
+            redisUtil.remove(value);
+            redisUtil.remove(userInfo.getPhone());
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 仿socket接口(单点登录)
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/comparisonToken")
+    @ApiOperation(value = "单点登录", tags = {"用户端-仿socket接口"}, notes = "match=1(匹配),match=2(不匹配)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil comparisonToken(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER);
+            requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
+            String value = redisUtil.getValue("USER_" + uid);
+            Map<String, Object> map = new HashMap<>();
+            map.put("match", requestHeader.equals(value) ? 1 : 2);
+            return ResultUtil.success(map);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 注销账号
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/cancellation")
+    @ApiOperation(value = "注销账号", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil cancellation(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            UserInfo userInfo = userInfoService.selectById(uid);
+            userInfo.setState(2);
+            userInfoService.updateById(userInfo);
+            //开始验证当前账号是否在别处登录
+            String value = redisUtil.getValue("USER_" + uid);
+            if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线
+                //开始清除redis中无效的数据
+                String key = redisUtil.getValue("USER_" + userInfo.getPhone());
+                redisUtil.remove(key);//删除个人信息数据
+                redisUtil.remove("USER_" + userInfo.getPhone());//删除后台冻结相关缓存
+                redisUtil.remove("USER_" + uid);//清除存储的token
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    @ResponseBody
+    @PostMapping("/base/user/dxlcLogin")
+    @ApiOperation(value = "道行龙城登录", tags = {"用户端-道行龙城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "道行龙城获取的授权", name = "authCode", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "登录端口-小程序和H5传Applets", name = "loginType", required = false, dataType = "String"),
+            @ApiImplicitParam(value = "当前定位区县行政编号", name = "registAreaCode", required = false, dataType = "String")
+    })
+    public ResultUtil dxlcLogin(String authCode, String registAreaCode,String loginType){
+        try {
+            return userInfoService.dxlcLogin(authCode, registAreaCode, loginType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/user/getSignatureConfig")
+    @ApiOperation(value = "获取微信JS-SDK", tags = {"用户端-道行龙城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "授权地址", name = "url", required = true, dataType = "String"),
+    })
+    public ResultUtil getSignatureConfig(String url){
+        try {
+            Map<String, Object> signatureConfig = weChatUtil.getSignatureConfig(url);
+            return ResultUtil.success(signatureConfig);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 手机号码获取用户
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/user/phoneLoginBindingWeChat")
+    @ApiOperation(value = "微信小程序手机号登录后调用此接口保存微信openid", tags = {"用户端-登录"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "微信登录临时凭证", name = "jscode", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil phoneLoginBindingWeChat(String jscode, HttpServletRequest request){
+        try {
+            Integer userId = userInfoService.getUserIdFormRedis(request);
+            if(null == userId){
+                return ResultUtil.tokenErr();
+            }
+            return userInfoService.phoneLoginBindingWeChat(userId, jscode);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 对数据库数据进行加密
+     * @param type
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/encryptedData")
+    public ResultUtil encryptedData(Integer type, Integer id){
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                System.err.println("执行加密任务开始");
+                if(type == 1){//用户
+                    EntityWrapper<UserInfo> userInfoEntityWrapper = new EntityWrapper<>();
+                    if(null != id){
+                        userInfoEntityWrapper.eq("id", id);
+                    }
+                    List<UserInfo> userInfos = userInfoService.selectList(userInfoEntityWrapper);
+                    for (UserInfo userInfo : userInfos) {
+                        if(ToolUtil.isNotEmpty(userInfo.getPhone())){
+                            userInfo.setPhone(AESUtil.encrypt(userInfo.getPhone()));
+                        }
+                        if(ToolUtil.isNotEmpty(userInfo.getIdCard())){
+                            userInfo.setIdCard(AESUtil.encrypt(userInfo.getIdCard()));
+                        }
+                        userInfoService.updateById(userInfo);
+                    }
+                }else{
+                    EntityWrapper<Driver> userInfoEntityWrapper = new EntityWrapper<>();
+                    if(null != id){
+                        userInfoEntityWrapper.eq("id", id);
+                    }
+                    List<Driver> drivers = driverService.selectList(userInfoEntityWrapper);
+                    for (Driver driver : drivers) {
+                        if(ToolUtil.isNotEmpty(driver.getAccount())){
+                            driver.setAccount(AESUtil.encrypt(driver.getAccount()));
+                        }
+                        if(ToolUtil.isNotEmpty(driver.getPhone())){
+                            driver.setPhone(AESUtil.encrypt(driver.getPhone()));
+                        }
+                        if(ToolUtil.isNotEmpty(driver.getIdCard())){
+                            driver.setIdCard(AESUtil.encrypt(driver.getIdCard()));
+                        }
+                        driverService.updateById(driver);
+                    }
+                }
+                System.err.println("执行加密任务结束");
+            }
+        }).start();
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 解密数据
+     * @param type
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/decryptData")
+    public ResultUtil decryptData(Integer type, Integer id){
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                System.err.println("执行解密任务开始");
+                if(type == 1){//用户
+                    EntityWrapper<UserInfo> userInfoEntityWrapper = new EntityWrapper<>();
+                    if(null != id){
+                        userInfoEntityWrapper.eq("id", id);
+                    }
+                    List<UserInfo> userInfos = userInfoService.selectList(userInfoEntityWrapper);
+                    for (UserInfo userInfo : userInfos) {
+                        if(ToolUtil.isNotEmpty(userInfo.getPhone())){
+                            userInfo.setPhone(AESUtil.decrypt(userInfo.getPhone()));
+                        }
+                        if(ToolUtil.isNotEmpty(userInfo.getIdCard())){
+                            userInfo.setIdCard(AESUtil.decrypt(userInfo.getIdCard()));
+                        }
+                        userInfoService.updateById(userInfo);
+                    }
+                }else{
+                    EntityWrapper<Driver> userInfoEntityWrapper = new EntityWrapper<>();
+                    if(null != id){
+                        userInfoEntityWrapper.eq("id", id);
+                    }
+                    List<Driver> drivers = driverService.selectList(userInfoEntityWrapper);
+                    for (Driver driver : drivers) {
+                        if(ToolUtil.isNotEmpty(driver.getAccount())){
+                            driver.setAccount(AESUtil.decrypt(driver.getAccount()));
+                        }
+                        if(ToolUtil.isNotEmpty(driver.getPhone())){
+                            driver.setPhone(AESUtil.decrypt(driver.getPhone()));
+                        }
+                        if(ToolUtil.isNotEmpty(driver.getIdCard())){
+                            driver.setIdCard(AESUtil.decrypt(driver.getIdCard()));
+                        }
+                        driverService.updateById(driver);
+                    }
+                }
+                System.err.println("执行解密任务结束");
+            }
+        }).start();
+        return ResultUtil.success();
+    }
+
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/VersionManagementController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/VersionManagementController.java
new file mode 100644
index 0000000..06ef99d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/VersionManagementController.java
@@ -0,0 +1,60 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.service.IVersionManagementService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.VersionWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+
+/**
+ * 版本管理
+ */
+@Api
+//@CrossOrigin
+@RestController
+@RequestMapping("")
+public class VersionManagementController {
+
+    @Autowired
+    private IVersionManagementService versionManagementService;
+
+
+
+    @ResponseBody
+    @PostMapping("/api/version/queryNewData")
+    @ApiOperation(value = "获取最新版本数据", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<VersionWarpper> queryNewData(){
+        try {
+            Map<String, Object> map = versionManagementService.queryNewVersion();
+            return ResultUtil.success(VersionWarpper.getVersionWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/base/version/queryNewData1")
+    @ApiOperation(value = "获取最新版本数据", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+    })
+    public ResultUtil<VersionWarpper> queryNewData1(){
+        try {
+            Map<String, Object> map = versionManagementService.queryNewVersion();
+            return ResultUtil.success(VersionWarpper.getVersionWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
new file mode 100644
index 0000000..977471b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/WithdrawalController.java
@@ -0,0 +1,139 @@
+package com.stylefeng.guns.modular.api;
+
+
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.IWithdrawalService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.WithdrawalWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 提现控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class WithdrawalController {
+
+    @Autowired
+    private IWithdrawalService withdrawalService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+    /**
+     * 账户余额提现操作
+     * @param money
+     * @param code
+     * @param name
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/withdrawal/withdrawal")
+    @ApiOperation(value = "账户余额提现", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "提现金额", name = "money", required = true, dataType = "double"),
+            @ApiImplicitParam(value = "银行卡号", name = "code", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "银行卡持有人姓名", name = "name", required = true, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil withdrawal(Double money, String code, String name, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return withdrawalService.withdrawal(money, code, name, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    @ResponseBody
+    @PostMapping("/api/withdrawal/withdrawal1")
+    @ApiOperation(value = "账户余额提现【新】", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "金额", name = "money", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "开户姓名", name = "acctName", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "银行卡id", name = "bankCardId", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil withdrawal1(Double money, String acctName, Integer bankCardId, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return withdrawalService.withdrawal1(money, acctName, bankCardId, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 获取历史提现数据
+     * @param pageNum
+     * @param size
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/withdrawal/queryWithdrawal")
+    @ApiOperation(value = "获取历史提现数据", tags = {"用户端-个人中心"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<WithdrawalWarpper>> queryWithdrawal(Integer pageNum, Integer size, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            List<Map<String, Object>> list = withdrawalService.queryWithdrawal(uid, pageNum, size);
+            return ResultUtil.success(WithdrawalWarpper.getWithdrawalWarpper(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 内部调用审核提交结果的处理
+     * @param id        提现申请数据id
+     * @param state     审核状态(1=同意,2=拒绝)
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/withdrawal/queryWithdrawal")
+    public ResultUtil withdrawalAudit(Integer id, Integer state){
+        try {
+            return withdrawalService.withdrawalAudit(id, state);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
new file mode 100644
index 0000000..725029b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/controller/CodeController.java
@@ -0,0 +1,61 @@
+package com.stylefeng.guns.modular.code.controller;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.config.properties.DruidProperties;
+import com.stylefeng.guns.generator.action.config.WebGeneratorConfig;
+import com.stylefeng.guns.generator.action.model.GenQo;
+import com.stylefeng.guns.modular.code.factory.DefaultTemplateFactory;
+import com.stylefeng.guns.modular.code.service.TableService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+/**
+ * 代码生成控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年11月30日16:39:19
+ */
+@Controller
+@RequestMapping("/code")
+public class CodeController extends BaseController {
+
+    private static String PREFIX = "/code";
+
+    @Autowired
+    private TableService tableService;
+
+    @Autowired
+    private DruidProperties druidProperties;
+
+    /**
+     * 跳转到代码生成主页
+     */
+    @RequestMapping("")
+    public String blackboard(Model model) {
+        model.addAttribute("tables", tableService.getAllTables());
+        model.addAttribute("params", DefaultTemplateFactory.getDefaultParams());
+        model.addAttribute("templates", DefaultTemplateFactory.getDefaultTemplates());
+        return PREFIX + "/code.html";
+    }
+
+    /**
+     * 生成代码
+     */
+    @ApiOperation("生成代码")
+    @RequestMapping(value = "/generate", method = RequestMethod.POST)
+    @ResponseBody
+    public Object generate(GenQo genQo) {
+        genQo.setUrl(druidProperties.getUrl());
+        genQo.setUserName(druidProperties.getUsername());
+        genQo.setPassword(druidProperties.getPassword());
+        WebGeneratorConfig webGeneratorConfig = new WebGeneratorConfig(genQo);
+        webGeneratorConfig.doMpGeneration();
+        webGeneratorConfig.doGunsGeneration();
+        return SUCCESS_TIP;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/factory/DefaultTemplateFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/factory/DefaultTemplateFactory.java
new file mode 100644
index 0000000..1cebee4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/factory/DefaultTemplateFactory.java
@@ -0,0 +1,61 @@
+package com.stylefeng.guns.modular.code.factory;
+
+
+import com.stylefeng.guns.GunsApplication;
+import com.stylefeng.guns.core.CoreFlag;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.generator.action.model.GenQo;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 模板种类构建器
+ *
+ * @author fengshuonan
+ * @date 2017-12-04-下午2:59
+ */
+public class DefaultTemplateFactory {
+
+    /**
+     * 获取所有的模板种类
+     */
+    public static List<Map<String,Object>> getDefaultTemplates(){
+        ArrayList<Map<String, Object>> templates = new ArrayList<>();
+        templates.add(create("controllerSwitch","controller-控制器模板"));
+        templates.add(create("entitySwitch","entity-实体模板"));
+        templates.add(create("serviceSwitch","service-service模板"));
+        templates.add(create("daoSwitch","dao-dao模板"));
+        templates.add(create("indexPageSwitch","indexPage-首页模板"));
+        templates.add(create("addPageSwitch","addPage-添加页面模板"));
+        templates.add(create("editPageSwitch","editPage-编辑页面模板"));
+        templates.add(create("jsSwitch","indexJs-主页js模板"));
+        templates.add(create("infoJsSwitch","infoJs-详情页js模板"));
+        templates.add(create("sqlSwitch","sql-sql语句模板"));
+        return templates;
+    }
+
+    /**
+     * 获取默认的参数
+     */
+    public static GenQo getDefaultParams(){
+        GenQo genQo = new GenQo();
+        genQo.setProjectPath(ToolUtil.getWebRootPath(null));
+        genQo.setAuthor("stylefeng");
+        genQo.setProjectPackage(GunsApplication.class.getPackage().getName());
+        genQo.setCorePackage(CoreFlag.class.getPackage().getName());
+        genQo.setIgnoreTabelPrefix("sys_");
+        genQo.setModuleName("system");
+        genQo.setParentMenuName("系统管理");
+        return genQo;
+    }
+
+    private static Map<String,Object> create(String key,String desc){
+        HashMap<String, Object> template = new HashMap<>();
+        template.put("key",key);
+        template.put("desc",desc);
+        return template;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/service/TableService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/service/TableService.java
new file mode 100644
index 0000000..f8f9478
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/code/service/TableService.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.code.service;
+
+import com.baomidou.mybatisplus.mapper.SqlRunner;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 获取数据库所有的表
+ *
+ * @author fengshuonan
+ * @date 2017-12-04-下午1:37
+ */
+@Service
+public class TableService {
+
+    @Value("${spring.datasource.db-name}")
+    private String dbName;
+
+    /**
+     * 获取当前数据库所有的表信息
+     */
+    public List<Map<String, Object>> getAllTables() {
+        String sql = "select TABLE_NAME as tableName,TABLE_COMMENT as tableComment from information_schema.`TABLES` where TABLE_SCHEMA = '" + dbName + "'";
+        return SqlRunner.db().selectList(sql);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
new file mode 100644
index 0000000..23b8ed9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineController.java
@@ -0,0 +1,67 @@
+package com.stylefeng.guns.modular.crossCity.controller;
+
+
+import com.stylefeng.guns.modular.crossCity.server.ILineService;
+import com.stylefeng.guns.modular.crossCity.warpper.LineWarpper;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 线路控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class LineController {
+
+    @Autowired
+    private ILineService lineService;
+
+
+
+    @ResponseBody
+    @RequestMapping(value = "/base/line/queryLines", method = RequestMethod.POST)
+    @ApiOperation(value = "根据选择的起点和终点获取线路", tags = {"用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "起始站点id", name = "startId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "终点站点id", name = "endId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = false, dataType = "int")
+    })
+    public ResultUtil<List<LineWarpper>> queryLines(Integer startId, Integer endId, Integer driverId){
+        try {
+            List<Map<String, Object>> list = lineService.queryLines(startId, endId, driverId);
+            return ResultUtil.success(LineWarpper.getLineWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+//    @ResponseBody
+//    @RequestMapping(value = "/base/line/scanCodeQueryLines", method = RequestMethod.POST)
+//    @ApiOperation(value = "扫码获取线路信息", tags = {"用户端-跨城"}, notes = "")
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(value = "司机id", name = "driverId", required = true, dataType = "int")
+//    })
+//    public ResultUtil<List<BaseWarpper>> scanCodeQueryLines(Integer driverId){
+//        try {
+//            List<Map<String, Object>> list = lineService.scanCodeQueryLines(driverId);
+//            return ResultUtil.success(BaseWarpper.getBaseWarppers(list));
+//        }catch (Exception e){
+//            e.printStackTrace();
+//            return ResultUtil.runErr();
+//        }
+//    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java
new file mode 100644
index 0000000..f9e81e6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java
@@ -0,0 +1,73 @@
+package com.stylefeng.guns.modular.crossCity.controller;
+
+
+import com.stylefeng.guns.modular.crossCity.server.ILineSiteService;
+import com.stylefeng.guns.modular.crossCity.warpper.LineSiteWarpper;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.SystemException;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 线路排班控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class LineSiteController {
+
+    @Autowired
+    private ILineSiteService lineSiteService;
+
+
+
+    @ResponseBody
+    @RequestMapping(value = "/base/lineSite/queryDriver", method = RequestMethod.POST)
+    @ApiOperation(value = "根据线路id获取线路排班数据", tags = {"用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "查询天(2020-09-03)", name = "day", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = false, dataType = "int")
+    })
+    public ResultUtil<List<LineSiteWarpper>> queryDriver(Integer lineId, String day, Integer driverId){
+        try {
+            List<Map<String, Object>> list = lineSiteService.queryDriver(lineId, day, driverId);
+            return ResultUtil.success(LineSiteWarpper.getLineSiteWarppers(list));
+        } catch (SystemException se){
+            return ResultUtil.error(se.getMessage());
+        } catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    @ResponseBody
+    @RequestMapping(value = "/base/lineSite/querySeat", method = RequestMethod.POST)
+    @ApiOperation(value = "根据司机的排班id获取剩余座位数据", tags = {"用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "司机排班id", name = "id", required = true, dataType = "int"),
+    })
+    public ResultUtil<BaseWarpper> querySeat(Integer id){
+        try {
+            Map<String, Object> map = lineSiteService.querySeat(id);
+            return ResultUtil.success(BaseWarpper.getBaseWarpper(map));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
new file mode 100644
index 0000000..857133a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/OrderCrossCityController.java
@@ -0,0 +1,138 @@
+package com.stylefeng.guns.modular.crossCity.controller;
+
+
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.SystemException;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+@Api
+@RestController
+@RequestMapping("")
+public class OrderCrossCityController {
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+    @ResponseBody
+    @RequestMapping(value = "/base/orderCrossCity/queryOrderMoney", method = RequestMethod.POST)
+    @ApiOperation(value = "获取跨城的支付金额", tags = {"用户端-跨城"}, notes = "distance:距离数(米),price:支付金额")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "起点坐标(103.32123,30.6232)", name = "startLonLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点坐标(103.32123,30.6232)", name = "endLonLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "乘车人数", name = "peopleNumber", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "出行方式(1=拼车,2=包车)", name = "travelMode", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "线路id", name = "lineId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "服务车型id", name = "serverCarModelId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "车辆总座位数", name = "totalSeat", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "座位编号(1,3,4)", name = "seatNumber", required = true, dataType = "int")
+    })
+    public ResultUtil queryOrderMoney(String startLonLat, String endLonLat, Integer peopleNumber, Integer travelMode,
+                                      Integer lineId, Integer serverCarModelId, Integer totalSeat, String seatNumber){
+        try {
+            return orderCrossCityService.queryOrderMoney(startLonLat, endLonLat, peopleNumber, travelMode, lineId, serverCarModelId, totalSeat, seatNumber);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 跨城出行下单操作
+     * @param orderCrossCityWarpper
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/api/orderCrossCity/orderCrossCity", method = RequestMethod.POST)
+    @ApiOperation(value = "跨城出行下单操作", tags = {"用户端-跨城"}, notes = "先进行下单操作,再根据返回的订单id进行支付")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> orderCrossCity(OrderCrossCityWarpper orderCrossCityWarpper, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderCrossCityService.orderCrossCity(orderCrossCityWarpper, uid);
+        } catch (SystemException se){
+          return ResultUtil.error(se.getMessage());
+        } catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 摆渡车下单
+     * @param serverCarModelIds
+     * @param travelTime
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param endLon
+     * @param endLat
+     * @param endAddress
+     * @param orderSource
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/api/orderCrossCity/saveOrderFerry", method = RequestMethod.POST)
+    @ApiOperation(value = "摆渡车下单", tags = {"用户端-跨城"}, notes = "车型id多个以逗号分隔,出租车传0")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "服务车型id(多个以逗号分隔,出租车传0)", name = "serverCarModelIds", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "出行时间(2020-08-20 10:10)", name = "travelTime", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "下单地点经度", name = "placementLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "下单地点纬度", name = "placementLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点经度", name = "startLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点纬度", name = "startLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点地址", name = "startAddress", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点经度", name = "endLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点纬度", name = "endLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点地址", name = "endAddress", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "跨城订单id", name = "crossCityOrderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "摆渡方位(1=跨城起点,2=跨城终点)", name = "place", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)", name = "orderSource", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
+                                                  String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderCrossCityService.saveOrderFerry(serverCarModelIds, travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java
new file mode 100644
index 0000000..2728a65
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/SiteController.java
@@ -0,0 +1,97 @@
+package com.stylefeng.guns.modular.crossCity.controller;
+
+
+import com.stylefeng.guns.modular.crossCity.server.ISiteService;
+import com.stylefeng.guns.modular.crossCity.warpper.LocationWarpper;
+import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import javafx.scene.chart.ValueAxis;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+@Api
+@RestController
+@RequestMapping("")
+public class SiteController {
+
+    @Autowired
+    private ISiteService siteService;
+
+
+    /**
+     * 获取所有站点
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/base/site/querySite", method = RequestMethod.POST)
+    @ApiOperation(value = "获取起点和终点的站点", tags = {"用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "起点站点id", name = "startSiteId", required = false, dataType = "int")
+    })
+    public ResultUtil<List<SiteWarpper>> querySite(Integer startSiteId){
+        try {
+            List<SiteWarpper> list = siteService.querySite(startSiteId);
+            return ResultUtil.success(list);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    @ResponseBody
+    @RequestMapping(value = "/base/site/queryLocation", method = RequestMethod.POST)
+    @ApiOperation(value = "根据站点id获取站点的区域范围数据(设置上车点和下车点)", tags = {"用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "站点id", name = "siteId", required = true, dataType = "int")
+    })
+    public ResultUtil<List<LocationWarpper>> queryLocation(Integer siteId){
+        try {
+            List<Map<String, Object>> list = siteService.queryLocation(siteId);
+            return ResultUtil.success(LocationWarpper.getLocationWarppers(list));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 判断一个点是是否在区域范围内
+     * @param siteId
+     * @param code
+     * @param lonLat
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/base/site/areaMonitoring", method = RequestMethod.POST)
+    @ApiOperation(value = "判断一个点是是否在区域范围内", tags = {"用户端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "站点id", name = "siteId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "行政区域编号(510100)", name = "code", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "经纬度", name = "lonLat", required = true, dataType = "string")
+    })
+    public ResultUtil areaMonitoring(Integer siteId, Integer code, String lonLat){
+        try {
+            boolean b = siteService.areaMonitoring(siteId, code, lonLat);
+            return ResultUtil.success(b ? 1 : -1);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineMapper.java
new file mode 100644
index 0000000..a636586
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineMapper.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.Line;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface LineMapper extends BaseMapper<Line> {
+
+
+    /**
+     * 根据站点id获取匹配的线路数据
+     * @param siteId
+     * @param type
+     * @return
+     */
+    List<Map<String, Object>> queryLines(@Param("siteId") Integer siteId, @Param("type")Integer type);
+
+
+    /**
+     * 根据司机id获取线路
+     * @param driverId
+     * @return
+     */
+    List<Map<String, Object>> scanCodeQueryLines(@Param("driverId") Integer driverId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LinePriceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LinePriceMapper.java
new file mode 100644
index 0000000..67936d5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LinePriceMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.LinePrice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+public interface LinePriceMapper extends BaseMapper<LinePrice> {
+
+
+    /**
+     * 获取价格计算规则
+     * @param lineId
+     * @param serverCarModelId
+     * @return
+     */
+    Map<String, Object> query(@Param("lineId") Integer lineId, @Param("serverCarModelId") Integer serverCarModelId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftDriverMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftDriverMapper.java
new file mode 100644
index 0000000..a9ce53c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftDriverMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
+
+public interface LineShiftDriverMapper extends BaseMapper<LineShiftDriver> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java
new file mode 100644
index 0000000..2454b49
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java
@@ -0,0 +1,13 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.LineShift;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface LineShiftMapper extends BaseMapper<LineShift> {
+
+
+    List<LineShift> queryByLineId(@Param("lineId") Integer lineId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
new file mode 100644
index 0000000..e8e4f42
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.LineSite;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface LineSiteMapper extends BaseMapper<LineSite> {
+
+
+    /**
+     * 获取线路排班数据
+     * @param lineId
+     * @param day
+     * @return
+     */
+    List<Map<String, Object>> queryDriver(@Param("lineId") Integer lineId, @Param("day") Date day,
+                                          @Param("driverId") Integer driverId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LocationMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LocationMapper.java
new file mode 100644
index 0000000..fc0e2bc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LocationMapper.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.Location;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface LocationMapper extends BaseMapper<Location> {
+
+    /**
+     * 根据站点id获取区域数据
+     * @param siteId
+     * @return
+     */
+    List<Map<String, Object>> queryLocation(@Param("siteId") Integer siteId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/OrderCrossCityMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/OrderCrossCityMapper.java
new file mode 100644
index 0000000..9dbc933
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/OrderCrossCityMapper.java
@@ -0,0 +1,94 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface OrderCrossCityMapper extends BaseMapper<OrderCrossCity> {
+
+
+    /**
+     * 根据司机id查询数据
+     * @param driverId
+     * @param state
+     * @return
+     */
+    List<OrderCrossCity> queryByDriverId(@Param("driverId") Integer driverId, @Param("state") Integer...state);
+
+
+    List<OrderCrossCity> queryOrders(@Param("driverId") Integer driverId, @Param("lineShiftDriverId") Integer lineShiftDriverId,
+                                     @Param("state") List<Integer> state);
+
+
+    List<OrderCrossCity> queryListOrder(@Param("driverId") Integer driverId, @Param("lineShiftId") Integer lineShiftId,
+                                     @Param("state") List<Integer> state, @Param("day") String day);
+
+
+    List<OrderCrossCity> query(@Param("start") Date start, @Param("end") Date end);
+
+
+    /**
+     * 根据用户id获取数据
+     * @param uid
+     * @param state
+     * @return
+     */
+    List<OrderCrossCity> queryByState(@Param("uid") Integer uid, @Param("state") Integer...state);
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
+
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
+                                               @Param("size") Integer size);
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+
+
+
+    /**
+     * 获取用户单发票页面的订单列表
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime,
+                                                @Param("endTime") Date endTime, @Param("startMoney") Double startMoney,
+                                                @Param("endMoney") Double endMoney, @Param("uid") Integer uid);
+
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/SiteMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/SiteMapper.java
new file mode 100644
index 0000000..713bc5f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/SiteMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.crossCity.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.crossCity.model.Site;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface SiteMapper extends BaseMapper<Site> {
+
+
+    /**
+     * 根据起点站点获取线路相关的终点站点
+     * @param startSiteId
+     * @return
+     */
+    List<Map<String, Object>> querySite(@Param("startSiteId") Integer startSiteId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml
new file mode 100644
index 0000000..a42144e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineMapper.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.LineMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.Line">
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="shiftInterval" property="shiftInterval"/>
+        <result column="rakeRate" property="rakeRate"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+    <select id="queryLines" resultType="map">
+        select
+        a.id as id,
+        a.name as name,
+        c.name as siteName
+        from t_line a
+        left join t_line_site b on (a.id = b.lineId)
+        left join t_site c on (b.siteId = c.id)
+        where a.state = 1 and b.siteId = #{siteId} and b.type = #{type}
+    </select>
+
+
+    <select id="scanCodeQueryLines" resultType="map">
+        select
+        b.id as id,
+        b.`name` as `name`
+        from t_driver_line a
+        left join t_line b on (a.lineId = b.id)
+        where b.state = 1 and a.driverId = #{driverId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LinePriceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LinePriceMapper.xml
new file mode 100644
index 0000000..60f3f5f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LinePriceMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.LinePrice">
+        <id column="id" property="id"/>
+        <result column="lineId" property="lineId"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+        <result column="type" property="type"/>
+        <result column="content" property="content"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+    <select id="query" resultType="map">
+        select
+        `type` as `type`,
+        content as content
+        from t_line_price where state = 1 and lineId = #{lineId} and serverCarModelId = #{serverCarModelId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
new file mode 100644
index 0000000..35185b6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.LineShiftDriver">
+        <id column="id" property="id"/>
+        <result column="lineShiftId" property="lineShiftId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="day" property="day"/>
+        <result column="laveSeat" property="laveSeat"/>
+        <result column="laveSeatNumber" property="laveSeatNumber"/>
+        <result column="totalSeat" property="totalSeat"/>
+        <result column="inserTime" property="inserTime"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml
new file mode 100644
index 0000000..7a5b195
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.LineShiftMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.LineShift">
+        <id column="id" property="id"/>
+        <result column="lineId" property="lineId"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="carNum" property="carNum"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+
+    <select id="queryByLineId" resultType="LineShift">
+        select
+        id as id,
+        lineId as lineId,
+        startTime as startTime,
+        endTime as endTime,
+        carNum as carNum,
+        state as state,
+        insertTime as insertTime
+        from t_line_shift where lineId = #{lineId} and state = 1 order by startTime
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
new file mode 100644
index 0000000..81993a6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.LineSiteMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.LineSite">
+        <id column="id" property="id"/>
+        <result column="lineId" property="lineId"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="carNum" property="carNum"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+    <select id="queryDriver" resultType="map">
+        select
+        a.id as id,
+        b.id as lineShiftDriverId,
+        b.driverId as driverId,
+        a.startTime as startTime,
+        c.headImgUrl as headImgUrl,
+        CONCAT(left(c.`name`, 1), '师傅') as `name`,
+        d.carLicensePlate as carLicensePlate,
+        CONCAT(e.`name`, f.`name`) as brand,
+        d.carColor as carColor,
+        CONCAT((b.totalSeat - b.laveSeat), '/', b.totalSeat) as `number`,
+        (select sum(fraction)/count(fraction) from t_order_evaluate where driverId = b.driverId) as evaluate,
+        h.type as priceType,
+        h.content as content,
+        b.driverId as driverId,
+        c.carId as carId,
+        b.totalSeat as totalSeat,
+        g.serverCarModelId as serverCarModelId,
+        b.laveSeatNumber as laveSeatNumber,
+        b.laveSeat as laveSeat
+        from t_line_shift a
+        left join t_line_shift_driver b on (b.lineShiftId = a.id)
+        left join t_driver c on (b.driverId = c.id)
+        left join t_car d on (c.carId = d.id)
+        left join t_car_brand e on (d.carBrandId = e.id)
+        left join t_car_model f on (d.carModelId = f.id)
+        left join t_car_service g on (d.id = g.carId and g.`type` = 3)
+        left join t_line_price h on (g.serverCarModelId = h.serverCarModelId and a.lineId = h.lineId)
+        where 1 = 1
+        <if test="null != lineId">
+            and a.lineId = #{lineId}
+        </if>
+        <if test="null != day">
+            and DATE_FORMAT(b.day, '%Y-%m-%d') = DATE_FORMAT(#{day}, '%Y-%m-%d')
+        </if>
+        <if test="null != driverId">
+            and b.driverId = #{driverId}
+        </if>
+        order by a.startTime
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LocationMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LocationMapper.xml
new file mode 100644
index 0000000..51ceb4b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LocationMapper.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.LocationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.Location">
+        <id column="id" property="id"/>
+        <result column="siteId" property="siteId"/>
+        <result column="type" property="type"/>
+        <result column="province" property="province"/>
+        <result column="provinceCode" property="provinceCode"/>
+        <result column="city" property="city"/>
+        <result column="cityCode" property="cityCode"/>
+        <result column="district" property="district"/>
+        <result column="districtCode" property="districtCode"/>
+        <result column="coordinate" property="coordinate"/>
+        <result column="gid" property="gid"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+    <select id="queryLocation" resultType="map">
+        select
+        `type` as `type`,
+        province as province,
+        provinceCode as provinceCode,
+        city as city,
+        cityCode as cityCode,
+        district as district,
+        districtCode as districtCode,
+        coordinate as coordinate,
+        gid as gid
+        from t_location where state = 1 and siteId = #{siteId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
new file mode 100644
index 0000000..da5618c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/OrderCrossCityMapper.xml
@@ -0,0 +1,594 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.OrderCrossCity">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="lineId" property="lineId"/>
+        <result column="lineShiftDriverId" property="lineShiftDriverId"/>
+        <result column="carId" property="carId"/>
+        <result column="orderNum" property="orderNum"/>
+        <result column="placementLon" property="placementLon"/>
+        <result column="placementLat" property="placementLat"/>
+        <result column="placementAddress" property="placementAddress"/>
+        <result column="startLon" property="startLon"/>
+        <result column="startLat" property="startLat"/>
+        <result column="startAddress" property="startAddress"/>
+        <result column="endLon" property="endLon"/>
+        <result column="endLat" property="endLat"/>
+        <result column="endAddress" property="endAddress"/>
+        <result column="boardingLon" property="boardingLon"/>
+        <result column="boardingLat" property="boardingLat"/>
+        <result column="boardingAddress" property="boardingAddress"/>
+        <result column="boardingTime" property="boardingTime"/>
+        <result column="getoffLon" property="getoffLon"/>
+        <result column="getoffLat" property="getoffLat"/>
+        <result column="getoffAddress" property="getoffAddress"/>
+        <result column="getoffTime" property="getoffTime"/>
+        <result column="mileage" property="mileage"/>
+        <result column="payManner" property="payManner"/>
+        <result column="payType" property="payType"/>
+        <result column="orderMoney" property="orderMoney"/>
+        <result column="redPacketMoney" property="redPacketMoney"/>
+        <result column="couponMoney" property="couponMoney"/>
+        <result column="redPacketId" property="redPacketId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="discount" property="discount"/>
+        <result column="discountMoney" property="discountMoney"/>
+        <result column="peopleNumber" property="peopleNumber"/>
+        <result column="seatNumber" property="seatNumber" />
+        <result column="activityId" property="activityId"/>
+        <result column="companyId" property="companyId"/>
+        <result column="payMoney" property="payMoney"/>
+        <result column="passengers" property="passengers"/>
+        <result column="passengersPhone" property="passengersPhone"/>
+        <result column="sort" property="sort"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="travelTime" property="travelTime"/>
+        <result column="snatchOrderTime" property="snatchOrderTime"/>
+        <result column="setOutTime" property="setOutTime"/>
+        <result column="arriveTime" property="arriveTime"/>
+        <result column="startServiceTime" property="startServiceTime"/>
+        <result column="endServiceTime" property="endServiceTime"/>
+        <result column="travelMode" property="travelMode"/>
+        <result column="orderSource" property="orderSource"/>
+        <result column="isReassign" property="isReassign"/>
+        <result column="reassignNotice" property="reassignNotice"/>
+        <result column="invoiceId" property="invoiceId"/>
+        <result column="trackId" property="trackId"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="oldState" property="oldState"/>
+        <result column="telX" property="telX"/>
+        <result column="bindId" property="bindId"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+
+    <select id="queryByDriverId" resultType="OrderCrossCity">
+        select
+        id as id,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        lineId as lineId,
+        lineShiftDriverId as lineShiftDriverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        peopleNumber as peopleNumber,
+        seatNumber as seatNumber,
+        sort as sort,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        travelMode as travelMode,
+        orderSource as orderSource,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        invoiceId as invoiceId,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId,
+        remark as remark
+        from t_order_cross_city where isDelete = 1
+        <if test="null != driverId">
+            and driverId = #{driverId}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+
+    <select id="query" resultType="OrderCrossCity">
+        select
+        id as id,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        lineId as lineId,
+        lineShiftDriverId as lineShiftDriverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        peopleNumber as peopleNumber,
+        seatNumber as seatNumber,
+        sort as sort,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        travelMode as travelMode,
+        orderSource as orderSource,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        invoiceId as invoiceId,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId,
+        remark as remark
+        from t_order_cross_city where isDelete = 1
+        <if test="null != start and null != end">
+            and travelTime between #{start} and #{end}
+        </if>
+    </select>
+
+
+
+    <select id="queryByState" resultType="OrderCrossCity">
+        select
+        id as id,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        lineId as lineId,
+        lineShiftDriverId as lineShiftDriverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        peopleNumber as peopleNumber,
+        seatNumber as seatNumber,
+        sort as sort,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        travelMode as travelMode,
+        orderSource as orderSource,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        invoiceId as invoiceId,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId,
+        remark as remark
+        from t_order_cross_city where isDelete = 1
+        <if test="null != uid">
+            and userId = #{uid}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+
+
+    <select id="queryOrderInfo" resultType="map">
+        select
+        a.id as orderId,
+        a.state as state,
+        a.oldState as oldState,
+        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
+        DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime,
+        DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
+        DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime1,
+        a.startLon as startLon,
+        a.startLat as startLat,
+        a.startAddress as startAddress,
+        a.endLon as endLon,
+        a.endLat as endLat,
+        a.endAddress as endAddress,
+		a.driverId as driverId,
+        a.peopleNumber as peopleNumber,
+        a.seatNumber as seatNumber,
+		a.orderMoney as orderMoney,
+		a.redPacketMoney as redPacketMoney,
+		a.couponMoney as couponMoney,
+		a.discountMoney as discountMoney,
+		a.payMoney as payMoney,
+        a.remark as remark,
+		b.headImgUrl as driverAvatar,
+		b.`name` as driverName,
+		c.carLicensePlate as licensePlate,
+		c.carColor as carColor,
+		CONCAT(f.`name`, d.`name`) as brand,
+		((select sum(fraction) from t_order_evaluate where driverId = a.driverId) / (select count(id) from t_order_evaluate where driverId = a.driverId)) as score,
+		(
+		(select count(id) from t_order_private_car where driverId = a.driverId and state in (7, 8, 9)) +
+		(select count(id) from t_order_taxi where driverId = a.driverId and state in (7, 8, 9)) +
+		(select count(id) from t_order_cross_city where driverId = a.driverId and state in (6, 8, 9))
+		) as orderNum,
+		b.phone as driverPhone,
+		if(a.state = 12, (select money from t_order_cancel where orderId = a.id and orderType = 3 and state = 1 order by insertTime desc limit 0, 1), if(a.state = 10, (select money from t_order_cancel where orderId = a.id and orderType = 3 and state = 2 order by insertTime desc limit 0, 1), 0)) as cancelPayMoney,
+		if(a.state = 12, (select id from t_order_cancel where orderId = a.id and orderType = 3 and state = 1 order by insertTime desc limit 0, 1), 0) as cancelId,
+		g.fraction as orderScore,
+		g.content as evaluate,
+		a.telX as telX,
+		h.userType as cancelUserType,
+		h.money as cancelMoney,
+		h.reason as cancelReason,
+		h.remark as cancelRemark,
+		CONCAT(j.startTime, '-', j.endTime) as lineShiftTime
+        from t_order_cross_city a
+		left join t_driver b on (a.driverId = b.id)
+		left join t_car c on (a.carId = c.id)
+		left join t_car_model d on (c.carModelId = d.id)
+		left join t_car_brand f on (d.brandId = f.id)
+		left join t_order_evaluate g on (a.id = g.orderId and g.orderType = 3)
+		left join t_order_cancel h on (a.id = h.orderId and h.orderType = 3 and h.state = 2)
+		left join t_line_shift_driver i on (a.lineShiftDriverId = i.id)
+		left join t_line_shift j on (i.lineShiftId = j.id)
+		where a.id = #{orderId}
+    </select>
+
+
+
+    <select id="queryMyOrderList" resultType="map">
+        select
+        id as orderId,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
+        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        driverId as driverId,
+        (3) as orderType,
+        state as state,
+        oldState as oldState,
+        remark as remark,
+        peopleNumber as num
+        from t_order_cross_city where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+
+    <select id="queryMyTravelRecord" resultType="map">
+        select
+        (payMoney * -1) as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('跨城订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_cross_city where payMoney != 0 and userId = #{uid} and state in (2, 3, 4, 5, 6, 8, 9, 10, 11, 12)
+    </select>
+
+
+
+    <select id="queryInvoiceOrder" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        payMoney as payMoney,
+        ('跨城订单') as orderName,
+        if(invoiceId is null, 1, 2) as invoice,
+        unix_timestamp(insertTime) as insertTime,
+        (3) as orderType
+        from t_order_cross_city where state in (8, 9)
+        <if test="type == 1">
+            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
+        </if>
+        <if test="type == 2">
+            and invoiceId in (select id from t_invoice where state = 2)
+        </if>
+        <if test="null != startTime and null != endTime">
+            and travelTime between #{startTime} and #{endTime}
+        </if>
+        <if test="null != startMoney and null != endMoney">
+            and payMoney between #{startMoney} and #{endMoney}
+        </if>
+        <if test="null !=uid">
+            and userId = #{uid}
+        </if>
+    </select>
+
+
+
+
+    <select id="queryRedEnvelope" resultType="map">
+        select
+        redPacketMoney as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('跨城出行订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_cross_city where userId = #{uid} and state in (8, 9) and redPacketId is not null
+    </select>
+
+
+    <select id="queryOrders" resultType="OrderCrossCity">
+        select
+        id as id,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        lineId as lineId,
+        lineShiftDriverId as lineShiftDriverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        peopleNumber as peopleNumber,
+        seatNumber as seatNumber,
+        sort as sort,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        travelMode as travelMode,
+        orderSource as orderSource,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        invoiceId as invoiceId,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId,
+        remark as remark
+        from t_order_cross_city where isDelete = 1
+        <if test="null != driverId">
+            and driverId = #{driverId}
+        </if>
+        <if test="null != lineShiftDriverId">
+            and lineShiftDriverId = #{lineShiftDriverId}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+
+
+    <select id="queryListOrder" resultType="OrderCrossCity">
+        select
+        a.id as id,
+        a.userId as userId,
+        a.serverCarModelId as serverCarModelId,
+        a.driverId as driverId,
+        a.lineId as lineId,
+        a.lineShiftDriverId as lineShiftDriverId,
+        a.carId as carId,
+        a.orderNum as orderNum,
+        a.placementLon as placementLon,
+        a.placementLat as placementLat,
+        a.placementAddress as placementAddress,
+        a.startLon as startLon,
+        a.startLat as startLat,
+        a.startAddress as startAddress,
+        a.endLon as endLon,
+        a.endLat as endLat,
+        a.endAddress as endAddress,
+        a.boardingLon as boardingLon,
+        a.boardingLat as boardingLat,
+        a.boardingAddress as boardingAddress,
+        a.boardingTime as boardingTime,
+        a.getoffLon as getoffLon,
+        a.getoffLat as getoffLat,
+        a.getoffAddress as getoffAddress,
+        a.getoffTime as getoffTime,
+        a.mileage as mileage,
+        a.payManner as payManner,
+        a.payType as payType,
+        a.orderMoney as orderMoney,
+        a.redPacketMoney as redPacketMoney,
+        a.couponMoney as couponMoney,
+        a.redPacketId as redPacketId,
+        a.couponId as couponId,
+        a.discount as discount,
+        a.discountMoney as discountMoney,
+        a.activityId as activityId,
+        a.companyId as companyId,
+        a.payMoney as payMoney,
+        a.passengers as passengers,
+        a.passengersPhone as passengersPhone,
+        a.peopleNumber as peopleNumber,
+        a.seatNumber as seatNumber,
+        a.sort as sort,
+        a.state as state,
+        a.insertTime as insertTime,
+        a.travelTime as travelTime,
+        a.snatchOrderTime as snatchOrderTime,
+        a.setOutTime as setOutTime,
+        a.arriveTime as arriveTime,
+        a.startServiceTime as startServiceTime,
+        a.endServiceTime as endServiceTime,
+        a.travelMode as travelMode,
+        a.orderSource as orderSource,
+        a.isReassign as isReassign,
+        a.reassignNotice as reassignNotice,
+        a.invoiceId as invoiceId,
+        a.trackId as trackId,
+        a.isDelete as isDelete,
+        a.oldState as oldState,
+        a.telX as telX,
+        a.bindId as bindId,
+        a.remark as remark
+        from t_order_cross_city a
+        left join t_line_shift_driver b on (a.lineShiftDriverId = b.id)
+        where a.isDelete = 1
+        <if test="null != driverId">
+            and a.driverId = #{driverId}
+        </if>
+        <if test="null != lineShiftId">
+            and b.lineShiftId = #{lineShiftId}
+        </if>
+        <if test="null != state">
+            and a.state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="null != day and '' != day">
+            and DATE_FORMAT(a.travelTime, '%Y-%m-%d') = #{day}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml
new file mode 100644
index 0000000..6c06303
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/SiteMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.crossCity.dao.SiteMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.crossCity.model.Site">
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="province" property="province"/>
+        <result column="provinceCode" property="provinceCode"/>
+        <result column="city" property="city"/>
+        <result column="cityCode" property="cityCode"/>
+        <result column="district" property="district"/>
+        <result column="districtCode" property="districtCode"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUserId" property="insertUserId"/>
+    </resultMap>
+
+
+
+
+    <select id="querySite" resultType="map">
+        select * from
+        (
+        select id as id, `name` as `name`, provinceCode as cityCode, province as cityName from t_site where province like '%市' and state = 1
+        UNION ALL
+        select id as id, `name` as `name`, cityCode as cityCode, city as cityName from t_site where province not like '%市' and state = 1
+        ) as a where 1 = 1
+        <if test="null != startSiteId">
+            and a.id in(select siteId from t_line_site where lineId in(select lineId from t_line_site where siteId = #{startSiteId} and type = 1) and type = 2)
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java
new file mode 100644
index 0000000..b92b394
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Line.java
@@ -0,0 +1,106 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 跨城线路
+ */
+@TableName("t_line")
+public class Line {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 线路名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 排班申请间隔(分钟)
+     */
+    @TableField("shiftInterval")
+    private Integer shiftInterval;
+    /**
+     * 抽成比例(80)
+     */
+    @TableField("rakeRate")
+    private Integer rakeRate;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getShiftInterval() {
+        return shiftInterval;
+    }
+
+    public void setShiftInterval(Integer shiftInterval) {
+        this.shiftInterval = shiftInterval;
+    }
+
+    public Integer getRakeRate() {
+        return rakeRate;
+    }
+
+    public void setRakeRate(Integer rakeRate) {
+        this.rakeRate = rakeRate;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Line{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", shiftInterval=" + shiftInterval +
+                ", rakeRate=" + rakeRate +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LinePrice.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LinePrice.java
new file mode 100644
index 0000000..302aa1d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LinePrice.java
@@ -0,0 +1,120 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 线路价格
+ */
+@TableName("t_line_price")
+public class LinePrice {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 线路id
+     */
+    @TableField("lineId")
+    private Integer lineId;
+    /**
+     * 服务车型id
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+    /**
+     * 价格类型(1=固定金额,2=浮动计费)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 价格计算规则
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getLineId() {
+        return lineId;
+    }
+
+    public void setLineId(Integer lineId) {
+        this.lineId = lineId;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "LinePrice{" +
+                "id=" + id +
+                ", lineId=" + lineId +
+                ", serverCarModelId=" + serverCarModelId +
+                ", type=" + type +
+                ", content='" + content + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShift.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShift.java
new file mode 100644
index 0000000..39b91ba
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShift.java
@@ -0,0 +1,117 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+@TableName("t_line_shift")
+public class LineShift {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 线路id
+     */
+    @TableField("lineId")
+    private Integer lineId;
+    /**
+     * 开始时间段
+     */
+    @TableField("startTime")
+    private String startTime;
+    /**
+     * 结束时间段
+     */
+    @TableField("endTime")
+    private String endTime;
+    /**
+     * 车次数
+     */
+    @TableField("carNum")
+    private Integer carNum;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getLineId() {
+        return lineId;
+    }
+
+    public void setLineId(Integer lineId) {
+        this.lineId = lineId;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getCarNum() {
+        return carNum;
+    }
+
+    public void setCarNum(Integer carNum) {
+        this.carNum = carNum;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "LineShift{" +
+                "id=" + id +
+                ", lineId=" + lineId +
+                ", startTime='" + startTime + '\'' +
+                ", endTime='" + endTime + '\'' +
+                ", carNum=" + carNum +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShiftDriver.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShiftDriver.java
new file mode 100644
index 0000000..10add01
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineShiftDriver.java
@@ -0,0 +1,134 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 司机预约排班记录
+ */
+@TableName("t_line_shift_driver")
+public class LineShiftDriver {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 线路班次id
+     */
+    @TableField("lineShiftId")
+    private Integer lineShiftId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 预约日期
+     */
+    @TableField("day")
+    private Date day;
+    /**
+     * 剩余座位数
+     */
+    @TableField("laveSeat")
+    private Integer laveSeat;
+    /**
+     * 剩余座位号(多个以逗号分隔)
+     */
+    @TableField("laveSeatNumber")
+    private String laveSeatNumber;
+    /**
+     * 总座位数
+     */
+    @TableField("totalSeat")
+    private Integer totalSeat;
+    /**
+     * 添加时间
+     */
+    @TableField("inserTime")
+    private Date inserTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getLineShiftId() {
+        return lineShiftId;
+    }
+
+    public void setLineShiftId(Integer lineShiftId) {
+        this.lineShiftId = lineShiftId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Date getDay() {
+        return day;
+    }
+
+    public void setDay(Date day) {
+        this.day = day;
+    }
+
+    public Integer getLaveSeat() {
+        return laveSeat;
+    }
+
+    public void setLaveSeat(Integer laveSeat) {
+        this.laveSeat = laveSeat;
+    }
+
+    public String getLaveSeatNumber() {
+        return laveSeatNumber;
+    }
+
+    public void setLaveSeatNumber(String laveSeatNumber) {
+        this.laveSeatNumber = laveSeatNumber;
+    }
+
+    public Integer getTotalSeat() {
+        return totalSeat;
+    }
+
+    public void setTotalSeat(Integer totalSeat) {
+        this.totalSeat = totalSeat;
+    }
+
+    public Date getInserTime() {
+        return inserTime;
+    }
+
+    public void setInserTime(Date inserTime) {
+        this.inserTime = inserTime;
+    }
+
+    @Override
+    public String toString() {
+        return "LineShiftDriver{" +
+                "id=" + id +
+                ", lineShiftId=" + lineShiftId +
+                ", driverId=" + driverId +
+                ", day=" + day +
+                ", laveSeat=" + laveSeat +
+                ", laveSeatNumber='" + laveSeatNumber + '\'' +
+                ", totalSeat=" + totalSeat +
+                ", inserTime=" + inserTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineSite.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineSite.java
new file mode 100644
index 0000000..003e2b7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/LineSite.java
@@ -0,0 +1,121 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 线路排班
+ */
+@TableName("t_line_shift")
+public class LineSite {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 线路id
+     */
+    @TableField("lineId")
+    private Integer lineId;
+    /**
+     * 开始时间段
+     */
+    @TableField("startTime")
+    private String startTime;
+    /**
+     * 结束时间段
+     */
+    @TableField("endTime")
+    private String endTime;
+    /**
+     * 车次数
+     */
+    @TableField("carNum")
+    private Integer carNum;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getLineId() {
+        return lineId;
+    }
+
+    public void setLineId(Integer lineId) {
+        this.lineId = lineId;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getCarNum() {
+        return carNum;
+    }
+
+    public void setCarNum(Integer carNum) {
+        this.carNum = carNum;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "LineSite{" +
+                "id=" + id +
+                ", lineId=" + lineId +
+                ", startTime='" + startTime + '\'' +
+                ", endTime='" + endTime + '\'' +
+                ", carNum=" + carNum +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Location.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Location.java
new file mode 100644
index 0000000..08c7948
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Location.java
@@ -0,0 +1,203 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 站点区域数据
+ */
+@TableName("t_location")
+public class Location {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 站点id
+     */
+    @TableField("siteId")
+    private Integer siteId;
+    /**
+     * 地点类型(1=行政区域,2=电子围栏)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 省名称
+     */
+    @TableField("province")
+    private String province;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市名称
+     */
+    @TableField("city")
+    private String city;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 区县名称
+     */
+    @TableField("district")
+    private String district;
+    /**
+     * 区县编号
+     */
+    @TableField("districtCode")
+    private String districtCode;
+    /**
+     * 电子围栏坐标(多个以分号分隔)
+     */
+    @TableField("coordinate")
+    private String coordinate;
+    /**
+     * 电子围栏gid
+     */
+    @TableField("gid")
+    private String gid;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getSiteId() {
+        return siteId;
+    }
+
+    public void setSiteId(Integer siteId) {
+        this.siteId = siteId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getProvinceCode() {
+        return provinceCode;
+    }
+
+    public void setProvinceCode(String provinceCode) {
+        this.provinceCode = provinceCode;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCityCode() {
+        return cityCode;
+    }
+
+    public void setCityCode(String cityCode) {
+        this.cityCode = cityCode;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getDistrictCode() {
+        return districtCode;
+    }
+
+    public void setDistrictCode(String districtCode) {
+        this.districtCode = districtCode;
+    }
+
+    public String getCoordinate() {
+        return coordinate;
+    }
+
+    public void setCoordinate(String coordinate) {
+        this.coordinate = coordinate;
+    }
+
+    public String getGid() {
+        return gid;
+    }
+
+    public void setGid(String gid) {
+        this.gid = gid;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Location{" +
+                "id=" + id +
+                ", siteId=" + siteId +
+                ", type=" + type +
+                ", province='" + province + '\'' +
+                ", provinceCode='" + provinceCode + '\'' +
+                ", city='" + city + '\'' +
+                ", cityCode='" + cityCode + '\'' +
+                ", district='" + district + '\'' +
+                ", districtCode='" + districtCode + '\'' +
+                ", coordinate='" + coordinate + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java
new file mode 100644
index 0000000..25c3159
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/OrderCrossCity.java
@@ -0,0 +1,894 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 跨城订单
+ */
+@TableName("t_order_cross_city")
+public class OrderCrossCity {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 服务车型id
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 线路id
+     */
+    @TableField("lineId")
+    private Integer lineId;
+    /**
+     * 预约班次的id
+     */
+    @TableField("lineShiftDriverId")
+    private Integer lineShiftDriverId;
+    /**
+     * 车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 订单号
+     */
+    @TableField("orderNum")
+    private String orderNum;
+    /**
+     * 下单地点经度
+     */
+    @TableField("placementLon")
+    private Double placementLon;
+    /**
+     * 下单地点纬度
+     */
+    @TableField("placementLat")
+    private Double placementLat;
+    /**
+     * 下单地点
+     */
+    @TableField("placementAddress")
+    private String placementAddress;
+    /**
+     * 起点经度
+     */
+    @TableField("startLon")
+    private Double startLon;
+    /**
+     * 起点纬度
+     */
+    @TableField("startLat")
+    private Double startLat;
+    /**
+     * 起点
+     */
+    @TableField("startAddress")
+    private String startAddress;
+    /**
+     * 目的地经度
+     */
+    @TableField("endLon")
+    private Double endLon;
+    /**
+     * 目的地纬度
+     */
+    @TableField("endLat")
+    private Double endLat;
+    /**
+     * 目的地
+     */
+    @TableField("endAddress")
+    private String endAddress;
+    /**
+     * 上车点经度
+     */
+    @TableField("boardingLon")
+    private Double boardingLon;
+    /**
+     * 上车点纬度
+     */
+    @TableField("boardingLat")
+    private Double boardingLat;
+    /**
+     * 上车地点
+     */
+    @TableField("boardingAddress")
+    private String boardingAddress;
+    /**
+     * 上车时间
+     */
+    @TableField("boardingTime")
+    private Date boardingTime;
+    /**
+     * 下车点经度
+     */
+    @TableField("getoffLon")
+    private Double getoffLon;
+    /**
+     * 下车点纬度
+     */
+    @TableField("getoffLat")
+    private Double getoffLat;
+    /**
+     * 下车点
+     */
+    @TableField("getoffAddress")
+    private String getoffAddress;
+    /**
+     * 下车时间
+     */
+    @TableField("getoffTime")
+    private Date getoffTime;
+    /**
+     * 行驶里程数(米)
+     */
+    @TableField("mileage")
+    private Double mileage;
+    /**
+     * 支付方式(1=OK平台支付,2=其他方式支付)
+     */
+    @TableField("payManner")
+    private Integer payManner;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=余额)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 订单金额
+     */
+    @TableField("orderMoney")
+    private Double orderMoney;
+    /**
+     * 红包抵扣金额
+     */
+    @TableField("redPacketMoney")
+    private Double redPacketMoney;
+    /**
+     * 优惠券抵扣金额
+     */
+    @TableField("couponMoney")
+    private Double couponMoney;
+    /**
+     * 红包id
+     */
+    @TableField("redPacketId")
+    private Integer redPacketId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 折扣
+     */
+    @TableField("discount")
+    private Double discount;
+    /**
+     * 折扣优惠金额
+     */
+    @TableField("discountMoney")
+    private Double discountMoney;
+    /**
+     * 折扣活动id
+     */
+    @TableField("activityId")
+    private Integer activityId;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    /**
+     * 乘车人姓名
+     */
+    @TableField("passengers")
+    private String passengers;
+    /**
+     * 乘车人电话
+     */
+    @TableField("passengersPhone")
+    private String passengersPhone;
+    /**
+     * 出行人数
+     */
+    @TableField("peopleNumber")
+    private Integer peopleNumber;
+    /**
+     * 座位编号
+     */
+    @TableField("seatNumber")
+    private String seatNumber;
+    /**
+     * 排序(订单为拼车时的排序-不是所有订单的排序)
+     */
+    @TableField("sort")
+    private Integer sort;
+    /**
+     * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 下单时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 出行时间
+     */
+    @TableField("travelTime")
+    private Date travelTime;
+    /**
+     * 抢单时间
+     */
+    @TableField("snatchOrderTime")
+    private Date snatchOrderTime;
+    /**
+     * 司机点出发时间
+     */
+    @TableField("setOutTime")
+    private Date setOutTime;
+    /**
+     * 司机到达预约地点时间
+     */
+    @TableField("arriveTime")
+    private Date arriveTime;
+    /**
+     * 开始服务时间
+     */
+    @TableField("startServiceTime")
+    private Date startServiceTime;
+    /**
+     * 结束服务时间
+     */
+    @TableField("endServiceTime")
+    private Date endServiceTime;
+    /**
+     * 出行方式(1=拼车,2=包车)
+     */
+    @TableField("travelMode")
+    private Integer travelMode;
+    /**
+     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)
+     */
+    @TableField("orderSource")
+    private Integer orderSource;
+    /**
+     * 是否是改派单(1=否,=是)
+     * @return
+     */
+    @TableField("isReassign")
+    private Integer isReassign;
+    /**
+     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
+     */
+    @TableField("reassignNotice")
+    private Integer reassignNotice;
+    /**
+     * 发票id
+     */
+    @TableField("invoiceId")
+    private Integer invoiceId;
+    /**
+     * 高德猎鹰轨迹id
+     * @return
+     */
+    @TableField("trackId")
+    private String trackId;
+    /**
+     * 备注信息
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 是否删除(1=否,2=是)
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 该派前的订单状态
+     * @return
+     */
+    @TableField("oldState")
+    private Integer oldState;
+    /**
+     * 移动小号
+     * @return
+     */
+    @TableField("telX")
+    private String telX;
+    /**
+     * 绑定小号关系id
+     * @return
+     */
+    @TableField("bindId")
+    private String bindId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getLineId() {
+        return lineId;
+    }
+
+    public void setLineId(Integer lineId) {
+        this.lineId = lineId;
+    }
+
+    public Integer getLineShiftDriverId() {
+        return lineShiftDriverId;
+    }
+
+    public void setLineShiftDriverId(Integer lineShiftDriverId) {
+        this.lineShiftDriverId = lineShiftDriverId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public String getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public String getPlacementAddress() {
+        return placementAddress;
+    }
+
+    public void setPlacementAddress(String placementAddress) {
+        this.placementAddress = placementAddress;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Double getBoardingLon() {
+        return boardingLon;
+    }
+
+    public void setBoardingLon(Double boardingLon) {
+        this.boardingLon = boardingLon;
+    }
+
+    public Double getBoardingLat() {
+        return boardingLat;
+    }
+
+    public void setBoardingLat(Double boardingLat) {
+        this.boardingLat = boardingLat;
+    }
+
+    public String getBoardingAddress() {
+        return boardingAddress;
+    }
+
+    public void setBoardingAddress(String boardingAddress) {
+        this.boardingAddress = boardingAddress;
+    }
+
+    public Date getBoardingTime() {
+        return boardingTime;
+    }
+
+    public void setBoardingTime(Date boardingTime) {
+        this.boardingTime = boardingTime;
+    }
+
+    public Double getGetoffLon() {
+        return getoffLon;
+    }
+
+    public void setGetoffLon(Double getoffLon) {
+        this.getoffLon = getoffLon;
+    }
+
+    public Double getGetoffLat() {
+        return getoffLat;
+    }
+
+    public void setGetoffLat(Double getoffLat) {
+        this.getoffLat = getoffLat;
+    }
+
+    public String getGetoffAddress() {
+        return getoffAddress;
+    }
+
+    public void setGetoffAddress(String getoffAddress) {
+        this.getoffAddress = getoffAddress;
+    }
+
+    public Date getGetoffTime() {
+        return getoffTime;
+    }
+
+    public void setGetoffTime(Date getoffTime) {
+        this.getoffTime = getoffTime;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Integer getPayManner() {
+        return payManner;
+    }
+
+    public void setPayManner(Integer payManner) {
+        this.payManner = payManner;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getRedPacketMoney() {
+        return redPacketMoney;
+    }
+
+    public void setRedPacketMoney(Double redPacketMoney) {
+        this.redPacketMoney = redPacketMoney;
+    }
+
+    public Double getCouponMoney() {
+        return couponMoney;
+    }
+
+    public void setCouponMoney(Double couponMoney) {
+        this.couponMoney = couponMoney;
+    }
+
+    public Integer getRedPacketId() {
+        return redPacketId;
+    }
+
+    public void setRedPacketId(Integer redPacketId) {
+        this.redPacketId = redPacketId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Double getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(Double discount) {
+        this.discount = discount;
+    }
+
+    public Double getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Double discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public String getPassengers() {
+        return passengers;
+    }
+
+    public void setPassengers(String passengers) {
+        this.passengers = passengers;
+    }
+
+    public String getPassengersPhone() {
+        return passengersPhone;
+    }
+
+    public void setPassengersPhone(String passengersPhone) {
+        this.passengersPhone = passengersPhone;
+    }
+
+    public Integer getPeopleNumber() {
+        return peopleNumber;
+    }
+
+    public void setPeopleNumber(Integer peopleNumber) {
+        this.peopleNumber = peopleNumber;
+    }
+
+    public String getSeatNumber() {
+        return seatNumber;
+    }
+
+    public void setSeatNumber(String seatNumber) {
+        this.seatNumber = seatNumber;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public Date getSnatchOrderTime() {
+        return snatchOrderTime;
+    }
+
+    public void setSnatchOrderTime(Date snatchOrderTime) {
+        this.snatchOrderTime = snatchOrderTime;
+    }
+
+    public Date getSetOutTime() {
+        return setOutTime;
+    }
+
+    public void setSetOutTime(Date setOutTime) {
+        this.setOutTime = setOutTime;
+    }
+
+    public Date getArriveTime() {
+        return arriveTime;
+    }
+
+    public void setArriveTime(Date arriveTime) {
+        this.arriveTime = arriveTime;
+    }
+
+    public Date getStartServiceTime() {
+        return startServiceTime;
+    }
+
+    public void setStartServiceTime(Date startServiceTime) {
+        this.startServiceTime = startServiceTime;
+    }
+
+    public Date getEndServiceTime() {
+        return endServiceTime;
+    }
+
+    public void setEndServiceTime(Date endServiceTime) {
+        this.endServiceTime = endServiceTime;
+    }
+
+    public Integer getTravelMode() {
+        return travelMode;
+    }
+
+    public void setTravelMode(Integer travelMode) {
+        this.travelMode = travelMode;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+    public Integer getInvoiceId() {
+        return invoiceId;
+    }
+
+    public void setInvoiceId(Integer invoiceId) {
+        this.invoiceId = invoiceId;
+    }
+
+    public String getTrackId() {
+        return trackId;
+    }
+
+    public void setTrackId(String trackId) {
+        this.trackId = trackId;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public String getTelX() {
+        return telX;
+    }
+
+    public void setTelX(String telX) {
+        this.telX = telX;
+    }
+
+    public String getBindId() {
+        return bindId;
+    }
+
+    public void setBindId(String bindId) {
+        this.bindId = bindId;
+    }
+
+    public Integer getIsReassign() {
+        return isReassign;
+    }
+
+    public void setIsReassign(Integer isReassign) {
+        this.isReassign = isReassign;
+    }
+
+    public Integer getReassignNotice() {
+        return reassignNotice;
+    }
+
+    public void setReassignNotice(Integer reassignNotice) {
+        this.reassignNotice = reassignNotice;
+    }
+
+    public Integer getOldState() {
+        return oldState;
+    }
+
+    public void setOldState(Integer oldState) {
+        this.oldState = oldState;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderCrossCity{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", serverCarModelId=" + serverCarModelId +
+                ", driverId=" + driverId +
+                ", lineId=" + lineId +
+                ", lineShiftDriverId=" + lineShiftDriverId +
+                ", carId=" + carId +
+                ", orderNum='" + orderNum + '\'' +
+                ", placementLon=" + placementLon +
+                ", placementLat=" + placementLat +
+                ", placementAddress='" + placementAddress + '\'' +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", boardingLon=" + boardingLon +
+                ", boardingLat=" + boardingLat +
+                ", boardingAddress='" + boardingAddress + '\'' +
+                ", boardingTime=" + boardingTime +
+                ", getoffLon=" + getoffLon +
+                ", getoffLat=" + getoffLat +
+                ", getoffAddress='" + getoffAddress + '\'' +
+                ", getoffTime=" + getoffTime +
+                ", mileage=" + mileage +
+                ", payManner=" + payManner +
+                ", payType=" + payType +
+                ", orderMoney=" + orderMoney +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", redPacketId=" + redPacketId +
+                ", couponId=" + couponId +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", activityId=" + activityId +
+                ", companyId=" + companyId +
+                ", payMoney=" + payMoney +
+                ", passengers='" + passengers + '\'' +
+                ", passengersPhone='" + passengersPhone + '\'' +
+                ", peopleNumber=" + peopleNumber +
+                ", seatNumber='" + seatNumber + '\'' +
+                ", sort=" + sort +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", travelTime=" + travelTime +
+                ", snatchOrderTime=" + snatchOrderTime +
+                ", setOutTime=" + setOutTime +
+                ", arriveTime=" + arriveTime +
+                ", startServiceTime=" + startServiceTime +
+                ", endServiceTime=" + endServiceTime +
+                ", travelMode=" + travelMode +
+                ", orderSource=" + orderSource +
+                ", isReassign=" + isReassign +
+                ", reassignNotice=" + reassignNotice +
+                ", invoiceId=" + invoiceId +
+                ", trackId='" + trackId + '\'' +
+                ", isDelete=" + isDelete +
+                ", oldState=" + oldState +
+                ", telX='" + telX + '\'' +
+                ", bindId='" + bindId + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Site.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Site.java
new file mode 100644
index 0000000..1019186
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/model/Site.java
@@ -0,0 +1,176 @@
+package com.stylefeng.guns.modular.crossCity.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 线路站点
+ */
+@TableName("t_site")
+public class Site {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 站点名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 省名称
+     */
+    @TableField("province")
+    private String province;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市名称
+     */
+    @TableField("city")
+    private String city;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 区县名称
+     */
+    @TableField("district")
+    private String district;
+    /**
+     * 区县编号
+     */
+    @TableField("districtCode")
+    private String districtCode;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 添加人id
+     */
+    @TableField("insertUserId")
+    private Integer insertUserId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getProvinceCode() {
+        return provinceCode;
+    }
+
+    public void setProvinceCode(String provinceCode) {
+        this.provinceCode = provinceCode;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCityCode() {
+        return cityCode;
+    }
+
+    public void setCityCode(String cityCode) {
+        this.cityCode = cityCode;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getDistrictCode() {
+        return districtCode;
+    }
+
+    public void setDistrictCode(String districtCode) {
+        this.districtCode = districtCode;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getInsertUserId() {
+        return insertUserId;
+    }
+
+    public void setInsertUserId(Integer insertUserId) {
+        this.insertUserId = insertUserId;
+    }
+
+    @Override
+    public String toString() {
+        return "Site{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", province='" + province + '\'' +
+                ", provinceCode='" + provinceCode + '\'' +
+                ", city='" + city + '\'' +
+                ", cityCode='" + cityCode + '\'' +
+                ", district='" + district + '\'' +
+                ", districtCode='" + districtCode + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", insertUserId=" + insertUserId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineService.java
new file mode 100644
index 0000000..c171276
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineService.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.crossCity.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.crossCity.model.Line;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ILineService extends IService<Line> {
+
+
+    /**
+     * 根据站点id获取线路数据
+     * @param startId
+     * @param endId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryLines(Integer startId, Integer endId, Integer driverId) throws Exception;
+
+
+
+    /**
+     * 根据站点id获取线路数据
+     * @param driverId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> scanCodeQueryLines(Integer driverId) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineSiteService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineSiteService.java
new file mode 100644
index 0000000..65f0b7d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineSiteService.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.crossCity.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.crossCity.model.LineSite;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ILineSiteService extends IService<LineSite> {
+
+
+    /**
+     * 根据线路获取排班数据
+     * @param lineId
+     * @param day
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryDriver(Integer lineId, String day, Integer driverId) throws Exception;
+
+
+    /**
+     * 根据司机排班数据id获取数据(剩余座位号和总座位数)
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> querySeat(Integer id) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
new file mode 100644
index 0000000..488e3a9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/IOrderCrossCityService.java
@@ -0,0 +1,261 @@
+package com.stylefeng.guns.modular.crossCity.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderCrossCityService extends IService<OrderCrossCity> {
+
+
+    /**
+     * 计算支付金额
+     * @param startLonLat
+     * @param endLonLat
+     * @param peopleNumber
+     * @param travelMode
+     * @param lineId
+     * @param serverCarModelId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil queryOrderMoney(String startLonLat, String endLonLat, Integer peopleNumber, Integer travelMode, Integer lineId,
+                               Integer serverCarModelId, Integer totalSeat, String seatNumber) throws Exception;
+
+
+
+
+    /**
+     * 获取用户余额和可用优惠券数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception;
+
+
+
+
+    /**
+     * 获取优惠券列表
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+
+    /**
+     * 订单完成支付订单操作
+     * @param payType
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil payCrossCityOrder(Integer payType, Integer orderId, Integer couponId, Integer type)throws Exception;
+
+
+
+    /**
+     * 支付完成后的订单处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payOrderCrossCityCallback(Integer id, String order_id, Integer type) throws Exception;
+
+
+    /**
+     * 用户跨城下单操作
+     * @param orderCrossCityWarpper
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> orderCrossCity(OrderCrossCityWarpper orderCrossCityWarpper, Integer uid) throws Exception;
+
+
+
+
+    /**
+     * 获取订单数据
+     * @param uid
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    List<OrderCrossCity> queryOrder(Integer uid, Integer...state) throws Exception;
+
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+
+
+
+    /**
+     * 获取取消订单需要支付的金额
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception;
+
+
+
+    /**
+     * 取消订单操作
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    ResultUtil cancleOrderCrossCity(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception;
+
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     * @throws Exception
+     */
+    void deleteTask(Integer orderId) throws Exception;
+
+
+
+    /**
+     * 评论成功后获取红包金额
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryRedMoney(Integer orderId) throws Exception;
+
+
+    /**
+     * 分享成功后添加红包
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil shareRedEnvelope(Integer orderId) throws Exception;
+
+
+
+    /**
+     * 取消订单支付后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payCancelOrderCrossCity(Integer id, String order_id, Integer type) throws Exception;
+
+
+
+    /**
+     * 获取员工的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+
+
+
+    /**
+     * 获取用户端发票页面中的订单列表数据
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+                                                Double endMoney, Integer uid) throws Exception;
+
+
+
+    /**
+     * 添加取消
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception;
+
+
+    /**
+     * 摆渡下单
+     * @param serverCarModelIds
+     * @param travelTime
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param endLon
+     * @param endLat
+     * @param endAddress
+     * @return
+     */
+    ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
+                                           String startLat, String startAddress, String endLon, String endLat, String endAddress,
+                                           Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception;
+
+
+
+    void pushOrder(List<Map<String, Integer>> list) throws Exception;
+
+
+
+    List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java
new file mode 100644
index 0000000..c701187
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ISiteService.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.crossCity.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.crossCity.model.Site;
+import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ISiteService extends IService<Site> {
+
+
+    /**
+     * 获取所有站点
+     * @return
+     * @throws Exception
+     */
+    List<SiteWarpper> querySite(Integer startSiteId) throws Exception;
+
+
+    /**
+     * 根据站点获取地点区域数据
+     * @param siteId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryLocation(Integer siteId) throws Exception;
+
+
+    /**
+     * 判断坐标点是否在站点范围内
+     * @param siteId
+     * @param code
+     * @param lonLat
+     * @return
+     * @throws Exception
+     */
+    boolean areaMonitoring(Integer siteId, Integer code, String lonLat) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineServiceImpl.java
new file mode 100644
index 0000000..a557929
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineServiceImpl.java
@@ -0,0 +1,73 @@
+package com.stylefeng.guns.modular.crossCity.server.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.crossCity.dao.LineMapper;
+import com.stylefeng.guns.modular.crossCity.model.Line;
+import com.stylefeng.guns.modular.crossCity.server.ILineService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class LineServiceImpl extends ServiceImpl<LineMapper, Line> implements ILineService {
+
+    @Resource
+    private LineMapper lineMapper;
+
+
+    /**
+     * 根据站点id获取线路
+     * @param startId
+     * @param endId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryLines(Integer startId, Integer endId, Integer driverId) throws Exception {
+        List<Map<String, Object>> list1 = lineMapper.queryLines(startId, 1);
+        List<Map<String, Object>> list2 = lineMapper.queryLines(endId, 2);
+        List<Map<String, Object>> list = new ArrayList<>();
+        for(Map<String, Object> map1 : list1){
+            Integer id1 = Integer.valueOf(map1.get("id").toString());
+            for(Map<String, Object> map2 : list2){
+                Integer id2 = Integer.valueOf(map2.get("id").toString());
+                if(id1 == id2){
+                    map1.put("startAddress", map1.get("siteName"));
+                    map1.put("endAddress", map2.get("siteName"));
+                    list.add(map1);
+                }
+            }
+        }
+        if(null != driverId){
+            List<Map<String, Object>> lists = new ArrayList<>();
+            List<Map<String, Object>> list3 = lineMapper.scanCodeQueryLines(driverId);
+            for(Map<String, Object> map1 : list){
+                Integer id2 = Integer.valueOf(map1.get("id").toString());
+                for(Map<String, Object> map : list3){
+                    Integer id1 = Integer.valueOf(map.get("id").toString());
+                    if(id1 == id2){
+                        lists.add(map1);
+                    }
+                }
+            }
+            list = lists;
+        }
+        return list;
+    }
+
+
+    /**
+     * 扫码获取司机的所有线路
+     * @param driverId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> scanCodeQueryLines(Integer driverId) throws Exception {
+        return lineMapper.scanCodeQueryLines(driverId);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
new file mode 100644
index 0000000..2261739
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineSiteServiceImpl.java
@@ -0,0 +1,158 @@
+package com.stylefeng.guns.modular.crossCity.server.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
+import com.stylefeng.guns.modular.crossCity.dao.LineShiftMapper;
+import com.stylefeng.guns.modular.crossCity.dao.LineSiteMapper;
+import com.stylefeng.guns.modular.crossCity.model.LineShift;
+import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
+import com.stylefeng.guns.modular.crossCity.model.LineSite;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.ILineSiteService;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.SystemException;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
+@Service
+public class LineSiteServiceImpl extends ServiceImpl<LineSiteMapper, LineSite> implements ILineSiteService {
+
+    @Resource
+    private LineSiteMapper lineSiteMapper;
+
+    @Resource
+    private LineShiftDriverMapper lineShiftDriverMapper;
+
+    @Resource
+    private LineShiftMapper lineShiftMapper;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+
+
+    /**
+     * 根据线路id获取排班数据
+     * @param lineId
+     * @param day
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryDriver(Integer lineId, String day, Integer driverId) throws Exception {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar c = Calendar.getInstance();
+        c.setTime(new Date());
+        c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        c.set(Calendar.MILLISECOND, 0);
+        if(c.getTimeInMillis() > sdf.parse(day).getTime()){
+            throw new SystemException("日期不能小于当天");
+        }
+        List<Map<String, Object>> list = new ArrayList<>();
+        List<LineShift> lineShifts = lineShiftMapper.queryByLineId(lineId);
+        List<Map<String, Object>> s = lineSiteMapper.queryDriver(lineId, sdf.parse(day), driverId);
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(sdf.parse(day));
+        String vehicle = redisUtil.getValue("VEHICLE");
+        List<Integer> integers = new ArrayList<>();
+        if(ToolUtil.isNotEmpty(vehicle)){
+            integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+        }
+        for(LineShift lineShift : lineShifts){
+            boolean b = true;
+            String[] split = lineShift.getEndTime().split(":");
+            calendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
+            calendar.set(Calendar.MINUTE, Integer.valueOf(split[1]));
+            if(calendar.getTimeInMillis() < System.currentTimeMillis()){//结束时间小于当前时间不显示
+                continue;
+            }
+
+            Map<String, Object> data = new HashMap<>();
+            for(Map<String, Object> map : s){
+                //先判断司机是否在限制接单范围内
+                boolean bo = false;
+                for(Integer integer : integers){
+                    if(integer.compareTo(Integer.valueOf(map.get("driverId").toString())) == 0){
+                        bo = true;
+                        break;
+                    }
+                }
+                if(bo){
+                    continue;
+                }
+
+
+                int i = orderTaxiService.selectCount(new EntityWrapper<OrderTaxi>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
+                if(i > 0){
+                    continue;
+                }
+                i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
+                if(i > 0){
+                    continue;
+                }
+                List<OrderCrossCity> driverId1 = orderCrossCityService.queryListOrder(Integer.valueOf(map.get("driverId").toString()), lineShift.getId(), Arrays.asList(5), day);
+                if(driverId1.size() > 0){
+                    continue;
+                }
+                if(Integer.valueOf(map.get("laveSeat").toString()) <= 0){
+                    continue;
+                }
+                if(lineShift.getId().intValue() == Integer.valueOf(map.get("id").toString()).intValue()){
+                    b = false;
+                    String content = map.get("content").toString();
+                    JSONObject jsonObject = JSON.parseObject(content);
+                    map.put("price", jsonObject.getString("num1"));
+                    data = map;
+                    list.add(data);
+                }
+            }
+            if(b){
+                data.put("id", lineShift.getId());
+                data.put("startTime", lineShift.getStartTime());
+                list.add(data);
+            }
+        }
+        return list;
+    }
+
+
+    /**
+     * 根据司机排班数据id获取数据(剩余座位号和总座位数)
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> querySeat(Integer id) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(id);
+        map.put("totalNumber", lineShiftDriver.getTotalSeat());
+        map.put("number", lineShiftDriver.getLaveSeat());
+        map.put("content", lineShiftDriver.getLaveSeatNumber());
+        return map;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
new file mode 100644
index 0000000..abd99ca
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -0,0 +1,1730 @@
+package com.stylefeng.guns.modular.crossCity.server.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.crossCity.dao.LinePriceMapper;
+import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
+import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper;
+import com.stylefeng.guns.modular.crossCity.model.Line;
+import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.ILineService;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityWarpper;
+import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.specialTrain.server.impl.OrderPrivateCarServiceImpl;
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.stylefeng.guns.modular.taxi.service.impl.OrderTaxiServiceImpl.orderIds;
+
+
+@Service
+@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+public class OrderCrossCityServiceImpl extends ServiceImpl<OrderCrossCityMapper, OrderCrossCity> implements IOrderCrossCityService {
+
+    @Resource
+    private OrderCrossCityMapper orderCrossCityMapper;
+
+    @Resource
+    private LinePriceMapper linePriceMapper;
+
+    @Resource
+    private UserActivityDiscount1Mapper userActivityDiscount1Mapper;
+
+    @Resource
+    private SysIntegralMapper sysIntegralMapper;
+
+    @Resource
+    private LineShiftDriverMapper lineShiftDriverMapper;
+
+    @Resource
+    private OrderPrivateCarMapper orderPrivateCarMapper;
+
+    @Resource
+    private OrderTaxiMapper orderTaxiMapper;
+
+    @Resource
+    private RegionMapper regionMapper;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IUserCouponRecordService userCouponRecordService;
+
+    @Autowired
+    private IUserRedPacketRecordService userRedPacketRecordService;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private ILineService lineService;
+
+    @Autowired
+    private IIncomeService incomeService;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private PushUtil pushUtil;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+    @Autowired
+    private ChinaMobileUtil chinaMobileUtil;
+
+    @Autowired
+    private GDFalconUtil gdFalconUtil;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private ICancleOrderService cancleOrderService;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private RestTemplate internalRestTemplate;
+
+    @Autowired
+    private IUserActivityRedenvelopeService userActivityRedenvelopeService;
+
+    @Autowired
+    private IOrderPositionService orderPositionService;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private IPushOrderService pushOrderService;
+
+    @Autowired
+    private IOpenCityService openCityService;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+    public Map<String, Thread> threadMap = new HashMap<>();
+
+    //存储摆渡车无接单后推送标识,实现多个类型的摆渡车订单无人接单后只给前端推送一次
+    public static Map<Integer, Boolean> pushEndMap = new HashMap<>();
+
+
+
+
+
+
+    /**
+     * 计算支付金额
+     * @param startLonLat
+     * @param endLonLat
+     * @param peopleNumber
+     * @param travelMode
+     * @param lineId
+     * @param serverCarModelId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil queryOrderMoney(String startLonLat, String endLonLat, Integer peopleNumber, Integer travelMode, Integer lineId,
+                                      Integer serverCarModelId, Integer totalSeat, String seatNumber) throws Exception {
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLonLat, endLonLat, 1);//调用高德计算距离
+        if(null != distance){
+            return this.getPrice(Double.valueOf(distance.get("distance")), peopleNumber, travelMode, lineId, serverCarModelId, totalSeat, seatNumber);
+        }
+        return ResultUtil.error("计算行程距离出错啦!");
+    }
+
+    /**
+     * 获取用户余额和可用优惠券数量
+     * @param orderId
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        map.put("balance", userInfo.getBalance());
+        OrderCrossCity orderCrossCity = this.selectById(orderId);
+        int i = userCouponRecordService.queryAvailable(uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney());
+        i = i + userCouponRecordService.queryAvailable(uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney());
+        map.put("coupon", i);
+        return map;
+    }
+
+
+    /**
+     * 获取支付页面的优惠券列表
+     * @param orderId
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(orderId);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderCrossCity.getCompanyId(), 1, 3, orderCrossCity.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderCrossCity.getCompanyId(), 1, 0, orderCrossCity.getOrderMoney(), pageNum, size);
+        list.addAll(list1);
+        return list;
+    }
+
+
+    /**
+     * 订单支付
+     * @param payType
+     * @param orderId
+     * @param couponId
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil payCrossCityOrder(Integer payType, Integer orderId, Integer couponId, Integer type) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(orderId);
+        if(orderCrossCity.getState() != 7){
+            return ResultUtil.error("订单已完成支付,不允许重复支付");
+        }
+        Integer uid = orderCrossCity.getUserId();
+        Double orderMoney = orderCrossCity.getOrderMoney();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+        orderCrossCity.setCouponMoney(0D);//初始化历史数据
+        orderCrossCity.setCouponId(null);
+
+        //计算优惠券
+        UserCouponRecord userCouponRecord = null;
+        if(null != couponId){
+            userCouponRecord = userCouponRecordService.selectById(couponId);
+            if(userCouponRecord.getCompanyId() != orderCrossCity.getCompanyId()){
+                return ResultUtil.error("优惠券不能用于此订单");
+            }
+            if(userCouponRecord.getState() == 2){
+                return ResultUtil.error("优惠券已使用");
+            }
+            if(userCouponRecord.getState() == 3){
+                return ResultUtil.error("优惠券已过期");
+            }
+            if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 3){
+                return ResultUtil.error("优惠券不能用于此类型订单");
+            }
+            if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){
+                return ResultUtil.error("优惠券不能用于此订单");
+            }
+            orderMoney = orderMoney - userCouponRecord.getMoney();
+            orderCrossCity.setCouponMoney(userCouponRecord.getMoney());
+            orderCrossCity.setCouponId(couponId);
+        }
+
+        //计算红包
+        UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderCrossCity.getCompanyId(), 1, 3, orderMoney);
+        if(null != query && orderMoney.compareTo(query.getMoney()) > 0){
+            orderMoney = orderMoney - query.getMoney();
+            orderCrossCity.setRedPacketMoney(query.getMoney());
+            orderCrossCity.setRedPacketId(query.getId());
+        }
+
+        //计算折扣
+        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderCrossCity.getCompanyId());
+        if(null != query2){
+            Double special = query2.getSpecial();
+            orderCrossCity.setDiscount(special);
+            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            if(orderMoney.compareTo(v) > 0){
+                orderCrossCity.setDiscountMoney(orderMoney - v);
+                orderCrossCity.setActivityId(query2.getId());
+                orderMoney = v;
+            }
+        }
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String out_trade_no = sdf.format(new Date()) + 3 + orderCrossCity.getId();
+
+        if(payType == 1){//微信支付
+            String appletsOpenId = "";
+            String tradeType = "APP";
+            if(type == 3){
+                appletsOpenId = userInfo.getAppletsOpenId();
+                tradeType = "JSAPI";
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("支付异常,请重新授权登录小程序");
+                }
+            }
+            resultUtil = payMoneyUtil.weixinpay("完成订单", "", out_trade_no, orderMoney.toString(), callbackPath + "/base/wxPayOrderTaxi", tradeType, appletsOpenId);
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 1, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 2){//支付宝支付
+            resultUtil = payMoneyUtil.alipay("订单完成支付", "支付订单", out_trade_no, orderMoney.toString(), callbackPath + "/base/aliPayOrderTaxi");
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, orderId, 3, 2, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 3){//余额支付
+            if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
+                return ResultUtil.error("余额不足,无法完成支付");
+            }
+
+            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+
+            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
+
+            //添加交易明细
+            transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 3, orderId);
+            userInfoService.updateById(userInfo);
+
+            orderCrossCity.setState(2);//跨城支付完成后才开始服务
+            orderCrossCity.setPayType(3);
+            orderCrossCity.setPayMoney(orderMoney);
+
+            //处理优惠券和红包
+            if(null != userCouponRecord){
+                userCouponRecord.setState(2);
+                userCouponRecord.setEndTime(new Date());
+                userCouponRecordService.updateById(userCouponRecord);
+            }
+            if(null != query){
+                query.setState(2);
+                query.setEndTime(new Date());
+                userRedPacketRecordService.updateById(query);
+            }
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+                    pushUtil.pushDriverPosition(orderCrossCity.getId(), 3);
+                }
+            }).start();
+
+            systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1);
+        }
+
+        this.updateAllColumnById(orderCrossCity);
+        return resultUtil;
+    }
+
+
+    /**
+     * 支付成功后的回调操作
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    @Override
+    public void payOrderCrossCityCallback(Integer id, String order_id, Integer type) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, Integer.valueOf(id), 3, type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderCrossCity.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId());
+            orderCrossCity.setState(2);//先支付再服务
+            orderCrossCity.setPayType(type);
+            orderCrossCity.setPayMoney(query.getAmount());
+            this.updateById(orderCrossCity);
+
+            UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
+            SysIntegral query1 = sysIntegralMapper.query(orderCrossCity.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+            userInfoService.updateById(userInfo);
+
+            //处理优惠券和红包
+            if(null != orderCrossCity.getCouponId()){
+                UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderCrossCity.getCouponId());
+                userCouponRecord.setState(2);
+                userCouponRecord.setEndTime(new Date());
+                userCouponRecordService.updateById(userCouponRecord);
+            }
+            if(null != orderCrossCity.getRedPacketId()){
+                UserRedPacketRecord userRedPacketRecord = userRedPacketRecordService.selectById(orderCrossCity.getRedPacketId());
+                userRedPacketRecord.setState(2);
+                userRedPacketRecord.setEndTime(new Date());
+                userRedPacketRecordService.updateById(userRedPacketRecord);
+            }
+
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+                    pushUtil.pushDriverPosition(orderCrossCity.getId(), 3);
+                }
+            }).start();
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderCrossCity.getUserId(), 1);
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+
+    /**
+     * 跨城下单操作
+     * @param orderCrossCityWarpper
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil<BaseWarpper> orderCrossCity(OrderCrossCityWarpper orderCrossCityWarpper, Integer uid) throws Exception {
+        /**
+         * 1.下了即时单就不能下预约单和即时单
+         * 2.下了预约单和再下一张即时单不能再下预约单
+         */
+        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 1, 2, 3, 4, 5, 6, 7, 11);
+        if(orderPrivateCars.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+        List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11);
+        if(list.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+        List<OrderCrossCity> orderCrossCities1 = orderCrossCityMapper.queryByState(uid, 1, 2, 3, 4, 5, 7, 11);
+        if(orderCrossCities1.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+
+        List<OrderCrossCity> orderCrossCities2 = orderCrossCityMapper.queryOrders(orderCrossCityWarpper.getDriverId(), orderCrossCityWarpper.getLineShiftDriverId(), Arrays.asList(5));
+        if(orderCrossCities2.size() > 0){
+            return ResultUtil.error("司机正在服务中");
+        }
+
+        /**
+         * 先判断司机座位数是否符合出行人数
+         */
+        LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCityWarpper.getLineShiftDriverId());
+        if(orderCrossCityWarpper.getTravelMode() == 1){//拼车判断座位数
+            if(lineShiftDriver.getLaveSeat() < orderCrossCityWarpper.getPeopleNumber()){
+                return ResultUtil.error("司机剩余座位数小于出行人数");
+            }
+        }else{
+            if(lineShiftDriver.getLaveSeat() != lineShiftDriver.getTotalSeat()){
+                return ResultUtil.error("司机车辆上已经有人占座了,不能下包车订单");
+            }
+            if(lineShiftDriver.getLaveSeat() == 0){
+                return ResultUtil.error("司机车辆没有剩余空位了");
+            }
+        }
+        Driver driver = driverService.selectById(orderCrossCityWarpper.getDriverId());
+        if(driver.getState() == 1){
+            return ResultUtil.error("司机处于离线状态");
+        }
+        OrderCrossCity orderCrossCity = new OrderCrossCity();
+        orderCrossCity.setUserId(uid);
+        orderCrossCity.setServerCarModelId(orderCrossCityWarpper.getServerCarModelId());
+        orderCrossCity.setDriverId(orderCrossCityWarpper.getDriverId());
+        orderCrossCity.setLineId(orderCrossCityWarpper.getLineId());
+        orderCrossCity.setLineShiftDriverId(orderCrossCityWarpper.getLineShiftDriverId());
+        orderCrossCity.setCarId(orderCrossCityWarpper.getCarId());
+        orderCrossCity.setOrderNum(this.getOrderNum(orderCrossCityWarpper.getDriverId(), orderCrossCityWarpper.getLineShiftDriverId()));
+        orderCrossCity.setPlacementLon(orderCrossCityWarpper.getPlacementLon());
+        orderCrossCity.setPlacementLat(orderCrossCityWarpper.getPlacementLat());
+        String placementAddress = orderCrossCityWarpper.getPlacementAddress();
+        placementAddress = placementAddress.replaceAll("& #40;", "(");
+        placementAddress = placementAddress.replaceAll("& #41;", ")");
+        orderCrossCity.setPlacementAddress(placementAddress);
+        orderCrossCity.setStartLon(orderCrossCityWarpper.getStartLon());
+        orderCrossCity.setStartLat(orderCrossCityWarpper.getStartLat());
+        String startAddress = orderCrossCityWarpper.getStartAddress();
+        startAddress = startAddress.replaceAll("& #40;", "(");
+        startAddress = startAddress.replaceAll("& #41;", ")");
+        orderCrossCity.setStartAddress(startAddress);
+        orderCrossCity.setEndLon(orderCrossCityWarpper.getEndLon());
+        orderCrossCity.setEndLat(orderCrossCityWarpper.getEndLat());
+        String endAddress = orderCrossCityWarpper.getEndAddress();
+        endAddress = endAddress.replaceAll("& #40;", "(");
+        endAddress = endAddress.replaceAll("& #41;", ")");
+        orderCrossCity.setEndAddress(endAddress);
+        orderCrossCity.setMileage(0D);
+        ResultUtil<Map<String, Object>> price = this.getPrice(orderCrossCityWarpper.getDistance(), orderCrossCityWarpper.getPeopleNumber(), orderCrossCityWarpper.getTravelMode(), orderCrossCityWarpper.getLineId(),
+                orderCrossCityWarpper.getServerCarModelId(), orderCrossCityWarpper.getTotalSeat(), orderCrossCityWarpper.getSeatNumber());
+        Double money = Double.valueOf(price.getData().get("price").toString());
+        orderCrossCity.setOrderMoney(money);
+        Integer companyId = driver.getCompanyId();
+        orderCrossCity.setCompanyId(companyId);
+        UserInfo userInfo = userInfoService.selectById(uid);
+        orderCrossCity.setPassengers(userInfo.getNickName());
+        orderCrossCity.setPassengersPhone(userInfo.getPhone());
+        orderCrossCity.setPeopleNumber(orderCrossCityWarpper.getPeopleNumber());
+        orderCrossCity.setSeatNumber(orderCrossCityWarpper.getSeatNumber());
+        List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("orderNum", orderCrossCity.getOrderNum()).eq("isDelete", 1));
+        orderCrossCity.setSort(orderCrossCities.size() + 1);
+        orderCrossCity.setState(7);//待支付
+        orderCrossCity.setInsertTime(new Date());
+        orderCrossCity.setTravelTime(orderCrossCityWarpper.getTravelTime());
+        orderCrossCity.setSnatchOrderTime(new Date());
+        orderCrossCity.setTravelMode(orderCrossCityWarpper.getTravelMode());
+        orderCrossCity.setOrderSource(orderCrossCityWarpper.getOrderSource());
+        orderCrossCity.setIsDelete(1);
+        orderCrossCity.setRemark(orderCrossCityWarpper.getRemark());
+        orderCrossCity.setIsReassign(1);
+        //调用高德创建轨迹
+        String s = gdFalconUtil.selectTerminal(driver.getPhone());
+        String track = gdFalconUtil.createTrack(s);
+        orderCrossCity.setTrackId(track);
+        if(orderCrossCity.getTravelMode() == 2){//包车
+            orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber());
+            orderCrossCity.setPeopleNumber(lineShiftDriver.getLaveSeat());
+        }
+
+        //调用移动的小号接口
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString());
+        Region region = regionMapper.query(geocode.get("districtCode"));
+        Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderCrossCity.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+        if(String.valueOf(map.get("code")).equals("200")){
+            orderCrossCity.setTelX(map.get("telX"));
+            orderCrossCity.setBindId(map.get("bindId"));
+        }
+        this.insert(orderCrossCity);
+
+        if(driver.getState() == 2){
+            driver.setState(3);
+            driverService.updateById(driver);
+        }
+
+        //修改预约班次的数据
+        if(orderCrossCity.getTravelMode() == 2){//包车
+            lineShiftDriver.setLaveSeat(0);
+            lineShiftDriver.setLaveSeatNumber("");
+        }else{//拼车
+            lineShiftDriver.setLaveSeat((lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber()) < 0 ? 0 : lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber());
+            String[] split = orderCrossCity.getSeatNumber().split(",");
+            String[] split1 = lineShiftDriver.getLaveSeatNumber().split(",");
+            String seatNumber = "";
+            //先判断选中座位号和剩余座位号是否匹配
+            for(String spl : split){
+                boolean b = true;
+                for(String sp : split1){
+                    if(ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)){
+                        b = false;
+                        break;
+                    }
+                }
+                if(b){
+                    throw new SystemException("您选中的" + spl + "号座位已被占用,请选择其他座位!");
+                }
+            }
+            for(String sp : split1){
+                boolean b = true;
+                for(String spl : split){
+                    if(ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)){
+                        b = false;
+                        break;
+                    }
+                }
+                if(b && ToolUtil.isNotEmpty(sp)){
+                    seatNumber += (sp + ",");
+                }
+            }
+            lineShiftDriver.setLaveSeatNumber((ToolUtil.isNotEmpty(seatNumber) && seatNumber.length() > 0) ?
+                    seatNumber.substring(0, seatNumber.length() - 1) : "");
+        }
+        lineShiftDriverMapper.updateById(lineShiftDriver);
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您的跨城订单已下单成功!", orderCrossCity.getUserId(), 1);
+
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(orderCrossCity.getId());
+
+        //创建定时任务,取消订单30分钟
+        TimerTask timerTask = new TimerTask() {
+            @Override
+            public void run() {
+                OrderCrossCity orderCrossCity1 = orderCrossCityMapper.selectById(orderCrossCity.getId());
+                if(orderCrossCity1.getState() == 7 && orderCrossCity1.getPayMoney() == null){
+                    orderCrossCity1.setState(10);
+                    orderCrossCityMapper.updateById(orderCrossCity1);
+
+                    OrderCancel orderCancel = new OrderCancel();
+                    orderCancel.setOrderId(orderCrossCity.getId());
+                    orderCancel.setOrderType(3);
+                    orderCancel.setReason("用户未及时付款,系统自动取消订单");
+                    orderCancel.setRemark("用户未及时付款,系统自动取消订单");
+                    orderCancel.setState(2);
+                    orderCancel.setInsertTime(new Date());
+                    orderCancel.setUserType(2);
+                    orderCancelService.insert(orderCancel);
+
+                    //修改司机座位
+                    LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
+                    lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+                    lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
+                    lineShiftDriverMapper.updateById(lineShiftDriver);
+
+                    //修改司机为空闲
+                    List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
+                    if(orderCrossCities.size() == 0){
+                        Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+                        driver.setState(2);
+                        driverService.updateById(driver);
+                    }
+                }
+            }
+        };
+        Timer timer = new Timer();
+        timer.schedule(timerTask, 30 * 60 * 1000);
+
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 获取订单
+     * @param uid
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<OrderCrossCity> queryOrder(Integer uid, Integer... state) throws Exception {
+        return orderCrossCityMapper.queryByState(uid, state);
+    }
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+        Map<String, Object> map = orderCrossCityMapper.queryOrderInfo(orderId);
+        if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
+            OrderCrossCity orderCrossCity = this.selectById(orderId);
+            orderCrossCity.setReassignNotice(0);
+            this.updateById(orderCrossCity);
+        }
+        if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+            map.put("state", map.get("oldState"));
+        }
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(map.get("startLon").toString(), map.get("startLat").toString());
+        map.put("startCity", geocode.get("city"));
+        geocode = gdMapGeocodingUtil.geocode(map.get("endLon").toString(), map.get("endLat").toString());
+        map.put("endCity", geocode.get("city"));
+
+        String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
+        map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
+        map.put("orderType", 3);
+        return map;
+    }
+
+    /**
+     * 获取取消订单的支付费用
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(id);
+        if(null == orderCrossCity){
+            return ResultUtil.error("获取数据失败,订单信息有误");
+        }
+        double amount = 0;
+        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+        if(null != orderCrossCity.getDriverId() &&
+                (orderCrossCity.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况
+            if(null != query){
+                amount += query.getMoney();
+            }
+        }
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setAmount(amount);
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 取消订单操作
+     * @param id
+     * @param payType
+     * @param cancleId
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil cancleOrderCrossCity(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(id);
+        Integer uid = orderCrossCity.getUserId();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+
+        if(null == orderCrossCity){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderCrossCity.getState() != 12){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+        OrderCancel orderCancel = null;
+        if(null == cancleId){
+            orderCancel = orderCancelService.query(id, 3, null, null, 1);
+        }else{
+            orderCancel = orderCancelService.selectById(cancleId);
+        }
+
+        CancleOrder query = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+        if(null != query){
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String out_trade_no = sdf.format(new Date()) + 3 + id;
+            if(payType == 1){//微信支付
+                String appletsOpenId = "";
+                String tradeType = "APP";
+                if(type == 3){
+                    appletsOpenId = userInfo.getAppletsOpenId();
+                    tradeType = "JSAPI";
+                    if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                        return ResultUtil.error("支付异常,请重新授权登录小程序");
+                    }
+                }
+                resultUtil = payMoneyUtil.weixinpay("订单取消", "", out_trade_no,  query.getMoney().toString(), callbackPath + "/base/wxCancelOrderTaxi", tradeType, appletsOpenId);
+                if(resultUtil.getCode() == 200){
+                    paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, id, 3, 1, query.getMoney(), "", 1);//添加预支付数据
+                }
+            }
+            if(payType == 2){//支付宝支付
+                resultUtil = payMoneyUtil.alipay("取消订单支付", "取消订单", out_trade_no, query.getMoney().toString(), callbackPath + "/base/aliCancelOrderTaxi");
+                if(resultUtil.getCode() == 200){
+                    paymentRecordService.saveData(1, orderCrossCity.getUserId(), 1, id, 3, 2, query.getMoney(), "", 1);//添加预支付数据
+                }
+            }
+            if(payType == 3){//余额支付
+                if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
+                    return ResultUtil.error("余额不足,无法完成支付");
+                }
+
+                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                //添加交易明细
+                transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 3, id);
+                userInfoService.updateById(userInfo);
+
+                //解除小号绑定
+                if(orderCrossCity.getBindId() != null){
+                    chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId());
+                }
+
+                orderCrossCity.setState(10);
+                orderCrossCity.setTelX("");
+                orderCrossCity.setBindId("");
+                this.updateById(orderCrossCity);
+
+                orderCancel.setState(2);
+                orderCancel.setPayType(3);
+                orderCancelService.updateById(orderCancel);
+
+                //添加已收入明细
+                incomeService.saveData(1, orderCrossCity.getCompanyId(), 3, orderCrossCity.getId(), 3, query.getMoney());
+
+                this.deleteTask(id);//删除定时任务
+
+//                new Thread(new Runnable() {
+//                    @Override
+//                    public void run() {
+//                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+//                    }
+//                }).start();
+
+                //添加消息
+                systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderCrossCity.getUserId(), 1);
+            }
+        }
+        return resultUtil;
+    }
+
+
+    /**
+     * 计算价格
+     * @param distance
+     * @param peopleNumber
+     * @param travelMode
+     * @param lineId
+     * @param serverCarModelId
+     * @param totalSeat
+     * @param seatNumber
+     * @return
+     */
+    public ResultUtil<Map<String, Object>> getPrice(Double distance, Integer peopleNumber, Integer travelMode, Integer lineId, Integer serverCarModelId, Integer totalSeat, String seatNumber){
+        if(0 >= peopleNumber && peopleNumber > 6){
+            return ResultUtil.error("请输入正确的乘车人数");
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        double distance1 = distance.doubleValue() / 1000;//公里
+        map.put("distance", distance);
+
+        /**
+         * 1.固定价格的包车是整车价格
+         * 2.五座车和七座车的优惠系数是中间特殊位置的优惠折扣
+         * 3.包车的情况不享受中间特殊位置的优惠折扣
+         * 4.浮动计费拼车如果选中中间特殊位置既享受优惠系数又享受中间特殊位置的优惠折扣
+         */
+        Map<String, Object> query = linePriceMapper.query(lineId, serverCarModelId);
+        if(null == query){
+            map.put("distance", 0);
+            map.put("price", 0);
+            return ResultUtil.success(map);
+        }
+        String content = query.get("content").toString();
+        JSONObject jsonObject = JSON.parseObject(content);
+        if(Integer.valueOf(query.get("type").toString()) == 1){//固定金额
+            double num1 = Double.valueOf(jsonObject.getString("num1")).doubleValue();
+            double num2 = Double.valueOf(jsonObject.getString("num2")).doubleValue();
+            double num3 = Double.valueOf(jsonObject.getString("num3")).doubleValue();
+            double num4 = Double.valueOf(jsonObject.getString("num4")).doubleValue();
+            if(travelMode == 1){//拼车
+                String[] split = seatNumber.split(",");
+                boolean b = false;
+                for(String s : split){
+                    if((totalSeat == 4 && s.equals("3")) || (totalSeat == 6 && s.equals("5"))){
+                        b = true;
+                        break;
+                    }
+                }
+                double price1 = 0D;
+                if(b){
+                    price1 = num1 * (totalSeat == 4 ? num3 : num4);
+                    peopleNumber -= 1;
+                }
+                double price = (num1 * peopleNumber) + price1;
+                map.put("price", new BigDecimal(price).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            }else{
+                map.put("price", num2);//包车价
+            }
+
+        }else{//浮动计费
+            //计算公式:实际历程 * 基础单价 * (参考费用 / (参考里程 * 基础单价)) + (实际历程 - 参考里程) * 基础单价 * 优惠系数
+            double num1 = Double.valueOf(jsonObject.getString("num1")).doubleValue();//参考费用
+            double num2 = Double.valueOf(jsonObject.getString("num2")).doubleValue();//参考里程
+            double num3 = Double.valueOf(jsonObject.getString("num3")).doubleValue();//基础单价
+            double num4 = Double.valueOf(jsonObject.getString("num4")).doubleValue();//优惠系数
+            double num5 = Double.valueOf(jsonObject.getString("num5")).doubleValue();//包车系数
+            double num6 = Double.valueOf(jsonObject.getString("num6")).doubleValue();//五座系数
+            double num7 = Double.valueOf(jsonObject.getString("num7")).doubleValue();//七座系数
+            if(travelMode == 1){//拼车
+                double unitPrice = (distance1 * num3 * (num1 / (num2 * num3))) + ((distance1 - num2) * num3 * num4);
+                String[] split = seatNumber.split(",");
+                boolean b = false;
+                for(String s : split){
+                    if((totalSeat == 4 && s.equals("3")) || (totalSeat == 6 && s.equals("5"))){
+                        b = true;
+                        break;
+                    }
+                }
+                double price1 = 0D;
+                if(b){
+                    price1 = unitPrice * (totalSeat == 4 ? num6 : num7);
+                    peopleNumber -= 1;
+                }
+                double price = (unitPrice * peopleNumber) + price1;
+                map.put("price", new BigDecimal(price).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            }else{
+                double unitPrice = (distance1 * num3 * (num1 / (num2 * num3))) + ((distance1 - num2) * num3 * num5);
+                double price = unitPrice * totalSeat;
+                map.put("price", new BigDecimal(price).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            }
+        }
+        return ResultUtil.success(map);
+    }
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     */
+    @Override
+    public void deleteTask(Integer orderId){
+        //发送验证码短信
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("orderId", orderId + "");
+        params.add("orderType", "3");
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://driver-server/base/netty/deleteTask", requestEntity, String.class);
+        JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject.getIntValue("code") != 200){
+            System.err.println("调用driver-server出错了");
+        }
+    }
+
+    /**
+     * 获取红包
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil<BaseWarpper> queryRedMoney(Integer orderId) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(orderId);
+        Integer companyId = orderCrossCity.getCompanyId();
+
+        Map<String, Object> query = userActivityRedenvelopeService.query(companyId, orderCrossCity.getTravelTime());
+        Double money = 0D;
+        BaseWarpper baseWarpper = new BaseWarpper();
+        if(null != query){
+            Integer type = Integer.valueOf(String.valueOf(query.get("type")));
+            if(type == 1){//固定金额
+                money = Double.valueOf(String.valueOf(query.get("money")));
+            }else{//随机金额
+                Double startMoney = Double.valueOf(String.valueOf(query.get("startMoney")));
+                Double endMoney = Double.valueOf(String.valueOf(query.get("endMoney")));
+                int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue();
+                Random random = new Random();
+                int num = random.nextInt(i);
+                money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            }
+            //判断当前红包是否大于剩余可领取总金额
+            if(money.compareTo(Double.valueOf(query.get("lavePrice").toString())) > 0){
+                baseWarpper.setAmount(0D);
+                return ResultUtil.success(baseWarpper);
+            }
+        }
+        baseWarpper.setAmount(money);
+
+        if(money > 0){
+            //添加临时红包数据
+            UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord();
+            userRedPacketRecord.setMoney(money);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(query.get("effective"))));
+            userRedPacketRecord.setExpirationTime(calendar.getTime());
+            userRedPacketRecord.setInsertTime(new Date());
+            userRedPacketRecord.setCompanyId(Integer.valueOf(String.valueOf(query.get("companyId"))));
+            userRedPacketRecord.setState(0);
+            userRedPacketRecord.setOrderId(orderCrossCity.getId());
+            userRedPacketRecord.setOrderType(3);
+            userRedPacketRecord.setUserId(orderCrossCity.getUserId());
+            userRedPacketRecordService.insert(userRedPacketRecord);
+        }
+
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 分享成功后添加红包
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil shareRedEnvelope(Integer orderId) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(orderId);
+        UserRedPacketRecord query = userRedPacketRecordService.query_(orderCrossCity.getUserId(), orderCrossCity.getCompanyId(), 0, 3, null);
+        if(null != query){
+            Double money = query.getMoney();
+            Map<String, Object> map = userActivityRedenvelopeService.query(orderCrossCity.getCompanyId(), orderCrossCity.getTravelTime());
+            Double laveMoney = Double.valueOf(String.valueOf(map.get("laveMoney")));
+            if(money.compareTo(laveMoney) > 0){
+                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+            }
+            //判断当前红包是否大于剩余可领取总金额
+            if(money.compareTo(Double.valueOf(map.get("lavePrice").toString())) > 0){
+                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+            }
+            double v = new BigDecimal(laveMoney).subtract(new BigDecimal(money)).doubleValue();
+
+            UserActivityRedenvelope id = userActivityRedenvelopeService.selectById(String.valueOf(map.get("id")));
+            id.setLaveMoney(v);
+            id.setLavePrice(new BigDecimal(id.getLavePrice() - money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            userActivityRedenvelopeService.updateById(id);
+
+            query.setState(1);
+            query.setRedPacketActivityId(id.getId());
+            userRedPacketRecordService.updateById(query);
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 取消订单支付后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    @Override
+    public void payCancelOrderCrossCity(Integer id, String order_id, Integer type) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, Integer.valueOf(id), 3, type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderCrossCity.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 3, query.getOrderId());
+            orderCrossCity.setState(10);
+            //解除小号绑定
+            if(orderCrossCity.getBindId() != null){
+                chinaMobileUtil.midAxbUnBindSend(orderCrossCity.getBindId());
+            }
+            orderCrossCity.setBindId("");
+            orderCrossCity.setTelX("");
+            this.updateById(orderCrossCity);
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            OrderCancel query1 = orderCancelService.query(query.getOrderId(), query.getOrderType(), query.getAmount(), query.getPayType(), 1);
+            if (null != query1){
+                query1.setState(2);
+                orderCancelService.updateById(query1);
+            }
+
+            //添加已收入明细
+            incomeService.saveData(1, orderCrossCity.getCompanyId(), 3, orderCrossCity.getId(), 3, query.getAmount());
+
+            this.deleteTask(orderCrossCity.getId());//删除定时任务
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+//            new Thread(new Runnable() {
+//                @Override
+//                public void run() {
+//                    pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+//                }
+//            }).start();
+
+            //添加消息
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付取消订单费用,谢谢使用!", orderCrossCity.getUserId(), 1);
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+    /**
+     * 获取个人中心订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        List<Map<String, Object>> maps = orderCrossCityMapper.queryMyOrderList(uid, pageNum, size);
+        for(Map<String, Object> map : maps){
+            if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+                map.put("state", map.get("oldState"));
+            }
+        }
+        return maps;
+    }
+
+    @Override
+    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) {
+        return orderCrossCityMapper.queryMyTravelRecord(uid);
+    }
+
+    @Override
+    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid) throws Exception {
+        startTime = dateUtil.getStartOrEndDate(startTime, "start");
+        endTime = dateUtil.getStartOrEndDate(endTime, "end");
+        return orderCrossCityMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+    }
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception {
+        return orderCrossCityMapper.queryRedEnvelope(uid);
+    }
+
+
+    /**
+     * 添加跨城取消(直接取消不需要支付费用,退款)
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(remark)){
+            if(ToolUtil.isNotEmpty(remark)){
+                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+                for(SensitiveWords s : sensitiveWords){
+                    remark = remark.replaceAll(s.getContent(), "***");
+                }
+            }
+        }
+
+        OrderCrossCity orderCrossCity = this.selectById(id);
+        if(null == uid){
+            uid = orderCrossCity.getUserId();
+        }
+        Integer integer = null;
+        if(null == orderCrossCity){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderCrossCity.getState() > 5 && orderCrossCity.getState() != 7 && orderCrossCity.getState() != 11){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+
+        //还原座位
+        CancleOrder query1 = cancleOrderService.query(1, 3, orderCrossCity.getCompanyId());
+        if (null != query1) {
+            integer = orderCancelService.saveData(id, 3, reason, remark, null, null, 2, 1, uid);
+            orderCrossCity.setState(10);
+            this.updateById(orderCrossCity);
+
+            if(orderCrossCity.getState() != 7){//已经支付的情况推送给司机提醒
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        pushUtil.pushOrderState(2, orderCrossCity.getDriverId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 0);
+                        System.err.println("推送取消操作---------------------");
+                    }
+                }).start();
+            }
+
+            //修改司机座位
+            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
+            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
+            lineShiftDriverMapper.updateById(lineShiftDriver);
+
+            //修改司机为空闲
+            List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
+            if(orderCrossCities.size() == 0){
+                Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+                driver.setState(2);
+                driverService.updateById(driver);
+            }
+        }else{
+            return ResultUtil.error("请完善后台取消规则设置");
+        }
+
+        //已支付的情况下进行退款操作
+        if(null != orderCrossCity.getPayType() && null != orderCrossCity.getPayMoney()){
+            if(orderCrossCity.getPayType() == 3){//余额支付
+                UserInfo userInfo = userInfoService.selectById(orderCrossCity.getUserId());
+                userInfo.setBalance(userInfo.getBalance() + orderCrossCity.getPayMoney());
+                userInfoService.updateById(userInfo);
+                //添加交易明细
+                transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
+            }else{
+                PaymentRecord query = paymentRecordService.query(1, orderCrossCity.getUserId(), 1, id, 3, orderCrossCity.getPayType(), 2);
+                if(null == query){
+                    query = paymentRecordService.query(1, orderCrossCity.getDriverId(), 2, id, 3, orderCrossCity.getPayType(), 2);
+                    if(null == query){
+                        return ResultUtil.error("订单还未进行支付");
+                    }
+                }
+
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String out_trade_no = sdf.format(new Date()) + 3 + query.getId();
+
+                if(query.getPayType() == 1){//微信
+                    Map<String, String> map = payMoneyUtil.wxRefund(query.getCode(), out_trade_no, query.getAmount().toString(), query.getAmount().toString(), callbackPath + "/base/wxRefundCallback");
+                    String return_code = map.get("return_code");
+                    if(!"SUCCESS".equals(return_code)){
+                        return ResultUtil.error(map.get("return_msg"));
+                    }
+                }
+                if(query.getPayType() == 2){//支付宝
+                    Map<String, String> map = payMoneyUtil.aliRefund(query.getCode(), query.getAmount().toString());
+                    String code = map.get("code");
+                    if(!"10000".equals(code)){
+                        return ResultUtil.error(map.get("msg"));
+                    }
+                    query.setRefundState(2);
+                    query.setRefundCode(map.get("trade_no"));
+                    paymentRecordService.updateById(query);
+                    //添加交易明细
+                    transactionDetailsService.saveData(orderCrossCity.getUserId(), "跨城订单取消退款", orderCrossCity.getPayMoney(), 1, 1, 1, 3, id);
+                }
+            }
+
+
+        }
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您已成功取消出行订单,谢谢使用!", orderCrossCity.getUserId(), 1);
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", integer);
+        return ResultUtil.success(map);
+    }
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
+        OrderCrossCity orderCrossCity = this.selectById(orderId);
+        //计算预计距离和剩余时间
+        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
+        if(null == value || "".equals(value)){
+            System.err.println("司机没有上传位置信息");
+
+            //调用获取轨迹中的数据
+            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 3);
+            if(list.size() > 0){
+                Map<String, Object> map = list.get(list.size() - 1);
+                value = map.get("lon") + "," + map.get("lat");
+            }
+
+        }
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getStartLon() + "," + orderCrossCity.getStartLat(), 1);
+        String d = "0";
+        String t = "0";
+        if(null == distance){
+            System.err.println("查询距离出错了");
+        }else{
+            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+        }
+        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
+        orderServerWarpper.setOrderId(orderCrossCity.getId());
+        orderServerWarpper.setOrderType(3);
+        orderServerWarpper.setState(orderCrossCity.getState());
+        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
+        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+        orderServerWarpper.setReassignNotice(orderCrossCity.getReassignNotice());
+        if(orderCrossCity.getState() == 2 || orderCrossCity.getState() == 3){//前往预约地
+            orderServerWarpper.setReservationMileage(d);
+            orderServerWarpper.setReservationTime(t);
+            orderServerWarpper.setServedMileage("0");
+            orderServerWarpper.setServedTime("0");
+            orderServerWarpper.setLaveMileage("0");
+            orderServerWarpper.setLaveTime("0");
+        }
+        if(orderCrossCity.getState() == 5 || orderCrossCity.getState() == 6){//服务中
+            distance = gdMapElectricFenceUtil.getDistance(value, orderCrossCity.getEndLon() + "," + orderCrossCity.getEndLat(), 1);
+            if(null == distance){
+                System.err.println("查询距离出错了");
+            }else{
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            }
+            orderServerWarpper.setReservationMileage("0");
+            orderServerWarpper.setReservationTime("0");
+            orderServerWarpper.setServedMileage(String.valueOf(orderCrossCity.getMileage() / 1000));
+            orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderCrossCity.getStartServiceTime().getTime()) / 60000).intValue() + "");
+            orderServerWarpper.setLaveMileage(d);
+            orderServerWarpper.setLaveTime(t);
+        }
+
+        return orderServerWarpper;
+    }
+
+
+    /**
+     * 摆渡下单
+     * @param serverCarModelIds
+     * @param travelTime
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param endLon
+     * @param endLat
+     * @param endAddress
+     * @return
+     */
+    @Override
+    public ResultUtil<BaseWarpper> saveOrderFerry(String serverCarModelIds, Date travelTime, String placementLon, String placementLat, String startLon,
+                                              String startLat, String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId,
+                                                  Integer place, Integer orderSource, Integer uid) throws Exception {
+        if(ToolUtil.isEmpty(serverCarModelIds)){
+            return ResultUtil.error("请选择服务车型");
+        }
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLon, startLat);
+        boolean b = openCityService.openCity(geocode.get("districtCode"));
+        if(!b){
+            return ResultUtil.error("起点暂未开通");
+        }
+
+        String[] split = serverCarModelIds.split(",");
+        List<Map<String, Integer>> list = new ArrayList<>();
+        Integer orderId = null;
+        for(String serverModelId : split){
+            Map<String, Integer> map = new HashMap<>();
+            if(serverModelId.equals("0")){//出租车
+                ResultUtil<BaseWarpper> resultUtil = this.orderText(travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
+                if(resultUtil.getCode() != 200){
+                    return resultUtil;
+                }
+                map.put("orderType", 2);
+                map.put("orderId", resultUtil.getData().getId());
+            }else{
+                ResultUtil<BaseWarpper> resultUtil = this.orderPrivateCar(Integer.valueOf(serverModelId), travelTime, placementLon, placementLat, startLon, startLat, startAddress, endLon, endLat, endAddress, crossCityOrderId, place, orderSource, uid);
+                if(resultUtil.getCode() != 200){
+                    return resultUtil;
+                }
+                map.put("orderType", 1);
+                map.put("orderId", resultUtil.getData().getId());
+                orderId = resultUtil.getData().getId();
+            }
+            list.add(map);
+        }
+        //推单操作
+        this.pushOrder(list);
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(null == orderId ? list.get(0).get("orderId") : orderId);
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 出租车摆渡单
+     * @param travelTime
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param endLon
+     * @param endLat
+     * @param endAddress
+     * @param orderSource
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    private synchronized ResultUtil<BaseWarpper> orderText(Date travelTime, String placementLon, String placementLat, String startLon, String startLat,
+                                 String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception{
+        //定义用户所属公司
+        OrderTaxi orderTaxi = new OrderTaxi();
+        UserInfo userInfo1 = userInfoService.selectById(uid);
+        Company query = companyCityService.query(startLon, startLat);
+        if(null == query){
+            return ResultUtil.error("出发点暂未开通");
+        }
+        if(null != userInfo1.getCompanyId() && 0 != userInfo1.getCompanyId()){
+            userInfo1.setCompanyId(query.getId());
+            userInfoService.updateById(userInfo1);
+        }
+
+        if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
+            orderTaxi.setOrderType(2);
+        }
+
+        orderTaxi.setType(2);
+        orderTaxi.setCrossCityOrderId(crossCityOrderId);
+        orderTaxi.setPlace(place);
+        orderTaxi.setSubstitute(0);
+        orderTaxi.setOrderType(1);
+        orderTaxi.setOrderSource(orderSource);
+        orderTaxi.setTravelTime(travelTime);
+        orderTaxi.setPlacementLon(Double.valueOf(placementLon));
+        orderTaxi.setPlacementLat(Double.valueOf(placementLat));
+        orderTaxi.setStartLon(Double.valueOf(startLon));
+        orderTaxi.setStartLat(Double.valueOf(startLat));
+        orderTaxi.setStartAddress(startAddress);
+        orderTaxi.setEndLon(Double.valueOf(endLon));
+        orderTaxi.setEndLat(Double.valueOf(endLat));
+        orderTaxi.setEndAddress(endAddress);
+        orderTaxi.setOrderNum(orderTaxiService.getOrderNum());
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(placementLon, placementLat);
+        orderTaxi.setPlacementAddress(geocode.get("address"));
+        String startAddress1 = orderTaxi.getStartAddress();
+        startAddress1 = startAddress1.replaceAll("& #40;", "(");
+        startAddress1 = startAddress1.replaceAll("& #41;", ")");
+        orderTaxi.setStartAddress(startAddress1);//特殊字符转义
+        String endAddress1 = orderTaxi.getEndAddress();
+        endAddress1 = endAddress1.replaceAll("& #40;", "(");
+        endAddress1 = endAddress1.replaceAll("& #41;", ")");
+        orderTaxi.setEndAddress(endAddress1);
+        orderTaxi.setUserId(uid);
+        orderTaxi.setMileage(0D);
+        orderTaxi.setOrderMoney(0D);
+        orderTaxi.setTravelMoney(0D);
+        orderTaxi.setParkMoney(0D);
+        orderTaxi.setRoadTollMoney(0D);
+        orderTaxi.setRedPacketMoney(0D);
+        orderTaxi.setCouponMoney(0D);
+        orderTaxi.setInsertTime(new Date());
+        orderTaxi.setIsReassign(1);
+        if(orderTaxi.getSubstitute() == 0){//不是代下单
+            UserInfo userInfo = userInfoService.selectById(uid);
+            if(ToolUtil.isEmpty(userInfo.getPhone())){
+                return ResultUtil.error("请先绑定手机号码");
+            }
+            orderTaxi.setPassengers(userInfo.getName());
+            orderTaxi.setPassengersPhone(userInfo.getPhone());
+        }
+        orderTaxi.setState(1);//待接单
+
+        orderTaxiService.insert(orderTaxi);
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您的出租车订单已下单成功,我们正在为您指派司机,请稍后!", orderTaxi.getUserId(), 1);
+
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(orderTaxi.getId());
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 专车摆渡单
+     * @param serverCarModelId
+     * @param travelTime
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param endLon
+     * @param endLat
+     * @param endAddress
+     * @param orderSource
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    private synchronized ResultUtil<BaseWarpper> orderPrivateCar(Integer serverCarModelId, Date travelTime, String placementLon, String placementLat, String startLon, String startLat,
+                                       String startAddress, String endLon, String endLat, String endAddress, Integer crossCityOrderId, Integer place, Integer orderSource, Integer uid) throws Exception{
+        //如果出行时间大于当前10分钟则默认为预约单
+        Integer reservation = 1;
+        if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
+            reservation = 2;
+        }
+
+        startAddress = startAddress.replaceAll("& #40;", "(");
+        startAddress = startAddress.replaceAll("& #41;", ")");
+        endAddress = endAddress.replaceAll("& #40;", "(");
+        endAddress = endAddress.replaceAll("& #41;", ")");
+        if((orderSource == 1 || orderSource == 3) && null == serverCarModelId){
+            return ResultUtil.error("请选择服务车型");
+        }
+
+        OrderPrivateCar orderPrivateCar = new OrderPrivateCar();
+        orderPrivateCar.setType(2);
+        orderPrivateCar.setCrossCityOrderId(crossCityOrderId);
+        orderPrivateCar.setPlace(place);
+        orderPrivateCar.setUserId(uid);
+        orderPrivateCar.setServerCarModelId(serverCarModelId);
+        orderPrivateCar.setOrderNum(orderPrivateCarService.getOrderNum());
+        orderPrivateCar.setPlacementLon(Double.valueOf(placementLon));
+        orderPrivateCar.setPlacementLat(Double.valueOf(placementLat));
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(placementLon, placementLat);
+        orderPrivateCar.setPlacementAddress(geocode.get("address"));
+        orderPrivateCar.setStartLon(Double.valueOf(startLon));
+        orderPrivateCar.setStartLat(Double.valueOf(startLat));
+        orderPrivateCar.setStartAddress(startAddress);
+        orderPrivateCar.setEndLon(Double.valueOf(endLon));
+        orderPrivateCar.setEndLat(Double.valueOf(endLat));
+        orderPrivateCar.setEndAddress(endAddress);
+        orderPrivateCar.setSubstitute(0);
+        if(orderPrivateCar.getSubstitute() == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
+            UserInfo userInfo = userInfoService.selectById(uid);
+            if(ToolUtil.isEmpty(userInfo.getPhone())){
+                return ResultUtil.error("请先绑定手机号码");
+            }
+            orderPrivateCar.setPassengers(userInfo.getName());
+            orderPrivateCar.setPassengersPhone(userInfo.getPhone());
+        }
+        orderPrivateCar.setState(1);
+        orderPrivateCar.setInsertTime(new Date());
+        orderPrivateCar.setTravelTime(travelTime);
+        orderPrivateCar.setOrderType(reservation);
+        orderPrivateCar.setOrderSource(orderSource);
+
+        orderPrivateCar.setIsReassign(1);
+        orderPrivateCar.setIsDelete(1);
+        orderPrivateCarMapper.insert(orderPrivateCar);
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
+
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(orderPrivateCar.getId());
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 摆渡车推单操作
+     * @param list
+     * @throws Exception
+     */
+    public void pushOrder(List<Map<String, Integer>> list) throws Exception{
+        for(Map<String, Integer> map : list){
+            Integer orderType = map.get("orderType");
+            Integer orderId = map.get("orderId");
+            Thread thread = new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    List<Map<String, Integer>> datas = list;
+                    String vehicle = redisUtil.getValue("VEHICLE");
+                    List<Integer> integers = new ArrayList<>();
+                    if(ToolUtil.isNotEmpty(vehicle)){
+                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+                    }
+                    try {
+                        if(orderType == 1){//专车
+                            OrderPrivateCar orderPrivateCar = orderPrivateCarMapper.selectById(orderId);
+                            OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
+                            Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
+                            List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
+                            for(int i = 1; i <= querys.size(); i++){
+                                //订单被抢后的处理
+                                Integer state = orderPrivateCarMapper.selectById(orderId).getState();
+                                if(state != 1){
+                                    //关闭其他推送线程
+                                    Set<String> keySet = threadMap.keySet();
+                                    for(String key : keySet){
+                                        if(!key.equals(orderId + "_1")){
+                                            Thread thread1 = threadMap.get(key);//中断线程
+                                            if(null != thread1){
+                                                thread1.interrupt();
+                                            }
+                                            threadMap.remove(key);
+                                        }
+                                    }
+                                    //删除其他无效数据
+                                    for(Map<String, Integer> map : datas){
+                                        Integer orderType = map.get("orderType");
+                                        Integer orderId = map.get("orderId");
+                                        if(orderType == 1 && orderId != orderPrivateCar.getId()){
+                                            orderPrivateCarMapper.deleteById(orderId);
+                                        }
+                                        if(orderType == 2){
+                                            orderTaxiMapper.deleteById(orderId);
+                                        }
+                                    }
+                                    break;
+                                }
+
+                                //开始进行推送的处理
+                                PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
+                                //获取空闲司机
+                                List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                                if(list.size() > 0){
+                                    double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                                    int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                                    list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                                    for(Driver driver : list){//开始进行推送
+                                        boolean bo = false;
+                                        for(Integer integer : integers){
+                                            if(integer.compareTo(driver.getId()) == 0){
+                                                bo = true;
+                                                break;
+                                            }
+                                        }
+                                        if(bo){
+                                            continue;
+                                        }
+                                        pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
+                                    }
+                                }
+
+                                //所有推送完后的处理
+                                Boolean b = pushEndMap.get(orderPrivateCar.getCrossCityOrderId());
+                                if(i == querys.size() && state == 1 && (null != b && !b.booleanValue())){
+                                    pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+                                    OrderPrivateCarServiceImpl.orderIds.remove(orderPrivateCar.getId());
+                                    pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
+                                    break;
+                                }
+                                Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+                            }
+                        }
+
+                        if(orderType == 2){//出租车
+                            OrderTaxi orderTaxi = orderTaxiMapper.selectById(orderId);
+                            OrderTaxiServiceImpl.orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
+                            Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
+                            List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
+                            for(int i = 1; i <= querys.size(); i++){
+                                //处理订单被抢
+                                Integer state = orderTaxiMapper.selectById(orderId).getState();
+                                if(state != 1){
+                                    //关闭其他推送任务
+                                    Set<String> keySet = threadMap.keySet();
+                                    for(String key : keySet){
+                                        if(!key.equals(orderId + "_2")){
+                                            Thread thread1 = threadMap.get(key);//中断线程
+                                            if(null != thread1){
+                                                thread1.interrupt();
+                                            }
+                                            threadMap.remove(key);
+                                        }
+                                    }
+                                    //删除其他无效数据
+                                    for(Map<String, Integer> map : datas){
+                                        Integer orderType = map.get("orderType");
+                                        Integer orderId = map.get("orderId");
+                                        if(orderType == 1){
+                                            orderPrivateCarMapper.deleteById(orderId);
+                                        }
+                                        if(orderType == 2 && orderId != orderTaxi.getId()){
+                                            orderTaxiMapper.deleteById(orderId);
+                                        }
+                                    }
+                                    break;
+                                }
+
+                                //开始进行推送
+                                PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);
+                                //获取空闲司机
+                                List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                                if(list.size() > 0){
+                                    double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                                    int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                                    list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                                    for(Driver driver : list){//开始进行推送
+                                        boolean bo = false;
+                                        for(Integer integer : integers){
+                                            if(integer.compareTo(driver.getId()) == 0){
+                                                bo = true;
+                                                break;
+                                            }
+                                        }
+                                        if(bo){
+                                            continue;
+                                        }
+
+
+                                        pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
+                                    }
+                                }
+
+                                //所有推送完后的处理
+                                Boolean b = pushEndMap.get(orderTaxi.getCrossCityOrderId());
+                                if(i == querys.size() && state == 1 && (null != b && !b.booleanValue())){
+                                    pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
+                                    OrderTaxiServiceImpl.orderIds.remove(orderTaxi.getId());
+                                    pushEndMap.put(orderTaxi.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
+                                }
+                                Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+                            }
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            });
+            thread.start();
+            threadMap.put(orderId + "_" + orderType, thread);
+        }
+    }
+
+    @Override
+    public List<OrderCrossCity> queryListOrder(Integer driverId, Integer lineShiftId, List<Integer> state, String day) throws Exception {
+        return orderCrossCityMapper.queryListOrder(driverId, lineShiftId, state, day);
+    }
+
+    /**
+     * 获取订单编号
+     * @return
+     * @throws Exception
+     */
+    public synchronized String getOrderNum(Integer driverId, Integer lineShiftDriverId) throws Exception{
+        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryOrders(driverId, lineShiftDriverId, Arrays.asList(2, 3, 4, 7));
+        if(orderCrossCities.size() > 0){
+            return orderCrossCities.get(0).getOrderNum();
+        }
+        int size = this.selectCount(null);
+        while (true){
+            String orderNum = "CROSS" + String.valueOf(1000000 + size + 1).substring(1);
+            List<OrderCrossCity> orderNum1 = this.selectList(new EntityWrapper<OrderCrossCity>().eq("orderNum", orderNum));
+            if(orderNum1.size() == 0){
+                return orderNum;
+            }
+            size++;
+        }
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java
new file mode 100644
index 0000000..bf29d11
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImpl.java
@@ -0,0 +1,130 @@
+package com.stylefeng.guns.modular.crossCity.server.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.crossCity.dao.LocationMapper;
+import com.stylefeng.guns.modular.crossCity.dao.SiteMapper;
+import com.stylefeng.guns.modular.crossCity.model.Site;
+import com.stylefeng.guns.modular.crossCity.server.ISiteService;
+import com.stylefeng.guns.modular.crossCity.warpper.SiteWarpper;
+import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+
+@Service
+public class SiteServiceImpl extends ServiceImpl<SiteMapper, Site> implements ISiteService {
+
+    @Resource
+    private SiteMapper siteMapper;
+
+    @Resource
+    private LocationMapper locationMapper;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+
+    /**
+     * 获取站点
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<SiteWarpper> querySite(Integer startSiteId) throws Exception {
+        List<Map<String, Object>> sites = null;
+        if(null == startSiteId){
+            sites = siteMapper.querySite(null);
+        }else{
+            sites = siteMapper.querySite(startSiteId);
+        }
+        Set<String> set = new HashSet<>();
+        for(Map<String, Object> site : sites) {
+            set.add(site.get("cityCode").toString());
+        }
+
+        List<SiteWarpper> list = new ArrayList<>();
+        for(String c : set){
+            SiteWarpper siteWarpper = new SiteWarpper();
+            List<Object> data = new ArrayList<>();
+            String name = "";
+            String code = "";
+            for(Map<String, Object> s : sites){
+                if(c.equals(s.get("cityCode").toString())){
+                    Map<String, Object> map = new HashMap<>();
+                    map.put("id", s.get("id"));
+                    map.put("name", s.get("name").toString());
+                    name = s.get("cityName").toString();
+                    code = s.get("cityCode").toString();
+                    data.add(map);
+                }
+            }
+            siteWarpper.setName(name);
+            siteWarpper.setCode(code);
+            siteWarpper.setSites(data);
+            list.add(siteWarpper);
+        }
+        return list;
+    }
+
+
+    /**
+     * 判断点是都在区域范围内
+     * @param siteId
+     * @param code
+     * @param lonLat
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean areaMonitoring(Integer siteId, Integer code, String lonLat) throws Exception {
+        List<Map<String, Object>> list = this.queryLocation(siteId);
+        String province = code.toString().substring(0, 2) + "0000";
+        String city = code.toString().substring(0, 4) + "00";
+        for(Map<String, Object> map : list){
+            if(Integer.valueOf(map.get("type").toString()) == 1){//行政区域
+                if(null != map.get("districtCode")){
+                    if(code.toString().equals(map.get("districtCode").toString())){
+                        return true;
+                    }
+                    continue;
+                }
+                if(null != map.get("cityCode")){
+                    if(city.equals(map.get("cityCode").toString())){
+                        return true;
+                    }
+                    continue;
+                }
+                if(null != map.get("provinceCode")){
+                    if(province.equals(map.get("provinceCode").toString())){
+                        return true;
+                    }
+                    continue;
+                }
+            }
+            if(Integer.valueOf(map.get("type").toString()) == 2){//电子围栏
+                String gid = map.get("gid").toString();
+                List<String> list1 = gdMapElectricFenceUtil.monitorElectricFenc("", lonLat);
+                if(list1.contains(gid)){
+                    return true;
+                }
+                continue;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 根据站点id获取地点区域
+     * @param siteId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryLocation(Integer siteId) throws Exception {
+        return locationMapper.queryLocation(siteId);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java
new file mode 100644
index 0000000..7f96b62
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineSiteWarpper.java
@@ -0,0 +1,235 @@
+package com.stylefeng.guns.modular.crossCity.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("线路排班")
+public class LineSiteWarpper {
+    @ApiModelProperty("班次id")
+    private Integer id;
+    @ApiModelProperty("司机预约排班id")
+    private Integer lineShiftDriverId;
+    @ApiModelProperty("发车时间")
+    private String startTime;
+    @ApiModelProperty("司机头像")
+    private String headImgUrl;
+    @ApiModelProperty("司机姓名")
+    private String name;
+    @ApiModelProperty("车牌")
+    private String carLicensePlate;
+    @ApiModelProperty("车辆品牌")
+    private String brand;
+    @ApiModelProperty("车辆颜色")
+    private String carColor;
+    @ApiModelProperty("座位数")
+    private String number;
+    @ApiModelProperty("评分")
+    private Double evaluate;
+    @ApiModelProperty("预估价")
+    private Double price;
+    @ApiModelProperty("司机id")
+    private Integer driverId;
+    @ApiModelProperty("车辆id")
+    private Integer carId;
+    @ApiModelProperty("车辆总座位数")
+    private Integer totalSeat;
+    @ApiModelProperty("服务车型id")
+    private Integer serverCarModelId;
+    @ApiModelProperty("剩余座位编号")
+    private String laveSeatNumber;
+    @ApiModelProperty("剩余座位数")
+    private Integer laveSeat;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getLineShiftDriverId() {
+        return lineShiftDriverId;
+    }
+
+    public void setLineShiftDriverId(Integer lineShiftDriverId) {
+        this.lineShiftDriverId = lineShiftDriverId;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getHeadImgUrl() {
+        return headImgUrl;
+    }
+
+    public void setHeadImgUrl(String headImgUrl) {
+        this.headImgUrl = headImgUrl;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCarLicensePlate() {
+        return carLicensePlate;
+    }
+
+    public void setCarLicensePlate(String carLicensePlate) {
+        this.carLicensePlate = carLicensePlate;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public String getCarColor() {
+        return carColor;
+    }
+
+    public void setCarColor(String carColor) {
+        this.carColor = carColor;
+    }
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public Double getEvaluate() {
+        return evaluate;
+    }
+
+    public void setEvaluate(Double evaluate) {
+        this.evaluate = evaluate;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public Integer getTotalSeat() {
+        return totalSeat;
+    }
+
+    public void setTotalSeat(Integer totalSeat) {
+        this.totalSeat = totalSeat;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public String getLaveSeatNumber() {
+        return laveSeatNumber;
+    }
+
+    public void setLaveSeatNumber(String laveSeatNumber) {
+        this.laveSeatNumber = laveSeatNumber;
+    }
+
+    public Integer getLaveSeat() {
+        return laveSeat;
+    }
+
+    public void setLaveSeat(Integer laveSeat) {
+        this.laveSeat = laveSeat;
+    }
+
+    @Override
+    public String toString() {
+        return "LineSiteWarpper{" +
+                "id=" + id +
+                ", startTime='" + startTime + '\'' +
+                ", headImgUrl='" + headImgUrl + '\'' +
+                ", name='" + name + '\'' +
+                ", carLicensePlate='" + carLicensePlate + '\'' +
+                ", brand='" + brand + '\'' +
+                ", carColor='" + carColor + '\'' +
+                ", number='" + number + '\'' +
+                ", evaluate=" + evaluate +
+                ", price=" + price +
+                ", driverId=" + driverId +
+                ", carId=" + carId +
+                ", totalSeat=" + totalSeat +
+                ", serverCarModelId=" + serverCarModelId +
+                ", laveSeatNumber='" + laveSeatNumber + '\'' +
+                ", laveSeat=" + laveSeat +
+                '}';
+    }
+
+    public static List<LineSiteWarpper> getLineSiteWarppers(List<Map<String, Object>> list){
+        List<LineSiteWarpper> data = new ArrayList<>();
+        if(null != list){
+            for(Map<String, Object> map : list){
+                if(null != map){
+                    LineSiteWarpper lineSiteWarpper = new LineSiteWarpper();
+                    lineSiteWarpper.setId(null != map.get("id") ? Integer.valueOf(map.get("id").toString()) : 0);
+                    lineSiteWarpper.setLineShiftDriverId(null != map.get("lineShiftDriverId") ? Integer.valueOf(map.get("lineShiftDriverId").toString()) : 0);
+                    lineSiteWarpper.setStartTime(null != map.get("startTime") ? map.get("startTime").toString() : "");
+                    lineSiteWarpper.setHeadImgUrl(null != map.get("headImgUrl") ? map.get("headImgUrl").toString() : "");
+                    lineSiteWarpper.setName(null != map.get("name") ? map.get("name").toString() : "");
+                    lineSiteWarpper.setCarLicensePlate(null != map.get("carLicensePlate") ? map.get("carLicensePlate").toString() : "");
+                    lineSiteWarpper.setBrand(null != map.get("brand") ? map.get("brand").toString() : "");
+                    lineSiteWarpper.setCarColor(null != map.get("carColor") ? map.get("carColor").toString() : "");
+                    lineSiteWarpper.setNumber(null != map.get("number") ? map.get("number").toString() : "");
+                    lineSiteWarpper.setEvaluate(null != map.get("evaluate") ? Double.valueOf(map.get("evaluate").toString()) : 0);
+                    lineSiteWarpper.setPrice(null != map.get("price") ? Double.valueOf(map.get("price").toString()) : 0);
+                    lineSiteWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(map.get("driverId").toString()) : 0);
+                    lineSiteWarpper.setCarId(null != map.get("carId") ? Integer.valueOf(map.get("carId").toString()) : 0);
+                    lineSiteWarpper.setTotalSeat(null != map.get("totalSeat") ? Integer.valueOf(map.get("totalSeat").toString()) : 0);
+                    lineSiteWarpper.setServerCarModelId(null != map.get("serverCarModelId") ? Integer.valueOf(map.get("serverCarModelId").toString()) : 0);
+                    lineSiteWarpper.setLaveSeatNumber(null != map.get("laveSeatNumber") ? map.get("laveSeatNumber").toString() : "");
+                    lineSiteWarpper.setLaveSeat(null != map.get("laveSeat") ? Integer.valueOf(map.get("laveSeat").toString()) : 0);
+                    data.add(lineSiteWarpper);
+                }
+            }
+        }
+        return data;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineWarpper.java
new file mode 100644
index 0000000..cac8d95
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LineWarpper.java
@@ -0,0 +1,85 @@
+package com.stylefeng.guns.modular.crossCity.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("线路")
+public class LineWarpper {
+    @ApiModelProperty("线路id")
+    private Integer id;
+    @ApiModelProperty("线路名称")
+    private String name;
+    @ApiModelProperty("起点")
+    private String startAddress;
+    @ApiModelProperty("终点")
+    private String endAddress;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    @Override
+    public String toString() {
+        return "LineWarpper{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", startAddress='" + startAddress + '\'' +
+                ", endAddress='" + endAddress + '\'' +
+                '}';
+    }
+
+
+    public static LineWarpper getLineWarpper(Map<String, Object> map){
+        LineWarpper lineWarpper = new LineWarpper();
+        if(null != map){
+            lineWarpper.setId(null != map.get("id") ? Integer.valueOf(map.get("id").toString()) : 0);
+            lineWarpper.setName(null != map.get("name") ? map.get("name").toString() : "");
+            lineWarpper.setStartAddress(null != map.get("startAddress") ? map.get("startAddress").toString() : "");
+            lineWarpper.setEndAddress(null != map.get("endAddress") ? map.get("endAddress").toString() : "");
+        }
+        return lineWarpper;
+    }
+
+
+    public static List<LineWarpper> getLineWarppers(List<Map<String, Object>> maps){
+        List<LineWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                list.add(LineWarpper.getLineWarpper(map));
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LocationWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LocationWarpper.java
new file mode 100644
index 0000000..ab8e5db
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/LocationWarpper.java
@@ -0,0 +1,128 @@
+package com.stylefeng.guns.modular.crossCity.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("站点区域")
+public class LocationWarpper {
+    @ApiModelProperty("区域类型(1=行政区域,2=电子围栏)")
+    private Integer type;
+    @ApiModelProperty("省名称")
+    private String province;
+    @ApiModelProperty("省编号")
+    private String provinceCode;
+    @ApiModelProperty("市名称")
+    private String city;
+    @ApiModelProperty("市编号")
+    private String cityCode;
+    @ApiModelProperty("区县名称")
+    private String district;
+    @ApiModelProperty("区县编号")
+    private String districtCode;
+    @ApiModelProperty("电子围栏坐标多组以分号分隔")
+    private String coordinate;
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getProvinceCode() {
+        return provinceCode;
+    }
+
+    public void setProvinceCode(String provinceCode) {
+        this.provinceCode = provinceCode;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCityCode() {
+        return cityCode;
+    }
+
+    public void setCityCode(String cityCode) {
+        this.cityCode = cityCode;
+    }
+
+    public String getDistrict() {
+        return district;
+    }
+
+    public void setDistrict(String district) {
+        this.district = district;
+    }
+
+    public String getDistrictCode() {
+        return districtCode;
+    }
+
+    public void setDistrictCode(String districtCode) {
+        this.districtCode = districtCode;
+    }
+
+    public String getCoordinate() {
+        return coordinate;
+    }
+
+    public void setCoordinate(String coordinate) {
+        this.coordinate = coordinate;
+    }
+
+    @Override
+    public String toString() {
+        return "LocationWarpper{" +
+                "type=" + type +
+                ", province='" + province + '\'' +
+                ", provinceCode='" + provinceCode + '\'' +
+                ", city='" + city + '\'' +
+                ", cityCode='" + cityCode + '\'' +
+                ", district='" + district + '\'' +
+                ", districtCode='" + districtCode + '\'' +
+                ", coordinate='" + coordinate + '\'' +
+                '}';
+    }
+
+
+    public static List<LocationWarpper> getLocationWarppers(List<Map<String, Object>> list){
+        List<LocationWarpper> data = new ArrayList<>();
+        if(null != list){
+            for(Map<String, Object> map : list){
+                if(null != map){
+                    LocationWarpper locationWarpper = new LocationWarpper();
+                    locationWarpper.setType(null != map.get("type") ? Integer.valueOf(map.get("type").toString()) : 0);
+                    locationWarpper.setProvince(null != map.get("province") ? map.get("province").toString() : "");
+                    locationWarpper.setProvinceCode(null != map.get("provinceCode") ? map.get("provinceCode").toString() : "");
+                    locationWarpper.setCity(null != map.get("city") ? map.get("city").toString() : "");
+                    locationWarpper.setCityCode(null != map.get("cityCode") ? map.get("cityCode").toString() : "");
+                    locationWarpper.setDistrict(null != map.get("district") ? map.get("district").toString() : "");
+                    locationWarpper.setDistrictCode(null != map.get("districtCode") ? map.get("districtCode").toString() : "");
+                    locationWarpper.setCoordinate(null != map.get("coordinate") ? map.get("coordinate").toString() : "");
+                    data.add(locationWarpper);
+                }
+            }
+        }
+        return data;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityWarpper.java
new file mode 100644
index 0000000..d62b5c8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/OrderCrossCityWarpper.java
@@ -0,0 +1,235 @@
+package com.stylefeng.guns.modular.crossCity.warpper;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javafx.scene.chart.ValueAxis;
+
+import java.util.Date;
+
+@ApiModel("跨城订单")
+public class OrderCrossCityWarpper {
+    @ApiModelProperty(value = "服务车型id", required = true, dataType = "int")
+    private Integer serverCarModelId;
+    @ApiModelProperty(value = "司机预约排班id", required = true, dataType = "int")
+    private Integer lineShiftDriverId;
+    @ApiModelProperty(value = "司机id", required = true, dataType = "int")
+    private Integer driverId;
+    @ApiModelProperty(value = "线路id", required = true, dataType = "int")
+    private Integer lineId;
+    @ApiModelProperty(value = "车辆id", required = true, dataType = "int")
+    private Integer carId;
+    @ApiModelProperty(value = "下单地点经度", required = true, dataType = "double")
+    private Double placementLon;
+    @ApiModelProperty(value = "下单地点纬度", required = true, dataType = "double")
+    private Double placementLat;
+    @ApiModelProperty(value = "下单详细地址", required = true, dataType = "string")
+    private String placementAddress;
+    @ApiModelProperty(value = "起点经度", required = true, dataType = "double")
+    private Double startLon;
+    @ApiModelProperty(value = "起点纬度", required = true, dataType = "double")
+    private Double startLat;
+    @ApiModelProperty(value = "起点", required = true, dataType = "string")
+    private String startAddress;
+    @ApiModelProperty(value = "终点经度", required = true, dataType = "double")
+    private Double endLon;
+    @ApiModelProperty(value = "终点纬度", required = true, dataType = "double")
+    private Double endLat;
+    @ApiModelProperty(value = "终点详细地址", required = true, dataType = "string")
+    private String endAddress;
+    @ApiModelProperty(value = "出行时间(2020-09-04 12:00:00)", required = true, dataType = "string")
+    private Date travelTime;
+    @ApiModelProperty(value = "出行方式(1=拼车,2=包车)", required = true, dataType = "int")
+    private Integer travelMode;
+    @ApiModelProperty(value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)", required = true, dataType = "int")
+    private Integer orderSource;
+    @ApiModelProperty(value = "出行人数", required = true, dataType = "int")
+    private Integer peopleNumber;
+    @ApiModelProperty(value = "车辆总座位数", required = true, dataType = "int")
+    private Integer totalSeat;
+    @ApiModelProperty(value = "座位编号(1,3,4)", required = true, dataType = "string")
+    private String seatNumber;
+    @ApiModelProperty(value = "备注", required = false, dataType = "string")
+    private String remark;
+    @ApiModelProperty(value = "行驶里程数", required = true, dataType = "double")
+    private Double distance;
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public Integer getLineShiftDriverId() {
+        return lineShiftDriverId;
+    }
+
+    public void setLineShiftDriverId(Integer lineShiftDriverId) {
+        this.lineShiftDriverId = lineShiftDriverId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getLineId() {
+        return lineId;
+    }
+
+    public void setLineId(Integer lineId) {
+        this.lineId = lineId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public String getPlacementAddress() {
+        return placementAddress;
+    }
+
+    public void setPlacementAddress(String placementAddress) {
+        this.placementAddress = placementAddress;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public Integer getTravelMode() {
+        return travelMode;
+    }
+
+    public void setTravelMode(Integer travelMode) {
+        this.travelMode = travelMode;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+    public Integer getTotalSeat() {
+        return totalSeat;
+    }
+
+    public void setTotalSeat(Integer totalSeat) {
+        this.totalSeat = totalSeat;
+    }
+
+    public Integer getPeopleNumber() {
+        return peopleNumber;
+    }
+
+    public void setPeopleNumber(Integer peopleNumber) {
+        this.peopleNumber = peopleNumber;
+    }
+
+    public String getSeatNumber() {
+        return seatNumber;
+    }
+
+    public void setSeatNumber(String seatNumber) {
+        this.seatNumber = seatNumber;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Double getDistance() {
+        return distance;
+    }
+
+    public void setDistance(Double distance) {
+        this.distance = distance;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/SiteWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/SiteWarpper.java
new file mode 100644
index 0000000..8ff2ba5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/warpper/SiteWarpper.java
@@ -0,0 +1,43 @@
+package com.stylefeng.guns.modular.crossCity.warpper;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+@ApiModel("站点")
+public class SiteWarpper {
+    @ApiModelProperty("所属地区名称")
+    private String name;
+    @ApiModelProperty("所属地区编号")
+    private String code;
+    @ApiModelProperty("站点列表")
+    private List<Object> sites;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public List<Object> getSites() {
+        return sites;
+    }
+
+    public void setSites(List<Object> sites) {
+        this.sites = sites;
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
new file mode 100644
index 0000000..7efb1be
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/controller/OrderLogisticsController.java
@@ -0,0 +1,239 @@
+package com.stylefeng.guns.modular.smallLogistics.controller;
+
+
+import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
+import com.stylefeng.guns.modular.system.model.Region;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 小件物流控制器
+ */
+@Api
+@RestController
+@RequestMapping("")
+public class OrderLogisticsController {
+
+    @Autowired
+    private IOrderLogisticsService orderLogisticsService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+    /**
+     * 根据起点和终点坐标判断是不是同一个市内
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/base/orderLogistics/judgingTheCity")
+    @ApiOperation(value = "根据起点和终点坐标判断是不是同一个市内", tags = {"用户端-小件物流"}, notes = "只有在选择了同城小件物流的时候调用")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "起点经纬度(103.23265,30.2312)", name = "startLonLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "终点详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string")
+    })
+    public ResultUtil judgingTheCity(String startLonLat, String endAddress){
+        try {
+            return orderLogisticsService.judgingTheCity(startLonLat, endAddress);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/orderLogistics/queryLogisticsUnitPrice")
+    @ApiOperation(value = "获取小件物流的单价数据", tags = {"用户端-小件物流"}, notes = "ordinary(普通物品),precious(贵重物品),first=0(首次下单)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "业务类型(4=同城小件物流,5=跨城小件物流)", name = "type", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "起点经纬度(103.23265,30.2312)", name = "startLonLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "终点详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderLogisticsService.queryLogisticsUnitPrice(type, startLonLat, endAddress, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/base/orderLogistics/queryPayMoney")
+    @ApiOperation(value = "获取支付金额", tags = {"用户端-小件物流"}, notes = "ordinary(普通物品),precious(贵重物品)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "货物数量", name = "number", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "业务类型(4=同城小件物流,5=跨城小件物流)", name = "type", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "起点经纬度(103.23265,30.2312)", name = "startLonLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "终点详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string")
+    })
+    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endAddress){
+        try {
+            return orderLogisticsService.queryPayMoney(number, type, startLonLat, endAddress);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 小件物流下单操作
+     * @param type
+     * @param cargoType
+     * @param cargoNumber
+     * @param remark
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param recipient
+     * @param recipientPhone
+     * @param endAddress
+     * @param travelTime
+     * @param orderSource
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/orderLogistics/smallLogistics")
+    @ApiOperation(value = "小件物流下单操作(同城/跨城)", tags = {"用户端-小件物流"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "业务类型(4=同城小件物流,5=跨城小件物流)", name = "type", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "货物类型(1=普通货物,2=贵重货物)", name = "cargoType", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "货物数量", name = "cargoNumber", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "备注", name = "remark", required = false, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "下单点经度(103.23265,30.2312)", name = "placementLon", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "下单点纬度(103.23265,30.2312)", name = "placementLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "预约取货点经度(103.23265,30.2312)", name = "startLon", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "预约取货点纬度(103.23265,30.2312)", name = "startLat", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "预约取货点详细地址", name = "startAddress", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "收货人姓名", name = "recipient", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "收货人电话", name = "recipientPhone", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "收货详细地址", name = "endAddress", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "是否加急(1=否,2=是)", name = "urgent", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(value = "加急费用", name = "tipMoney", required = true, paramType = "query", dataType = "double"),
+            @ApiImplicitParam(value = "预约收货时间(2020-09-17 21:00:00)", name = "travelTime", required = true, paramType = "query", dataType = "string"),
+            @ApiImplicitParam(value = "下单方式(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)", name = "orderSource", required = true, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> smallLogistics(Integer type, Integer cargoType, Integer cargoNumber, String remark, String placementLon, String placementLat, String startLon, String startLat, String startAddress,
+                                     String recipient, String recipientPhone, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderLogisticsService.smallLogistics(type, cargoType, cargoNumber, remark, placementLon, placementLat, startLon, startLat, startAddress, recipient, recipientPhone, endAddress, urgent, tipMoney, travelTime, orderSource, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+    @ResponseBody
+    @PostMapping("/api/orderLogistics/queryLogisticsNumber")
+    @ApiOperation(value = "获取首页小件物流订单数量", tags = {"用户端-小件物流"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> queryLogisticsNumber(HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            int i = orderLogisticsService.queryLogisticsNumber(uid);
+            BaseWarpper baseWarppe = new BaseWarpper();
+            baseWarppe.setNumber(i);
+            return ResultUtil.success(baseWarppe);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    @ResponseBody
+    @PostMapping("/api/orderLogistics/payOrderLogisticsSpread")
+    @ApiOperation(value = "小件物流补差价支付", tags = {"用户端-小件物流"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "支付端(1=用户APP端,2=司机APP端,3=用户小程序端)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil payOrderLogisticsSpread(Integer orderId, Integer payType, Integer type, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderLogisticsService.payLogisticsOrder_(payType, orderId, type);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 获取行政区域数据(小程序)
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/orderLogistics/queryRegion")
+    public Map<String, Object> queryRegion(){
+        try {
+            Map<String, Object> map = orderLogisticsService.queryRegion();
+            return map;
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    @ResponseBody
+    @PostMapping("/base/orderLogistics/queryRegions")
+    @ApiOperation(value = "获取行政区域三级联动数据", tags = {"用户端-小件物流"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "上级id。第一层传0", name = "parentId", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil queryRegions(Integer parentId){
+        try {
+            List<Region> regions = orderLogisticsService.queryRegions(parentId);
+            return ResultUtil.success(regions);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsMapper.java
new file mode 100644
index 0000000..8cef2bb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsMapper.java
@@ -0,0 +1,61 @@
+package com.stylefeng.guns.modular.smallLogistics.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface OrderLogisticsMapper extends BaseMapper<OrderLogistics> {
+
+
+    List<OrderLogistics> query(@Param("start") Date start, @Param("end") Date end);
+
+
+    /**
+     * 获取个人待完成订单数量
+     * @param uid
+     * @return
+     */
+    int queryLogisticsNumber(@Param("uid") Integer uid);
+
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
+                                               @Param("size") Integer size);
+
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+
+
+    /**
+     * 获取用户单发票页面的订单列表
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime,
+                                                @Param("endTime") Date endTime, @Param("startMoney") Double startMoney,
+                                                @Param("endMoney") Double endMoney, @Param("uid") Integer uid,
+                                                @Param("orderType") Integer orderType);
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsSpreadMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsSpreadMapper.java
new file mode 100644
index 0000000..b5449e4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/OrderLogisticsSpreadMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.smallLogistics.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread;
+
+public interface OrderLogisticsSpreadMapper extends BaseMapper<OrderLogisticsSpread> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
new file mode 100644
index 0000000..0012180
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsMapper.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="userId" property="userId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="carId" property="carId"/>
+        <result column="orderNum" property="orderNum"/>
+        <result column="cargoType" property="cargoType"/>
+        <result column="urgent" property="urgent"/>
+        <result column="cargoNumber" property="cargoNumber"/>
+        <result column="remark" property="remark"/>
+        <result column="placementLon" property="placementLon"/>
+        <result column="placementLat" property="placementLat"/>
+        <result column="placementAddress" property="placementAddress"/>
+        <result column="startLon" property="startLon"/>
+        <result column="startLat" property="startLat"/>
+        <result column="startAddress" property="startAddress"/>
+        <result column="endLon" property="endLon"/>
+        <result column="endLat" property="endLat"/>
+        <result column="endAddress" property="endAddress"/>
+        <result column="recipient" property="recipient"/>
+        <result column="recipientPhone" property="recipientPhone"/>
+        <result column="boardingLon" property="boardingLon"/>
+        <result column="boardingLat" property="boardingLat"/>
+        <result column="boardingAddress" property="boardingAddress"/>
+        <result column="boardingTime" property="boardingTime"/>
+        <result column="getoffLon" property="getoffLon"/>
+        <result column="getoffLat" property="getoffLat"/>
+        <result column="getoffAddress" property="getoffAddress"/>
+        <result column="getoffTime" property="getoffTime"/>
+        <result column="mileage" property="mileage"/>
+        <result column="payManner" property="payManner"/>
+        <result column="payType" property="payType"/>
+        <result column="orderMoney" property="orderMoney"/>
+        <result column="travelMoney" property="travelMoney"/>
+        <result column="tipMoney" property="tipMoney"/>
+        <result column="redPacketMoney" property="redPacketMoney"/>
+        <result column="couponMoney" property="couponMoney"/>
+        <result column="redPacketId" property="redPacketId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="discount" property="discount"/>
+        <result column="discountMoney" property="discountMoney"/>
+        <result column="activityId" property="activityId"/>
+        <result column="companyId" property="companyId"/>
+        <result column="payMoney" property="payMoney"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="travelTime" property="travelTime"/>
+        <result column="snatchOrderTime" property="snatchOrderTime"/>
+        <result column="setOutTime" property="setOutTime"/>
+        <result column="arriveTime" property="arriveTime"/>
+        <result column="startServiceTime" property="startServiceTime"/>
+        <result column="endServiceTime" property="endServiceTime"/>
+        <result column="orderSource" property="orderSource"/>
+        <result column="invoiceId" property="invoiceId"/>
+        <result column="trackId" property="trackId"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="telX" property="telX"/>
+        <result column="bindId" property="bindId"/>
+        <result column="pickUpCode" property="pickUpCode"/>
+        <result column="isReassign" property="isReassign"/>
+        <result column="reassignNotice" property="reassignNotice"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="OrderLogistics">
+select
+id as id,
+        type as type,
+        userId as userId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        cargoType as cargoType,
+        cargoNumber as cargoNumber,
+        remark as remark,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        recipient as recipient,
+        recipientPhone as recipientPhone,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        travelMoney as travelMoney,
+        tipMoney as tipMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        trackId as trackId,
+        isDelete as isDelete,
+        telX as telX,
+        bindId as bindId
+        from t_order_logistics where isDelete = 1
+        <if test="null != start and null != end">
+            and insertTime between #{start} and #{end}
+        </if>
+    </select>
+
+
+
+    <select id="queryLogisticsNumber" resultType="int">
+        select
+        count(id)
+        from t_order_logistics where isDelete = 1 and state in (1, 2, 3, 4, 5, 7) and userId = #{uid}
+    </select>
+
+
+    <select id="queryMyOrderList" resultType="map">
+        select
+        id as orderId,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
+        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
+        endAddress as endAddress,
+        startAddress as startAddress,
+        CONCAT((if(cargoType = 1, '普通小件', '贵重物品')), 'X', cargoNumber) as cargoType,
+        driverId as driverId,
+        `type` as orderType,
+        state as state,
+        orderMoney as orderMoney,
+        payMoney as payMoney,
+        (select price from t_order_logistics_spread where orderLogisticsId = a.id) as differenceMoney
+        from t_order_logistics as a where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+    <select id="queryMyTravelRecord" resultType="map">
+        select
+        (payMoney * -1) as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        if(type = 4, '同城小件物流订单', '跨城小件物流') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_logistics where (payMoney != 0 or payMoney is not null) and userId = #{uid}  order by insertTime desc
+    </select>
+
+
+
+    <select id="queryInvoiceOrder" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        payMoney as payMoney,
+        if(type = 4, '同城小件物流订单', '跨城小件物流订单') as orderName,
+        if(invoiceId is null, 1, 2) as invoice,
+        unix_timestamp(insertTime) as insertTime,
+        `type` as orderType
+        from t_order_logistics where state in (9)
+        <if test="type == 1">
+            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
+        </if>
+        <if test="type == 2">
+            and invoiceId in (select id from t_invoice where state = 2)
+        </if>
+        <if test="null != startTime and null != endTime">
+            and travelTime between #{startTime} and #{endTime}
+        </if>
+        <if test="null != startMoney and null != endMoney">
+            and payMoney between #{startMoney} and #{endMoney}
+        </if>
+        <if test="null !=uid">
+            and userId = #{uid}
+        </if>
+        <if test="null != orderType">
+            and `type` = #{orderType}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsSpreadMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsSpreadMapper.xml
new file mode 100644
index 0000000..24e1ab5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/dao/mapping/OrderLogisticsSpreadMapper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsSpreadMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread">
+        <id column="id" property="id"/>
+        <result column="orderLogisticsId" property="orderLogisticsId"/>
+        <result column="price" property="price"/>
+        <result column="payType" property="payType"/>
+        <result column="payTime" property="payTime"/>
+        <result column="payMoney" property="payMoney"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java
new file mode 100644
index 0000000..268b926
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogistics.java
@@ -0,0 +1,878 @@
+package com.stylefeng.guns.modular.smallLogistics.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 小件物流订单
+ */
+@TableName("t_order_logistics")
+public class OrderLogistics {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单类型(4=同城物流,5=跨城物流)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 订单号
+     */
+    @TableField("orderNum")
+    private String orderNum;
+    /**
+     * 货物类型(1=普通货物,2=贵重货物)
+     */
+    @TableField("cargoType")
+    private Integer cargoType;
+    /**
+     * 是否加急(1=否,2=是)
+     */
+    @TableField("urgent")
+    private Integer urgent;
+    /**
+     * 货物数量
+     */
+    @TableField("cargoNumber")
+    private Integer cargoNumber;
+    /**
+     * 备注信息
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 下单地点经度
+     */
+    @TableField("placementLon")
+    private Double placementLon;
+    /**
+     * 下单地点纬度
+     */
+    @TableField("placementLat")
+    private Double placementLat;
+    /**
+     * 下单地点
+     */
+    @TableField("placementAddress")
+    private String placementAddress;
+    /**
+     * 起点经度
+     */
+    @TableField("startLon")
+    private Double startLon;
+    /**
+     * 起点纬度
+     */
+    @TableField("startLat")
+    private Double startLat;
+    /**
+     * 起点
+     */
+    @TableField("startAddress")
+    private String startAddress;
+    /**
+     * 目的地经度
+     */
+    @TableField("endLon")
+    private Double endLon;
+    /**
+     * 目的地纬度
+     */
+    @TableField("endLat")
+    private Double endLat;
+    /**
+     * 目的地
+     */
+    @TableField("endAddress")
+    private String endAddress;
+    /**
+     * 收件人姓名
+     */
+    @TableField("recipient")
+    private String recipient;
+    /**
+     * 收件人电话
+     */
+    @TableField("recipientPhone")
+    private String recipientPhone;
+    /**
+     * 上车点经度
+     */
+    @TableField("boardingLon")
+    private Double boardingLon;
+    /**
+     * 上车点纬度
+     */
+    @TableField("boardingLat")
+    private Double boardingLat;
+    /**
+     * 上车地点
+     */
+    @TableField("boardingAddress")
+    private String boardingAddress;
+    /**
+     * 上车时间
+     */
+    @TableField("boardingTime")
+    private Date boardingTime;
+    /**
+     * 下车点经度
+     */
+    @TableField("getoffLon")
+    private Double getoffLon;
+    /**
+     * 下车点纬度
+     */
+    @TableField("getoffLat")
+    private Double getoffLat;
+    /**
+     * 下车点
+     */
+    @TableField("getoffAddress")
+    private String getoffAddress;
+    /**
+     * 下车时间
+     */
+    @TableField("getoffTime")
+    private Date getoffTime;
+    /**
+     * 行驶里程数(米)
+     */
+    @TableField("mileage")
+    private Double mileage;
+    /**
+     * 支付方式(1=OK平台支付,2=其他方式支付)
+     */
+    @TableField("payManner")
+    private Integer payManner;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=余额)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 订单金额
+     */
+    @TableField("orderMoney")
+    private Double orderMoney;
+    /**
+     * 行程费
+     */
+    @TableField("travelMoney")
+    private Double travelMoney;
+    /**
+     * 小费
+     */
+    @TableField("tipMoney")
+    private Double tipMoney;
+    /**
+     * 红包抵扣金额
+     */
+    @TableField("redPacketMoney")
+    private Double redPacketMoney;
+    /**
+     * 优惠券抵扣金额
+     */
+    @TableField("couponMoney")
+    private Double couponMoney;
+    /**
+     * 红包id
+     */
+    @TableField("redPacketId")
+    private Integer redPacketId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 折扣
+     */
+    @TableField("discount")
+    private Double discount;
+    /**
+     * 折扣优惠金额
+     */
+    @TableField("discountMoney")
+    private Double discountMoney;
+    /**
+     * 折扣活动id
+     */
+    @TableField("activityId")
+    private Integer activityId;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    /**
+     * 状态(1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=已支付差价)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 下单时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 预约取货时间
+     */
+    @TableField("travelTime")
+    private Date travelTime;
+    /**
+     * 抢单时间
+     */
+    @TableField("snatchOrderTime")
+    private Date snatchOrderTime;
+    /**
+     * 司机点出发时间
+     */
+    @TableField("setOutTime")
+    private Date setOutTime;
+    /**
+     * 司机到达预约地点时间
+     */
+    @TableField("arriveTime")
+    private Date arriveTime;
+    /**
+     * 开始服务时间
+     */
+    @TableField("startServiceTime")
+    private Date startServiceTime;
+    /**
+     * 结束服务时间
+     */
+    @TableField("endServiceTime")
+    private Date endServiceTime;
+    /**
+     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)
+     */
+    @TableField("orderSource")
+    private Integer orderSource;
+    /**
+     * 发票id
+     */
+    @TableField("invoiceId")
+    private Integer invoiceId;
+    /**
+     * 高德猎鹰轨迹id
+     * @return
+     */
+    @TableField("trackId")
+    private String trackId;
+    /**
+     * 是否删除(1=否,2=是)
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 移动小号
+     * @return
+     */
+    @TableField("telX")
+    private String telX;
+    /**
+     * 绑定小号关系id
+     * @return
+     */
+    @TableField("bindId")
+    private String bindId;
+    /**
+     * 取件码
+     * @return
+     */
+    @TableField("pickUpCode")
+    private String pickUpCode;
+    /**
+     * 是否是改派单(1=否,=是)
+     * @return
+     */
+    @TableField("isReassign")
+    private Integer isReassign;
+    /**
+     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
+     */
+    @TableField("reassignNotice")
+    private Integer reassignNotice;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public String getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Integer getCargoType() {
+        return cargoType;
+    }
+
+    public void setCargoType(Integer cargoType) {
+        this.cargoType = cargoType;
+    }
+
+    public Integer getUrgent() {
+        return urgent;
+    }
+
+    public void setUrgent(Integer urgent) {
+        this.urgent = urgent;
+    }
+
+    public Integer getCargoNumber() {
+        return cargoNumber;
+    }
+
+    public void setCargoNumber(Integer cargoNumber) {
+        this.cargoNumber = cargoNumber;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public String getPlacementAddress() {
+        return placementAddress;
+    }
+
+    public void setPlacementAddress(String placementAddress) {
+        this.placementAddress = placementAddress;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public String getRecipient() {
+        return recipient;
+    }
+
+    public void setRecipient(String recipient) {
+        this.recipient = recipient;
+    }
+
+    public String getRecipientPhone() {
+        return recipientPhone;
+    }
+
+    public void setRecipientPhone(String recipientPhone) {
+        this.recipientPhone = recipientPhone;
+    }
+
+    public Double getBoardingLon() {
+        return boardingLon;
+    }
+
+    public void setBoardingLon(Double boardingLon) {
+        this.boardingLon = boardingLon;
+    }
+
+    public Double getBoardingLat() {
+        return boardingLat;
+    }
+
+    public void setBoardingLat(Double boardingLat) {
+        this.boardingLat = boardingLat;
+    }
+
+    public String getBoardingAddress() {
+        return boardingAddress;
+    }
+
+    public void setBoardingAddress(String boardingAddress) {
+        this.boardingAddress = boardingAddress;
+    }
+
+    public Date getBoardingTime() {
+        return boardingTime;
+    }
+
+    public void setBoardingTime(Date boardingTime) {
+        this.boardingTime = boardingTime;
+    }
+
+    public Double getGetoffLon() {
+        return getoffLon;
+    }
+
+    public void setGetoffLon(Double getoffLon) {
+        this.getoffLon = getoffLon;
+    }
+
+    public Double getGetoffLat() {
+        return getoffLat;
+    }
+
+    public void setGetoffLat(Double getoffLat) {
+        this.getoffLat = getoffLat;
+    }
+
+    public String getGetoffAddress() {
+        return getoffAddress;
+    }
+
+    public void setGetoffAddress(String getoffAddress) {
+        this.getoffAddress = getoffAddress;
+    }
+
+    public Date getGetoffTime() {
+        return getoffTime;
+    }
+
+    public void setGetoffTime(Date getoffTime) {
+        this.getoffTime = getoffTime;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getTravelMoney() {
+        return travelMoney;
+    }
+
+    public void setTravelMoney(Double travelMoney) {
+        this.travelMoney = travelMoney;
+    }
+
+    public Double getTipMoney() {
+        return tipMoney;
+    }
+
+    public void setTipMoney(Double tipMoney) {
+        this.tipMoney = tipMoney;
+    }
+
+    public Double getRedPacketMoney() {
+        return redPacketMoney;
+    }
+
+    public void setRedPacketMoney(Double redPacketMoney) {
+        this.redPacketMoney = redPacketMoney;
+    }
+
+    public Double getCouponMoney() {
+        return couponMoney;
+    }
+
+    public void setCouponMoney(Double couponMoney) {
+        this.couponMoney = couponMoney;
+    }
+
+    public Integer getRedPacketId() {
+        return redPacketId;
+    }
+
+    public void setRedPacketId(Integer redPacketId) {
+        this.redPacketId = redPacketId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public Date getSnatchOrderTime() {
+        return snatchOrderTime;
+    }
+
+    public void setSnatchOrderTime(Date snatchOrderTime) {
+        this.snatchOrderTime = snatchOrderTime;
+    }
+
+    public Date getSetOutTime() {
+        return setOutTime;
+    }
+
+    public void setSetOutTime(Date setOutTime) {
+        this.setOutTime = setOutTime;
+    }
+
+    public Date getArriveTime() {
+        return arriveTime;
+    }
+
+    public void setArriveTime(Date arriveTime) {
+        this.arriveTime = arriveTime;
+    }
+
+    public Date getStartServiceTime() {
+        return startServiceTime;
+    }
+
+    public void setStartServiceTime(Date startServiceTime) {
+        this.startServiceTime = startServiceTime;
+    }
+
+    public Date getEndServiceTime() {
+        return endServiceTime;
+    }
+
+    public void setEndServiceTime(Date endServiceTime) {
+        this.endServiceTime = endServiceTime;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+
+    public Integer getInvoiceId() {
+        return invoiceId;
+    }
+
+    public void setInvoiceId(Integer invoiceId) {
+        this.invoiceId = invoiceId;
+    }
+
+    public Integer getPayManner() {
+        return payManner;
+    }
+
+    public void setPayManner(Integer payManner) {
+        this.payManner = payManner;
+    }
+
+    public String getTrackId() {
+        return trackId;
+    }
+
+    public void setTrackId(String trackId) {
+        this.trackId = trackId;
+    }
+
+    public Double getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(Double discount) {
+        this.discount = discount;
+    }
+
+    public Double getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Double discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public String getTelX() {
+        return telX;
+    }
+
+    public void setTelX(String telX) {
+        this.telX = telX;
+    }
+
+    public String getBindId() {
+        return bindId;
+    }
+
+    public void setBindId(String bindId) {
+        this.bindId = bindId;
+    }
+
+    public String getPickUpCode() {
+        return pickUpCode;
+    }
+
+    public void setPickUpCode(String pickUpCode) {
+        this.pickUpCode = pickUpCode;
+    }
+
+    public Integer getIsReassign() {
+        return isReassign;
+    }
+
+    public void setIsReassign(Integer isReassign) {
+        this.isReassign = isReassign;
+    }
+
+    public Integer getReassignNotice() {
+        return reassignNotice;
+    }
+
+    public void setReassignNotice(Integer reassignNotice) {
+        this.reassignNotice = reassignNotice;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderLogistics{" +
+                "id=" + id +
+                ", type=" + type +
+                ", userId=" + userId +
+                ", driverId=" + driverId +
+                ", carId=" + carId +
+                ", orderNum='" + orderNum + '\'' +
+                ", cargoType=" + cargoType +
+                ", cargoNumber=" + cargoNumber +
+                ", remark=" + remark +
+                ", placementLon=" + placementLon +
+                ", placementLat=" + placementLat +
+                ", placementAddress='" + placementAddress + '\'' +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", recipient='" + recipient + '\'' +
+                ", recipientPhone='" + recipientPhone + '\'' +
+                ", boardingLon=" + boardingLon +
+                ", boardingLat=" + boardingLat +
+                ", boardingAddress='" + boardingAddress + '\'' +
+                ", boardingTime=" + boardingTime +
+                ", getoffLon=" + getoffLon +
+                ", getoffLat=" + getoffLat +
+                ", getoffAddress='" + getoffAddress + '\'' +
+                ", getoffTime=" + getoffTime +
+                ", mileage=" + mileage +
+                ", payManner=" + payManner +
+                ", payType=" + payType +
+                ", orderMoney=" + orderMoney +
+                ", travelMoney=" + travelMoney +
+                ", tipMoney=" + tipMoney +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", redPacketId=" + redPacketId +
+                ", couponId=" + couponId +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", activityId=" + activityId +
+                ", companyId=" + companyId +
+                ", payMoney=" + payMoney +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", travelTime=" + travelTime +
+                ", snatchOrderTime=" + snatchOrderTime +
+                ", setOutTime=" + setOutTime +
+                ", arriveTime=" + arriveTime +
+                ", startServiceTime=" + startServiceTime +
+                ", endServiceTime=" + endServiceTime +
+                ", orderSource=" + orderSource +
+                ", invoiceId=" + invoiceId +
+                ", trackId='" + trackId + '\'' +
+                ", isDelete=" + isDelete +
+                ", telX='" + telX + '\'' +
+                ", bindId='" + bindId + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogisticsSpread.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogisticsSpread.java
new file mode 100644
index 0000000..778c9d8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/model/OrderLogisticsSpread.java
@@ -0,0 +1,106 @@
+package com.stylefeng.guns.modular.smallLogistics.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 小件物流差价
+ */
+@TableName("t_order_logistics_spread")
+public class OrderLogisticsSpread {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 小件物流订单id
+     */
+    @TableField("orderLogisticsId")
+    private Integer orderLogisticsId;
+    /**
+     * 需要支付的差价金额
+     */
+    @TableField("price")
+    private Double price;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=其他)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付时间
+     */
+    @TableField("payTime")
+    private Date payTime;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderLogisticsId() {
+        return orderLogisticsId;
+    }
+
+    public void setOrderLogisticsId(Integer orderLogisticsId) {
+        this.orderLogisticsId = orderLogisticsId;
+    }
+
+    public Double getPrice() {
+        return price;
+    }
+
+    public void setPrice(Double price) {
+        this.price = price;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Date getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(Date payTime) {
+        this.payTime = payTime;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderLogisticsSpread{" +
+                "id=" + id +
+                ", orderLogisticsId=" + orderLogisticsId +
+                ", price=" + price +
+                ", payType=" + payType +
+                ", payTime=" + payTime +
+                ", payMoney=" + payMoney +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
new file mode 100644
index 0000000..f5bd5e9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsService.java
@@ -0,0 +1,198 @@
+package com.stylefeng.guns.modular.smallLogistics.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
+import com.stylefeng.guns.modular.system.model.Region;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderLogisticsService extends IService<OrderLogistics> {
+
+
+    /**
+     * 根据起点和终点坐标判断是不是同一个市内
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     */
+    ResultUtil judgingTheCity(String startLonLat, String endAddress) throws Exception;
+
+
+    /**
+     * 获取小件物流的单价数据
+     * @param type
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     * @throws Exception
+     */
+    ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, Integer uid) throws Exception;
+
+
+    /**
+     * 获取支付金额
+     * @param type
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     * @throws Exception
+     */
+    ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endAddress) throws Exception;
+
+
+    /**
+     * 小件物流下单操作
+     * @param type
+     * @param cargoType
+     * @param cargoNumber
+     * @param remark
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param recipient
+     * @param recipientPhone
+     * @param endAddress
+     * @param travelTime
+     * @param orderSource
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil smallLogistics(Integer type, Integer cargoType, Integer cargoNumber, String remark, String placementLon, String placementLat, String startLon, String startLat, String startAddress,
+                   String recipient, String recipientPhone, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer uid) throws Exception;
+
+
+
+
+    /**
+     * 订单完成支付订单操作
+     * @param payType
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil payLogisticsOrder(Integer payType, Integer orderId, Integer type)throws Exception;
+
+
+    /**
+     * 订单补差价支付操作
+     * @param payType
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil payLogisticsOrder_(Integer payType, Integer orderId, Integer type)throws Exception;
+
+
+
+    /**
+     * 支付完成后的订单处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payOrderLogisticsCallback(Integer id, String order_id, Integer type) throws Exception;
+
+
+
+    /**
+     * 差价支付完成后的回调处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payOrderLogisticsSpreadCallback(Integer id, String order_id, Integer type) throws Exception;
+
+
+
+    /**
+     * 获取首页订单数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    int queryLogisticsNumber(Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(Integer uid);
+
+
+
+    /**
+     * 获取用户端发票页面中的订单列表数据
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+                                                Double endMoney, Integer uid, Integer orderType) throws Exception;
+
+
+
+    /**
+     * 添加取消
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception;
+
+
+    /**
+     * 获取行政区域数据
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryRegion() throws Exception;
+
+
+    /**
+     * 获取行政区域联动数据
+     * @param parentId
+     * @return
+     * @throws Exception
+     */
+    List<Region> queryRegions(Integer parentId) throws Exception;
+
+
+    /**
+     * 获取用户余额和可用优惠券数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsSpreadService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsSpreadService.java
new file mode 100644
index 0000000..5bdd957
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/IOrderLogisticsSpreadService.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.smallLogistics.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread;
+
+public interface IOrderLogisticsSpreadService extends IService<OrderLogisticsSpread> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
new file mode 100644
index 0000000..d99d38d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsServiceImpl.java
@@ -0,0 +1,876 @@
+package com.stylefeng.guns.modular.smallLogistics.server.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsMapper;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread;
+import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
+import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsSpreadService;
+import com.stylefeng.guns.modular.system.dao.RegionMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.dao.SysIntegralMapper;
+import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
+@Service
+public class OrderLogisticsServiceImpl extends ServiceImpl<OrderLogisticsMapper, OrderLogistics> implements IOrderLogisticsService {
+
+    @Resource
+    private SystemPriceMapper systemPriceMapper;
+
+    @Resource
+    private OrderLogisticsMapper orderLogisticsMapper;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private IPushOrderService pushOrderService;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private PushUtil pushUtil;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Resource
+    private SysIntegralMapper sysIntegralMapper;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private ICompanyService companyService;
+
+    @Autowired
+    private IIncomeService incomeService;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private IOrderLogisticsSpreadService orderLogisticsSpreadService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Resource
+    private RegionMapper regionMapper;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+    private static List<Integer> orderIds = new ArrayList<>();
+
+
+
+    /**
+     * 根据起点和终点坐标判断是不是同一个市内
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     */
+    @Override
+    public ResultUtil judgingTheCity(String startLonLat, String endAddress) throws Exception {
+        Map<String, String> sgeocode = gdMapGeocodingUtil.geocode(startLonLat.split(",")[0], startLonLat.split(",")[1]);
+        String scityCode = sgeocode.get("cityCode");
+        Map<String, Object> geocoding = gdMapGeocodingUtil.geocoding(endAddress);
+        if(Integer.valueOf(geocoding.get("status").toString()) != 0){
+            return ResultUtil.error("收货地址有误,无法查询具体地址信息");
+        }
+        List<String> list = (List<String>)geocoding.get("data");
+        Map<String, String> egeocode = gdMapGeocodingUtil.geocode(list.get(0).split(",")[0], list.get(0).split(",")[1]);
+        String ecityCode = egeocode.get("cityCode");
+        if(!scityCode.equals(ecityCode)){
+            return ResultUtil.error("已超出服务范围,请重新选择跨城小件物流");
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取小件物流的单价
+     * @param type
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil queryLogisticsUnitPrice(Integer type, String startLonLat, String endAddress, Integer uid) throws Exception {
+        Company query = companyCityService.query(startLonLat.split(",")[0], startLonLat.split(",")[1]);
+        if(null == query){
+            return ResultUtil.error("预约取货点暂无企业服务");
+        }
+        Double price1 = 0D;
+        Double price2 = 0D;
+        if(type == 4){//同城
+            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
+            if(null == query1){
+                return ResultUtil.error("请先完善价格设定");
+            }
+            String content = String.valueOf(query1.get("content"));
+            JSONObject jsonObject = JSON.parseObject(content);
+            price1 = jsonObject.getDouble("num2");
+            price2 = jsonObject.getDouble("num13");
+        }else{
+            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
+            if(null == query1){
+                return ResultUtil.error("请先完善价格设定");
+            }
+            String content = String.valueOf(query1.get("content"));
+            JSONObject jsonObject = JSON.parseObject(content);
+            price1 = jsonObject.getDouble("num1");
+            price2 = jsonObject.getDouble("num2");
+        }
+        int i = this.selectCount(new EntityWrapper<OrderLogistics>().eq("userId", uid).eq("isDelete", 1));
+        Map<String, Object> map = new HashMap<>();
+        map.put("ordinary", price1);
+        map.put("precious", price2);
+        map.put("first", i);
+        return ResultUtil.success(map);
+    }
+
+
+    /**
+     * 获取支付金额
+     * @param type
+     * @param startLonLat
+     * @param endAddress
+     * @return
+     * @throws Exception
+     */
+    public ResultUtil queryPayMoney(Integer number, Integer type, String startLonLat, String endAddress) throws Exception{
+        Map<String, Object> geocoding = gdMapGeocodingUtil.geocoding(endAddress);
+        if(Integer.valueOf(geocoding.get("status").toString()) != 0){
+            return ResultUtil.error("收货地址有误,无法查询具体地址信息");
+        }
+        String location = ((List<String>)geocoding.get("data")).get(0);
+        ResultUtil<Map<String, Double>> price = this.getPrice(type, startLonLat.split(",")[0], startLonLat.split(",")[1], location.split(",")[0], location.split(",")[1]);
+        if(price.getCode() == 200 && type == 5){
+            Map<String, Double> data = price.getData();
+            data.put("ordinary", data.get("ordinary") * number);
+            data.put("precious", data.get("precious") * number);
+        }
+        return price;
+    }
+
+
+
+
+    /**
+     * 小件物流下单操作
+     * @param type
+     * @param cargoType
+     * @param cargoNumber
+     * @param remark
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param recipient
+     * @param recipientPhone
+     * @param endAddress
+     * @param travelTime
+     * @param orderSource
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil smallLogistics(Integer type, Integer cargoType, Integer cargoNumber, String remark, String placementLon, String placementLat, String startLon, String startLat, String startAddress, String recipient,
+                                     String recipientPhone, String endAddress, Integer urgent, Double tipMoney, Date travelTime, Integer orderSource, Integer uid) throws Exception {
+        startAddress = startAddress.replaceAll("& #40;", "(");
+        startAddress = startAddress.replaceAll("& #41;", ")");
+        endAddress = endAddress.replaceAll("& #40;", "(");
+        endAddress = endAddress.replaceAll("& #41;", ")");
+        OrderLogistics orderLogistics = new OrderLogistics();
+        Company query = companyCityService.query(placementLon, placementLat);
+        if(null == query){
+            return ResultUtil.error("该地点暂无企业服务");
+        }
+        orderLogistics.setCompanyId(query.getId());
+        orderLogistics.setType(type);
+        orderLogistics.setUserId(uid);
+        orderLogistics.setOrderNum(this.getOrderNum());
+        orderLogistics.setCargoType(cargoType);
+        orderLogistics.setCargoNumber(cargoNumber);
+        orderLogistics.setRemark(remark);
+        orderLogistics.setPlacementLon(Double.valueOf(placementLon));
+        orderLogistics.setPlacementLat(Double.valueOf(placementLat));
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(placementLon, placementLat);
+        orderLogistics.setPlacementAddress(geocode.get("address"));
+        orderLogistics.setStartLon(Double.valueOf(startLon));
+        orderLogistics.setStartLat(Double.valueOf(startLat));
+        orderLogistics.setStartAddress(startAddress);
+        Map<String, Object> geocoding = gdMapGeocodingUtil.geocoding(endAddress);
+        if(Integer.valueOf(geocoding.get("status").toString()) != 0){
+            return ResultUtil.error("收货地址有误,无法查询具体地址信息");
+        }
+        if(((List<String>)geocoding.get("data")).size() == 0){
+            return ResultUtil.error("无法查询具体地址信息");
+        }
+        String location = ((List<String>)geocoding.get("data")).get(0);
+        orderLogistics.setEndLon(Double.valueOf(location.split(",")[0]));
+        orderLogistics.setEndLat(Double.valueOf(location.split(",")[1]));
+        orderLogistics.setEndAddress(endAddress);
+        orderLogistics.setUrgent(urgent);
+        orderLogistics.setRecipient(recipient);
+        orderLogistics.setRecipientPhone(recipientPhone);
+        orderLogistics.setMileage(0D);
+        orderLogistics.setIsReassign(1);
+        orderLogistics.setReassignNotice(0);
+        ResultUtil<Map<String, Double>> price = this.getPrice(type, String.valueOf(startLon), String.valueOf(startLat), location.split(",")[0], location.split(",")[1]);
+        if(price.getCode() != 200){
+            return price;
+        }
+        Map<String, Double> data = price.getData();
+        orderLogistics.setOrderMoney((cargoType == 1 ? data.get("ordinary") : data.get("precious")) + tipMoney);
+        orderLogistics.setTravelMoney(cargoType == 1 ? data.get("ordinary") : data.get("precious"));
+        if(type == 5){
+            orderLogistics.setOrderMoney(((cargoType == 1 ? data.get("ordinary") : data.get("precious")) * cargoNumber) + tipMoney);
+            orderLogistics.setTravelMoney((cargoType == 1 ? data.get("ordinary") : data.get("precious")) * cargoNumber);
+        }
+        orderLogistics.setTipMoney(tipMoney);
+        orderLogistics.setState(7);//待支付
+        orderLogistics.setInsertTime(new Date());
+        orderLogistics.setTravelTime(travelTime);
+        orderLogistics.setOrderSource(orderSource);
+        orderLogistics.setIsDelete(1);
+        this.insert(orderLogistics);
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您的"+ (type == 4 ? "同城" : "跨城") + "小件物流订单已下单成功,我们正在为您指派司机,请稍后!", orderLogistics.getUserId(), 1);
+
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(orderLogistics.getId());
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 获取价格
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    public ResultUtil<Map<String, Double>> getPrice(Integer type, String startLon, String startLat, String endLon, String endLat) throws Exception{
+        Company query = companyCityService.query(startLon, startLat);
+        if(null == query){
+            return ResultUtil.error("预约取货点暂无企业服务");
+        }
+        Double price1 = 0D;
+        Double price2 = 0D;
+        if(type == 4){//同城
+            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
+            Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLon + "," + startLat, endLon + "," + endLat, 1);
+            String content = String.valueOf(query1.get("content"));
+            JSONObject jsonObject = JSON.parseObject(content);
+            String distance1 = distance.get("distance");
+            Double dist = Double.valueOf(distance1) / 1000;
+            if(dist.compareTo(0D) >= 0 && dist.compareTo(jsonObject.getDouble("num1")) < 0){
+                price1 = jsonObject.getDouble("num2");
+            }
+            if(dist.compareTo(0D) >= 0 && dist.compareTo(jsonObject.getDouble("num12")) < 0){
+                price2 = jsonObject.getDouble("num13");
+            }
+
+            if(dist.compareTo(jsonObject.getDouble("num3")) >= 0 && dist.compareTo(jsonObject.getDouble("num4")) < 0){
+                price1 = jsonObject.getDouble("num5");
+            }
+            if(dist.compareTo(jsonObject.getDouble("num14")) >= 0 && dist.compareTo(jsonObject.getDouble("num15")) < 0){
+                price2 = jsonObject.getDouble("num16");
+            }
+
+            if(dist.compareTo(jsonObject.getDouble("num6")) >= 0 && dist.compareTo(jsonObject.getDouble("num7")) < 0){
+                price1 = jsonObject.getDouble("num8");
+            }
+            if(dist.compareTo(jsonObject.getDouble("num17")) >= 0 && dist.compareTo(jsonObject.getDouble("num18")) < 0){
+                price2 = jsonObject.getDouble("num19");
+            }
+
+            if(dist.compareTo(jsonObject.getDouble("num9")) >= 0 && dist.compareTo(jsonObject.getDouble("num10")) < 0){
+                price1 = jsonObject.getDouble("num11");
+            }
+            if(dist.compareTo(jsonObject.getDouble("num20")) >= 0 && dist.compareTo(jsonObject.getDouble("num21")) < 0){
+                price2 = jsonObject.getDouble("num22");
+            }
+        }else{
+            Map<String, Object> query1 = systemPriceMapper.query(query.getId(), type, null);
+            String content = String.valueOf(query1.get("content"));
+            JSONObject jsonObject = JSON.parseObject(content);
+            price1 = jsonObject.getDouble("num1");
+            price2 = jsonObject.getDouble("num2");
+        }
+        Map<String, Double> map = new HashMap<>();
+        map.put("ordinary", price1);//普通
+        map.put("precious", price2);//贵重
+        return ResultUtil.success(map);
+    }
+
+
+
+    /**
+     * 推送抢单数据
+     * @param orderLogistics
+     * @throws Exception
+     */
+    public void pushOrder(OrderLogistics orderLogistics) throws Exception{
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    orderIds.add(orderLogistics.getId());//添加记录,防止调用接口重复提醒无人接单
+                    String vehicle = redisUtil.getValue("VEHICLE");
+                    List<Integer> integers = new ArrayList<>();
+                    if(ToolUtil.isNotEmpty(vehicle)){
+                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+                    }
+                    Company query = companyCityService.query(String.valueOf(orderLogistics.getStartLon()), String.valueOf(orderLogistics.getStartLat()));//获取起点所属分公司
+                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//用专车的推单配置
+                    for(int i = 1; i <= querys.size(); i++){
+                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
+                        //获取空闲司机
+                        List<Driver> list = driverService.queryIdleDriver(orderLogistics.getType(), null, orderLogistics.getStartLon(), orderLogistics.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                        if(list.size() > 0){
+                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                            for(Driver driver : list){//开始进行推送
+                                boolean bo = false;
+                                for(Integer integer : integers){
+                                    if(integer.compareTo(driver.getId()) == 0){
+                                        bo = true;
+                                        break;
+                                    }
+                                }
+                                if(bo){
+                                    continue;
+                                }
+                                pushUtil.pushOrderState(2, driver.getId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), pushOrder.getPushTime());
+                            }
+                        }
+                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+                        Integer state = orderLogisticsMapper.selectById(orderLogistics.getId()).getState();
+                        if(state > 1){
+                            break;
+                        }
+                        if(i == querys.size() && state == 1){
+//                            pushUtil.pushEndPush(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType());
+                            orderIds.remove(orderLogistics.getId());
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).start();
+    }
+
+
+
+
+    /**
+     * 订单支付
+     * @param payType
+     * @param orderId
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil payLogisticsOrder(Integer payType, Integer orderId, Integer type) throws Exception {
+        OrderLogistics orderLogistics = this.selectById(orderId);
+        if(orderLogistics.getState() != 7){
+            return ResultUtil.error("订单已完成支付,不允许重复支付");
+        }
+        Integer uid = orderLogistics.getUserId();
+        Double orderMoney = orderLogistics.getOrderMoney();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String out_trade_no = sdf.format(new Date()) + orderLogistics.getType() + orderLogistics.getId();
+
+        if(payType == 1){//微信支付
+            String appletsOpenId = "";
+            String tradeType = "APP";
+            if(type == 3){
+                appletsOpenId = userInfo.getAppletsOpenId();
+                tradeType = "JSAPI";
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("支付异常,请重新授权登录小程序");
+                }
+            }
+            resultUtil = payMoneyUtil.weixinpay("完成订单", "", out_trade_no, orderMoney.toString(), callbackPath + "/base/wxPayOrderTaxi", tradeType, appletsOpenId);
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 1, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 2){//支付宝支付
+            resultUtil = payMoneyUtil.alipay("订单完成支付", "支付订单", out_trade_no, orderMoney.toString(), callbackPath + "/base/aliPayOrderTaxi");
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 2, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 3){//余额支付
+            if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
+                return ResultUtil.error("余额不足,无法完成支付");
+            }
+
+            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+
+            SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
+
+            //添加交易明细
+            transactionDetailsService.saveData(uid, "小件物流下单支付", orderMoney, 2, 1, 1, 4, orderId);
+            userInfoService.updateById(userInfo);
+
+            orderLogistics.setState(1);//小件物流先支付后司机抢单
+            orderLogistics.setPayType(3);
+            orderLogistics.setPayMoney(orderMoney);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                }
+            }).start();
+
+            systemNoticeService.addSystemNotice(1, "您已使用余额成功完成小件物流订单支付,谢谢使用!", uid, 1);
+
+            this.pushOrder(orderLogistics);//推单
+        }
+
+        this.updateById(orderLogistics);
+        return resultUtil;
+    }
+
+
+
+
+    /**
+     * 补差价支付
+     * @param payType
+     * @param orderId
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil payLogisticsOrder_(Integer payType, Integer orderId, Integer type) throws Exception {
+        OrderLogistics orderLogistics = this.selectById(orderId);
+        Integer uid = orderLogistics.getUserId();
+        OrderLogisticsSpread orderLogisticsSpread = orderLogisticsSpreadService.selectOne(new EntityWrapper<OrderLogisticsSpread>().eq("orderLogisticsId", orderId));
+        Double orderMoney = orderLogisticsSpread.getPrice();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String out_trade_no = sdf.format(new Date()) + orderLogistics.getType() + orderId;
+
+        if(payType == 1){//微信支付
+            String appletsOpenId = "";
+            String tradeType = "APP";
+            if(type == 3){
+                appletsOpenId = userInfo.getAppletsOpenId();
+                tradeType = "JSAPI";
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("支付异常,请重新授权登录小程序");
+                }
+            }
+            resultUtil = payMoneyUtil.weixinpay("小件物流补差价", "", out_trade_no,  orderMoney.toString(), callbackPath + "/base/wxPayOrderLogisticsSpread", tradeType, appletsOpenId);
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 1, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 2){//支付宝支付
+            resultUtil = payMoneyUtil.alipay("小件物流补差价", "支付差价", out_trade_no, orderMoney.toString(), callbackPath + "/base/aliPayOrderLogisticsSpread");
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderLogistics.getUserId(), 1, orderId, orderLogistics.getType(), 2, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 3){//余额支付
+            if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
+                return ResultUtil.error("余额不足,无法完成支付");
+            }
+
+            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+
+            SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
+
+            //添加交易明细
+            transactionDetailsService.saveData(uid, "小件物流补差价", orderMoney, 2, 1, 1, 4, orderId);
+            userInfoService.updateById(userInfo);
+
+            orderLogistics.setState(12);//已支付差价
+            this.updateById(orderLogistics);
+
+            orderLogistics.setOrderMoney(orderLogistics.getOrderMoney() + orderMoney);
+            orderLogistics.setTravelMoney(orderLogistics.getTravelMoney() + orderMoney);
+            orderLogistics.setPayMoney(orderLogistics.getPayMoney() + orderMoney);
+
+            orderLogisticsSpread.setPayMoney(orderMoney);
+            orderLogisticsSpread.setPayTime(new Date());
+            orderLogisticsSpread.setPayType(3);
+            orderLogisticsSpreadService.updateById(orderLogisticsSpread);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                    pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                }
+            }).start();
+
+            systemNoticeService.addSystemNotice(1, "您已使用余额成功完成小件物流订单差价支付,谢谢使用!", uid, 1);
+        }
+
+        this.updateById(orderLogistics);
+        return resultUtil;
+    }
+
+
+
+    @Override
+    public void payOrderLogisticsCallback(Integer id, String order_id, Integer type) throws Exception {
+        OrderLogistics orderLogistics = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, Integer.valueOf(id), orderLogistics.getType(), type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderLogistics.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, orderLogistics.getType(), query.getOrderId());
+            orderLogistics.setState(1);//先支付后抢单
+            orderLogistics.setPayType(type);
+            orderLogistics.setPayMoney(query.getAmount());
+            this.updateById(orderLogistics);
+
+            UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId());
+            SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+            userInfoService.updateById(userInfo);
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                }
+            }).start();
+
+
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成小件物流订单支付,谢谢使用!", orderLogistics.getUserId(), 1);
+
+            this.pushOrder(orderLogistics);//推单
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+
+
+    @Override
+    public void payOrderLogisticsSpreadCallback(Integer id, String order_id, Integer type) throws Exception {
+        OrderLogistics orderLogistics = this.selectById(id);
+        OrderLogisticsSpread orderLogisticsSpread = orderLogisticsSpreadService.selectOne(new EntityWrapper<OrderLogisticsSpread>().eq("orderLogisticsId", id));
+        PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, Integer.valueOf(id), orderLogistics.getType(), type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流补差价", query.getAmount(), 2, 1, 1, 4, query.getOrderId());
+            orderLogistics.setState(4);//待取货
+
+            orderLogistics.setOrderMoney(orderLogistics.getOrderMoney() + query.getAmount());
+            orderLogistics.setTravelMoney(orderLogistics.getTravelMoney() + query.getAmount());
+            orderLogistics.setPayMoney(orderLogistics.getPayMoney() + query.getAmount());
+
+            orderLogisticsSpread.setPayMoney(query.getAmount());
+            orderLogisticsSpread.setPayTime(new Date());
+            orderLogisticsSpread.setPayType(3);
+            orderLogisticsSpreadService.updateById(orderLogisticsSpread);
+
+            UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId());
+            SysIntegral query1 = sysIntegralMapper.query(orderLogistics.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+            userInfoService.updateById(userInfo);
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderLogistics.getUserId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                    pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                }
+            }).start();
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成小件物流订单差价支付,谢谢使用!", orderLogistics.getUserId(), 1);
+            this.updateById(orderLogistics);
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+
+
+
+
+    /**
+     * 获取首页订单数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public int queryLogisticsNumber(Integer uid) throws Exception {
+        return orderLogisticsMapper.queryLogisticsNumber(uid);
+    }
+
+
+    /**
+     * 获取个人中心订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        List<Map<String, Object>> maps = orderLogisticsMapper.queryMyOrderList(uid, pageNum, size);
+        return maps;
+    }
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) {
+        return orderLogisticsMapper.queryMyTravelRecord(uid);
+    }
+
+
+    @Override
+    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid, Integer orderType) throws Exception {
+        startTime = dateUtil.getStartOrEndDate(startTime, "start");
+        endTime = dateUtil.getStartOrEndDate(endTime, "end");
+        return orderLogisticsMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid, orderType);
+    }
+
+
+
+    @Override
+    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(remark)){
+            if(ToolUtil.isNotEmpty(remark)){
+                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+                for(SensitiveWords s : sensitiveWords){
+                    remark = remark.replaceAll(s.getContent(), "***");
+                }
+            }
+        }
+
+        OrderLogistics orderLogistics = this.selectById(id);
+        if(null == uid){
+            uid = orderLogistics.getUserId();
+        }
+        Integer integer = null;
+        if(null == orderLogistics){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderLogistics.getState() > 5 && orderLogistics.getState() != 7 && orderLogistics.getState() != 8  && orderLogistics.getState() != 11){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+
+        if(orderLogistics.getState() == 7){
+            integer = orderCancelService.saveData(orderLogistics.getId(), orderLogistics.getType(), reason, remark, null, null, 2, 1, orderLogistics.getUserId());
+            orderLogistics.setState(10);
+            this.updateById(orderLogistics);
+            //添加消息
+            systemNoticeService.addSystemNotice(1, "您已成功取消小件物流订单,谢谢使用!", orderLogistics.getUserId(), 1);
+            Map<String, Object> map = new HashMap<>();
+            map.put("id", integer);
+            return ResultUtil.success(map);
+        }
+
+        //回退支付金额
+        if(null != orderLogistics.getPayType() && null != orderLogistics.getPayMoney()) {//已支付
+            if(orderLogistics.getPayType() == 3){//余额支付
+                UserInfo userInfo = userInfoService.selectById(orderLogistics.getUserId());
+                userInfo.setBalance(userInfo.getBalance() + orderLogistics.getPayMoney());
+                userInfoService.updateById(userInfo);
+                //添加交易明细
+                transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", orderLogistics.getPayMoney(), 1, 1, 1, orderLogistics.getType(), orderLogistics.getId());
+            }else{
+                //调用回退接口
+                PaymentRecord query = paymentRecordService.query(1, orderLogistics.getUserId(), 1, orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getPayType(), 2);
+                if(null == query){
+                    return ResultUtil.error("订单还未进行支付");
+                }
+
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+                String out_trade_no = sdf.format(new Date()) + orderLogistics.getType() + query.getId();
+
+                if(query.getPayType() == 1){//微信
+                    Map<String, String> map = payMoneyUtil.wxRefund(query.getCode(), out_trade_no, query.getAmount().toString(), query.getAmount().toString(), callbackPath + "/base/wxRefundCallback");
+                    String return_code = map.get("return_code");
+                    if(!"SUCCESS".equals(return_code)){
+                        return ResultUtil.error(map.get("return_msg"));
+                    }
+                }
+                if(query.getPayType() == 2){//支付宝
+                    Map<String, String> map = payMoneyUtil.aliRefund(query.getCode(), query.getAmount().toString());
+                    String code = map.get("code");
+                    if(!"10000".equals(code)){
+                        return ResultUtil.error(map.get("msg"));
+                    }
+                    query.setRefundState(2);
+                    query.setRefundCode(map.get("trade_no"));
+                    paymentRecordService.updateById(query);
+                    //添加交易明细
+                    transactionDetailsService.saveData(orderLogistics.getUserId(), "小件物流取消退款", orderLogistics.getPayMoney(), 1, 1, 1, orderLogistics.getType(), orderLogistics.getId());
+                }
+            }
+
+
+            integer = orderCancelService.saveData(orderLogistics.getId(), orderLogistics.getType(), reason, remark, null, null, 2, 1, orderLogistics.getUserId());
+            orderLogistics.setState(10);
+            this.updateById(orderLogistics);
+        }
+
+        if(null != orderLogistics.getDriverId()){
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(2, orderLogistics.getDriverId(), orderLogistics.getId(), orderLogistics.getType(), orderLogistics.getState(), 0);
+                }
+            }).start();
+        }
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您已成功取消小件物流订单,谢谢使用!", orderLogistics.getUserId(), 1);
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", integer);
+        return ResultUtil.success(map);
+    }
+
+
+    /**
+     * 获取行政区域数据
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryRegion() throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        List<Region> querys = regionMapper.querys(0);
+        Map<Integer, String> map1 = new HashMap<>();
+        Map<Integer, String> map2 = new HashMap<>();
+        Map<Integer, String> map3 = new HashMap<>();
+        for(Region region : querys){
+            map1.put(Integer.valueOf(region.getCode()), region.getName());
+
+            List<Region> querys1 = regionMapper.querys(region.getId());
+            for(Region region1 : querys1){
+                map2.put(Integer.valueOf(region1.getCode()), region1.getName());
+
+                List<Region> querys2 = regionMapper.querys(region1.getId());
+                for(Region region2 : querys2) {
+                    map3.put(Integer.valueOf(region2.getCode()), region2.getName());
+                }
+            }
+        }
+        map.put("province_list", map1);
+        map.put("city_list", map2);
+        map.put("county_list", map3);
+        return map;
+    }
+
+
+    /**
+     * 获取行政区域
+     * @param parentId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Region> queryRegions(Integer parentId) throws Exception {
+        return regionMapper.querys(parentId);
+    }
+
+    @Override
+    public Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        map.put("balance", userInfo.getBalance());
+        map.put("coupon", 0);
+        return map;
+    }
+
+
+
+    public synchronized String getOrderNum() throws Exception{
+        int size = this.selectCount(null);
+        return "LOGISTICS" + String.valueOf(1000000 + size + 1).substring(1);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsSpreadService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsSpreadService.java
new file mode 100644
index 0000000..2502f85
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/smallLogistics/server/impl/OrderLogisticsSpreadService.java
@@ -0,0 +1,12 @@
+package com.stylefeng.guns.modular.smallLogistics.server.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.smallLogistics.dao.OrderLogisticsSpreadMapper;
+import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread;
+import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsSpreadService;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class OrderLogisticsSpreadService extends ServiceImpl<OrderLogisticsSpreadMapper, OrderLogisticsSpread> implements IOrderLogisticsSpreadService {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/controller/OrderPrivateCarController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/controller/OrderPrivateCarController.java
new file mode 100644
index 0000000..6d51724
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/controller/OrderPrivateCarController.java
@@ -0,0 +1,95 @@
+package com.stylefeng.guns.modular.specialTrain.controller;
+
+
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.sun.org.apache.regexp.internal.RE;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+
+@Api
+@RestController
+@RequestMapping("")
+public class OrderPrivateCarController {
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+    /**
+     * 专车下单
+     * @param serverCarModelId
+     * @param travelTime
+     * @param orderType
+     * @param substitute
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @param endLon
+     * @param endLat
+     * @param endAddress
+     * @param passengers
+     * @param passengersPhone
+     * @param orderSource
+     * @param driverId
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/orderPrivateCar/saveOrderPrivateCar")
+    @ApiOperation(value = "专车下单/扫码下单", tags = {"用户端-专车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单类型(1=普通订单,2=摆渡订单)", name = "type", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "服务车型id(扫码下单不用上传)", name = "serverCarModelId", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "出行时间(2020-08-20 10:10)", name = "travelTime", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "是否预约(1=否,2=是)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "是否代下单(0=否,1=是)", name = "substitute", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "下单地点经度", name = "placementLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "下单地点纬度", name = "placementLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点经度", name = "startLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点纬度", name = "startLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "起点地址", name = "startAddress", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点经度", name = "endLon", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点纬度", name = "endLat", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "终点地址", name = "endAddress", required = true, dataType = "string"),
+            @ApiImplicitParam(value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)", name = "orderSource", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "司机id(扫码下单必传)", name = "driverId", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "乘客姓名(代下单必传)", name = "passengers", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "乘客电话(代下单必传)", name = "passengersPhone", required = false, dataType = "string"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> saveOrderPrivateCar(Integer serverCarModelId, Date travelTime, Integer orderType, Integer substitute, String placementLon, String placementLat, String startLon, String startLat,
+                                                       String startAddress, String endLon, String endLat, String endAddress, String passengers, String passengersPhone, Integer orderSource, Integer driverId,
+                                                       Integer type, HttpServletRequest request){
+        try {
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderPrivateCarService.saveOrderPrivateCar(serverCarModelId, travelTime, orderType, substitute, placementLon, placementLat,
+                    startLon, startLat, startAddress, endLon, endLat, endAddress, passengers, passengersPhone, orderSource, driverId, type, uid, null);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
new file mode 100644
index 0000000..e416902
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/OrderPrivateCarMapper.java
@@ -0,0 +1,90 @@
+package com.stylefeng.guns.modular.specialTrain.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface OrderPrivateCarMapper extends BaseMapper<OrderPrivateCar> {
+
+
+    /**
+     * 根据状态数据订单数据
+     * @param uid
+     * @param orderType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    List<OrderPrivateCar> queryByState(@Param("uid") Integer uid, @Param("orderType") Integer orderType,
+                                       @Param("type") Integer type, @Param("state") Integer...state) throws Exception;
+
+
+
+    List<OrderPrivateCar> query(@Param("start") Date start, @Param("end") Date end) throws Exception;
+
+
+
+
+    List<OrderPrivateCar> queryByState_(@Param("uid") Integer uid, @Param("state") Integer... state);
+
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
+                                               @Param("size") Integer size);
+
+
+
+    /**
+     * 获取用户单发票页面的订单列表
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime,
+                                                @Param("endTime") Date endTime, @Param("startMoney") Double startMoney,
+                                                @Param("endMoney") Double endMoney, @Param("uid") Integer uid);
+
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
+
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid);
+
+
+    List<OrderPrivateCar> queryByDriver(@Param("driverId") Integer driverId, @Param("state") Integer...state);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
new file mode 100644
index 0000000..df4edbb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -0,0 +1,546 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="crossCityOrderId" property="crossCityOrderId"/>
+        <result column="place" property="place"/>
+        <result column="userId" property="userId"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="carId" property="carId"/>
+        <result column="orderNum" property="orderNum"/>
+        <result column="placementLon" property="placementLon"/>
+        <result column="placementLat" property="placementLat"/>
+        <result column="placementAddress" property="placementAddress"/>
+        <result column="startLon" property="startLon"/>
+        <result column="startLat" property="startLat"/>
+        <result column="startAddress" property="startAddress"/>
+        <result column="endLon" property="endLon"/>
+        <result column="endLat" property="endLat"/>
+        <result column="endAddress" property="endAddress"/>
+        <result column="boardingLon" property="boardingLon"/>
+        <result column="boardingLat" property="boardingLat"/>
+        <result column="boardingAddress" property="boardingAddress"/>
+        <result column="boardingTime" property="boardingTime"/>
+        <result column="getoffLon" property="getoffLon"/>
+        <result column="getoffLat" property="getoffLat"/>
+        <result column="getoffAddress" property="getoffAddress"/>
+        <result column="getoffTime" property="getoffTime"/>
+        <result column="mileage" property="mileage"/>
+        <result column="payManner" property="payManner"/>
+        <result column="payType" property="payType"/>
+        <result column="orderMoney" property="orderMoney"/>
+        <result column="startMileage" property="startMileage"/>
+        <result column="startMoney" property="startMoney"/>
+        <result column="mileageKilometers" property="mileageKilometers"/>
+        <result column="mileageMoney" property="mileageMoney"/>
+        <result column="duration" property="duration"/>
+        <result column="durationMoney" property="durationMoney"/>
+        <result column="wait" property="wait"/>
+        <result column="waitMoney" property="waitMoney"/>
+        <result column="longDistance" property="longDistance"/>
+        <result column="longDistanceMoney" property="longDistanceMoney"/>
+        <result column="parkMoney" property="parkMoney"/>
+        <result column="roadTollMoney" property="roadTollMoney"/>
+        <result column="redPacketMoney" property="redPacketMoney"/>
+        <result column="couponMoney" property="couponMoney"/>
+        <result column="redPacketId" property="redPacketId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="discount" property="discount"/>
+        <result column="discountMoney" property="discountMoney"/>
+        <result column="activityId" property="activityId"/>
+        <result column="companyId" property="companyId"/>
+        <result column="payMoney" property="payMoney"/>
+        <result column="substitute" property="substitute"/>
+        <result column="passengers" property="passengers"/>
+        <result column="passengersPhone" property="passengersPhone"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="travelTime" property="travelTime"/>
+        <result column="snatchOrderTime" property="snatchOrderTime"/>
+        <result column="setOutTime" property="setOutTime"/>
+        <result column="arriveTime" property="arriveTime"/>
+        <result column="startServiceTime" property="startServiceTime"/>
+        <result column="endServiceTime" property="endServiceTime"/>
+        <result column="orderType" property="orderType"/>
+        <result column="orderSource" property="orderSource"/>
+        <result column="invoiceId" property="invoiceId"/>
+        <result column="isReassign" property="isReassign"/>
+        <result column="reassignNotice" property="reassignNotice"/>
+        <result column="trackId" property="trackId"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="oldState" property="oldState"/>
+        <result column="telX" property="telX"/>
+        <result column="bindId" property="bindId"/>
+    </resultMap>
+
+
+
+    <select id="queryByState" resultType="OrderPrivateCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1 and userId = #{uid}
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+    </select>
+
+
+
+    <select id="query" resultType="OrderPrivateCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1
+        <if test="null != start and null != end">
+            and insertTime between #{start} and #{end}
+        </if>
+    </select>
+
+
+
+    <select id="queryByState_" resultType="OrderPrivateCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1 and userId = #{uid}
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+
+
+    <select id="queryMyOrderList" resultType="map">
+        select
+        id as orderId,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
+        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        driverId as driverId,
+        (1) as orderType,
+        state as state,
+        oldState as oldState
+        from t_order_private_car where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+    <select id="queryInvoiceOrder" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        payMoney as payMoney,
+        ('专车订单') as orderName,
+        if(invoiceId is null, 1, 2) as invoice,
+        unix_timestamp(insertTime) as insertTime,
+        (1) as orderType
+        from t_order_private_car where state in (8, 9)
+        <if test="type == 1">
+            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
+        </if>
+        <if test="type == 2">
+            and invoiceId in (select id from t_invoice where state = 2)
+        </if>
+        <if test="null != startTime and null != endTime">
+            and travelTime between #{startTime} and #{endTime}
+        </if>
+        <if test="null != startMoney and null != endMoney">
+            and payMoney between #{startMoney} and #{endMoney}
+        </if>
+        <if test="null !=uid">
+            and userId = #{uid}
+        </if>
+    </select>
+
+
+    <select id="queryOrderInfo" resultType="map">
+        select
+        a.id as orderId,
+        a.type as type,
+        a.state as state,
+        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
+        DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime,
+        DATE_FORMAT(a.travelTime, '%Y-%m-%d %H:%i:%s') as travelTime1,
+        DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
+        a.startLon as startLon,
+        a.startLat as startLat,
+        a.startAddress as startAddress,
+        a.endLon as endLon,
+        a.endLat as endLat,
+        a.endAddress as endAddress,
+		a.driverId as driverId,
+		a.orderMoney as orderMoney,
+        a.startMileage as startMileage,
+        a.startMoney as startMoney,
+        a.mileageKilometers as mileageKilometers,
+        a.mileageMoney as mileageMoney,
+        a.duration as duration,
+        a.durationMoney as durationMoney,
+        a.wait as wait,
+        a.waitMoney as waitMoney,
+        a.longDistance as longDistance,
+        a.longDistanceMoney as longDistanceMoney,
+		a.parkMoney as parkMoney,
+		a.roadTollMoney as roadTollMoney,
+		a.redPacketMoney as redPacketMoney,
+		a.couponMoney as couponMoney,
+		a.discount as discount,
+		a.discountMoney as discountMoney,
+		a.payMoney as payMoney,
+		a.reassignNotice as reassignNotice,
+		a.oldState as oldState,
+		b.headImgUrl as driverAvatar,
+		b.`name` as driverName,
+		c.carLicensePlate as licensePlate,
+		c.carColor as carColor,
+		CONCAT(f.`name`, d.`name`) as brand,
+		((select sum(fraction) from t_order_evaluate where driverId = a.driverId) / (select count(id) from t_order_evaluate where driverId = a.driverId)) as score,
+		(
+		(select count(id) from t_order_private_car where driverId = a.driverId and state in (7, 8, 9)) +
+		(select count(id) from t_order_taxi where driverId = a.driverId and state in (7, 8, 9)) +
+		(select count(id) from t_order_cross_city where driverId = a.driverId and state in (6, 8, 9))
+		) as orderNum,
+		b.phone as driverPhone,
+		if(a.state = 12, (select money from t_order_cancel where orderId = a.id and orderType = 1 and state = 1 order by insertTime desc limit 0, 1), if(a.state = 10, (select money from t_order_cancel where orderId = a.id and orderType = 1 and state = 2 order by insertTime desc limit 0, 1), 0)) as cancelPayMoney,
+		if(a.state = 12, (select id from t_order_cancel where orderId = a.id and orderType = 1 and state = 1 order by insertTime desc limit 0, 1), 0) as cancelId,
+		g.fraction as orderScore,
+		g.content as evaluate,
+		a.telX as telX,
+		h.userType as cancelUserType,
+		h.money as cancelMoney,
+		h.reason as cancelReason,
+		h.remark as cancelRemark
+        from t_order_private_car a
+		left join t_driver b on (a.driverId = b.id)
+		left join t_car c on (a.carId = c.id)
+		left join t_car_model d on (c.carModelId = d.id)
+		left join t_car_brand f on (d.brandId = f.id)
+		left join t_order_evaluate g on (a.id = g.orderId and g.orderType = 1)
+		left join t_order_cancel h on (a.id = h.orderId and h.orderType = 1 and h.state = 2)
+		where a.id = #{orderId}
+    </select>
+
+
+
+    <select id="queryMyTravelRecord" resultType="map">
+        select
+        (payMoney * -1) as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('专车订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_private_car where payMoney != 0 and userId = #{uid} and state in (8, 9, 10, 11, 12)
+    </select>
+
+
+    <select id="queryRedEnvelope" resultType="map">
+        select
+        redPacketMoney as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('专车订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_private_car where userId = #{uid} and state in (8, 9) and redPacketId is not null
+    </select>
+
+
+    <select id="queryByDriver" resultType="OrderPrivateCar">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        serverCarModelId as serverCarModelId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        startMileage as startMileage,
+        startMoney as startMoney,
+        mileageKilometers as mileageKilometers,
+        mileageMoney as mileageMoney,
+        duration as duration,
+        durationMoney as durationMoney,
+        wait as wait,
+        waitMoney as waitMoney,
+        longDistance as longDistance,
+        longDistanceMoney as longDistanceMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId,
+        isReassign as isReassign,
+        reassignNotice as reassignNotice,
+        trackId as trackId,
+        isDelete as isDelete,
+        oldState as oldState,
+        telX as telX,
+        bindId as bindId
+        from t_order_private_car where isDelete = 1 and driverId = #{driverId} and state in
+        <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
new file mode 100644
index 0000000..3aac707
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/model/OrderPrivateCar.java
@@ -0,0 +1,1035 @@
+package com.stylefeng.guns.modular.specialTrain.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 专车车订单
+ */
+@TableName("t_order_private_car")
+public class OrderPrivateCar {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单类型(1=普通订单,2=摆渡订单)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 跨城订单id(摆渡车专用)
+     */
+    @TableField("crossCityOrderId")
+    private Integer crossCityOrderId;
+    /**
+     * 摆渡方位(1=跨城起点,2=跨城终点)
+     */
+    @TableField("place")
+    private Integer place;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 服务车型id
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 订单号
+     */
+    @TableField("orderNum")
+    private String orderNum;
+    /**
+     * 下单地点经度
+     */
+    @TableField("placementLon")
+    private Double placementLon;
+    /**
+     * 下单地点纬度
+     */
+    @TableField("placementLat")
+    private Double placementLat;
+    /**
+     * 下单地点
+     */
+    @TableField("placementAddress")
+    private String placementAddress;
+    /**
+     * 起点经度
+     */
+    @TableField("startLon")
+    private Double startLon;
+    /**
+     * 起点纬度
+     */
+    @TableField("startLat")
+    private Double startLat;
+    /**
+     * 起点
+     */
+    @TableField("startAddress")
+    private String startAddress;
+    /**
+     * 目的地经度
+     */
+    @TableField("endLon")
+    private Double endLon;
+    /**
+     * 目的地纬度
+     */
+    @TableField("endLat")
+    private Double endLat;
+    /**
+     * 目的地
+     */
+    @TableField("endAddress")
+    private String endAddress;
+    /**
+     * 上车点经度
+     */
+    @TableField("boardingLon")
+    private Double boardingLon;
+    /**
+     * 上车点纬度
+     */
+    @TableField("boardingLat")
+    private Double boardingLat;
+    /**
+     * 上车地点
+     */
+    @TableField("boardingAddress")
+    private String boardingAddress;
+    /**
+     * 上车时间
+     */
+    @TableField("boardingTime")
+    private Date boardingTime;
+    /**
+     * 下车点经度
+     */
+    @TableField("getoffLon")
+    private Double getoffLon;
+    /**
+     * 下车点纬度
+     */
+    @TableField("getoffLat")
+    private Double getoffLat;
+    /**
+     * 下车点
+     */
+    @TableField("getoffAddress")
+    private String getoffAddress;
+    /**
+     * 下车时间
+     */
+    @TableField("getoffTime")
+    private Date getoffTime;
+    /**
+     * 行驶里程数(米)
+     */
+    @TableField("mileage")
+    private Double mileage;
+    /**
+     * 支付方式(1=OK平台支付,2=其他方式支付)
+     */
+    @TableField("payManner")
+    private Integer payManner;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=余额)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 订单金额
+     */
+    @TableField("orderMoney")
+    private Double orderMoney;
+    /**
+     * 起步里程
+     */
+    @TableField("startMileage")
+    private Double startMileage;
+    /**
+     * 起步价
+     */
+    @TableField("startMoney")
+    private Double startMoney;
+    /**
+     * 里程公里
+     */
+    @TableField("mileageKilometers")
+    private Double mileageKilometers;
+    /**
+     * 里程费
+     */
+    @TableField("mileageMoney")
+    private Double mileageMoney;
+    /**
+     * 时长分钟
+     */
+    @TableField("duration")
+    private Double duration;
+    /**
+     * 时长费
+     */
+    @TableField("durationMoney")
+    private Double durationMoney;
+    /**
+     * 等待分钟
+     */
+    @TableField("wait")
+    private Double wait;
+    /**
+     * 等待费
+     */
+    @TableField("waitMoney")
+    private Double waitMoney;
+    /**
+     * 远途公里
+     */
+    @TableField("longDistance")
+    private Double longDistance;
+    /**
+     * 远途费
+     */
+    @TableField("longDistanceMoney")
+    private Double longDistanceMoney;
+    /**
+     * 停车费
+     */
+    @TableField("parkMoney")
+    private Double parkMoney;
+    /**
+     * 过路费
+     */
+    @TableField("roadTollMoney")
+    private Double roadTollMoney;
+    /**
+     * 红包抵扣金额
+     */
+    @TableField("redPacketMoney")
+    private Double redPacketMoney;
+    /**
+     * 优惠券抵扣金额
+     */
+    @TableField("couponMoney")
+    private Double couponMoney;
+    /**
+     * 红包id
+     */
+    @TableField("redPacketId")
+    private Integer redPacketId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 折扣
+     */
+    @TableField("discount")
+    private Double discount;
+    /**
+     * 折扣优惠金额
+     */
+    @TableField("discountMoney")
+    private Double discountMoney;
+    /**
+     * 折扣活动id
+     */
+    @TableField("activityId")
+    private Integer activityId;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    /**
+     * 是否是代下单(0:否,1:是)
+     */
+    @TableField("substitute")
+    private Integer substitute;
+    /**
+     * 乘车人姓名
+     */
+    @TableField("passengers")
+    private String passengers;
+    /**
+     * 乘车人电话
+     */
+    @TableField("passengersPhone")
+    private String passengersPhone;
+    /**
+     * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 下单时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 出行时间
+     */
+    @TableField("travelTime")
+    private Date travelTime;
+    /**
+     * 抢单时间
+     */
+    @TableField("snatchOrderTime")
+    private Date snatchOrderTime;
+    /**
+     * 司机点出发时间
+     */
+    @TableField("setOutTime")
+    private Date setOutTime;
+    /**
+     * 司机到达预约地点时间
+     */
+    @TableField("arriveTime")
+    private Date arriveTime;
+    /**
+     * 开始服务时间
+     */
+    @TableField("startServiceTime")
+    private Date startServiceTime;
+    /**
+     * 结束服务时间
+     */
+    @TableField("endServiceTime")
+    private Date endServiceTime;
+    /**
+     * 订单类型(1=普通,2=预约)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单,6:智慧屏)
+     */
+    @TableField("orderSource")
+    private Integer orderSource;
+    /**
+     * 发票id
+     */
+    @TableField("invoiceId")
+    private Integer invoiceId;
+    /**
+     * 是否是改派单(1=否,=是)
+     * @return
+     */
+    @TableField("isReassign")
+    private Integer isReassign;
+    /**
+     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
+     */
+    @TableField("reassignNotice")
+    private Integer reassignNotice;
+    /**
+     * 高德猎鹰轨迹id
+     * @return
+     */
+    @TableField("trackId")
+    private String trackId;
+    /**
+     * 是否删除(1=否,2=是)
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 该派前的订单状态
+     * @return
+     */
+    @TableField("oldState")
+    private Integer oldState;
+    /**
+     * 移动小号
+     * @return
+     */
+    @TableField("telX")
+    private String telX;
+    /**
+     * 绑定小号关系id
+     * @return
+     */
+    @TableField("bindId")
+    private String bindId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getCrossCityOrderId() {
+        return crossCityOrderId;
+    }
+
+    public void setCrossCityOrderId(Integer crossCityOrderId) {
+        this.crossCityOrderId = crossCityOrderId;
+    }
+
+    public Integer getPlace() {
+        return place;
+    }
+
+    public void setPlace(Integer place) {
+        this.place = place;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public String getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public String getPlacementAddress() {
+        return placementAddress;
+    }
+
+    public void setPlacementAddress(String placementAddress) {
+        this.placementAddress = placementAddress;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Double getBoardingLon() {
+        return boardingLon;
+    }
+
+    public void setBoardingLon(Double boardingLon) {
+        this.boardingLon = boardingLon;
+    }
+
+    public Double getBoardingLat() {
+        return boardingLat;
+    }
+
+    public void setBoardingLat(Double boardingLat) {
+        this.boardingLat = boardingLat;
+    }
+
+    public String getBoardingAddress() {
+        return boardingAddress;
+    }
+
+    public void setBoardingAddress(String boardingAddress) {
+        this.boardingAddress = boardingAddress;
+    }
+
+    public Date getBoardingTime() {
+        return boardingTime;
+    }
+
+    public void setBoardingTime(Date boardingTime) {
+        this.boardingTime = boardingTime;
+    }
+
+    public Double getGetoffLon() {
+        return getoffLon;
+    }
+
+    public void setGetoffLon(Double getoffLon) {
+        this.getoffLon = getoffLon;
+    }
+
+    public Double getGetoffLat() {
+        return getoffLat;
+    }
+
+    public void setGetoffLat(Double getoffLat) {
+        this.getoffLat = getoffLat;
+    }
+
+    public String getGetoffAddress() {
+        return getoffAddress;
+    }
+
+    public void setGetoffAddress(String getoffAddress) {
+        this.getoffAddress = getoffAddress;
+    }
+
+    public Date getGetoffTime() {
+        return getoffTime;
+    }
+
+    public void setGetoffTime(Date getoffTime) {
+        this.getoffTime = getoffTime;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Integer getPayManner() {
+        return payManner;
+    }
+
+    public void setPayManner(Integer payManner) {
+        this.payManner = payManner;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getStartMileage() {
+        return startMileage;
+    }
+
+    public void setStartMileage(Double startMileage) {
+        this.startMileage = startMileage;
+    }
+
+    public Double getStartMoney() {
+        return startMoney;
+    }
+
+    public void setStartMoney(Double startMoney) {
+        this.startMoney = startMoney;
+    }
+
+    public Double getMileageKilometers() {
+        return mileageKilometers;
+    }
+
+    public void setMileageKilometers(Double mileageKilometers) {
+        this.mileageKilometers = mileageKilometers;
+    }
+
+    public Double getMileageMoney() {
+        return mileageMoney;
+    }
+
+    public void setMileageMoney(Double mileageMoney) {
+        this.mileageMoney = mileageMoney;
+    }
+
+    public Double getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Double duration) {
+        this.duration = duration;
+    }
+
+    public Double getDurationMoney() {
+        return durationMoney;
+    }
+
+    public void setDurationMoney(Double durationMoney) {
+        this.durationMoney = durationMoney;
+    }
+
+    public Double getWait() {
+        return wait;
+    }
+
+    public void setWait(Double wait) {
+        this.wait = wait;
+    }
+
+    public Double getWaitMoney() {
+        return waitMoney;
+    }
+
+    public void setWaitMoney(Double waitMoney) {
+        this.waitMoney = waitMoney;
+    }
+
+    public Double getLongDistance() {
+        return longDistance;
+    }
+
+    public void setLongDistance(Double longDistance) {
+        this.longDistance = longDistance;
+    }
+
+    public Double getLongDistanceMoney() {
+        return longDistanceMoney;
+    }
+
+    public void setLongDistanceMoney(Double longDistanceMoney) {
+        this.longDistanceMoney = longDistanceMoney;
+    }
+
+    public Double getParkMoney() {
+        return parkMoney;
+    }
+
+    public void setParkMoney(Double parkMoney) {
+        this.parkMoney = parkMoney;
+    }
+
+    public Double getRoadTollMoney() {
+        return roadTollMoney;
+    }
+
+    public void setRoadTollMoney(Double roadTollMoney) {
+        this.roadTollMoney = roadTollMoney;
+    }
+
+    public Double getRedPacketMoney() {
+        return redPacketMoney;
+    }
+
+    public void setRedPacketMoney(Double redPacketMoney) {
+        this.redPacketMoney = redPacketMoney;
+    }
+
+    public Double getCouponMoney() {
+        return couponMoney;
+    }
+
+    public void setCouponMoney(Double couponMoney) {
+        this.couponMoney = couponMoney;
+    }
+
+    public Integer getRedPacketId() {
+        return redPacketId;
+    }
+
+    public void setRedPacketId(Integer redPacketId) {
+        this.redPacketId = redPacketId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Double getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(Double discount) {
+        this.discount = discount;
+    }
+
+    public Double getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Double discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Integer getSubstitute() {
+        return substitute;
+    }
+
+    public void setSubstitute(Integer substitute) {
+        this.substitute = substitute;
+    }
+
+    public String getPassengers() {
+        return passengers;
+    }
+
+    public void setPassengers(String passengers) {
+        this.passengers = passengers;
+    }
+
+    public String getPassengersPhone() {
+        return passengersPhone;
+    }
+
+    public void setPassengersPhone(String passengersPhone) {
+        this.passengersPhone = passengersPhone;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public Date getSnatchOrderTime() {
+        return snatchOrderTime;
+    }
+
+    public void setSnatchOrderTime(Date snatchOrderTime) {
+        this.snatchOrderTime = snatchOrderTime;
+    }
+
+    public Date getSetOutTime() {
+        return setOutTime;
+    }
+
+    public void setSetOutTime(Date setOutTime) {
+        this.setOutTime = setOutTime;
+    }
+
+    public Date getArriveTime() {
+        return arriveTime;
+    }
+
+    public void setArriveTime(Date arriveTime) {
+        this.arriveTime = arriveTime;
+    }
+
+    public Date getStartServiceTime() {
+        return startServiceTime;
+    }
+
+    public void setStartServiceTime(Date startServiceTime) {
+        this.startServiceTime = startServiceTime;
+    }
+
+    public Date getEndServiceTime() {
+        return endServiceTime;
+    }
+
+    public void setEndServiceTime(Date endServiceTime) {
+        this.endServiceTime = endServiceTime;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+    public Integer getInvoiceId() {
+        return invoiceId;
+    }
+
+    public void setInvoiceId(Integer invoiceId) {
+        this.invoiceId = invoiceId;
+    }
+
+    public Integer getIsReassign() {
+        return isReassign;
+    }
+
+    public void setIsReassign(Integer isReassign) {
+        this.isReassign = isReassign;
+    }
+
+    public Integer getReassignNotice() {
+        return reassignNotice;
+    }
+
+    public void setReassignNotice(Integer reassignNotice) {
+        this.reassignNotice = reassignNotice;
+    }
+
+    public String getTrackId() {
+        return trackId;
+    }
+
+    public void setTrackId(String trackId) {
+        this.trackId = trackId;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Integer getOldState() {
+        return oldState;
+    }
+
+    public void setOldState(Integer oldState) {
+        this.oldState = oldState;
+    }
+
+    public String getTelX() {
+        return telX;
+    }
+
+    public void setTelX(String telX) {
+        this.telX = telX;
+    }
+
+    public String getBindId() {
+        return bindId;
+    }
+
+    public void setBindId(String bindId) {
+        this.bindId = bindId;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderPrivateCar{" +
+                "id=" + id +
+                ", type=" + type +
+                ", crossCityOrderId=" + crossCityOrderId +
+                ", place=" + place +
+                ", userId=" + userId +
+                ", serverCarModelId=" + serverCarModelId +
+                ", driverId=" + driverId +
+                ", carId=" + carId +
+                ", orderNum='" + orderNum + '\'' +
+                ", placementLon=" + placementLon +
+                ", placementLat=" + placementLat +
+                ", placementAddress='" + placementAddress + '\'' +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", boardingLon=" + boardingLon +
+                ", boardingLat=" + boardingLat +
+                ", boardingAddress='" + boardingAddress + '\'' +
+                ", boardingTime=" + boardingTime +
+                ", getoffLon=" + getoffLon +
+                ", getoffLat=" + getoffLat +
+                ", getoffAddress='" + getoffAddress + '\'' +
+                ", getoffTime=" + getoffTime +
+                ", mileage=" + mileage +
+                ", payManner=" + payManner +
+                ", payType=" + payType +
+                ", orderMoney=" + orderMoney +
+                ", startMileage=" + startMileage +
+                ", startMoney=" + startMoney +
+                ", mileageKilometers=" + mileageKilometers +
+                ", mileageMoney=" + mileageMoney +
+                ", duration=" + duration +
+                ", durationMoney=" + durationMoney +
+                ", wait=" + wait +
+                ", waitMoney=" + waitMoney +
+                ", longDistance=" + longDistance +
+                ", longDistanceMoney=" + longDistanceMoney +
+                ", parkMoney=" + parkMoney +
+                ", roadTollMoney=" + roadTollMoney +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", redPacketId=" + redPacketId +
+                ", couponId=" + couponId +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", activityId=" + activityId +
+                ", companyId=" + companyId +
+                ", payMoney=" + payMoney +
+                ", substitute=" + substitute +
+                ", passengers='" + passengers + '\'' +
+                ", passengersPhone='" + passengersPhone + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", travelTime=" + travelTime +
+                ", snatchOrderTime=" + snatchOrderTime +
+                ", setOutTime=" + setOutTime +
+                ", arriveTime=" + arriveTime +
+                ", startServiceTime=" + startServiceTime +
+                ", endServiceTime=" + endServiceTime +
+                ", orderType=" + orderType +
+                ", orderSource=" + orderSource +
+                ", invoiceId=" + invoiceId +
+                ", isReassign=" + isReassign +
+                ", reassignNotice=" + reassignNotice +
+                ", trackId='" + trackId + '\'' +
+                ", isDelete=" + isDelete +
+                ", oldState=" + oldState +
+                ", telX='" + telX + '\'' +
+                ", bindId='" + bindId + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
new file mode 100644
index 0000000..7f15098
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/IOrderPrivateCarService.java
@@ -0,0 +1,278 @@
+package com.stylefeng.guns.modular.specialTrain.server;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.system.warpper.SmartScreenOrderVo;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderPrivateCarService extends IService<OrderPrivateCar> {
+
+
+
+
+    /**
+     * 专车下单操作
+     * @param serverCarModelId  服务车型id
+     * @param travelTime        出行时间
+     * @param reservation       是否预约(1=否,2=是)
+     * @param instead           是否代下单(0=否,1=是)
+     * @param startLon          起点经度
+     * @param startLat          起点纬度
+     * @param startAddress      起点详细地址
+     * @param endLon            终点经度
+     * @param endLat            终点纬度
+     * @param endAddress        终点详细地址
+     * @param name              乘客姓名
+     * @param phone             乘客电话
+     * @param deviceCode        设备号
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> saveOrderPrivateCar(Integer serverCarModelId, Date travelTime, Integer reservation, Integer instead, String placementLon, String placementLat,
+                                                String startLon, String startLat, String startAddress, String endLon, String endLat, String endAddress, String name, String phone,
+                                                Integer orderSource, Integer driverId, Integer type, Integer uid, String deviceCode) throws Exception;
+
+
+    /**
+     * 继续推送操作
+     * @param id
+     * @throws Exception
+     */
+    ResultUtil pushOrderPrivateCar(Integer id) throws Exception;
+
+
+
+    /**
+     * 获取取消订单需要支付的金额
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception;
+
+
+
+    /**
+     * 添加取消
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception;
+
+
+    /**
+     * 取消订单操作
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception;
+
+
+    String getOrderNum() throws Exception;
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     */
+    void deleteTask(Integer orderId);
+
+
+
+    /**
+     * 获取用户余额和可用优惠券数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取优惠券列表
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+
+
+    /**
+     * 订单完成支付订单操作
+     * @param payType
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil payPrivateCarOrder(Integer payType, Integer orderId, Integer couponId, Integer type)throws Exception;
+
+
+
+
+    /**
+     * 评论成功后获取红包金额
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryRedMoney(Integer orderId) throws Exception;
+
+
+
+
+
+    /**
+     * 分享成功后添加红包
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil shareRedEnvelope(Integer orderId) throws Exception;
+
+
+
+
+    /**
+     * 取消订单支付后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payCancelOrderPrivateCar(Integer id, String order_id, Integer type) throws Exception;
+
+
+
+    /**
+     * 支付完成后的订单处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payOrderPrivateCarCallback(Integer id, String order_id, Integer type) throws Exception;
+
+
+
+    /**
+     * 获取订单数据
+     * @param uid
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    List<OrderPrivateCar> queryOrder(Integer uid, Integer...state) throws Exception;
+
+
+
+
+    /**
+     * 获取员工的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+
+    /**
+     * 获取用户端发票页面中的订单列表数据
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+                                                Double endMoney, Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception;
+
+
+    /**
+     * 获取下单推送完后没有司机下单的提醒
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    EndPushWarpper queryEndPush(Integer uid) throws Exception;
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception;
+
+
+    /**
+     * 智慧屏一键叫车
+     * @param phone
+     * @param placementLon
+     * @param placementLat
+     * @param startLon
+     * @param startLat
+     * @param startAddress
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> directCallCar(String phone, String placementLon, String placementLat, String startLon, String startLat, String startAddress, String deviceCode) throws Exception;
+
+
+    /**
+     * 获取智慧屏待上车订单列表
+     * @param deviceCode
+     * @return
+     * @throws Exception
+     */
+    List<SmartScreenOrderVo> querySmartScreenOrder(String deviceCode, String lonLat) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
new file mode 100644
index 0000000..062a807
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -0,0 +1,1368 @@
+package com.stylefeng.guns.modular.specialTrain.server.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.domain.CarModel;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl;
+import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.LiuZhouBank.PayUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.system.warpper.SmartScreenOrderVo;
+import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import com.stylefeng.guns.modular.taxi.warpper.OrderTaxiWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
+@Service
+public class OrderPrivateCarServiceImpl extends ServiceImpl<OrderPrivateCarMapper, OrderPrivateCar> implements IOrderPrivateCarService {
+
+    @Resource
+    private OrderPrivateCarMapper orderPrivateCarMapper;
+
+    @Resource
+    private CarServiceMapper carServiceMapper;
+
+    @Resource
+    private OrderTaxiMapper orderTaxiMapper;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Resource
+    private UserActivityDiscount1Mapper userActivityDiscount1Mapper;
+
+    @Resource
+    private SysIntegralMapper sysIntegralMapper;
+
+    @Resource
+    private OrderCrossCityMapper orderCrossCityMapper;
+
+    @Resource
+    private RegionMapper regionMapper;
+
+    @Resource
+    private UserInfoMapper userInfoMapper;
+
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private IDriverServiceService driverServiceService;
+
+    @Autowired
+    private PushUtil pushUtil;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private IPushOrderService pushOrderService;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private ICancleOrderService cancleOrderService;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private RestTemplate internalRestTemplate;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private ChinaMobileUtil chinaMobileUtil;
+
+    @Autowired
+    private IIncomeService incomeService;
+
+    @Autowired
+    private IUserCouponRecordService userCouponRecordService;
+
+    @Autowired
+    private IUserRedPacketRecordService userRedPacketRecordService;
+
+    @Autowired
+    private ICompanyService companyService;
+
+    @Autowired
+    private IUserActivityRedenvelopeService userActivityRedenvelopeService;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private GDFalconUtil gdFalconUtil;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private IOrderPositionService orderPositionService;
+
+    @Autowired
+    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Resource
+    private ServerCarModelMapper serverCarModelMapper;
+
+    @Resource
+    private CarMapper carMapper;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    public static List<Integer> orderIds = new ArrayList<>();
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+    @Value("${pushMinistryOfTransport}")
+    private boolean pushMinistryOfTransport;
+
+
+
+    /**
+     * 专车下单操作
+     * @param serverCarModelId  服务车型id
+     * @param travelTime        出行时间
+     * @param reservation       是否预约(1=否,2=是)
+     * @param instead           是否代下单(0=否,1=是)
+     * @param startLon          起点经度
+     * @param startLat          起点纬度
+     * @param startAddress      起点详细地址
+     * @param endLon            终点经度
+     * @param endLat            终点纬度
+     * @param endAddress        终点详细地址
+     * @param name              乘客姓名
+     * @param phone             乘客电话
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil<BaseWarpper> saveOrderPrivateCar(Integer serverCarModelId, Date travelTime, Integer reservation, Integer instead, String placementLon, String placementLat, String startLon, String startLat,
+                                          String startAddress, String endLon, String endLat, String endAddress, String name, String phone, Integer orderSource, Integer driverId, Integer type, Integer uid, String deviceCode) throws Exception {
+
+        //如果出行时间大于当前10分钟则默认为预约单
+        if(travelTime.getTime() > (System.currentTimeMillis() + 600000)){
+            reservation = 2;
+        }
+
+        /**
+         * 1.下了即时单就不能下预约单和即时单
+         * 2.下了预约单和再下一张即时单不能再下预约单
+         */
+        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 1, 2, 3, 4, 5, 6, 7, 11);
+        if(orderPrivateCars.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+        List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11);
+        if(list.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+
+        orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 2, 1, 1, 2, 3, 4, 5, 6, 7, 11);
+        if(orderPrivateCars.size() > 0 && reservation == 2){
+            return ResultUtil.error("有未完成的订单");
+        }
+        list = orderTaxiMapper.queryByState_(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11);
+        if(list.size() > 0 && reservation == 2){
+            return ResultUtil.error("有未完成的订单");
+        }
+
+        startAddress = startAddress.replaceAll("& #40;", "(");
+        startAddress = startAddress.replaceAll("& #41;", ")");
+        endAddress = endAddress.replaceAll("& #40;", "(");
+        endAddress = endAddress.replaceAll("& #41;", ")");
+        if((orderSource == 1 || orderSource == 3) && null == serverCarModelId){
+            return ResultUtil.error("请选择服务车型");
+        }
+
+        OrderPrivateCar orderPrivateCar = new OrderPrivateCar();
+        orderPrivateCar.setType(type);
+        orderPrivateCar.setUserId(uid);
+        orderPrivateCar.setServerCarModelId(serverCarModelId);
+        orderPrivateCar.setOrderNum(this.getOrderNum());
+        orderPrivateCar.setPlacementLon(Double.valueOf(placementLon));
+        orderPrivateCar.setPlacementLat(Double.valueOf(placementLat));
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(placementLon, placementLat);
+        orderPrivateCar.setPlacementAddress(geocode.get("address"));
+        orderPrivateCar.setStartLon(Double.valueOf(startLon));
+        orderPrivateCar.setStartLat(Double.valueOf(startLat));
+        orderPrivateCar.setStartAddress(startAddress);
+        if(ToolUtil.isNotEmpty(endLon)){
+            orderPrivateCar.setEndLon(Double.valueOf(endLon));
+        }
+        if(ToolUtil.isNotEmpty(endLat)){
+            orderPrivateCar.setEndLat(Double.valueOf(endLat));
+        }
+        if(ToolUtil.isNotEmpty(endAddress)){
+            orderPrivateCar.setEndAddress(endAddress);
+        }
+        orderPrivateCar.setSubstitute(instead);
+        orderPrivateCar.setPassengers(name);
+        orderPrivateCar.setPassengersPhone(phone);
+        if(instead == 0 || ToolUtil.isEmpty(orderPrivateCar.getPassengers())){
+            UserInfo userInfo = userInfoService.selectById(uid);
+            if(ToolUtil.isEmpty(userInfo.getPhone())){
+                return ResultUtil.error("请先绑定手机号码");
+            }
+            orderPrivateCar.setPassengers(userInfo.getName());
+            orderPrivateCar.setPassengersPhone(userInfo.getPhone());
+        }
+        orderPrivateCar.setState(1);
+        orderPrivateCar.setInsertTime(new Date());
+        orderPrivateCar.setTravelTime(travelTime);
+        orderPrivateCar.setOrderType(reservation);
+        orderPrivateCar.setOrderSource(orderSource);
+        if(orderSource == 2){//扫码下单
+            Driver driver = driverService.selectById(driverId);
+            if(null == driver){
+                return ResultUtil.error("司机信息有误,无法完成下单");
+            }
+            if(driver.getAuthState() == 1){
+                return ResultUtil.error("司机信息还未完成审核,无法完成下单");
+            }
+            if(driver.getAuthState() == 3){
+                return ResultUtil.error("司机账户已被冻结,无法提供服务");
+            }
+            if(driver.getAuthState() == 4){
+                return ResultUtil.error("司机信息未通过审核,无法提供服务");
+            }
+            if(driver.getState() == 1){
+                return ResultUtil.error("司机还未上线,无法提供服务");
+            }
+            if(driver.getState() == 3){
+                return ResultUtil.error("司机正在服务中,无法提供服务");
+            }
+            List<DriverService> query = driverServiceService.query(driverId, 1);
+            if(query.size() == 0){
+                return ResultUtil.error("该司机不能服务此业务");
+            }
+
+            orderPrivateCar.setDriverId(driverId);
+            orderPrivateCar.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : (
+                    driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
+            orderPrivateCar.setState(2);
+            orderPrivateCar.setCarId(driver.getCarId());
+            CarService query1 = carServiceMapper.query(1, driver.getCarId());
+            orderPrivateCar.setServerCarModelId(query1.getServerCarModelId());
+            orderPrivateCar.setSnatchOrderTime(new Date());
+
+            //调用高德创建轨迹
+            String s = gdFalconUtil.selectTerminal(driver.getPhone());
+            String track = gdFalconUtil.createTrack(s);
+            orderPrivateCar.setTrackId(track);
+
+            //调用移动的小号接口
+            Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
+            Region region = regionMapper.query(geocode1.get("districtCode"));
+            Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderPrivateCar.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+            if(String.valueOf(map.get("code")).equals("200")){
+                orderPrivateCar.setTelX(map.get("telX"));
+                orderPrivateCar.setBindId(map.get("bindId"));
+            }
+
+            driver.setState(3);
+            driverService.updateById(driver);
+        }
+
+        orderPrivateCar.setIsReassign(1);
+        orderPrivateCar.setIsDelete(1);
+        this.insert(orderPrivateCar);
+
+        if(orderSource == 2){//扫码下单
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, uid, orderPrivateCar.getId(), 1, 2, 0);
+                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 2, 0);
+                    pushUtil.pushDriverPosition(orderPrivateCar.getId(), 1);
+                }
+            }).start();
+        }
+
+        //推单操作
+        if(orderPrivateCar.getState() == 1){
+            this.pushOrder(orderPrivateCar);
+        }
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您的专车订单已下单成功,我们正在为您指派司机,请稍后!", orderPrivateCar.getUserId(), 1);
+
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(orderPrivateCar.getId());
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 下单后继续等待
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil pushOrderPrivateCar(Integer id) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(id);
+        if(null == orderPrivateCar){
+            return ResultUtil.error("推送订单失败,订单信息有误");
+        }
+        if(orderPrivateCar.getState() != 1){
+            return ResultUtil.error("订单已被司机接单,不能重复推送");
+        }
+        //处理摆渡订单的继续推单操作
+        if(orderPrivateCar.getType() == 2){
+            OrderCrossCityServiceImpl.pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), false);//还原标识数据
+            List<OrderPrivateCar> list = this.selectList(new EntityWrapper<OrderPrivateCar>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
+            List<Map<String, Integer>> orders = new ArrayList<>();
+            for(OrderPrivateCar orderPrivateCar1 : list){
+                if(orderPrivateCar1.getState() != 1){
+                    return ResultUtil.error("订单已被司机接单,推单取消");
+                }
+                Map<String, Integer> map = new HashMap<>();
+                map.put("orderType", 1);
+                map.put("orderId", orderPrivateCar1.getId());
+                orders.add(map);
+            }
+            List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
+            for(OrderTaxi orderTaxi : list1){
+                if(orderTaxi.getState() != 1){
+                    return ResultUtil.error("订单已被司机接单,推单取消");
+                }
+                Map<String, Integer> map = new HashMap<>();
+                map.put("orderType", 2);
+                map.put("orderId", orderTaxi.getId());
+                orders.add(map);
+            }
+            //开始重新推单
+            orderCrossCityService.pushOrder(orders);
+
+        }else{
+            this.pushOrder(orderPrivateCar);
+        }
+        return ResultUtil.success();
+    }
+
+    @Override
+    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(id);
+        if(null == orderPrivateCar){
+            return ResultUtil.error("获取数据失败,订单信息有误");
+        }
+        double amount = 0;
+        CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
+        if(null != orderPrivateCar.getDriverId() &&
+                (orderPrivateCar.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况
+            if(null != query){
+                amount += query.getMoney();
+            }
+        }
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setAmount(amount);
+        return ResultUtil.success(baseWarpper);
+    }
+
+    @Override
+    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(remark)){
+            if(ToolUtil.isNotEmpty(remark)){
+                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+                for(SensitiveWords s : sensitiveWords){
+                    remark = remark.replaceAll(s.getContent(), "***");
+                }
+            }
+        }
+
+        OrderPrivateCar orderPrivateCar = this.selectById(id);
+        if(null == uid){
+            uid = orderPrivateCar.getUserId();
+        }
+
+        Integer integer = null;
+        if(null == orderPrivateCar){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderPrivateCar.getState() > 5 && orderPrivateCar.getState() != 11){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+        if(null == orderPrivateCar.getDriverId()){//没有接单的情况
+            if(orderPrivateCar.getType() == 2){//摆渡车
+                OrderCrossCityServiceImpl.pushEndMap.remove(orderPrivateCar.getCrossCityOrderId());//删除标识数据
+                List<OrderPrivateCar> list = this.selectList(new EntityWrapper<OrderPrivateCar>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
+                for(OrderPrivateCar orderPrivateCar1 : list){
+                    orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
+                    orderPrivateCar1.setState(10);
+                    this.updateById(orderPrivateCar1);
+                }
+                List<OrderTaxi> list1 = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderPrivateCar.getCrossCityOrderId()).eq("place", orderPrivateCar.getPlace()));
+                for(OrderTaxi orderTaxi : list1){
+                    orderCancelService.saveData(orderTaxi.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
+                    orderTaxi.setState(10);
+                    orderTaxiService.updateById(orderTaxi);
+                }
+            }else{
+                integer = orderCancelService.saveData(id, 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
+                orderPrivateCar.setState(10);
+                this.updateById(orderPrivateCar);
+            }
+        }else {
+            CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
+            if (null != query) {
+                if ((orderPrivateCar.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < System.currentTimeMillis() && query.getMoney().compareTo(0D) > 0) {//收费的情况
+                    orderPrivateCar.setState(12);
+                    this.updateById(orderPrivateCar);
+                    integer = orderCancelService.saveData(id, 1, reason, remark, null, query.getMoney(), 1, 1, uid);
+                } else {
+                    integer = orderCancelService.saveData(id, 1, reason, remark, null, null, 2, 1, uid);
+
+                    orderPrivateCar.setState(10);
+                    this.updateById(orderPrivateCar);
+                }
+                this.deleteTask(id);//删除定时任务
+
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+                        System.err.println("推送取消操作---------------------");
+                    }
+                }).start();
+
+                //修改司机为空闲
+                Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+                driver.setState(2);
+                driverService.updateById(driver);
+            }else{
+                return ResultUtil.error("请完善后台取消规则设置");
+            }
+
+        }
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                if(pushMinistryOfTransport){
+                    //上传数据
+                    pushMinistryOfTransportUtil.orderCancel(orderPrivateCar.getId());
+                }
+            }
+        }).start();
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您已成功取消出行订单,谢谢使用!", orderPrivateCar.getUserId(), 1);
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", integer);
+        return ResultUtil.success(map);
+    }
+
+
+    /**
+     * 取消订单操作
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(id);
+        Integer uid = orderPrivateCar.getUserId();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+
+        if(null == orderPrivateCar){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderPrivateCar.getState() != 12){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+        OrderCancel orderCancel = null;
+        if(null == cancleId){
+            orderCancel = orderCancelService.query(id, 1, null, null, 1);
+        }else{
+            orderCancel = orderCancelService.selectById(cancleId);
+        }
+
+        CancleOrder query = cancleOrderService.query(orderPrivateCar.getOrderType(), 1, orderPrivateCar.getCompanyId());
+
+        if(null != query){
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String out_trade_no = sdf.format(new Date()) + 1 + id;
+
+            if(payType == 1){//微信支付
+                String appletsOpenId = "";
+                String tradeType = "APP";
+                if(type == 3){
+                    appletsOpenId = userInfo.getAppletsOpenId();
+                    tradeType = "JSAPI";
+                    if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                        return ResultUtil.error("支付异常,请重新授权登录小程序");
+                    }
+                }
+                resultUtil = payMoneyUtil.weixinpay("订单取消", "", out_trade_no,  query.getMoney().toString(), callbackPath + "/base/wxCancelOrderTaxi", tradeType, appletsOpenId);
+                if(resultUtil.getCode() == 200){
+                    paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, id, 1, 1, query.getMoney(), "", 1);//添加预支付数据
+                }
+            }
+            if(payType == 2){//支付宝支付
+                resultUtil = payMoneyUtil.alipay("取消订单支付", "取消订单", out_trade_no, query.getMoney().toString(), callbackPath + "/base/aliCancelOrderTaxi");
+                if(resultUtil.getCode() == 200){
+                    paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, id, 1, 2, query.getMoney(), "", 1);//添加预支付数据
+                }
+            }
+            if(payType == 3){//余额支付
+                if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
+                    return ResultUtil.error("余额不足,无法完成支付");
+                }
+
+                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                //添加交易明细
+                transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 1, id);
+                userInfoService.updateById(userInfo);
+
+                //解除小号绑定
+                if(orderPrivateCar.getBindId() != null){
+                    chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId());
+                }
+
+                orderPrivateCar.setState(10);
+                orderPrivateCar.setTelX("");
+                orderPrivateCar.setBindId("");
+                this.updateById(orderPrivateCar);
+
+                orderCancel.setState(2);
+                orderCancel.setPayType(3);
+                orderCancelService.updateById(orderCancel);
+
+                //添加已收入明细
+                incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getMoney());
+
+                this.deleteTask(id);//删除定时任务
+
+//                new Thread(new Runnable() {
+//                    @Override
+//                    public void run() {
+//                        pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+//                    }
+//                }).start();
+
+                //添加消息
+                systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1);
+            }
+        }
+        return resultUtil;
+    }
+
+
+    /**
+     * 推送抢单数据
+     * @param orderPrivateCar
+     * @throws Exception
+     */
+    public void pushOrder(OrderPrivateCar orderPrivateCar) throws Exception{
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
+                    String vehicle = redisUtil.getValue("VEHICLE");
+                    List<Integer> integers = new ArrayList<>();
+                    if(ToolUtil.isNotEmpty(vehicle)){
+                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+                    }
+                    Company query = companyCityService.query(String.valueOf(orderPrivateCar.getStartLon()), String.valueOf(orderPrivateCar.getStartLat()));//获取起点所属分公司
+                    List<PushOrder> querys = pushOrderService.querys(null, 1, query.getId());//获取需要推送的次数
+                    for(int i = 1; i <= querys.size(); i++){
+                        PushOrder pushOrder = pushOrderService.querys(i, 1, query.getId()).get(0);
+                        //获取空闲司机(智慧屏下单不需要判断车型)
+                        List<Driver> list = driverService.queryIdleDriver(1, orderPrivateCar.getOrderSource() == 6 ? null : orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                        if(list.size() > 0){
+                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                            for(Driver driver : list){//开始进行推送
+                                boolean bo = false;
+                                for(Integer integer : integers){
+                                    if(integer.compareTo(driver.getId()) == 0){
+                                        bo = true;
+                                        break;
+                                    }
+                                }
+                                if(bo){
+                                    continue;
+                                }
+                                pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime());
+                            }
+                        }
+                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+                        Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState();
+                        if(state > 1){
+                            break;
+                        }
+                        if(i == querys.size() && state == 1){
+                            pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
+                            orderIds.remove(orderPrivateCar.getId());
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).start();
+    }
+
+    @Override
+    public synchronized String getOrderNum() throws Exception{
+        int size = this.selectCount(null);
+        return "PRIVATE" + String.valueOf(1000000 + size + 1).substring(1);
+    }
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     */
+    @Override
+    public void deleteTask(Integer orderId){
+        //发送验证码短信
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("orderId", orderId + "");
+        params.add("orderType", "1");
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://driver-server/base/netty/deleteTask", requestEntity, String.class);
+        JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject.getIntValue("code") != 200){
+            System.err.println("调用driver-server出错了");
+        }
+    }
+
+    @Override
+    public Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        map.put("balance", userInfo.getBalance());
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        int i = userCouponRecordService.queryAvailable(uid, orderPrivateCar.getCompanyId(), 1, 1, orderPrivateCar.getOrderMoney());
+        i = i + userCouponRecordService.queryAvailable(uid, orderPrivateCar.getCompanyId(), 1, 0, orderPrivateCar.getOrderMoney());
+        map.put("coupon", i);
+        return map;
+    }
+
+    @Override
+    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderPrivateCar.getCompanyId(), 1, 1, orderPrivateCar.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderPrivateCar.getCompanyId(), 1, 0, orderPrivateCar.getOrderMoney(), pageNum, size);
+        list.addAll(list1);
+        return list;
+    }
+
+    @Override
+    public ResultUtil payPrivateCarOrder(Integer payType, Integer orderId, Integer couponId, Integer type) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        if(orderPrivateCar.getState() == 8 || orderPrivateCar.getState() == 9){
+            return ResultUtil.error("订单已完成支付,不允许重复支付");
+        }
+        if(orderPrivateCar.getState() != 7){
+            return ResultUtil.error("订单不在待支付状态,不允许支付");
+        }
+        Integer uid = orderPrivateCar.getUserId();
+        Double orderMoney = orderPrivateCar.getOrderMoney();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+        orderPrivateCar.setCouponMoney(0D);//初始化历史数据
+        orderPrivateCar.setCouponId(null);
+
+        //计算优惠券
+        UserCouponRecord userCouponRecord = null;
+        if(null != couponId){
+            userCouponRecord = userCouponRecordService.selectById(couponId);
+            if(userCouponRecord.getCompanyId() != orderPrivateCar.getCompanyId()){
+                return ResultUtil.error("优惠券不能用于此订单");
+            }
+            if(userCouponRecord.getState() == 2){
+                return ResultUtil.error("优惠券已使用");
+            }
+            if(userCouponRecord.getState() == 3){
+                return ResultUtil.error("优惠券已过期");
+            }
+            if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 1){
+                return ResultUtil.error("优惠券不能用于此类型订单");
+            }
+            if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){
+                return ResultUtil.error("优惠券不能用于此订单");
+            }
+            orderMoney = orderMoney - userCouponRecord.getMoney();
+            orderPrivateCar.setCouponMoney(userCouponRecord.getMoney());
+            orderPrivateCar.setCouponId(couponId);
+        }
+
+
+        //计算红包
+        UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderPrivateCar.getCompanyId(), 1, 1, orderMoney);
+        if(null != query && query.getMoney().compareTo(orderMoney) < 0){
+            orderMoney = orderMoney - query.getMoney();
+            orderPrivateCar.setRedPacketMoney(query.getMoney());
+            orderPrivateCar.setRedPacketId(query.getId());
+        }
+
+        //计算折扣
+        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderPrivateCar.getCompanyId());
+        if(null != query2){
+            Double special = query2.getSpecial();
+            orderPrivateCar.setDiscount(special);
+            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(special / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            if(orderMoney.compareTo(v) > 0){
+                orderPrivateCar.setDiscountMoney(orderMoney - v);
+                orderPrivateCar.setActivityId(query2.getId());
+                orderMoney = v;
+            }
+        }
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String out_trade_no = sdf.format(new Date()) + 1 + orderPrivateCar.getId();
+
+        if(payType == 1){//微信支付
+            String appletsOpenId = "";
+            String tradeType = "APP";
+            if(type == 3){
+                appletsOpenId = userInfo.getAppletsOpenId();
+                tradeType = "JSAPI";
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("支付异常,请重新授权登录小程序");
+                }
+            }
+            resultUtil = payMoneyUtil.weixinpay("完成订单", "", out_trade_no, orderMoney.toString(), callbackPath + "/base/wxPayOrderTaxi", tradeType, appletsOpenId);
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 1, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 2) {//支付宝支付
+            resultUtil = payMoneyUtil.alipay("订单完成支付", "支付订单", out_trade_no, orderMoney.toString(), callbackPath + "/base/aliPayOrderTaxi");
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderPrivateCar.getUserId(), 1, orderId, 1, 2, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 3){//余额支付
+            if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
+                return ResultUtil.error("余额不足,无法完成支付");
+            }
+
+            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+
+            SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
+
+            //添加交易明细
+            transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 1, orderId);
+            userInfoService.updateById(userInfo);
+
+            orderPrivateCar.setState(8);
+            orderPrivateCar.setPayType(3);
+            orderPrivateCar.setPayMoney(orderMoney);
+
+            //处理优惠券和红包
+            if(null != userCouponRecord){
+                userCouponRecord.setState(2);
+                userCouponRecord.setEndTime(new Date());
+                userCouponRecordService.updateById(userCouponRecord);
+            }
+            if(null != query){
+                query.setState(2);
+                query.setEndTime(new Date());
+                userRedPacketRecordService.updateById(query);
+            }
+
+            //添加已收入明细
+            Company company = companyService.selectById(orderPrivateCar.getCompanyId());
+            Double speMoney = company.getSpeMoney();
+            BigDecimal d = null;//企业收入
+            BigDecimal c = null;//司机收入
+            if(company.getIsSpeFixedOrProportional() == 2){//固定
+                d = new BigDecimal(speMoney);
+                c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机
+            }
+            if(company.getIsSpeFixedOrProportional() == 1){//比例
+                Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney();
+                d = new BigDecimal(price).multiply(new BigDecimal(speMoney).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+                c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+            }
+            incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
+            incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
+            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driverService.updateById(driver);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+                }
+            }).start();
+
+            systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1);
+
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){//上传数据
+                        pushMinistryOfTransportUtil.operatePay(orderId);
+                    }
+                }
+            }).start();
+        }
+
+        this.updateAllColumnById(orderPrivateCar);
+        return resultUtil;
+    }
+
+    @Override
+    public synchronized ResultUtil<BaseWarpper> queryRedMoney(Integer orderId) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        Integer companyId = orderPrivateCar.getCompanyId();
+
+        Map<String, Object> query = userActivityRedenvelopeService.query(companyId, orderPrivateCar.getTravelTime());
+        Double money = 0D;
+        BaseWarpper baseWarpper = new BaseWarpper();
+        if(null != query){
+            Integer type = Integer.valueOf(String.valueOf(query.get("type")));
+            if(type == 1){//固定金额
+                money = Double.valueOf(String.valueOf(query.get("money")));
+            }else{//随机金额
+                Double startMoney = Double.valueOf(String.valueOf(query.get("startMoney")));
+                Double endMoney = Double.valueOf(String.valueOf(query.get("endMoney")));
+                int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue();
+                Random random = new Random();
+                int num = random.nextInt(i);
+                money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            }
+            //判断当前红包是否大于剩余可领取总金额
+            if(money.compareTo(Double.valueOf(query.get("lavePrice").toString())) > 0){
+                baseWarpper.setAmount(0D);
+                return ResultUtil.success(baseWarpper);
+            }
+        }
+        baseWarpper.setAmount(money);
+
+        if(money > 0){
+            //添加临时红包数据
+            UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord();
+            userRedPacketRecord.setMoney(money);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(query.get("effective"))));
+            userRedPacketRecord.setExpirationTime(calendar.getTime());
+            userRedPacketRecord.setInsertTime(new Date());
+            userRedPacketRecord.setCompanyId(Integer.valueOf(String.valueOf(query.get("companyId"))));
+            userRedPacketRecord.setState(0);
+            userRedPacketRecord.setOrderId(orderPrivateCar.getId());
+            userRedPacketRecord.setOrderType(1);
+            userRedPacketRecord.setUserId(orderPrivateCar.getUserId());
+            userRedPacketRecordService.insert(userRedPacketRecord);
+        }
+
+        return ResultUtil.success(baseWarpper);
+    }
+
+    @Override
+    public synchronized ResultUtil shareRedEnvelope(Integer orderId) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        UserRedPacketRecord query = userRedPacketRecordService.query_(orderPrivateCar.getUserId(), orderPrivateCar.getCompanyId(), 0, 1, null);
+        if(null != query){
+            Double money = query.getMoney();
+            Map<String, Object> map = userActivityRedenvelopeService.query(orderPrivateCar.getCompanyId(), orderPrivateCar.getTravelTime());
+            Double laveMoney = Double.valueOf(String.valueOf(map.get("laveMoney")));
+            if(money.compareTo(laveMoney) > 0){
+                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+            }
+            //判断当前红包是否大于剩余可领取总金额
+            if(money.compareTo(Double.valueOf(map.get("lavePrice").toString())) > 0){
+                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+            }
+            double v = new BigDecimal(laveMoney).subtract(new BigDecimal(money)).doubleValue();
+
+            UserActivityRedenvelope id = userActivityRedenvelopeService.selectById(String.valueOf(map.get("id")));
+            id.setLaveMoney(v);
+            id.setLavePrice(new BigDecimal(id.getLavePrice() - money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            userActivityRedenvelopeService.updateById(id);
+
+            query.setState(1);
+            query.setRedPacketActivityId(id.getId());
+            userRedPacketRecordService.updateById(query);
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 取消订单支付后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    @Override
+    public void payCancelOrderPrivateCar(Integer id, String order_id, Integer type) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderPrivateCar.getUserId(), 1, Integer.valueOf(id), 1, type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderPrivateCar.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
+            orderPrivateCar.setState(10);
+            //解除小号绑定
+            if(orderPrivateCar.getBindId() != null){
+                chinaMobileUtil.midAxbUnBindSend(orderPrivateCar.getBindId());
+            }
+            orderPrivateCar.setBindId("");
+            orderPrivateCar.setTelX("");
+            this.updateById(orderPrivateCar);
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            OrderCancel query1 = orderCancelService.query(query.getOrderId(), query.getOrderType(), query.getAmount(), query.getPayType(), 1);
+            if (null != query1){
+                query1.setState(2);
+                orderCancelService.updateById(query1);
+            }
+
+            //添加已收入明细
+            incomeService.saveData(1, orderPrivateCar.getCompanyId(), 3, orderPrivateCar.getId(), 1, query.getAmount());
+
+            this.deleteTask(orderPrivateCar.getId());//删除定时任务
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+//            new Thread(new Runnable() {
+//                @Override
+//                public void run() {
+//                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+//                }
+//            }).start();
+
+            //添加消息
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1);
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+    @Override
+    public void payOrderPrivateCarCallback(Integer id, String order_id, Integer type) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderPrivateCar.getUserId(), 1, Integer.valueOf(id), 1, type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderPrivateCar.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 1, query.getOrderId());
+            orderPrivateCar.setState(8);
+            orderPrivateCar.setPayType(type);
+            orderPrivateCar.setPayMoney(query.getAmount());
+            this.updateById(orderPrivateCar);
+
+            UserInfo userInfo = userInfoService.selectById(orderPrivateCar.getUserId());
+            SysIntegral query1 = sysIntegralMapper.query(orderPrivateCar.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+            userInfoService.updateById(userInfo);
+
+            //处理优惠券和红包
+            if(null != orderPrivateCar.getCouponId()){
+                UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderPrivateCar.getCouponId());
+                userCouponRecord.setState(2);
+                userCouponRecord.setEndTime(new Date());
+                userCouponRecordService.updateById(userCouponRecord);
+            }
+            if(null != orderPrivateCar.getRedPacketId()){
+                UserRedPacketRecord userRedPacketRecord = userRedPacketRecordService.selectById(orderPrivateCar.getRedPacketId());
+                userRedPacketRecord.setState(2);
+                userRedPacketRecord.setEndTime(new Date());
+                userRedPacketRecordService.updateById(userRedPacketRecord);
+            }
+
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            //添加已收入明细
+            Company company = companyService.selectById(orderPrivateCar.getCompanyId());
+            Double taxi = company.getSpeMoney();
+            BigDecimal d = null;//企业收入
+            BigDecimal c = null;//司机收入
+            if(company.getIsSpeFixedOrProportional() == 2){//固定
+                d = new BigDecimal(taxi);
+                c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+            }
+            if(company.getIsSpeFixedOrProportional() == 1){//比例
+                Double price = orderPrivateCar.getStartMoney() + orderPrivateCar.getMileageMoney() + orderPrivateCar.getWaitMoney() + orderPrivateCar.getDurationMoney() + orderPrivateCar.getLongDistanceMoney();
+                d = new BigDecimal(price).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+                c = new BigDecimal(orderPrivateCar.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+            }
+            incomeService.saveData(1, orderPrivateCar.getCompanyId(), 2, orderPrivateCar.getId(), 1, d.doubleValue());
+            incomeService.saveData(2, orderPrivateCar.getDriverId(), 2, orderPrivateCar.getId(), 1, c.doubleValue());
+            Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driverService.updateById(driver);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+                    pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), 0);
+                }
+            }).start();
+
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderPrivateCar.getUserId(), 1);
+
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){//上传数据
+                        pushMinistryOfTransportUtil.operatePay(orderPrivateCar.getId());
+                    }
+                }
+            }).start();
+
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+    @Override
+    public List<OrderPrivateCar> queryOrder(Integer uid, Integer... state) throws Exception {
+        return orderPrivateCarMapper.queryByState_(uid, state);
+    }
+
+    @Override
+    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        List<Map<String, Object>> maps = orderPrivateCarMapper.queryMyOrderList(uid, pageNum, size);
+        for(Map<String, Object> map : maps){
+            if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+                map.put("state", map.get("oldState"));
+            }
+        }
+        return maps;
+    }
+
+    @Override
+    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney, Double endMoney, Integer uid) throws Exception {
+        startTime = dateUtil.getStartOrEndDate(startTime, "start");
+        endTime = dateUtil.getStartOrEndDate(endTime, "end");
+        return orderPrivateCarMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+    }
+
+    @Override
+    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception {
+        Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId);
+        if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
+            OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+            orderPrivateCar.setReassignNotice(0);
+            this.updateById(orderPrivateCar);
+        }
+        if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+            map.put("state", map.get("oldState"));
+        }
+        if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){
+            map.put("redPacketMoney", null);
+            map.put("couponMoney", null);
+        }
+
+        String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
+        map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
+        map.put("orderType", 1);
+        return map;
+    }
+
+    @Override
+    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception {
+        return orderPrivateCarMapper.queryMyTravelRecord(uid);
+    }
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
+        OrderPrivateCar orderPrivateCar = this.selectById(orderId);
+        //计算预计距离和剩余时间
+        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderPrivateCar.getDriverId()));
+        if(null == value || "".equals(value)){
+            System.err.println("司机没有上传位置信息");
+
+            //调用获取轨迹中的数据
+            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2);
+            if(list.size() > 0){
+                Map<String, Object> map = list.get(list.size() - 1);
+                value = map.get("lon") + "," + map.get("lat");
+            }
+
+        }
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), 1);
+        String d = "0";
+        String t = "0";
+        if(null == distance){
+            System.err.println("查询距离出错了");
+        }else{
+            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+        }
+        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
+        orderServerWarpper.setOrderId(orderPrivateCar.getId());
+        orderServerWarpper.setOrderType(1);
+        orderServerWarpper.setState(orderPrivateCar.getState());
+        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
+        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+        orderServerWarpper.setReassignNotice(orderPrivateCar.getReassignNotice());
+        if(orderPrivateCar.getState() == 2 || orderPrivateCar.getState() == 3){//前往预约地
+            orderServerWarpper.setReservationMileage(d);
+            orderServerWarpper.setReservationTime(t);
+            orderServerWarpper.setServedMileage("0");
+            orderServerWarpper.setServedTime("0");
+            orderServerWarpper.setLaveMileage("0");
+            orderServerWarpper.setLaveTime("0");
+        }
+        if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中
+            distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), 1);
+            if(null == distance){
+                System.err.println("查询距离出错了");
+            }else{
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            }
+            orderServerWarpper.setReservationMileage("0");
+            orderServerWarpper.setReservationTime("0");
+            orderServerWarpper.setServedMileage(String.valueOf((null == orderPrivateCar.getMileage() ? 0 : orderPrivateCar.getMileage()) / 1000));
+            orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000).intValue() + "");
+            orderServerWarpper.setLaveMileage(d);
+            orderServerWarpper.setLaveTime(t);
+        }
+
+        return orderServerWarpper;
+    }
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception {
+        return orderPrivateCarMapper.queryRedEnvelope(uid);
+    }
+
+    /**
+     * 获取下单推送完后没有司机接单的提醒
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public EndPushWarpper queryEndPush(Integer uid) throws Exception {
+        List<OrderPrivateCar> list = orderPrivateCarMapper.queryByState(uid, null, null, 1);
+        EndPushWarpper endPushWarpper = new EndPushWarpper();
+        if(list.size() > 0){
+            OrderPrivateCar orderPrivateCar = list.get(0);
+            if(!orderIds.contains(orderPrivateCar.getId())){
+                endPushWarpper.setOrderId(orderPrivateCar.getId());
+                endPushWarpper.setOrderType(1);
+                endPushWarpper.setState(1);
+                List<PushOrder> querys = pushOrderService.querys(null, 2, orderPrivateCar.getCompanyId());//获取需要推送的次数
+                int time = 0;
+                for(int i = 1; i <= querys.size(); i++){
+                    PushOrder pushOrder = pushOrderService.querys(i, 2, orderPrivateCar.getCompanyId()).get(0);
+                    time += pushOrder.getPushTime() * 1000;
+                }
+                //当前时间减去推单总时间大于下单时间
+                if((System.currentTimeMillis() - time) > orderPrivateCar.getInsertTime().getTime()){
+                    endPushWarpper.setState(2);
+                }
+            }
+        }
+        return endPushWarpper;
+    }
+
+    @Override
+    public ResultUtil<BaseWarpper> directCallCar(String phone, String placementLon, String placementLat, String startLon, String startLat, String startAddress, String deviceCode) throws Exception {
+        //查找与起点匹配的企业(经营范围)
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLon, startLat);
+        Company query = companyCityService.query(geocode.get("districtCode"));
+        if(null == query){
+            return ResultUtil.error("起点暂无企业提供服务");
+        }
+
+        UserInfo userInfo = userInfoMapper.queryByPhone(phone);
+        if(null == userInfo){
+            userInfo = new UserInfo();
+            userInfo.setPhone(phone);
+            userInfo.setPassWord(ShiroKit.md5("", "&a.s"));
+            userInfo.setNickName(userInfoService.getDefaultName());
+            userInfo.setIsAuth(1);
+            userInfo.setConsumption(0D);
+            userInfo.setBalance(0D);
+            userInfo.setState(1);
+
+            //用户所属企业
+            if(null != geocode){
+                userInfo.setCompanyId(null != query ? query.getId() : null);
+                userInfo.setRegistAreaCode(geocode.get("districtCode"));
+            }
+            userInfoService.insert(userInfo);
+
+            userInfoService.addCoupon(userInfo);//添加优惠券
+
+            UserInfo finalUserInfo = userInfo;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){
+                        //上传数据
+                        pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId());
+                    }
+                }
+            }).start();
+
+        }
+        List<Map<String, Object>> list = serverCarModelMapper.queryServerCarModel(1);
+        if(list.size() == 0){
+            return ResultUtil.error("暂无可用的车型");
+        }
+        Date travelTime = new Date(System.currentTimeMillis() + 300000);
+
+
+        OrderTaxi orderTaxi = new OrderTaxi();
+        orderTaxi.setType(1);
+        orderTaxi.setUserId(userInfo.getId());
+        orderTaxi.setOrderNum(this.getOrderNum());
+        orderTaxi.setPlacementLon(Double.valueOf(placementLon));
+        orderTaxi.setPlacementLat(Double.valueOf(placementLat));
+        orderTaxi.setStartLon(Double.valueOf(startLon));
+        orderTaxi.setStartLat(Double.valueOf(startLat));
+        orderTaxi.setStartAddress(startAddress);
+        orderTaxi.setSubstitute(0);
+        orderTaxi.setPassengers(userInfo.getNickName());
+        orderTaxi.setPassengersPhone(phone);
+        orderTaxi.setState(1);
+        orderTaxi.setInsertTime(new Date());
+        orderTaxi.setTravelTime(travelTime);
+        orderTaxi.setOrderType(1);
+        orderTaxi.setOrderSource(7);
+        orderTaxi.setIsReassign(1);
+        orderTaxi.setDeviceCode(deviceCode);
+        orderTaxi.setIsDelete(1);
+
+        ResultUtil<BaseWarpper> resultUtil = orderTaxiService.taxiOrder(orderTaxi, userInfo.getId());
+        return resultUtil;
+    }
+
+    @Override
+    public List<SmartScreenOrderVo> querySmartScreenOrder(String deviceCode, String lonLat) throws Exception {
+        List<OrderTaxi> list = orderTaxiService.selectList(new EntityWrapper<OrderTaxi>().eq("orderSource", 7).eq("deviceCode", deviceCode).eq("isDelete", 1).in("state", Arrays.asList(1, 2, 3, 4)));
+        List<SmartScreenOrderVo> orderVos = new ArrayList<>();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for (OrderTaxi orderTaxi : list) {
+            SmartScreenOrderVo smartScreenOrderVo = new SmartScreenOrderVo();
+            smartScreenOrderVo.setId(orderTaxi.getId());
+            smartScreenOrderVo.setUserPhone(orderTaxi.getPassengersPhone());
+            smartScreenOrderVo.setInsertTime(sdf.format(orderTaxi.getInsertTime()));
+            smartScreenOrderVo.setDistance(0D);
+            smartScreenOrderVo.setMinute(0);
+            if(null != orderTaxi.getDriverId()){
+                Driver driver = driverService.selectById(orderTaxi.getDriverId());
+                Car car = carMapper.selectById(driver.getCarId());
+                smartScreenOrderVo.setCarLicensePlate(car.getCarLicensePlate());
+                smartScreenOrderVo.setDriverPhone(driver.getPhone());
+                String value = redisUtil.getValue("DRIVER" + driver.getId());//lon + "," + lat
+                if(ToolUtil.isNotEmpty(value)){
+                    Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderTaxi.getStartLon() + "," + orderTaxi.getStartLat(), 1);
+                    if(null != distance){
+                        BigDecimal bigDecimal = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000)).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+                        int duration = Double.valueOf(Integer.valueOf(distance.get("duration")) / 60).intValue();
+                        smartScreenOrderVo.setDistance(bigDecimal.doubleValue());
+                        smartScreenOrderVo.setMinute(duration);
+                    }
+                }
+
+            }
+            smartScreenOrderVo.setStatus(orderTaxi.getState());
+            smartScreenOrderVo.setArrivalTime(null == orderTaxi.getArriveTime() ? "" : sdf.format(orderTaxi.getArriveTime()));
+            orderVos.add(smartScreenOrderVo);
+        }
+        return orderVos;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthIntercepter.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthIntercepter.java
new file mode 100644
index 0000000..72de0e6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthIntercepter.java
@@ -0,0 +1,37 @@
+package com.stylefeng.guns.modular.system.auth;
+
+import com.alibaba.fastjson.JSON;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@Component
+public class AuthIntercepter implements HandlerInterceptor {
+	private final static Logger log = LoggerFactory.getLogger(AuthIntercepter.class);
+	
+	@Autowired
+	AuthService authService;
+
+	@Override
+	public boolean preHandle(HttpServletRequest req, HttpServletResponse res, Object handler) throws IOException {
+		String appid = req.getParameter("appid");
+		String sign = req.getParameter("sign");
+        ResultUtil resultUtil = authService.checkSyncAuth(appid, sign, req);
+        if (resultUtil.getCode() != 200) {
+			res.setStatus(HttpStatus.OK.value());
+			res.setHeader("Content-type", "text/html;charset=UTF-8");
+			res.getWriter().print(JSON.toJSONString(resultUtil));//Res.Failure("req timeout, please try again")
+			return false;
+		}
+		return true;
+	}
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthService.java
new file mode 100644
index 0000000..03ca925
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthService.java
@@ -0,0 +1,51 @@
+package com.stylefeng.guns.modular.system.auth;
+
+
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.web.util.HtmlUtils;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Service
+public class AuthService {
+	
+	private final static Logger log = LoggerFactory.getLogger(AuthService.class);
+
+	public static final AuthService me = new AuthService();
+	
+	/**
+	 * 鉴权
+	 * @param appid
+	 * @param sign
+	 * @param requset
+	 * @return
+	 */
+	public ResultUtil checkSyncAuth(String appid, String sign, HttpServletRequest requset) {
+		try {
+			if (StringUtils.isBlank(sign)) {
+				return ResultUtil.sign();
+			}
+			// 1.鉴权
+			String signUrl = AuthenticationKit.getSignUrl(requset, "sign");
+			signUrl = signUrl.replaceAll("& #40;", "\\(");
+			signUrl = signUrl.replaceAll("& #41;", "\\)");
+			String signUrlEncode = AuthenticationKit.signUrlEncode(signUrl, appid);
+			if(sign.indexOf(" ") != -1 && signUrlEncode.indexOf("+") != -1){//处理前后端加密差异
+				signUrlEncode = signUrlEncode.replaceAll("\\+", " ");
+			}
+
+			// 签名无
+			if (StringUtils.isBlank(sign) || !sign.equals(signUrlEncode)) {
+				return ResultUtil.sign();
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+			return ResultUtil.runErr();
+		}
+		return ResultUtil.success();
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthenticationKit.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthenticationKit.java
new file mode 100644
index 0000000..e64c052
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/AuthenticationKit.java
@@ -0,0 +1,233 @@
+package com.stylefeng.guns.modular.system.auth;
+
+import org.apache.commons.lang.StringUtils;
+import org.apache.tomcat.util.codec.binary.Base64;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.*;
+
+/**
+ * 
+ * 接口鉴权工具类
+ * 
+ * @author gwx 2017-12-23
+ *
+ */
+public class AuthenticationKit {
+	public static final String utf8="UTF-8";
+	
+	/**
+	 * 返回64 位 token
+	 * 
+	 * @param key 自定义安全字符
+	 * @return
+	 * @throws Exception
+	 */
+	public static String getToken(String key) throws Exception {
+		// 随机生成 32位字符
+		String salt = HashKit.generateSaltForSha256();
+		// 获取当前时间
+		long cur = System.currentTimeMillis();
+		// 生成64位token
+		String access_token = getToken256(key, salt, cur);
+		return access_token;
+	}
+	
+	/**
+	 * 返回64 位 token
+	 * 
+	 * @param key
+	 * @return
+	 * @throws Exception
+	 */
+	public static String getToken256(String key, String salt, long cur) throws Exception {
+		// 生成64位token
+		String access_token = HashKit.sha256(salt + cur + key);
+		return access_token;
+	}
+
+	/**
+	 * 返回到秒
+	 * 
+	 * @return
+	 */
+	public static String createTimestamp() {
+		long l = System.currentTimeMillis();
+		return Long.toString(l / 1000);
+	}
+
+	/**
+	 * 返回noce 不带 短杠"-"
+	 * 
+	 * @return
+	 */
+	public static String createNonceStr() {
+		return getUUID();
+	}
+
+	public static String getUUID() {
+		UUID uuid = UUID.randomUUID();
+		String str = uuid.toString();
+		str = str.replaceAll("-", "");
+		return str;
+	}
+
+	/**
+	 * 组装路径
+	 * 
+	 * @param params
+	 * @return
+	 */
+	public static String localSignParam(Map<String, String> params) {
+		return localSignUrl(null, params, false);
+	}
+
+	
+	/**
+	 * 组装签名路径
+	 * @param url
+	 * @param params
+	 * @return
+	 */
+	public static String localSignUrl(String url, Map<String, String> params, boolean urlEncode) {
+        StringBuilder strBuilder = new StringBuilder();
+//        if(StringUtils.isNotBlank(url) && url.lastIndexOf("?")==-1){
+//        	strBuilder.append(url).append("?");
+//        }
+
+		Set es = params.entrySet();//所有参与传参的参数按照accsii排序(升序)
+		Iterator it = es.iterator();
+		while(it.hasNext()) {
+			Map.Entry entry = (Map.Entry)it.next();
+			String k = (String)entry.getKey();
+			Object v = entry.getValue();
+			if(null != v && !"".equals(v)) {
+				strBuilder.append(k + "=" + v + "&");
+			}
+		}
+		return strBuilder.substring(0, strBuilder.length() - 1);
+
+//        for (String key : params.keySet()) {
+//            if (params.get(key) != null) {
+//            	String lowerKey = key.toLowerCase();
+//            	String encodeKey = lowerKey;
+//            	String encodedValue = params.get(key);
+//                if (urlEncode){
+//                	encodeKey = UrlEncoderUtils.encode(lowerKey);
+//                	encodedValue = UrlEncoderUtils.encode(encodedValue);
+//                }
+//                if (!seeOne) {
+//                	seeOne = true;
+//                } else {
+//                	strBuilder.append("&");
+//                }
+//                strBuilder.append(encodeKey).append("=").append(encodedValue);
+//            }
+//        }
+//        return strBuilder.toString();
+    }
+
+
+	/**
+	 * 加密签名路径生成签名
+	 * 
+	 * @param signUrl
+	 *            /token?appid=12345&timestamp=1512440267&nonce=12345
+	 * @param encryptKey
+	 * @return
+	 * @throws Exception
+	 */
+	public static String signUrlEncode(String signUrl, String encryptKey) throws Exception {
+		byte[] signByte = HMACSHA1.HmacSHA1Encrypt(signUrl, encryptKey);
+		String localSign = Base64.encodeBase64String(signByte);
+		return localSign;
+	}
+
+	/**
+	 * 返回鉴权 签名路径
+	 * 
+	 * @param req
+	 * @return
+	 */
+	public static String getSignUrl(HttpServletRequest req) {
+		return getSignUrl(req,"");
+	}
+
+	/**
+	 * 服务端 获取 客户端请求 组装验证签名
+	 * @param req
+	 * @param delParams 移除不相关 的签名参数
+	 * @return
+	 */
+	public static String getSignUrl(HttpServletRequest req, String... delParams) {
+		// 获取相对的访问路径
+		String url = req.getServletPath();
+		Map<String, String> paramMap = packageRequestGetParams(req);
+		if (paramMap.size() > 0) {
+			// 删除
+			for (int i = 0, len = delParams.length; i < len; i++) {
+				paramMap.remove(delParams[i]);
+			}
+			return localSignUrl(url, paramMap, false);
+		}
+		return null;
+	}
+
+
+	/**
+	 * 组装签名路径 客户端测试用
+	 * @param url api访问地址 "/apid"
+	 * @param appid 
+	 * @return
+	 */
+	public static String getSignUrl(String url, String appid, Map<String, String> queryParas) {
+		Map<String, String> params = new TreeMap<String, String>();
+		params.put("appid", appid);
+		params.put("nonce", createNonceStr());
+		params.put("timestamp", createTimestamp());
+		if(queryParas!=null && queryParas.size()>0){
+			params.putAll(queryParas);
+		}
+		return localSignUrl(url, params, false);
+	}
+	
+	/**
+	 * 组装签名路径 客户端测试用
+	 * @param url api访问地址 "/apid"
+	 * @param appid 
+	 * @return
+	 */
+	public static String getSignUrl(String url, String appid) {
+		return getSignUrl(url, appid, "");
+	}
+	
+	/**
+	 * 
+	 * @param url
+	 * @param appid
+	 * @param params
+	 * @return
+	 */
+	public static String getSignUrl(String url, String appid, String params) {
+		String urlTmp = getSignUrl(url, appid, new HashMap<String,String>());
+		return urlTmp + UrlEncoderUtils.encode(params);
+	}
+
+	/**
+	 * 解析get参数返回treemap
+	 * @param req
+	 * @return
+	 */
+	public static Map<String, String> packageRequestGetParams(
+			HttpServletRequest req) {
+		Map<String, String> paramMap = new TreeMap<String, String>();
+		Enumeration pNames = req.getParameterNames();
+		while (pNames.hasMoreElements()) {
+			String key = (String) pNames.nextElement();
+			String value = req.getParameter(key);
+			paramMap.put(key, value);
+		}
+		return paramMap;
+	}
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/Configuration.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/Configuration.java
new file mode 100644
index 0000000..cd4da6e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/Configuration.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.auth;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+
+@Component
+public class Configuration implements WebMvcConfigurer {
+
+    @Autowired
+    private AuthIntercepter authIntercepter;
+
+    /**
+     * 重写添加拦截器方法并添加配置拦截器
+     *
+     * @param registry
+     */
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+//        registry.addInterceptor(authIntercepter).addPathPatterns("/api/**")
+//                .excludePathPatterns("/base/**");
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HMACSHA1.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HMACSHA1.java
new file mode 100644
index 0000000..44b89ef
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HMACSHA1.java
@@ -0,0 +1,63 @@
+package com.stylefeng.guns.modular.system.auth;
+
+import org.apache.tomcat.util.codec.binary.Base64;
+
+import javax.crypto.Mac;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+
+public class HMACSHA1 {
+
+	private static final String MAC_NAME = "HmacSHA1";
+	private static final String ENCODING = "UTF-8";
+
+	/*
+	 * 展示了一个生成指定算法密钥的过程 初始化HMAC密钥
+	 * 
+	 * @return
+	 * 
+	 * @throws Exception
+	 * 
+	 * public static String initMacKey() throws Exception { //得到一个 指定算法密钥的密钥生成器
+	 * KeyGenerator KeyGenerator keyGenerator
+	 * =KeyGenerator.getInstance(MAC_NAME); //生成一个密钥 SecretKey secretKey
+	 * =keyGenerator.generateKey(); return null; }
+	 */
+
+	/**
+	 * 使用 HMAC-SHA1 签名方法对对encryptText进行签名
+	 * 
+	 * @param encryptText
+	 *            被签名的字符串
+	 * @param encryptKey
+	 *            密钥
+	 * @return
+	 * @throws Exception
+	 */
+	public static byte[] HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception {
+		byte[] data = encryptKey.getBytes(ENCODING);
+		// 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
+		Mac mac = Mac.getInstance(MAC_NAME);
+		SecretKey secretKey = new SecretKeySpec(data, MAC_NAME);
+		// 生成一个指定 Mac 算法 的 Mac 对象
+		// 用给定密钥初始化 Mac 对象
+		mac.init(secretKey);
+
+		byte[] text = encryptText.getBytes(ENCODING);
+		// 完成 Mac 操作
+		return mac.doFinal(text);
+	}
+
+	public static void main(String[] args) {
+
+		String encryptText = "123";
+		String encryptKey = "adc";
+		try {
+			byte[] b = HmacSHA1Encrypt(encryptText, encryptKey);
+			String str = HashKit.toHex(b);
+			String str2 = new String(Base64.encodeBase64(b));
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HashKit.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HashKit.java
new file mode 100644
index 0000000..9c42b0a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/HashKit.java
@@ -0,0 +1,109 @@
+package com.stylefeng.guns.modular.system.auth;
+/**
+ * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.security.MessageDigest;
+
+public class HashKit {
+
+	public static final long FNV_OFFSET_BASIS_64 = 0xcbf29ce484222325L;
+	public static final long FNV_PRIME_64 = 0x100000001b3L;
+
+	private static final java.security.SecureRandom random = new java.security.SecureRandom();
+	private static final char[] HEX_DIGITS = "0123456789abcdef".toCharArray();
+	private static final char[] CHAR_ARRAY = "_-0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
+			.toCharArray();
+
+	public static long fnv1a64(String key) {
+		long hash = FNV_OFFSET_BASIS_64;
+		for (int i = 0, size = key.length(); i < size; i++) {
+			hash ^= key.charAt(i);
+			hash *= FNV_PRIME_64;
+		}
+		return hash;
+	}
+
+	public static String md5(String srcStr) {
+		return hash("MD5", srcStr);
+	}
+
+	public static String sha1(String srcStr) {
+		return hash("SHA-1", srcStr);
+	}
+
+	public static String sha256(String srcStr) {
+		return hash("SHA-256", srcStr);
+	}
+
+	public static String sha384(String srcStr) {
+		return hash("SHA-384", srcStr);
+	}
+
+	public static String sha512(String srcStr) {
+		return hash("SHA-512", srcStr);
+	}
+
+	public static String hash(String algorithm, String srcStr) {
+		try {
+			MessageDigest md = MessageDigest.getInstance(algorithm);
+			byte[] bytes = md.digest(srcStr.getBytes("utf-8"));
+			return toHex(bytes);
+		} catch (Exception e) {
+			throw new RuntimeException(e);
+		}
+	}
+
+	public static String toHex(byte[] bytes) {
+		StringBuilder ret = new StringBuilder(bytes.length * 2);
+		for (int i = 0; i < bytes.length; i++) {
+			ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
+			ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
+		}
+		return ret.toString();
+	}
+
+	/**
+	 * md5 128bit 16bytes sha1 160bit 20bytes sha256 256bit 32bytes sha384
+	 * 384bit 48bytes sha512 512bit 64bytes
+	 */
+	public static String generateSalt(int saltLength) {
+		StringBuilder salt = new StringBuilder(saltLength);
+		for (int i = 0; i < saltLength; i++) {
+			salt.append(CHAR_ARRAY[random.nextInt(CHAR_ARRAY.length)]);
+		}
+		return salt.toString();
+	}
+
+	public static String generateSaltForSha256() {
+		return generateSalt(32);
+	}
+
+	public static String generateSaltForSha512() {
+		return generateSalt(64);
+	}
+
+	public static boolean slowEquals(byte[] a, byte[] b) {
+		if (a == null || b == null) {
+			return false;
+		}
+
+		int diff = a.length ^ b.length;
+		for (int i = 0; i < a.length && i < b.length; i++) {
+			diff |= a[i] ^ b[i];
+		}
+		return diff == 0;
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/UrlEncoderUtils.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/UrlEncoderUtils.java
new file mode 100644
index 0000000..0bb025b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/auth/UrlEncoderUtils.java
@@ -0,0 +1,44 @@
+package com.stylefeng.guns.modular.system.auth;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+public class UrlEncoderUtils {
+
+    private static final String PATH_DELIMITER = "/";
+    private static final Logger log = LoggerFactory.getLogger(UrlEncoderUtils.class);
+
+    public static String encode(String originUrl) {
+        try {
+            return URLEncoder.encode(originUrl, "UTF-8").replace("+", "%20").replace("*", "%2A")
+                    .replace("%7E", "~");
+        } catch (UnsupportedEncodingException e) {
+            log.error("URLEncoder error, encode utf8, exception: {}", e);
+        }
+        return null;
+    }
+
+    // encode路径, 不包括分隔符
+    public static String encodeEscapeDelimiter(String urlPath) {
+        StringBuilder pathBuilder = new StringBuilder();
+        String[] pathSegmentsArr = urlPath.split(PATH_DELIMITER);
+
+        boolean isFirstSegMent = true;
+        for (String pathSegment : pathSegmentsArr) {
+            if (isFirstSegMent) {
+                pathBuilder.append(encode(pathSegment));
+                isFirstSegMent = false;
+            } else {
+                pathBuilder.append(PATH_DELIMITER).append(encode(pathSegment));
+            }
+        }
+        if (urlPath.endsWith(PATH_DELIMITER)) {
+            pathBuilder.append(PATH_DELIMITER);
+        }
+        return pathBuilder.toString();
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/BlackboardController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/BlackboardController.java
new file mode 100644
index 0000000..49d2df0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/BlackboardController.java
@@ -0,0 +1,35 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.modular.system.service.INoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 总览信息
+ *
+ * @author fengshuonan
+ * @Date 2017年3月4日23:05:54
+ */
+@Controller
+@RequestMapping("/blackboard")
+public class BlackboardController extends BaseController {
+
+    @Autowired
+    private INoticeService noticeService;
+
+    /**
+     * 跳转到黑板
+     */
+    @RequestMapping("")
+    public String blackboard(Model model) {
+        List<Map<String, Object>> notices = noticeService.list(null);
+        model.addAttribute("noticeList", notices);
+        return "/blackboard.html";
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DeptController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DeptController.java
new file mode 100644
index 0000000..032b0eb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DeptController.java
@@ -0,0 +1,164 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.dictmap.DeptDict;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Dept;
+import com.stylefeng.guns.modular.system.service.IDeptService;
+import com.stylefeng.guns.modular.system.warpper.DeptWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 部门控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年2月17日20:27:22
+ */
+@Controller
+@RequestMapping("/dept")
+public class DeptController extends BaseController {
+
+    private String PREFIX = "/system/dept/";
+
+    @Autowired
+    private IDeptService deptService;
+
+    /**
+     * 跳转到部门管理首页
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "dept.html";
+    }
+
+    /**
+     * 跳转到添加部门
+     */
+    @RequestMapping("/dept_add")
+    public String deptAdd() {
+        return PREFIX + "dept_add.html";
+    }
+
+    /**
+     * 跳转到修改部门
+     */
+    @Permission
+    @RequestMapping("/dept_update/{deptId}")
+    public String deptUpdate(@PathVariable Integer deptId, Model model) {
+        Dept dept = deptService.selectById(deptId);
+        model.addAttribute(dept);
+        model.addAttribute("pName", ConstantFactory.me().getDeptName(dept.getPid()));
+        LogObjectHolder.me().set(dept);
+        return PREFIX + "dept_edit.html";
+    }
+
+    /**
+     * 获取部门的tree列表
+     */
+    @RequestMapping(value = "/tree")
+    @ResponseBody
+    public List<ZTreeNode> tree() {
+        List<ZTreeNode> tree = this.deptService.tree();
+        tree.add(ZTreeNode.createParent());
+        return tree;
+    }
+
+    /**
+     * 新增部门
+     */
+    @BussinessLog(value = "添加部门", key = "simplename", dict = DeptDict.class)
+    @RequestMapping(value = "/add")
+    @Permission
+    @ResponseBody
+    public Object add(Dept dept) {
+        if (ToolUtil.isOneEmpty(dept, dept.getSimplename())) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        //完善pids,根据pid拿到pid的pids
+        deptSetPids(dept);
+        return this.deptService.insert(dept);
+    }
+
+    /**
+     * 获取所有部门列表
+     */
+    @RequestMapping(value = "/list")
+    @Permission
+    @ResponseBody
+    public Object list(String condition) {
+        List<Map<String, Object>> list = this.deptService.list(condition);
+        return super.warpObject(new DeptWarpper(list));
+    }
+
+    /**
+     * 部门详情
+     */
+    @RequestMapping(value = "/detail/{deptId}")
+    @Permission
+    @ResponseBody
+    public Object detail(@PathVariable("deptId") Integer deptId) {
+        return deptService.selectById(deptId);
+    }
+
+    /**
+     * 修改部门
+     */
+    @BussinessLog(value = "修改部门", key = "simplename", dict = DeptDict.class)
+    @RequestMapping(value = "/update")
+    @Permission
+    @ResponseBody
+    public Object update(Dept dept) {
+        if (ToolUtil.isEmpty(dept) || dept.getId() == null) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        deptSetPids(dept);
+        deptService.updateById(dept);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 删除部门
+     */
+    @BussinessLog(value = "删除部门", key = "deptId", dict = DeptDict.class)
+    @RequestMapping(value = "/delete")
+    @Permission
+    @ResponseBody
+    public Object delete(@RequestParam Integer deptId) {
+
+        //缓存被删除的部门名称
+        LogObjectHolder.me().set(ConstantFactory.me().getDeptName(deptId));
+
+        deptService.deleteDept(deptId);
+
+        return SUCCESS_TIP;
+    }
+
+    private void deptSetPids(Dept dept) {
+        if (ToolUtil.isEmpty(dept.getPid()) || dept.getPid().equals(0)) {
+            dept.setPid(0);
+            dept.setPids("[0],");
+        } else {
+            int pid = dept.getPid();
+            Dept temp = deptService.selectById(pid);
+            String pids = temp.getPids();
+            dept.setPid(pid);
+            dept.setPids(pids + "[" + pid + "],");
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DictController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DictController.java
new file mode 100644
index 0000000..780a39f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/DictController.java
@@ -0,0 +1,142 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.dictmap.DictMap;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Dict;
+import com.stylefeng.guns.modular.system.service.IDictService;
+import com.stylefeng.guns.modular.system.warpper.DictWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 字典控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年4月26日 12:55:31
+ */
+@Controller
+@RequestMapping("/dict")
+public class DictController extends BaseController {
+
+    private String PREFIX = "/system/dict/";
+
+    @Autowired
+    private IDictService dictService;
+
+    /**
+     * 跳转到字典管理首页
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "dict.html";
+    }
+
+    /**
+     * 跳转到添加字典
+     */
+    @RequestMapping("/dict_add")
+    public String deptAdd() {
+        return PREFIX + "dict_add.html";
+    }
+
+    /**
+     * 跳转到修改字典
+     */
+    @Permission(Const.ADMIN_NAME)
+    @RequestMapping("/dict_edit/{dictId}")
+    public String deptUpdate(@PathVariable Integer dictId, Model model) {
+        Dict dict = dictService.selectById(dictId);
+        model.addAttribute("dict", dict);
+        List<Dict> subDicts = dictService.selectList(new EntityWrapper<Dict>().eq("pid", dictId));
+        model.addAttribute("subDicts", subDicts);
+        LogObjectHolder.me().set(dict);
+        return PREFIX + "dict_edit.html";
+    }
+
+    /**
+     * 新增字典
+     *
+     * @param dictValues 格式例如   "1:启用;2:禁用;3:冻结"
+     */
+    @BussinessLog(value = "添加字典记录", key = "dictName,dictValues", dict = DictMap.class)
+    @RequestMapping(value = "/add")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object add(String dictCode,String dictTips,String dictName, String dictValues) {
+        if (ToolUtil.isOneEmpty(dictCode,dictName, dictValues)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        this.dictService.addDict(dictCode,dictName,dictTips,dictValues);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 获取所有字典列表
+     */
+    @RequestMapping(value = "/list")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object list(String condition) {
+        List<Map<String, Object>> list = this.dictService.list(condition);
+        return super.warpObject(new DictWarpper(list));
+    }
+
+    /**
+     * 字典详情
+     */
+    @RequestMapping(value = "/detail/{dictId}")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object detail(@PathVariable("dictId") Integer dictId) {
+        return dictService.selectById(dictId);
+    }
+
+    /**
+     * 修改字典
+     */
+    @BussinessLog(value = "修改字典", key = "dictName,dictValues", dict = DictMap.class)
+    @RequestMapping(value = "/update")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object update(Integer dictId,String dictCode,String dictName, String dictTips,String dictValues) {
+        if (ToolUtil.isOneEmpty(dictId, dictCode, dictName, dictValues)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        dictService.editDict(dictId, dictCode,dictName, dictTips,dictValues);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 删除字典记录
+     */
+    @BussinessLog(value = "删除字典记录", key = "dictId", dict = DictMap.class)
+    @RequestMapping(value = "/delete")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object delete(@RequestParam Integer dictId) {
+
+        //缓存被删除的名称
+        LogObjectHolder.me().set(ConstantFactory.me().getDictName(dictId));
+
+        this.dictService.delteDict(dictId);
+        return SUCCESS_TIP;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/KaptchaController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/KaptchaController.java
new file mode 100644
index 0000000..59bab03
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/KaptchaController.java
@@ -0,0 +1,114 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.Producer;
+import com.stylefeng.guns.config.properties.GunsProperties;
+import com.stylefeng.guns.core.util.FileUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+
+/**
+ * 验证码生成
+ *
+ * @author fengshuonan
+ * @date 2017-05-05 23:10
+ */
+@Controller
+@RequestMapping("/kaptcha")
+public class KaptchaController {
+
+    @Autowired
+    private GunsProperties gunsProperties;
+
+    @Autowired
+    private Producer producer;
+
+    /**
+     * 生成验证码
+     */
+    @RequestMapping("")
+    public void index(HttpServletRequest request, HttpServletResponse response) {
+        HttpSession session = request.getSession();
+
+        response.setDateHeader("Expires", 0);
+
+        // Set standard HTTP/1.1 no-cache headers.
+        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
+
+        // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
+        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
+
+        // Set standard HTTP/1.0 no-cache header.
+        response.setHeader("Pragma", "no-cache");
+
+        // return a jpeg
+        response.setContentType("image/jpeg");
+
+        // create the text for the image
+        String capText = producer.createText();
+
+        // store the text in the session
+        session.setAttribute(Constants.KAPTCHA_SESSION_KEY, capText);
+
+        // create the image with the text
+        BufferedImage bi = producer.createImage(capText);
+        ServletOutputStream out = null;
+        try {
+            out = response.getOutputStream();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        // write the data out
+        try {
+            ImageIO.write(bi, "jpg", out);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        try {
+            try {
+                out.flush();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        } finally {
+            try {
+                out.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    /**
+     * 返回图片
+     *
+     * @author stylefeng
+     * @Date 2017/5/24 23:00
+     */
+    @RequestMapping("/{pictureId}")
+    public void renderPicture(@PathVariable("pictureId") String pictureId, HttpServletResponse response) {
+        String path = gunsProperties.getFileUploadPath() + pictureId;
+        try {
+            byte[] bytes = FileUtil.toByteArray(path);
+            response.getOutputStream().write(bytes);
+        } catch (Exception e) {
+            //如果找不到图片就返回一个默认图片
+            try {
+                response.sendRedirect("/static/img/girl.gif");
+            } catch (IOException e1) {
+                e1.printStackTrace();
+            }
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LogController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LogController.java
new file mode 100644
index 0000000..a61f929
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LogController.java
@@ -0,0 +1,84 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.baomidou.mybatisplus.mapper.SqlRunner;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.factory.PageFactory;
+import com.stylefeng.guns.core.common.constant.state.BizLogType;
+import com.stylefeng.guns.core.support.BeanKit;
+import com.stylefeng.guns.modular.system.model.OperationLog;
+import com.stylefeng.guns.modular.system.service.IOperationLogService;
+import com.stylefeng.guns.modular.system.warpper.LogWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 日志管理的控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年4月5日 19:45:36
+ */
+@Controller
+@RequestMapping("/log")
+public class LogController extends BaseController {
+
+    private static String PREFIX = "/system/log/";
+
+    @Autowired
+    private IOperationLogService operationLogService;
+
+    /**
+     * 跳转到日志管理的首页
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "log.html";
+    }
+
+    /**
+     * 查询操作日志列表
+     */
+    @RequestMapping("/list")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object list(@RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String logName, @RequestParam(required = false) Integer logType) {
+        Page<OperationLog> page = new PageFactory<OperationLog>().defaultPage();
+        List<Map<String, Object>> result = operationLogService.getOperationLogs(page, beginTime, endTime, logName, BizLogType.valueOf(logType), page.getOrderByField(), page.isAsc());
+        page.setRecords((List<OperationLog>) new LogWarpper(result).warp());
+        return super.packForBT(page);
+    }
+
+    /**
+     * 查询操作日志详情
+     */
+    @RequestMapping("/detail/{id}")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object detail(@PathVariable Integer id) {
+        OperationLog operationLog = operationLogService.selectById(id);
+        Map<String, Object> stringObjectMap = BeanKit.beanToMap(operationLog);
+        return super.warpObject(new LogWarpper(stringObjectMap));
+    }
+
+    /**
+     * 清空日志
+     */
+    @BussinessLog(value = "清空业务日志")
+    @RequestMapping("/delLog")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object delLog() {
+        SqlRunner.db().delete("delete from sys_operation_log");
+        return SUCCESS_TIP;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java
new file mode 100644
index 0000000..653f22a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginController.java
@@ -0,0 +1,130 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.google.code.kaptcha.Constants;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.common.exception.InvalidKaptchaException;
+import com.stylefeng.guns.core.log.LogManager;
+import com.stylefeng.guns.core.log.factory.LogTaskFactory;
+import com.stylefeng.guns.core.node.MenuNode;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.util.ApiMenuFilter;
+import com.stylefeng.guns.core.util.KaptchaUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.service.IMenuService;
+import com.stylefeng.guns.modular.system.service.IUserService;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.subject.Subject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import java.util.List;
+
+import static com.stylefeng.guns.core.support.HttpKit.getIp;
+
+/**
+ * 登录控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年1月10日 下午8:25:24
+ */
+@Controller
+public class LoginController extends BaseController {
+
+    @Autowired
+    private IMenuService menuService;
+
+    @Autowired
+    private IUserService userService;
+
+    /**
+     * 跳转到主页
+     */
+//    @RequestMapping(value = "/", method = RequestMethod.GET)
+    public String index(Model model) {
+        //获取菜单列表
+        List<Integer> roleList = ShiroKit.getUser().getRoleList();
+        if (roleList == null || roleList.size() == 0) {
+            ShiroKit.getSubject().logout();
+            model.addAttribute("tips", "该用户没有角色,无法登陆");
+            return "/login.html";
+        }
+        List<MenuNode> menus = menuService.getMenusByRoleIds(roleList);
+        List<MenuNode> titles = MenuNode.buildTitle(menus);
+        titles = ApiMenuFilter.build(titles);
+
+        model.addAttribute("titles", titles);
+
+        //获取用户头像
+        Integer id = ShiroKit.getUser().getId();
+        User user = userService.selectById(id);
+        String avatar = user.getAvatar();
+        model.addAttribute("avatar", avatar);
+
+        return "/index.html";
+    }
+
+    /**
+     * 跳转到登录页面
+     */
+//    @RequestMapping(value = "/login", method = RequestMethod.GET)
+    public String login() {
+        if (ShiroKit.isAuthenticated() || ShiroKit.getUser() != null) {
+            return REDIRECT + "/";
+        } else {
+            return "/login.html";
+        }
+    }
+
+    /**
+     * 点击登录执行的动作
+     */
+//    @RequestMapping(value = "/login", method = RequestMethod.POST)
+    public String loginVali() {
+
+        String username = super.getPara("username").trim();
+        String password = super.getPara("password").trim();
+        String remember = super.getPara("remember");
+
+        //验证验证码是否正确
+        if (KaptchaUtil.getKaptchaOnOff()) {
+            String kaptcha = super.getPara("kaptcha").trim();
+            String code = (String) super.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
+            if (ToolUtil.isEmpty(kaptcha) || !kaptcha.equalsIgnoreCase(code)) {
+                throw new InvalidKaptchaException();
+            }
+        }
+
+        Subject currentUser = ShiroKit.getSubject();
+        UsernamePasswordToken token = new UsernamePasswordToken(username, password.toCharArray());
+
+        token.setRememberMe(false);
+
+        currentUser.login(token);
+
+        ShiroUser shiroUser = ShiroKit.getUser();
+        super.getSession().setAttribute("shiroUser", shiroUser);
+        super.getSession().setAttribute("username", shiroUser.getAccount());
+
+        LogManager.me().executeLog(LogTaskFactory.loginLog(shiroUser.getId(), getIp()));
+
+        ShiroKit.getSession().setAttribute("sessionFlag", true);
+
+        return REDIRECT + "/";
+    }
+
+    /**
+     * 退出登录
+     */
+    @RequestMapping(value = "/logout", method = RequestMethod.GET)
+    public String logOut() {
+        LogManager.me().executeLog(LogTaskFactory.exitLog(ShiroKit.getUser().getId(), getIp()));
+        ShiroKit.getSubject().logout();
+        deleteAllCookie();
+        return REDIRECT + "/login";
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginLogController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginLogController.java
new file mode 100644
index 0000000..9655379
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/LoginLogController.java
@@ -0,0 +1,69 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.baomidou.mybatisplus.mapper.SqlRunner;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.factory.PageFactory;
+import com.stylefeng.guns.modular.system.model.LoginLog;
+import com.stylefeng.guns.modular.system.service.ILoginLogService;
+import com.stylefeng.guns.modular.system.warpper.LogWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 日志管理的控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年4月5日 19:45:36
+ */
+@Controller
+@RequestMapping("/loginLog")
+public class LoginLogController extends BaseController {
+
+    private static String PREFIX = "/system/log/";
+
+    @Autowired
+    private ILoginLogService loginLogService;
+
+    /**
+     * 跳转到日志管理的首页
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "login_log.html";
+    }
+
+    /**
+     * 查询登录日志列表
+     */
+    @RequestMapping("/list")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object list(@RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) String logName) {
+        Page<LoginLog> page = new PageFactory<LoginLog>().defaultPage();
+        List<Map<String, Object>> result = loginLogService.getLoginLogs(page, beginTime, endTime, logName, page.getOrderByField(), page.isAsc());
+        page.setRecords((List<LoginLog>) new LogWarpper(result).warp());
+        return super.packForBT(page);
+    }
+
+    /**
+     * 清空日志
+     */
+    @BussinessLog("清空登录日志")
+    @RequestMapping("/delLoginLog")
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Object delLog() {
+        SqlRunner.db().delete("delete from sys_login_log");
+        return SUCCESS_TIP;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/MenuController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/MenuController.java
new file mode 100644
index 0000000..37c72fc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/MenuController.java
@@ -0,0 +1,244 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.Tip;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.dictmap.MenuDict;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.constant.state.MenuStatus;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.core.support.BeanKit;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Menu;
+import com.stylefeng.guns.modular.system.service.IMenuService;
+import com.stylefeng.guns.modular.system.warpper.MenuWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 菜单控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年2月12日21:59:14
+ */
+@Controller
+@RequestMapping("/menu")
+public class MenuController extends BaseController {
+
+    private static String PREFIX = "/system/menu/";
+
+    @Autowired
+    private IMenuService menuService;
+
+    /**
+     * 跳转到菜单列表列表页面
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "menu.html";
+    }
+
+    /**
+     * 跳转到菜单列表列表页面
+     */
+    @RequestMapping(value = "/menu_add")
+    public String menuAdd() {
+        return PREFIX + "menu_add.html";
+    }
+
+    /**
+     * 跳转到菜单详情列表页面
+     */
+    @Permission(Const.ADMIN_NAME)
+    @RequestMapping(value = "/menu_edit/{menuId}")
+    public String menuEdit(@PathVariable Long menuId, Model model) {
+        if (ToolUtil.isEmpty(menuId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        Menu menu = this.menuService.selectById(menuId);
+
+        //获取父级菜单的id
+        Menu temp = new Menu();
+        temp.setCode(menu.getPcode());
+        Menu pMenu = this.menuService.selectOne(new EntityWrapper<>(temp));
+
+        //如果父级是顶级菜单
+        if (pMenu == null) {
+            menu.setPcode("0");
+        } else {
+            //设置父级菜单的code为父级菜单的id
+            menu.setPcode(String.valueOf(pMenu.getId()));
+        }
+
+        Map<String, Object> menuMap = BeanKit.beanToMap(menu);
+        menuMap.put("pcodeName", ConstantFactory.me().getMenuNameByCode(temp.getCode()));
+        model.addAttribute("menu", menuMap);
+        LogObjectHolder.me().set(menu);
+        return PREFIX + "menu_edit.html";
+    }
+
+    /**
+     * 修该菜单
+     */
+    @Permission(Const.ADMIN_NAME)
+    @RequestMapping(value = "/edit")
+    @BussinessLog(value = "修改菜单", key = "name", dict = MenuDict.class)
+    @ResponseBody
+    public Tip edit(@Valid Menu menu, BindingResult result) {
+        if (result.hasErrors()) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        //设置父级菜单编号
+        menuSetPcode(menu);
+
+        this.menuService.updateById(menu);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 获取菜单列表
+     */
+    @Permission(Const.ADMIN_NAME)
+    @RequestMapping(value = "/list")
+    @ResponseBody
+    public Object list(@RequestParam(required = false) String menuName, @RequestParam(required = false) String level) {
+        List<Map<String, Object>> menus = this.menuService.selectMenus(menuName, level);
+        return super.warpObject(new MenuWarpper(menus));
+    }
+
+    /**
+     * 新增菜单
+     */
+    @Permission(Const.ADMIN_NAME)
+    @RequestMapping(value = "/add")
+    @BussinessLog(value = "菜单新增", key = "name", dict = MenuDict.class)
+    @ResponseBody
+    public Tip add(@Valid Menu menu, BindingResult result) {
+        if (result.hasErrors()) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+
+        //判断是否存在该编号
+        String existedMenuName = ConstantFactory.me().getMenuNameByCode(menu.getCode());
+        if (ToolUtil.isNotEmpty(existedMenuName)) {
+            throw new GunsException(BizExceptionEnum.EXISTED_THE_MENU);
+        }
+
+        //设置父级菜单编号
+        menuSetPcode(menu);
+
+        menu.setStatus(MenuStatus.ENABLE.getCode());
+        this.menuService.insert(menu);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 删除菜单
+     */
+    @Permission(Const.ADMIN_NAME)
+    @RequestMapping(value = "/remove")
+    @BussinessLog(value = "删除菜单", key = "menuId", dict = MenuDict.class)
+    @ResponseBody
+    public Tip remove(@RequestParam Long menuId) {
+        if (ToolUtil.isEmpty(menuId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+
+        //缓存菜单的名称
+        LogObjectHolder.me().set(ConstantFactory.me().getMenuName(menuId));
+
+        this.menuService.delMenuContainSubMenus(menuId);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 查看菜单
+     */
+    @RequestMapping(value = "/view/{menuId}")
+    @ResponseBody
+    public Tip view(@PathVariable Long menuId) {
+        if (ToolUtil.isEmpty(menuId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        this.menuService.selectById(menuId);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 获取菜单列表(首页用)
+     */
+    @RequestMapping(value = "/menuTreeList")
+    @ResponseBody
+    public List<ZTreeNode> menuTreeList() {
+        List<ZTreeNode> roleTreeList = this.menuService.menuTreeList();
+        return roleTreeList;
+    }
+
+    /**
+     * 获取菜单列表(选择父级菜单用)
+     */
+    @RequestMapping(value = "/selectMenuTreeList")
+    @ResponseBody
+    public List<ZTreeNode> selectMenuTreeList() {
+        List<ZTreeNode> roleTreeList = this.menuService.menuTreeList();
+        roleTreeList.add(ZTreeNode.createParent());
+        return roleTreeList;
+    }
+
+    /**
+     * 获取角色列表
+     */
+    @RequestMapping(value = "/menuTreeListByRoleId/{roleId}")
+    @ResponseBody
+    public List<ZTreeNode> menuTreeListByRoleId(@PathVariable Integer roleId) {
+        List<Long> menuIds = this.menuService.getMenuIdsByRoleId(roleId);
+        if (ToolUtil.isEmpty(menuIds)) {
+            List<ZTreeNode> roleTreeList = this.menuService.menuTreeList();
+            return roleTreeList;
+        } else {
+            List<ZTreeNode> roleTreeListByUserId = this.menuService.menuTreeListByMenuIds(menuIds);
+            return roleTreeListByUserId;
+        }
+    }
+
+    /**
+     * 根据请求的父级菜单编号设置pcode和层级
+     */
+    private void menuSetPcode(@Valid Menu menu) {
+        if (ToolUtil.isEmpty(menu.getPcode()) || menu.getPcode().equals("0")) {
+            menu.setPcode("0");
+            menu.setPcodes("[0],");
+            menu.setLevels(1);
+        } else {
+            long code = Long.parseLong(menu.getPcode());
+            Menu pMenu = menuService.selectById(code);
+            Integer pLevels = pMenu.getLevels();
+            menu.setPcode(pMenu.getCode());
+
+            //如果编号和父编号一致会导致无限递归
+            if (menu.getCode().equals(menu.getPcode())) {
+                throw new GunsException(BizExceptionEnum.MENU_PCODE_COINCIDENCE);
+            }
+
+            menu.setLevels(pLevels + 1);
+            menu.setPcodes(pMenu.getPcodes() + "[" + pMenu.getCode() + "],");
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/NoticeController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/NoticeController.java
new file mode 100644
index 0000000..7211823
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/NoticeController.java
@@ -0,0 +1,138 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.constant.dictmap.NoticeMap;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Notice;
+import com.stylefeng.guns.modular.system.service.INoticeService;
+import com.stylefeng.guns.modular.system.warpper.NoticeWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 通知控制器
+ *
+ * @author fengshuonan
+ * @Date 2017-05-09 23:02:21
+ */
+@Controller
+@RequestMapping("/notice")
+public class NoticeController extends BaseController {
+
+    private String PREFIX = "/system/notice/";
+
+    @Autowired
+    private INoticeService noticeService;
+
+    /**
+     * 跳转到通知列表首页
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "notice.html";
+    }
+
+    /**
+     * 跳转到添加通知
+     */
+    @RequestMapping("/notice_add")
+    public String noticeAdd() {
+        return PREFIX + "notice_add.html";
+    }
+
+    /**
+     * 跳转到修改通知
+     */
+    @RequestMapping("/notice_update/{noticeId}")
+    public String noticeUpdate(@PathVariable Integer noticeId, Model model) {
+        Notice notice = this.noticeService.selectById(noticeId);
+        model.addAttribute("notice",notice);
+        LogObjectHolder.me().set(notice);
+        return PREFIX + "notice_edit.html";
+    }
+
+    /**
+     * 跳转到首页通知
+     */
+    @RequestMapping("/hello")
+    public String hello() {
+        List<Map<String, Object>> notices = noticeService.list(null);
+        super.setAttr("noticeList",notices);
+        return "/blackboard.html";
+    }
+
+    /**
+     * 获取通知列表
+     */
+    @RequestMapping(value = "/list")
+    @ResponseBody
+    public Object list(String condition) {
+        List<Map<String, Object>> list = this.noticeService.list(condition);
+        return super.warpObject(new NoticeWrapper(list));
+    }
+
+    /**
+     * 新增通知
+     */
+    @RequestMapping(value = "/add")
+    @ResponseBody
+    @BussinessLog(value = "新增通知",key = "title",dict = NoticeMap.class)
+    public Object add(Notice notice) {
+        if (ToolUtil.isOneEmpty(notice, notice.getTitle(), notice.getContent())) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        notice.setCreater(ShiroKit.getUser().getId());
+        notice.setCreatetime(new Date());
+        notice.insert();
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 删除通知
+     */
+    @RequestMapping(value = "/delete")
+    @ResponseBody
+    @BussinessLog(value = "删除通知",key = "noticeId",dict = NoticeMap.class)
+    public Object delete(@RequestParam Integer noticeId) {
+
+        //缓存通知名称
+        LogObjectHolder.me().set(ConstantFactory.me().getNoticeTitle(noticeId));
+
+        this.noticeService.deleteById(noticeId);
+
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 修改通知
+     */
+    @RequestMapping(value = "/update")
+    @ResponseBody
+    @BussinessLog(value = "修改通知",key = "title",dict = NoticeMap.class)
+    public Object update(Notice notice) {
+        if (ToolUtil.isOneEmpty(notice, notice.getId(), notice.getTitle(), notice.getContent())) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        Notice old = this.noticeService.selectById(notice.getId());
+        old.setTitle(notice.getTitle());
+        old.setContent(notice.getContent());
+        old.updateById();
+        return SUCCESS_TIP;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/RoleController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/RoleController.java
new file mode 100644
index 0000000..6e7893d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/RoleController.java
@@ -0,0 +1,230 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.Tip;
+import com.stylefeng.guns.core.cache.CacheKit;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.cache.Cache;
+import com.stylefeng.guns.core.common.constant.dictmap.RoleDict;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.core.util.Convert;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.Role;
+import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.service.IRoleService;
+import com.stylefeng.guns.modular.system.service.IUserService;
+import com.stylefeng.guns.modular.system.warpper.RoleWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 角色控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年2月12日21:59:14
+ */
+@Controller
+@RequestMapping("/role")
+public class RoleController extends BaseController {
+
+    private static String PREFIX = "/system/role";
+
+    @Autowired
+    private IUserService userService;
+
+    @Autowired
+    private IRoleService roleService;
+
+    /**
+     * 跳转到角色列表页面
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "/role.html";
+    }
+
+    /**
+     * 跳转到添加角色
+     */
+    @RequestMapping(value = "/role_add")
+    public String roleAdd() {
+        return PREFIX + "/role_add.html";
+    }
+
+    /**
+     * 跳转到修改角色
+     */
+    @Permission
+    @RequestMapping(value = "/role_edit/{roleId}")
+    public String roleEdit(@PathVariable Integer roleId, Model model) {
+        if (ToolUtil.isEmpty(roleId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        Role role = this.roleService.selectById(roleId);
+        model.addAttribute(role);
+        model.addAttribute("pName", ConstantFactory.me().getSingleRoleName(role.getPid()));
+        model.addAttribute("deptName", ConstantFactory.me().getDeptName(role.getDeptid()));
+        LogObjectHolder.me().set(role);
+        return PREFIX + "/role_edit.html";
+    }
+
+    /**
+     * 跳转到角色分配
+     */
+    @Permission
+    @RequestMapping(value = "/role_assign/{roleId}")
+    public String roleAssign(@PathVariable("roleId") Integer roleId, Model model) {
+        if (ToolUtil.isEmpty(roleId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        model.addAttribute("roleId", roleId);
+        model.addAttribute("roleName", ConstantFactory.me().getSingleRoleName(roleId));
+        return PREFIX + "/role_assign.html";
+    }
+
+    /**
+     * 获取角色列表
+     */
+    @Permission
+    @RequestMapping(value = "/list")
+    @ResponseBody
+    public Object list(@RequestParam(required = false) String roleName) {
+        List<Map<String, Object>> roles = this.roleService.selectRoles(super.getPara("roleName"));
+        return super.warpObject(new RoleWarpper(roles));
+    }
+
+    /**
+     * 角色新增
+     */
+    @RequestMapping(value = "/add")
+    @BussinessLog(value = "添加角色", key = "name", dict = RoleDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip add(@Valid Role role, BindingResult result) {
+        if (result.hasErrors()) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        role.setId(null);
+        this.roleService.insert(role);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 角色修改
+     */
+    @RequestMapping(value = "/edit")
+    @BussinessLog(value = "修改角色", key = "name", dict = RoleDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip edit(@Valid Role role, BindingResult result) {
+        if (result.hasErrors()) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        this.roleService.updateById(role);
+
+        //删除缓存
+        CacheKit.removeAll(Cache.CONSTANT);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 删除角色
+     */
+    @RequestMapping(value = "/remove")
+    @BussinessLog(value = "删除角色", key = "roleId", dict = RoleDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip remove(@RequestParam Integer roleId) {
+        if (ToolUtil.isEmpty(roleId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+
+        //不能删除超级管理员角色
+        if (roleId.equals(Const.ADMIN_ROLE_ID)) {
+            throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN);
+        }
+
+        //缓存被删除的角色名称
+        LogObjectHolder.me().set(ConstantFactory.me().getSingleRoleName(roleId));
+
+        this.roleService.delRoleById(roleId);
+
+        //删除缓存
+        CacheKit.removeAll(Cache.CONSTANT);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 查看角色
+     */
+    @RequestMapping(value = "/view/{roleId}")
+    @ResponseBody
+    public Tip view(@PathVariable Integer roleId) {
+        if (ToolUtil.isEmpty(roleId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        this.roleService.selectById(roleId);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 配置权限
+     */
+    @RequestMapping("/setAuthority")
+    @BussinessLog(value = "配置权限", key = "roleId,ids", dict = RoleDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip setAuthority(@RequestParam("roleId") Integer roleId, @RequestParam("ids") String ids) {
+        if (ToolUtil.isOneEmpty(roleId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        this.roleService.setAuthority(roleId, ids);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 获取角色列表
+     */
+    @RequestMapping(value = "/roleTreeList")
+    @ResponseBody
+    public List<ZTreeNode> roleTreeList() {
+        List<ZTreeNode> roleTreeList = this.roleService.roleTreeList();
+        roleTreeList.add(ZTreeNode.createParent());
+        return roleTreeList;
+    }
+
+    /**
+     * 获取角色列表
+     */
+    @RequestMapping(value = "/roleTreeListByUserId/{userId}")
+    @ResponseBody
+    public List<ZTreeNode> roleTreeListByUserId(@PathVariable Integer userId) {
+        User theUser = this.userService.selectById(userId);
+        String roleid = theUser.getRoleid();
+        if (ToolUtil.isEmpty(roleid)) {
+            List<ZTreeNode> roleTreeList = this.roleService.roleTreeList();
+            return roleTreeList;
+        } else {
+            String[] strArray = Convert.toStrArray(",", roleid);
+            List<ZTreeNode> roleTreeListByUserId = this.roleService.roleTreeListByRoleId(strArray);
+            return roleTreeListByUserId;
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/UserMgrController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/UserMgrController.java
new file mode 100644
index 0000000..b84703f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/UserMgrController.java
@@ -0,0 +1,373 @@
+package com.stylefeng.guns.modular.system.controller;
+
+import com.stylefeng.guns.config.properties.GunsProperties;
+import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.Tip;
+import com.stylefeng.guns.core.common.annotion.BussinessLog;
+import com.stylefeng.guns.core.common.annotion.Permission;
+import com.stylefeng.guns.core.common.constant.Const;
+import com.stylefeng.guns.core.common.constant.dictmap.UserDict;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.common.constant.state.ManagerStatus;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.datascope.DataScope;
+import com.stylefeng.guns.core.db.Db;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.core.log.LogObjectHolder;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.UserMapper;
+import com.stylefeng.guns.modular.system.factory.UserFactory;
+import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.service.IUserService;
+import com.stylefeng.guns.modular.system.transfer.UserDto;
+import com.stylefeng.guns.modular.system.warpper.UserWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.naming.NoPermissionException;
+import javax.validation.Valid;
+import java.io.File;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+
+/**
+ * 系统管理员控制器
+ *
+ * @author fengshuonan
+ * @Date 2017年1月11日 下午1:08:17
+ */
+@Controller
+@RequestMapping("/mgr")
+public class UserMgrController extends BaseController {
+
+    private static String PREFIX = "/system/user/";
+
+    @Autowired
+    private GunsProperties gunsProperties;
+
+    @Autowired
+    private IUserService userService;
+
+    /**
+     * 跳转到查看管理员列表的页面
+     */
+    @RequestMapping("")
+    public String index() {
+        return PREFIX + "user.html";
+    }
+
+    /**
+     * 跳转到查看管理员列表的页面
+     */
+    @RequestMapping("/user_add")
+    public String addView() {
+        return PREFIX + "user_add.html";
+    }
+
+    /**
+     * 跳转到角色分配页面
+     */
+    //@RequiresPermissions("/mgr/role_assign")  //利用shiro自带的权限检查
+    @Permission
+    @RequestMapping("/role_assign/{userId}")
+    public String roleAssign(@PathVariable Integer userId, Model model) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        User user = (User) Db.create(UserMapper.class).selectOneByCon("id", userId);
+        model.addAttribute("userId", userId);
+        model.addAttribute("userAccount", user.getAccount());
+        return PREFIX + "user_roleassign.html";
+    }
+
+    /**
+     * 跳转到编辑管理员页面
+     */
+    @Permission
+    @RequestMapping("/user_edit/{userId}")
+    public String userEdit(@PathVariable Integer userId, Model model) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        assertAuth(userId);
+        User user = this.userService.selectById(userId);
+        model.addAttribute(user);
+        model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid()));
+        model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid()));
+        LogObjectHolder.me().set(user);
+        return PREFIX + "user_edit.html";
+    }
+
+    /**
+     * 跳转到查看用户详情页面
+     */
+    @RequestMapping("/user_info")
+    public String userInfo(Model model) {
+        Integer userId = ShiroKit.getUser().getId();
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        User user = this.userService.selectById(userId);
+        model.addAttribute(user);
+        model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid()));
+        model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid()));
+        LogObjectHolder.me().set(user);
+        return PREFIX + "user_view.html";
+    }
+
+    /**
+     * 跳转到修改密码界面
+     */
+    @RequestMapping("/user_chpwd")
+    public String chPwd() {
+        return PREFIX + "user_chpwd.html";
+    }
+
+    /**
+     * 修改当前用户的密码
+     */
+    @RequestMapping("/changePwd")
+    @ResponseBody
+    public Object changePwd(@RequestParam String oldPwd, @RequestParam String newPwd, @RequestParam String rePwd) {
+        if (!newPwd.equals(rePwd)) {
+            throw new GunsException(BizExceptionEnum.TWO_PWD_NOT_MATCH);
+        }
+        Integer userId = ShiroKit.getUser().getId();
+        User user = userService.selectById(userId);
+        String oldMd5 = ShiroKit.md5(oldPwd, user.getSalt());
+        if (user.getPassword().equals(oldMd5)) {
+            String newMd5 = ShiroKit.md5(newPwd, user.getSalt());
+            user.setPassword(newMd5);
+            user.updateById();
+            return SUCCESS_TIP;
+        } else {
+            throw new GunsException(BizExceptionEnum.OLD_PWD_NOT_RIGHT);
+        }
+    }
+
+    /**
+     * 查询管理员列表
+     */
+    @RequestMapping("/list")
+    @Permission
+    @ResponseBody
+    public Object list(@RequestParam(required = false) String name, @RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime, @RequestParam(required = false) Integer deptid) {
+        if (ShiroKit.isAdmin()) {
+            List<Map<String, Object>> users = userService.selectUsers(null, name, beginTime, endTime, deptid);
+            return new UserWarpper(users).warp();
+        } else {
+            DataScope dataScope = new DataScope(ShiroKit.getDeptDataScope());
+            List<Map<String, Object>> users = userService.selectUsers(dataScope, name, beginTime, endTime, deptid);
+            return new UserWarpper(users).warp();
+        }
+    }
+
+    /**
+     * 添加管理员
+     */
+    @RequestMapping("/add")
+    @BussinessLog(value = "添加管理员", key = "account", dict = UserDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip add(@Valid UserDto user, BindingResult result) {
+        if (result.hasErrors()) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+
+        // 判断账号是否重复
+        User theUser = userService.getByAccount(user.getAccount());
+        if (theUser != null) {
+            throw new GunsException(BizExceptionEnum.USER_ALREADY_REG);
+        }
+
+        // 完善账号信息
+        user.setSalt(ShiroKit.getRandomSalt(5));
+        user.setPassword(ShiroKit.md5(user.getPassword(), user.getSalt()));
+        user.setStatus(ManagerStatus.OK.getCode());
+        user.setCreatetime(new Date());
+
+        this.userService.insert(UserFactory.createUser(user));
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 修改管理员
+     *
+     * @throws NoPermissionException
+     */
+    @RequestMapping("/edit")
+    @BussinessLog(value = "修改管理员", key = "account", dict = UserDict.class)
+    @ResponseBody
+    public Tip edit(@Valid UserDto user, BindingResult result) throws NoPermissionException {
+        if (result.hasErrors()) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+
+        User oldUser = userService.selectById(user.getId());
+
+        if (ShiroKit.hasRole(Const.ADMIN_NAME)) {
+            this.userService.updateById(UserFactory.editUser(user, oldUser));
+            return SUCCESS_TIP;
+        } else {
+            assertAuth(user.getId());
+            ShiroUser shiroUser = ShiroKit.getUser();
+            if (shiroUser.getId().equals(user.getId())) {
+                this.userService.updateById(UserFactory.editUser(user, oldUser));
+                return SUCCESS_TIP;
+            } else {
+                throw new GunsException(BizExceptionEnum.NO_PERMITION);
+            }
+        }
+    }
+
+    /**
+     * 删除管理员(逻辑删除)
+     */
+    @RequestMapping("/delete")
+    @BussinessLog(value = "删除管理员", key = "userId", dict = UserDict.class)
+    @Permission
+    @ResponseBody
+    public Tip delete(@RequestParam Integer userId) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        //不能删除超级管理员
+        if (userId.equals(Const.ADMIN_ID)) {
+            throw new GunsException(BizExceptionEnum.CANT_DELETE_ADMIN);
+        }
+        assertAuth(userId);
+        this.userService.setStatus(userId, ManagerStatus.DELETED.getCode());
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 查看管理员详情
+     */
+    @RequestMapping("/view/{userId}")
+    @ResponseBody
+    public User view(@PathVariable Integer userId) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        assertAuth(userId);
+        return this.userService.selectById(userId);
+    }
+
+    /**
+     * 重置管理员的密码
+     */
+    @RequestMapping("/reset")
+    @BussinessLog(value = "重置管理员密码", key = "userId", dict = UserDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip reset(@RequestParam Integer userId) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        assertAuth(userId);
+        User user = this.userService.selectById(userId);
+        user.setSalt(ShiroKit.getRandomSalt(5));
+        user.setPassword(ShiroKit.md5(Const.DEFAULT_PWD, user.getSalt()));
+        this.userService.updateById(user);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 冻结用户
+     */
+    @RequestMapping("/freeze")
+    @BussinessLog(value = "冻结用户", key = "userId", dict = UserDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip freeze(@RequestParam Integer userId) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        //不能冻结超级管理员
+        if (userId.equals(Const.ADMIN_ID)) {
+            throw new GunsException(BizExceptionEnum.CANT_FREEZE_ADMIN);
+        }
+        assertAuth(userId);
+        this.userService.setStatus(userId, ManagerStatus.FREEZED.getCode());
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 解除冻结用户
+     */
+    @RequestMapping("/unfreeze")
+    @BussinessLog(value = "解除冻结用户", key = "userId", dict = UserDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip unfreeze(@RequestParam Integer userId) {
+        if (ToolUtil.isEmpty(userId)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        assertAuth(userId);
+        this.userService.setStatus(userId, ManagerStatus.OK.getCode());
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 分配角色
+     */
+    @RequestMapping("/setRole")
+    @BussinessLog(value = "分配角色", key = "userId,roleIds", dict = UserDict.class)
+    @Permission(Const.ADMIN_NAME)
+    @ResponseBody
+    public Tip setRole(@RequestParam("userId") Integer userId, @RequestParam("roleIds") String roleIds) {
+        if (ToolUtil.isOneEmpty(userId, roleIds)) {
+            throw new GunsException(BizExceptionEnum.REQUEST_NULL);
+        }
+        //不能修改超级管理员
+        if (userId.equals(Const.ADMIN_ID)) {
+            throw new GunsException(BizExceptionEnum.CANT_CHANGE_ADMIN);
+        }
+        assertAuth(userId);
+        this.userService.setRoles(userId, roleIds);
+        return SUCCESS_TIP;
+    }
+
+    /**
+     * 上传图片
+     */
+    @RequestMapping(method = RequestMethod.POST, path = "/upload")
+    @ResponseBody
+    public String upload(@RequestPart("file") MultipartFile picture) {
+
+        String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
+        try {
+            String fileSavePath = gunsProperties.getFileUploadPath();
+            picture.transferTo(new File(fileSavePath + pictureName));
+        } catch (Exception e) {
+            throw new GunsException(BizExceptionEnum.UPLOAD_ERROR);
+        }
+        return pictureName;
+    }
+
+    /**
+     * 判断当前登录的用户是否有操作这个用户的权限
+     */
+    private void assertAuth(Integer userId) {
+        if (ShiroKit.isAdmin()) {
+            return;
+        }
+        List<Integer> deptDataScope = ShiroKit.getDeptDataScope();
+        User user = this.userService.selectById(userId);
+        Integer deptid = user.getDeptid();
+        if (deptDataScope.contains(deptid)) {
+            return;
+        } else {
+            throw new GunsException(BizExceptionEnum.NO_PERMITION);
+        }
+
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AdvertisementMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AdvertisementMapper.java
new file mode 100644
index 0000000..cc3795d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AdvertisementMapper.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Advertisement;
+import com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AdvertisementMapper extends BaseMapper<Advertisement> {
+
+
+    /**
+     * 获取广告
+     * @param type  广告类型(1:弹窗广告,2:底部广告)
+     * @return
+     * @throws Exception
+     */
+    List<AdvertisementWarpper> queryAdvertisement(@Param("code") String code, @Param("type") Integer type);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AgreementMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AgreementMapper.java
new file mode 100644
index 0000000..aab92db
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/AgreementMapper.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Agreement;
+import org.apache.ibatis.annotations.Param;
+
+public interface AgreementMapper extends BaseMapper<Agreement> {
+
+
+    /**
+     * 获取协议内容
+     * @param type
+     * @return
+     */
+    String queryByType(@Param("type") Integer type, @Param("useType") Integer useType);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BankCardMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BankCardMapper.java
new file mode 100644
index 0000000..c65d979
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/BankCardMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.BankCard;
+
+public interface BankCardMapper extends BaseMapper<BankCard> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java
new file mode 100644
index 0000000..178b7c5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CancleOrderMapper.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.CancleOrder;
+import org.apache.ibatis.annotations.Param;
+
+public interface CancleOrderMapper extends BaseMapper<CancleOrder> {
+
+
+    /**
+     * 获取取消订单配置
+     * @param type
+     * @param orderType
+     * @return
+     */
+    CancleOrder query(@Param("type") Integer type, @Param("orderType") Integer orderType,
+                      @Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java
new file mode 100644
index 0000000..a815807
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Car;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface CarMapper extends BaseMapper<Car> {
+
+
+    /**
+     * 获取空闲车辆
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryIdleData(@Param("companyId") Integer companyId) throws Exception;
+
+
+    /**
+     * 车牌查询
+     * @param licensePlate
+     * @return
+     * @throws Exception
+     */
+    Car query(@Param("licensePlate") String licensePlate) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarServiceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarServiceMapper.java
new file mode 100644
index 0000000..66c9fac
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarServiceMapper.java
@@ -0,0 +1,11 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.CarService;
+import org.apache.ibatis.annotations.Param;
+
+public interface CarServiceMapper extends BaseMapper<CarService> {
+
+
+    CarService query(@Param("type") Integer orderType, @Param("carId") Integer carId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyCityMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyCityMapper.java
new file mode 100644
index 0000000..5ab918b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyCityMapper.java
@@ -0,0 +1,10 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.CompanyCity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface CompanyCityMapper extends BaseMapper<CompanyCity> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java
new file mode 100644
index 0000000..43f3ff0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CompanyMapper.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Company;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface CompanyMapper extends BaseMapper<Company> {
+
+
+    /**
+     * 根据行政区域代码获取企业
+     * @param code
+     * @return
+     */
+    List<Company> query(@Param("province") String province, @Param("city") String city, @Param("code") String code);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ComplaintMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ComplaintMapper.java
new file mode 100644
index 0000000..c198609
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ComplaintMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Complaint;
+
+public interface ComplaintMapper extends BaseMapper<Complaint> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DeptMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DeptMapper.java
new file mode 100644
index 0000000..a92fb85
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DeptMapper.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.model.Dept;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 部门表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface DeptMapper extends BaseMapper<Dept> {
+
+    /**
+     * 获取ztree的节点列表
+     */
+    List<ZTreeNode> tree();
+
+    /**
+     * 获取所有部门列表
+     */
+    List<Map<String, Object>> list(@Param("condition") String condition);
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DictMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DictMapper.java
new file mode 100644
index 0000000..55677f1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DictMapper.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Dict;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 字典表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface DictMapper extends BaseMapper<Dict> {
+
+    /**
+     * 根据编码获取词典列表
+     */
+    List<Dict> selectByCode(@Param("code") String code);
+
+    /**
+     * 查询字典列表
+     */
+    List<Map<String, Object>> list(@Param("condition") String conditiion);
+
+    /**
+     * 根据父类编码获取词典列表
+     */
+    List<Dict> selectByParentCode(@Param("code") String code);
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityHistoryMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityHistoryMapper.java
new file mode 100644
index 0000000..4aea57d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityHistoryMapper.java
@@ -0,0 +1,24 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.DriverActivityHistory;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface DriverActivityHistoryMapper extends BaseMapper<DriverActivityHistory> {
+
+
+
+    List<Map<String, Object>> query(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum,
+                                    @Param("size") Integer size);
+
+
+
+
+    List<DriverActivityHistory> queryList(@Param("driverId") Integer driverId, @Param("type") Integer type,
+                                          @Param("carryOut") Integer carryOut, @Param("start") Date start,
+                                          @Param("end") Date end);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityRegisteredMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityRegisteredMapper.java
new file mode 100644
index 0000000..4944499
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverActivityRegisteredMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.DriverActivityRegistered;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DriverActivityRegisteredMapper extends BaseMapper<DriverActivityRegistered> {
+
+    /**
+     * 获取当前有效活动
+     * @param type
+     * @param companyId
+     * @return
+     */
+    List<Map<String, Object>> query(@Param("type") Integer type, @Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverMapper.java
new file mode 100644
index 0000000..27592b2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverMapper.java
@@ -0,0 +1,43 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Driver;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface DriverMapper extends BaseMapper<Driver> {
+
+
+    /**
+     * 获取当前已上班type业务类型、设置了可以接此类型的单据且空闲的司机
+     * @param type
+     * @return
+     */
+    List<Driver> queryIdleDriver(@Param("type") Integer type, @Param("companyId") Integer companyId);
+
+
+    /**
+     * 获取当前已上班type业务类型、设置了可以接此类型的单据、服务车型匹配且空闲的司机
+     * @param type
+     * @param serverCarModelId
+     * @param companyId
+     * @return
+     */
+    List<Driver> queryIdleDriver_(@Param("type") Integer type, @Param("serverCarModelId") Integer serverCarModelId,
+                                 @Param("companyId") Integer companyId);
+
+
+    /**
+     * 根据订单id获取司机数据
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderDriver(@Param("orderId") Integer orderId, @Param("orderType") Integer orderType);
+
+
+
+
+    Map<String, Object> queryDriverInfo(@Param("id") Integer id);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverOrdersMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverOrdersMapper.java
new file mode 100644
index 0000000..7d6e28c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverOrdersMapper.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.DriverOrders;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface DriverOrdersMapper extends BaseMapper<DriverOrders> {
+
+
+    DriverOrders query(@Param("uid") Integer uid, @Param("type") Integer type);
+
+
+
+    List<Integer> queryOrders(@Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverServiceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverServiceMapper.java
new file mode 100644
index 0000000..16ca189
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverServiceMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.DriverService;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface DriverServiceMapper extends BaseMapper<DriverService> {
+
+
+    /**
+     * 获取司机的业务类型
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<DriverService> queryBusiness(@Param("uid") Integer uid, @Param("type") Integer... type);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java
new file mode 100644
index 0000000..ffa0506
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.DriverWork;
+
+public interface DriverWorkMapper extends BaseMapper<DriverWork> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ExpenseMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ExpenseMapper.java
new file mode 100644
index 0000000..312d243
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ExpenseMapper.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Expense;
+
+/**
+ * <p>
+  * 报销表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-12-04
+ */
+public interface ExpenseMapper extends BaseMapper<Expense> {
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedbackMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedbackMapper.java
new file mode 100644
index 0000000..21f6b40
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/FeedbackMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Feedback;
+
+public interface FeedbackMapper extends BaseMapper<Feedback> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/GDInterfaceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/GDInterfaceMapper.java
new file mode 100644
index 0000000..67bfb34
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/GDInterfaceMapper.java
@@ -0,0 +1,12 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.GDInterface;
+import org.apache.ibatis.annotations.Param;
+
+public interface GDInterfaceMapper extends BaseMapper<GDInterface> {
+
+
+    GDInterface query(@Param("name") String name, @Param("explanation") String explanation,
+                      @Param("time") String time);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java
new file mode 100644
index 0000000..e8b8cfa
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IncomeMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Income;
+
+public interface IncomeMapper extends BaseMapper<Income> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralGoodsMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralGoodsMapper.java
new file mode 100644
index 0000000..496eca2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralGoodsMapper.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.IntegralGoods;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IntegralGoodsMapper extends BaseMapper<IntegralGoods> {
+
+
+    List<Map<String, Object>> queryGoods(@Param("pageNum") Integer pageNum, @Param("size") Integer size);
+
+
+    Map<String, Object> queryGoodsInfo(@Param("id") Integer id);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralOrderMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralOrderMapper.java
new file mode 100644
index 0000000..5d1673b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/IntegralOrderMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.IntegralOrder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IntegralOrderMapper extends BaseMapper<IntegralOrder> {
+
+
+    /**
+     * 获取历史记录
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryConvertHistory(@Param("pageNum") Integer pageNum, @Param("size") Integer size,
+                                                  @Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InvoiceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InvoiceMapper.java
new file mode 100644
index 0000000..640a921
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InvoiceMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Invoice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface InvoiceMapper extends BaseMapper<Invoice> {
+
+
+    /**
+     * 获取发票历史记录
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyInvoice(@Param("pageNum") Integer pageNum, @Param("size") Integer size,
+                                             @Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/LoginLogMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/LoginLogMapper.java
new file mode 100644
index 0000000..2e55025
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/LoginLogMapper.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.modular.system.model.LoginLog;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 登录记录 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface LoginLogMapper extends BaseMapper<LoginLog> {
+
+    /**
+     * 获取登录日志
+     */
+    List<Map<String, Object>> getLoginLogs(@Param("page") Page<LoginLog> page, @Param("beginTime") String beginTime,
+                                           @Param("endTime") String endTime, @Param("logName") String logName, @Param("orderByField") String orderByField, @Param("isAsc") boolean isAsc);
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/MenuMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/MenuMapper.java
new file mode 100644
index 0000000..ea0232d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/MenuMapper.java
@@ -0,0 +1,80 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.core.node.MenuNode;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.model.Menu;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+  * 菜单表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface MenuMapper extends BaseMapper<Menu> {
+
+    /**
+     * 根据条件查询菜单
+     *
+     * @return
+     * @date 2017年2月12日 下午9:14:34
+     */
+    List<Map<String, Object>> selectMenus(@Param("condition") String condition, @Param("level") String level);
+
+    /**
+     * 根据条件查询菜单
+     *
+     * @return
+     * @date 2017年2月12日 下午9:14:34
+     */
+    List<Long> getMenuIdsByRoleId(@Param("roleId") Integer roleId);
+
+    /**
+     * 获取菜单列表树
+     *
+     * @return
+     * @date 2017年2月19日 下午1:33:51
+     */
+    List<ZTreeNode> menuTreeList();
+
+    /**
+     * 获取菜单列表树
+     *
+     * @return
+     * @date 2017年2月19日 下午1:33:51
+     */
+    List<ZTreeNode> menuTreeListByMenuIds(List<Long> menuIds);
+
+    /**
+     * 删除menu关联的relation
+     *
+     * @param menuId
+     * @return
+     * @date 2017年2月19日 下午4:10:59
+     */
+    int deleteRelationByMenu(Long menuId);
+
+    /**
+     * 获取资源url通过角色id
+     *
+     * @param roleId
+     * @return
+     * @date 2017年2月19日 下午7:12:38
+     */
+    List<String> getResUrlsByRoleId(Integer roleId);
+
+    /**
+     * 根据角色获取菜单
+     *
+     * @param roleIds
+     * @return
+     * @date 2017年2月19日 下午10:35:40
+     */
+    List<MenuNode> getMenusByRoleIds(List<Integer> roleIds);
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/NoticeMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/NoticeMapper.java
new file mode 100644
index 0000000..5638129
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/NoticeMapper.java
@@ -0,0 +1,25 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Notice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 通知表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface NoticeMapper extends BaseMapper<Notice> {
+
+    /**
+     * 获取通知列表
+     */
+    List<Map<String, Object>> list(@Param("condition") String condition);
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OfflineTravelPaymentMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OfflineTravelPaymentMapper.java
new file mode 100644
index 0000000..81d6ee8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OfflineTravelPaymentMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.OfflineTravelPayment;
+
+public interface OfflineTravelPaymentMapper extends BaseMapper<OfflineTravelPayment> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityBusinessMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityBusinessMapper.java
new file mode 100644
index 0000000..c982df7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityBusinessMapper.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.OpenCityBusiness;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface OpenCityBusinessMapper extends BaseMapper<OpenCityBusiness> {
+
+
+    /**
+     * 获取业务类型
+     * @param province  省名称
+     * @param city      市名称
+     * @param district  区县名称
+     * @return
+     */
+    List<OpenCityBusiness> queryBusiness(@Param("province") String province, @Param("city") String city,
+                                         @Param("district") String district);
+
+
+    /**
+     * 根据开通城市id获取业务类型
+     * @param id
+     * @return
+     */
+    List<OpenCityBusiness> queryBusinessById(@Param("id") Integer id);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityMapper.java
new file mode 100644
index 0000000..1286955
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OpenCityMapper.java
@@ -0,0 +1,25 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.OpenCity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface OpenCityMapper extends BaseMapper<OpenCity> {
+
+
+    /**
+     * 获取开通城市列表(有效的)
+     * @return
+     */
+    List<OpenCity> queryOpenCity();
+
+
+    /**
+     * 获取开通城市
+     * @param code
+     * @return
+     */
+    List<OpenCity> queryByCode(@Param("code") String code);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OperationLogMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OperationLogMapper.java
new file mode 100644
index 0000000..eaf5760
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OperationLogMapper.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.modular.system.model.OperationLog;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 操作日志 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface OperationLogMapper extends BaseMapper<OperationLog> {
+
+    /**
+     * 获取操作日志
+     */
+    List<Map<String, Object>> getOperationLogs(@Param("page") Page<OperationLog> page, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("logName") String logName, @Param("logType") String logType, @Param("orderByField") String orderByField, @Param("isAsc") boolean isAsc);
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderCancelMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderCancelMapper.java
new file mode 100644
index 0000000..acdcc4e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderCancelMapper.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.OrderCancel;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface OrderCancelMapper extends BaseMapper<OrderCancel> {
+
+
+    /**
+     * 获取数据
+     * @param orderId
+     * @param orderType
+     * @param money
+     * @param payType
+     * @param state
+     * @return
+     */
+    OrderCancel query(@Param("orderId") Integer orderId, @Param("orderType") Integer orderType,
+                      @Param("money") Double money, @Param("payType") Integer payType,
+                      @Param("state") Integer state);
+
+
+    /**
+     * 获取用户取消记录
+     * @param uid
+     * @param isPay 1=不需要支付,2=需要支付
+     * @return
+     */
+    List<Map<String, Object>> queryCancel(@Param("uid") Integer uid, @Param("isPay") Integer isPay);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderEvaluateMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderEvaluateMapper.java
new file mode 100644
index 0000000..14325e4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderEvaluateMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.OrderEvaluate;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface OrderEvaluateMapper extends BaseMapper<OrderEvaluate> {
+
+
+    /**
+     * 获取历史评价数据
+     * @param driverId
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryOrderEvaluate(@Param("driverId") Integer driverId, @Param("pageNum") Integer pageNum,
+                                                 @Param("size") Integer size);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderPositionMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderPositionMapper.java
new file mode 100644
index 0000000..aa40295
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/OrderPositionMapper.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.OrderPosition;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface OrderPositionMapper extends BaseMapper<OrderPosition> {
+
+
+    /**
+     * 获取轨迹数据
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    List<Map<String, Object>> queryTrack(@Param("orderId") Integer orderId, @Param("orderType") Integer orderType);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java
new file mode 100644
index 0000000..eda261d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PhoneMapper.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Phone;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface PhoneMapper extends BaseMapper<Phone> {
+
+
+    /**
+     * 根据行政区域获取设置的电话
+     * @param code
+     * @return
+     */
+    List<Phone> queryPhones(@Param("province") String province, @Param("city") String city, @Param("code") String code);
+
+
+    /**
+     * 获取电话数据
+     * @param type
+     * @param platform
+     * @param code
+     * @return
+     */
+    Phone query(@Param("type") Integer type, @Param("platform") Integer platform,
+                @Param("province") String province, @Param("city") String city,
+                @Param("code") String code);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ProblemMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ProblemMapper.java
new file mode 100644
index 0000000..30965fd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ProblemMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Problem;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ProblemMapper extends BaseMapper<Problem> {
+
+
+    /**
+     * 获取提交的留言
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryProblems(@Param("pageNum") Integer pageNum, @Param("size") Integer size,
+                                            @Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushOrderMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushOrderMapper.java
new file mode 100644
index 0000000..58c8fe0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/PushOrderMapper.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.PushOrder;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface PushOrderMapper extends BaseMapper<PushOrder> {
+
+
+    /**
+     * 获取推送配置
+     * @param type
+     * @param pushType
+     * @return
+     */
+    List<PushOrder> querys(@Param("type") Integer type, @Param("pushType") Integer pushType,
+                           @Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RedPacketRecordMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RedPacketRecordMapper.java
new file mode 100644
index 0000000..7b966cb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RedPacketRecordMapper.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.RedPacketRecord;
+import org.apache.ibatis.annotations.Param;
+
+public interface RedPacketRecordMapper extends BaseMapper<RedPacketRecord> {
+
+
+    /**
+     * 根据企业id获取红包数据
+     * @param companyId
+     * @return
+     */
+    RedPacketRecord queryDate(@Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RegionMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RegionMapper.java
new file mode 100644
index 0000000..01eedcd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RegionMapper.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Region;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface RegionMapper extends BaseMapper<Region> {
+
+
+
+    Region query(@Param("code") String code);
+
+
+    List<Region> querys(@Param("parentId") Integer parentId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RelationMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RelationMapper.java
new file mode 100644
index 0000000..828a596
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RelationMapper.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Relation;
+
+/**
+ * <p>
+  * 角色和菜单关联表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface RelationMapper extends BaseMapper<Relation> {
+
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RoleMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RoleMapper.java
new file mode 100644
index 0000000..d95d87f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/RoleMapper.java
@@ -0,0 +1,53 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.model.Role;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+  * 角色表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface RoleMapper extends BaseMapper<Role> {
+
+    /**
+     * 根据条件查询角色列表
+     *
+     * @return
+     * @date 2017年2月12日 下午9:14:34
+     */
+    List<Map<String, Object>> selectRoles(@Param("condition") String condition);
+
+    /**
+     * 删除某个角色的所有权限
+     *
+     * @param roleId 角色id
+     * @return
+     * @date 2017年2月13日 下午7:57:51
+     */
+    int deleteRolesById(@Param("roleId") Integer roleId);
+
+    /**
+     * 获取角色列表树
+     *
+     * @return
+     * @date 2017年2月18日 上午10:32:04
+     */
+    List<ZTreeNode> roleTreeList();
+
+    /**
+     * 获取角色列表树
+     *
+     * @return
+     * @date 2017年2月18日 上午10:32:04
+     */
+    List<ZTreeNode> roleTreeListByRoleId(String[] roleId);
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SensitiveWordsMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SensitiveWordsMapper.java
new file mode 100644
index 0000000..1f67288
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SensitiveWordsMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.SensitiveWords;
+
+public interface SensitiveWordsMapper extends BaseMapper<SensitiveWords> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ServerCarModelMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ServerCarModelMapper.java
new file mode 100644
index 0000000..351f1a9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/ServerCarModelMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.ServerCarModel;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ServerCarModelMapper extends BaseMapper<ServerCarModel> {
+
+
+    /**
+     * 获取业务对应的所有有效服务车型
+     * @param type
+     * @return
+     */
+    List<Map<String, Object>> queryServerCarModel(@Param("type") Integer type);
+
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SmsrecordMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SmsrecordMapper.java
new file mode 100644
index 0000000..3f6b057
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SmsrecordMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Smsrecord;
+
+public interface SmsrecordMapper extends BaseMapper<Smsrecord> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysIntegralMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysIntegralMapper.java
new file mode 100644
index 0000000..848238a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SysIntegralMapper.java
@@ -0,0 +1,10 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.SysIntegral;
+import org.apache.ibatis.annotations.Param;
+
+public interface SysIntegralMapper extends BaseMapper<SysIntegral> {
+
+    SysIntegral query(@Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemNoticeMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemNoticeMapper.java
new file mode 100644
index 0000000..87eeb73
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemNoticeMapper.java
@@ -0,0 +1,47 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.SystemNotice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface SystemNoticeMapper extends BaseMapper<SystemNotice> {
+
+
+    /**
+     * 获取未阅读数量
+     * @param uid
+     * @return
+     */
+    Integer queryNoReadNoticeNum(@Param("uid") Integer uid);
+
+
+    /**
+     * 获取消息列表
+     * @param type
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryList(@Param("type") Integer type, @Param("pageNum") Integer pageNum,
+                                        @Param("size") Integer size, @Param("uid") Integer uid);
+
+
+    /**
+     * 阅读操作
+     * @param id
+     * @param uid
+     */
+    void readSystemNotice(@Param("id") Integer id, @Param("uid") Integer uid);
+
+
+    /**
+     * 删除数据
+     * @param id
+     * @param uid
+     */
+    void delSystemNotice(@Param("id") Integer id, @Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java
new file mode 100644
index 0000000..ef37769
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/SystemPriceMapper.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.SystemPrice;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+public interface SystemPriceMapper extends BaseMapper<SystemPrice> {
+
+
+    /**
+     * 获取价格
+     * @param companyId
+     * @param type
+     * @return
+     */
+    Map<String, Object> query(@Param("companyId") Integer companyId, @Param("type") Integer type,
+                              @Param("serverCarModelId") Integer serverCarModelId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TNoticesMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TNoticesMapper.java
new file mode 100644
index 0000000..32365a9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TNoticesMapper.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.TNotices;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface TNoticesMapper extends BaseMapper<TNotices> {
+
+
+    /**
+     * 获取公告列表
+     * @param type
+     * @return
+     */
+    List<TNotices> queryNotices(@Param("type") Integer type);
+
+
+    /**
+     * 获取用户的公告数据
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryList(@Param("pageNum") Integer pageNum, @Param("size") Integer size,
+                                        @Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityBalanceMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityBalanceMapper.java
new file mode 100644
index 0000000..d16d268
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityBalanceMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityBalance;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface UserActivityBalanceMapper extends BaseMapper<UserActivityBalance> {
+
+
+    /**
+     * 获取满足条件的活动
+     * @param companyId
+     * @return
+     */
+    List<Map<String, Object>> query(@Param("money") Double money, @Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityDiscount1Mapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityDiscount1Mapper.java
new file mode 100644
index 0000000..91dbaf6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityDiscount1Mapper.java
@@ -0,0 +1,11 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityDiscount1;
+import org.apache.ibatis.annotations.Param;
+
+public interface UserActivityDiscount1Mapper extends BaseMapper<UserActivityDiscount1> {
+
+
+    UserActivityDiscount1 query(@Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityInviteMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityInviteMapper.java
new file mode 100644
index 0000000..04d23cb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityInviteMapper.java
@@ -0,0 +1,14 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityInvite;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface UserActivityInviteMapper extends BaseMapper<UserActivityInvite> {
+
+
+    List<Map<String, Object>> query(@Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRedenvelopeMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRedenvelopeMapper.java
new file mode 100644
index 0000000..4c2e118
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRedenvelopeMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityRedenvelope;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.Map;
+
+public interface UserActivityRedenvelopeMapper extends BaseMapper<UserActivityRedenvelope> {
+
+
+    /**
+     * 获取红包活动
+     * @param companyId
+     * @return
+     */
+    Map<String, Object> query(@Param("companyId") Integer companyId, @Param("travelTime") Date travelTime);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRegisteredMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRegisteredMapper.java
new file mode 100644
index 0000000..4b973fe
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserActivityRegisteredMapper.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityRegistered;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface UserActivityRegisteredMapper extends BaseMapper<UserActivityRegistered> {
+
+
+    /**
+     * 获取当前有效的注册活动
+     * @param companyId
+     * @return
+     */
+    List<Map<String, Object>> query(@Param("companyId") Integer companyId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserCouponRecordMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserCouponRecordMapper.java
new file mode 100644
index 0000000..675c7bb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserCouponRecordMapper.java
@@ -0,0 +1,55 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserCouponRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface UserCouponRecordMapper extends BaseMapper<UserCouponRecord> {
+
+
+    /**
+     * 获取可用优惠券数量
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param couponUseType
+     * @return
+     */
+    int queryAvailable(@Param("uid") Integer uid, @Param("companyId") Integer companyId,
+                       @Param("state") Integer state, @Param("couponUseType") Integer couponUseType,
+                       @Param("money") Double money);
+
+
+    /**
+     * 获取优惠券列表
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param couponUseType
+     * @return
+     */
+    List<Map<String, Object>> queryCoupon(@Param("uid") Integer uid, @Param("companyId") Integer companyId,
+                                          @Param("state") Integer state, @Param("couponUseType") Integer couponUseType,
+                                          @Param("money") Double money, @Param("pageNum") Integer pageNum,
+                                          @Param("size") Integer size);
+
+    /**
+     * 获取优惠券列表
+     * @param state
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyCoupons(@Param("state") Integer state, @Param("pageNum") Integer pageNum,
+                                             @Param("size") Integer size, @Param("uid") Integer uid);
+
+
+    /**
+     * 修改过期状态
+     */
+    void updateTimeOut();
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserInfoMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserInfoMapper.java
new file mode 100644
index 0000000..9738a84
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserInfoMapper.java
@@ -0,0 +1,55 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+public interface UserInfoMapper extends BaseMapper<UserInfo> {
+
+
+    /**
+     * 电话号查询用户
+     * @param phone
+     * @return
+     */
+    UserInfo queryByPhone(@Param("phone") String phone);
+
+
+    /**
+     * 根据微信openid获取用户
+     * @param openid
+     * @param unionid
+     * @return
+     */
+    UserInfo queryByOpenid(@Param("openid") String openid);
+
+    UserInfo queryByOpenid2(@Param("openid") String openid);
+
+
+    /**
+     * 获取用户详情
+     * @param uid
+     * @return
+     */
+    Map<String, Object> queryUserInfo(@Param("uid") Integer uid, @Param("phone") String phone);
+
+
+    /**
+     * 设置紧急联系人
+     * @param name
+     * @param phone
+     * @param uid
+     */
+    void setUrgentUser(@Param("name") String name, @Param("phone") String phone,
+                       @Param("uid") Integer uid);
+
+
+    /**
+     * 获取实名认证数据
+     * @param uid
+     * @return
+     */
+    Map<String, Object> queryRealName(@Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserMapper.java
new file mode 100644
index 0000000..c15c8fc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserMapper.java
@@ -0,0 +1,45 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.core.datascope.DataScope;
+import com.stylefeng.guns.modular.system.model.User;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 管理员表 Mapper 接口
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+public interface UserMapper extends BaseMapper<User> {
+
+    /**
+     * 修改用户状态
+     */
+    int setStatus(@Param("userId") Integer userId, @Param("status") int status);
+
+    /**
+     * 修改密码
+     */
+    int changePwd(@Param("userId") Integer userId, @Param("pwd") String pwd);
+
+    /**
+     * 根据条件查询用户列表
+     */
+    List<Map<String, Object>> selectUsers(@Param("dataScope") DataScope dataScope, @Param("name") String name, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Integer deptid);
+
+    /**
+     * 设置用户的角色
+     */
+    int setRoles(@Param("userId") Integer userId, @Param("roleIds") String roleIds);
+
+    /**
+     * 通过账号获取用户
+     */
+    User getByAccount(@Param("account") String account);
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserRedPacketRecordMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserRedPacketRecordMapper.java
new file mode 100644
index 0000000..6e6b030
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/UserRedPacketRecordMapper.java
@@ -0,0 +1,42 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.UserRedPacketRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface UserRedPacketRecordMapper extends BaseMapper<UserRedPacketRecord> {
+
+
+    /**
+     * 获取不大于money值的红包数据
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param orderType
+     * @param money
+     * @return
+     */
+    UserRedPacketRecord query(@Param("uid") Integer uid, @Param("companyId") Integer companyId,
+                              @Param("state") Integer state, @Param("orderType") Integer orderType,
+                              @Param("money") Double money);
+
+
+
+    UserRedPacketRecord query_(@Param("uid") Integer uid, @Param("companyId") Integer companyId,
+                              @Param("state") Integer state, @Param("orderType") Integer orderType,
+                              @Param("money") Double money);
+
+
+    /**
+     * 获取红包列表
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyRedEnvelope(@Param("pageNum") Integer pageNum, @Param("size") Integer size,
+                                                 @Param("uid") Integer uid);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VerifiedMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VerifiedMapper.java
new file mode 100644
index 0000000..584e0b2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VerifiedMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Verified;
+
+public interface VerifiedMapper extends BaseMapper<Verified> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VersionManagementMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VersionManagementMapper.java
new file mode 100644
index 0000000..89b007a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/VersionManagementMapper.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.VersionManagement;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+public interface VersionManagementMapper extends BaseMapper<VersionManagement> {
+
+
+    /**
+     * 获取最新版本
+     * @return
+     */
+    Map<String, Object> queryNewVersion(@Param("type") Integer type);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/WithdrawalMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/WithdrawalMapper.java
new file mode 100644
index 0000000..aa3f7ac
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/WithdrawalMapper.java
@@ -0,0 +1,22 @@
+package com.stylefeng.guns.modular.system.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.system.model.Withdrawal;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface WithdrawalMapper extends BaseMapper<Withdrawal> {
+
+
+    /**
+     * 获取历史提交数据
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryWithdrawal(@Param("uid") Integer uid, @Param("userType") Integer userType,
+                                              @Param("pageNum") Integer pageNum, @Param("size") Integer size);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AdvertisementMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AdvertisementMapper.xml
new file mode 100644
index 0000000..1a661ff
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AdvertisementMapper.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.AdvertisementMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Advertisement">
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="imgUrl" property="imgUrl"/>
+        <result column="type" property="type"/>
+        <result column="isJump" property="isJump"/>
+        <result column="jumpType" property="jumpType"/>
+        <result column="jumpUrl" property="jumpUrl"/>
+        <result column="content" property="content"/>
+        <result column="state" property="state"/>
+        <result column="provinceId" property="provinceId"/>
+
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+    <select id="queryAdvertisement" resultType="com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper">
+        select
+        id as id,
+        name as name,
+        imgUrl as imgUrl,
+        type as type,
+        isJump as isJump,
+        jumpType as jumpType,
+        jumpUrl as jumpUrl,
+        content as content,
+        state as state,
+        provinceId as provinceId
+        from t_advertisement where flag != 3 and state = 1 and provinceId in (select id from t_region where code = #{code})
+        <if test="null != type">
+          and `type` = #{type}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml
new file mode 100644
index 0000000..dc077e8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/AgreementMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.AgreementMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Agreement">
+        <id column="id" property="id"/>
+        <result column="useType" property="useType"/>
+        <result column="content" property="content"/>
+        <result column="type" property="type"/>
+
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+
+    <select id="queryByType" resultType="java.lang.String">
+        select content from t_agreement where `type` = #{type} and flag != 3
+        <if test="null != useType">
+            and useType = #{useType}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BankCardMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BankCardMapper.xml
new file mode 100644
index 0000000..dbebc9a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/BankCardMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.BankCardMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.BankCard">
+        <id column="id" property="id"/>
+        <result column="bank" property="bank"/>
+        <result column="name" property="name"/>
+        <result column="code" property="code"/>
+        <result column="acctNumSuffix" property="acctNumSuffix"/>
+        <result column="phone" property="phone"/>
+        <result column="IdNum" property="IdNum"/>
+        <result column="userType" property="userType"/>
+        <result column="userId" property="userId"/>
+        <result column="signNum" property="signNum"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml
new file mode 100644
index 0000000..5c55a67
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CancleOrderMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.CancleOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.CancleOrder">
+        <id column="id" property="id"/>
+        <result column="companyId" property="companyId"/>
+        <result column="minuteNum" property="minuteNum"/>
+        <result column="money" property="money"/>
+        <result column="type" property="type"/>
+        <result column="orderType" property="orderType"/>
+    </resultMap>
+
+
+    <select id="query" resultType="CancleOrder">
+        select
+        id as id,
+        companyId as companyId,
+        minuteNum as minuteNum,
+        money as money,
+        `type` as `type`,
+        orderType as orderType
+        from t_sys_cancle_order where `type` = #{type} and orderType = #{orderType} and companyId = #{companyId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
new file mode 100644
index 0000000..858805f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.CarMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Car">
+        <id column="id" property="id"/>
+        <result column="isPlatCar" property="isPlatCar"/>
+        <result column="companyId" property="companyId"/>
+        <result column="franchiseeId" property="franchiseeId"/>
+        <result column="carColor" property="carColor"/>
+        <result column="carModelId" property="carModelId"/>
+        <result column="carBrandId" property="carBrandId"/>
+        <result column="carLicensePlate" property="carLicensePlate"/>
+        <result column="carPhoto" property="carPhoto"/>
+        <result column="drivingLicenseNumber" property="drivingLicenseNumber"/>
+        <result column="drivingLicensePhoto" property="drivingLicensePhoto"/>
+        <result column="annualInspectionTime" property="annualInspectionTime"/>
+        <result column="insurancePhoto" property="insurancePhoto" />
+        <result column="commercialInsuranceTime" property="commercialInsuranceTime"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="state" property="state"/>
+        <result column="addType" property="addType"/>
+        <result column="addObjectId" property="addObjectId"/>
+    </resultMap>
+
+
+
+    <select id="queryIdleData" resultType="map">
+        select
+        a.id as id,
+        CONCAT(a.carLicensePlate, '-',c.`name`, b.`name`, ' ', a.carColor) as name
+        from t_car a
+        left join t_car_model b on (a.carModelId = b.id)
+        left join t_car_brand c on (b.brandId = c.id)
+        where a.state = 1
+        <choose>
+            <when test="companyId != 1">
+                and  a.companyId = #{companyId} or a.franchiseeId = #{companyId}
+            </when>
+            <otherwise>
+                and a.isPlatCar = 1
+            </otherwise>
+
+        </choose>
+    </select>
+
+
+    <select id="query" resultType="com.stylefeng.guns.modular.system.model.Car">
+        select
+        id as id,
+        isPlatCar as isPlatCar,
+        companyId as companyId,
+        franchiseeId as franchiseeId,
+        carColor as carColor,
+        carModelId as carModelId,
+        carBrandId as carBrandId,
+        carLicensePlate as carLicensePlate,
+        carPhoto as carPhoto,
+        drivingLicenseNumber as drivingLicenseNumber,
+        drivingLicensePhoto as drivingLicensePhoto,
+        annualInspectionTime as annualInspectionTime,
+        insurancePhoto as insurancePhoto,
+        commercialInsuranceTime as commercialInsuranceTime,
+        insertTime as insertTime,
+        state as state,
+        addType as addType,
+        addObjectId as addObjectId
+        from t_car where state = 1 and carLicensePlate = #{licensePlate}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarServiceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarServiceMapper.xml
new file mode 100644
index 0000000..919a8b2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarServiceMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.CarServiceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.CarService">
+        <id column="id" property="id"/>
+        <result column="carId" property="carId"/>
+        <result column="type" property="type"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+    </resultMap>
+
+
+    <select id="query" resultType="CarService">
+        select
+        id as id,
+        carId as carId,
+        `type` as `type`,
+        serverCarModelId as serverCarModelId
+        from t_car_service where `type` = #{type} and carId = #{carId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyCityMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyCityMapper.xml
new file mode 100644
index 0000000..2dba5b5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyCityMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.CompanyCityMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.CompanyCity">
+        <id column="id" property="id"/>
+        <result column="companyId" property="companyId"/>
+        <result column="provinceCode" property="provinceCode"/>
+        <result column="cityCode" property="cityCode"/>
+        <result column="areaCode" property="areaCode"/>
+        <result column="state" property="state"/>
+    </resultMap>
+
+    <select id="query" resultType="CompanyCity">
+        select
+        id as id,
+        companyId as companyId,
+        provinceCode as provinceCode,
+        cityCode as cityCode,
+        areaCode as areaCode,
+        state as state
+        from t_company_city where state = 1
+        <if test="null != province">
+            and provinceCode = #{province}
+        </if>
+        <if test="null != city">
+            and cityCode = #{city}
+        </if>
+        <if test="null != code">
+            and areaCode = #{code}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml
new file mode 100644
index 0000000..9007d02
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CompanyMapper.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.CompanyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Company">
+        <id column="id" property="id"/>
+        <result column="isSpe" property="isSpe"/>
+        <result column="isTaxi" property="isTaxi"/>
+        <result column="isCross" property="isCross"/>
+        <result column="isCrossLogistics" property="isCrossLogistics"/>
+        <result column="isSameLogistics" property="isSameLogistics"/>
+        <result column="isCharter" property="isCharter"/>
+        <result column="isSpeFixedOrProportional" property="isSpeFixedOrProportional"/>
+        <result column="isTaxiFixedOrProportional" property="isTaxiFixedOrProportional"/>
+        <result column="isCrossLogisticsFixedOrProportional" property="isCrossLogisticsFixedOrProportional"/>
+        <result column="isSameLogisticsFixedOrProportional" property="isSameLogisticsFixedOrProportional"/>
+        <result column="speMoney" property="speMoney"/>
+        <result column="taxiMoney" property="taxiMoney"/>
+        <result column="crossLogisticsMoney" property="crossLogisticsMoney"/>
+        <result column="sameLogisticsMoney" property="sameLogisticsMoney"/>
+        <result column="isNeedFerry" property="isNeedFerry"/>
+        <result column="name" property="name"/>
+        <result column="type" property="type"/>
+        <result column="superiorId" property="superiorId"/>
+        <result column="principalName" property="principalName"/>
+        <result column="principalPhone" property="principalPhone"/>
+        <result column="adminName" property="adminName"/>
+        <result column="adminPhone" property="adminPhone"/>
+        <result column="urgentPhoen" property="urgentPhoen"/>
+        <result column="setupTime" property="setupTime"/>
+        <result column="identifier" property="identifier"/>
+        <result column="addressCode" property="addressCode"/>
+        <result column="businessScope" property="businessScope"/>
+        <result column="contactAddress" property="contactAddress"/>
+        <result column="documentAddress" property="documentAddress"/>
+        <result column="economicType" property="economicType"/>
+        <result column="regCapital" property="regCapital"/>
+        <result column="legalName" property="legalName"/>
+        <result column="legalId" property="legalId"/>
+        <result column="legalPhone" property="legalPhone"/>
+        <result column="legalPhotoUrl" property="legalPhotoUrl"/>
+        <result column="licensingAgency" property="licensingAgency"/>
+        <result column="licenseTime" property="licenseTime"/>
+        <result column="licenseStartTime" property="licenseStartTime"/>
+        <result column="licenseEndTime" property="licenseEndTime"/>
+        <result column="licenseNumber" property="licenseNumber"/>
+        <result column="carNum" property="carNum"/>
+        <result column="driverNum" property="driverNum"/>
+        <result column="mac" property="mac"/>
+        <result column="state" property="state"/>
+        <result column="flag" property="flag"/>
+        <result column="upload" property="upload"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+    <select id="query" resultType="Company">
+        select
+        id as id,
+        isSpe as isSpe,
+        isTaxi as isTaxi,
+        isCross as isCross,
+        isCrossLogistics as isCrossLogistics,
+        isSameLogistics as isSameLogistics,
+        isCharter as isCharter,
+        isSpeFixedOrProportional as isSpeFixedOrProportional,
+        isTaxiFixedOrProportional as isTaxiFixedOrProportional,
+        isCrossLogisticsFixedOrProportional as isCrossLogisticsFixedOrProportional,
+        isSameLogisticsFixedOrProportional as isSameLogisticsFixedOrProportional,
+        speMoney as speMoney,
+        taxiMoney as taxiMoney,
+        crossLogisticsMoney as crossLogisticsMoney,
+        sameLogisticsMoney as sameLogisticsMoney,
+        isNeedFerry as isNeedFerry,
+        name as name,
+        type as type,
+        superiorId as superiorId,
+        principalName as principalName,
+        principalPhone as principalPhone,
+        adminName as adminName,
+        adminPhone as adminPhone,
+        urgentPhoen as urgentPhoen,
+        setupTime as setupTime,
+        identifier as identifier,
+        addressCode as addressCode,
+        businessScope as businessScope,
+        contactAddress as contactAddress,
+        documentAddress as documentAddress,
+        economicType as economicType,
+        regCapital as regCapital,
+        legalName as legalName,
+        legalId as legalId,
+        legalPhone as legalPhone,
+        legalPhotoUrl as legalPhotoUrl,
+        licensingAgency as licensingAgency,
+        licenseTime as licenseTime,
+        licenseStartTime as licenseStartTime,
+        licenseEndTime as licenseEndTime,
+        licenseNumber as licenseNumber,
+        carNum as carNum,
+        driverNum as driverNum,
+        mac as mac,
+        state as state,
+        flag as flag,
+        upload as upload,
+        insertTime as insertTime
+        from t_company where flag != 3 and state = 0 and id in (
+        select companyId from t_company_city where state = 1
+        <if test="null != province and null != city and null != code">
+            and provinceCode = #{province} and cityCode = #{city} and areaCode = #{code}
+        </if>
+        <if test="null != province and null != city and null == code">
+            and provinceCode = #{province} and cityCode = #{city} and (areaCode = '' or areaCode is null)
+        </if>
+        <if test="null != province and null == city and null == code">
+            and provinceCode = #{province} and (cityCode = '' or cityCode is null) and (areaCode = '' or areaCode is null)
+        </if>
+        )
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ComplaintMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ComplaintMapper.xml
new file mode 100644
index 0000000..bda2762
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ComplaintMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.ComplaintMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Complaint">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="reason" property="reason"/>
+        <result column="driverId" property="driverId"/>
+        <result column="description" property="description"/>
+        <result column="isHandle" property="isHandle"/>
+        <result column="insert_time" property="insertTime"/>
+        <result column="handleResult" property="handleResult"/>
+        <result column="handleUserId" property="handleUserId"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml
new file mode 100644
index 0000000..c89d952
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DeptMapper.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DeptMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Dept">
+        <id column="id" property="id"/>
+        <result column="num" property="num"/>
+        <result column="pid" property="pid"/>
+        <result column="pids" property="pids"/>
+        <result column="simplename" property="simplename"/>
+        <result column="fullname" property="fullname"/>
+        <result column="tips" property="tips"/>
+        <result column="version" property="version"/>
+    </resultMap>
+
+    <select id="tree" resultType="com.stylefeng.guns.core.node.ZTreeNode">
+		select id,pid as pId,simplename as name,
+		(
+		CASE
+		WHEN (pId = 0 OR pId IS NULL) THEN
+		'true'
+		ELSE
+		'false'
+		END
+		) as isOpen from sys_dept
+	</select>
+
+    <select id="list" resultType="map">
+        select * from sys_dept
+        <if test="condition != null and condition != ''">
+            where simplename like CONCAT('%',#{condition},'%') or fullname like CONCAT('%',#{condition},'%')
+        </if>
+        order by num ASC
+    </select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml
new file mode 100644
index 0000000..54742bd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DictMapper.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DictMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Dict">
+        <id column="id" property="id"/>
+        <result column="num" property="num"/>
+        <result column="pid" property="pid"/>
+        <result column="name" property="name"/>
+        <result column="code" property="code"/>
+        <result column="tips" property="tips"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+		id, num, pid, name,code,tips
+	</sql>
+
+    <select id="selectByCode" resultType="dict">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_dict
+        where code = #{code}
+    </select>
+
+    <select id="selectByParentCode" resultType="dict">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_dict
+        where pid in(select id  from sys_dict where code = #{code}) order by num asc
+    </select>
+
+    <select id="list" resultType="map">
+        select * from sys_dict
+        where pid = 0
+        <if test="condition != null and condition != ''">
+            AND name like CONCAT('%',#{condition},'%')
+        </if>
+        order by id ASC
+    </select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml
new file mode 100644
index 0000000..3e7c904
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityHistoryMapper.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverActivityHistoryMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverActivityHistory">
+        <id column="id" property="id"/>
+        <result column="day" property="day"/>
+        <result column="driverId" property="driverId"/>
+        <result column="type" property="type"/>
+        <result column="activityId" property="activityId"/>
+        <result column="carryOut" property="carryOut"/>
+        <result column="money" property="money"/>
+        <result column="collectionTime" property="collectionTime"/>
+        <result column="insertTime" property="insertTime"/>
+
+    </resultMap>
+
+
+
+    <select id="query" resultType="map">
+        select * from
+        (
+            select
+            DATE_FORMAT(`day`, '%Y.%m.%d') as time,
+            if((select count(id) from t_driver_activity_history where driverId = #{driverId}) > (select count(id) from t_driver_activity_history where driverId = #{driverId} and carryOut = 2), 1, 2) as carryOut
+            from t_driver_activity_history where driverId = #{driverId} group by `day`
+        ) as a order by a.time desc limit #{pageNum}, #{size}
+    </select>
+
+    <select id="queryList" resultType="DriverActivityHistory">
+        select
+        id as id,
+        `day` as `day`,
+        driverId as driverId,
+        `type` as `type`,
+        activityId as activityId,
+        carryOut as carryOut,
+        money as money,
+        collectionTime as collectionTime,
+        insertTime as insertTime
+        from t_driver_activity_history where `day` between #{start} and #{end}
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+        <if test="null != carryOut">
+            and carryOut = #{carryOut}
+        </if>
+        <if test="null != driverId">
+            and driverId = #{driverId}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityRegisteredMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityRegisteredMapper.xml
new file mode 100644
index 0000000..4ad136c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverActivityRegisteredMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverActivityRegisteredMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverActivityRegistered">
+        <id column="id" property="id"/>
+        <result column="companyId" property="companyId"/>
+        <result column="driverActivityId" property="driverActivityId"/>
+        <result column="type" property="type"/>
+        <result column="money" property="money"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="map">
+        select
+        a.id as id,
+        CONCAT('邀请', if(a.`type` = 1, '司机', '用户'), '注册奖励', a.money, '元') as content,
+        a.money as money
+        from t_driver_activity_registered a
+        left join t_driver_activity b on (a.driverActivityId = b.id)
+        where now() between a.startTime and a.endTime and a.companyId = #{companyId} and a.`type` = #{type} and b.status = 3
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
new file mode 100644
index 0000000..e0997e5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverMapper.xml
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Driver">
+        <id column="id" property="id" />
+        <result column="account" property="account" />
+        <result column="jobNumber" property="jobNumber" />
+        <result column="phone" property="phone" />
+        <result column="password" property="password" />
+        <result column="name" property="name" />
+        <result column="sex" property="sex" />
+        <result column="idCard" property="idCard" />
+        <result column="companyId" property="companyId" />
+        <result column="franchiseeId" property="franchiseeId" />
+        <result column="headImgUrl" property="headImgUrl" />
+        <result column="faceImgUrl" property="faceImgUrl" />
+        <result column="idCardImgUrl1" property="idCardImgUrl1" />
+        <result column="idCardImgUrl2" property="idCardImgUrl2" />
+        <result column="placeOfEmployment" property="placeOfEmployment" />
+        <result column="birthday" property="birthday" />
+        <result column="bankCardNumber" property="bankCardNumber" />
+        <result column="driverNationality" property="driverNationality" />
+        <result column="driverNation" property="driverNation" />
+        <result column="driverMaritalStatus" property="driverMaritalStatus" />
+        <result column="driverLanguageLevel" property="driverLanguageLevel" />
+        <result column="driverEducation" property="driverEducation" />
+        <result column="driverCensus" property="driverCensus" />
+        <result column="driverAddress" property="driverAddress" />
+        <result column="driverContactAddress" property="driverContactAddress" />
+        <result column="driverAge" property="driverAge" />
+        <result column="driveCard" property="driveCard" />
+        <result column="driveCardImgUrl" property="driveCardImgUrl" />
+        <result column="driverType" property="driverType" />
+        <result column="getDriverLicenseDate" property="getDriverLicenseDate" />
+        <result column="driverLicenseOn" property="driverLicenseOn" />
+        <result column="driverLicenseOff" property="driverLicenseOff" />
+        <result column="taxiDriver" property="taxiDriver" />
+        <result column="taxiAptitudeCard" property="taxiAptitudeCard" />
+        <result column="networkCarlssueImg" property="networkCarlssueImg"/>
+        <result column="networkCarlssueOrganization" property="networkCarlssueOrganization" />
+        <result column="networkCarlssueDate" property="networkCarlssueDate" />
+        <result column="getNetworkCarProofDate" property="getNetworkCarProofDate" />
+        <result column="networkCarProofOn" property="networkCarProofOn" />
+        <result column="networkCarProofOff" property="networkCarProofOff" />
+        <result column="registerDate" property="registerDate" />
+        <result column="fullTimeDriver" property="fullTimeDriver" />
+        <result column="inDriverBlacklist" property="inDriverBlacklist" />
+        <result column="commercialType" property="commercialType" />
+        <result column="contractCompany" property="contractCompany" />
+        <result column="contractOn" property="contractOn" />
+        <result column="contractOff" property="contractOff" />
+        <result column="emergencyContact" property="emergencyContact" />
+        <result column="emergencyContactPhone" property="emergencyContactPhone" />
+        <result column="emergencyContactAddress" property="emergencyContactAddress" />
+        <result column="remark" property="remark" />
+        <result column="isPlatCar" property="isPlatCar" />
+        <result column="carId" property="carId" />
+        <result column="authState" property="authState" />
+        <result column="state" property="state" />
+        <result column="addType" property="addType" />
+        <result column="balance" property="balance" />
+        <result column="activityMoney" property="activityMoney" />
+        <result column="laveActivityMoney" property="laveActivityMoney" />
+        <result column="businessMoney" property="businessMoney" />
+        <result column="laveBusinessMoney" property="laveBusinessMoney" />
+        <result column="laveBusinessMoney" property="laveBusinessMoney" />
+        <result column="appletsOpenId" property="appletsOpenId"/>
+        <result column="mchtNo" property="mchtNo"/>
+
+
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+
+    <select id="queryIdleDriver" resultType="Driver">
+        select
+        id as id,
+        account as account,
+        jobNumber as jobNumber,
+        phone as phone,
+        password as password,
+        name as name,
+        sex as sex,
+        idCard as idCard,
+        companyId as companyId,
+        franchiseeId as franchiseeId,
+        headImgUrl as headImgUrl,
+        faceImgUrl as faceImgUrl,
+        idCardImgUrl1 as idCardImgUrl1,
+        idCardImgUrl2 as idCardImgUrl2,
+        placeOfEmployment as placeOfEmployment,
+        birthday as birthday,
+        bankCardNumber as bankCardNumber,
+        driverNationality as driverNationality,
+        driverNation as driverNation,
+        driverMaritalStatus as driverMaritalStatus,
+        driverLanguageLevel as driverLanguageLevel,
+        driverEducation as driverEducation,
+        driverCensus as driverCensus,
+        driverAddress as driverAddress,
+        driverContactAddress as driverContactAddress,
+        driverAge as driverAge,
+        driveCard as driveCard,
+        driveCardImgUrl as driveCardImgUrl,
+        driverType as driverType,
+        getDriverLicenseDate as getDriverLicenseDate,
+        driverLicenseOn as driverLicenseOn,
+        driverLicenseOff as driverLicenseOff,
+        taxiDriver as taxiDriver,
+        taxiAptitudeCard as taxiAptitudeCard,
+        networkCarlssueImg as networkCarlssueImg,
+        networkCarlssueOrganization as networkCarlssueOrganization,
+        networkCarlssueDate as networkCarlssueDate,
+        getNetworkCarProofDate as getNetworkCarProofDate,
+        networkCarProofOn as networkCarProofOn,
+        networkCarProofOff as networkCarProofOff,
+        registerDate as registerDate,
+        fullTimeDriver as fullTimeDriver,
+        inDriverBlacklist as inDriverBlacklist,
+        commercialType as commercialType,
+        contractCompany as contractCompany,
+        contractOn as contractOn,
+        contractOff as contractOff,
+        emergencyContact as emergencyContact,
+        emergencyContactPhone as emergencyContactPhone,
+        emergencyContactAddress as emergencyContactAddress,
+        remark as remark,
+        isPlatCar as isPlatCar,
+        carId as carId,
+        authState as authState,
+        state as state,
+        addType as addType,
+        balance as balance,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_driver
+        where flag != 3 and state = 2 and authState = 2
+        <if test="null != companyId">
+            <choose>
+                <when test="companyId != 1">
+                    and companyId = #{companyId} or franchiseeId = #{companyId}
+                </when>
+                <otherwise>
+                    and companyId is null or companyId = 0 or companyId = 1 or franchiseeId is null or franchiseeId = 0
+                </otherwise>
+            </choose>
+
+        </if>
+        and id in
+        (
+          select driverId from t_driver_work where startTime &lt; now() and state = 1 and `type` like CONCAT('%', #{type}, '%')
+        )
+        and id in (select driverId from t_driver_orders where `type` = #{type})
+    </select>
+
+
+
+
+    <select id="queryIdleDriver_" resultType="Driver">
+        select
+        id as id,
+        account as account,
+        jobNumber as jobNumber,
+        phone as phone,
+        password as password,
+        name as name,
+        sex as sex,
+        idCard as idCard,
+        companyId as companyId,
+        franchiseeId as franchiseeId,
+        headImgUrl as headImgUrl,
+        faceImgUrl as faceImgUrl,
+        idCardImgUrl1 as idCardImgUrl1,
+        idCardImgUrl2 as idCardImgUrl2,
+        placeOfEmployment as placeOfEmployment,
+        birthday as birthday,
+        bankCardNumber as bankCardNumber,
+        driverNationality as driverNationality,
+        driverNation as driverNation,
+        driverMaritalStatus as driverMaritalStatus,
+        driverLanguageLevel as driverLanguageLevel,
+        driverEducation as driverEducation,
+        driverCensus as driverCensus,
+        driverAddress as driverAddress,
+        driverContactAddress as driverContactAddress,
+        driverAge as driverAge,
+        driveCard as driveCard,
+        driveCardImgUrl as driveCardImgUrl,
+        driverType as driverType,
+        getDriverLicenseDate as getDriverLicenseDate,
+        driverLicenseOn as driverLicenseOn,
+        driverLicenseOff as driverLicenseOff,
+        taxiDriver as taxiDriver,
+        taxiAptitudeCard as taxiAptitudeCard,
+        networkCarlssueImg as networkCarlssueImg,
+        networkCarlssueOrganization as networkCarlssueOrganization,
+        networkCarlssueDate as networkCarlssueDate,
+        getNetworkCarProofDate as getNetworkCarProofDate,
+        networkCarProofOn as networkCarProofOn,
+        networkCarProofOff as networkCarProofOff,
+        registerDate as registerDate,
+        fullTimeDriver as fullTimeDriver,
+        inDriverBlacklist as inDriverBlacklist,
+        commercialType as commercialType,
+        contractCompany as contractCompany,
+        contractOn as contractOn,
+        contractOff as contractOff,
+        emergencyContact as emergencyContact,
+        emergencyContactPhone as emergencyContactPhone,
+        emergencyContactAddress as emergencyContactAddress,
+        remark as remark,
+        isPlatCar as isPlatCar,
+        carId as carId,
+        authState as authState,
+        state as state,
+        addType as addType,
+        balance as balance,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_driver
+        where flag != 3 and state = 2 and authState = 2
+        <if test="null != companyId">
+            <choose>
+                <when test="companyId != 1">
+                    and companyId = #{companyId} or franchiseeId = #{companyId}
+                </when>
+                <otherwise>
+                    and companyId is null or companyId = 0 or companyId = 1 or franchiseeId is null or franchiseeId = 0
+                </otherwise>
+            </choose>
+
+        </if>
+        and id in
+        (
+        select driverId from t_driver_work where startTime &lt; now() and state = 1 and `type` like CONCAT('%', #{type}, '%')
+        )
+        and id in (select driverId from t_driver_orders where `type` = #{type})
+        and carId in (select carId from t_car_service where `type` = #{type}
+        <if test="null != serverCarModelId">
+            and serverCarModelId = #{serverCarModelId}
+        </if>
+        )
+    </select>
+
+
+
+    <select id="queryOrderDriver" resultType="map">
+        select
+        b.id as orderId,
+        b.state as state,
+        a.id as driverId,
+        a.`name` as `name`,
+        a.headImgUrl as avatar,
+        a.phone as phone,
+        c.carLicensePlate as carCode,
+        CONCAT(F.`name`, d.`name`,  '.', c.carColor) as carName,
+        (select sum(fraction) / count(id) from t_order_evaluate where driverId = a.id) as score,
+        (
+        (select count(id) from t_order_private_car where state in (7, 8, 9) and driverId = a.id) +
+        (select count(id) from t_order_taxi where state in (7, 8, 9) and driverId = a.id) +
+        (select count(id) from t_order_cross_city where state in (6, 8, 9) and driverId = a.id)
+        ) as num,
+        DATE_FORMAT(b.startServiceTime, '%m月%d日 %H:%i') as `time`,
+        b.startAddress as `start`,
+        b.endAddress as `end`
+        from t_driver a
+        <if test="orderType == 1">
+            left join t_order_private_car b on (a.id = b.driverId)
+        </if>
+        <if test="orderType == 2">
+            left join t_order_taxi b on (a.id = b.driverId)
+        </if>
+        <if test="orderType == 3">
+            left join t_order_cross_city b on (a.id = b.driverId)
+        </if>
+        <if test="orderType == 4">
+            left join t_order_tat_order_logisticsxi b on (a.id = b.driverId)
+        </if>
+        <if test="orderType == 5">
+            left join t_order_logistics b on (a.id = b.driverId)
+        </if>
+        left join t_car c on (b.carId = c.id)
+        left join t_car_model d on (c.carModelId = d.id)
+        left join t_car_brand f on (d.brandId = f.id)
+        where b.id = #{orderId}
+    </select>
+
+
+
+    <select id="queryDriverInfo" resultType="map">
+        select
+        a.id as id,
+        a.headImgUrl as avatar,
+        a.`name` as `name`,
+        a.phone as phone,
+        a.idCard as idcode,
+        b.carLicensePlate as licensePlate,
+        b.carColor as carColor,
+        CONCAT(d.`name`, c.`name`) as brand,
+        if((select count(id) from t_driver_work where state = 1 and driverId = a.id) = 0, 1, if(
+        (
+        (select count(id) from t_order_private_car where state not in (6, 7, 8, 9, 10, 12) and driverId = a.id) +
+        (select count(id) from t_order_taxi where state not in (6, 7, 8, 9, 10, 12) and driverId = a.id) +
+        (select count(id) from t_order_cross_city where state not in (6, 7, 8, 9, 10, 12) and driverId = a.id)
+        ) = 0, 2, 3)) as state,
+        (
+        (select count(id) from t_order_private_car where state in (7, 8, 9) and driverId = a.id) +
+        (select count(id) from t_order_taxi where state in (7, 8, 9) and driverId = a.id) +
+        (select count(id) from t_order_cross_city where state in (6, 8, 9) and driverId = a.id)
+        ) as orderNum,
+        ((select sum(fraction) from t_order_evaluate where driverId = a.id) / (select count(id) from t_order_evaluate where driverId = a.id)) as fraction
+        from t_driver a
+        left join t_car b on (a.carId = b.id)
+        left join t_car_model c on (b.carModelId = c.id)
+        left join t_car_brand d on (c.brandId = d.id)
+        where a.id = #{id}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverOrdersMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverOrdersMapper.xml
new file mode 100644
index 0000000..6137000
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverOrdersMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverOrdersMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverOrders">
+        <id column="id" property="id"/>
+        <result column="driverId" property="driverId"/>
+        <result column="type" property="type"/>
+    </resultMap>
+
+
+    <select id="query" resultType="DriverOrders">
+        select
+        id as id,
+        driverId as driverId,
+        `type` as `type`
+        from t_driver_orders where driverId = #{uid} and `type` = #{type}
+    </select>
+
+
+    <select id="queryOrders" resultType="int">
+        select `type` from t_driver_orders where driverId = #{uid}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml
new file mode 100644
index 0000000..9995d25
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverServiceMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverServiceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverService">
+        <id column="id" property="id" />
+        <result column="driverId" property="driverId" />
+        <result column="type" property="type" />
+    </resultMap>
+
+
+    <select id="queryBusiness" resultType="DriverService">
+        select
+        id as id,
+        driverId as driverId,
+        `type` as `type`
+        from t_driver_service where driverId = #{uid}
+        <if test="null != type">
+            and `type` in
+            <foreach collection="type" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml
new file mode 100644
index 0000000..290179b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverWorkMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverWork">
+        <id column="id" property="id" />
+        <result column="driverId" property="driverId" />
+        <result column="startTime" property="startTime" />
+        <result column="endTime" property="endTime" />
+        <result column="type" property="type" />
+        <result column="state" property="state" />
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml
new file mode 100644
index 0000000..74e8be4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ExpenseMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.ExpenseMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Expense">
+		<id column="id" property="id" />
+		<result column="money" property="money" />
+		<result column="desc" property="desc" />
+		<result column="createtime" property="createtime" />
+		<result column="state" property="state" />
+		<result column="userid" property="userid" />
+	</resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, money, desc, createtime, state, userid
+    </sql>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedbackMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedbackMapper.xml
new file mode 100644
index 0000000..8cac652
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/FeedbackMapper.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.FeedbackMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Feedback">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="handleUserId" property="handleUserId"/>
+        <result column="content" property="content"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="imgUrl" property="imgUrl"/>
+        <result column="flag" property="flag"/>
+        <result column="state" property="state"/>
+        <result column="cldate" property="cldate"/>
+        <result column="remark" property="remark"/>
+        <result column="type" property="type"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/GDInterfaceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/GDInterfaceMapper.xml
new file mode 100644
index 0000000..bbd4fce
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/GDInterfaceMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.GDInterfaceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.GDInterface">
+        <id column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="explanation" property="explanation"/>
+        <result column="num" property="num"/>
+        <result column="time" property="time"/>
+    </resultMap>
+    
+    
+    <select id="query" resultType="GDInterface">
+        select * from t_gdinterface where `name` like #{name} and explanation like #{explanation} and `time` = #{time} limit 0, 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
new file mode 100644
index 0000000..c672369
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IncomeMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.IncomeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Income">
+        <id column="id" property="id"/>
+        <result column="userType" property="userType"/>
+        <result column="objectId" property="objectId"/>
+        <result column="type" property="type"/>
+        <result column="incomeId" property="incomeId"/>
+        <result column="orderType" property="orderType"/>
+        <result column="money" property="money"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralGoodsMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralGoodsMapper.xml
new file mode 100644
index 0000000..be601d6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralGoodsMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.IntegralGoodsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.IntegralGoods">
+        <id column="id" property="id"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="name" property="name"/>
+        <result column="imgUrl" property="imgUrl"/>
+        <result column="integral" property="integral"/>
+        <result column="instructions" property="instructions"/>
+        <result column="state" property="state"/>
+        <result column="insertUserId" property="insertUserId"/>
+        <result column="insertUserRole" property="insertUserRole"/>
+    </resultMap>
+
+
+    <select id="queryGoods" resultType="map">
+        select
+        id as id,
+        `name` as `name`,
+        imgUrl as url,
+        integral as integral,
+        instructions as instructions
+        from t_integral_goods where state = 1 order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+    <select id="queryGoodsInfo" resultType="map">
+        select
+        id as id,
+        `name` as `name`,
+        imgUrl as url,
+        integral as integral,
+        instructions as instructions
+        from t_integral_goods where id = #{id}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralOrderMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralOrderMapper.xml
new file mode 100644
index 0000000..2dbcd1b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/IntegralOrderMapper.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.IntegralOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.IntegralOrder">
+        <id column="id" property="id"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="userId" property="userId"/>
+        <result column="goodsId" property="goodsId"/>
+        <result column="integral" property="integral"/>
+        <result column="num" property="num"/>
+        <result column="consigneeName" property="consigneeName"/>
+        <result column="consigneePhone" property="consigneePhone"/>
+        <result column="consigneeAddress" property="consigneeAddress"/>
+        <result column="remark" property="remark"/>
+        <result column="state" property="state"/>
+    </resultMap>
+
+
+    <select id="queryConvertHistory" resultType="map">
+        select
+        a.id as id,
+        b.`name` as `name`,
+        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i') as time,
+        CONCAT(a.integral * -1, '积分') as integral
+        from t_integral_order a
+        left join t_integral_goods b on (a.goodsId = b.id)
+        where a.state != 3 and a.userId = #{uid}
+        order by a.insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InvoiceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InvoiceMapper.xml
new file mode 100644
index 0000000..b56811d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InvoiceMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.InvoiceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Invoice">
+        <id column="id" property="id"/>
+        <result column="money" property="money"/>
+        <result column="orderNum" property="orderNum"/>
+        <result column="type" property="type"/>
+        <result column="name" property="name"/>
+        <result column="code" property="code"/>
+        <result column="content" property="content"/>
+        <result column="remark" property="remark"/>
+        <result column="address" property="address"/>
+        <result column="bank" property="bank"/>
+        <result column="email" property="email"/>
+        <result column="userId" property="userId"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+
+    <select id="queryMyInvoice" resultType="Invoice">
+        select
+        id as id,
+        insertTime as insertTime,
+        ('电子发票') as type,
+        ('出行服务') as content,
+        state as state,
+        money as money
+        from t_invoice where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml
new file mode 100644
index 0000000..94423d9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/LoginLogMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.LoginLogMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.LoginLog">
+		<id column="id" property="id" />
+		<result column="logname" property="logname" />
+		<result column="userid" property="userid" />
+		<result column="createtime" property="createtime" />
+		<result column="succeed" property="succeed" />
+		<result column="message" property="message" />
+		<result column="ip" property="ip" />
+	</resultMap>
+
+	<select id="getLoginLogs" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
+		select * from sys_login_log where 1 = 1
+		<if test="beginTime != null and beginTime !='' and endTime != null and endTime != ''">
+			and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
+		</if>
+		<if test="logName != null and logName !=''">
+			and logname like CONCAT('%',#{logName},'%')
+		</if>
+		<choose>
+			<when test="orderByField != null and orderByField !=''">
+				<choose>
+					<when test="isAsc == true">
+						order by ${orderByField} ASC
+					</when>
+					<otherwise>
+						order by ${orderByField} DESC
+					</otherwise>
+				</choose>
+			</when>
+			<otherwise>
+				order by createtime DESC
+			</otherwise>
+		</choose>
+	</select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml
new file mode 100644
index 0000000..849dc3f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/MenuMapper.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.MenuMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Menu">
+		<id column="id" property="id" />
+		<result column="code" property="code" />
+		<result column="pcode" property="pcode" />
+		<result column="pcodes" property="pcodes" />
+		<result column="name" property="name" />
+		<result column="icon" property="icon" />
+		<result column="url" property="url" />
+		<result column="num" property="num" />
+		<result column="levels" property="levels" />
+		<result column="ismenu" property="ismenu" />
+		<result column="tips" property="tips" />
+		<result column="status" property="status" />
+		<result column="isopen" property="isopen" />
+	</resultMap>
+
+    <sql id="Base_Column_List">
+        id, code, pcode, name, icon, url, num, levels,pcodes,
+        tips, status,isopen,ismenu
+    </sql>
+
+    <select id="selectMenus" resultType="map">
+        select
+        <include refid="Base_Column_List" />
+        from sys_menu
+        where status = 1
+        <if test="condition != null and condition != ''">
+            and (name like CONCAT('%',#{condition},'%') or code like CONCAT('%',#{condition},'%'))
+        </if>
+        <if test="level != null and level != ''">
+            and levels = #{level}
+        </if>
+    </select>
+
+    <select id="getMenuIdsByRoleId" resultType="long">
+        select menuid from
+        sys_relation where roleid = #{roleId}
+    </select>
+
+    <select id="menuTreeList" resultType="com.stylefeng.guns.core.node.ZTreeNode">
+        SELECT
+        m1.id AS id,
+        (
+        CASE
+        WHEN (m2.id = 0 OR m2.id IS NULL) THEN
+        0
+        ELSE
+        m2.id
+        END
+        ) AS pId,
+        m1. NAME
+        AS NAME,
+        (
+        CASE
+        WHEN (m2.id = 0 OR m2.id IS NULL) THEN
+        'true'
+        ELSE
+        'false'
+        END
+        ) as isOpen
+        FROM
+        sys_menu m1
+        LEFT join sys_menu m2 ON m1.pcode = m2. CODE
+        ORDER BY
+        m1.id ASC
+    </select>
+
+    <select id="menuTreeListByMenuIds" resultType="com.stylefeng.guns.core.node.ZTreeNode">
+        SELECT
+        m1.id AS id,
+        (
+        CASE
+        WHEN (m2.id = 0 OR m2.id IS NULL) THEN
+        0
+        ELSE
+        m2.id
+        END
+        ) AS pId,
+        m1. NAME AS NAME,
+        (
+        CASE
+        WHEN (m2.id = 0 OR m2.id IS
+        NULL) THEN
+        'true'
+        ELSE
+        'false'
+        END
+        ) as isOpen,
+        (
+        CASE
+        WHEN (m3.ID = 0 OR m3.ID
+        IS NULL) THEN
+        'false'
+        ELSE
+        'true'
+        END
+        ) "checked"
+        FROM
+        sys_menu m1
+        LEFT JOIN
+        sys_menu m2
+        ON m1.pcode = m2. CODE
+        left join (
+        SELECT
+        ID
+        FROM
+        sys_menu
+        WHERE
+        ID IN
+        <foreach collection="list" index="index" item="i" open="("
+                 separator="," close=")">
+            #{i}
+        </foreach>
+        ) m3 on m1.id = m3.id
+        ORDER BY
+        m1.id ASC
+    </select>
+
+    <delete id="deleteRelationByMenu">
+        delete from sys_relation where menuid = #{menuId}
+    </delete>
+
+    <select id="getResUrlsByRoleId" resultType="string">
+        select url from
+        sys_relation rel
+        inner join sys_menu m on rel.menuid = m.id
+        where rel.roleid = #{roleId}
+    </select>
+
+    <select id="getMenusByRoleIds" resultType="com.stylefeng.guns.core.node.MenuNode">
+        SELECT
+        m1.id AS id,
+        m1.icon AS icon,
+        (
+        CASE
+        WHEN (m2.id = 0 OR m2.id IS NULL) THEN
+        0
+        ELSE
+        m2.id
+        END
+        ) AS parentId,
+        m1.NAME as name,
+        m1.url as url,
+        m1.levels as levels,
+        m1.ismenu as ismenu,
+        m1.num as num
+        FROM
+        sys_menu m1
+        LEFT join sys_menu m2 ON m1.pcode = m2. CODE
+        INNER JOIN (
+        SELECT
+        ID
+        FROM
+        sys_menu
+        WHERE
+        ID IN (
+        SELECT
+        menuid
+        FROM
+        sys_relation rela
+        WHERE
+        rela.roleid IN
+        <foreach collection="list" index="index" item="i" open="(" separator="," close=")">
+            #{i}
+        </foreach>
+        )
+        ) m3 ON m1.id = m3.id
+        where m1.ismenu = 1
+        order by levels,num asc
+    </select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml
new file mode 100644
index 0000000..6d4ba33
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/NoticeMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.NoticeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Notice">
+        <id column="id" property="id"/>
+        <result column="title" property="title"/>
+        <result column="type" property="type"/>
+        <result column="content" property="content"/>
+        <result column="createtime" property="createtime"/>
+        <result column="creater" property="creater"/>
+    </resultMap>
+
+    <select id="list" resultType="map">
+        select * from sys_notice
+        <if test="condition != null and condition != ''">
+            where title like CONCAT('%',#{condition},'%') or content like CONCAT('%',#{condition},'%')
+        </if>
+        order by createtime DESC
+    </select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OfflineTravelPaymentMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OfflineTravelPaymentMapper.xml
new file mode 100644
index 0000000..ea5904d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OfflineTravelPaymentMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OfflineTravelPaymentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OfflineTravelPayment">
+        <id column="id" property="id"/>
+        <result column="orderId" property="orderId"/>
+        <result column="payType" property="payType"/>
+        <result column="payMoney" property="payMoney"/>
+        <result column="payTime" property="payTime"/>
+        <result column="driverId" property="driverId"/>
+        <result column="status" property="status"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityBusinessMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityBusinessMapper.xml
new file mode 100644
index 0000000..f1938ef
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityBusinessMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OpenCityBusinessMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OpenCityBusiness">
+        <id column="id" property="id"/>
+        <result column="openCityId" property="openCityId"/>
+        <result column="businessType" property="businessType"/>
+        <result column="sort" property="sort"/>
+
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+
+    <select id="queryBusiness" resultType="OpenCityBusiness">
+        select
+        a.id as id,
+        a.openCityId as openCityId,
+        a.businessType as businessType,
+        a.sort as sort,
+        a.flag as flag,
+        a.insertTime as insertTime,
+        a.insertUser as insertUser,
+        a.updateTime as updateTime,
+        a.updateUser as updateUser
+        from t_open_city_business a
+        left join t_open_city b on (a.openCityId = b.id)
+        where a.flag != 3 and b.flag != 3
+        <if test="null != district">
+            and b.provinceName = #{district}
+        </if>
+        <if test="null != city">
+            and b.cityName = #{city}
+        </if>
+        <if test="null != province">
+            and b.areaName = #{province}
+        </if>
+        order by a.sort
+    </select>
+
+
+    <select id="queryBusinessById" resultType="OpenCityBusiness">
+        select
+        id as id,
+        openCityId as openCityId,
+        businessType as businessType,
+        sort as sort,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_open_city_business
+        where flag != 3 and openCityId = #{id} order by sort
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityMapper.xml
new file mode 100644
index 0000000..9c6a66e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OpenCityMapper.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OpenCityMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OpenCity">
+        <id column="id" property="id"/>
+        <result column="code" property="code"/>
+        <result column="lon" property="lon"/>
+        <result column="lat" property="lat"/>
+        <result column="isQualifications" property="isQualifications"/>
+        <result column="areaName" property="areaName"/>
+        <result column="cityName" property="cityName"/>
+        <result column="provinceName" property="provinceName"/>
+
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+
+    <select id="queryOpenCity" resultType="OpenCity">
+        select
+        id as id,
+        code as code,
+        lon as lon,
+        lat as lat,
+        isQualifications as isQualifications,
+        areaName as areaName,
+        cityName as cityName,
+        provinceName as provinceName,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_open_city where flag = 1
+    </select>
+
+
+    <select id="queryByCode" resultType="OpenCity">
+        select
+        id as id,
+        code as code,
+        lon as lon,
+        lat as lat,
+        isQualifications as isQualifications,
+        areaName as areaName,
+        cityName as cityName,
+        provinceName as provinceName,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_open_city where flag = 1 and code = #{code}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml
new file mode 100644
index 0000000..1d0d711
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OperationLogMapper.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OperationLogMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OperationLog">
+		<id column="id" property="id" />
+		<result column="logtype" property="logtype" />
+		<result column="logname" property="logname" />
+		<result column="userid" property="userid" />
+		<result column="classname" property="classname" />
+		<result column="method" property="method" />
+		<result column="createtime" property="createtime" />
+		<result column="succeed" property="succeed" />
+		<result column="message" property="message" />
+	</resultMap>
+
+	<select id="getOperationLogs" resultType="map">
+		select * from sys_operation_log where 1 = 1
+		<if test="beginTime != null and beginTime !='' and endTime != null and endTime != ''">
+			and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
+		</if>
+		<if test="logName != null and logName !=''">
+			and logname like CONCAT('%',#{logName},'%')
+		</if>
+		<if test="logType != null and logType !=''">
+			and logtype like CONCAT('%',#{logType},'%')
+		</if>
+		<choose>
+			<when test="orderByField != null and orderByField !=''">
+				<choose>
+					<when test="isAsc == true">
+						order by ${orderByField} ASC
+					</when>
+					<otherwise>
+						order by ${orderByField} DESC
+					</otherwise>
+				</choose>
+			</when>
+			<otherwise>
+				order by createtime DESC
+			</otherwise>
+		</choose>
+	</select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderCancelMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderCancelMapper.xml
new file mode 100644
index 0000000..27646c8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderCancelMapper.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OrderCancelMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderCancel">
+        <id column="id" property="id"/>
+        <result column="orderId" property="orderId"/>
+        <result column="orderType" property="orderType"/>
+        <result column="reason" property="reason"/>
+        <result column="remark" property="remark"/>
+        <result column="payType" property="payType"/>
+        <result column="money" property="money"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="userType" property="userType"/>
+        <result column="userId" property="userId"/>
+    </resultMap>
+
+
+    <select id="query" resultType="OrderCancel">
+        select
+        id as id,
+        orderId as orderId,
+        orderType as orderType,
+        reason as reason,
+        remark as remark,
+        payType as payType,
+        money as money,
+        state as state,
+        insertTime as insertTime,
+        userType as userType,
+        userId as userId
+        from t_order_cancel where 1 = 1
+        <if test="null != orderId">
+            and orderId = #{orderId}
+        </if>
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != money">
+            and money = #{money}
+        </if>
+        <if test="null != payType">
+            and payType = #{payType}
+        </if>
+        <if test="null != state">
+            and state = #{state}
+        </if>
+        order by insertTime desc limit 0,1
+    </select>
+
+
+    <select id="queryCancel" resultType="map">
+        select
+        (money * -1) as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        CONCAT(if(orderType = 1, '专车', if(orderType = 2, '出租车', if(orderType = 3, '跨城', if(orderType = 4, '同城小件物流', if(orderType = 5, '跨城小件物流', '包车'))))), '订单取消') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_cancel where state = 2 and userType = 1 and money is not null and userId = #{uid}
+        <choose>
+            <when test="1 == isPay">
+                and money is null
+            </when>
+            <otherwise>
+                and money is not null
+            </otherwise>
+        </choose>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderEvaluateMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderEvaluateMapper.xml
new file mode 100644
index 0000000..65ab64e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderEvaluateMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OrderEvaluateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderEvaluate">
+        <id column="id" property="id"/>
+        <result column="orderId" property="orderId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="orderType" property="orderType"/>
+        <result column="fraction" property="fraction"/>
+        <result column="content" property="content"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="userId" property="userId"/>
+    </resultMap>
+
+
+
+    <select id="queryOrderEvaluate" resultType="map">
+        select
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        content as content,
+        fraction as fraction
+        from t_order_evaluate where driverId = #{driverId} and unix_timestamp(insertTime) &lt; unix_timestamp(now()) - 86400 order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderPositionMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderPositionMapper.xml
new file mode 100644
index 0000000..923d815
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/OrderPositionMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.OrderPositionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.OrderPosition">
+        <id column="id" property="id"/>
+        <result column="orderType" property="orderType"/>
+        <result column="orderId" property="orderId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="lon" property="lon"/>
+        <result column="lat" property="lat"/>
+        <result column="directionAngle" property="directionAngle"/>
+        <result column="altitude" property="altitude"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+
+
+    <select id="queryTrack" resultType="map">
+        select
+        lon as lon,
+        lat as lat
+        from t_order_position where orderId = #{orderId} and orderType = #{orderType} order by insertTime
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml
new file mode 100644
index 0000000..213317e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PhoneMapper.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.PhoneMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Phone">
+        <id column="id" property="id" />
+        <result column="type" property="type" />
+        <result column="platform" property="platform"/>
+        <result column="phone" property="phone" />
+        <result column="companyId" property="companyId"/>
+    </resultMap>
+
+
+
+    <select id="queryPhones" resultType="Phone">
+        select
+        id as id,
+        type as type,
+        platform as platform,
+        phone as phone,
+        companyId as companyId
+        from t_phone where companyId in (
+        select companyId from t_company_city where state = 1
+        <if test="null != province">
+            and provinceCode = #{province}
+        </if>
+        <if test="null != city">
+            and cityCode = #{city}
+        </if>
+        <if test="null != code">
+            and areaCode = #{code}
+        </if>
+        )
+    </select>
+
+
+    <select id="query" resultType="Phone">
+        select
+        id as id,
+        type as type,
+        platform as platform,
+        phone as phone,
+        companyId as companyId
+        from t_phone where 1 = 1
+        <if test="null != type">
+            and type = #{type}
+        </if>
+        <if test="null != platform">
+            and platform = #{platform}
+        </if>
+        <if test="platform != 1">
+            and companyId in (
+            select companyId from t_company_city where state = 1
+            <if test="null != province">
+                and provinceCode = #{province}
+            </if>
+            <if test="null != city">
+                and cityCode = #{city}
+            </if>
+            <if test="null != code">
+                and areaCode = #{code}
+            </if>
+            )
+        </if>
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ProblemMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ProblemMapper.xml
new file mode 100644
index 0000000..56a4987
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ProblemMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.ProblemMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Problem">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="content" property="content"/>
+        <result column="answer" property="answer"/>
+        <result column="handleUserId" property="handleUserId"/>
+        <result column="handleTime" property="handleTime"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="state" property="state"/>
+    </resultMap>
+
+
+    <select id="queryProblems" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(insertTime, '%Y.%m.%d %H:%i') as insertTime,
+        content as content,
+        answer as answer
+        from t_problem where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushOrderMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushOrderMapper.xml
new file mode 100644
index 0000000..04d7e4c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/PushOrderMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.PushOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.PushOrder">
+        <id column="id" property="id"/>
+        <result column="companyId" property="companyId"/>
+        <result column="pushDistance" property="pushDistance"/>
+        <result column="pushTime" property="pushTime"/>
+        <result column="driverProportion" property="driverProportion"/>
+        <result column="type" property="type"/>
+        <result column="pushType" property="pushType"/>
+    </resultMap>
+
+
+    <select id="querys" resultType="PushOrder">
+        select
+        id as id,
+        companyId as companyId,
+        pushDistance as pushDistance,
+        pushTime as pushTime,
+        driverProportion as driverProportion,
+        `type` as `type`,
+        pushType as pushType
+        from t_sys_push_order where companyId = #{companyId}
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+        <if test="null != pushType">
+            and pushType = #{pushType}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RedPacketRecordMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RedPacketRecordMapper.xml
new file mode 100644
index 0000000..3c46afe
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RedPacketRecordMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.RedPacketRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.RedPacketRecord">
+        <id column="id" property="id"/>
+        <result column="money" property="money"/>
+        <result column="insert_time" property="insertTime"/>
+        <result column="companyId" property="companyId"/>
+        <result column="name" property="name"/>
+        <result column="type" property="type"/>
+        <result column="totalMoney" property="totalMoney"/>
+        <result column="laveMoney" property="laveMoney"/>
+        <result column="startMoney" property="startMoney"/>
+        <result column="endMoney" property="endMoney"/>
+    </resultMap>
+
+
+
+    <select id="queryDate" resultType="RedPacketRecord">
+        select
+        id as id,
+        money as money,
+        insert_time as insertTime,
+        companyId as companyId,
+        name as name,
+        type as type,
+        totalMoney as totalMoney,
+        laveMoney as laveMoney,
+        startMoney as startMoney,
+        endMoney as endMoney
+        from t_sys_red_packet_record a where laveMoney != 0 and companyId = #{companyId} limit 0,1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml
new file mode 100644
index 0000000..bfcd926
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RegionMapper.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.RegionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Region">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="code" property="code" />
+        <result column="citycode" property="citycode" />
+        <result column="parent_id" property="parentId" />
+        <result column="english" property="english" />
+    </resultMap>
+
+
+    <select id="query" resultType="Region">
+        select
+        id as id,
+        name as name,
+        code as code,
+        citycode as citycode,
+        parent_id as parentId,
+        english as english
+        from t_region where code = #{code}
+    </select>
+
+
+    <select id="querys" resultType="Region">
+        select
+        id as id,
+        name as name,
+        code as code,
+        citycode as citycode,
+        parent_id as parentId,
+        english as english
+        from t_region where parent_id = #{parentId} order by code
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml
new file mode 100644
index 0000000..2f4be0a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RelationMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.RelationMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Relation">
+		<id column="id" property="id" />
+		<result column="menuid" property="menuid" />
+		<result column="roleid" property="roleid" />
+	</resultMap>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml
new file mode 100644
index 0000000..ff4878c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/RoleMapper.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.RoleMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Role">
+		<id column="id" property="id" />
+		<result column="num" property="num" />
+		<result column="pid" property="pid" />
+		<result column="name" property="name" />
+		<result column="deptid" property="deptid" />
+		<result column="tips" property="tips" />
+		<result column="version" property="version" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		id, num, pid, name, deptid, tips, version
+	</sql>
+
+	<select id="selectRoles" resultType="map">
+		select
+		<include refid="Base_Column_List" />
+		from sys_role
+		<if test="condition != null">
+			where name like CONCAT('%',#{condition},'%')
+		</if>
+	</select>
+
+	<delete id="deleteRolesById">
+		delete from sys_relation where roleid = #{roleId}
+	</delete>
+
+	<select id="roleTreeList" resultType="com.stylefeng.guns.core.node.ZTreeNode">
+		select id "id",pId
+		"pId",name as "name",(case when (pId=0 or pId is null) then 'true'
+		else 'false' end) "open" from sys_role
+	</select>
+
+	<select id="roleTreeListByRoleId" resultType="com.stylefeng.guns.core.node.ZTreeNode">
+		SELECT
+		r.id "id",
+		pId "pId",
+		NAME AS "name",
+		(
+		CASE
+		WHEN (pId = 0 OR pId IS NULL) THEN
+		'true'
+		ELSE
+		'false'
+		END
+		) "open",
+		(
+		CASE
+		WHEN (r1.ID = 0 OR r1.ID IS NULL) THEN
+		'false'
+		ELSE
+		'true'
+		END
+		) "checked"
+		FROM
+		sys_role r
+		LEFT JOIN (
+		SELECT
+		ID
+		FROM
+		sys_role
+		WHERE
+		ID IN
+
+		<foreach collection="array" index="index" item="i" open="(" separator="," close=")">
+			#{i}
+		</foreach>
+
+		) r1 ON r.ID = r1.ID
+		ORDER BY
+		pId,
+		num ASC
+	</select>
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SensitiveWordsMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SensitiveWordsMapper.xml
new file mode 100644
index 0000000..3a5eadd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SensitiveWordsMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.SensitiveWords">
+        <id column="id" property="id" />
+        <result column="createTime" property="createTime" />
+        <result column="content" property="content" />
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml
new file mode 100644
index 0000000..95202f6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/ServerCarModelMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.ServerCarModelMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.ServerCarModel">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="name" property="name"/>
+        <result column="img" property="img"/>
+        <result column="price" property="price"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+
+    <select id="queryServerCarModel" resultType="map">
+        select
+        id as id,
+        `name` as `name`,
+        img as img,
+        price as price
+        from t_server_carmodel where state = 1 and `type` = #{type}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SmsrecordMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SmsrecordMapper.xml
new file mode 100644
index 0000000..eff60ea
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SmsrecordMapper.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.SmsrecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Smsrecord">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="phone" property="phone"/>
+        <result column="code" property="code"/>
+        <result column="content" property="content"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SysIntegralMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SysIntegralMapper.xml
new file mode 100644
index 0000000..0311370
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SysIntegralMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.SysIntegralMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.SysIntegral">
+        <id column="id" property="id" />
+        <result column="companyId" property="companyId" />
+        <result column="integral" property="integral" />
+    </resultMap>
+
+
+
+    <select id="query" resultType="SysIntegral">
+        select * from t_sys_integral where companyId = #{companyId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemNoticeMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemNoticeMapper.xml
new file mode 100644
index 0000000..b68c6fc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemNoticeMapper.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.SystemNoticeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.SystemNotice">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="noticeType" property="noticeType"/>
+        <result column="userType" property="userType"/>
+        <result column="noticesId" property="noticesId"/>
+        <result column="content" property="content"/>
+        <result column="userId" property="userId"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="read" property="read"/>
+    </resultMap>
+
+
+    <select id="queryNoReadNoticeNum" resultType="int">
+        select count(id) from t_system_notice where userType = 1 and userId = #{uid} and `read` = 1
+    </select>
+
+
+    <select id="queryList" resultType="map">
+        select
+        id as id,
+        noticeType as noticeType,
+        `type` as `type`,
+        content as content,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as `time`,
+        `read` as `read`
+        from t_system_notice where `type` = 2 and userType = 1 and userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+
+    <update id="readSystemNotice">
+        update t_system_notice set `read` = 2 where id = #{id} and userId = #{uid} and userType = 1
+    </update>
+
+
+    <delete id="delSystemNotice">
+        delete from t_system_notice where userType = 1
+        <if test="null != uid">
+            and userId = #{uid}
+        </if>
+        <if test="null != id">
+            and id = #{id}
+        </if>
+    </delete>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
new file mode 100644
index 0000000..5aec125
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/SystemPriceMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.SystemPriceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.SystemPrice">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="companyId" property="companyId"/>
+        <result column="serverCarModelId" property="serverCarModelId"/>
+        <result column="content" property="content"/>
+    </resultMap>
+
+    <select id="query" resultType="map">
+        select
+        id as id,
+        content as content
+        from t_system_price where companyId = #{companyId}
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+        <if test="null != serverCarModelId">
+            and serverCarModelId = #{serverCarModelId}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TNoticesMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TNoticesMapper.xml
new file mode 100644
index 0000000..dec5956
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TNoticesMapper.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.TNoticesMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TNotices">
+        <id column="id" property="id"/>
+        <result column="title" property="title"/>
+        <result column="content" property="content"/>
+        <result column="sort" property="sort"/>
+        <result column="isShow" property="isShow"/>
+        <result column="isBroadcast" property="isBroadcast"/>
+        <result column="type" property="type"/>
+        <result column="imgUrl" property="imgUrl"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="isUser" property="isUser"/>
+        <result column="isDriver" property="isDriver"/>
+
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+    <select id="queryNotices" resultType="com.stylefeng.guns.modular.system.model.TNotices">
+        select
+        id as id,
+        title as title,
+        content as content,
+        sort as sort,
+        isShow as isShow,
+        isBroadcast as isBroadcast,
+        `type` as `type`,
+        imgUrl as imgUrl,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_notices where flag != 3 and isDelete = 1 and `type` = #{type}
+        <if test="type == 2">
+            and isBroadcast = 1
+        </if>
+        <if test="type == 1">
+            and isShow = 1
+        </if>
+    </select>
+
+
+    <select id="queryList" resultType="map">
+        select
+        b.id as id,
+        a.title as title,
+        a.content as content,
+        (1) as `type`,
+        a.imgUrl as img,
+        DATE_FORMAT(b.insertTime, '%Y-%m-%d %H:%i') as `time`,
+        b.`read` as `read`
+        from t_notices a
+        left join t_system_notice b on (a.id = b.noticesId)
+        where a.`type` = 2 and a.flag != 3 and a.isShow = 1 and b.type = 1 and b.userType = 1
+        and b.userId = #{uid} order by b.insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
new file mode 100644
index 0000000..0d16040
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityBalanceMapper.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserActivityBalanceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserActivityBalance">
+        <id column="id" property="id"/>
+        <result column="enable" property="enable"/>
+        <result column="userActivityId" property="userActivityId"/>
+        <result column="money" property="money"/>
+        <result column="generalNum" property="generalNum"/>
+        <result column="generalCouponId" property="generalCouponId"/>
+        <result column="specialNum" property="specialNum"/>
+        <result column="specialCouponId" property="specialCouponId"/>
+        <result column="taxiNum" property="taxiNum"/>
+        <result column="taxiCouponId" property="taxiCouponId"/>
+        <result column="intercityNum" property="intercityNum"/>
+        <result column="intercityCouponId" property="intercityCouponId"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="totalPrice" property="totalPrice"/>
+        <result column="lavePrice" property="lavePrice"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="map">
+        select
+        a.id as id,
+        a.generalNum as generalNum,
+        a.specialNum as specialNum,
+        a.taxiNum as taxiNum,
+        a.intercityNum as intercityNum,
+        b.id as bId,
+        c.id as cId,
+        d.id as dId,
+        e.id as eId,
+        b.companyId as bcompanyId,
+        c.companyId as ccompanyId,
+        d.companyId as dcompanyId,
+        e.companyId as ecompanyId,
+        b.money as bmoney,
+        c.money as cmoney,
+        d.money as dmoney,
+        e.money as emoney,
+        b.fullMoney as bfullMoney,
+        c.fullMoney as cfullMoney,
+        d.fullMoney as dfullMoney,
+        e.fullMoney as efullMoney,
+        b.couponUseType as bcouponUseType,
+        c.couponUseType as ccouponUseType,
+        d.couponUseType as dcouponUseType,
+        e.couponUseType as ecouponUseType,
+        b.couponType as bcouponType,
+        c.couponType as ccouponType,
+        d.couponType as dcouponType,
+        e.couponType as ecouponType,
+        a.effective as beffective,
+        a.effective as ceffective,
+        a.effective as deffective,
+        a.effective as eeffective,
+        a.totalPrice as totalPrice,
+        a.lavePrice as lavePrice
+        from t_user_activity_balance a
+        left join t_sys_coupon_record b on (a.generalCouponId = b.id)
+        left join t_sys_coupon_record c on (a.specialCouponId = c.id)
+        left join t_sys_coupon_record d on (a.taxiCouponId = d.id)
+        left join t_sys_coupon_record e on (a.intercityCouponId = e.id)
+		left join t_user_activity f on (a.userActivityId = f.id)
+        where a.`enable` = 2 and f.status = 3 and now() between a.startTime and a.endTime and a.money &lt;= #{money}
+        and b.companyId = #{companyId} and c.companyId = #{companyId} and d.companyId = #{companyId} and e.companyId = #{companyId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityDiscount1Mapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityDiscount1Mapper.xml
new file mode 100644
index 0000000..4c9e5e3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityDiscount1Mapper.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserActivityDiscount1Mapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserActivityDiscount1">
+        <id column="id" property="id"/>
+        <result column="userActivityId" property="userActivityId"/>
+        <result column="special" property="special"/>
+        <result column="taxi" property="taxi"/>
+        <result column="logistics" property="logistics"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="enable" property="enable"/>
+    </resultMap>
+
+
+    <select id="query" resultType="UserActivityDiscount1">
+        select
+        a.id as id,
+        a.userActivityId as userActivityId,
+        a.special as special,
+        a.taxi as taxi,
+        a.logistics as logistics,
+        a.startTime as startTime,
+        a.endTime as endTime,
+        a.`enable` as `enable`
+        from t_user_activity_discount1 a
+        left join t_user_activity b on (a.userActivityId = b.id)
+        where now() between a.startTime and a.endTime and b.`status` = 3 and b.companyId = #{companyId} order by b.insertTime desc limit 0,1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml
new file mode 100644
index 0000000..b5ebff3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityInviteMapper.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserActivityInviteMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserActivityInvite">
+        <id column="id" property="id"/>
+        <result column="userActivityId" property="userActivityId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="totalNum" property="totalNum"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="enable" property="enable"/>
+        <result column="effective" property="effective"/>
+        <result column="totalPrice" property="totalPrice"/>
+        <result column="lavePrice" property="lavePrice"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="map">
+        select
+        a.id as id,
+        a.userActivityId as userActivityId,
+        a.couponId as couponId,
+        a.totalNum as totalNum,
+        a.startTime as startTime,
+        a.endTime as endTime,
+        a.enable as enable,
+        a.effective as effective,
+        c.money as money,
+        c.fullMoney as fullMoney,
+        c.couponUseType as couponUseType,
+        c.couponType as couponType,
+        a.totalPrice as totalPrice,
+        a.lavePrice as lavePrice
+        from t_user_activity_invite a
+        left join t_user_activity b on (a.userActivityId = b.id)
+        left join t_sys_coupon_record c on (a.couponId = c.id)
+        where now() between a.startTime and a.endTime and a.enable = 2 and b.status = 3 and b.companyId = #{companyId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRedenvelopeMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRedenvelopeMapper.xml
new file mode 100644
index 0000000..7789d90
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRedenvelopeMapper.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserActivityRedenvelopeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserActivityRedenvelope">
+        <id column="id" property="id"/>
+        <result column="userActivityId" property="userActivityId"/>
+        <result column="redEnvelopeId" property="redEnvelopeId"/>
+        <result column="totalMoney" property="totalMoney"/>
+        <result column="laveMoney" property="laveMoney"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="enable" property="enable"/>
+        <result column="totalPrice" property="totalPrice"/>
+        <result column="lavePrice" property="lavePrice"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="map">
+        select
+        a.id as id,
+        a.laveMoney as laveMoney,
+        a.userActivityId as userActivityId,
+        b.money as money,
+        b.`type` as `type`,
+        b.startMoney as startMoney,
+        b.endMoney as endMoney,
+        b.companyId as companyId,
+        b.effective as effective,
+        a.totalPrice as totalPrice,
+        a.lavePrice as lavePrice
+        from t_user_activity_redenvelope a
+        left join t_sys_red_packet_record b on (a.redEnvelopeId = b.id)
+        left join t_user_activity c on (a.userActivityId = c.id)
+        where a.`enable` = 2 and c.status = 3 and #{travelTime} between a.startTime and a.endTime and a.laveMoney > 0 and b.companyId = #{companyId} limit 0,1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml
new file mode 100644
index 0000000..8d9c7a8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserActivityRegisteredMapper.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserActivityRegisteredMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserActivityRegistered">
+        <id column="id" property="id"/>
+        <result column="userActivityId" property="userActivityId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="totalNum" property="totalNum"/>
+        <result column="laveNum" property="laveNum"/>
+        <result column="startTime" property="startTime"/>
+        <result column="endTime" property="endTime"/>
+        <result column="enable" property="enable"/>
+        <result column="totalPrice" property="totalPrice"/>
+        <result column="lavePrice" property="lavePrice"/>
+    </resultMap>
+
+
+
+
+    <select id="query" resultType="map">
+        select
+        a.id as id,
+        a.userActivityId as userActivityId,
+        a.couponId as couponId,
+        a.totalNum as totalNum,
+        a.laveNum as laveNum,
+        a.startTime as startTime,
+        a.endTime as endTime,
+        a.`enable` as `enable`,
+        b.money as money,
+        b.fullMoney as fullMoney,
+        b.companyId as companyId,
+        b.couponUseType as couponUseType,
+        b.couponType as couponType,
+        a.effective as effective,
+        a.totalPrice as totalPrice,
+        a.lavePrice as lavePrice
+        from t_user_activity_registered a
+        left join t_sys_coupon_record b on (a.couponId = b.id)
+		left join t_user_activity c on (a.userActivityId = c.id)
+        where now() between a.startTime and a.endTime and a.laveNum > 0 and a.`enable` = 2 and  b.companyId = #{companyId} and c.`status` = 3
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserCouponRecordMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserCouponRecordMapper.xml
new file mode 100644
index 0000000..b253b6d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserCouponRecordMapper.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserCouponRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserCouponRecord">
+        <id column="id" property="id"/>
+        <result column="money" property="money"/>
+        <result column="fullMoney" property="fullMoney"/>
+        <result column="expirationTime" property="expirationTime"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="companyId" property="companyId"/>
+        <result column="state" property="state"/>
+        <result column="endTime" property="endTime"/>
+        <result column="couponUseType" property="couponUseType"/>
+        <result column="couponType" property="couponType"/>
+        <result column="userId" property="userId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="couponActivityId" property="couponActivityId"/>
+        <result column="activityType" property="activityType"/>
+        <result column="paymentRecordId" property="paymentRecordId"/>
+    </resultMap>
+
+
+
+    <select id="queryAvailable" resultType="int">
+        select
+        count(a.id)
+        from t_user_coupon_record a
+        left join t_company b on (a.companyId = b.id)
+        where a.expirationTime >= now()
+        <if test="null != uid">
+            and a.userId = #{uid}
+        </if>
+        <if test="null != companyId">
+            and a.companyId = #{companyId}
+        </if>
+        <if test="null != state">
+            and a.state = #{state}
+        </if>
+        <if test="null != couponUseType">
+            and a.couponUseType = #{couponUseType}
+        </if>
+        <if test="null != money">
+            and if(a.couponType = 1, a.money &lt;= #{money}, a.fullMoney &lt;= #{money})
+        </if>
+    </select>
+
+    <select id="queryCoupon" resultType="map">
+        select
+        a.id as id,
+        a.money as money,
+        a.couponUseType as userType,
+        DATE_FORMAT(a.expirationTime, '%Y-%m-%d') as time,
+        a.couponType as `type`,
+        a.fullMoney as fullMoney,
+        a.state as state,
+        b.`name` as `name`
+        from t_user_coupon_record a
+        left join t_company b on (a.companyId = b.id)
+        where a.expirationTime >= now()
+        <if test="null != uid">
+            and a.userId = #{uid}
+        </if>
+        <if test="null != companyId">
+            and a.companyId = #{companyId}
+        </if>
+        <if test="null != state">
+            and a.state = #{state}
+        </if>
+        <if test="null != couponUseType">
+            and a.couponUseType = #{couponUseType}
+        </if>
+        <if test="null != money">
+            and if(a.couponType = 1, a.money &lt;= #{money}, a.fullMoney &lt;= #{money})
+        </if>
+        order by a.insertTime desc
+        <if test="null != pageNum and null != size">
+            limit #{pageNum}, #{size}
+        </if>
+    </select>
+
+
+
+
+
+
+    <select id="queryMyCoupons" resultType="map">
+        select
+        a.id as id,
+        a.money as money,
+        a.couponUseType as userType,
+        DATE_FORMAT(a.expirationTime, '%Y-%m-%d') as time,
+        a.couponType as `type`,
+        a.fullMoney as fullMoney,
+        a.state as state,
+        b.`name` as `name`
+        from t_user_coupon_record a
+        left join t_company b on (a.companyId = b.id)
+        where 1 = 1
+        <if test="null != uid">
+            and a.userId = #{uid}
+        </if>
+        <if test="null != state">
+            <if test="state == 1">
+                and a.state = 1
+            </if>
+            <if test="state == 2">
+                and a.state in (2,3)
+            </if>
+        </if>
+        order by a.insertTime desc
+        <if test="null != pageNum and null != size">
+            limit #{pageNum}, #{size}
+        </if>
+    </select>
+
+
+
+    <update id="updateTimeOut">
+        update t_user_coupon_record set state = 3,endTime = now() where now() > expirationTime and state = 1
+    </update>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
new file mode 100644
index 0000000..13f5179
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserInfoMapper.xml
@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserInfo">
+        <id column="id" property="id"/>
+        <result column="companyId" property="companyId"/>
+        <result column="registIp" property="registIp"/>
+        <result column="registAreaCode" property="registAreaCode"/>
+        <result column="phone" property="phone"/>
+        <result column="nickName" property="nickName"/>
+        <result column="avatar" property="avatar"/>
+        <result column="birthday" property="birthday"/>
+        <result column="sex" property="sex"/>
+        <result column="emergencyContact" property="emergencyContact"/>
+        <result column="emergencyContactNumber" property="emergencyContactNumber"/>
+        <result column="isAuth" property="isAuth"/>
+        <result column="name" property="name"/>
+        <result column="idCard" property="idCard"/>
+        <result column="idCardFront" property="idCardFront"/>
+        <result column="idCardReverse" property="idCardReverse"/>
+        <result column="consumption" property="consumption"/>
+        <result column="balance" property="balance"/>
+        <result column="integral" property="integral"/>
+        <result column="passWord" property="passWord"/>
+        <result column="openId" property="openId"/>
+        <result column="appletsOpenId" property="appletsOpenId"/>
+        <result column="unionid" property="unionid"/>
+        <result column="remark" property="remark"/>
+        <result column="state" property="state"/>
+        <result column="flag" property="flag"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="insertUser" property="insertUser"/>
+        <result column="updateTime" property="updateTime"/>
+        <result column="updateUser" property="updateUser"/>
+    </resultMap>
+
+
+    <select id="queryByPhone" resultType="UserInfo">
+        select
+        id as id,
+        registIp as registIp,
+        registAreaCode as registAreaCode,
+        phone as phone,
+        nickName as nickName,
+        avatar as avatar,
+        birthday as birthday,
+        sex as sex,
+        emergencyContact as emergencyContact,
+        emergencyContactNumber as emergencyContactNumber,
+        isAuth as isAuth,
+        name as name,
+        idCard as idCard,
+        idCardFront as idCardFront,
+        idCardReverse as idCardReverse,
+        consumption as consumption,
+        balance as balance,
+        integral as integral,
+        passWord as passWord,
+        openId as openId,
+        appletsOpenId as appletsOpenId,
+        unionid as unionid,
+        state as state,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_user where flag != 3 and phone = #{phone}
+    </select>
+
+
+
+    <select id="queryByOpenid" resultType="UserInfo">
+        select
+        id as id,
+        registIp as registIp,
+        registAreaCode as registAreaCode,
+        phone as phone,
+        nickName as nickName,
+        avatar as avatar,
+        birthday as birthday,
+        sex as sex,
+        emergencyContact as emergencyContact,
+        emergencyContactNumber as emergencyContactNumber,
+        isAuth as isAuth,
+        name as name,
+        idCard as idCard,
+        idCardFront as idCardFront,
+        idCardReverse as idCardReverse,
+        consumption as consumption,
+        balance as balance,
+        integral as integral,
+        passWord as passWord,
+        openId as openId,
+        appletsOpenId as appletsOpenId,
+        unionid as unionid,
+        state as state,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_user where flag != 3
+        <if test="null != openid">
+            and openId = #{openid}
+        </if>
+    </select>
+
+
+    <select id="queryByOpenid2" resultType="UserInfo">
+        select
+        id as id,
+        registIp as registIp,
+        registAreaCode as registAreaCode,
+        phone as phone,
+        nickName as nickName,
+        avatar as avatar,
+        birthday as birthday,
+        sex as sex,
+        emergencyContact as emergencyContact,
+        emergencyContactNumber as emergencyContactNumber,
+        isAuth as isAuth,
+        name as name,
+        idCard as idCard,
+        idCardFront as idCardFront,
+        idCardReverse as idCardReverse,
+        consumption as consumption,
+        balance as balance,
+        integral as integral,
+        passWord as passWord,
+        openId as openId,
+        appletsOpenId as appletsOpenId,
+        unionid as unionid,
+        state as state,
+        flag as flag,
+        insertTime as insertTime,
+        insertUser as insertUser,
+        updateTime as updateTime,
+        updateUser as updateUser
+        from t_user where flag != 3
+        <if test="null != openid">
+            and appletsOpenId = #{openid}
+        </if>
+    </select>
+
+
+    <select id="queryUserInfo" resultType="map">
+        select
+        a.id as id,
+        a.phone as phone,
+        a.nickName as nickName,
+        a.avatar as avatar,
+        DATE_FORMAT(a.birthday, '%Y-%m-%d') as birthday,
+        ifnull(a.sex, 1) as sex,
+        ifnull(a.isAuth, 1) as isAuth,
+        (select state from t_verified where userId = a.id order by insertTime desc limit 0,1) as verified,
+        a.name as name,
+        a.integral as integral,
+        a.emergencyContact as emergencyContact,
+        a.emergencyContactNumber as emergencyContactNumber,
+        a.balance as balance
+        from t_user a where 1 = 1
+        <if test="null != uid">
+            and a.id = #{uid}
+        </if>
+        <if test="null != phone">
+            and a.phone = #{phone}
+        </if>
+    </select>
+
+
+    <update id="setUrgentUser">
+        update t_user set emergencyContact = #{name}, emergencyContactNumber = #{phone} where id = #{uid}
+    </update>
+
+
+    <select id="queryRealName" resultType="map">
+        select
+        id as id,
+        userId as userId,
+        name as name,
+        idcode as idcode,
+        img1 as img1,
+        img2 as img2,
+        state as state
+        from t_verified where userId = #{uid} order by insertTime desc limit 0,1
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml
new file mode 100644
index 0000000..befd7d6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserMapper.xml
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserMapper">
+
+	<!-- 通用查询映射结果 -->
+	<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.User">
+		<id column="id" property="id" />
+		<result column="avatar" property="avatar" />
+		<result column="account" property="account" />
+		<result column="password" property="password" />
+		<result column="salt" property="salt" />
+		<result column="name" property="name" />
+		<result column="birthday" property="birthday" />
+		<result column="sex" property="sex" />
+		<result column="email" property="email" />
+		<result column="phone" property="phone" />
+		<result column="roleid" property="roleid" />
+		<result column="deptid" property="deptid" />
+		<result column="status" property="status" />
+		<result column="createtime" property="createtime" />
+		<result column="version" property="version" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		id, account, name, birthday, sex, email, avatar,
+		phone, roleid,
+		deptid, status,
+		createtime, version
+	</sql>
+
+	<sql id="Base_Column_List_With_Pwd">
+		id, account, name, birthday,password, sex, email, avatar,
+		phone, roleid,salt,
+		deptid, status,
+		createtime, version
+	</sql>
+
+	<select id="selectUsers" resultType="map">
+		select
+		<include refid="Base_Column_List" />
+		from sys_user
+		where status != 3
+		<if test="name != null and name != ''">
+			and (phone like CONCAT('%',#{name},'%')
+			or account like CONCAT('%',#{name},'%')
+			or name like CONCAT('%',#{name},'%'))
+		</if>
+		<if test="deptid != null and deptid != 0">
+			and (deptid = #{deptid} or deptid in ( select id from sys_dept where pids like CONCAT('%[', #{deptid}, ']%') ))
+		</if>
+		<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
+			and (createTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
+		</if>
+	</select>
+
+	<update id="setStatus">
+		update sys_user set status = #{status} where id =
+		#{userId}
+	</update>
+
+	<update id="changePwd">
+		update sys_user set password = #{pwd} where id =
+		#{userId}
+	</update>
+
+	<update id="setRoles">
+		update sys_user set roleid = #{roleIds} where id =
+		#{userId}
+	</update>
+
+	<select id="getByAccount" resultType="user">
+		select
+		<include refid="Base_Column_List_With_Pwd" />
+		from sys_user where account = #{account} and status != 3
+	</select>
+
+</mapper>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserRedPacketRecordMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserRedPacketRecordMapper.xml
new file mode 100644
index 0000000..40cd667
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/UserRedPacketRecordMapper.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.UserRedPacketRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.UserRedPacketRecord">
+        <id column="id" property="id"/>
+        <result column="money" property="money"/>
+        <result column="expirationTime" property="expirationTime"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="companyId" property="companyId"/>
+        <result column="state" property="state"/>
+        <result column="endTime" property="endTime"/>
+        <result column="orderId" property="orderId"/>
+        <result column="orderType" property="orderType"/>
+        <result column="userId" property="userId"/>
+        <result column="redPacketActivityId" property="redPacketActivityId"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="UserRedPacketRecord">
+        select
+        id as id,
+        money as money,
+        expirationTime as expirationTime,
+        insertTime as insertTime,
+        companyId as companyId,
+        state as state,
+        orderId as orderId,
+        orderType as orderType,
+        userId as userId,
+        redPacketActivityId as redPacketActivityId
+        from t_user_red_packet_record where 1=1
+        <if test="null != uid">
+            and userId = #{uid}
+        </if>
+        <if test="null != companyId">
+            and companyId = #{companyId}
+        </if>
+        <if test="null != state">
+            and state = #{state}
+        </if>
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != money">
+            and money &lt; #{money}
+        </if>
+        order by money desc limit 0, 1
+    </select>
+
+
+
+    <select id="query_" resultType="UserRedPacketRecord">
+        select
+        id as id,
+        money as money,
+        expirationTime as expirationTime,
+        insertTime as insertTime,
+        companyId as companyId,
+        state as state,
+        orderId as orderId,
+        orderType as orderType,
+        userId as userId,
+        redPacketActivityId as redPacketActivityId
+        from t_user_red_packet_record where 1=1
+        <if test="null != uid">
+            and userId = #{uid}
+        </if>
+        <if test="null != companyId">
+            and companyId = #{companyId}
+        </if>
+        <if test="null != state">
+            and state = #{state}
+        </if>
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != money">
+            and money &lt; #{money}
+        </if>
+        order by insertTime desc limit 0, 1
+    </select>
+
+
+    <select id="queryMyRedEnvelope" resultType="map">
+        select
+        a.id as id,
+        a.money as money,
+        b.name as name
+        from t_user_red_packet_record a
+        left join t_company b on (a.companyId = b.id)
+        where a.state = 1
+        <if test="null != uid">
+            and a.userId = #{uid}
+        </if>
+        order by a.insertTime desc
+        <if test="null != pageNum and null != size">
+            limit #{pageNum}, #{size}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VerifiedMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VerifiedMapper.xml
new file mode 100644
index 0000000..be2b9e4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VerifiedMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.VerifiedMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Verified">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="name" property="name"/>
+        <result column="idcode" property="idcode"/>
+        <result column="img1" property="img1"/>
+        <result column="img2" property="img2"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VersionManagementMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VersionManagementMapper.xml
new file mode 100644
index 0000000..b4e07a7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/VersionManagementMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.VersionManagementMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.VersionManagement">
+        <id column="id" property="id"/>
+        <result column="url" property="url"/>
+        <result column="version" property="version"/>
+        <result column="content" property="content"/>
+        <result column="mandatory" property="mandatory"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="type" property="type"/>
+    </resultMap>
+
+
+    <select id="queryNewVersion" resultType="map">
+        select
+        id as id,
+        url as url,
+        content as content,
+        if(mandatory = 1, 1, 0) as mandatory,
+        version as version
+        from t_version_management where type = #{type} order by insertTime desc limit 0, 1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml
new file mode 100644
index 0000000..69c8513
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/WithdrawalMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.system.dao.WithdrawalMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.Withdrawal">
+        <id column="id" property="id" />
+        <result column="userId" property="userId" />
+        <result column="handleTime" property="handleTime" />
+        <result column="balance" property="balance" />
+        <result column="money" property="money" />
+        <result column="state" property="state" />
+        <result column="remark" property="remark" />
+        <result column="code" property="code" />
+        <result column="name" property="name" />
+        <result column="userType" property="userType" />
+        <result column="insertTime" property="insertTime" />
+        <result column="flag" property="flag" />
+        <result column="withdrawalType" property="withdrawalType" />
+        <result column="serialNo" property="serialNo" />
+    </resultMap>
+
+
+    <select id="queryWithdrawal" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(insertTime, '%Y.%m.%d') as insertTime,
+        money as money,
+        ('银行卡提现') as name,
+        remark as remark,
+        state as state
+        from t_pub_withdrawal where flag != 3 and userType = #{userType} and userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/factory/UserFactory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/factory/UserFactory.java
new file mode 100644
index 0000000..508b65d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/factory/UserFactory.java
@@ -0,0 +1,54 @@
+package com.stylefeng.guns.modular.system.factory;
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.transfer.UserDto;
+import org.springframework.beans.BeanUtils;
+
+/**
+ * 用户创建工厂
+ *
+ * @author fengshuonan
+ * @date 2017-05-05 22:43
+ */
+public class UserFactory {
+
+    public static User createUser(UserDto userDto) {
+        if (userDto == null) {
+            return null;
+        } else {
+            User user = new User();
+            BeanUtils.copyProperties(userDto, user);
+            return user;
+        }
+    }
+
+    public static User editUser(UserDto newUser, User oldUser) {
+        if (newUser == null || oldUser == null) {
+            return oldUser;
+        } else {
+            if (ToolUtil.isNotEmpty(newUser.getAvatar())) {
+                oldUser.setAvatar(newUser.getAvatar());
+            }
+            if (ToolUtil.isNotEmpty(newUser.getName())) {
+                oldUser.setName(newUser.getName());
+            }
+            if (ToolUtil.isNotEmpty(newUser.getBirthday())) {
+                oldUser.setBirthday(newUser.getBirthday());
+            }
+            if (ToolUtil.isNotEmpty(newUser.getDeptid())) {
+                oldUser.setDeptid(newUser.getDeptid());
+            }
+            if (ToolUtil.isNotEmpty(newUser.getSex())) {
+                oldUser.setSex(newUser.getSex());
+            }
+            if (ToolUtil.isNotEmpty(newUser.getEmail())) {
+                oldUser.setEmail(newUser.getEmail());
+            }
+            if (ToolUtil.isNotEmpty(newUser.getPhone())) {
+                oldUser.setPhone(newUser.getPhone());
+            }
+            return oldUser;
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Advertisement.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Advertisement.java
new file mode 100644
index 0000000..6f8145a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Advertisement.java
@@ -0,0 +1,127 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+/**
+ * 广告
+ */
+@TableName("t_advertisement")
+public class Advertisement extends BaseBean {
+    /**
+     * 广告名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 图片路径
+     */
+    @TableField("imgUrl")
+    private String imgUrl;
+    /**
+     * 广告类型(1:弹窗,2:首页底部)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 是否跳转(1:是,2:否)
+     */
+    @TableField("isJump")
+    private Integer isJump;
+    /**
+     * 跳转类型(1:外部,2:内部)
+     */
+    @TableField("jumpType")
+    private Integer jumpType;
+    /**
+     * 跳转地址
+     */
+    @TableField("jumpUrl")
+    private String jumpUrl;
+    /**
+     * 文本内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 状态(1=已上线,2=已下线)
+     * @return
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 所属省id
+     * @return
+     */
+    @TableField("provinceId")
+    private Integer provinceId;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getIsJump() {
+        return isJump;
+    }
+
+    public void setIsJump(Integer isJump) {
+        this.isJump = isJump;
+    }
+
+    public Integer getJumpType() {
+        return jumpType;
+    }
+
+    public void setJumpType(Integer jumpType) {
+        this.jumpType = jumpType;
+    }
+
+    public String getJumpUrl() {
+        return jumpUrl;
+    }
+
+    public void setJumpUrl(String jumpUrl) {
+        this.jumpUrl = jumpUrl;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    @Override
+    public String toString() {
+        return "Advertisement{" +
+                "name='" + name + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", type=" + type +
+                ", isJump=" + isJump +
+                ", jumpType=" + jumpType +
+                ", jumpUrl='" + jumpUrl + '\'' +
+                ", content='" + content + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Agreement.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Agreement.java
new file mode 100644
index 0000000..0ed3c3c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Agreement.java
@@ -0,0 +1,59 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+/**
+ * 平台协议
+ */
+@TableName("t_agreement")
+public class Agreement extends BaseBean {
+    /**
+     * 使用范围(1=用户,2=司机)
+     */
+    @TableField("useType")
+    private Integer useType;
+    /**
+     * 协议内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 类型(1:隐私协议,2:用户协议,3:用户指南,4:法律条款,5:关于我们,6=注册协议,7=取消订单说明,8=充值领券规则设置,9=司机注册协议,10=改派说明,11=跨城出行乘车须知,12:常见问题,13:计价规则,14:包车协议,15:小件物流协议)
+     */
+    @TableField("type")
+    private Integer type;
+
+    public Integer getUseType() {
+        return useType;
+    }
+
+    public void setUseType(Integer useType) {
+        this.useType = useType;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    @Override
+    public String toString() {
+        return "Agreement{" +
+                "useType=" + useType +
+                ", content='" + content + '\'' +
+                ", type=" + type +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BankCard.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BankCard.java
new file mode 100644
index 0000000..0792db7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BankCard.java
@@ -0,0 +1,161 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 银行卡
+ */
+@TableName("t_bank_card")
+public class BankCard {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 银行全称
+     */
+    @TableField("bank")
+    private String bank;
+    /**
+     * 开户人姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 银行卡号
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 银行卡号后四位
+     */
+    @TableField("acctNumSuffix")
+    private String acctNumSuffix;
+    /**
+     * 银行预留手机号
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 身份证号码
+     */
+    @TableField("IdNum")
+    private String IdNum;
+    /**
+     * 用户类型(1=乘客,2=司机)
+     * @return
+     */
+    @TableField("userType")
+    private Integer userType;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 签约协议号
+     */
+    @TableField("signNum")
+    private String signNum;
+    /**
+     * 添加时间
+     * @return
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getAcctNumSuffix() {
+        return acctNumSuffix;
+    }
+
+    public void setAcctNumSuffix(String acctNumSuffix) {
+        this.acctNumSuffix = acctNumSuffix;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getIdNum() {
+        return IdNum;
+    }
+
+    public void setIdNum(String idNum) {
+        IdNum = idNum;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getSignNum() {
+        return signNum;
+    }
+
+    public void setSignNum(String signNum) {
+        this.signNum = signNum;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BaseBean.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BaseBean.java
new file mode 100644
index 0000000..a11c39e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/BaseBean.java
@@ -0,0 +1,107 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+public class BaseBean {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 1:正常,2:停用,3:删除
+     */
+    @TableField("flag")
+    private Integer flag;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 添加人员
+     */
+    @TableField("insertUser")
+    private Integer insertUser;
+    /**
+     * 修改时间
+     */
+    @TableField("updateTime")
+    private Date updateTime;
+    /**
+     * 修改人员
+     */
+    @TableField("updateUser")
+    private Integer updateUser;
+
+    public BaseBean() {
+        Date date = new Date();
+        this.flag = 1;
+        this.insertTime = date;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getInsertUser() {
+        return insertUser;
+    }
+
+    public void setInsertUser(Integer insertUser) {
+        this.insertUser = insertUser;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Integer getUpdateUser() {
+        return updateUser;
+    }
+
+    public void setUpdateUser(Integer updateUser) {
+        this.updateUser = updateUser;
+    }
+
+    @Override
+    public String toString() {
+        return "BaseBean{" +
+                "id=" + id +
+                ", flag=" + flag +
+                ", insertTime=" + insertTime +
+                ", insertUser=" + insertUser +
+                ", updateTime=" + updateTime +
+                ", updateUser=" + updateUser +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java
new file mode 100644
index 0000000..d379e59
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CancleOrder.java
@@ -0,0 +1,104 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 取消订单设置
+ */
+@TableName("t_sys_cancle_order")
+public class CancleOrder {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 时间(分钟)
+     */
+    @TableField("minuteNum")
+    private Integer minuteNum;
+    /**
+     * 金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 类型(1=取消,2=预约取消)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 订单类型(1=专车,2=出租车)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Integer getMinuteNum() {
+        return minuteNum;
+    }
+
+    public void setMinuteNum(Integer minuteNum) {
+        this.minuteNum = minuteNum;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    @Override
+    public String toString() {
+        return "CancleOrder{" +
+                "id=" + id +
+                ", companyId=" + companyId +
+                ", minuteNum=" + minuteNum +
+                ", money=" + money +
+                ", type=" + type +
+                ", orderType=" + orderType +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java
new file mode 100644
index 0000000..bdc49e1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java
@@ -0,0 +1,272 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 车辆
+ */
+@TableName("t_car")
+public class Car {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 是否是平台车辆(1=是,2=否)
+     */
+    @TableField("isPlatCar")
+    private Integer isPlatCar;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 加盟商id
+     */
+    @TableField("franchiseeId")
+    private Integer franchiseeId;
+    /**
+     * 车辆颜色
+     */
+    @TableField("carColor")
+    private String carColor;
+    /**
+     * 车型id
+     */
+    @TableField("carModelId")
+    private Integer carModelId;
+    /**
+     * 车辆品牌id
+     */
+    @TableField("carBrandId")
+    private Integer carBrandId;
+    /**
+     * 车牌号
+     */
+    @TableField("carLicensePlate")
+    private String carLicensePlate;
+    /**
+     * 车辆照片
+     */
+    @TableField("carPhoto")
+    private String carPhoto;
+    /**
+     * 行驶证号
+     */
+    @TableField("drivingLicenseNumber")
+    private String drivingLicenseNumber;
+    /**
+     * 行驶证照片
+     */
+    @TableField("drivingLicensePhoto")
+    private String drivingLicensePhoto;
+    /**
+     * 年检到期时间
+     */
+    @TableField("annualInspectionTime")
+    private Date annualInspectionTime;
+    /**
+     * 保险照片
+     */
+    @TableField("insurancePhoto")
+    private String insurancePhoto;
+    /**
+     * 商业保险到期时间
+     */
+    @TableField("commercialInsuranceTime")
+    private Date commercialInsuranceTime;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 状态(1=正常,2=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加来源(1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加)
+     */
+    @TableField("addType")
+    private Integer addType;
+    /**
+     * 公司id
+     */
+    @TableField("addObjectId")
+    private Integer addObjectId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getIsPlatCar() {
+        return isPlatCar;
+    }
+
+    public void setIsPlatCar(Integer isPlatCar) {
+        this.isPlatCar = isPlatCar;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Integer getFranchiseeId() {
+        return franchiseeId;
+    }
+
+    public void setFranchiseeId(Integer franchiseeId) {
+        this.franchiseeId = franchiseeId;
+    }
+
+    public String getCarColor() {
+        return carColor;
+    }
+
+    public void setCarColor(String carColor) {
+        this.carColor = carColor;
+    }
+
+    public Integer getCarModelId() {
+        return carModelId;
+    }
+
+    public void setCarModelId(Integer carModelId) {
+        this.carModelId = carModelId;
+    }
+
+    public Integer getCarBrandId() {
+        return carBrandId;
+    }
+
+    public void setCarBrandId(Integer carBrandId) {
+        this.carBrandId = carBrandId;
+    }
+
+    public String getCarLicensePlate() {
+        return carLicensePlate;
+    }
+
+    public void setCarLicensePlate(String carLicensePlate) {
+        this.carLicensePlate = carLicensePlate;
+    }
+
+    public String getCarPhoto() {
+        return carPhoto;
+    }
+
+    public void setCarPhoto(String carPhoto) {
+        this.carPhoto = carPhoto;
+    }
+
+    public String getDrivingLicenseNumber() {
+        return drivingLicenseNumber;
+    }
+
+    public void setDrivingLicenseNumber(String drivingLicenseNumber) {
+        this.drivingLicenseNumber = drivingLicenseNumber;
+    }
+
+    public String getDrivingLicensePhoto() {
+        return drivingLicensePhoto;
+    }
+
+    public void setDrivingLicensePhoto(String drivingLicensePhoto) {
+        this.drivingLicensePhoto = drivingLicensePhoto;
+    }
+
+    public Date getAnnualInspectionTime() {
+        return annualInspectionTime;
+    }
+
+    public void setAnnualInspectionTime(Date annualInspectionTime) {
+        this.annualInspectionTime = annualInspectionTime;
+    }
+
+    public String getInsurancePhoto() {
+        return insurancePhoto;
+    }
+
+    public void setInsurancePhoto(String insurancePhoto) {
+        this.insurancePhoto = insurancePhoto;
+    }
+
+    public Date getCommercialInsuranceTime() {
+        return commercialInsuranceTime;
+    }
+
+    public void setCommercialInsuranceTime(Date commercialInsuranceTime) {
+        this.commercialInsuranceTime = commercialInsuranceTime;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getAddType() {
+        return addType;
+    }
+
+    public void setAddType(Integer addType) {
+        this.addType = addType;
+    }
+
+    public Integer getAddObjectId() {
+        return addObjectId;
+    }
+
+    public void setAddObjectId(Integer addObjectId) {
+        this.addObjectId = addObjectId;
+    }
+
+    @Override
+    public String toString() {
+        return "Car{" +
+                "id=" + id +
+                ", isPlatCar=" + isPlatCar +
+                ", companyId=" + companyId +
+                ", carColor='" + carColor + '\'' +
+                ", carModelId=" + carModelId +
+                ", carBrandId=" + carBrandId +
+                ", carLicensePlate='" + carLicensePlate + '\'' +
+                ", carPhoto='" + carPhoto + '\'' +
+                ", drivingLicenseNumber='" + drivingLicenseNumber + '\'' +
+                ", drivingLicensePhoto='" + drivingLicensePhoto + '\'' +
+                ", annualInspectionTime=" + annualInspectionTime +
+                ", commercialInsuranceTime=" + commercialInsuranceTime +
+                ", insertTime=" + insertTime +
+                ", state=" + state +
+                ", addType=" + addType +
+                ", addObjectId=" + addObjectId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CarService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CarService.java
new file mode 100644
index 0000000..bd040d9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CarService.java
@@ -0,0 +1,76 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 车辆服务
+ */
+@TableName("t_car_service")
+public class CarService {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 服务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 服务车型id
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    @Override
+    public String toString() {
+        return "CarService{" +
+                "id=" + id +
+                ", carId=" + carId +
+                ", type=" + type +
+                ", serverCarModelId=" + serverCarModelId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java
new file mode 100644
index 0000000..aa38c5c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Company.java
@@ -0,0 +1,694 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 企业信息
+ */
+@TableName("t_company")
+public class Company {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 是否经营专车(1=是,2=否)
+     */
+    @TableField("isSpe")
+    private Integer isSpe;
+    /**
+     * 是否经营出租车(1=是,2=否)
+     */
+    @TableField("isTaxi")
+    private Integer isTaxi;
+    /**
+     * 是否经营跨城(1=是,2=否)
+     */
+    @TableField("isCross")
+    private Integer isCross;
+    /**
+     * 是否经营跨城物流(1=是,2=否)
+     */
+    @TableField("isCrossLogistics")
+    private Integer isCrossLogistics;
+    /**
+     * 是否经营同城物流(1=是,2=否)
+     */
+    @TableField("isSameLogistics")
+    private Integer isSameLogistics;
+    /**
+     * 是否经营包车(1=是,2=否)
+     */
+    @TableField("isCharter")
+    private Integer isCharter;
+    /**
+     * 专车提成方式(1=比例,2=固定)
+     */
+    @TableField("isSpeFixedOrProportional")
+    private Integer isSpeFixedOrProportional;
+    /**
+     * 出租车提成方式(1=比例,2=固定)
+     */
+    @TableField("isTaxiFixedOrProportional")
+    private Integer isTaxiFixedOrProportional;
+    /**
+     * 跨城物流提成方式(1=比例,2=固定)
+     */
+    @TableField("isCrossLogisticsFixedOrProportional")
+    private Integer isCrossLogisticsFixedOrProportional;
+    /**
+     * 同城物流提成方式(1=比例,2=固定)
+     */
+    @TableField("isSameLogisticsFixedOrProportional")
+    private Integer isSameLogisticsFixedOrProportional;
+    /**
+     * 专车提成数值
+     */
+    @TableField("speMoney")
+    private Double speMoney;
+    /**
+     * 出租车提成数值
+     */
+    @TableField("taxiMoney")
+    private Double taxiMoney;
+    /**
+     * 跨城物流提成数值
+     */
+    @TableField("crossLogisticsMoney")
+    private Double crossLogisticsMoney;
+    /**
+     * 同城物流
+     */
+    @TableField("sameLogisticsMoney")
+    private Double sameLogisticsMoney;
+    /**
+     * 是否需要摆渡车(1=是,2=否)
+     */
+    @TableField("isNeedFerry")
+    private Integer isNeedFerry;
+    /**
+     * 企业名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 企业类型(1=平台,2=分公司,3=加盟商)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 上级企业
+     */
+    @TableField("superiorId")
+    private Integer superiorId;
+    /**
+     * 负责人姓名
+     */
+    @TableField("principalName")
+    private String principalName;
+    /**
+     * 负责人电话
+     */
+    @TableField("principalPhone")
+    private String principalPhone;
+    /**
+     * 管理员姓名
+     */
+    @TableField("adminName")
+    private String adminName;
+    /**
+     * 管理员电话
+     */
+    @TableField("adminPhone")
+    private String adminPhone;
+    /**
+     * 紧急联系电话
+     */
+    @TableField("urgentPhoen")
+    private String urgentPhoen;
+    /**
+     * 服务机构设立时间
+     */
+    @TableField("setupTime")
+    private Date setupTime;
+    /**
+     * 社会统一信用代码
+     */
+    @TableField("identifier")
+    private String identifier;
+    /**
+     * 注册地行政区域代码
+     */
+    @TableField("addressCode")
+    private String addressCode;
+    /**
+     * 经营范围
+     */
+    @TableField("businessScope")
+    private String businessScope;
+    /**
+     * 通信地址
+     */
+    @TableField("contactAddress")
+    private String contactAddress;
+    /**
+     * 行政文书送达地址
+     */
+    @TableField("documentAddress")
+    private String documentAddress;
+    /**
+     * 经营业户经济类型
+     */
+    @TableField("economicType")
+    private String economicType;
+    /**
+     * 注册资本
+     */
+    @TableField("regCapital")
+    private String regCapital;
+    /**
+     * 法人代表姓名
+     */
+    @TableField("legalName")
+    private String legalName;
+    /**
+     * 法人代表身份证号码
+     */
+    @TableField("legalId")
+    private String legalId;
+    /**
+     * 法人代表电话
+     */
+    @TableField("legalPhone")
+    private String legalPhone;
+    /**
+     * 法人代表身份证图片地址
+     */
+    @TableField("legalPhotoUrl")
+    private String legalPhotoUrl;
+    /**
+     * 经营许可证发证机构
+     */
+    @TableField("licensingAgency")
+    private String licensingAgency;
+    /**
+     * 经营许可证初次发证日期
+     */
+    @TableField("licenseTime")
+    private Date licenseTime;
+    /**
+     * 镜经营许可证有效日期起
+     */
+    @TableField("licenseStartTime")
+    private Date licenseStartTime;
+    /**
+     * 经营许可证有效日期止
+     */
+    @TableField("licenseEndTime")
+    private Date licenseEndTime;
+    /**
+     * 网络预约车经营许可证号
+     */
+    @TableField("licenseNumber")
+    private String licenseNumber;
+    /**
+     * 注册网络预约车数量
+     */
+    @TableField("carNum")
+    private Integer carNum;
+    /**
+     * 注册网络预约车驾驶员数量
+     */
+    @TableField("driverNum")
+    private Integer driverNum;
+    /**
+     * 绑定mac地址
+     */
+    @TableField("mac")
+    private String mac;
+    /**
+     * 状态(1=正常,2=禁用)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 1=创建,2=修改,3=删除
+     */
+    @TableField("flag")
+    private Integer flag;
+    /**
+     * 上传标识(1:未上传,2:已上传)
+     */
+    @TableField("upload")
+    private Integer upload;
+    /**
+     * 创建日期
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getIsSpe() {
+        return isSpe;
+    }
+
+    public void setIsSpe(Integer isSpe) {
+        this.isSpe = isSpe;
+    }
+
+    public Integer getIsTaxi() {
+        return isTaxi;
+    }
+
+    public void setIsTaxi(Integer isTaxi) {
+        this.isTaxi = isTaxi;
+    }
+
+    public Integer getIsCross() {
+        return isCross;
+    }
+
+    public void setIsCross(Integer isCross) {
+        this.isCross = isCross;
+    }
+
+    public Integer getIsCrossLogistics() {
+        return isCrossLogistics;
+    }
+
+    public void setIsCrossLogistics(Integer isCrossLogistics) {
+        this.isCrossLogistics = isCrossLogistics;
+    }
+
+    public Integer getIsSameLogistics() {
+        return isSameLogistics;
+    }
+
+    public void setIsSameLogistics(Integer isSameLogistics) {
+        this.isSameLogistics = isSameLogistics;
+    }
+
+    public Integer getIsCharter() {
+        return isCharter;
+    }
+
+    public void setIsCharter(Integer isCharter) {
+        this.isCharter = isCharter;
+    }
+
+    public Integer getIsSpeFixedOrProportional() {
+        return isSpeFixedOrProportional;
+    }
+
+    public void setIsSpeFixedOrProportional(Integer isSpeFixedOrProportional) {
+        this.isSpeFixedOrProportional = isSpeFixedOrProportional;
+    }
+
+    public Integer getIsTaxiFixedOrProportional() {
+        return isTaxiFixedOrProportional;
+    }
+
+    public void setIsTaxiFixedOrProportional(Integer isTaxiFixedOrProportional) {
+        this.isTaxiFixedOrProportional = isTaxiFixedOrProportional;
+    }
+
+    public Integer getIsCrossLogisticsFixedOrProportional() {
+        return isCrossLogisticsFixedOrProportional;
+    }
+
+    public void setIsCrossLogisticsFixedOrProportional(Integer isCrossLogisticsFixedOrProportional) {
+        this.isCrossLogisticsFixedOrProportional = isCrossLogisticsFixedOrProportional;
+    }
+
+    public Integer getIsSameLogisticsFixedOrProportional() {
+        return isSameLogisticsFixedOrProportional;
+    }
+
+    public void setIsSameLogisticsFixedOrProportional(Integer isSameLogisticsFixedOrProportional) {
+        this.isSameLogisticsFixedOrProportional = isSameLogisticsFixedOrProportional;
+    }
+
+    public Double getSpeMoney() {
+        return speMoney;
+    }
+
+    public void setSpeMoney(Double speMoney) {
+        this.speMoney = speMoney;
+    }
+
+    public Double getTaxiMoney() {
+        return taxiMoney;
+    }
+
+    public void setTaxiMoney(Double taxiMoney) {
+        this.taxiMoney = taxiMoney;
+    }
+
+    public Double getCrossLogisticsMoney() {
+        return crossLogisticsMoney;
+    }
+
+    public void setCrossLogisticsMoney(Double crossLogisticsMoney) {
+        this.crossLogisticsMoney = crossLogisticsMoney;
+    }
+
+    public Double getSameLogisticsMoney() {
+        return sameLogisticsMoney;
+    }
+
+    public void setSameLogisticsMoney(Double sameLogisticsMoney) {
+        this.sameLogisticsMoney = sameLogisticsMoney;
+    }
+
+    public Integer getIsNeedFerry() {
+        return isNeedFerry;
+    }
+
+    public void setIsNeedFerry(Integer isNeedFerry) {
+        this.isNeedFerry = isNeedFerry;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getSuperiorId() {
+        return superiorId;
+    }
+
+    public void setSuperiorId(Integer superiorId) {
+        this.superiorId = superiorId;
+    }
+
+    public String getPrincipalName() {
+        return principalName;
+    }
+
+    public void setPrincipalName(String principalName) {
+        this.principalName = principalName;
+    }
+
+    public String getPrincipalPhone() {
+        return principalPhone;
+    }
+
+    public void setPrincipalPhone(String principalPhone) {
+        this.principalPhone = principalPhone;
+    }
+
+    public String getAdminName() {
+        return adminName;
+    }
+
+    public void setAdminName(String adminName) {
+        this.adminName = adminName;
+    }
+
+    public String getAdminPhone() {
+        return adminPhone;
+    }
+
+    public void setAdminPhone(String adminPhone) {
+        this.adminPhone = adminPhone;
+    }
+
+    public String getUrgentPhoen() {
+        return urgentPhoen;
+    }
+
+    public void setUrgentPhoen(String urgentPhoen) {
+        this.urgentPhoen = urgentPhoen;
+    }
+
+    public Date getSetupTime() {
+        return setupTime;
+    }
+
+    public void setSetupTime(Date setupTime) {
+        this.setupTime = setupTime;
+    }
+
+    public String getIdentifier() {
+        return identifier;
+    }
+
+    public void setIdentifier(String identifier) {
+        this.identifier = identifier;
+    }
+
+    public String getAddressCode() {
+        return addressCode;
+    }
+
+    public void setAddressCode(String addressCode) {
+        this.addressCode = addressCode;
+    }
+
+    public String getBusinessScope() {
+        return businessScope;
+    }
+
+    public void setBusinessScope(String businessScope) {
+        this.businessScope = businessScope;
+    }
+
+    public String getContactAddress() {
+        return contactAddress;
+    }
+
+    public void setContactAddress(String contactAddress) {
+        this.contactAddress = contactAddress;
+    }
+
+    public String getDocumentAddress() {
+        return documentAddress;
+    }
+
+    public void setDocumentAddress(String documentAddress) {
+        this.documentAddress = documentAddress;
+    }
+
+    public String getEconomicType() {
+        return economicType;
+    }
+
+    public void setEconomicType(String economicType) {
+        this.economicType = economicType;
+    }
+
+    public String getRegCapital() {
+        return regCapital;
+    }
+
+    public void setRegCapital(String regCapital) {
+        this.regCapital = regCapital;
+    }
+
+    public String getLegalName() {
+        return legalName;
+    }
+
+    public void setLegalName(String legalName) {
+        this.legalName = legalName;
+    }
+
+    public String getLegalId() {
+        return legalId;
+    }
+
+    public void setLegalId(String legalId) {
+        this.legalId = legalId;
+    }
+
+    public String getLegalPhone() {
+        return legalPhone;
+    }
+
+    public void setLegalPhone(String legalPhone) {
+        this.legalPhone = legalPhone;
+    }
+
+    public String getLegalPhotoUrl() {
+        return legalPhotoUrl;
+    }
+
+    public void setLegalPhotoUrl(String legalPhotoUrl) {
+        this.legalPhotoUrl = legalPhotoUrl;
+    }
+
+    public String getLicensingAgency() {
+        return licensingAgency;
+    }
+
+    public void setLicensingAgency(String licensingAgency) {
+        this.licensingAgency = licensingAgency;
+    }
+
+    public Date getLicenseTime() {
+        return licenseTime;
+    }
+
+    public void setLicenseTime(Date licenseTime) {
+        this.licenseTime = licenseTime;
+    }
+
+    public Date getLicenseStartTime() {
+        return licenseStartTime;
+    }
+
+    public void setLicenseStartTime(Date licenseStartTime) {
+        this.licenseStartTime = licenseStartTime;
+    }
+
+    public Date getLicenseEndTime() {
+        return licenseEndTime;
+    }
+
+    public void setLicenseEndTime(Date licenseEndTime) {
+        this.licenseEndTime = licenseEndTime;
+    }
+
+    public String getLicenseNumber() {
+        return licenseNumber;
+    }
+
+    public void setLicenseNumber(String licenseNumber) {
+        this.licenseNumber = licenseNumber;
+    }
+
+    public Integer getCarNum() {
+        return carNum;
+    }
+
+    public void setCarNum(Integer carNum) {
+        this.carNum = carNum;
+    }
+
+    public Integer getDriverNum() {
+        return driverNum;
+    }
+
+    public void setDriverNum(Integer driverNum) {
+        this.driverNum = driverNum;
+    }
+
+    public String getMac() {
+        return mac;
+    }
+
+    public void setMac(String mac) {
+        this.mac = mac;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
+    public Integer getUpload() {
+        return upload;
+    }
+
+    public void setUpload(Integer upload) {
+        this.upload = upload;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Company{" +
+                "id=" + id +
+                ", isSpe=" + isSpe +
+                ", isTaxi=" + isTaxi +
+                ", isCross=" + isCross +
+                ", isCrossLogistics=" + isCrossLogistics +
+                ", isSameLogistics=" + isSameLogistics +
+                ", isCharter=" + isCharter +
+                ", isSpeFixedOrProportional=" + isSpeFixedOrProportional +
+                ", isTaxiFixedOrProportional=" + isTaxiFixedOrProportional +
+                ", isCrossLogisticsFixedOrProportional=" + isCrossLogisticsFixedOrProportional +
+                ", isSameLogisticsFixedOrProportional=" + isSameLogisticsFixedOrProportional +
+                ", speMoney=" + speMoney +
+                ", taxiMoney=" + taxiMoney +
+                ", crossLogisticsMoney=" + crossLogisticsMoney +
+                ", sameLogisticsMoney=" + sameLogisticsMoney +
+                ", isNeedFerry=" + isNeedFerry +
+                ", name='" + name + '\'' +
+                ", type=" + type +
+                ", superiorId=" + superiorId +
+                ", principalName='" + principalName + '\'' +
+                ", principalPhone='" + principalPhone + '\'' +
+                ", adminName='" + adminName + '\'' +
+                ", adminPhone='" + adminPhone + '\'' +
+                ", urgentPhoen='" + urgentPhoen + '\'' +
+                ", setupTime=" + setupTime +
+                ", identifier='" + identifier + '\'' +
+                ", addressCode='" + addressCode + '\'' +
+                ", businessScope='" + businessScope + '\'' +
+                ", contactAddress='" + contactAddress + '\'' +
+                ", documentAddress='" + documentAddress + '\'' +
+                ", economicType='" + economicType + '\'' +
+                ", regCapital='" + regCapital + '\'' +
+                ", legalName='" + legalName + '\'' +
+                ", legalId='" + legalId + '\'' +
+                ", legalPhone='" + legalPhone + '\'' +
+                ", legalPhotoUrl='" + legalPhotoUrl + '\'' +
+                ", licensingAgency='" + licensingAgency + '\'' +
+                ", licenseTime=" + licenseTime +
+                ", licenseStartTime=" + licenseStartTime +
+                ", licenseEndTime=" + licenseEndTime +
+                ", licenseNumber='" + licenseNumber + '\'' +
+                ", carNum=" + carNum +
+                ", driverNum=" + driverNum +
+                ", mac='" + mac + '\'' +
+                ", state=" + state +
+                ", flag=" + flag +
+                ", upload=" + upload +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CompanyCity.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CompanyCity.java
new file mode 100644
index 0000000..ee81ae0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/CompanyCity.java
@@ -0,0 +1,104 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 企业经营范围
+ */
+@TableName("t_company_city")
+public class CompanyCity {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 省编号
+     */
+    @TableField("provinceCode")
+    private String provinceCode;
+    /**
+     * 市编号
+     */
+    @TableField("cityCode")
+    private String cityCode;
+    /**
+     * 区编号
+     */
+    @TableField("areaCode")
+    private String areaCode;
+    /**
+     * 状态(1=正常,2=删除)
+     */
+    @TableField("state")
+    private Integer state;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getProvinceCode() {
+        return provinceCode;
+    }
+
+    public void setProvinceCode(String provinceCode) {
+        this.provinceCode = provinceCode;
+    }
+
+    public String getCityCode() {
+        return cityCode;
+    }
+
+    public void setCityCode(String cityCode) {
+        this.cityCode = cityCode;
+    }
+
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "CompanyCity{" +
+                "id=" + id +
+                ", companyId=" + companyId +
+                ", provinceCode='" + provinceCode + '\'' +
+                ", cityCode='" + cityCode + '\'' +
+                ", areaCode='" + areaCode + '\'' +
+                ", state=" + state +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Complaint.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Complaint.java
new file mode 100644
index 0000000..69681f2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Complaint.java
@@ -0,0 +1,148 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 投诉
+ */
+@TableName("t_complaint")
+public class Complaint {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 投诉原因
+     */
+    @TableField("reason")
+    private String reason;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 描述
+     */
+    @TableField("description")
+    private String description;
+    /**
+     * 处理状态(0=未处理,1=已处理)
+     */
+    @TableField("isHandle")
+    private Integer isHandle;
+    /**
+     * 添加时间
+     */
+    @TableField("insert_time")
+    private Date insertTime;
+    /**
+     * 处理结果
+     */
+    @TableField("handleResult")
+    private String handleResult;
+    /**
+     * 处理人id
+     */
+    @TableField("handleUserId")
+    private Integer handleUserId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public Integer getIsHandle() {
+        return isHandle;
+    }
+
+    public void setIsHandle(Integer isHandle) {
+        this.isHandle = isHandle;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getHandleResult() {
+        return handleResult;
+    }
+
+    public void setHandleResult(String handleResult) {
+        this.handleResult = handleResult;
+    }
+
+    public Integer getHandleUserId() {
+        return handleUserId;
+    }
+
+    public void setHandleUserId(Integer handleUserId) {
+        this.handleUserId = handleUserId;
+    }
+
+    @Override
+    public String toString() {
+        return "Complaint{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", reason='" + reason + '\'' +
+                ", driverId=" + driverId +
+                ", description='" + description + '\'' +
+                ", isHandle=" + isHandle +
+                ", insertTime=" + insertTime +
+                ", handleResult='" + handleResult + '\'' +
+                ", handleUserId=" + handleUserId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dept.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dept.java
new file mode 100644
index 0000000..0790865
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dept.java
@@ -0,0 +1,140 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 部门表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_dept")
+public class Dept extends Model<Dept> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 排序
+     */
+	private Integer num;
+    /**
+     * 父部门id
+     */
+	private Integer pid;
+    /**
+     * 父级ids
+     */
+	private String pids;
+    /**
+     * 简称
+     */
+	private String simplename;
+    /**
+     * 全称
+     */
+	private String fullname;
+    /**
+     * 提示
+     */
+	private String tips;
+    /**
+     * 版本(乐观锁保留字段)
+     */
+	private Integer version;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Integer getNum() {
+		return num;
+	}
+
+	public void setNum(Integer num) {
+		this.num = num;
+	}
+
+	public Integer getPid() {
+		return pid;
+	}
+
+	public void setPid(Integer pid) {
+		this.pid = pid;
+	}
+
+	public String getPids() {
+		return pids;
+	}
+
+	public void setPids(String pids) {
+		this.pids = pids;
+	}
+
+	public String getSimplename() {
+		return simplename;
+	}
+
+	public void setSimplename(String simplename) {
+		this.simplename = simplename;
+	}
+
+	public String getFullname() {
+		return fullname;
+	}
+
+	public void setFullname(String fullname) {
+		this.fullname = fullname;
+	}
+
+	public String getTips() {
+		return tips;
+	}
+
+	public void setTips(String tips) {
+		this.tips = tips;
+	}
+
+	public Integer getVersion() {
+		return version;
+	}
+
+	public void setVersion(Integer version) {
+		this.version = version;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "Dept{" +
+			"id=" + id +
+			", num=" + num +
+			", pid=" + pid +
+			", pids=" + pids +
+			", simplename=" + simplename +
+			", fullname=" + fullname +
+			", tips=" + tips +
+			", version=" + version +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dict.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dict.java
new file mode 100644
index 0000000..b021b4b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Dict.java
@@ -0,0 +1,116 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 字典表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_dict")
+public class Dict extends Model<Dict> {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键id
+	 */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+	/**
+	 * 排序
+	 */
+	private Integer num;
+	/**
+	 * 父级字典
+	 */
+	private Integer pid;
+	/**
+	 * 名称
+	 */
+	private String name;
+
+	/**
+	 * 编码
+	 */
+	private String code;
+	/**
+	 * 提示
+	 */
+	private String tips;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Integer getNum() {
+		return num;
+	}
+
+	public void setNum(Integer num) {
+		this.num = num;
+	}
+
+	public Integer getPid() {
+		return pid;
+	}
+
+	public void setPid(Integer pid) {
+		this.pid = pid;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getTips() {
+		return tips;
+	}
+
+	public void setTips(String tips) {
+		this.tips = tips;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	@Override
+	public String toString() {
+		return "Dict{" +
+				"id=" + id +
+				", num=" + num +
+				", pid=" + pid +
+				", name='" + name + '\'' +
+				", code='" + code + '\'' +
+				", tips='" + tips + '\'' +
+				'}';
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
new file mode 100644
index 0000000..cf70d5b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Driver.java
@@ -0,0 +1,909 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 司机
+ */
+@TableName("t_driver")
+public class Driver extends BaseBean{
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 账号
+     */
+    @TableField("account")
+    private String account;
+    /**
+     * 工号
+     */
+    @TableField("jobNumber")
+    private String jobNumber;
+    /**
+     * 电话
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 登录密码
+     */
+    @TableField("password")
+    private String password;
+    /**
+     * 姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 性别(1=男,2=女)
+     */
+    @TableField("sex")
+    private Integer sex;
+    /**
+     * 身份证号码
+     */
+    @TableField("idCard")
+    private String idCard;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 加盟商id
+     */
+    @TableField("franchiseeId")
+    private Integer franchiseeId;
+    /**
+     * 头像图片
+     */
+    @TableField("headImgUrl")
+    private String headImgUrl;
+    /**
+     * 人脸识别照片
+     */
+    @TableField("faceImgUrl")
+    private String faceImgUrl;
+    /**
+     * 身份证正面照片
+     */
+    @TableField("idCardImgUrl1")
+    private String idCardImgUrl1;
+    /**
+     * 身份证背面照片
+     */
+    @TableField("idCardImgUrl2")
+    private String idCardImgUrl2;
+    /**
+     * 网约车注册地
+     */
+    @TableField("placeOfEmployment")
+    private String placeOfEmployment;
+    /**
+     * 生日
+     */
+    @TableField("birthday")
+    private Date birthday;
+    /**
+     * 银行卡号
+     */
+    @TableField("bankCardNumber")
+    private String bankCardNumber;
+    /**
+     * 国籍
+     */
+    @TableField("driverNationality")
+    private String driverNationality;
+    /**
+     * 民族
+     */
+    @TableField("driverNation")
+    private String driverNation;
+    /**
+     * 婚姻状况(1:未婚,2:已婚,3:离异)
+     */
+    @TableField("driverMaritalStatus")
+    private Integer driverMaritalStatus;
+    /**
+     * 外语能力
+     */
+    @TableField("driverLanguageLevel")
+    private String driverLanguageLevel;
+    /**
+     * 学历
+     */
+    @TableField("driverEducation")
+    private String driverEducation;
+    /**
+     * 户口登记机关名称
+     */
+    @TableField("driverCensus")
+    private String driverCensus;
+    /**
+     * 户口地址或常住地址
+     */
+    @TableField("driverAddress")
+    private String driverAddress;
+    /**
+     * 通信地址
+     */
+    @TableField("driverContactAddress")
+    private String driverContactAddress;
+    /**
+     * 驾龄
+     */
+    @TableField("driverAge")
+    private Integer driverAge;
+    /**
+     * 驾驶证号码
+     */
+    @TableField("driveCard")
+    private String driveCard;
+    /**
+     * 驾驶证照片
+     */
+    @TableField("driveCardImgUrl")
+    private String driveCardImgUrl;
+    /**
+     * 准驾车型
+     */
+    @TableField("driverType")
+    private String driverType;
+    /**
+     * 初次领取驾驶证日期
+     */
+    @TableField("getDriverLicenseDate")
+    private Date getDriverLicenseDate;
+    /**
+     * 驾驶证有效期限起
+     */
+    @TableField("driverLicenseOn")
+    private Date driverLicenseOn;
+    /**
+     * 驾驶证有效期限止
+     */
+    @TableField("driverLicenseOff")
+    private Date driverLicenseOff;
+    /**
+     * 是否巡游出租车驾驶员(0:否,1:是)
+     */
+    @TableField("taxiDriver")
+    private Integer taxiDriver;
+    /**
+     * 出租车资格证号
+     */
+    @TableField("taxiAptitudeCard")
+    private String taxiAptitudeCard;
+    /**
+     * 网约车资格证照片
+     */
+    @TableField("networkCarlssueImg")
+    private String networkCarlssueImg;
+    /**
+     * 网络预约出租车驾驶员证发证机构
+     */
+    @TableField("networkCarlssueOrganization")
+    private String networkCarlssueOrganization;
+    /**
+     * 资格证发证日期
+     */
+    @TableField("networkCarlssueDate")
+    private Date networkCarlssueDate;
+    /**
+     * 初次认领资格证日期
+     */
+    @TableField("getNetworkCarProofDate")
+    private Date getNetworkCarProofDate;
+    /**
+     * 资格证有效起始日期
+     */
+    @TableField("networkCarProofOn")
+    private Date networkCarProofOn;
+    /**
+     * 资格证有效截至日期
+     */
+    @TableField("networkCarProofOff")
+    private Date networkCarProofOff;
+    /**
+     * 报备日期
+     */
+    @TableField("registerDate")
+    private Date registerDate;
+    /**
+     * 是否专职驾驶员(0:否,1:是)
+     */
+    @TableField("fullTimeDriver")
+    private Integer fullTimeDriver;
+    /**
+     * 是否在驾驶员黑名单内(0:否,1:是)
+     */
+    @TableField("inDriverBlacklist")
+    private Integer inDriverBlacklist;
+    /**
+     * 服务类型(1:网络预约出租汽车,2:巡游出租汽车,3:私人小客车合乘)
+     */
+    @TableField("commercialType")
+    private Integer commercialType;
+    /**
+     * 驾驶员合同签署公司
+     */
+    @TableField("contractCompany")
+    private String contractCompany;
+    /**
+     * 合同有效期起
+     */
+    @TableField("contractOn")
+    private Date contractOn;
+    /**
+     * 合同有效期止
+     */
+    @TableField("contractOff")
+    private Date contractOff;
+    /**
+     * 紧急联系人
+     */
+    @TableField("emergencyContact")
+    private String emergencyContact;
+    /**
+     * 紧急联系电话
+     */
+    @TableField("emergencyContactPhone")
+    private String emergencyContactPhone;
+    /**
+     * 紧急联系地址
+     */
+    @TableField("emergencyContactAddress")
+    private String emergencyContactAddress;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 是否是平台车辆(1=是,2=否)
+     */
+    @TableField("isPlatCar")
+    private Integer isPlatCar;
+    /**
+     * 司机管理车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 审核状态(1=待审核,2=正常,3=冻结,4=拒绝)
+     */
+    @TableField("authState")
+    private Integer authState;
+    /**
+     * 司机状态(1=离线,2=空闲,3=服务中)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加方式(1=司机注册 2=平台添加 3=分公司添加 4=加盟商添加)
+     * @return
+     */
+    @TableField("addType")
+    private Integer addType;
+    /**
+     * 账户余额
+     * @return
+     */
+    @TableField("balance")
+    private Double balance;
+    /**
+     * 活动总收入
+     * @return
+     */
+    @TableField("activityMoney")
+    private Double activityMoney;
+    /**
+     * 剩余未提现活动总收入
+     * @return
+     */
+    @TableField("laveActivityMoney")
+    private Double laveActivityMoney;
+    /**
+     * 业务总收入
+     * @return
+     */
+    @TableField("businessMoney")
+    private Double businessMoney;
+    /**
+     * 剩余未提现业务总收入
+     * @return
+     */
+    @TableField("laveBusinessMoney")
+    private Double laveBusinessMoney;
+    /**
+     * 小程序openid
+     */
+    @TableField("appletsOpenId")
+    private String appletsOpenId;
+    /**
+     * 柳州银行收款商户号
+     */
+    @TableField("mchtNo")
+    private String mchtNo;
+
+    @Override
+    public Integer getId() {
+        return id;
+    }
+
+    @Override
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAccount() {
+        return account;
+    }
+
+    public void setAccount(String account) {
+        this.account = account;
+    }
+
+    public String getJobNumber() {
+        return jobNumber;
+    }
+
+    public void setJobNumber(String jobNumber) {
+        this.jobNumber = jobNumber;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getSex() {
+        return sex;
+    }
+
+    public void setSex(Integer sex) {
+        this.sex = sex;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getHeadImgUrl() {
+        return headImgUrl;
+    }
+
+    public void setHeadImgUrl(String headImgUrl) {
+        this.headImgUrl = headImgUrl;
+    }
+
+    public String getFaceImgUrl() {
+        return faceImgUrl;
+    }
+
+    public void setFaceImgUrl(String faceImgUrl) {
+        this.faceImgUrl = faceImgUrl;
+    }
+
+    public String getIdCardImgUrl1() {
+        return idCardImgUrl1;
+    }
+
+    public void setIdCardImgUrl1(String idCardImgUrl1) {
+        this.idCardImgUrl1 = idCardImgUrl1;
+    }
+
+    public String getIdCardImgUrl2() {
+        return idCardImgUrl2;
+    }
+
+    public void setIdCardImgUrl2(String idCardImgUrl2) {
+        this.idCardImgUrl2 = idCardImgUrl2;
+    }
+
+    public String getPlaceOfEmployment() {
+        return placeOfEmployment;
+    }
+
+    public void setPlaceOfEmployment(String placeOfEmployment) {
+        this.placeOfEmployment = placeOfEmployment;
+    }
+
+    public Date getBirthday() {
+        return birthday;
+    }
+
+    public void setBirthday(Date birthday) {
+        this.birthday = birthday;
+    }
+
+    public String getBankCardNumber() {
+        return bankCardNumber;
+    }
+
+    public void setBankCardNumber(String bankCardNumber) {
+        this.bankCardNumber = bankCardNumber;
+    }
+
+    public String getDriverNationality() {
+        return driverNationality;
+    }
+
+    public void setDriverNationality(String driverNationality) {
+        this.driverNationality = driverNationality;
+    }
+
+    public String getDriverNation() {
+        return driverNation;
+    }
+
+    public void setDriverNation(String driverNation) {
+        this.driverNation = driverNation;
+    }
+
+    public Integer getDriverMaritalStatus() {
+        return driverMaritalStatus;
+    }
+
+    public void setDriverMaritalStatus(Integer driverMaritalStatus) {
+        this.driverMaritalStatus = driverMaritalStatus;
+    }
+
+    public String getDriverLanguageLevel() {
+        return driverLanguageLevel;
+    }
+
+    public void setDriverLanguageLevel(String driverLanguageLevel) {
+        this.driverLanguageLevel = driverLanguageLevel;
+    }
+
+    public String getDriverEducation() {
+        return driverEducation;
+    }
+
+    public void setDriverEducation(String driverEducation) {
+        this.driverEducation = driverEducation;
+    }
+
+    public String getDriverCensus() {
+        return driverCensus;
+    }
+
+    public void setDriverCensus(String driverCensus) {
+        this.driverCensus = driverCensus;
+    }
+
+    public String getDriverAddress() {
+        return driverAddress;
+    }
+
+    public void setDriverAddress(String driverAddress) {
+        this.driverAddress = driverAddress;
+    }
+
+    public String getDriverContactAddress() {
+        return driverContactAddress;
+    }
+
+    public void setDriverContactAddress(String driverContactAddress) {
+        this.driverContactAddress = driverContactAddress;
+    }
+
+    public Integer getDriverAge() {
+        return driverAge;
+    }
+
+    public void setDriverAge(Integer driverAge) {
+        this.driverAge = driverAge;
+    }
+
+    public String getDriveCard() {
+        return driveCard;
+    }
+
+    public void setDriveCard(String driveCard) {
+        this.driveCard = driveCard;
+    }
+
+    public String getDriveCardImgUrl() {
+        return driveCardImgUrl;
+    }
+
+    public void setDriveCardImgUrl(String driveCardImgUrl) {
+        this.driveCardImgUrl = driveCardImgUrl;
+    }
+
+    public String getDriverType() {
+        return driverType;
+    }
+
+    public void setDriverType(String driverType) {
+        this.driverType = driverType;
+    }
+
+    public Date getGetDriverLicenseDate() {
+        return getDriverLicenseDate;
+    }
+
+    public void setGetDriverLicenseDate(Date getDriverLicenseDate) {
+        this.getDriverLicenseDate = getDriverLicenseDate;
+    }
+
+    public Date getDriverLicenseOn() {
+        return driverLicenseOn;
+    }
+
+    public void setDriverLicenseOn(Date driverLicenseOn) {
+        this.driverLicenseOn = driverLicenseOn;
+    }
+
+    public Date getDriverLicenseOff() {
+        return driverLicenseOff;
+    }
+
+    public void setDriverLicenseOff(Date driverLicenseOff) {
+        this.driverLicenseOff = driverLicenseOff;
+    }
+
+    public Integer getTaxiDriver() {
+        return taxiDriver;
+    }
+
+    public void setTaxiDriver(Integer taxiDriver) {
+        this.taxiDriver = taxiDriver;
+    }
+
+    public String getTaxiAptitudeCard() {
+        return taxiAptitudeCard;
+    }
+
+    public void setTaxiAptitudeCard(String taxiAptitudeCard) {
+        this.taxiAptitudeCard = taxiAptitudeCard;
+    }
+
+    public String getNetworkCarlssueOrganization() {
+        return networkCarlssueOrganization;
+    }
+
+    public void setNetworkCarlssueOrganization(String networkCarlssueOrganization) {
+        this.networkCarlssueOrganization = networkCarlssueOrganization;
+    }
+
+    public Date getNetworkCarlssueDate() {
+        return networkCarlssueDate;
+    }
+
+    public void setNetworkCarlssueDate(Date networkCarlssueDate) {
+        this.networkCarlssueDate = networkCarlssueDate;
+    }
+
+    public Date getGetNetworkCarProofDate() {
+        return getNetworkCarProofDate;
+    }
+
+    public void setGetNetworkCarProofDate(Date getNetworkCarProofDate) {
+        this.getNetworkCarProofDate = getNetworkCarProofDate;
+    }
+
+    public Date getNetworkCarProofOn() {
+        return networkCarProofOn;
+    }
+
+    public void setNetworkCarProofOn(Date networkCarProofOn) {
+        this.networkCarProofOn = networkCarProofOn;
+    }
+
+    public Date getNetworkCarProofOff() {
+        return networkCarProofOff;
+    }
+
+    public void setNetworkCarProofOff(Date networkCarProofOff) {
+        this.networkCarProofOff = networkCarProofOff;
+    }
+
+    public Date getRegisterDate() {
+        return registerDate;
+    }
+
+    public void setRegisterDate(Date registerDate) {
+        this.registerDate = registerDate;
+    }
+
+    public Integer getFullTimeDriver() {
+        return fullTimeDriver;
+    }
+
+    public void setFullTimeDriver(Integer fullTimeDriver) {
+        this.fullTimeDriver = fullTimeDriver;
+    }
+
+    public Integer getInDriverBlacklist() {
+        return inDriverBlacklist;
+    }
+
+    public void setInDriverBlacklist(Integer inDriverBlacklist) {
+        this.inDriverBlacklist = inDriverBlacklist;
+    }
+
+    public Integer getCommercialType() {
+        return commercialType;
+    }
+
+    public void setCommercialType(Integer commercialType) {
+        this.commercialType = commercialType;
+    }
+
+    public String getContractCompany() {
+        return contractCompany;
+    }
+
+    public void setContractCompany(String contractCompany) {
+        this.contractCompany = contractCompany;
+    }
+
+    public Date getContractOn() {
+        return contractOn;
+    }
+
+    public void setContractOn(Date contractOn) {
+        this.contractOn = contractOn;
+    }
+
+    public Date getContractOff() {
+        return contractOff;
+    }
+
+    public void setContractOff(Date contractOff) {
+        this.contractOff = contractOff;
+    }
+
+    public String getEmergencyContact() {
+        return emergencyContact;
+    }
+
+    public void setEmergencyContact(String emergencyContact) {
+        this.emergencyContact = emergencyContact;
+    }
+
+    public String getEmergencyContactPhone() {
+        return emergencyContactPhone;
+    }
+
+    public void setEmergencyContactPhone(String emergencyContactPhone) {
+        this.emergencyContactPhone = emergencyContactPhone;
+    }
+
+    public String getEmergencyContactAddress() {
+        return emergencyContactAddress;
+    }
+
+    public void setEmergencyContactAddress(String emergencyContactAddress) {
+        this.emergencyContactAddress = emergencyContactAddress;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getIsPlatCar() {
+        return isPlatCar;
+    }
+
+    public void setIsPlatCar(Integer isPlatCar) {
+        this.isPlatCar = isPlatCar;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public Integer getAuthState() {
+        return authState;
+    }
+
+    public void setAuthState(Integer authState) {
+        this.authState = authState;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getNetworkCarlssueImg() {
+        return networkCarlssueImg;
+    }
+
+    public void setNetworkCarlssueImg(String networkCarlssueImg) {
+        this.networkCarlssueImg = networkCarlssueImg;
+    }
+
+    public Integer getAddType() {
+        return addType;
+    }
+
+    public void setAddType(Integer addType) {
+        this.addType = addType;
+    }
+
+    public Double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(Double balance) {
+        this.balance = balance;
+    }
+
+    public Double getActivityMoney() {
+        return activityMoney;
+    }
+
+    public void setActivityMoney(Double activityMoney) {
+        this.activityMoney = activityMoney;
+    }
+
+    public Double getLaveActivityMoney() {
+        return laveActivityMoney;
+    }
+
+    public void setLaveActivityMoney(Double laveActivityMoney) {
+        this.laveActivityMoney = laveActivityMoney;
+    }
+
+    public Double getBusinessMoney() {
+        return businessMoney;
+    }
+
+    public void setBusinessMoney(Double businessMoney) {
+        this.businessMoney = businessMoney;
+    }
+
+    public Double getLaveBusinessMoney() {
+        return laveBusinessMoney;
+    }
+
+    public void setLaveBusinessMoney(Double laveBusinessMoney) {
+        this.laveBusinessMoney = laveBusinessMoney;
+    }
+
+    public Integer getFranchiseeId() {
+        return franchiseeId;
+    }
+
+    public void setFranchiseeId(Integer franchiseeId) {
+        this.franchiseeId = franchiseeId;
+    }
+
+    public String getAppletsOpenId() {
+        return appletsOpenId;
+    }
+
+    public void setAppletsOpenId(String appletsOpenId) {
+        this.appletsOpenId = appletsOpenId;
+    }
+
+    public String getMchtNo() {
+        return mchtNo;
+    }
+
+    public void setMchtNo(String mchtNo) {
+        this.mchtNo = mchtNo;
+    }
+
+    @Override
+    public String toString() {
+        return "Driver{" +
+                "account='" + account + '\'' +
+                ", jobNumber='" + jobNumber + '\'' +
+                ", phone='" + phone + '\'' +
+                ", password='" + password + '\'' +
+                ", name='" + name + '\'' +
+                ", sex=" + sex +
+                ", idCard='" + idCard + '\'' +
+                ", companyId=" + companyId +
+                ", franchiseeId=" + franchiseeId +
+                ", headImgUrl='" + headImgUrl + '\'' +
+                ", faceImgUrl='" + faceImgUrl + '\'' +
+                ", idCardImgUrl1='" + idCardImgUrl1 + '\'' +
+                ", idCardImgUrl2='" + idCardImgUrl2 + '\'' +
+                ", placeOfEmployment='" + placeOfEmployment + '\'' +
+                ", birthday=" + birthday +
+                ", bankCardNumber='" + bankCardNumber + '\'' +
+                ", driverNationality='" + driverNationality + '\'' +
+                ", driverNation='" + driverNation + '\'' +
+                ", driverMaritalStatus=" + driverMaritalStatus +
+                ", driverLanguageLevel='" + driverLanguageLevel + '\'' +
+                ", driverEducation='" + driverEducation + '\'' +
+                ", driverCensus='" + driverCensus + '\'' +
+                ", driverAddress='" + driverAddress + '\'' +
+                ", driverContactAddress='" + driverContactAddress + '\'' +
+                ", driverAge=" + driverAge +
+                ", driveCard='" + driveCard + '\'' +
+                ", driveCardImgUrl='" + driveCardImgUrl + '\'' +
+                ", driverType='" + driverType + '\'' +
+                ", getDriverLicenseDate=" + getDriverLicenseDate +
+                ", driverLicenseOn=" + driverLicenseOn +
+                ", driverLicenseOff=" + driverLicenseOff +
+                ", taxiDriver=" + taxiDriver +
+                ", taxiAptitudeCard='" + taxiAptitudeCard + '\'' +
+                ", networkCarlssueImg='" + networkCarlssueImg + '\'' +
+                ", networkCarlssueOrganization='" + networkCarlssueOrganization + '\'' +
+                ", networkCarlssueDate=" + networkCarlssueDate +
+                ", getNetworkCarProofDate=" + getNetworkCarProofDate +
+                ", networkCarProofOn=" + networkCarProofOn +
+                ", networkCarProofOff=" + networkCarProofOff +
+                ", registerDate=" + registerDate +
+                ", fullTimeDriver=" + fullTimeDriver +
+                ", inDriverBlacklist=" + inDriverBlacklist +
+                ", commercialType=" + commercialType +
+                ", contractCompany='" + contractCompany + '\'' +
+                ", contractOn=" + contractOn +
+                ", contractOff=" + contractOff +
+                ", emergencyContact='" + emergencyContact + '\'' +
+                ", emergencyContactPhone='" + emergencyContactPhone + '\'' +
+                ", emergencyContactAddress='" + emergencyContactAddress + '\'' +
+                ", remark='" + remark + '\'' +
+                ", isPlatCar=" + isPlatCar +
+                ", carId=" + carId +
+                ", authState=" + authState +
+                ", state=" + state +
+                ", addType=" + addType +
+                ", balance=" + balance +
+                ", activityMoney=" + activityMoney +
+                ", laveActivityMoney=" + laveActivityMoney +
+                ", businessMoney=" + businessMoney +
+                ", laveBusinessMoney=" + laveBusinessMoney +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityHistory.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityHistory.java
new file mode 100644
index 0000000..5af1722
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityHistory.java
@@ -0,0 +1,145 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 司机每天活动数量
+ */
+@TableName("t_driver_activity_history")
+public class DriverActivityHistory {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 活动日期
+     */
+    @TableField("day")
+    private Date day;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 活动类型(1=邀请司机注册,2=邀请用户注册,3=累计在线,4=订单量)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 活动id
+     */
+    @TableField("activityId")
+    private Integer activityId;
+    /**
+     * 是否完成(1=否,2=完成)
+     */
+    @TableField("carryOut")
+    private Integer carryOut;
+    /**
+     * 奖励金额
+     */
+    @TableField("money")
+    private Double money;
+    //领取时间
+    @TableField("collectionTime")
+    private Date collectionTime;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Date getDay() {
+        return day;
+    }
+
+    public void setDay(Date day) {
+        this.day = day;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getCarryOut() {
+        return carryOut;
+    }
+
+    public void setCarryOut(Integer carryOut) {
+        this.carryOut = carryOut;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Date getCollectionTime() {
+        return collectionTime;
+    }
+
+    public void setCollectionTime(Date collectionTime) {
+        this.collectionTime = collectionTime;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "DriverActivityHistory{" +
+                "id=" + id +
+                ", day=" + day +
+                ", driverId=" + driverId +
+                ", type=" + type +
+                ", activityId=" + activityId +
+                ", carryOut=" + carryOut +
+                ", money=" + money +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityRegistered.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityRegistered.java
new file mode 100644
index 0000000..20ed172
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverActivityRegistered.java
@@ -0,0 +1,134 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 司机注册活动相关
+ */
+@TableName("t_driver_activity_registered")
+public class DriverActivityRegistered {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 司机活动主表id
+     */
+    @TableField("driverActivityId")
+    private Integer driverActivityId;
+    /**
+     * 类型(1=邀请司机注册奖励,2=邀请用户注册奖励)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 奖励金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 开始时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getDriverActivityId() {
+        return driverActivityId;
+    }
+
+    public void setDriverActivityId(Integer driverActivityId) {
+        this.driverActivityId = driverActivityId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    @Override
+    public String toString() {
+        return "DriverActivityRegistered{" +
+                "id=" + id +
+                ", companyId=" + companyId +
+                ", driverActivityId=" + driverActivityId +
+                ", type=" + type +
+                ", money=" + money +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverOrders.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverOrders.java
new file mode 100644
index 0000000..be80997
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverOrders.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 司机接单设置
+ */
+@TableName("t_driver_orders")
+public class DriverOrders {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 允许接单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     */
+    @TableField("type")
+    private Integer type;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    @Override
+    public String toString() {
+        return "DriverOrders{" +
+                "id=" + id +
+                ", driverId=" + driverId +
+                ", type=" + type +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverService.java
new file mode 100644
index 0000000..7c58371
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverService.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 司机可经营的业务类型
+ */
+@TableName("t_driver_service")
+public class DriverService {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     */
+    @TableField("type")
+    private Integer type;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    @Override
+    public String toString() {
+        return "DriverService{" +
+                "id=" + id +
+                ", driverId=" + driverId +
+                ", type=" + type +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java
new file mode 100644
index 0000000..49bd976
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java
@@ -0,0 +1,105 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.sql.Date;
+
+/**
+ * 司机上下班记录
+ */
+@TableName("t_driver_work")
+public class DriverWork {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 上班时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 下班时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     */
+    @TableField("type")
+    private String type;
+    /**
+     * 上下班状态(1=上班,2=下班)
+     */
+    @TableField("state")
+    private Integer state;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "DriverWork{" +
+                "id=" + id +
+                ", driverId=" + driverId +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                ", type=" + type +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Expense.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Expense.java
new file mode 100644
index 0000000..3a5b05e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Expense.java
@@ -0,0 +1,123 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 报销表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-12-05
+ */
+@TableName("sys_expense")
+public class Expense extends Model<Expense> {
+
+    private static final long serialVersionUID = 1L;
+
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 报销金额
+     */
+	private BigDecimal money;
+    /**
+     * 描述
+     */
+	private String desc;
+	private Date createtime;
+    /**
+     * 状态: 1.待提交  2:待审核   3.审核通过
+     */
+	private Integer state;
+    /**
+     * 用户id
+     */
+	private Integer userid;
+    /**
+     * 流程定义id
+     */
+	private String processId;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public BigDecimal getMoney() {
+		return money;
+	}
+
+	public void setMoney(BigDecimal money) {
+		this.money = money;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+	public void setDesc(String desc) {
+		this.desc = desc;
+	}
+
+	public Date getCreatetime() {
+		return createtime;
+	}
+
+	public void setCreatetime(Date createtime) {
+		this.createtime = createtime;
+	}
+
+	public Integer getState() {
+		return state;
+	}
+
+	public void setState(Integer state) {
+		this.state = state;
+	}
+
+	public Integer getUserid() {
+		return userid;
+	}
+
+	public void setUserid(Integer userid) {
+		this.userid = userid;
+	}
+
+	public String getProcessId() {
+		return processId;
+	}
+
+	public void setProcessId(String processId) {
+		this.processId = processId;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "Expense{" +
+			"id=" + id +
+			", money=" + money +
+			", desc=" + desc +
+			", createtime=" + createtime +
+			", state=" + state +
+			", userid=" + userid +
+			", processId=" + processId +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Feedback.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Feedback.java
new file mode 100644
index 0000000..d490b7f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Feedback.java
@@ -0,0 +1,176 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 反馈
+ */
+@TableName("t_feedback")
+public class Feedback {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 反馈人id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 处理人id
+     */
+    @TableField("handleUserId")
+    private Integer handleUserId;
+    /**
+     * 反馈内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 反馈时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 图片地址
+     */
+    @TableField("imgUrl")
+    private String imgUrl;
+    /**
+     * 状态(1=正常,2=删除)
+     */
+    @TableField("flag")
+    private Integer flag;
+    /**
+     * 处理状态(1=未处理,2=已处理)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 处理时间
+     */
+    @TableField("cldate")
+    private Date cldate;
+    /**
+     * 处理备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 1=用户,2=司机
+     */
+    @TableField("type")
+    private Integer type;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getHandleUserId() {
+        return handleUserId;
+    }
+
+    public void setHandleUserId(Integer handleUserId) {
+        this.handleUserId = handleUserId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getCldate() {
+        return cldate;
+    }
+
+    public void setCldate(Date cldate) {
+        this.cldate = cldate;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    @Override
+    public String toString() {
+        return "Feedback{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", handleUserId=" + handleUserId +
+                ", content='" + content + '\'' +
+                ", insertTime=" + insertTime +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", flag=" + flag +
+                ", state=" + state +
+                ", cldate=" + cldate +
+                ", remark='" + remark + '\'' +
+                ", type=" + type +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/GDInterface.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/GDInterface.java
new file mode 100644
index 0000000..123a6a7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/GDInterface.java
@@ -0,0 +1,93 @@
+package com.stylefeng.guns.modular.system.model;
+
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 高德接口统计
+ */
+@TableName("t_gdinterface")
+public class GDInterface {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 接口名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 接口说明
+     */
+    @TableField("explanation")
+    private String explanation;
+    /**
+     * 调用次数
+     */
+    @TableField("num")
+    private Integer num;
+    /**
+     * 调用日期
+     */
+    @TableField("time")
+    private String time;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getExplanation() {
+        return explanation;
+    }
+
+    public void setExplanation(String explanation) {
+        this.explanation = explanation;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    @Override
+    public String toString() {
+        return "GDInterface{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", explanation='" + explanation + '\'' +
+                ", num=" + num +
+                ", time=" + time +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Income.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Income.java
new file mode 100644
index 0000000..cae5522
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Income.java
@@ -0,0 +1,134 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 收入明细
+ */
+@TableName("t_income")
+public class Income {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 收入方类型(1=公司,2=司机)
+     */
+    @TableField("userType")
+    private Integer userType;
+    /**
+     * 收入对象id
+     */
+    @TableField("objectId")
+    private Integer objectId;
+    /**
+     * 收入类型(1=活动,2=业务)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 收入类型id
+     */
+    @TableField("incomeId")
+    private Integer incomeId;
+    /**
+     * 订单类型
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 收入金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Integer getObjectId() {
+        return objectId;
+    }
+
+    public void setObjectId(Integer objectId) {
+        this.objectId = objectId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getIncomeId() {
+        return incomeId;
+    }
+
+    public void setIncomeId(Integer incomeId) {
+        this.incomeId = incomeId;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    @Override
+    public String toString() {
+        return "Income{" +
+                "id=" + id +
+                ", userType=" + userType +
+                ", objectId=" + objectId +
+                ", type=" + type +
+                ", incomeId=" + incomeId +
+                ", orderType=" + orderType +
+                ", money=" + money +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralGoods.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralGoods.java
new file mode 100644
index 0000000..209e139
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralGoods.java
@@ -0,0 +1,148 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 积分兑换商品
+ */
+@TableName("t_integral_goods")
+public class IntegralGoods {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 商品名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 商品图片
+     */
+    @TableField("imgUrl")
+    private String imgUrl;
+    /**
+     * 兑换积分
+     */
+    @TableField("integral")
+    private Integer integral;
+    /**
+     * 商品说明
+     */
+    @TableField("instructions")
+    private String instructions;
+    /**
+     * 状态(1=正常,2=下架,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加用户id
+     */
+    @TableField("insertUserId")
+    private Integer insertUserId;
+    /**
+     * 添加用户角色
+     */
+    @TableField("insertUserRole")
+    private Integer insertUserRole;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    public String getInstructions() {
+        return instructions;
+    }
+
+    public void setInstructions(String instructions) {
+        this.instructions = instructions;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getInsertUserId() {
+        return insertUserId;
+    }
+
+    public void setInsertUserId(Integer insertUserId) {
+        this.insertUserId = insertUserId;
+    }
+
+    public Integer getInsertUserRole() {
+        return insertUserRole;
+    }
+
+    public void setInsertUserRole(Integer insertUserRole) {
+        this.insertUserRole = insertUserRole;
+    }
+
+    @Override
+    public String toString() {
+        return "IntegralGoods{" +
+                "id=" + id +
+                ", insertTime=" + insertTime +
+                ", name='" + name + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", integral=" + integral +
+                ", instructions='" + instructions + '\'' +
+                ", state=" + state +
+                ", insertUserId=" + insertUserId +
+                ", insertUserRole=" + insertUserRole +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralOrder.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralOrder.java
new file mode 100644
index 0000000..a007827
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/IntegralOrder.java
@@ -0,0 +1,175 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 积分兑换订单
+ */
+@TableName("t_integral_order")
+public class IntegralOrder {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 兑换时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 兑换用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 兑换商品id
+     */
+    @TableField("goodsId")
+    private Integer goodsId;
+    /**
+     * 兑换积分
+     */
+    @TableField("integral")
+    private Integer integral;
+    /**
+     * 兑换数量
+     */
+    @TableField("num")
+    private Integer num;
+    /**
+     * 收货人
+     */
+    @TableField("consigneeName")
+    private String consigneeName;
+    /**
+     * 收件人电话
+     */
+    @TableField("consigneePhone")
+    private String consigneePhone;
+    /**
+     * 收货地址
+     */
+    @TableField("consigneeAddress")
+    private String consigneeAddress;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 状态(1=未处理,2=已处理,3=已删除)
+     */
+    @TableField("state")
+    private Integer state;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getConsigneeName() {
+        return consigneeName;
+    }
+
+    public void setConsigneeName(String consigneeName) {
+        this.consigneeName = consigneeName;
+    }
+
+    public String getConsigneePhone() {
+        return consigneePhone;
+    }
+
+    public void setConsigneePhone(String consigneePhone) {
+        this.consigneePhone = consigneePhone;
+    }
+
+    public String getConsigneeAddress() {
+        return consigneeAddress;
+    }
+
+    public void setConsigneeAddress(String consigneeAddress) {
+        this.consigneeAddress = consigneeAddress;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "IntegralOrder{" +
+                "id=" + id +
+                ", insertTime=" + insertTime +
+                ", userId=" + userId +
+                ", goodsId=" + goodsId +
+                ", num=" + num +
+                ", consigneeName='" + consigneeName + '\'' +
+                ", consigneePhone='" + consigneePhone + '\'' +
+                ", consigneeAddress='" + consigneeAddress + '\'' +
+                ", remark='" + remark + '\'' +
+                ", state=" + state +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java
new file mode 100644
index 0000000..e1a689b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invoice.java
@@ -0,0 +1,218 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 发票
+ */
+@TableName("t_invoice")
+public class Invoice {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 开票金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 开票订单数量
+     */
+    @TableField("orderNum")
+    private Integer orderNum;
+    /**
+     * 开票类型(1=个人发票,2=单位发票)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 抬头名称(公司名字/个人姓名)
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 税号
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 发票内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 地址+电话
+     */
+    @TableField("address")
+    private String address;
+    /**
+     * 开户行+账号
+     */
+    @TableField("bank")
+    private String bank;
+    /**
+     * 邮箱地址
+     */
+    @TableField("email")
+    private String email;
+    /**
+     * 开票用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 状态(1=待开,2=成功,3=失败)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 申请时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(Integer orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Invoice{" +
+                "id=" + id +
+                ", money=" + money +
+                ", orderNum=" + orderNum +
+                ", type=" + type +
+                ", name='" + name + '\'' +
+                ", code='" + code + '\'' +
+                ", content='" + content + '\'' +
+                ", remark='" + remark + '\'' +
+                ", address='" + address + '\'' +
+                ", bank='" + bank + '\'' +
+                ", email='" + email + '\'' +
+                ", userId=" + userId +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/LoginLog.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/LoginLog.java
new file mode 100644
index 0000000..10135f8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/LoginLog.java
@@ -0,0 +1,128 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 登录记录
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_login_log")
+public class LoginLog extends Model<LoginLog> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 日志名称
+     */
+	private String logname;
+    /**
+     * 管理员id
+     */
+	private Integer userid;
+    /**
+     * 创建时间
+     */
+	private Date createtime;
+    /**
+     * 是否执行成功
+     */
+	private String succeed;
+    /**
+     * 具体消息
+     */
+	private String message;
+    /**
+     * 登录ip
+     */
+	private String ip;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public String getLogname() {
+		return logname;
+	}
+
+	public void setLogname(String logname) {
+		this.logname = logname;
+	}
+
+	public Integer getUserid() {
+		return userid;
+	}
+
+	public void setUserid(Integer userid) {
+		this.userid = userid;
+	}
+
+	public Date getCreatetime() {
+		return createtime;
+	}
+
+	public void setCreatetime(Date createtime) {
+		this.createtime = createtime;
+	}
+
+	public String getSucceed() {
+		return succeed;
+	}
+
+	public void setSucceed(String succeed) {
+		this.succeed = succeed;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	public String getIp() {
+		return ip;
+	}
+
+	public void setIp(String ip) {
+		this.ip = ip;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "LoginLog{" +
+			"id=" + id +
+			", logname=" + logname +
+			", userid=" + userid +
+			", createtime=" + createtime +
+			", succeed=" + succeed +
+			", message=" + message +
+			", ip=" + ip +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Menu.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Menu.java
new file mode 100644
index 0000000..6df6215
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Menu.java
@@ -0,0 +1,208 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import org.hibernate.validator.constraints.NotBlank;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 菜单表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_menu")
+public class Menu extends Model<Menu> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    /**
+     * 菜单编号
+     */
+    private String code;
+    /**
+     * 菜单父编号
+     */
+    private String pcode;
+    /**
+     * 当前菜单的所有父菜单编号
+     */
+    private String pcodes;
+    /**
+     * 菜单名称
+     */
+    @NotBlank
+    private String name;
+    /**
+     * 菜单图标
+     */
+    private String icon;
+    /**
+     * url地址
+     */
+    @NotBlank
+    private String url;
+    /**
+     * 菜单排序号
+     */
+    private Integer num;
+    /**
+     * 菜单层级
+     */
+    private Integer levels;
+    /**
+     * 是否是菜单(1:是  0:不是)
+     */
+    private Integer ismenu;
+    /**
+     * 备注
+     */
+    private String tips;
+    /**
+     * 菜单状态 :  1:启用   0:不启用
+     */
+    private Integer status;
+    /**
+     * 是否打开:    1:打开   0:不打开
+     */
+    private Integer isopen;
+
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getPcode() {
+        return pcode;
+    }
+
+    public void setPcode(String pcode) {
+        this.pcode = pcode;
+    }
+
+    public String getPcodes() {
+        return pcodes;
+    }
+
+    public void setPcodes(String pcodes) {
+        this.pcodes = pcodes;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIcon() {
+        return icon;
+    }
+
+    public void setIcon(String icon) {
+        this.icon = icon;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public Integer getLevels() {
+        return levels;
+    }
+
+    public void setLevels(Integer levels) {
+        this.levels = levels;
+    }
+
+    public Integer getIsmenu() {
+        return ismenu;
+    }
+
+    public void setIsmenu(Integer ismenu) {
+        this.ismenu = ismenu;
+    }
+
+    public String getTips() {
+        return tips;
+    }
+
+    public void setTips(String tips) {
+        this.tips = tips;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Integer getIsopen() {
+        return isopen;
+    }
+
+    public void setIsopen(Integer isopen) {
+        this.isopen = isopen;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "Menu{" +
+                "id=" + id +
+                ", code=" + code +
+                ", pcode=" + pcode +
+                ", pcodes=" + pcodes +
+                ", name=" + name +
+                ", icon=" + icon +
+                ", url=" + url +
+                ", num=" + num +
+                ", levels=" + levels +
+                ", ismenu=" + ismenu +
+                ", tips=" + tips +
+                ", status=" + status +
+                ", isopen=" + isopen +
+                "}";
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Notice.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Notice.java
new file mode 100644
index 0000000..6967223
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Notice.java
@@ -0,0 +1,115 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 通知表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_notice")
+public class Notice extends Model<Notice> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 标题
+     */
+	private String title;
+    /**
+     * 类型
+     */
+	private Integer type;
+    /**
+     * 内容
+     */
+	private String content;
+    /**
+     * 创建时间
+     */
+	private Date createtime;
+    /**
+     * 创建人
+     */
+	private Integer creater;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public String getTitle() {
+		return title;
+	}
+
+	public void setTitle(String title) {
+		this.title = title;
+	}
+
+	public Integer getType() {
+		return type;
+	}
+
+	public void setType(Integer type) {
+		this.type = type;
+	}
+
+	public String getContent() {
+		return content;
+	}
+
+	public void setContent(String content) {
+		this.content = content;
+	}
+
+	public Date getCreatetime() {
+		return createtime;
+	}
+
+	public void setCreatetime(Date createtime) {
+		this.createtime = createtime;
+	}
+
+	public Integer getCreater() {
+		return creater;
+	}
+
+	public void setCreater(Integer creater) {
+		this.creater = creater;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "Notice{" +
+			"id=" + id +
+			", title=" + title +
+			", type=" + type +
+			", content=" + content +
+			", createtime=" + createtime +
+			", creater=" + creater +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OfflineTravelPayment.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OfflineTravelPayment.java
new file mode 100644
index 0000000..db5a87b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OfflineTravelPayment.java
@@ -0,0 +1,136 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+* 线下出行支付记录
+* @author pzb
+* @Date 2022/11/30 9:00
+*/
+@TableName("t_offline_travel_payment")
+public class OfflineTravelPayment {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 下单唯一标识
+     */
+    @TableField("orderId")
+    private String orderId;
+    /**
+     * 支付方式(1=微信,2=支付宝)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    /**
+     * 支付时间
+     */
+    @TableField("payTime")
+    private Date payTime;
+    /**
+     * 支付流水号
+     */
+    @TableField("payNumber")
+    private String payNumber;
+    /**
+     * 服务司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 状态(1=待支付,2=已支付)
+     */
+    @TableField("status")
+    private Integer status;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(String orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Date getPayTime() {
+        return payTime;
+    }
+
+    public void setPayTime(Date payTime) {
+        this.payTime = payTime;
+    }
+
+    public String getPayNumber() {
+        return payNumber;
+    }
+
+    public void setPayNumber(String payNumber) {
+        this.payNumber = payNumber;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCity.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCity.java
new file mode 100644
index 0000000..0cf1845
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCity.java
@@ -0,0 +1,115 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+/**
+ * 开通城市
+ */
+@TableName("t_open_city")
+public class OpenCity extends BaseBean {
+    /**
+     * 城市编号(行政编号)
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 经度
+     */
+    @TableField("lon")
+    private Double lon;
+    /**
+     * 纬度
+     */
+    @TableField("lat")
+    private Double lat;
+    /**
+     * 是否需要网约车资格(1:是,2:否)
+     */
+    @TableField("isQualifications")
+    private Integer isQualifications;
+    /**
+     * 省名称
+     */
+    @TableField("areaName")
+    private String areaName;
+    /**
+     * 市名称
+     */
+    @TableField("cityName")
+    private String cityName;
+    /**
+     * 区县名称
+     */
+    @TableField("provinceName")
+    private String provinceName;
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Integer getIsQualifications() {
+        return isQualifications;
+    }
+
+    public void setIsQualifications(Integer isQualifications) {
+        this.isQualifications = isQualifications;
+    }
+
+    public String getAreaName() {
+        return areaName;
+    }
+
+    public void setAreaName(String areaName) {
+        this.areaName = areaName;
+    }
+
+    public String getCityName() {
+        return cityName;
+    }
+
+    public void setCityName(String cityName) {
+        this.cityName = cityName;
+    }
+
+    public String getProvinceName() {
+        return provinceName;
+    }
+
+    public void setProvinceName(String provinceName) {
+        this.provinceName = provinceName;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    @Override
+    public String toString() {
+        return "OpenCity{" +
+                "code='" + code + '\'' +
+                ", lon=" + lon +
+                ", lat=" + lat +
+                ", isQualifications=" + isQualifications +
+                ", areaName='" + areaName + '\'' +
+                ", cityName='" + cityName + '\'' +
+                ", provinceName='" + provinceName + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCityBusiness.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCityBusiness.java
new file mode 100644
index 0000000..c6a92d0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OpenCityBusiness.java
@@ -0,0 +1,45 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+/**
+ * 开通城市业务类型
+ */
+@TableName("t_open_city_business")
+public class OpenCityBusiness extends BaseBean {
+    /**
+     * 业务类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流,6=包车)
+     */
+    @TableField("businessType")
+    private Integer businessType;
+    /**
+     * 排序
+     */
+    @TableField("sort")
+    private Integer sort;
+
+    public Integer getBusinessType() {
+        return businessType;
+    }
+
+    public void setBusinessType(Integer businessType) {
+        this.businessType = businessType;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    @Override
+    public String toString() {
+        return "OpenCityBusiness{" +
+                "businessType=" + businessType +
+                ", sort=" + sort +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OperationLog.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OperationLog.java
new file mode 100644
index 0000000..7851475
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OperationLog.java
@@ -0,0 +1,154 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 操作日志
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_operation_log")
+public class OperationLog extends Model<OperationLog> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 日志类型
+     */
+	private String logtype;
+    /**
+     * 日志名称
+     */
+	private String logname;
+    /**
+     * 用户id
+     */
+	private Integer userid;
+    /**
+     * 类名称
+     */
+	private String classname;
+    /**
+     * 方法名称
+     */
+	private String method;
+    /**
+     * 创建时间
+     */
+	private Date createtime;
+    /**
+     * 是否成功
+     */
+	private String succeed;
+    /**
+     * 备注
+     */
+	private String message;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public String getLogtype() {
+		return logtype;
+	}
+
+	public void setLogtype(String logtype) {
+		this.logtype = logtype;
+	}
+
+	public String getLogname() {
+		return logname;
+	}
+
+	public void setLogname(String logname) {
+		this.logname = logname;
+	}
+
+	public Integer getUserid() {
+		return userid;
+	}
+
+	public void setUserid(Integer userid) {
+		this.userid = userid;
+	}
+
+	public String getClassname() {
+		return classname;
+	}
+
+	public void setClassname(String classname) {
+		this.classname = classname;
+	}
+
+	public String getMethod() {
+		return method;
+	}
+
+	public void setMethod(String method) {
+		this.method = method;
+	}
+
+	public Date getCreatetime() {
+		return createtime;
+	}
+
+	public void setCreatetime(Date createtime) {
+		this.createtime = createtime;
+	}
+
+	public String getSucceed() {
+		return succeed;
+	}
+
+	public void setSucceed(String succeed) {
+		this.succeed = succeed;
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "OperationLog{" +
+			"id=" + id +
+			", logtype=" + logtype +
+			", logname=" + logname +
+			", userid=" + userid +
+			", classname=" + classname +
+			", method=" + method +
+			", createtime=" + createtime +
+			", succeed=" + succeed +
+			", message=" + message +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderCancel.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderCancel.java
new file mode 100644
index 0000000..84a7594
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderCancel.java
@@ -0,0 +1,178 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 取消订单
+ */
+@TableName("t_order_cancel")
+public class OrderCancel {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单id
+     */
+    @TableField("orderId")
+    private Integer orderId;
+    /**
+     * 订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 取消原因
+     */
+    @TableField("reason")
+    private String reason;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=余额)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 状态(1=临时,2=正式)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     * @return
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 取消人员类型(1=用户,2=后台)
+     * @return
+     */
+    @TableField("userType")
+    private Integer userType;
+    /**
+     * 取消人id
+     * @return
+     */
+    @TableField("userId")
+    private Integer userId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderCancel{" +
+                "id=" + id +
+                ", orderId=" + orderId +
+                ", orderType=" + orderType +
+                ", reason='" + reason + '\'' +
+                ", remark='" + remark + '\'' +
+                ", payType=" + payType +
+                ", money=" + money +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", userType=" + userType +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderEvaluate.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderEvaluate.java
new file mode 100644
index 0000000..5b25f94
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderEvaluate.java
@@ -0,0 +1,136 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 订单评价
+ */
+@TableName("t_order_evaluate")
+public class OrderEvaluate {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单id
+     */
+    @TableField("orderId")
+    private Integer orderId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流,6=包车)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 评分
+     */
+    @TableField("fraction")
+    private Integer fraction;
+    /**
+     * 评价内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 评价时间
+     * @return
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 评价用户id
+     * @return
+     */
+    @TableField("userId")
+    private Integer userId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getFraction() {
+        return fraction;
+    }
+
+    public void setFraction(Integer fraction) {
+        this.fraction = fraction;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderEvaluate{" +
+                "id=" + id +
+                ", orderId=" + orderId +
+                ", driverId=" + driverId +
+                ", orderType=" + orderType +
+                ", fraction=" + fraction +
+                ", content='" + content + '\'' +
+                ", insertTime=" + insertTime +
+                ", userId=" + userId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderPosition.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderPosition.java
new file mode 100644
index 0000000..c29382f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/OrderPosition.java
@@ -0,0 +1,148 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 订单轨迹
+ */
+@TableName("t_order_position")
+public class OrderPosition {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单类型
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 订单id
+     */
+    @TableField("orderId")
+    private Integer orderId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 经度
+     */
+    @TableField("lon")
+    private String lon;
+    /**
+     * 纬度
+     */
+    @TableField("lat")
+    private String lat;
+    /**
+     * 方向角
+     */
+    @TableField("directionAngle")
+    private String directionAngle;
+    /**
+     * 海拔
+     */
+    @TableField("altitude")
+    private String altitude;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getLon() {
+        return lon;
+    }
+
+    public void setLon(String lon) {
+        this.lon = lon;
+    }
+
+    public String getLat() {
+        return lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+    }
+
+    public String getDirectionAngle() {
+        return directionAngle;
+    }
+
+    public void setDirectionAngle(String directionAngle) {
+        this.directionAngle = directionAngle;
+    }
+
+    public String getAltitude() {
+        return altitude;
+    }
+
+    public void setAltitude(String altitude) {
+        this.altitude = altitude;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderPosition{" +
+                "id=" + id +
+                ", orderType=" + orderType +
+                ", orderId=" + orderId +
+                ", driverId=" + driverId +
+                ", lon='" + lon + '\'' +
+                ", lat='" + lat + '\'' +
+                ", directionAngle='" + directionAngle + '\'' +
+                ", altitude='" + altitude + '\'' +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Phone.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Phone.java
new file mode 100644
index 0000000..7069fa4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Phone.java
@@ -0,0 +1,90 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 系统电话
+ */
+@TableName("t_phone")
+public class Phone {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 数据类型(1:报警电话,2:投诉电话)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 是否是平台数据(1=是,2=否)
+     */
+    @TableField("platform")
+    private Integer platform;
+    /**
+     * 电话
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Integer getPlatform() {
+        return platform;
+    }
+
+    public void setPlatform(Integer platform) {
+        this.platform = platform;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    @Override
+    public String toString() {
+        return "Phone{" +
+                "id=" + id +
+                ", type=" + type +
+                ", platform=" + platform +
+                ", phone='" + phone + '\'' +
+                ", companyId=" + companyId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Problem.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Problem.java
new file mode 100644
index 0000000..d5c02c6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Problem.java
@@ -0,0 +1,134 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 在线客服
+ */
+@TableName("t_problem")
+public class Problem {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 提问内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 回答内容
+     */
+    @TableField("answer")
+    private String answer;
+    /**
+     * 处理人
+     */
+    @TableField("handleUserId")
+    private Integer handleUserId;
+    /**
+     * 处理时间
+     */
+    @TableField("handleTime")
+    private Date handleTime;
+    /**
+     * 提问时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 状态(1=待处理,2=已处理)
+     */
+    @TableField("state")
+    private Integer state;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getAnswer() {
+        return answer;
+    }
+
+    public void setAnswer(String answer) {
+        this.answer = answer;
+    }
+
+    public Integer getHandleUserId() {
+        return handleUserId;
+    }
+
+    public void setHandleUserId(Integer handleUserId) {
+        this.handleUserId = handleUserId;
+    }
+
+    public Date getHandleTime() {
+        return handleTime;
+    }
+
+    public void setHandleTime(Date handleTime) {
+        this.handleTime = handleTime;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "Problem{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", content='" + content + '\'' +
+                ", answer='" + answer + '\'' +
+                ", handleUserId=" + handleUserId +
+                ", handleTime=" + handleTime +
+                ", insertTime=" + insertTime +
+                ", state=" + state +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/PushOrder.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/PushOrder.java
new file mode 100644
index 0000000..64df32c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/PushOrder.java
@@ -0,0 +1,118 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 推单设置
+ */
+@TableName("t_sys_push_order")
+public class PushOrder {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 推单距离(公里)
+     */
+    @TableField("pushDistance")
+    private Double pushDistance;
+    /**
+     * 推单时间(秒)
+     */
+    @TableField("pushTime")
+    private Integer pushTime;
+    /**
+     * 推单占所有司机百分比
+     */
+    @TableField("driverProportion")
+    private Double driverProportion;
+    /**
+     * 推单次数(1=第一轮,2=第二轮,3=第三轮)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 推单单据类型(1=专车,2=出租车)
+     */
+    @TableField("pushType")
+    private Integer pushType;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Double getPushDistance() {
+        return pushDistance;
+    }
+
+    public void setPushDistance(Double pushDistance) {
+        this.pushDistance = pushDistance;
+    }
+
+    public Integer getPushTime() {
+        return pushTime;
+    }
+
+    public void setPushTime(Integer pushTime) {
+        this.pushTime = pushTime;
+    }
+
+    public Double getDriverProportion() {
+        return driverProportion;
+    }
+
+    public void setDriverProportion(Double driverProportion) {
+        this.driverProportion = driverProportion;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getPushType() {
+        return pushType;
+    }
+
+    public void setPushType(Integer pushType) {
+        this.pushType = pushType;
+    }
+
+    @Override
+    public String toString() {
+        return "PushOrder{" +
+                "id=" + id +
+                ", companyId=" + companyId +
+                ", pushDistance=" + pushDistance +
+                ", pushTime=" + pushTime +
+                ", driverProportion=" + driverProportion +
+                ", type=" + type +
+                ", pushType=" + pushType +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/RedPacketRecord.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/RedPacketRecord.java
new file mode 100644
index 0000000..b30b494
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/RedPacketRecord.java
@@ -0,0 +1,162 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 系统红包设置
+ */
+@TableName("t_sys_red_packet_record")
+public class RedPacketRecord {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 添加时间
+     */
+    @TableField("insert_time")
+    private Date insertTime;
+    /**
+     * 发放企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 红包名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 红包类型(1=固定金额,2=随机金额)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 总金额
+     */
+    @TableField("totalMoney")
+    private Double totalMoney;
+    /**
+     * 剩余金额
+     */
+    @TableField("laveMoney")
+    private Double laveMoney;
+    /**
+     * 开始金额
+     */
+    @TableField("startMoney")
+    private Double startMoney;
+    /**
+     * 结束金额
+     */
+    @TableField("endMoney")
+    private Double endMoney;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Double getTotalMoney() {
+        return totalMoney;
+    }
+
+    public void setTotalMoney(Double totalMoney) {
+        this.totalMoney = totalMoney;
+    }
+
+    public Double getLaveMoney() {
+        return laveMoney;
+    }
+
+    public void setLaveMoney(Double laveMoney) {
+        this.laveMoney = laveMoney;
+    }
+
+    public Double getStartMoney() {
+        return startMoney;
+    }
+
+    public void setStartMoney(Double startMoney) {
+        this.startMoney = startMoney;
+    }
+
+    public Double getEndMoney() {
+        return endMoney;
+    }
+
+    public void setEndMoney(Double endMoney) {
+        this.endMoney = endMoney;
+    }
+
+    @Override
+    public String toString() {
+        return "RedPacketRecord{" +
+                "id=" + id +
+                ", money=" + money +
+                ", insertTime=" + insertTime +
+                ", companyId=" + companyId +
+                ", name='" + name + '\'' +
+                ", type=" + type +
+                ", totalMoney=" + totalMoney +
+                ", laveMoney=" + laveMoney +
+                ", startMoney=" + startMoney +
+                ", endMoney=" + endMoney +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Region.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Region.java
new file mode 100644
index 0000000..a37c657
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Region.java
@@ -0,0 +1,104 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 省市区
+ */
+@TableName("t_region")
+public class Region {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 城市名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 城市行政code
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 区号code
+     */
+    @TableField("citycode")
+    private String citycode;
+    /**
+     * 父级id
+     */
+    @TableField("parent_id")
+    private Integer parentId;
+    /**
+     * 英文
+     */
+    @TableField("english")
+    private String english;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getCitycode() {
+        return citycode;
+    }
+
+    public void setCitycode(String citycode) {
+        this.citycode = citycode;
+    }
+
+    public Integer getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Integer parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getEnglish() {
+        return english;
+    }
+
+    public void setEnglish(String english) {
+        this.english = english;
+    }
+
+    @Override
+    public String toString() {
+        return "Region{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", code='" + code + '\'' +
+                ", citycode='" + citycode + '\'' +
+                ", parentId=" + parentId +
+                ", english='" + english + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Relation.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Relation.java
new file mode 100644
index 0000000..48c2df6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Relation.java
@@ -0,0 +1,75 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 角色和菜单关联表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_relation")
+public class Relation extends Model<Relation> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 菜单id
+     */
+    private Long menuid;
+    /**
+     * 角色id
+     */
+    private Integer roleid;
+
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Long getMenuid() {
+        return menuid;
+    }
+
+    public void setMenuid(Long menuid) {
+        this.menuid = menuid;
+    }
+
+    public Integer getRoleid() {
+        return roleid;
+    }
+
+    public void setRoleid(Integer roleid) {
+        this.roleid = roleid;
+    }
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+    @Override
+    public String toString() {
+        return "Relation{" +
+                "id=" + id +
+                ", menuid=" + menuid +
+                ", roleid=" + roleid +
+                "}";
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Role.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Role.java
new file mode 100644
index 0000000..70ae563
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Role.java
@@ -0,0 +1,127 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 角色表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_role")
+public class Role extends Model<Role> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 序号
+     */
+	private Integer num;
+    /**
+     * 父角色id
+     */
+	private Integer pid;
+    /**
+     * 角色名称
+     */
+	private String name;
+    /**
+     * 部门名称
+     */
+	private Integer deptid;
+    /**
+     * 提示
+     */
+	private String tips;
+    /**
+     * 保留字段(暂时没用)
+     */
+	private Integer version;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Integer getNum() {
+		return num;
+	}
+
+	public void setNum(Integer num) {
+		this.num = num;
+	}
+
+	public Integer getPid() {
+		return pid;
+	}
+
+	public void setPid(Integer pid) {
+		this.pid = pid;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Integer getDeptid() {
+		return deptid;
+	}
+
+	public void setDeptid(Integer deptid) {
+		this.deptid = deptid;
+	}
+
+	public String getTips() {
+		return tips;
+	}
+
+	public void setTips(String tips) {
+		this.tips = tips;
+	}
+
+	public Integer getVersion() {
+		return version;
+	}
+
+	public void setVersion(Integer version) {
+		this.version = version;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "Role{" +
+			"id=" + id +
+			", num=" + num +
+			", pid=" + pid +
+			", name=" + name +
+			", deptid=" + deptid +
+			", tips=" + tips +
+			", version=" + version +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SensitiveWords.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SensitiveWords.java
new file mode 100644
index 0000000..0091dc1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SensitiveWords.java
@@ -0,0 +1,64 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 敏感词
+ */
+@TableName("t_sys_sensitive_words")
+public class SensitiveWords {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 添加时间
+     */
+    @TableField("createTime")
+    private Date createTime;
+    /**
+     * 内容
+     */
+    @TableField("content")
+    private String content;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    @Override
+    public String toString() {
+        return "SensitiveWords{" +
+                "id=" + id +
+                ", createTime=" + createTime +
+                ", content='" + content + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/ServerCarModel.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/ServerCarModel.java
new file mode 100644
index 0000000..e12def7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/ServerCarModel.java
@@ -0,0 +1,120 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 服务车型设置
+ */
+@TableName("t_server_carmodel")
+public class ServerCarModel {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 业务类型(1=专车,2=城际,3=包车)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 车型名称
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 车型照片
+     */
+    @TableField("img")
+    private String img;
+    /**
+     * 包车价格(100-300)
+     */
+    @TableField("price")
+    private String price;
+    /**
+     * 状态(1=正常,2=冻结,3=删除)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getPrice() {
+        return price;
+    }
+
+    public void setPrice(String price) {
+        this.price = price;
+    }
+
+    @Override
+    public String toString() {
+        return "ServerCarModel{" +
+                "id=" + id +
+                ", type=" + type +
+                ", name='" + name + '\'' +
+                ", img='" + img + '\'' +
+                ", price='" + price + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Smsrecord.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Smsrecord.java
new file mode 100644
index 0000000..b132a93
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Smsrecord.java
@@ -0,0 +1,106 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 短信记录
+ */
+@TableName("t_smsrecord")
+public class Smsrecord {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 短信类型(1=用户端注册/登录,2=用户端更换手机,3=用户端忘记密码,4=用户修改密码,5=司机注册,6=司机忘记密码,7=司机修改手机号,8=司机修改密码)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 发送电话
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 验证码
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 短信内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Smsrecord{" +
+                "id=" + id +
+                ", type=" + type +
+                ", phone='" + phone + '\'' +
+                ", code='" + code + '\'' +
+                ", content='" + content + '\'' +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysIntegral.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysIntegral.java
new file mode 100644
index 0000000..0b46a6a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SysIntegral.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 系统积分设置
+ */
+@TableName("t_sys_integral")
+public class SysIntegral {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 积分
+     */
+    @TableField("integral")
+    private Integer integral;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    @Override
+    public String toString() {
+        return "SysIntegral{" +
+                "id=" + id +
+                ", companyId=" + companyId +
+                ", integral=" + integral +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemNotice.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemNotice.java
new file mode 100644
index 0000000..d4d786b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemNotice.java
@@ -0,0 +1,147 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 系统通知
+ */
+@TableName("t_system_notice")
+public class SystemNotice {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 类型(1=公告,2=系统消息)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 系统消息类型(1=打车业务,2=优惠券)
+     */
+    @TableField("noticeType")
+    private Integer noticeType;
+    /**
+     * 用户类型(1=用户,2=司机)
+     */
+    @TableField("userType")
+    private Integer userType;
+    /**
+     * 公告id
+     */
+    @TableField("noticesId")
+    private Integer noticesId;
+    /**
+     * 消息内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 接收对象id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 阅读状态(1=未读,2=已读)
+     */
+    @TableField("read")
+    private Integer read;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getRead() {
+        return read;
+    }
+
+    public void setRead(Integer read) {
+        this.read = read;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Integer getNoticesId() {
+        return noticesId;
+    }
+
+    public void setNoticesId(Integer noticesId) {
+        this.noticesId = noticesId;
+    }
+
+    public Integer getNoticeType() {
+        return noticeType;
+    }
+
+    public void setNoticeType(Integer noticeType) {
+        this.noticeType = noticeType;
+    }
+
+    @Override
+    public String toString() {
+        return "SystemNotice{" +
+                "id=" + id +
+                ", type=" + type +
+                ", userType=" + userType +
+                ", noticesId=" + noticesId +
+                ", content='" + content + '\'' +
+                ", userId=" + userId +
+                ", insertTime=" + insertTime +
+                ", read=" + read +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemPrice.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemPrice.java
new file mode 100644
index 0000000..5a88fa9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/SystemPrice.java
@@ -0,0 +1,90 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+/**
+ * 服务价格规则
+ */
+@TableName("t_system_price")
+public class SystemPrice {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 服务车型设置
+     */
+    @TableField("serverCarModelId")
+    private Integer serverCarModelId;
+    /**
+     * 价格规则,每个输入框为一个参数{"num1":1,"num2":2.3}
+     */
+    @TableField("content")
+    private String content;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getServerCarModelId() {
+        return serverCarModelId;
+    }
+
+    public void setServerCarModelId(Integer serverCarModelId) {
+        this.serverCarModelId = serverCarModelId;
+    }
+
+    @Override
+    public String toString() {
+        return "SystemPrice{" +
+                "id=" + id +
+                ", type=" + type +
+                ", companyId=" + companyId +
+                ", serverCarModelId=" + serverCarModelId +
+                ", content='" + content + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TNotices.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TNotices.java
new file mode 100644
index 0000000..0be3c5b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/TNotices.java
@@ -0,0 +1,160 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+/**
+ * 通知
+ */
+@TableName("t_notices")
+public class TNotices extends BaseBean {
+    /**
+     * 标题
+     */
+    @TableField("title")
+    private String title;
+    /**
+     * 内容
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 排序
+     */
+    @TableField("sort")
+    private Integer sort;
+    /**
+     * 是否显示/发布(1=是,2=否)
+     */
+    @TableField("isShow")
+    private Integer isShow;
+    /**
+     * 是否播报(1=是,2=否)
+     */
+    @TableField("isBroadcast")
+    private Integer isBroadcast;
+    /**
+     * 公告类型(1=滚动消息,2=公告)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 图片地址
+     */
+    @TableField("imgUrl")
+    private String imgUrl;
+    /**
+     * 是否删除(1=否,2=是)
+     * @return
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 是否发布用户(1=否,2=是)
+     * @return
+     */
+    @TableField("isUser")
+    private Integer isUser;
+    /**
+     * 是否发布司机(1=否,2=是)
+     * @return
+     */
+    @TableField("isDriver")
+    private Integer isDriver;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+
+    public Integer getIsShow() {
+        return isShow;
+    }
+
+    public void setIsShow(Integer isShow) {
+        this.isShow = isShow;
+    }
+
+    public Integer getIsBroadcast() {
+        return isBroadcast;
+    }
+
+    public void setIsBroadcast(Integer isBroadcast) {
+        this.isBroadcast = isBroadcast;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Integer getIsUser() {
+        return isUser;
+    }
+
+    public void setIsUser(Integer isUser) {
+        this.isUser = isUser;
+    }
+
+    public Integer getIsDriver() {
+        return isDriver;
+    }
+
+    public void setIsDriver(Integer isDriver) {
+        this.isDriver = isDriver;
+    }
+
+    @Override
+    public String toString() {
+        return "TNotices{" +
+                "title='" + title + '\'' +
+                ", content='" + content + '\'' +
+                ", sort=" + sort +
+                ", isShow=" + isShow +
+                ", isBroadcast=" + isBroadcast +
+                ", type=" + type +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", isDelete=" + isDelete +
+                ", isUser=" + isUser +
+                ", isDriver=" + isDriver +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/User.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/User.java
new file mode 100644
index 0000000..30a9617
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/User.java
@@ -0,0 +1,232 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 管理员表
+ * </p>
+ *
+ * @author stylefeng
+ * @since 2017-07-11
+ */
+@TableName("sys_user")
+public class User extends Model<User> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+	@TableId(value="id", type= IdType.AUTO)
+	private Integer id;
+    /**
+     * 头像
+     */
+	private String avatar;
+    /**
+     * 账号
+     */
+	private String account;
+    /**
+     * 密码
+     */
+	private String password;
+    /**
+     * md5密码盐
+     */
+	private String salt;
+    /**
+     * 名字
+     */
+	private String name;
+    /**
+     * 生日
+     */
+	private Date birthday;
+    /**
+     * 性别(1:男 2:女)
+     */
+	private Integer sex;
+    /**
+     * 电子邮件
+     */
+	private String email;
+    /**
+     * 电话
+     */
+	private String phone;
+    /**
+     * 角色id
+     */
+	private String roleid;
+    /**
+     * 部门id
+     */
+	private Integer deptid;
+    /**
+     * 状态(1:启用  2:冻结  3:删除)
+     */
+	private Integer status;
+    /**
+     * 创建时间
+     */
+	private Date createtime;
+    /**
+     * 保留字段
+     */
+	private Integer version;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public String getAvatar() {
+		return avatar;
+	}
+
+	public void setAvatar(String avatar) {
+		this.avatar = avatar;
+	}
+
+	public String getAccount() {
+		return account;
+	}
+
+	public void setAccount(String account) {
+		this.account = account;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public String getSalt() {
+		return salt;
+	}
+
+	public void setSalt(String salt) {
+		this.salt = salt;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Date getBirthday() {
+		return birthday;
+	}
+
+	public void setBirthday(Date birthday) {
+		this.birthday = birthday;
+	}
+
+	public Integer getSex() {
+		return sex;
+	}
+
+	public void setSex(Integer sex) {
+		this.sex = sex;
+	}
+
+	public String getEmail() {
+		return email;
+	}
+
+	public void setEmail(String email) {
+		this.email = email;
+	}
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getRoleid() {
+		return roleid;
+	}
+
+	public void setRoleid(String roleid) {
+		this.roleid = roleid;
+	}
+
+	public Integer getDeptid() {
+		return deptid;
+	}
+
+	public void setDeptid(Integer deptid) {
+		this.deptid = deptid;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Date getCreatetime() {
+		return createtime;
+	}
+
+	public void setCreatetime(Date createtime) {
+		this.createtime = createtime;
+	}
+
+	public Integer getVersion() {
+		return version;
+	}
+
+	public void setVersion(Integer version) {
+		this.version = version;
+	}
+
+	@Override
+	protected Serializable pkVal() {
+		return this.id;
+	}
+
+	@Override
+	public String toString() {
+		return "User{" +
+			"id=" + id +
+			", avatar=" + avatar +
+			", account=" + account +
+			", password=" + password +
+			", salt=" + salt +
+			", name=" + name +
+			", birthday=" + birthday +
+			", sex=" + sex +
+			", email=" + email +
+			", phone=" + phone +
+			", roleid=" + roleid +
+			", deptid=" + deptid +
+			", status=" + status +
+			", createtime=" + createtime +
+			", version=" + version +
+			"}";
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityBalance.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityBalance.java
new file mode 100644
index 0000000..d461b73
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityBalance.java
@@ -0,0 +1,260 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 充值优惠券活动
+ */
+@TableName("t_user_activity_balance")
+public class UserActivityBalance {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 是否启用(1=不启用,2=启用)
+     */
+    @TableField("enable")
+    private Integer enable;
+    /**
+     * 活动主表id
+     */
+    @TableField("userActivityId")
+    private Integer userActivityId;
+    /**
+     * 充值金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 通用优惠券数量
+     */
+    @TableField("generalNum")
+    private Integer generalNum;
+    /**
+     * 通用优惠券id
+     */
+    @TableField("generalCouponId")
+    private Integer generalCouponId;
+    /**
+     * 专车优惠券数据
+     */
+    @TableField("specialNum")
+    private Integer specialNum;
+    /**
+     * 专车优惠券id
+     */
+    @TableField("specialCouponId")
+    private Integer specialCouponId;
+    /**
+     * 出租车优惠券数量
+     */
+    @TableField("taxiNum")
+    private Integer taxiNum;
+    /**
+     * 出租车优惠券id
+     */
+    @TableField("taxiCouponId")
+    private Integer taxiCouponId;
+    /**
+     * 跨城优惠券数量
+     */
+    @TableField("intercityNum")
+    private Integer intercityNum;
+    /**
+     * 跨城优惠券id
+     */
+    @TableField("intercityCouponId")
+    private Integer intercityCouponId;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 有效期开始时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 有效期结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 总金额上限
+     * @return
+     */
+    @TableField("totalPrice")
+    private Double totalPrice;
+    /**
+     * 剩余总金额上限
+     * @return
+     */
+    @TableField("lavePrice")
+    private Double lavePrice;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Integer enable) {
+        this.enable = enable;
+    }
+
+    public Integer getUserActivityId() {
+        return userActivityId;
+    }
+
+    public void setUserActivityId(Integer userActivityId) {
+        this.userActivityId = userActivityId;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getGeneralNum() {
+        return generalNum;
+    }
+
+    public void setGeneralNum(Integer generalNum) {
+        this.generalNum = generalNum;
+    }
+
+    public Integer getGeneralCouponId() {
+        return generalCouponId;
+    }
+
+    public void setGeneralCouponId(Integer generalCouponId) {
+        this.generalCouponId = generalCouponId;
+    }
+
+    public Integer getSpecialNum() {
+        return specialNum;
+    }
+
+    public void setSpecialNum(Integer specialNum) {
+        this.specialNum = specialNum;
+    }
+
+    public Integer getSpecialCouponId() {
+        return specialCouponId;
+    }
+
+    public void setSpecialCouponId(Integer specialCouponId) {
+        this.specialCouponId = specialCouponId;
+    }
+
+    public Integer getTaxiNum() {
+        return taxiNum;
+    }
+
+    public void setTaxiNum(Integer taxiNum) {
+        this.taxiNum = taxiNum;
+    }
+
+    public Integer getTaxiCouponId() {
+        return taxiCouponId;
+    }
+
+    public void setTaxiCouponId(Integer taxiCouponId) {
+        this.taxiCouponId = taxiCouponId;
+    }
+
+    public Integer getIntercityNum() {
+        return intercityNum;
+    }
+
+    public void setIntercityNum(Integer intercityNum) {
+        this.intercityNum = intercityNum;
+    }
+
+    public Integer getIntercityCouponId() {
+        return intercityCouponId;
+    }
+
+    public void setIntercityCouponId(Integer intercityCouponId) {
+        this.intercityCouponId = intercityCouponId;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Double getTotalPrice() {
+        return totalPrice;
+    }
+
+    public void setTotalPrice(Double totalPrice) {
+        this.totalPrice = totalPrice;
+    }
+
+    public Double getLavePrice() {
+        return lavePrice;
+    }
+
+    public void setLavePrice(Double lavePrice) {
+        this.lavePrice = lavePrice;
+    }
+
+    @Override
+    public String toString() {
+        return "UserActivityBalance{" +
+                "id=" + id +
+                ", enable=" + enable +
+                ", userActivityId=" + userActivityId +
+                ", money=" + money +
+                ", generalNum=" + generalNum +
+                ", generalCouponId=" + generalCouponId +
+                ", specialNum=" + specialNum +
+                ", specialCouponId=" + specialCouponId +
+                ", taxiNum=" + taxiNum +
+                ", taxiCouponId=" + taxiCouponId +
+                ", intercityNum=" + intercityNum +
+                ", intercityCouponId=" + intercityCouponId +
+                ", insertTime=" + insertTime +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityDiscount1.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityDiscount1.java
new file mode 100644
index 0000000..bee8d78
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityDiscount1.java
@@ -0,0 +1,134 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 用户折扣活动
+ */
+@TableName("t_user_activity_discount1")
+public class UserActivityDiscount1 {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 活动id
+     */
+    @TableField("userActivityId")
+    private Integer userActivityId;
+    /**
+     * 专车折扣
+     */
+    @TableField("special")
+    private Double special;
+    /**
+     * 出租车折扣
+     */
+    @TableField("taxi")
+    private Double taxi;
+    /**
+     * 小件物流折扣
+     */
+    @TableField("logistics")
+    private Double logistics;
+    /**
+     * 活动有效开始时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 活动有效结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 是否启用(1=不启用,2=启用)
+     */
+    @TableField("enable")
+    private Integer enable;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserActivityId() {
+        return userActivityId;
+    }
+
+    public void setUserActivityId(Integer userActivityId) {
+        this.userActivityId = userActivityId;
+    }
+
+    public Double getSpecial() {
+        return special;
+    }
+
+    public void setSpecial(Double special) {
+        this.special = special;
+    }
+
+    public Double getTaxi() {
+        return taxi;
+    }
+
+    public void setTaxi(Double taxi) {
+        this.taxi = taxi;
+    }
+
+    public Double getLogistics() {
+        return logistics;
+    }
+
+    public void setLogistics(Double logistics) {
+        this.logistics = logistics;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Integer enable) {
+        this.enable = enable;
+    }
+
+    @Override
+    public String toString() {
+        return "UserActivityDiscount1{" +
+                "id=" + id +
+                ", userActivityId=" + userActivityId +
+                ", special=" + special +
+                ", taxi=" + taxi +
+                ", logistics=" + logistics +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                ", enable=" + enable +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityInvite.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityInvite.java
new file mode 100644
index 0000000..9df1a0f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityInvite.java
@@ -0,0 +1,162 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 用户邀请活动
+ */
+@TableName("t_user_activity_invite")
+public class UserActivityInvite {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户活动主表
+     */
+    @TableField("userActivityId")
+    private Integer userActivityId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 优惠券数量
+     */
+    @TableField("totalNum")
+    private Integer totalNum;
+    /**
+     * 有效开始时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 有效结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 是否启用(1=不启用,2=启用)
+     */
+    @TableField("enable")
+    private Integer enable;
+    /**
+     * 有效天数
+     */
+    @TableField("effective")
+    private Integer effective;
+    /**
+     * 总金额上限
+     * @return
+     */
+    @TableField("totalPrice")
+    private Double totalPrice;
+    /**
+     * 剩余总金额上限
+     * @return
+     */
+    @TableField("lavePrice")
+    private Double lavePrice;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserActivityId() {
+        return userActivityId;
+    }
+
+    public void setUserActivityId(Integer userActivityId) {
+        this.userActivityId = userActivityId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getTotalNum() {
+        return totalNum;
+    }
+
+    public void setTotalNum(Integer totalNum) {
+        this.totalNum = totalNum;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Integer enable) {
+        this.enable = enable;
+    }
+
+    public Integer getEffective() {
+        return effective;
+    }
+
+    public void setEffective(Integer effective) {
+        this.effective = effective;
+    }
+
+    public Double getTotalPrice() {
+        return totalPrice;
+    }
+
+    public void setTotalPrice(Double totalPrice) {
+        this.totalPrice = totalPrice;
+    }
+
+    public Double getLavePrice() {
+        return lavePrice;
+    }
+
+    public void setLavePrice(Double lavePrice) {
+        this.lavePrice = lavePrice;
+    }
+
+    @Override
+    public String toString() {
+        return "UserActivityInvite{" +
+                "id=" + id +
+                ", userActivityId=" + userActivityId +
+                ", couponId=" + couponId +
+                ", totalNum=" + totalNum +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                ", enable=" + enable +
+                ", effective=" + effective +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRedenvelope.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRedenvelope.java
new file mode 100644
index 0000000..7acc740
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRedenvelope.java
@@ -0,0 +1,162 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 分享红包活动
+ */
+@TableName("t_user_activity_redenvelope")
+public class UserActivityRedenvelope {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 活动id
+     */
+    @TableField("userActivityId")
+    private Integer userActivityId;
+    /**
+     * 红包id
+     */
+    @TableField("redEnvelopeId")
+    private Integer redEnvelopeId;
+    /**
+     * 总金额
+     */
+    @TableField("totalMoney")
+    private Double totalMoney;
+    /**
+     * 剩余金额
+     */
+    @TableField("laveMoney")
+    private Double laveMoney;
+    /**
+     * 活动开始时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 活动结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 是否启用
+     */
+    @TableField("enable")
+    private Integer enable;
+    /**
+     * 总金额上限
+     * @return
+     */
+    @TableField("totalPrice")
+    private Double totalPrice;
+    /**
+     * 剩余总金额上限
+     * @return
+     */
+    @TableField("lavePrice")
+    private Double lavePrice;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserActivityId() {
+        return userActivityId;
+    }
+
+    public void setUserActivityId(Integer userActivityId) {
+        this.userActivityId = userActivityId;
+    }
+
+    public Integer getRedEnvelopeId() {
+        return redEnvelopeId;
+    }
+
+    public void setRedEnvelopeId(Integer redEnvelopeId) {
+        this.redEnvelopeId = redEnvelopeId;
+    }
+
+    public Double getTotalMoney() {
+        return totalMoney;
+    }
+
+    public void setTotalMoney(Double totalMoney) {
+        this.totalMoney = totalMoney;
+    }
+
+    public Double getLaveMoney() {
+        return laveMoney;
+    }
+
+    public void setLaveMoney(Double laveMoney) {
+        this.laveMoney = laveMoney;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Integer enable) {
+        this.enable = enable;
+    }
+
+    public Double getTotalPrice() {
+        return totalPrice;
+    }
+
+    public void setTotalPrice(Double totalPrice) {
+        this.totalPrice = totalPrice;
+    }
+
+    public Double getLavePrice() {
+        return lavePrice;
+    }
+
+    public void setLavePrice(Double lavePrice) {
+        this.lavePrice = lavePrice;
+    }
+
+    @Override
+    public String toString() {
+        return "UserActivityRedenvelope{" +
+                "id=" + id +
+                ", userActivityId=" + userActivityId +
+                ", redEnvelopeId=" + redEnvelopeId +
+                ", totalMoney=" + totalMoney +
+                ", laveMoney=" + laveMoney +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                ", enable=" + enable +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRegistered.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRegistered.java
new file mode 100644
index 0000000..572a0bf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserActivityRegistered.java
@@ -0,0 +1,162 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 用户注册活动
+ */
+@TableName("t_user_activity_registered")
+public class UserActivityRegistered {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户活动id
+     */
+    @TableField("userActivityId")
+    private Integer userActivityId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 优惠券总数量
+     */
+    @TableField("totalNum")
+    private Integer totalNum;
+    /**
+     * 优惠券剩余数量
+     */
+    @TableField("laveNum")
+    private Integer laveNum;
+    /**
+     * 开始时间
+     */
+    @TableField("startTime")
+    private Date startTime;
+    /**
+     * 结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 是否启用(1=不启用,2=启用)
+     */
+    @TableField("enable")
+    private Integer enable;
+    /**
+     * 总金额上限
+     * @return
+     */
+    @TableField("totalPrice")
+    private Double totalPrice;
+    /**
+     * 剩余总金额上限
+     * @return
+     */
+    @TableField("lavePrice")
+    private Double lavePrice;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserActivityId() {
+        return userActivityId;
+    }
+
+    public void setUserActivityId(Integer userActivityId) {
+        this.userActivityId = userActivityId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getTotalNum() {
+        return totalNum;
+    }
+
+    public void setTotalNum(Integer totalNum) {
+        this.totalNum = totalNum;
+    }
+
+    public Integer getLaveNum() {
+        return laveNum;
+    }
+
+    public void setLaveNum(Integer laveNum) {
+        this.laveNum = laveNum;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Integer enable) {
+        this.enable = enable;
+    }
+
+    public Double getTotalPrice() {
+        return totalPrice;
+    }
+
+    public void setTotalPrice(Double totalPrice) {
+        this.totalPrice = totalPrice;
+    }
+
+    public Double getLavePrice() {
+        return lavePrice;
+    }
+
+    public void setLavePrice(Double lavePrice) {
+        this.lavePrice = lavePrice;
+    }
+
+    @Override
+    public String toString() {
+        return "UserActivityRegistered{" +
+                "id=" + id +
+                ", userActivityId=" + userActivityId +
+                ", couponId=" + couponId +
+                ", totalNum=" + totalNum +
+                ", laveNum=" + laveNum +
+                ", startTime=" + startTime +
+                ", endTime=" + endTime +
+                ", enable=" + enable +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserCouponRecord.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserCouponRecord.java
new file mode 100644
index 0000000..57d85cf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserCouponRecord.java
@@ -0,0 +1,234 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 用户优惠券记录
+ */
+@TableName("t_user_coupon_record")
+public class UserCouponRecord {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 满减的满金额
+     */
+    @TableField("fullMoney")
+    private Double fullMoney;
+    /**
+     * 过期时间
+     */
+    @TableField("expirationTime")
+    private Date expirationTime;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 状态(1=未使用,2=已使用,3=已过期)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 使用结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 优惠券使用类型(0=通用,1=专车,2=出租车,3=城际,4=小件物流)
+     */
+    @TableField("couponUseType")
+    private Integer couponUseType;
+    /**
+     * 优惠券类型(1=抵扣券,2=满减券)
+     */
+    @TableField("couponType")
+    private Integer couponType;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 优惠券id
+     * @return
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 活动id
+     * @return
+     */
+    @TableField("couponActivityId")
+    private Integer couponActivityId;
+    /**
+     * 活动类型(1=赠送活动,2=注册,3=邀请,4=充值)
+     * @return
+     */
+    @TableField("activityType")
+    private Integer activityType;
+    /**
+     * 充值记录id
+     * @return
+     */
+    @TableField("paymentRecordId")
+    private Integer paymentRecordId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Double getFullMoney() {
+        return fullMoney;
+    }
+
+    public void setFullMoney(Double fullMoney) {
+        this.fullMoney = fullMoney;
+    }
+
+    public Date getExpirationTime() {
+        return expirationTime;
+    }
+
+    public void setExpirationTime(Date expirationTime) {
+        this.expirationTime = expirationTime;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getCouponUseType() {
+        return couponUseType;
+    }
+
+    public void setCouponUseType(Integer couponUseType) {
+        this.couponUseType = couponUseType;
+    }
+
+    public Integer getCouponType() {
+        return couponType;
+    }
+
+    public void setCouponType(Integer couponType) {
+        this.couponType = couponType;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getCouponActivityId() {
+        return couponActivityId;
+    }
+
+    public void setCouponActivityId(Integer couponActivityId) {
+        this.couponActivityId = couponActivityId;
+    }
+
+    public Integer getActivityType() {
+        return activityType;
+    }
+
+    public void setActivityType(Integer activityType) {
+        this.activityType = activityType;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getPaymentRecordId() {
+        return paymentRecordId;
+    }
+
+    public void setPaymentRecordId(Integer paymentRecordId) {
+        this.paymentRecordId = paymentRecordId;
+    }
+
+    @Override
+    public String toString() {
+        return "UserCouponRecord{" +
+                "id=" + id +
+                ", money=" + money +
+                ", fullMoney=" + fullMoney +
+                ", expirationTime=" + expirationTime +
+                ", insertTime=" + insertTime +
+                ", companyId=" + companyId +
+                ", state=" + state +
+                ", couponUseType=" + couponUseType +
+                ", couponType=" + couponType +
+                ", userId=" + userId +
+                ", couponId=" + couponId +
+                ", couponActivityId=" + couponActivityId +
+                ", activityType=" + activityType +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
new file mode 100644
index 0000000..273005e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -0,0 +1,356 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableName;
+
+import java.util.Date;
+
+/**
+ * 用户
+ */
+@TableName("t_user")
+public class UserInfo extends BaseBean {
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 注册id
+     */
+    @TableField("registIp")
+    private String registIp;
+    /**
+     * 注册地区县行政编号
+     */
+    @TableField("registAreaCode")
+    private String registAreaCode;
+    /**
+     * 手机号
+     */
+    @TableField("phone")
+    private String phone;
+    /**
+     * 昵称
+     */
+    @TableField("nickName")
+    private String nickName;
+    /**
+     * 头像
+     */
+    @TableField("avatar")
+    private String avatar;
+    /**
+     * 生日
+     */
+    @TableField("birthday")
+    private Date birthday;
+    /**
+     * 性别(1=男,2=女)
+     */
+    @TableField("sex")
+    private Integer sex;
+    /**
+     * 紧急联系人
+     */
+    @TableField("emergencyContact")
+    private String emergencyContact;
+    /**
+     * 联系人电话
+     */
+    @TableField("emergencyContactNumber")
+    private String emergencyContactNumber;
+    /**
+     * 是否已实名(1:否,2:是)
+     */
+    @TableField("isAuth")
+    private Integer isAuth;
+    /**
+     * 真实姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 身份证号码
+     */
+    @TableField("idCard")
+    private String idCard;
+    /**
+     * 身份证正面
+     */
+    @TableField("idCardFront")
+    private String idCardFront;
+    /**
+     * 身份证背面
+     */
+    @TableField("idCardReverse")
+    private String idCardReverse;
+    /**
+     * 历史消费总金额
+     */
+    @TableField("consumption")
+    private Double consumption;
+    /**
+     * 账户余额
+     */
+    @TableField("balance")
+    private Double balance;
+    /**
+     * 剩余积分
+     */
+    @TableField("integral")
+    private Integer integral;
+    /**
+     * 密码
+     */
+    @TableField("passWord")
+    private String passWord;
+    /**
+     * 微信openid
+     */
+    @TableField("openId")
+    private String openId;
+    /**
+     * 小程序openid
+     */
+    @TableField("appletsOpenId")
+    private String appletsOpenId;
+    /**
+     * 微信unionid
+     */
+    @TableField("unionid")
+    private String unionid;
+    /**
+     * 备注
+     * @return
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 状态(1=正常,2=冻结)
+     * @return
+     */
+    @TableField("state")
+    private Integer state;
+
+    public String getRegistIp() {
+        return registIp;
+    }
+
+    public void setRegistIp(String registIp) {
+        this.registIp = registIp;
+    }
+
+    public String getRegistAreaCode() {
+        return registAreaCode;
+    }
+
+    public void setRegistAreaCode(String registAreaCode) {
+        this.registAreaCode = registAreaCode;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getEmergencyContact() {
+        return emergencyContact;
+    }
+
+    public void setEmergencyContact(String emergencyContact) {
+        this.emergencyContact = emergencyContact;
+    }
+
+    public String getEmergencyContactNumber() {
+        return emergencyContactNumber;
+    }
+
+    public void setEmergencyContactNumber(String emergencyContactNumber) {
+        this.emergencyContactNumber = emergencyContactNumber;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public Date getBirthday() {
+        return birthday;
+    }
+
+    public void setBirthday(Date birthday) {
+        this.birthday = birthday;
+    }
+
+    public Integer getSex() {
+        return sex;
+    }
+
+    public void setSex(Integer sex) {
+        this.sex = sex;
+    }
+
+    public Integer getIsAuth() {
+        return isAuth;
+    }
+
+    public void setIsAuth(Integer isAuth) {
+        this.isAuth = isAuth;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getIdCardFront() {
+        return idCardFront;
+    }
+
+    public void setIdCardFront(String idCardFront) {
+        this.idCardFront = idCardFront;
+    }
+
+    public String getIdCardReverse() {
+        return idCardReverse;
+    }
+
+    public void setIdCardReverse(String idCardReverse) {
+        this.idCardReverse = idCardReverse;
+    }
+
+    public Double getConsumption() {
+        return consumption;
+    }
+
+    public void setConsumption(Double consumption) {
+        this.consumption = consumption;
+    }
+
+    public Double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(Double balance) {
+        this.balance = balance;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    public String getPassWord() {
+        return passWord;
+    }
+
+    public void setPassWord(String passWord) {
+        this.passWord = passWord;
+    }
+
+    public String getOpenId() {
+        return openId;
+    }
+
+    public void setOpenId(String openId) {
+        this.openId = openId;
+    }
+
+    public String getUnionid() {
+        return unionid;
+    }
+
+    public void setUnionid(String unionid) {
+        this.unionid = unionid;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getAppletsOpenId() {
+        return appletsOpenId;
+    }
+
+    public void setAppletsOpenId(String appletsOpenId) {
+        this.appletsOpenId = appletsOpenId;
+    }
+
+    @Override
+    public String toString() {
+        return "UserInfo{" +
+                "companyId=" + companyId +
+                ", registIp='" + registIp + '\'' +
+                ", registAreaCode='" + registAreaCode + '\'' +
+                ", phone='" + phone + '\'' +
+                ", nickName='" + nickName + '\'' +
+                ", avatar='" + avatar + '\'' +
+                ", birthday=" + birthday +
+                ", sex=" + sex +
+                ", emergencyContact='" + emergencyContact + '\'' +
+                ", emergencyContactNumber='" + emergencyContactNumber + '\'' +
+                ", isAuth=" + isAuth +
+                ", name='" + name + '\'' +
+                ", idCard='" + idCard + '\'' +
+                ", idCardFront='" + idCardFront + '\'' +
+                ", idCardReverse='" + idCardReverse + '\'' +
+                ", consumption=" + consumption +
+                ", balance=" + balance +
+                ", integral=" + integral +
+                ", passWord='" + passWord + '\'' +
+                ", openId='" + openId + '\'' +
+                ", unionid='" + unionid + '\'' +
+                ", remark='" + remark + '\'' +
+                ", state=" + state +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java
new file mode 100644
index 0000000..4d42ac0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserRedPacketRecord.java
@@ -0,0 +1,176 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 用户红包记录
+ */
+@TableName("t_user_red_packet_record")
+public class UserRedPacketRecord {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 过期时间
+     */
+    @TableField("expirationTime")
+    private Date expirationTime;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 企业id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 状态(0=临时,1=未使用,2=已使用,3=已过期)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 使用结束时间
+     */
+    @TableField("endTime")
+    private Date endTime;
+    /**
+     * 订单id(获取红包的订单)
+     */
+    @TableField("orderId")
+    private Integer orderId;
+    /**
+     * 订单类型(1=专车,2=出租车,3=城际,4=小件物流)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 活动id
+     * @return
+     */
+    @TableField("redPacketActivityId")
+    private Integer redPacketActivityId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Date getExpirationTime() {
+        return expirationTime;
+    }
+
+    public void setExpirationTime(Date expirationTime) {
+        this.expirationTime = expirationTime;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getRedPacketActivityId() {
+        return redPacketActivityId;
+    }
+
+    public void setRedPacketActivityId(Integer redPacketActivityId) {
+        this.redPacketActivityId = redPacketActivityId;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    @Override
+    public String toString() {
+        return "UserRedPacketRecord{" +
+                "id=" + id +
+                ", money=" + money +
+                ", expirationTime=" + expirationTime +
+                ", insertTime=" + insertTime +
+                ", companyId=" + companyId +
+                ", state=" + state +
+                ", orderId=" + orderId +
+                ", orderType=" + orderType +
+                ", userId=" + userId +
+                ", redPacketActivityId=" + redPacketActivityId +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Verified.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Verified.java
new file mode 100644
index 0000000..de61e73
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Verified.java
@@ -0,0 +1,134 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 实名认证记录
+ */
+@TableName("t_verified")
+public class Verified {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 认证姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 身份证号码
+     */
+    @TableField("idcode")
+    private String idcode;
+    /**
+     * 身份证正面照
+     */
+    @TableField("img1")
+    private String img1;
+    /**
+     * 身份证背面照
+     */
+    @TableField("img2")
+    private String img2;
+    /**
+     * 认证结果(1=待认证,2=认证通过,3=认证失败)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 请求时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIdcode() {
+        return idcode;
+    }
+
+    public void setIdcode(String idcode) {
+        this.idcode = idcode;
+    }
+
+    public String getImg1() {
+        return img1;
+    }
+
+    public void setImg1(String img1) {
+        this.img1 = img1;
+    }
+
+    public String getImg2() {
+        return img2;
+    }
+
+    public void setImg2(String img2) {
+        this.img2 = img2;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "Verified{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", name='" + name + '\'' +
+                ", idcode='" + idcode + '\'' +
+                ", img1='" + img1 + '\'' +
+                ", img2='" + img2 + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/VersionManagement.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/VersionManagement.java
new file mode 100644
index 0000000..eaf5b73
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/VersionManagement.java
@@ -0,0 +1,120 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 版本管理
+ */
+@TableName("t_version_management")
+public class VersionManagement {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 包路径
+     */
+    @TableField("url")
+    private String url;
+    /**
+     * 版本号
+     */
+    @TableField("version")
+    private String version;
+    /**
+     * 更新说明
+     */
+    @TableField("content")
+    private String content;
+    /**
+     * 是否强制更新(0=否,1=是)
+     */
+    @TableField("mandatory")
+    private Integer mandatory;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 类型(1=用户端,2=司机端)
+     */
+    @TableField("type")
+    private Integer type;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getMandatory() {
+        return mandatory;
+    }
+
+    public void setMandatory(Integer mandatory) {
+        this.mandatory = mandatory;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    @Override
+    public String toString() {
+        return "VersionManagement{" +
+                "id=" + id +
+                ", url='" + url + '\'' +
+                ", version='" + version + '\'' +
+                ", content='" + content + '\'' +
+                ", mandatory=" + mandatory +
+                ", insertTime=" + insertTime +
+                ", type=" + type +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java
new file mode 100644
index 0000000..6a1503c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Withdrawal.java
@@ -0,0 +1,220 @@
+package com.stylefeng.guns.modular.system.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 提现记录
+ */
+@TableName("t_pub_withdrawal")
+public class Withdrawal {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 处理时间
+     */
+    @TableField("handleTime")
+    private Date handleTime;
+    /**
+     * 原钱包余额
+     */
+    @TableField("balance")
+    private Double balance;
+    /**
+     * 提现金额
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 状态(1=待处理,2=处理成功,3=处理失败)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 银行账户
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 银行卡持有人姓名
+     */
+    @TableField("name")
+    private String name;
+    /**
+     * 用户类型(1=用户,2=司机)
+     */
+    @TableField("userType")
+    private Integer userType;
+    /**
+     * 申请时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 1:创建,2:修改,3:删除
+     */
+    @TableField("flag")
+    private Integer flag;
+    /**
+     * 提现方式(1=银行卡,2=线下)
+     * @return
+     */
+    @TableField("withdrawalType")
+    private Integer withdrawalType;
+    /**
+     * 银行提交转账申请后的交易序列号,用于查询交易状态
+     * @return
+     */
+    @TableField("serialNo")
+    private String serialNo;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Date getHandleTime() {
+        return handleTime;
+    }
+
+    public void setHandleTime(Date handleTime) {
+        this.handleTime = handleTime;
+    }
+
+    public Double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(Double balance) {
+        this.balance = balance;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getFlag() {
+        return flag;
+    }
+
+    public void setFlag(Integer flag) {
+        this.flag = flag;
+    }
+
+    public Integer getWithdrawalType() {
+        return withdrawalType;
+    }
+
+    public void setWithdrawalType(Integer withdrawalType) {
+        this.withdrawalType = withdrawalType;
+    }
+
+    public String getSerialNo() {
+        return serialNo;
+    }
+
+    public void setSerialNo(String serialNo) {
+        this.serialNo = serialNo;
+    }
+
+    @Override
+    public String toString() {
+        return "Withdrawal{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", handleTime=" + handleTime +
+                ", balance=" + balance +
+                ", money=" + money +
+                ", state=" + state +
+                ", remark='" + remark + '\'' +
+                ", code='" + code + '\'' +
+                ", name='" + name + '\'' +
+                ", userType=" + userType +
+                ", insertTime=" + insertTime +
+                ", flag=" + flag +
+                ", withdrawalType=" + withdrawalType +
+                ", serialNo='" + serialNo + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAdvertisementService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAdvertisementService.java
new file mode 100644
index 0000000..cb1a670
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAdvertisementService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Advertisement;
+import com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper;
+
+import java.util.List;
+
+public interface IAdvertisementService extends IService<Advertisement> {
+
+
+    /**
+     * 获取广告
+     * @param type  广告类型(1:弹窗广告,2:底部广告)
+     * @return
+     * @throws Exception
+     */
+    List<AdvertisementWarpper> queryAdvertisement(String code, Integer type) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAgreementService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAgreementService.java
new file mode 100644
index 0000000..f9ae612
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IAgreementService.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Agreement;
+
+public interface IAgreementService extends IService<Agreement> {
+
+
+    /**
+     * 获取协议内容
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    String queryByType(Integer type) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBankCardService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBankCardService.java
new file mode 100644
index 0000000..823bdae
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IBankCardService.java
@@ -0,0 +1,42 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.BankCard;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BankCardWarpper;
+
+import java.util.List;
+
+public interface IBankCardService extends IService<BankCard> {
+
+
+    /**
+     * 添加银行卡
+     * @param uid
+     * @param bankNum
+     * @param bank
+     * @param name
+     * @param phone
+     * @param code
+     * @param IdNum
+     * @return
+     */
+    ResultUtil addBankCard(Integer uid, String bankNum, String bank, String name, String phone, String code, String IdNum);
+
+
+    /**
+     * 获取银行卡列表
+     * @param uid
+     * @return
+     */
+    List<BankCardWarpper> queryBankCardList(Integer uid);
+
+
+    /**
+     * 删除银行卡
+     * @param uid
+     * @param id
+     * @return
+     */
+    ResultUtil delBankCard(Integer uid, Integer id);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java
new file mode 100644
index 0000000..6c283b2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICancleOrderService.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.CancleOrder;
+
+
+public interface ICancleOrderService extends IService<CancleOrder> {
+
+
+    /**
+     * 获取取消订单设置
+     * @param type
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    CancleOrder query(Integer type, Integer orderType, Integer companyId) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java
new file mode 100644
index 0000000..8719561
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyCityService.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.model.CompanyCity;
+
+public interface ICompanyCityService extends IService<CompanyCity> {
+
+
+    /**
+     * 根据经纬度获取所属企业
+     * @param lon
+     * @param lat
+     * @return
+     * @throws Exception
+     */
+    Company query(String lon, String lat) throws Exception;
+
+
+    /**
+     * 根据行政编号获取所有企业
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    Company query(String code) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyService.java
new file mode 100644
index 0000000..396786d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICompanyService.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Company;
+
+public interface ICompanyService extends IService<Company> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IComplaintService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IComplaintService.java
new file mode 100644
index 0000000..7e49a25
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IComplaintService.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Complaint;
+
+public interface IComplaintService extends IService<Complaint> {
+
+
+    /**
+     * 添加投诉
+     * @param driverId      司机id
+     * @param reason        投诉原因
+     * @param description   描述
+     * @param uid           投诉人
+     * @throws Exception
+     */
+    void saveData(Integer driverId, String reason, String description, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDeptService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDeptService.java
new file mode 100644
index 0000000..fb02331
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDeptService.java
@@ -0,0 +1,33 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.model.Dept;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 部门服务
+ *
+ * @author fengshuonan
+ * @date 2017-04-27 17:00
+ */
+public interface IDeptService extends IService<Dept> {
+
+    /**
+     * 删除部门
+     */
+    void deleteDept(Integer deptId);
+
+    /**
+     * 获取ztree的节点列表
+     */
+    List<ZTreeNode> tree();
+
+    /**
+     * 获取所有部门列表
+     */
+    List<Map<String, Object>> list(@Param("condition") String condition);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDictService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDictService.java
new file mode 100644
index 0000000..6e3c3c4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDictService.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Dict;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 字典服务
+ *
+ * @author fengshuonan
+ * @date 2017-04-27 17:00
+ */
+public interface IDictService extends IService<Dict> {
+
+    /**
+     * 添加字典
+     */
+    void addDict(String dictCode,String dictName,String dictTips, String dictValues);
+
+    /**
+     * 编辑字典
+     */
+    void editDict(Integer dictId,String dictCode, String dictName,String dictTips, String dicts);
+
+    /**
+     * 删除字典
+     */
+    void delteDict(Integer dictId);
+
+    /**
+     * 根据编码获取词典列表
+     */
+    List<Dict> selectByCode(@Param("code") String code);
+
+    /**
+     * 根据父类编码获取词典列表
+     */
+    List<Dict> selectByParentCode(@Param("code") String code);
+
+    /**
+     * 查询字典列表
+     */
+    List<Map<String, Object>> list(@Param("condition") String conditiion);
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverOrdersService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverOrdersService.java
new file mode 100644
index 0000000..51b0526
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverOrdersService.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.DriverOrders;
+
+import java.util.List;
+
+public interface IDriverOrdersService extends IService<DriverOrders> {
+
+    /**
+     * 接单设置操作
+     * @param uid
+     * @param type
+     * @throws Exception
+     */
+    void updateOrders(Integer uid, Integer type) throws Exception;
+
+
+    /**
+     * 获取设置的推单规则
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Integer> queryOrders(Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
new file mode 100644
index 0000000..9178d43
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
@@ -0,0 +1,63 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IDriverService extends IService<Driver> {
+
+
+    /**
+     * 获取distance公里内空闲司机数量
+     * @param type
+     * @param lon
+     * @param lat
+     * @return
+     * @throws Exception
+     */
+    List<Driver> queryIdleDriver(Integer type, Double lon, Double lat, Double distance, Integer companyId) throws Exception;
+
+
+    /**
+     * 获取给定车型且空闲的司机
+     * @param type
+     * @param serverCarModelId
+     * @param lon
+     * @param lat
+     * @param distance
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception;
+
+
+    /**
+     * 根据订单id获取司机数据
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryOrderDriver(Integer orderId, Integer orderType) throws Exception;
+
+
+    /**
+     * 获取司机详情
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryDriverInfo(Integer id) throws Exception;
+
+
+    /**
+     * 获取司机的业务类型
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<BaseWarpper> queryBusiness(Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverServiceService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverServiceService.java
new file mode 100644
index 0000000..1119edb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverServiceService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.DriverService;
+
+import java.util.List;
+
+public interface IDriverServiceService extends IService<DriverService> {
+
+
+    /**
+     * 获取司机服务业务
+     * @param driverId
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    List<DriverService> query(Integer driverId, Integer...type) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedbackService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedbackService.java
new file mode 100644
index 0000000..5eb3bea
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IFeedbackService.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Feedback;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+public interface IFeedbackService extends IService<Feedback> {
+
+
+    /**
+     * 反馈操作
+     * @param content
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil feedback(String content, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IGDInterfaceService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IGDInterfaceService.java
new file mode 100644
index 0000000..e40f4c2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IGDInterfaceService.java
@@ -0,0 +1,10 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.GDInterface;
+
+public interface IGDInterfaceService extends IService<GDInterface> {
+
+
+    void saveData(String name, String explanation);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
new file mode 100644
index 0000000..e1a2fd3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIncomeService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Income;
+
+public interface IIncomeService extends IService<Income> {
+
+
+    /**
+     * 添加数据
+     * @param userType
+     * @param objectId
+     * @param type
+     * @param incomeId
+     * @param money
+     * @throws Exception
+     */
+    void saveData(Integer userType, Integer objectId, Integer type, Integer incomeId, Integer orderType, Double money) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralGoodsService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralGoodsService.java
new file mode 100644
index 0000000..3c18397
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralGoodsService.java
@@ -0,0 +1,21 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.IntegralGoods;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IIntegralGoodsService extends IService<IntegralGoods> {
+
+
+    /**
+     * 获取商品列表
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryGoods(Integer pageNum, Integer size) throws Exception;
+
+
+    Map<String, Object> queryGoodsInfo(Integer id) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralOrderService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralOrderService.java
new file mode 100644
index 0000000..69683ad
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IIntegralOrderService.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.IntegralOrder;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IIntegralOrderService extends IService<IntegralOrder> {
+
+
+    /**
+     * 保存订单
+     * @param integralOrder
+     * @throws Exception
+     */
+    ResultUtil addIntegralOrder(IntegralOrder integralOrder, Integer uid) throws Exception;
+
+
+    /**
+     * 获取历史记录
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryConvertHistory(Integer pageNum, Integer size, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IInvoiceService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IInvoiceService.java
new file mode 100644
index 0000000..cd527e6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IInvoiceService.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Invoice;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IInvoiceService extends IService<Invoice> {
+
+    /**
+     * 开票操作
+     * @param invoice
+     * @param order
+     * @throws Exception
+     */
+    void invoicing(Invoice invoice, String order, Integer uid) throws Exception;
+
+
+    /**
+     * 获取发票历史记录
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyInvoice(Integer pageNum, Integer size, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILoginLogService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILoginLogService.java
new file mode 100644
index 0000000..d0f4290
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ILoginLogService.java
@@ -0,0 +1,24 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.LoginLog;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 登录记录 服务类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+public interface ILoginLogService extends IService<LoginLog> {
+
+    /**
+     * 获取登录日志列表
+     */
+    List<Map<String, Object>> getLoginLogs(Page<LoginLog> page, String beginTime, String endTime, String logName, String orderByField, boolean asc);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IMenuService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IMenuService.java
new file mode 100644
index 0000000..b976165
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IMenuService.java
@@ -0,0 +1,94 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.core.node.MenuNode;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.model.Menu;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 菜单服务
+ *
+ * @author fengshuonan
+ * @date 2017-05-05 22:19
+ */
+public interface IMenuService extends IService<Menu> {
+
+    /**
+     * 删除菜单
+     *
+     * @author stylefeng
+     * @Date 2017/5/5 22:20
+     */
+    void delMenu(Long menuId);
+
+    /**
+     * 删除菜单包含所有子菜单
+     *
+     * @author stylefeng
+     * @Date 2017/6/13 22:02
+     */
+    void delMenuContainSubMenus(Long menuId);
+
+    /**
+     * 根据条件查询菜单
+     *
+     * @return
+     * @date 2017年2月12日 下午9:14:34
+     */
+    List<Map<String, Object>> selectMenus(@Param("condition") String condition, @Param("level") String level);
+
+    /**
+     * 根据条件查询菜单
+     *
+     * @return
+     * @date 2017年2月12日 下午9:14:34
+     */
+    List<Long> getMenuIdsByRoleId(@Param("roleId") Integer roleId);
+
+    /**
+     * 获取菜单列表树
+     *
+     * @return
+     * @date 2017年2月19日 下午1:33:51
+     */
+    List<ZTreeNode> menuTreeList();
+
+    /**
+     * 获取菜单列表树
+     *
+     * @return
+     * @date 2017年2月19日 下午1:33:51
+     */
+    List<ZTreeNode> menuTreeListByMenuIds(List<Long> menuIds);
+
+    /**
+     * 删除menu关联的relation
+     *
+     * @param menuId
+     * @return
+     * @date 2017年2月19日 下午4:10:59
+     */
+    int deleteRelationByMenu(Long menuId);
+
+    /**
+     * 获取资源url通过角色id
+     *
+     * @param roleId
+     * @return
+     * @date 2017年2月19日 下午7:12:38
+     */
+    List<String> getResUrlsByRoleId(Integer roleId);
+
+    /**
+     * 根据角色获取菜单
+     *
+     * @param roleIds
+     * @return
+     * @date 2017年2月19日 下午10:35:40
+     */
+    List<MenuNode> getMenusByRoleIds(List<Integer> roleIds);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INettyService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INettyService.java
new file mode 100644
index 0000000..43a175b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INettyService.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper;
+
+import java.util.List;
+
+public interface INettyService {
+
+
+    /**
+     * 获取下单推送完后没有司机下单的提醒
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<EndPushWarpper> queryEndPush(Integer orderId, Integer orderType, Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<OrderServerWarpper> queryOrderServer(Integer orderId, Integer orderType, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INoticeService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INoticeService.java
new file mode 100644
index 0000000..ced40b4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/INoticeService.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Notice;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 通知表 服务类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+public interface INoticeService extends IService<Notice> {
+
+    /**
+     * 获取通知列表
+     */
+    List<Map<String, Object>> list(String condition);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOfflineTravelPaymentService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOfflineTravelPaymentService.java
new file mode 100644
index 0000000..611bc4c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOfflineTravelPaymentService.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OfflineTravelPayment;
+
+public interface IOfflineTravelPaymentService extends IService<OfflineTravelPayment> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityBusinessService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityBusinessService.java
new file mode 100644
index 0000000..cea641f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityBusinessService.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OpenCityBusiness;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+
+import java.util.List;
+
+public interface IOpenCityBusinessService extends IService<OpenCityBusiness> {
+
+
+    /**
+     * 获取业务类型
+     * @param province  省名
+     * @param city      市名称
+     * @param district  区县名称
+     * @return
+     * @throws Exception
+     */
+    List<BaseWarpper> queryBusiness(String province, String city, String district) throws Exception;
+
+
+    /**
+     * 根据选择的城市id获取业务类型
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    List<BaseWarpper> queryBusinessById(Integer id) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java
new file mode 100644
index 0000000..a0030a0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOpenCityService.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OpenCity;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+
+import java.util.List;
+
+public interface IOpenCityService extends IService<OpenCity> {
+
+
+    /**
+     * 获取开通城市列表
+     * @return
+     * @throws Exception
+     */
+    List<BaseWarpper> queryOpenCity() throws Exception;
+
+
+    /**
+     * 判断是否是开通城市
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    boolean openCity(String code) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOperationLogService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOperationLogService.java
new file mode 100644
index 0000000..9c37b6b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOperationLogService.java
@@ -0,0 +1,24 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OperationLog;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 操作日志 服务类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+public interface IOperationLogService extends IService<OperationLog> {
+
+    /**
+     * 获取操作日志列表
+     */
+    List<Map<String, Object>> getOperationLogs(Page<OperationLog> page, String beginTime, String endTime, String logName, String s, String orderByField, boolean asc);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java
new file mode 100644
index 0000000..7df13cd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderCancelService.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OrderCancel;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderCancelService extends IService<OrderCancel> {
+
+
+    /**
+     * 添加数据
+     * @param orderId
+     * @param orderType
+     * @param reason
+     * @param remark
+     * @param payType
+     * @param money
+     * @param state
+     * @throws Exception
+     */
+    Integer saveData(Integer orderId, Integer orderType, String reason, String remark, Integer payType, Double money,
+                     Integer state, Integer userType, Integer uid) throws Exception;
+
+
+    /**
+     * 获取取消数据
+     * @param orderId
+     * @param orderType
+     * @param money
+     * @param payType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    OrderCancel query(Integer orderId, Integer orderType, Double money, Integer payType, Integer state) throws Exception;
+
+
+
+    /**
+     * 获取用户取消记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryCancel(Integer uid, Integer isPay) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java
new file mode 100644
index 0000000..369797b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderEvaluateService.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OrderEvaluate;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderEvaluateService extends IService<OrderEvaluate> {
+
+
+    /**
+     * 添加评价数据
+     * @param orderId
+     * @param orderType
+     * @param fraction
+     * @param content
+     * @throws Exception
+     */
+    ResultUtil saveData(Integer orderId, Integer orderType, Integer fraction, String content) throws Exception;
+
+
+    /**
+     * 获取司机历史评价列表
+     * @param driverId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryOrderEvaluate(Integer driverId, Integer pageNum, Integer size) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderPositionService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderPositionService.java
new file mode 100644
index 0000000..a49a6d3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderPositionService.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.OrderPosition;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderPositionService extends IService<OrderPosition> {
+
+
+    /**
+     * 获取轨迹数据
+     * @param orderId
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryTrack(Integer orderId, Integer orderType) throws Exception;
+
+
+    /**
+     * 获取订单所有坐标
+     * @param orderId
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    List<OrderPosition> queryPosition(Integer orderId, Integer orderType) throws Exception;
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
new file mode 100644
index 0000000..0b02760
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IOrderService.java
@@ -0,0 +1,40 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+
+public interface IOrderService {
+
+
+    /**
+     * 获取预计行驶时间
+     * @param slon  起点经度
+     * @param slat  起点纬度
+     * @param elon  终点经度
+     * @param elat  终点纬度
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat) throws Exception;
+
+
+    /**
+     * APP调用小程序完成微信支付
+     * @param orderId
+     * @param orderType
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content) throws Exception;
+
+
+    /**
+     * 司机线下订单收款
+     * @param driverId
+     * @param money
+     * @return
+     * @throws Exception
+     */
+    ResultUtil driverQrCodePaymentCollection(Integer driverId, Double money, Integer payType) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java
new file mode 100644
index 0000000..f9204a5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPhoneService.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Phone;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IPhoneService extends IService<Phone> {
+
+    /**
+     * 获取所有的系统电话
+     * @return
+     * @throws Exception
+     */
+    List<Phone> queryPhones(String code) throws Exception;
+
+
+    /**
+     * 获取客服电话(个人中心)
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryCustomerPhone(String code) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IProblemService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IProblemService.java
new file mode 100644
index 0000000..8adc78b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IProblemService.java
@@ -0,0 +1,32 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Problem;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IProblemService extends IService<Problem> {
+
+
+    /**
+     * 添加留言
+     * @param content
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil leaveMessage(String content, Integer uid) throws Exception;
+
+
+    /**
+     * 获取提交的留言列表
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryProblems(Integer pageNum, Integer size, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPushOrderService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPushOrderService.java
new file mode 100644
index 0000000..aa1bfc8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IPushOrderService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.PushOrder;
+
+import java.util.List;
+
+public interface IPushOrderService extends IService<PushOrder> {
+
+
+    /**
+     * 获取推送配置数据
+     * @param type
+     * @param pushType
+     * @return
+     * @throws Exception
+     */
+    List<PushOrder> querys(Integer type, Integer pushType, Integer companyId) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRedPacketRecordService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRedPacketRecordService.java
new file mode 100644
index 0000000..f869b80
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRedPacketRecordService.java
@@ -0,0 +1,8 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.RedPacketRecord;
+
+public interface IRedPacketRecordService extends IService<RedPacketRecord> {
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRelationService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRelationService.java
new file mode 100644
index 0000000..4214359
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRelationService.java
@@ -0,0 +1,16 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Relation;
+
+/**
+ * <p>
+ * 角色和菜单关联表 服务类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+public interface IRelationService extends IService<Relation> {
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRoleService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRoleService.java
new file mode 100644
index 0000000..cc7332d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IRoleService.java
@@ -0,0 +1,68 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.model.Role;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 角色相关业务
+ *
+ * @author fengshuonan
+ * @Date 2017年1月10日 下午9:11:57
+ */
+public interface IRoleService extends IService<Role> {
+
+    /**
+     * 设置某个角色的权限
+     *
+     * @param roleId 角色id
+     * @param ids    权限的id
+     * @date 2017年2月13日 下午8:26:53
+     */
+    void setAuthority(Integer roleId, String ids);
+
+    /**
+     * 删除角色
+     *
+     * @author stylefeng
+     * @Date 2017/5/5 22:24
+     */
+    void delRoleById(Integer roleId);
+
+    /**
+     * 根据条件查询角色列表
+     *
+     * @return
+     * @date 2017年2月12日 下午9:14:34
+     */
+    List<Map<String, Object>> selectRoles(@Param("condition") String condition);
+
+    /**
+     * 删除某个角色的所有权限
+     *
+     * @param roleId 角色id
+     * @return
+     * @date 2017年2月13日 下午7:57:51
+     */
+    int deleteRolesById(@Param("roleId") Integer roleId);
+
+    /**
+     * 获取角色列表树
+     *
+     * @return
+     * @date 2017年2月18日 上午10:32:04
+     */
+    List<ZTreeNode> roleTreeList();
+
+    /**
+     * 获取角色列表树
+     *
+     * @return
+     * @date 2017年2月18日 上午10:32:04
+     */
+    List<ZTreeNode> roleTreeListByRoleId(String[] roleId);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
new file mode 100644
index 0000000..de7da0c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IServerCarModelService.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.ServerCarModel;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IServerCarModelService extends IService<ServerCarModel> {
+
+
+    /**
+     * 根据起点和终点获取车型和金额
+     * @param startLonLat
+     * @param endLonLat
+     * @param type          业务类型
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type) throws Exception;
+
+
+    /**
+     * 获取业务类型对应的所有车型
+     * @param type
+     * @return
+     */
+    List<Map<String, Object>> queryServerCarModels(Integer type);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISmsrecordService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISmsrecordService.java
new file mode 100644
index 0000000..2503249
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISmsrecordService.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Smsrecord;
+
+public interface ISmsrecordService extends IService<Smsrecord> {
+
+    /**
+     * 添加数据
+     * @param type
+     * @param phone
+     * @param code
+     * @param content
+     * @throws Exception
+     */
+    void saveData(Integer type, String phone, String code, String content) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISystemNoticeService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISystemNoticeService.java
new file mode 100644
index 0000000..6d7e663
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ISystemNoticeService.java
@@ -0,0 +1,65 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.SystemNotice;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ISystemNoticeService extends IService<SystemNotice> {
+
+
+    /**
+     * 添加系统消息
+     * @param userType
+     * @param content
+     * @param userId
+     * @throws Exception
+     */
+    void addSystemNotice(Integer userType, String content, Integer userId, Integer noticeType) throws Exception;
+
+
+    /**
+     * 获取未阅读数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    int queryNoReadNoticeNum(Integer uid) throws Exception;
+
+    /**
+     * 获取消息列列表
+     * @param type
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryList(Integer type, Integer pageNum, Integer size, Integer uid);
+
+
+    /**
+     * 阅读操作
+     * @param id
+     * @param uid
+     * @throws Exception
+     */
+    void readSystemNotice(Integer id, Integer uid) throws Exception;
+
+
+    /**
+     * 删除公告或消息
+     * @param id
+     * @param uid
+     * @throws Exception
+     */
+    void delSystemNotice(Integer id, Integer uid) throws Exception;
+
+
+    /**
+     * 清空公告或消息
+     * @param uid
+     * @throws Exception
+     */
+    void clearSystemNotice(Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITNoticesService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITNoticesService.java
new file mode 100644
index 0000000..2531177
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITNoticesService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.TNotices;
+import com.stylefeng.guns.modular.system.warpper.TNoticeWarpper;
+
+import java.util.List;
+
+public interface ITNoticesService extends IService<TNotices> {
+
+
+    /**
+     * 获取公告列表
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    List<TNoticeWarpper> queryNotices(Integer type) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java
new file mode 100644
index 0000000..4946e5a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityBalanceService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.UserActivityBalance;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IUserActivityBalanceService extends IService<UserActivityBalance> {
+
+
+    /**
+     * 获取满足条件的活动
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> query(Double money, Integer companyId) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRedenvelopeService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRedenvelopeService.java
new file mode 100644
index 0000000..83318b6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRedenvelopeService.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.UserActivityRedenvelope;
+
+import java.util.Date;
+import java.util.Map;
+
+public interface IUserActivityRedenvelopeService extends IService<UserActivityRedenvelope> {
+
+
+    /**
+     * 获取红包活动
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> query(Integer companyId, Date travelTime) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java
new file mode 100644
index 0000000..222d297
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserActivityRegisteredService.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.UserActivityRegistered;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IUserActivityRegisteredService extends IService<UserActivityRegistered> {
+
+
+    /**
+     * 获取当前有效的注册活动
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> query(Integer companyId) throws Exception;
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java
new file mode 100644
index 0000000..84636e8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserCouponRecordService.java
@@ -0,0 +1,69 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.UserCouponRecord;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IUserCouponRecordService extends IService<UserCouponRecord> {
+
+
+    /**
+     * 获取可用优惠券数量
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param couponUseType
+     * @return
+     * @throws Exception
+     */
+    int queryAvailable(Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money) throws Exception;
+
+
+    /**
+     * 获取优惠券列表
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryCoupon(Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money, Integer pageNum, Integer size) throws Exception;
+
+
+    /**
+     * 获取优惠券列表
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyCoupons(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception;
+
+
+    /**
+     * 删除优惠券
+     * @param id
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil delMyCoupon(Integer id, Integer uid) throws Exception;
+
+
+    /**
+     * 赠送优惠券
+     * @param id
+     * @param uid
+     * @param userId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil handselCoupon(Integer id, Integer uid, Integer userId) throws Exception;
+
+
+    /**
+     * 修改过期的优惠券状态
+     * @throws Exception
+     */
+    void updateTimeOut() throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
new file mode 100644
index 0000000..ee7d747
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserInfoService.java
@@ -0,0 +1,235 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.Map;
+
+public interface IUserInfoService extends IService<UserInfo> {
+
+
+    /**
+     * 获取短信验证码
+     * @param phone
+     * @return
+     */
+    ResultUtil queryCaptcha(String phone, Integer type) throws Exception;
+
+
+    /**
+     * 校验短信验证码
+     * @param phone
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    boolean checkCaptcha(String phone, String code) throws Exception;
+
+
+    /**
+     * 手机验证码登录
+     * @param phone
+     * @param code
+     * @return
+     */
+    ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, String registAreaCode,String loginType) throws Exception;
+
+    /**
+     * 手机一键登录
+     * @param accessToken
+     * @param registIp
+     * @param registAreaCode
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<LoginWarpper> oneClickLogin(String accessToken, String registIp, String registAreaCode,String loginType,String androidOrIos) throws Exception;
+
+
+
+    ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType,String loginType) throws Exception;
+
+
+    /**
+     * 手机号码查询用户
+     * @param phone
+     * @return
+     * @throws Exception
+     */
+    UserInfo queryByPhone(String phone) throws Exception;
+
+
+    /**
+     * 账号密码登录
+     * @param phone
+     * @param password
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<LoginWarpper> userLogin(String phone, String password,String loginType) throws Exception;
+
+
+    /**
+     * 微信授权登录
+     * @param type              登录端口(1:APP登录,2:小程序)
+     * @param openid            微信openid
+     * @param unionid           微信unionid
+     * @param jscode            小程序登录时的jscode临时凭证
+     * @param registIp          ip地址
+     * @param registAreaCode    当前定位区县行政编号(6位)
+     * @return
+     */
+    ResultUtil<LoginWarpper> wxLogin(Integer type, String openid, String unionid, String jscode, String registIp, String registAreaCode, Integer sex, String nickName, String avatar,String loginType) throws Exception;
+
+
+    /**
+     * 忘记密码的操作
+     * @param phone
+     * @param code
+     * @param password
+     * @return
+     * @throws Exception
+     */
+    ResultUtil forgetPassword(String phone, String code, String password) throws Exception;
+
+
+    /**
+     * 设置手机号码
+     * @param uid
+     * @param phone
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    ResultUtil bindingPhone(Integer uid, String phone, String code,String loginType) throws Exception;
+
+
+    /**
+     * 从redis中获取用户id
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    Integer getUserIdFormRedis(HttpServletRequest request) throws Exception;
+
+
+    /**
+     * 获取用户详情
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryUserInfo(Integer uid) throws Exception;
+
+
+    /**
+     * 电话号码查询用户
+     * @param phone
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryUser(String phone) throws Exception;
+
+
+    /**
+     * 设置紧急联系人
+     * @param name
+     * @param phone
+     * @param uid
+     * @throws Exception
+     */
+    void setUrgentUser(String name, String phone, Integer uid) throws Exception;
+
+
+    /**
+     * 充值余额
+     * @param payType
+     * @param money
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil depositBalance(Integer payType, Double money, Integer uid, Integer type) throws Exception;
+
+
+    /**
+     * 修改手机号码
+     * @param code
+     * @param phone
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil updatePhone(String code, String phone, Integer uid) throws Exception;
+
+
+    /**
+     * 修改密码
+     * @param password
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil updatePass(String password, Integer uid) throws Exception;
+
+
+    /**
+     * 修改个人信息
+     * @param avatar
+     * @param nickname
+     * @param sex
+     * @param birthday
+     * @param uid
+     * @throws Exception
+     */
+    void updateInfo(String avatar, String nickname, Integer sex, Date birthday, Integer uid) throws Exception;
+
+    /**
+     * 获取实名认证数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryRealName(Integer uid) throws Exception;
+
+
+    /**
+     * 充值余额完成支付后的处理
+     * @param id            用户id
+     * @param order_id      工行订单id
+     * @param paymentRecordId   预支付订单id
+     * @param type          支付类型(1=微信,2=支付宝)
+     * @throws Exception
+     */
+    void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer type) throws Exception;
+
+
+    /**
+     * H5接入道行龙城实现登录
+     * @param authCode
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<LoginWarpper> dxlcLogin(String authCode, String registAreaCode,String loginType) throws Exception;
+
+
+    /**
+     * 小程序中手机号码登录后绑定微信
+     * @param userId
+     * @param jscode
+     * @return
+     * @throws Exception
+     */
+    ResultUtil phoneLoginBindingWeChat(Integer userId, String jscode) throws Exception;
+
+
+
+    void addCoupon(UserInfo userInfo) throws Exception;
+
+
+
+    String getDefaultName();
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserRedPacketRecordService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserRedPacketRecordService.java
new file mode 100644
index 0000000..e378b4e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserRedPacketRecordService.java
@@ -0,0 +1,40 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.UserRedPacketRecord;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IUserRedPacketRecordService extends IService<UserRedPacketRecord> {
+
+
+    /**
+     * 获取不大于money值的红包数据
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param orderType
+     * @param money
+     * @return
+     * @throws Exception
+     */
+    UserRedPacketRecord query(Integer uid, Integer companyId, Integer state, Integer orderType, Double money) throws Exception;
+
+
+
+    UserRedPacketRecord query_(Integer uid, Integer companyId, Integer state, Integer orderType, Double money) throws Exception;
+
+
+
+    /**
+     * 获取个人红包列表(未使用)
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyRedEnvelope(Integer pageNum, Integer size, Integer uid) throws Exception;
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java
new file mode 100644
index 0000000..3869242
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IUserService.java
@@ -0,0 +1,46 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.core.datascope.DataScope;
+import com.stylefeng.guns.modular.system.model.User;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 管理员表 服务类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+public interface IUserService extends IService<User> {
+
+    /**
+     * 修改用户状态
+     */
+    int setStatus(@Param("userId") Integer userId, @Param("status") int status);
+
+    /**
+     * 修改密码
+     */
+    int changePwd(@Param("userId") Integer userId, @Param("pwd") String pwd);
+
+    /**
+     * 根据条件查询用户列表
+     */
+    List<Map<String, Object>> selectUsers(@Param("dataScope") DataScope dataScope, @Param("name") String name, @Param("beginTime") String beginTime, @Param("endTime") String endTime, @Param("deptid") Integer deptid);
+
+    /**
+     * 设置用户的角色
+     */
+    int setRoles(@Param("userId") Integer userId, @Param("roleIds") String roleIds);
+
+    /**
+     * 通过账号获取用户
+     */
+    User getByAccount(@Param("account") String account);
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVerifiedService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVerifiedService.java
new file mode 100644
index 0000000..fb30c6f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVerifiedService.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Verified;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+public interface IVerifiedService extends IService<Verified> {
+
+    /**
+     * 实名认证操作
+     * @param verified
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil verified(Verified verified, Integer uid) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVersionManagementService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVersionManagementService.java
new file mode 100644
index 0000000..a8c921b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IVersionManagementService.java
@@ -0,0 +1,17 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.VersionManagement;
+
+import java.util.Map;
+
+public interface IVersionManagementService extends IService<VersionManagement> {
+
+
+    /**
+     * 获取最新版本数据
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryNewVersion() throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java
new file mode 100644
index 0000000..5e47399
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IWithdrawalService.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.modular.system.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.model.Withdrawal;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IWithdrawalService extends IService<Withdrawal> {
+
+
+    /**
+     * 提现操作
+     * @param money
+     * @param code
+     * @param name
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil withdrawal(Double money, String code, String name, Integer uid) throws Exception;
+
+
+    /**
+     * 提现操作
+     * @param money
+     * @throws Exception
+     */
+    ResultUtil withdrawal1(Double money, String acctName, Integer bankCardId, Integer uid) throws Exception;
+
+
+
+    /**
+     * 获取历史提交数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryWithdrawal(Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+    /**
+     * 提现审核处理
+     * @param id
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    ResultUtil withdrawalAudit(Integer id, Integer state) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AdvertisementServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AdvertisementServiceImpl.java
new file mode 100644
index 0000000..d530784
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AdvertisementServiceImpl.java
@@ -0,0 +1,40 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.AdvertisementMapper;
+import com.stylefeng.guns.modular.system.model.Advertisement;
+import com.stylefeng.guns.modular.system.service.IAdvertisementService;
+import com.stylefeng.guns.modular.system.warpper.AdvertisementWarpper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Service
+public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, Advertisement> implements IAdvertisementService {
+
+    @Resource
+    private AdvertisementMapper advertisementMapper;
+
+
+    /**
+     * 获取广告
+     * @param type  广告类型(1:弹窗广告,2:底部广告)
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<AdvertisementWarpper> queryAdvertisement(String code, Integer type) throws Exception {
+        String province = code.substring(0, 2) + "0000";
+        String city = code.substring(0, 4) + "00";
+        List<AdvertisementWarpper> list = advertisementMapper.queryAdvertisement(code, type);
+        if(list.size() == 0){
+            list = advertisementMapper.queryAdvertisement(city, type);
+        }
+        if(list.size() == 0){
+            list = advertisementMapper.queryAdvertisement(province, type);
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AgreementServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AgreementServiceImpl.java
new file mode 100644
index 0000000..085a374
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/AgreementServiceImpl.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.AgreementMapper;
+import com.stylefeng.guns.modular.system.model.Agreement;
+import com.stylefeng.guns.modular.system.service.IAgreementService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Service
+public class AgreementServiceImpl extends ServiceImpl<AgreementMapper, Agreement> implements IAgreementService {
+
+    @Resource
+    private AgreementMapper agreementMapper;
+
+
+    /**
+     * 获取协议内容
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public String queryByType(Integer type) throws Exception {
+        String s = agreementMapper.queryByType(type, 1);
+        if(ToolUtil.isEmpty(s)){
+            s = agreementMapper.queryByType(type, null);
+        }
+        return s;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BankCardServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BankCardServiceImpl.java
new file mode 100644
index 0000000..4ca76d3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/BankCardServiceImpl.java
@@ -0,0 +1,92 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.BankCardMapper;
+import com.stylefeng.guns.modular.system.model.BankCard;
+import com.stylefeng.guns.modular.system.service.IBankCardService;
+import com.stylefeng.guns.modular.system.util.LiuZhouBank.ProtocolSignUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BankCardWarpper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class BankCardServiceImpl extends ServiceImpl<BankCardMapper, BankCard> implements IBankCardService {
+
+
+
+    @Override
+    public ResultUtil addBankCard(Integer uid, String bankNum, String bank, String name, String phone, String code, String IdNum) {
+        BankCard bankCard = this.selectOne(new EntityWrapper<BankCard>().eq("code", bankNum).eq("userType", 1).eq("userId", uid));
+        if(null != bankCard){
+            return ResultUtil.error("该银行卡号已添加");
+        }
+
+        Map<String, String> map = ProtocolSignUtil.protocolSign(IdNum, phone, name, bankNum, code);
+        String code1 = map.get("code");
+        if("01".equals(code1)){
+            String msg = map.get("msg");
+            return ResultUtil.error(msg);
+        }
+        String signNum = map.get("signNum");
+        String acctNumSuffix = map.get("acctNumSuffix");
+        bankCard = new BankCard();
+        bankCard.setBank(bank);
+        bankCard.setCode(bankNum);
+        bankCard.setAcctNumSuffix(acctNumSuffix);
+        bankCard.setName(name);
+        bankCard.setPhone(phone);
+        bankCard.setIdNum(IdNum);
+        bankCard.setUserType(1);
+        bankCard.setUserId(uid);
+        bankCard.setSignNum(signNum);
+        bankCard.setInsertTime(new Date());
+        this.insert(bankCard);
+        return ResultUtil.success();
+    }
+
+    @Override
+    public List<BankCardWarpper> queryBankCardList(Integer uid) {
+        List<BankCard> bankCards = this.selectList(new EntityWrapper<BankCard>().eq("userType", 1).eq("userId", uid));
+        List<BankCardWarpper> list = new ArrayList<>();
+        for (BankCard bankCard : bankCards) {
+            BankCardWarpper bankCardWarpper = new BankCardWarpper();
+            BeanUtils.copyProperties(bankCard, bankCardWarpper);
+            bankCardWarpper.setCode("************" + bankCard.getAcctNumSuffix());
+            list.add(bankCardWarpper);
+        }
+        return list;
+    }
+
+
+    @Override
+    public ResultUtil delBankCard(Integer uid, Integer id) {
+        BankCard bankCard = this.selectById(id);
+        if(bankCard.getUserId().compareTo(uid) != 0){
+            return ResultUtil.error("删除失败");
+        }
+
+        Map<String, String> map = ProtocolSignUtil.queryProtocolSign(bankCard.getSignNum(), bankCard.getCode());
+        String code = map.get("code");
+        if("01".equals(code)){
+            String msg = map.get("msg");
+            return ResultUtil.error(msg);
+        }
+        String sugnNum = map.get("SignNum");
+        String signStatus = map.get("SignStatus");
+        Map<String, String> map1 = ProtocolSignUtil.protocolRescind(sugnNum);
+        String code1 = map1.get("code");
+        if("01".equals(code1)){
+            String msg = map1.get("msg");
+            return ResultUtil.error(msg);
+        }
+        this.deleteById(id);
+        return ResultUtil.success();
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java
new file mode 100644
index 0000000..e2ebe75
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CancleOrderServiceImpl.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.CancleOrderMapper;
+import com.stylefeng.guns.modular.system.model.CancleOrder;
+import com.stylefeng.guns.modular.system.service.ICancleOrderService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Service
+public class CancleOrderServiceImpl extends ServiceImpl<CancleOrderMapper, CancleOrder> implements ICancleOrderService {
+
+    @Resource
+    private CancleOrderMapper cancleOrderMapper;
+
+
+    /**
+     * 获取取消订单配置
+     * @param type
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public CancleOrder query(Integer type, Integer orderType, Integer companyId) throws Exception {
+        return cancleOrderMapper.query(type, orderType, companyId);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java
new file mode 100644
index 0000000..e67ec35
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyCityServiceImpl.java
@@ -0,0 +1,74 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.CompanyCityMapper;
+import com.stylefeng.guns.modular.system.dao.CompanyMapper;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.model.CompanyCity;
+import com.stylefeng.guns.modular.system.service.ICompanyCityService;
+import com.stylefeng.guns.modular.system.util.GDMapGeocodingUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class CompanyCityServiceImpl extends ServiceImpl<CompanyCityMapper, CompanyCity> implements ICompanyCityService {
+
+    @Resource
+    private CompanyMapper companyMapper;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+
+    /**
+     * 根据经纬度获取所属企业
+     * @param lon
+     * @param lat
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Company query(String lon, String lat) throws Exception {
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(lon), String.valueOf(lat));
+        String districtCode = geocode.get("districtCode");
+        Company query = this.query(districtCode);
+        return query;
+    }
+
+
+    /**
+     * 根据行政编号获取所属企业
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Company query(String code) throws Exception {
+        if(ToolUtil.isEmpty(code)){
+            return null;
+        }
+        String province = code.substring(0, 2) + "0000";
+        String city = code.substring(0, 4) + "00";
+        List<Company> query = companyMapper.query(province, city, code);
+        if(query.size() == 0){
+            query = companyMapper.query(province, city, null);
+        }
+        if(query.size() == 0){
+            query = companyMapper.query(province, null, null);
+        }
+        for(int i = 3; i > 0; i--){
+            for(Company company : query){
+                if(company.getType() == i){
+                    return company;
+                }
+            }
+        }
+        return null;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyServiceImpl.java
new file mode 100644
index 0000000..b305d08
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CompanyServiceImpl.java
@@ -0,0 +1,12 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.CompanyMapper;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.service.ICompanyService;
+import org.springframework.stereotype.Service;
+
+
+@Service
+public class CompanyServiceImpl extends ServiceImpl<CompanyMapper, Company> implements ICompanyService {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ComplaintServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ComplaintServiceImpl.java
new file mode 100644
index 0000000..2e3495c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ComplaintServiceImpl.java
@@ -0,0 +1,57 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.ComplaintMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.model.Complaint;
+import com.stylefeng.guns.modular.system.model.SensitiveWords;
+import com.stylefeng.guns.modular.system.service.IComplaintService;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+
+@Service
+public class ComplaintServiceImpl extends ServiceImpl<ComplaintMapper, Complaint> implements IComplaintService {
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+
+
+    /**
+     * 添加投诉
+     * @param driverId      司机id
+     * @param reason        投诉原因
+     * @param description   描述
+     * @param uid           投诉人
+     * @throws Exception
+     */
+    @Override
+    public void saveData(Integer driverId, String reason, String description, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(description)){
+            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+            for(SensitiveWords s : sensitiveWords){
+                description = description.replaceAll(s.getContent(), "***");
+            }
+        }
+        Complaint complaint = new Complaint();
+        complaint.setInsertTime(new Date());
+        complaint.setDriverId(driverId);
+        complaint.setReason(reason);
+        complaint.setDescription(description);
+        complaint.setUserId(uid);
+        complaint.setIsHandle(0);
+        this.insert(complaint);
+
+        systemNoticeService.addSystemNotice(1, "您的投诉已提交成功,我们会尽快处理!", uid, 1);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DeptServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DeptServiceImpl.java
new file mode 100644
index 0000000..0463d01
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DeptServiceImpl.java
@@ -0,0 +1,47 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.dao.DeptMapper;
+import com.stylefeng.guns.modular.system.model.Dept;
+import com.stylefeng.guns.modular.system.service.IDeptService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Transactional
+public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
+
+    @Resource
+    private DeptMapper deptMapper;
+
+    @Override
+    public void deleteDept(Integer deptId) {
+        Dept dept = deptMapper.selectById(deptId);
+
+        Wrapper<Dept> wrapper = new EntityWrapper<>();
+        wrapper = wrapper.like("pids", "%[" + dept.getId() + "]%");
+        List<Dept> subDepts = deptMapper.selectList(wrapper);
+        for (Dept temp : subDepts) {
+            temp.deleteById();
+        }
+
+        dept.deleteById();
+    }
+
+    @Override
+    public List<ZTreeNode> tree() {
+        return this.baseMapper.tree();
+    }
+
+    @Override
+    public List<Map<String, Object>> list(String condition) {
+        return this.baseMapper.list(condition);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DictServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DictServiceImpl.java
new file mode 100644
index 0000000..6757882
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DictServiceImpl.java
@@ -0,0 +1,101 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.common.exception.BizExceptionEnum;
+import com.stylefeng.guns.core.exception.GunsException;
+import com.stylefeng.guns.modular.system.dao.DictMapper;
+import com.stylefeng.guns.modular.system.model.Dict;
+import com.stylefeng.guns.modular.system.service.IDictService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+import static com.stylefeng.guns.core.common.constant.factory.MutiStrFactory.*;
+
+@Service
+@Transactional
+public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements IDictService {
+
+    @Resource
+    private DictMapper dictMapper;
+
+    @Override
+    public void addDict(String dictCode,String dictName,String dictTips, String dictValues) {
+        //判断有没有该字典
+        List<Dict> dicts = dictMapper.selectList(new EntityWrapper<Dict>().eq("code", dictCode).and().eq("pid", 0));
+        if (dicts != null && dicts.size() > 0) {
+            throw new GunsException(BizExceptionEnum.DICT_EXISTED);
+        }
+
+        //解析dictValues
+        List<Map<String, String>> items = parseKeyValue(dictValues);
+
+        //添加字典
+        Dict dict = new Dict();
+        dict.setName(dictName);
+        dict.setCode(dictCode);
+        dict.setTips(dictTips);
+        dict.setNum(0);
+        dict.setPid(0);
+        this.dictMapper.insert(dict);
+
+        //添加字典条目
+        for (Map<String, String> item : items) {
+            String code = item.get(MUTI_STR_CODE);
+            String name = item.get(MUTI_STR_NAME);
+            String num = item.get(MUTI_STR_NUM);
+            Dict itemDict = new Dict();
+            itemDict.setPid(dict.getId());
+            itemDict.setCode(code);
+            itemDict.setName(name);
+
+            try {
+                itemDict.setNum(Integer.valueOf(num));
+            } catch (NumberFormatException e) {
+                throw new GunsException(BizExceptionEnum.DICT_MUST_BE_NUMBER);
+            }
+            this.dictMapper.insert(itemDict);
+        }
+    }
+
+    @Override
+    public void editDict(Integer dictId,String dictCode, String dictName,String dictTips, String dicts) {
+        //删除之前的字典
+        this.delteDict(dictId);
+
+        //重新添加新的字典
+        this.addDict(dictCode,dictName,dictTips, dicts);
+    }
+
+    @Override
+    public void delteDict(Integer dictId) {
+        //删除这个字典的子词典
+        Wrapper<Dict> dictEntityWrapper = new EntityWrapper<>();
+        dictEntityWrapper = dictEntityWrapper.eq("pid", dictId);
+        dictMapper.delete(dictEntityWrapper);
+
+        //删除这个词典
+        dictMapper.deleteById(dictId);
+    }
+
+    @Override
+    public List<Dict> selectByCode(String code) {
+        return this.baseMapper.selectByCode(code);
+    }
+
+    @Override
+    public List<Dict> selectByParentCode(String code) {
+        return this.baseMapper.selectByParentCode(code);
+    }
+
+
+    @Override
+    public List<Map<String, Object>> list(String conditiion) {
+        return this.baseMapper.list(conditiion);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOrdersServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOrdersServiceImpl.java
new file mode 100644
index 0000000..6468f6f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverOrdersServiceImpl.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.DriverOrdersMapper;
+import com.stylefeng.guns.modular.system.model.DriverOrders;
+import com.stylefeng.guns.modular.system.service.IDriverOrdersService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Service
+public class DriverOrdersServiceImpl extends ServiceImpl<DriverOrdersMapper, DriverOrders> implements IDriverOrdersService {
+
+    @Resource
+    private DriverOrdersMapper driverOrdersMapper;
+
+
+    /**
+     * 接单设置
+     * @param uid
+     * @param type
+     * @throws Exception
+     */
+    @Override
+    public void updateOrders(Integer uid, Integer type) throws Exception {
+        DriverOrders query = driverOrdersMapper.query(uid, type);
+        if(null == query){
+            query = new DriverOrders();
+            query.setDriverId(uid);
+            query.setType(type);
+            this.insert(query);
+        }else{
+            this.deleteById(query.getId());
+        }
+    }
+
+
+    /**
+     * 获取推单设置
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Integer> queryOrders(Integer uid) throws Exception {
+        return driverOrdersMapper.queryOrders(uid);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
new file mode 100644
index 0000000..e687179
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -0,0 +1,159 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.DriverMapper;
+import com.stylefeng.guns.modular.system.dao.DriverServiceMapper;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.DriverService;
+import com.stylefeng.guns.modular.system.service.ICompanyCityService;
+import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
+import com.stylefeng.guns.modular.system.util.GeodesyUtil;
+import com.stylefeng.guns.modular.system.util.RedisUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class DriverServiceImpl extends ServiceImpl<DriverMapper, Driver> implements IDriverService {
+
+    @Resource
+    private DriverMapper driverMapper;
+
+    @Resource
+    private DriverServiceMapper driverServiceMapper;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private GeodesyUtil geodesyUtil;
+
+
+
+    /**
+     * 获取distance公里内空闲司机数量
+     * @param type  业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     * @param lon
+     * @param lat
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Driver> queryIdleDriver(Integer type, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
+        List<Driver> drivers = driverMapper.queryIdleDriver(type, companyId);
+        List<Driver> list = new ArrayList<>();
+        for(Driver driver : drivers){
+            String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
+            if(null != value){
+//                Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离
+                Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
+                double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
+                if(d < (distance * 1000)){
+                    list.add(driver);
+                }
+            }
+        }
+        return list;
+    }
+
+
+    /**
+     * 获取给定车型且空闲的司机
+     * @param type
+     * @param serverCarModelId
+     * @param lon
+     * @param lat
+     * @param distance
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Driver> queryIdleDriver(Integer type, Integer serverCarModelId, Double lon, Double lat, Double distance, Integer companyId) throws Exception {
+        List<Driver> drivers = driverMapper.queryIdleDriver_(type, serverCarModelId, companyId);
+        List<Driver> list = new ArrayList<>();
+        for(Driver driver : drivers){
+            String value = redisUtil.getValue("DRIVER" + String.valueOf(driver.getId()));
+            if(null != value){
+//                Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(lon + "," + lat, value, 0);//计算距离
+                Map<String, Double> distance1 = geodesyUtil.getDistance(lon + "," + lat, value);
+                double d = Double.valueOf(distance1.get("WGS84")).doubleValue();
+                if(d < (distance * 1000)){
+                    list.add(driver);
+                }
+            }
+        }
+        return list;
+    }
+
+
+    /**
+     * 根据订单id获取司机数据
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryOrderDriver(Integer orderId, Integer orderType) throws Exception {
+        return driverMapper.queryOrderDriver(orderId, orderType);
+    }
+
+
+    /**
+     * 获取司机详情
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryDriverInfo(Integer id) throws Exception {
+        Map<String, Object> map = driverMapper.queryDriverInfo(id);
+        return map;
+    }
+
+
+    /**
+     * 获取司机的业务类型
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<BaseWarpper> queryBusiness(Integer uid) throws Exception {
+        List<DriverService> list = driverServiceMapper.queryBusiness(uid, null);
+        List<BaseWarpper> maps = new ArrayList<>();
+        for (DriverService d : list){
+            if(d.getType() == 4 || d.getType() == 5 ||d.getType() == 6){
+                continue;
+            }
+            BaseWarpper baseWarpper = new BaseWarpper();
+            baseWarpper.setId(d.getType());
+            switch (d.getType()){
+                case 1:
+                    baseWarpper.setName("专车");
+                    break;
+                case 2:
+                    baseWarpper.setName("出租车");
+                    break;
+                case 3:
+                    baseWarpper.setName("跨城出行");
+                    break;
+            }
+            maps.add(baseWarpper);
+        }
+        return maps;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceServiceImpl.java
new file mode 100644
index 0000000..d77a3af
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceServiceImpl.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.DriverServiceMapper;
+import com.stylefeng.guns.modular.system.model.DriverService;
+import com.stylefeng.guns.modular.system.service.IDriverServiceService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Service
+public class DriverServiceServiceImpl extends ServiceImpl<DriverServiceMapper, DriverService> implements IDriverServiceService {
+
+    @Resource
+    private DriverServiceMapper driverServiceMapper;
+
+
+    /**
+     * 获取司机服务业务
+     * @param driverId
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<DriverService> query(Integer driverId, Integer... type) throws Exception {
+        return driverServiceMapper.queryBusiness(driverId, type);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
new file mode 100644
index 0000000..8ac04d8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/FeedbackServiceImpl.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.FeedbackMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.model.Feedback;
+import com.stylefeng.guns.modular.system.model.SensitiveWords;
+import com.stylefeng.guns.modular.system.service.IFeedbackService;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+
+@Service
+public class FeedbackServiceImpl extends ServiceImpl<FeedbackMapper, Feedback> implements IFeedbackService {
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+
+
+
+    /**
+     * 反馈操作
+     * @param content
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil feedback(String content, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(content)){
+            if(content.length() > 200){
+                return ResultUtil.error("反馈内容过长");
+            }
+            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+            for(SensitiveWords s : sensitiveWords){
+                content = content.replaceAll(s.getContent(), "***");
+            }
+        }
+
+        Feedback feedback = new Feedback();
+        feedback.setContent(content);
+        feedback.setFlag(1);
+        feedback.setInsertTime(new Date());
+        feedback.setState(1);
+        feedback.setType(1);
+        feedback.setUserId(uid);
+        this.insert(feedback);
+
+        systemNoticeService.addSystemNotice(1, "您的反馈已提交成功,我们会尽快处理!", uid, 1);
+        return ResultUtil.success();
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/GDInterfaceServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/GDInterfaceServiceImpl.java
new file mode 100644
index 0000000..95e4438
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/GDInterfaceServiceImpl.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.GDInterfaceMapper;
+import com.stylefeng.guns.modular.system.model.GDInterface;
+import com.stylefeng.guns.modular.system.service.IGDInterfaceService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+
+@Service
+public class GDInterfaceServiceImpl extends ServiceImpl<GDInterfaceMapper, GDInterface> implements IGDInterfaceService {
+
+    @Resource
+    private GDInterfaceMapper gdInterfaceMapper;
+
+
+
+    @Override
+    public void saveData(String name, String explanation) {
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
+        GDInterface query = gdInterfaceMapper.query(name, explanation, sdf.format(date));
+        if(null == query){
+            query = new GDInterface();
+            query.setName(name);
+            query.setExplanation(explanation);
+            query.setTime(sdf.format(date));
+            query.setNum(1);
+            this.insert(query);
+        }else{
+            query.setNum(query.getNum() + 1);
+            this.updateById(query);
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
new file mode 100644
index 0000000..2fa2538
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IncomeServiceImpl.java
@@ -0,0 +1,37 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.IncomeMapper;
+import com.stylefeng.guns.modular.system.model.Income;
+import com.stylefeng.guns.modular.system.service.IIncomeService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+
+@Service
+public class IncomeServiceImpl extends ServiceImpl<IncomeMapper, Income> implements IIncomeService {
+
+
+    /**
+     * 添加数据
+     * @param userType
+     * @param objectId
+     * @param type
+     * @param incomeId
+     * @param money
+     * @throws Exception
+     */
+    @Override
+    public void saveData(Integer userType, Integer objectId, Integer type, Integer incomeId, Integer orderType, Double money) throws Exception {
+        Income income = new Income();
+        income.setUserType(userType);
+        income.setObjectId(objectId);
+        income.setType(type);
+        income.setIncomeId(incomeId);
+        income.setOrderType(orderType);
+        income.setMoney(money);
+        income.setInsertTime(new Date());
+        this.insert(income);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralGoodsServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralGoodsServiceImpl.java
new file mode 100644
index 0000000..ec5ee5e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralGoodsServiceImpl.java
@@ -0,0 +1,44 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.IntegralGoodsMapper;
+import com.stylefeng.guns.modular.system.model.IntegralGoods;
+import com.stylefeng.guns.modular.system.service.IIntegralGoodsService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class IntegralGoodsServiceImpl extends ServiceImpl<IntegralGoodsMapper, IntegralGoods> implements IIntegralGoodsService {
+
+    @Resource
+    private IntegralGoodsMapper integralGoodsMapper;
+
+
+
+    /**
+     * 获取商品列表
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryGoods(Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return integralGoodsMapper.queryGoods(pageNum, size);
+    }
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryGoodsInfo(Integer id) throws Exception {
+        return integralGoodsMapper.queryGoodsInfo(id);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralOrderServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralOrderServiceImpl.java
new file mode 100644
index 0000000..31ebbd0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/IntegralOrderServiceImpl.java
@@ -0,0 +1,84 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.IntegralOrderMapper;
+import com.stylefeng.guns.modular.system.model.IntegralGoods;
+import com.stylefeng.guns.modular.system.model.IntegralOrder;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.service.IIntegralGoodsService;
+import com.stylefeng.guns.modular.system.service.IIntegralOrderService;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class IntegralOrderServiceImpl extends ServiceImpl<IntegralOrderMapper, IntegralOrder> implements IIntegralOrderService {
+
+    @Resource
+    private IntegralOrderMapper integralOrderMapper;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IIntegralGoodsService integralGoodsService;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+
+    /**
+     * 保存订单
+     * @param integralOrder
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil addIntegralOrder(IntegralOrder integralOrder, Integer uid) throws Exception {
+        IntegralGoods integralGoods = integralGoodsService.selectById(integralOrder.getGoodsId());
+        UserInfo userInfo = userInfoService.selectById(uid);
+        if(integralGoods.getIntegral().compareTo(userInfo.getIntegral()) > 0){
+            return ResultUtil.error("兑换失败,积分不足!");
+        }
+        integralOrder.setInsertTime(new Date());
+        integralGoods.setIntegral(integralGoods.getIntegral());
+        integralOrder.setNum(1);
+        integralOrder.setState(1);
+        integralOrder.setUserId(uid);
+        this.insert(integralOrder);
+
+        userInfo.setIntegral(userInfo.getIntegral() - integralGoods.getIntegral());
+        userInfoService.updateById(userInfo);
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您使用" + integralGoods.getIntegral() + "积分成功兑换" + integralGoods.getName() + "商品!", uid, 1);
+        //添加交易明细
+        transactionDetailsService.saveData(uid, "积分兑换", integralGoods.getIntegral().doubleValue(), 2, 2, 1, 7, integralOrder.getId());
+        return ResultUtil.success();
+    }
+
+    /**
+     * 获取历史记录
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryConvertHistory(Integer pageNum, Integer size, Integer uid) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return integralOrderMapper.queryConvertHistory(pageNum, size, uid);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
new file mode 100644
index 0000000..2502751
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/InvoiceServiceImpl.java
@@ -0,0 +1,109 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.InvoiceMapper;
+import com.stylefeng.guns.modular.system.model.Invoice;
+import com.stylefeng.guns.modular.system.service.IInvoiceService;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> implements IInvoiceService {
+
+    @Resource
+    private InvoiceMapper invoiceMapper;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+
+
+    /**
+     * 申请开票操作
+     * @param invoice
+     * @param order
+     * @throws Exception
+     */
+    @Override
+    public void invoicing(Invoice invoice, String order, Integer uid) throws Exception {
+        JSONArray jsonArray = JSON.parseArray(order);
+        BigDecimal sum = new BigDecimal(0);
+        for(int i = 0; i < jsonArray.size(); i++){
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            Integer orderType = jsonObject.getIntValue("type");
+            Integer orderId = jsonObject.getIntValue("id");
+            switch (orderType){
+                case 1://专车
+                    break;
+                case 2://出租车
+                    OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                    sum.add(new BigDecimal(orderTaxi.getPayMoney()));
+                    break;
+                case 3://跨城出行
+                    break;
+                case 4://同城小件物流
+                    break;
+                case 5://跨城小件物流
+                    break;
+            }
+        }
+
+        invoice.setOrderNum(jsonArray.size());
+        invoice.setMoney(sum.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+        invoice.setUserId(uid);
+        invoice.setInsertTime(new Date());
+        invoice.setState(1);
+        this.insert(invoice);
+        // TODO: 2020/6/9 调用开发票第三方SDK
+
+
+        for(int i = 0; i < jsonArray.size(); i++){
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            Integer orderType = jsonObject.getIntValue("type");
+            Integer orderId = jsonObject.getIntValue("id");
+            switch (orderType){
+                case 1://专车
+                    break;
+                case 2://出租车
+                    OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                    orderTaxi.setInvoiceId(invoice.getId());
+                    orderTaxiService.updateById(orderTaxi);
+                    break;
+                case 3://跨城出行
+                    break;
+                case 4://同城小件物流
+                    break;
+                case 5://跨城小件物流
+                    break;
+            }
+        }
+
+    }
+
+
+    /**
+     * 获取发票历史记录
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyInvoice(Integer pageNum, Integer size, Integer uid) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return invoiceMapper.queryMyInvoice(pageNum, size, uid);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LoginLogServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LoginLogServiceImpl.java
new file mode 100644
index 0000000..f4d7b6f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/LoginLogServiceImpl.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.LoginLogMapper;
+import com.stylefeng.guns.modular.system.model.LoginLog;
+import com.stylefeng.guns.modular.system.service.ILoginLogService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 登录记录 服务实现类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+@Service
+public class LoginLogServiceImpl extends ServiceImpl<LoginLogMapper, LoginLog> implements ILoginLogService {
+
+    @Override
+    public List<Map<String, Object>> getLoginLogs(Page<LoginLog> page, String beginTime, String endTime, String logName, String orderByField, boolean asc) {
+        return this.baseMapper.getLoginLogs(page, beginTime, endTime, logName, orderByField, asc);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/MenuServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/MenuServiceImpl.java
new file mode 100644
index 0000000..fd40c3e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/MenuServiceImpl.java
@@ -0,0 +1,90 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.node.MenuNode;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.modular.system.dao.MenuMapper;
+import com.stylefeng.guns.modular.system.model.Menu;
+import com.stylefeng.guns.modular.system.service.IMenuService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 菜单服务
+ *
+ * @author fengshuonan
+ * @date 2017-05-05 22:20
+ */
+@Service
+public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IMenuService {
+
+    @Resource
+    private MenuMapper menuMapper;
+
+    @Override
+    public void delMenu(Long menuId) {
+
+        //删除菜单
+        this.menuMapper.deleteById(menuId);
+
+        //删除关联的relation
+        this.menuMapper.deleteRelationByMenu(menuId);
+    }
+
+    @Override
+    public void delMenuContainSubMenus(Long menuId) {
+
+        Menu menu = menuMapper.selectById(menuId);
+
+        //删除当前菜单
+        delMenu(menuId);
+
+        //删除所有子菜单
+        Wrapper<Menu> wrapper = new EntityWrapper<>();
+        wrapper = wrapper.like("pcodes", "%[" + menu.getCode() + "]%");
+        List<Menu> menus = menuMapper.selectList(wrapper);
+        for (Menu temp : menus) {
+            delMenu(temp.getId());
+        }
+    }
+
+    @Override
+    public List<Map<String, Object>> selectMenus(String condition, String level) {
+        return this.baseMapper.selectMenus(condition, level);
+    }
+
+    @Override
+    public List<Long> getMenuIdsByRoleId(Integer roleId) {
+        return this.baseMapper.getMenuIdsByRoleId(roleId);
+    }
+
+    @Override
+    public List<ZTreeNode> menuTreeList() {
+        return this.baseMapper.menuTreeList();
+    }
+
+    @Override
+    public List<ZTreeNode> menuTreeListByMenuIds(List<Long> menuIds) {
+        return this.baseMapper.menuTreeListByMenuIds(menuIds);
+    }
+
+    @Override
+    public int deleteRelationByMenu(Long menuId) {
+        return this.baseMapper.deleteRelationByMenu(menuId);
+    }
+
+    @Override
+    public List<String> getResUrlsByRoleId(Integer roleId) {
+        return this.baseMapper.getResUrlsByRoleId(roleId);
+    }
+
+    @Override
+    public List<MenuNode> getMenusByRoleIds(List<Integer> roleIds) {
+        return this.baseMapper.getMenusByRoleIds(roleIds);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
new file mode 100644
index 0000000..d7cf23d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NettyServiceImpl.java
@@ -0,0 +1,76 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.service.INettyService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Service
+public class NettyServiceImpl implements INettyService {
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+
+    /**
+     * 获取下单推送完后没有司机接单的提醒
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<EndPushWarpper> queryEndPush(Integer orderId, Integer orderType, Integer uid) throws Exception {
+        EndPushWarpper endPushWarpper = null;
+        switch (orderType){
+            case 1:
+                endPushWarpper = orderPrivateCarService.queryEndPush(uid);
+                break;
+            case 2:
+                endPushWarpper = orderTaxiService.queryEndPush(uid);
+                break;
+        }
+        return ResultUtil.success(endPushWarpper);
+    }
+
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<OrderServerWarpper> queryOrderServer(Integer orderId, Integer orderType, Integer uid) throws Exception {
+        OrderServerWarpper orderServerWarpper = null;
+        switch (orderType){
+            case 1:
+                orderServerWarpper = orderPrivateCarService.queryOrderServer(orderId, uid);//专车
+                break;
+            case 2:
+                orderServerWarpper = orderTaxiService.queryOrderServer(orderId, uid);//出租车
+                break;
+            case 3:
+                orderServerWarpper = orderCrossCityService.queryOrderServer(orderId, uid);//出租车
+                break;
+        }
+        return ResultUtil.success(orderServerWarpper);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NoticeServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NoticeServiceImpl.java
new file mode 100644
index 0000000..68b1b52
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/NoticeServiceImpl.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.NoticeMapper;
+import com.stylefeng.guns.modular.system.model.Notice;
+import com.stylefeng.guns.modular.system.service.INoticeService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 通知表 服务实现类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+@Service
+public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements INoticeService {
+
+    @Override
+    public List<Map<String, Object>> list(String condition) {
+        return this.baseMapper.list(condition);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OfflineTravelPaymentServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OfflineTravelPaymentServiceImpl.java
new file mode 100644
index 0000000..bbcc0bb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OfflineTravelPaymentServiceImpl.java
@@ -0,0 +1,11 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.OfflineTravelPaymentMapper;
+import com.stylefeng.guns.modular.system.model.OfflineTravelPayment;
+import com.stylefeng.guns.modular.system.service.IOfflineTravelPaymentService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class OfflineTravelPaymentServiceImpl extends ServiceImpl<OfflineTravelPaymentMapper, OfflineTravelPayment> implements IOfflineTravelPaymentService {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
new file mode 100644
index 0000000..20720c1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityBusinessServiceImpl.java
@@ -0,0 +1,116 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.OpenCityBusinessMapper;
+import com.stylefeng.guns.modular.system.model.OpenCityBusiness;
+import com.stylefeng.guns.modular.system.service.IOpenCityBusinessService;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Service
+public class OpenCityBusinessServiceImpl extends ServiceImpl<OpenCityBusinessMapper, OpenCityBusiness> implements IOpenCityBusinessService {
+
+    @Resource
+    private OpenCityBusinessMapper openCityBusinessMapper;
+
+
+    /**
+     * 获取业务类型
+     * @param province  省名
+     * @param city      市名称
+     * @param district  区县名称
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<BaseWarpper> queryBusiness(String province, String city, String district) throws Exception {
+        List<OpenCityBusiness> openCityBusinesses = openCityBusinessMapper.queryBusiness(province, city, district);
+        if(openCityBusinesses.size() == 0){
+            openCityBusinesses = openCityBusinessMapper.queryBusiness(province, city, null);
+        }
+        if(openCityBusinesses.size() == 0){
+            openCityBusinesses = openCityBusinessMapper.queryBusiness(province, null, null);
+        }
+        List<BaseWarpper> list = new ArrayList<>();
+        for(OpenCityBusiness b : openCityBusinesses){
+            BaseWarpper baseWarpper = new BaseWarpper();
+            switch (b.getBusinessType()){
+                case 1:
+                    baseWarpper.setName("专车");
+                    baseWarpper.setId(1);
+                    break;
+                case 2:
+                    baseWarpper.setName("出租车");
+                    baseWarpper.setId(2);
+                    break;
+                case 3:
+                    baseWarpper.setName("跨城出行");
+                    baseWarpper.setId(3);
+                    break;
+                case 4:
+                    baseWarpper.setName("同城小件物流");
+                    baseWarpper.setId(4);
+                    break;
+                case 5:
+                    baseWarpper.setName("跨城小件物流");
+                    baseWarpper.setId(5);
+                    break;
+                case 6:
+                    baseWarpper.setName("包车");
+                    baseWarpper.setId(6);
+                    break;
+            }
+            list.add(baseWarpper);
+        }
+        return list;
+    }
+
+
+    /**
+     * 根据开通的城市id获取业务类型
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<BaseWarpper> queryBusinessById(Integer id) throws Exception {
+        List<OpenCityBusiness> openCityBusinesses = openCityBusinessMapper.queryBusinessById(id);
+        List<BaseWarpper> list = new ArrayList<>();
+        for(OpenCityBusiness b : openCityBusinesses){
+            BaseWarpper baseWarpper = new BaseWarpper();
+            switch (b.getBusinessType()){
+                case 1:
+                    baseWarpper.setName("专车");
+                    baseWarpper.setId(1);
+                    break;
+                case 2:
+                    baseWarpper.setName("出租车");
+                    baseWarpper.setId(2);
+                    break;
+                case 3:
+                    baseWarpper.setName("跨城出行");
+                    baseWarpper.setId(3);
+                    break;
+                case 4:
+                    baseWarpper.setName("同城小件物流");
+                    baseWarpper.setId(4);
+                    break;
+                case 5:
+                    baseWarpper.setName("跨城小件物流");
+                    baseWarpper.setId(5);
+                    break;
+                case 6:
+                    baseWarpper.setName("包车");
+                    baseWarpper.setId(6);
+                    break;
+            }
+            list.add(baseWarpper);
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java
new file mode 100644
index 0000000..b72717c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OpenCityServiceImpl.java
@@ -0,0 +1,69 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.OpenCityMapper;
+import com.stylefeng.guns.modular.system.model.OpenCity;
+import com.stylefeng.guns.modular.system.service.IOpenCityService;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Service
+public class OpenCityServiceImpl extends ServiceImpl<OpenCityMapper, OpenCity> implements IOpenCityService {
+
+    @Resource
+    private OpenCityMapper openCityMapper;
+
+
+    /**
+     * 获取开通城市列表
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<BaseWarpper> queryOpenCity() throws Exception {
+        List<OpenCity> openCities = openCityMapper.queryOpenCity();
+        List<BaseWarpper> list = new ArrayList<>();
+        for(OpenCity c : openCities){
+            BaseWarpper baseWarpper = new BaseWarpper();
+            baseWarpper.setId(c.getId());
+            baseWarpper.setName(ToolUtil.isEmpty(c.getProvinceName())  ?
+                    (ToolUtil.isEmpty(c.getCityName()) ? (ToolUtil.isEmpty(c.getAreaName()) ? "" : c.getAreaName()) : c.getCityName()) : c.getProvinceName());
+            baseWarpper.setLon(null != c.getLon() ? c.getLon() : 0);
+            baseWarpper.setLat(null != c.getLat() ? c.getLat() : 0);
+            baseWarpper.setContent(c.getCode());
+            baseWarpper.setName(baseWarpper.getName().replaceAll("市辖区", ""));
+            list.add(baseWarpper);
+        }
+        return list;
+    }
+
+
+    /**
+     * 判断是否是开通城市
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean openCity(String code) throws Exception {
+        String province = code.substring(0, 2) + "0000";
+        String city = code.substring(0, 4) + "00";
+        List<OpenCity> openCities = openCityMapper.queryByCode(code);
+        if(openCities.size() == 0){
+            openCities = openCityMapper.queryByCode(city);
+        }
+        if(openCities.size() == 0){
+            openCities = openCityMapper.queryByCode(province);
+        }
+        if(openCities.size() == 0){
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OperationLogServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OperationLogServiceImpl.java
new file mode 100644
index 0000000..8b58018
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OperationLogServiceImpl.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.plugins.Page;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.OperationLogMapper;
+import com.stylefeng.guns.modular.system.model.OperationLog;
+import com.stylefeng.guns.modular.system.service.IOperationLogService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 操作日志 服务实现类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+@Service
+public class OperationLogServiceImpl extends ServiceImpl<OperationLogMapper, OperationLog> implements IOperationLogService {
+
+    @Override
+    public List<Map<String, Object>> getOperationLogs(Page<OperationLog> page, String beginTime, String endTime, String logName, String s, String orderByField, boolean asc) {
+        return this.baseMapper.getOperationLogs(page, beginTime, endTime, logName, s, orderByField, asc);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java
new file mode 100644
index 0000000..f5abbcd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderCancelServiceImpl.java
@@ -0,0 +1,84 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.OrderCancelMapper;
+import com.stylefeng.guns.modular.system.model.OrderCancel;
+import com.stylefeng.guns.modular.system.service.IOrderCancelService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+public class OrderCancelServiceImpl extends ServiceImpl<OrderCancelMapper, OrderCancel> implements IOrderCancelService {
+
+    @Resource
+    private OrderCancelMapper orderCancelMapper;
+
+
+
+    /**
+     * 添加数据
+     * @param orderId
+     * @param orderType
+     * @param reason
+     * @param remark
+     * @param payType
+     * @param money
+     * @param state
+     * @throws Exception
+     */
+    @Override
+    public Integer saveData(Integer orderId, Integer orderType, String reason, String remark, Integer payType,
+                            Double money, Integer state, Integer userType, Integer uid) throws Exception {
+        OrderCancel orderCancel = new OrderCancel();
+        orderCancel.setOrderId(orderId);
+        orderCancel.setOrderType(orderType);
+        orderCancel.setReason(reason);
+        orderCancel.setRemark(remark);
+        orderCancel.setPayType(payType);
+        orderCancel.setMoney(money);
+        orderCancel.setState(state);
+        orderCancel.setInsertTime(new Date());
+        orderCancel.setUserType(userType);
+        orderCancel.setUserId(uid);
+        this.insert(orderCancel);
+        return orderCancel.getId();
+    }
+
+
+    /**
+     * 获取取消数据
+     * @param orderId
+     * @param orderType
+     * @param money
+     * @param payType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public OrderCancel query(Integer orderId, Integer orderType, Double money, Integer payType, Integer state) throws Exception {
+        return orderCancelMapper.query(orderId, orderType, money, payType, state);
+    }
+
+
+    /**
+     * 获取用户取消记录
+     * @param uid
+     * @param isPay
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryCancel(Integer uid, Integer isPay) throws Exception {
+        return orderCancelMapper.queryCancel(uid, isPay);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java
new file mode 100644
index 0000000..04166a4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderEvaluateServiceImpl.java
@@ -0,0 +1,117 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.OrderEvaluateMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.model.OrderEvaluate;
+import com.stylefeng.guns.modular.system.model.SensitiveWords;
+import com.stylefeng.guns.modular.system.service.IOrderEvaluateService;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class OrderEvaluateServiceImpl extends ServiceImpl<OrderEvaluateMapper, OrderEvaluate> implements IOrderEvaluateService {
+
+    @Resource
+    private OrderEvaluateMapper orderEvaluateMapper;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+
+
+
+
+    /**
+     * 添加评价数据
+     * @param orderId
+     * @param orderType
+     * @param fraction
+     * @param content
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil saveData(Integer orderId, Integer orderType, Integer fraction, String content) throws Exception {
+        if(ToolUtil.isNotEmpty(content)){
+            if(null != content && content.length() > 500){
+                return ResultUtil.error("评价内容过长");
+            }
+            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+            for(SensitiveWords s : sensitiveWords){
+                content = content.replaceAll(s.getContent(), "***");
+            }
+        }
+        OrderEvaluate orderEvaluate = new OrderEvaluate();
+        Integer driverId = null;
+        Integer uid = null;
+        switch (orderType){
+            case 1:
+                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                driverId = orderPrivateCar.getDriverId();
+                uid = orderPrivateCar.getUserId();
+                break;
+            case 2:
+                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                driverId = orderTaxi.getDriverId();
+                uid = orderTaxi.getUserId();
+                break;
+            case 3:
+                OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                driverId = orderCrossCity.getDriverId();
+                uid = orderCrossCity.getUserId();
+                break;
+        }
+
+        orderEvaluate.setOrderId(orderId);
+        orderEvaluate.setDriverId(driverId);
+        orderEvaluate.setOrderType(orderType);
+        orderEvaluate.setFraction(fraction);
+        orderEvaluate.setContent(content);
+        orderEvaluate.setInsertTime(new Date());
+        orderEvaluate.setUserId(uid);
+        this.insert(orderEvaluate);
+
+        systemNoticeService.addSystemNotice(1, "您已成功添加订单评价,谢谢使用!", uid, 1);
+        return ResultUtil.success(orderEvaluate.getId());
+    }
+
+
+    /**
+     * 获取司机的历史评价数据
+     * @param driverId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryOrderEvaluate(Integer driverId, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return orderEvaluateMapper.queryOrderEvaluate(driverId, pageNum, size);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java
new file mode 100644
index 0000000..7ee14e8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderPositionServiceImpl.java
@@ -0,0 +1,98 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.OrderPositionMapper;
+import com.stylefeng.guns.modular.system.model.OrderPosition;
+import com.stylefeng.guns.modular.system.service.IOrderPositionService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class OrderPositionServiceImpl extends ServiceImpl<OrderPositionMapper, OrderPosition> implements IOrderPositionService {
+
+    @Resource
+    private OrderPositionMapper orderPositionMapper;
+
+    @Value("${filePath}")
+    private String filePath;
+
+
+    /**
+     * 获取轨迹数据
+     * @param orderId
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryTrack(Integer orderId, Integer orderType) throws Exception {
+//        return orderPositionMapper.queryTrack(orderId, orderType);
+        //将数据存储到文件中
+        File file = new File(filePath + orderId + "_" + orderType + ".txt");
+        if(!file.exists()){
+            return new ArrayList<>();
+        }
+        //读取文件(字符流)
+        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+        //循环取出数据
+        String str = null;
+        StringBuffer sb = new StringBuffer();
+        while ((str = in.readLine()) != null) {
+            sb.append(str);
+        }
+        List<OrderPosition> list = JSONArray.parseArray(sb.toString(), OrderPosition.class);
+        List<Map<String, Object>> lonlat = new ArrayList<>();
+        for(OrderPosition orderPosition : list){
+            Map<String, Object> map = new HashMap<>();
+            map.put("lon", orderPosition.getLon());
+            map.put("lat", orderPosition.getLat());
+            lonlat.add(map);
+        }
+        return lonlat;
+    }
+
+
+
+    /**
+     * 获取坐标文件中的坐标数据
+     * @param orderId
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<OrderPosition> queryPosition(Integer orderId, Integer orderType) throws Exception{
+        //将数据存储到文件中
+        File file = new File(filePath + orderId + "_" + orderType + ".txt");
+        if(!file.exists()){
+            return new ArrayList<>();
+        }
+        //读取文件(字符流)
+        BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));
+        //循环取出数据
+        String str = null;
+        StringBuffer sb = new StringBuffer();
+        while ((str = in.readLine()) != null) {
+            sb.append(str);
+        }
+        List<OrderPosition> list = new ArrayList<>();
+        if(ToolUtil.isNotEmpty(sb.toString())){
+            list = JSONArray.parseArray(sb.toString(), OrderPosition.class);
+        }
+        System.err.println("坐标:" + sb);
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
new file mode 100644
index 0000000..fc37e7b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -0,0 +1,186 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.OfflineTravelPayment;
+import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.service.IOfflineTravelPaymentService;
+import com.stylefeng.guns.modular.system.service.IOrderService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.util.ChinaMobileUtil;
+import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
+import com.stylefeng.guns.modular.system.util.LiuZhouBank.PayUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.UUIDUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+
+@Service
+public class OrderServiceImpl implements IOrderService {
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private RestTemplate internalRestTemplate;
+
+    @Autowired
+    private ChinaMobileUtil chinaMobileUtil;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderLogisticsService orderLogisticsService;
+
+    @Autowired
+    private IOfflineTravelPaymentService offlineTravelPaymentService;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+
+    /**
+     * 获取预计行驶时间
+     * @param slon  起点经度
+     * @param slat  起点纬度
+     * @param elon  终点经度
+     * @param elat  终点纬度
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<BaseWarpper> queryExpectedTime(Double slon, Double slat, Double elon, Double elat) throws Exception {
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(slon + "," + slat, elon + "," + elat, 1);
+        int duration = Integer.valueOf(distance.get("duration")) / 60;
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setMinute(duration);
+        return ResultUtil.success(baseWarpper);
+    }
+
+    /**
+     * APP调用微信小程序完成支付
+     * @param orderId
+     * @param orderType
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil weChatPay(Integer orderId, Integer orderType, Integer type, Integer userType, Integer uid, String content) throws Exception {
+        JSONObject jsonObject = JSON.parseObject(content);
+        switch (type){
+            case 1://订单完成支付
+                switch (orderType){
+                    case 1:
+                        return orderPrivateCarService.payPrivateCarOrder(1, orderId, (null == jsonObject ? null : jsonObject.getIntValue("couponId")), 3);
+                    case 2:
+                        return orderTaxiService.payTaxiOrder(1, orderId, (null == jsonObject ? null : jsonObject.getIntValue("couponId")), 3);
+                    case 3:
+                        return orderCrossCityService.payCrossCityOrder(1, orderId, (null == jsonObject ? null : jsonObject.getIntValue("couponId")), 3);
+                    case 4:
+                        return orderLogisticsService.payLogisticsOrder(1, orderId, 3);
+                    case 5:
+                        return orderLogisticsService.payLogisticsOrder(1, orderId, 3);
+                }
+            case 2://订单取消支付
+                switch (orderType){
+                    case 1:
+                        return orderPrivateCarService.cancleOrderPrivateCar(orderId, 1, null == jsonObject ? null : jsonObject.getIntValue("cancelId"), 3);
+                    case 2:
+                        return orderTaxiService.cancleOrderTaxi(orderId, 1, null == jsonObject ? null : jsonObject.getIntValue("cancelId"), 3);
+                    case 3:
+                        return orderCrossCityService.cancleOrderCrossCity(orderId, 1, null == jsonObject ? null : jsonObject.getIntValue("cancelId"), 3);
+                }
+
+            case 3://司机端改派支付
+                HttpHeaders headers = new HttpHeaders();
+                // 以表单的方式提交
+                headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+                //将请求头部和参数合成一个请求
+                MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+                params.add("orderId", orderId.toString());
+                params.add("orderType", orderType.toString());
+                params.add("payType", "1");
+                params.add("reason", null == jsonObject ? "" : jsonObject.getString("reason"));
+                params.add("remark", null == jsonObject ? "" : jsonObject.getString("remark"));
+                params.add("uid", jsonObject.getString("uid"));
+                HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+                String s = internalRestTemplate.postForObject("http://driver-server/base/order/reassign_", requestEntity, String.class);
+                JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+                return ResultUtil.success(jsonObject1.getString("msg"), jsonObject1.getString("data"));
+            case 4://余额充值
+                if(userType == 1){
+                    return userInfoService.depositBalance(1, jsonObject.getDoubleValue("money"), uid, 3);
+                }
+                if(userType == 2){
+
+                }
+            case 5://小件物流补差价
+                return orderLogisticsService.payLogisticsOrder_(1, orderId, 3);
+        }
+        return ResultUtil.success();
+    }
+
+    @Override
+    public ResultUtil driverQrCodePaymentCollection(Integer driverId, Double money, Integer payType) throws Exception {
+        String randomCode = UUIDUtil.getRandomCode();
+        String pay_type = "";
+        if(payType == 1){//微信
+            pay_type = "02";
+        }
+        if(payType == 2){//支付宝
+            pay_type = "04";
+        }
+        OfflineTravelPayment offlineTravelPayment = new OfflineTravelPayment();
+        offlineTravelPayment.setOrderId(randomCode);
+        offlineTravelPayment.setDriverId(driverId);
+        offlineTravelPayment.setPayType(payType);
+        offlineTravelPayment.setPayMoney(money);
+        offlineTravelPayment.setStatus(1);
+        offlineTravelPayment.setInsertTime(new Date());
+        offlineTravelPaymentService.insert(offlineTravelPayment);
+        Driver driver = driverService.selectById(driverId);
+        String codeUrl = PayUtil.polymericPay(null, null, "", pay_type, money, "打车支付"
+                , callbackPath + "/base/offlineTravelPaymentCallback", randomCode
+                , "https://okyueche.com:8443/h5/#/pages/index/evaluate", driver.getMchtNo());
+        if(ToolUtil.isNotEmpty(codeUrl)){
+            Map<String, String> map = new HashMap<>();
+            map.put("url", codeUrl);
+            map.put("id", randomCode);
+            return ResultUtil.success(map);
+        }
+        return ResultUtil.error("获取支付数据失败");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
new file mode 100644
index 0000000..78488f9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PhoneServiceImpl.java
@@ -0,0 +1,79 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.PhoneMapper;
+import com.stylefeng.guns.modular.system.model.Phone;
+import com.stylefeng.guns.modular.system.service.IPhoneService;
+import com.stylefeng.guns.modular.system.util.AESUtil;
+import com.stylefeng.guns.modular.system.util.DESUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class PhoneServiceImpl extends ServiceImpl<PhoneMapper, Phone> implements IPhoneService {
+
+    @Resource
+    private PhoneMapper phoneMapper;
+
+    /**
+     * 获取所有系统电话
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Phone> queryPhones(String code) throws Exception {
+        if(ToolUtil.isEmpty(code)){
+            return new ArrayList<>();
+        }
+        String province = code.substring(0, 2) + "0000";
+        String city = code.substring(0, 4) + "00";
+
+        List<Phone> list = phoneMapper.queryPhones(province, city, code);
+        if(list.size() == 0){
+            list = phoneMapper.queryPhones(province, city, null);
+        }
+        if(list.size() == 0){
+            list = phoneMapper.queryPhones(province, null, null);
+        }
+        for (Phone phone : list) {
+            phone.setPhone(AESUtil.encrypt(phone.getPhone()));
+        }
+        return list;
+    }
+
+
+    /**
+     * 获取客服电话(个人中心)
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryCustomerPhone(String code) throws Exception {
+        String province = code.substring(0, 2) + "0000";
+        String city = code.substring(0, 4) + "00";
+
+        Map<String, Object> map = new HashMap<>();
+        //平台电话
+        Phone query = phoneMapper.query(2, 1, null, null, null);
+        map.put("platform", null != query ? query.getPhone() : "");
+
+        //公司
+        query = phoneMapper.query(2, 2, province, city, code);
+        if(query == null){
+            query = phoneMapper.query(2, 2, province, city, null);
+        }
+        if(query == null){
+            query = phoneMapper.query(2, 2, province, null, null);
+        }
+        map.put("company", null != query ? query.getPhone() : "");
+        return map;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java
new file mode 100644
index 0000000..1441b80
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ProblemServiceImpl.java
@@ -0,0 +1,72 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.ProblemMapper;
+import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
+import com.stylefeng.guns.modular.system.model.Problem;
+import com.stylefeng.guns.modular.system.model.SensitiveWords;
+import com.stylefeng.guns.modular.system.service.IProblemService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class ProblemServiceImpl extends ServiceImpl<ProblemMapper, Problem> implements IProblemService {
+
+    @Resource
+    private ProblemMapper problemMapper;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+
+
+    /**
+     * 添加留言
+     * @param content
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil leaveMessage(String content, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(content)){
+            if(content.length() > 200){
+                return ResultUtil.error("留言内容过长");
+            }
+            List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+            for(SensitiveWords s : sensitiveWords){
+                content = content.replaceAll(s.getContent(), "***");
+            }
+        }
+
+        Problem problem = new Problem();
+        problem.setContent(content);
+        problem.setUserId(uid);
+        problem.setInsertTime(new Date());
+        problem.setState(1);
+        this.insert(problem);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取提交的留言
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryProblems(Integer pageNum, Integer size, Integer uid) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return problemMapper.queryProblems(pageNum, size, uid);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushOrderServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushOrderServiceImpl.java
new file mode 100644
index 0000000..6256d0a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/PushOrderServiceImpl.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.PushOrderMapper;
+import com.stylefeng.guns.modular.system.model.PushOrder;
+import com.stylefeng.guns.modular.system.service.IPushOrderService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Service
+public class PushOrderServiceImpl extends ServiceImpl<PushOrderMapper, PushOrder> implements IPushOrderService {
+
+    @Resource
+    private PushOrderMapper pushOrderMapper;
+
+
+    /**
+     * 获取推送配置
+     * @param type
+     * @param pushType
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<PushOrder> querys(Integer type, Integer pushType, Integer companyId) throws Exception {
+        return pushOrderMapper.querys(type, pushType, companyId);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RedPacketRecordServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RedPacketRecordServiceImpl.java
new file mode 100644
index 0000000..658ab11
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RedPacketRecordServiceImpl.java
@@ -0,0 +1,18 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.RedPacketRecordMapper;
+import com.stylefeng.guns.modular.system.model.RedPacketRecord;
+import com.stylefeng.guns.modular.system.service.IRedPacketRecordService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Random;
+
+@Service
+public class RedPacketRecordServiceImpl extends ServiceImpl<RedPacketRecordMapper, RedPacketRecord> implements IRedPacketRecordService {
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RelationServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RelationServiceImpl.java
new file mode 100644
index 0000000..4b72cc4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RelationServiceImpl.java
@@ -0,0 +1,20 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.RelationMapper;
+import com.stylefeng.guns.modular.system.model.Relation;
+import com.stylefeng.guns.modular.system.service.IRelationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 角色和菜单关联表 服务实现类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+@Service
+public class RelationServiceImpl extends ServiceImpl<RelationMapper, Relation> implements IRelationService {
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java
new file mode 100644
index 0000000..d8d9d37
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/RoleServiceImpl.java
@@ -0,0 +1,73 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.node.ZTreeNode;
+import com.stylefeng.guns.core.util.Convert;
+import com.stylefeng.guns.modular.system.dao.RelationMapper;
+import com.stylefeng.guns.modular.system.dao.RoleMapper;
+import com.stylefeng.guns.modular.system.model.Relation;
+import com.stylefeng.guns.modular.system.model.Role;
+import com.stylefeng.guns.modular.system.service.IRoleService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {
+
+    @Resource
+    private RoleMapper roleMapper;
+
+    @Resource
+    private RelationMapper relationMapper;
+
+    @Override
+    @Transactional(readOnly = false)
+    public void setAuthority(Integer roleId, String ids) {
+
+        // 删除该角色所有的权限
+        this.roleMapper.deleteRolesById(roleId);
+
+        // 添加新的权限
+        for (Long id : Convert.toLongArray(true, Convert.toStrArray(",", ids))) {
+            Relation relation = new Relation();
+            relation.setRoleid(roleId);
+            relation.setMenuid(id);
+            this.relationMapper.insert(relation);
+        }
+    }
+
+    @Override
+    @Transactional(readOnly = false)
+    public void delRoleById(Integer roleId) {
+        //删除角色
+        this.roleMapper.deleteById(roleId);
+
+        // 删除该角色所有的权限
+        this.roleMapper.deleteRolesById(roleId);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectRoles(String condition) {
+        return this.baseMapper.selectRoles(condition);
+    }
+
+    @Override
+    public int deleteRolesById(Integer roleId) {
+        return this.baseMapper.deleteRolesById(roleId);
+    }
+
+    @Override
+    public List<ZTreeNode> roleTreeList() {
+        return this.baseMapper.roleTreeList();
+    }
+
+    @Override
+    public List<ZTreeNode> roleTreeListByRoleId(String[] roleId) {
+        return this.baseMapper.roleTreeListByRoleId(roleId);
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
new file mode 100644
index 0000000..1478f2f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ServerCarModelServiceImpl.java
@@ -0,0 +1,248 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
+import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
+import com.stylefeng.guns.modular.system.model.Company;
+import com.stylefeng.guns.modular.system.model.ServerCarModel;
+import com.stylefeng.guns.modular.system.service.ICompanyCityService;
+import com.stylefeng.guns.modular.system.service.IServerCarModelService;
+import com.stylefeng.guns.modular.system.util.GDMapElectricFenceUtil;
+import com.stylefeng.guns.modular.system.util.GDMapGeocodingUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.ServerCarModelWarpper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+
+
+@Service
+public class ServerCarModelServiceImpl extends ServiceImpl<ServerCarModelMapper, ServerCarModel> implements IServerCarModelService {
+
+    @Resource
+    private ServerCarModelMapper serverCarModelMapper;
+
+    @Resource
+    private SystemPriceMapper systemPriceMapper;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+
+
+
+
+
+    /**
+     * 根据起点和终点获取车型
+     * @param startLonLat
+     * @param endLonLat
+     * @param type          业务类型
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<List<ServerCarModelWarpper>> queryServerCarModel(String startLonLat, String endLonLat, Integer type) throws Exception {
+        //查找与起点匹配的企业(经营范围)
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(startLonLat.split(",")[0], startLonLat.split(",")[1]);
+        Company query = companyCityService.query(geocode.get("districtCode"));
+        if(null == query){
+            return ResultUtil.error("起点暂无企业提供服务", new ArrayList<>());
+        }
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(startLonLat, endLonLat, 1);
+        if(null == distance){
+            return ResultUtil.error("获取预估距离出错", new ArrayList<>());
+        }
+        String distance1 = distance.get("distance");//距离(米)
+        double distance1_ = Double.valueOf(distance1).doubleValue();
+        String duration = distance.get("duration");//时间(秒)
+        long duration_ = Long.valueOf(duration).longValue();
+
+        List<ServerCarModelWarpper> price = this.getPrice(query.getId(), distance1_, duration_, 0, 1);
+        if(price.size() == 0){
+            return ResultUtil.error("未获取到可服务的车型", new ArrayList<>());
+        }
+        return ResultUtil.success(price);
+    }
+
+
+    /**
+     * 获取业务类型对应的所有服务车型
+     * @param type
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> queryServerCarModels(Integer type) {
+        return serverCarModelMapper.queryServerCarModel(type);
+    }
+
+
+    /**
+     * 计算价格
+     * @param companyId
+     * @param distance
+     * @param duration
+     * @param wait
+     * @param type
+     * @return
+     * @throws Exception
+     */
+    public List<ServerCarModelWarpper> getPrice(Integer companyId, double distance, long duration, long wait, Integer type) throws Exception {
+        List<Map<String, Object>> list = serverCarModelMapper.queryServerCarModel(type);
+        List<ServerCarModelWarpper> data = new ArrayList<>();
+        for(Map<String, Object> map : list){
+            Map<String, Object> query1 = systemPriceMapper.query(companyId, type, Integer.valueOf(map.get("id").toString()));
+            if(null == query1){//排除没有设置价格的车型
+                continue;
+            }
+            //开始根据不同的方式计算金额
+            double amount = 0;
+            if(type == 1){//专车
+                JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
+                Double num1 = jsonObject.getDouble("num1");//起步价(元)
+                Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
+                Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
+                Double num4 = jsonObject.getDouble("num4");//里程费(元)
+                Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
+                Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
+                Double num7 = jsonObject.getDouble("num7");//等待费(元)
+                Double num8 = jsonObject.getDouble("num8");//远途费(公里)
+                Double num9 = jsonObject.getDouble("num9");//远途费(公里)
+                Double num10 = jsonObject.getDouble("num10");//远途费(元)
+                Double num11 = jsonObject.getDouble("num11");//远途费(公里)
+                Double num12 = jsonObject.getDouble("num12");//远途费(公里)
+                Double num13 = jsonObject.getDouble("num13");//远途费(元)
+                Double num14 = jsonObject.getDouble("num14");//远途费(公里)
+                Double num15 = jsonObject.getDouble("num15");//远途费(元)
+                String num16 = jsonObject.getString("num16");//夜间费(开始时间)
+                Double num17 = jsonObject.getDouble("num17");//夜间费(元)
+                Double num18 = jsonObject.getDouble("num18");//夜间费(元)
+                Double num19 = jsonObject.getDouble("num19");//夜间费(元)
+                Double num20 = jsonObject.getDouble("num20");//夜间费(元)
+                Double num21 = jsonObject.getDouble("num21");//夜间费(元)
+                Double num22 = jsonObject.getDouble("num22");//夜间费(元)
+                String num23 = jsonObject.getString("num23");//高峰费(开始时间)
+                String num24 = jsonObject.getString("num24");//高峰费(开始时间)
+                Double num25 = jsonObject.getDouble("num25");//高峰费(元)
+                Double num26 = jsonObject.getDouble("num26");//高峰费(元)
+                Double num27 = jsonObject.getDouble("num27");//高峰费(元)
+                Double num28 = jsonObject.getDouble("num28");//高峰费(元)
+                Double num29 = jsonObject.getDouble("num29");//高峰费(元)
+                Double num30 = jsonObject.getDouble("num30");//高峰费(元)
+
+                Date date = new Date();
+                double d = distance / 1000;//实际公里
+                double t = duration / 60;//实际时间
+
+                double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
+                double t1 = (t - num3) < 0 ? 0 : t - num3;//超过起步分钟数的时间
+                double yt1 = 0;//远途1段
+                double yt2 = 0;//远途2段
+                double yt3 = 0;//远途3段
+
+
+                //夜间服务处理逻辑
+                Calendar s = Calendar.getInstance();
+                s.setTime(date);
+                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
+                s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
+
+                Calendar e = Calendar.getInstance();
+                e.setTime(date);
+                e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
+                e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
+
+                if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
+                    if(d > num8.doubleValue()){
+                        yt1 = num20 * (num9 - num8);
+                    }
+                    if(d > num11.doubleValue()){
+                        yt2 = num21 * (num12 - num11);
+                    }
+                    if(d > num14.doubleValue()){
+                        yt3 = num22 * (d - num14);
+                    }
+                    amount = num17 + (d1 * num18) + (t1 * num19) + (wait * num7) + yt1 + yt2 + yt3;
+                    ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+                    serverCarModelWarpper.setMileage(d);
+                    serverCarModelWarpper.setDuration(t);
+                    data.add(serverCarModelWarpper);
+                    continue;
+                }
+
+
+                //高峰时段处理逻辑
+                Calendar s1 = Calendar.getInstance();
+                s1.setTime(date);
+                s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
+                s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
+
+                Calendar e1 = Calendar.getInstance();
+                e1.setTime(date);
+                e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
+                e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
+
+                Calendar s2 = Calendar.getInstance();
+                s2.setTime(date);
+                s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
+                s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
+
+                Calendar e2 = Calendar.getInstance();
+                e2.setTime(date);
+                e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
+                e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
+
+                if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
+                    if(d > num8.doubleValue()){
+                        yt1 = num28 * (num9 - num8);
+                    }
+                    if(d > num11.doubleValue()){
+                        yt2 = num29 * (num12 - num11);
+                    }
+                    if(d > num14.doubleValue()){
+                        yt3 = num30 * (d - num14);
+                    }
+                    amount = num25 + (d1 * num26) + (t1 * num27) + (wait * num7) + yt1 + yt2 + yt3;
+                    ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+                    serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+                    serverCarModelWarpper.setMileage(d);
+                    serverCarModelWarpper.setDuration(t);
+                    data.add(serverCarModelWarpper);
+                    continue;
+                }
+
+                //其他时间段的计算
+                if(d > num8.doubleValue()){
+                    yt1 = num10 * (num9 - num8);
+                }
+                if(d > num11.doubleValue()){
+                    yt2 = num13 * (num12 - num11);
+                }
+                if(d > num14.doubleValue()){
+                    yt3 = num15 * (d - num14);
+                }
+                amount = num1 + (d1 * num4) + (t1 * num5) + (wait * num7) + yt1 + yt2 + yt3;
+                ServerCarModelWarpper serverCarModelWarpper = ServerCarModelWarpper.getServerCarModelWarpper(map);
+                serverCarModelWarpper.setAmount(new BigDecimal(amount).setScale(BigDecimal.ROUND_HALF_EVEN, 2).doubleValue());
+                serverCarModelWarpper.setMileage(d);
+                serverCarModelWarpper.setDuration(t);
+                data.add(serverCarModelWarpper);
+                continue;
+            }
+        }
+        return data;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SmsrecordServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SmsrecordServiceImpl.java
new file mode 100644
index 0000000..3e44b15
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SmsrecordServiceImpl.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.SmsrecordMapper;
+import com.stylefeng.guns.modular.system.model.Smsrecord;
+import com.stylefeng.guns.modular.system.service.ISmsrecordService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+
+@Service
+public class SmsrecordServiceImpl extends ServiceImpl<SmsrecordMapper, Smsrecord> implements ISmsrecordService {
+
+
+    /**
+     * 添加数据
+     * @param type
+     * @param phone
+     * @param code
+     * @param content
+     * @throws Exception
+     */
+    @Override
+    public void saveData(Integer type, String phone, String code, String content) throws Exception {
+        Smsrecord smsrecord = new Smsrecord();
+        smsrecord.setType(type);
+        smsrecord.setPhone(phone);
+        smsrecord.setCode(code);
+        smsrecord.setContent(content);
+        smsrecord.setInsertTime(new Date());
+        this.insert(smsrecord);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java
new file mode 100644
index 0000000..509814b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/SystemNoticeServiceImpl.java
@@ -0,0 +1,115 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.SystemNoticeMapper;
+import com.stylefeng.guns.modular.system.dao.TNoticesMapper;
+import com.stylefeng.guns.modular.system.model.SystemNotice;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class SystemNoticeServiceImpl extends ServiceImpl<SystemNoticeMapper, SystemNotice> implements ISystemNoticeService {
+
+    @Resource
+    private SystemNoticeMapper systemNoticeMapper;
+
+    @Resource
+    private TNoticesMapper tNoticesMapper;
+
+
+    /**
+     * 添加系统消息
+     * @param userType
+     * @param content
+     * @param userId
+     * @throws Exception
+     */
+    @Override
+    public void addSystemNotice(Integer userType, String content, Integer userId, Integer noticeType) throws Exception {
+        SystemNotice systemNotice = new SystemNotice();
+        systemNotice.setContent(content);
+        systemNotice.setInsertTime(new Date());
+        systemNotice.setRead(1);
+        systemNotice.setType(2);
+        systemNotice.setNoticeType(noticeType);
+        systemNotice.setUserId(userId);
+        systemNotice.setUserType(userType);
+        this.insert(systemNotice);
+    }
+
+    /**
+     * 获取未阅读数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public int queryNoReadNoticeNum(Integer uid) throws Exception {
+        return systemNoticeMapper.queryNoReadNoticeNum(uid);
+    }
+
+    /**
+     * 获取消息列表
+     * @param type
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> queryList(Integer type, Integer pageNum, Integer size, Integer uid) {
+        pageNum = (pageNum - 1) * size;
+        List<Map<String, Object>> list = null;
+        if(type == 1){//系统公告
+            list = tNoticesMapper.queryList(pageNum, size, uid);
+        }
+        if(type == 2){//系统消息
+            list = systemNoticeMapper.queryList(type, pageNum, size, uid);
+            for(Map<String, Object> map : list){
+                systemNoticeMapper.readSystemNotice(Integer.valueOf(String.valueOf(map.get("id"))), uid);
+            }
+        }
+        return list;
+    }
+
+
+    /**
+     * 阅读操作
+     * @param id
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public void readSystemNotice(Integer id, Integer uid) throws Exception {
+        systemNoticeMapper.readSystemNotice(id, uid);
+    }
+
+
+    /**
+     * 删除公告或消息
+     * @param id
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public void delSystemNotice(Integer id, Integer uid) throws Exception {
+        systemNoticeMapper.delSystemNotice(id, uid);
+    }
+
+
+    /**
+     * 清空消息或公告
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public void clearSystemNotice(Integer uid) throws Exception {
+        systemNoticeMapper.delSystemNotice(null, uid);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TNoticesServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TNoticesServiceImpl.java
new file mode 100644
index 0000000..91943cc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TNoticesServiceImpl.java
@@ -0,0 +1,32 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.TNoticesMapper;
+import com.stylefeng.guns.modular.system.model.TNotices;
+import com.stylefeng.guns.modular.system.service.ITNoticesService;
+import com.stylefeng.guns.modular.system.warpper.TNoticeWarpper;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class TNoticesServiceImpl extends ServiceImpl<TNoticesMapper, TNotices> implements ITNoticesService {
+
+    @Resource
+    private TNoticesMapper tNoticesMapper;
+
+
+
+    /**
+     * 获取滚动消息
+     * @param type  1=滚动消息,2=公告
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<TNoticeWarpper> queryNotices(Integer type) throws Exception {
+        List<TNotices> notices = tNoticesMapper.queryNotices(type);
+        return TNoticeWarpper.getTNoticeWarppers(notices);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java
new file mode 100644
index 0000000..5828cfa
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityBalanceServiceImpl.java
@@ -0,0 +1,34 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.UserActivityBalanceMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityBalance;
+import com.stylefeng.guns.modular.system.service.IUserActivityBalanceService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class UserActivityBalanceServiceImpl extends ServiceImpl<UserActivityBalanceMapper, UserActivityBalance> implements IUserActivityBalanceService {
+
+    @Resource
+    private UserActivityBalanceMapper userActivityBalanceMapper;
+
+
+
+
+
+    /**
+     * 获取满足条件的活动
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> query(Double money, Integer companyId) throws Exception {
+        return userActivityBalanceMapper.query(money, companyId);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRedenvelopeServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRedenvelopeServiceImpl.java
new file mode 100644
index 0000000..ca9275b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRedenvelopeServiceImpl.java
@@ -0,0 +1,32 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.UserActivityRedenvelopeMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityRedenvelope;
+import com.stylefeng.guns.modular.system.service.IUserActivityRedenvelopeService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.Map;
+
+
+@Service
+public class UserActivityRedenvelopeServiceImpl extends ServiceImpl<UserActivityRedenvelopeMapper, UserActivityRedenvelope> implements IUserActivityRedenvelopeService {
+
+    @Resource
+    private UserActivityRedenvelopeMapper userActivityRedenvelopeMapper;
+
+
+
+    /**
+     * 获取红包活动
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> query(Integer companyId, Date travelTime) throws Exception {
+        return userActivityRedenvelopeMapper.query(companyId, travelTime);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java
new file mode 100644
index 0000000..ccc707a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserActivityRegisteredServiceImpl.java
@@ -0,0 +1,35 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.UserActivityRegisteredMapper;
+import com.stylefeng.guns.modular.system.model.UserActivityRegistered;
+import com.stylefeng.guns.modular.system.service.IUserActivityRegisteredService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class UserActivityRegisteredServiceImpl extends ServiceImpl<UserActivityRegisteredMapper, UserActivityRegistered> implements IUserActivityRegisteredService {
+
+    @Resource
+    private UserActivityRegisteredMapper userActivityRegisteredMapper;
+
+
+
+
+
+    /**
+     * 获取当前有效的注册活动
+     * @param companyId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> query(Integer companyId) throws Exception {
+        return userActivityRegisteredMapper.query(companyId);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
new file mode 100644
index 0000000..d89b29e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
@@ -0,0 +1,112 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.UserCouponRecordMapper;
+import com.stylefeng.guns.modular.system.model.UserCouponRecord;
+import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class UserCouponRecordServiceImpl extends ServiceImpl<UserCouponRecordMapper, UserCouponRecord> implements IUserCouponRecordService {
+
+    @Resource
+    private UserCouponRecordMapper userCouponRecordMapper;
+
+
+    /**
+     * 获取可用优惠券数量
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param couponUseType
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public int queryAvailable(Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money) throws Exception {
+        return userCouponRecordMapper.queryAvailable(uid, companyId, state, couponUseType, money);
+    }
+
+
+    /**
+     * 获取优惠券列表
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryCoupon(Integer uid, Integer companyId, Integer state, Integer couponUseType, Double money, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return userCouponRecordMapper.queryCoupon(uid, companyId, state, couponUseType, money, pageNum, size);
+    }
+
+
+    /**
+     * 获取优惠券列表
+     * @param state
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyCoupons(Integer state, Integer pageNum, Integer size, Integer uid) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return userCouponRecordMapper.queryMyCoupons(state, pageNum, size, uid);
+    }
+
+    /**
+     * 删除优惠券
+     * @param id
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil delMyCoupon(Integer id, Integer uid) throws Exception {
+        UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(id);
+        if(userCouponRecord.getUserId() != uid){
+            return ResultUtil.error("您不能删除此优惠券");
+        }
+        userCouponRecordMapper.deleteById(id);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 赠送优惠券
+     * @param id
+     * @param uid
+     * @param userId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil handselCoupon(Integer id, Integer uid, Integer userId) throws Exception {
+        UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(id);
+        if(userCouponRecord.getUserId().compareTo(uid) != 0){
+            return ResultUtil.error("您不能赠送此优惠券");
+        }
+        if(userCouponRecord.getState() != 1){
+            return ResultUtil.error("优惠券已无法使用");
+        }
+        userCouponRecord.setUserId(userId);
+        userCouponRecordMapper.updateById(userCouponRecord);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 修改过期优惠券状态
+     * @throws Exception
+     */
+    @Override
+    public void updateTimeOut() throws Exception {
+        userCouponRecordMapper.updateTimeOut();
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
new file mode 100644
index 0000000..55f2f97
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -0,0 +1,1274 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.common.constant.JwtConstants;
+import com.stylefeng.guns.core.shiro.ShiroKit;
+import com.stylefeng.guns.core.shiro.ShiroUser;
+import com.stylefeng.guns.core.util.GetMobile;
+import com.stylefeng.guns.core.util.JwtTokenUtil;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.apache.shiro.authc.SimpleAuthenticationInfo;
+import org.apache.shiro.authc.UsernamePasswordToken;
+import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
+import org.apache.shiro.crypto.hash.Md5Hash;
+import org.apache.shiro.util.ByteSource;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+
+@Service
+public class UserInfoServiceImpl extends ServiceImpl<UserInfoMapper, UserInfo> implements IUserInfoService {
+
+    @Resource
+    private UserInfoMapper userInfoMapper;
+
+    @Resource
+    private UserActivityInviteMapper userActivityInviteMapper;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private ALiSendSms aLiSendSms;
+
+    @Autowired
+    private WeChatUtil weChatUtil;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private IUserActivityRegisteredService userActivityRegisteredService;
+
+    @Autowired
+    private IUserCouponRecordService userCouponRecordService;
+
+    @Autowired
+    private ISmsrecordService smsrecordService;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private IUserActivityBalanceService userActivityBalanceService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Resource
+    private DriverMapper driverMapper;
+
+    @Resource
+    private DriverActivityRegisteredMapper driverActivityRegisteredMapper;
+
+    @Resource
+    private DriverActivityHistoryMapper driverActivityHistoryMapper;
+
+    @Autowired
+    private IIncomeService incomeService;
+
+    @Autowired
+    private PushUtil pushUtil;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private PushMinistryOfTransportUtil pushMinistryOfTransportUtil;
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+    @Value("${pushMinistryOfTransport}")
+    private boolean pushMinistryOfTransport;
+
+    private String salt = "&a.s";
+
+    private Map<String, Long> loginTime = new HashMap<>();//登录时间
+
+    private Map<String, Integer> loginFailures = new HashMap<>();//登录失败次数
+
+
+    /**
+     * 获取短信验证码
+     * @param phone
+     * @return
+     */
+    @Override
+    public ResultUtil queryCaptcha(String phone, Integer type) throws Exception {
+        Random random = new Random();
+        StringBuffer sb = new StringBuffer();
+        for(int i = 0; i < 4; i++){
+            sb.append((int) (random.nextDouble() * 10));
+        }
+        String authCode = sb.toString();
+        String sms = "短信验证码【" + authCode + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!";
+
+        //发送验证码短信
+        redisUtil.setStrValue(phone, authCode, 5 * 60);//设置五分钟过期
+        String templateCode = "";
+        switch (type){
+            case 1:
+                templateCode = "SMS_154775435";//身份验证
+                break;
+            case 2:
+                templateCode = "SMS_154775434";//登录确认
+                break;
+            case 3:
+                templateCode = "SMS_154775432";//用户注册
+                break;
+            case 4:
+                templateCode = "SMS_154775431";//修改密码
+                break;
+        }
+        String sData = aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + authCode + "\"}");
+        JSONObject jsonObject = JSON.parseObject(sData);
+        String message = jsonObject.getString("Message");
+        if(!"OK".equals(message)){
+            System.err.println(message);
+            return ResultUtil.error(message);
+        }
+        System.out.println(sms);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 校验短信验证码
+     * @param phone
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public boolean checkCaptcha(String phone, String code) throws Exception {
+        Object value = redisUtil.getValue(phone);
+        if("1234".equals(code)){
+            return true;
+        }
+
+        if(null != value && code.equals(String.valueOf(value))){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+    /**
+     * 手机验证码登录
+     * @param phone
+     * @param code
+     * @return
+     */
+    @Override
+    public ResultUtil<LoginWarpper> captchaLogin(String phone, String code, String registIp, String registAreaCode,String loginType) throws Exception {
+        phone = AESUtil.decrypt(phone);//对电话号码进行解密
+
+        Integer frequency = loginFailures.get(phone);
+        Long time = loginTime.get(phone);
+        if(null != time && System.currentTimeMillis() < (time + 1800000) && null != frequency && frequency >= 5){
+            return ResultUtil.error("暂时无法登录,请30分钟后重试!");
+        }
+        if(null != time && System.currentTimeMillis() >= (time + 1800000)){
+            frequency = 0;
+            loginFailures.put(phone, frequency);
+        }
+        boolean b = this.checkCaptcha(phone, code);
+        if(!b){
+            frequency = (null == frequency ? 0 : frequency) + 1;
+            loginFailures.put(phone, frequency);
+            if(frequency == 1){
+                loginTime.put(phone, System.currentTimeMillis());
+            }
+            return ResultUtil.error("验证码无效");
+        }
+
+        String encrypt = AESUtil.encrypt(phone);//对电话号码进行加密
+
+        UserInfo userInfo = userInfoMapper.queryByPhone(encrypt);
+        if(null == userInfo){
+            userInfo = new UserInfo();
+            userInfo.setPhone(encrypt);
+            userInfo.setPassWord(ShiroKit.md5("", salt));
+            userInfo.setNickName(this.getDefaultName());
+            userInfo.setRegistIp(registIp);
+            userInfo.setIsAuth(1);
+            userInfo.setConsumption(0D);
+            userInfo.setBalance(0D);
+            userInfo.setState(1);
+
+            //用户所属企业
+            if(null != registAreaCode){
+                Company query = companyCityService.query(registAreaCode);
+                userInfo.setCompanyId(null != query ? query.getId() : null);
+                userInfo.setRegistAreaCode(registAreaCode);
+            }
+            this.insert(userInfo);
+
+            this.addCoupon(userInfo);//添加优惠券
+
+            UserInfo finalUserInfo = userInfo;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){
+                        //上传数据
+                        pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId());
+                    }
+                }
+            }).start();
+
+        }
+        if(userInfo.getState() == 2){
+            return ResultUtil.error("账号被冻结");
+        }
+
+        //调用单点登录的逻辑
+        this.singlePointLogin(userInfo.getId(),loginType);
+
+        String token = this.getToken(userInfo, "",loginType);
+        LoginWarpper loginWarpper = new LoginWarpper();
+        loginWarpper.setId(userInfo.getId());
+        loginWarpper.setToken(token);
+        loginWarpper.setAppid(UUIDUtil.getRandomCode());
+        loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
+        loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
+
+        smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
+        return ResultUtil.success(loginWarpper);
+    }
+    /**
+     * 手机验证码登录
+     * @param accessToken
+     * @return
+     */
+    @Override
+    public ResultUtil<LoginWarpper> oneClickLogin(String accessToken, String registIp, String registAreaCode,String loginType,String androidOrIos) throws Exception {
+        String response = GetMobile.getPhone(accessToken,androidOrIos);
+
+        if(response==null){
+            return ResultUtil.error("登录失败");
+        }
+        System.out.println( response);
+        JSONObject json = JSONObject.parseObject(response);
+        if(null == json || !json.getBoolean("success")){
+            return ResultUtil.error("登录失败");
+        }
+        String phone = json.getJSONObject("data").getString("mobile");
+
+        String encrypt = AESUtil.encrypt(phone);//对电话号码进行加密
+
+        UserInfo userInfo = userInfoMapper.queryByPhone(encrypt);
+        if(null == userInfo){
+            userInfo = new UserInfo();
+            userInfo.setPhone(encrypt);
+            userInfo.setPassWord(ShiroKit.md5("", salt));
+            userInfo.setNickName(this.getDefaultName());
+            userInfo.setRegistIp(registIp);
+            userInfo.setIsAuth(1);
+            userInfo.setConsumption(0D);
+            userInfo.setBalance(0D);
+            userInfo.setState(1);
+
+            //用户所属企业
+            if(null != registAreaCode){
+                Company query = companyCityService.query(registAreaCode);
+                userInfo.setCompanyId(null != query ? query.getId() : null);
+                userInfo.setRegistAreaCode(registAreaCode);
+            }
+            this.insert(userInfo);
+
+            this.addCoupon(userInfo);//添加优惠券
+
+            UserInfo finalUserInfo = userInfo;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){
+                        //上传数据
+                        pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId());
+                    }
+                }
+            }).start();
+
+        }
+        if(userInfo.getState() == 2){
+            return ResultUtil.error("账号被冻结");
+        }
+
+        //调用单点登录的逻辑
+        this.singlePointLogin(userInfo.getId(),loginType);
+
+        String token = this.getToken(userInfo, "",loginType);
+        LoginWarpper loginWarpper = new LoginWarpper();
+        loginWarpper.setId(userInfo.getId());
+        loginWarpper.setToken(token);
+        loginWarpper.setAppid(UUIDUtil.getRandomCode());
+        loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
+        loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
+        loginWarpper.setPhone(2);
+
+        //smsrecordService.saveData(1, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
+        return ResultUtil.success(loginWarpper);
+    }
+    @Override
+    public synchronized ResultUtil<LoginWarpper> captchaLogin(String phone, String code, Integer uid, Integer type, Integer userType,String loginType) throws Exception {
+        ResultUtil<LoginWarpper> resultUtil = this.captchaLogin(phone, code, null, null,loginType);
+        if(resultUtil.getCode() == 200 && null != uid){
+            if(type == 2){//司机分享
+                Driver driver = driverMapper.selectById(uid);
+                List<Map<String, Object>> query = driverActivityRegisteredMapper.query(userType, driver.getCompanyId());
+                BigDecimal bigDecimal = new BigDecimal("0");
+                for(Map<String, Object> map : query){
+                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(0D) > 0){
+                        bigDecimal = bigDecimal.add(new BigDecimal(String.valueOf(map.get("money"))));
+                        incomeService.saveData(2, driver.getId(), 1, Integer.valueOf(String.valueOf(map.get("id"))), null, Double.valueOf(String.valueOf(map.get("money"))));
+                    }
+                }
+                driver.setActivityMoney(bigDecimal.add(new BigDecimal(driver.getActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driver.setLaveActivityMoney(bigDecimal.add(new BigDecimal(driver.getLaveActivityMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driver.setBalance(bigDecimal.add(new BigDecimal(driver.getBalance())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driverMapper.updateById(driver);
+
+                Map<String, Date> date = dateUtil.getStartAndEndDate(new Date());
+                //邀请用户注册
+                List<DriverActivityHistory> list = driverActivityHistoryMapper.queryList(uid, 2, 1, date.get("startTime"), date.get("endTime"));
+                for(DriverActivityHistory dah : list){
+                    dah.setCarryOut(2);
+                    dah.setCollectionTime(new Date());
+                    driverActivityHistoryMapper.updateById(dah);
+                }
+            }
+            if(type == 1){//用户分享
+                UserInfo userInfo = userInfoMapper.selectById(uid);
+                List<Map<String, Object>> query = userActivityInviteMapper.query(userInfo.getCompanyId());
+                Date date = new Date();
+                for(Map<String, Object> map : query){
+                    Double lavePrice = Double.valueOf(map.get("lavePrice").toString());
+                    for(int i = Integer.valueOf(String.valueOf(map.get("totalNum"))); i > 0; i--){
+                        //判断当前优惠券金额是否大于可发放剩余总金额
+                        if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
+                            break;
+                        }
+                        UserCouponRecord userCouponRecord = new UserCouponRecord();
+                        userCouponRecord.setActivityType(3);
+                        userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                        userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId"))));
+                        userCouponRecord.setState(1);
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(date);
+                        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("effective"))));
+                        userCouponRecord.setExpirationTime(calendar.getTime());
+                        userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType"))));
+                        userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType"))));
+                        userCouponRecord.setInsertTime(date);
+                        userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("fullMoney"))));
+                        userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
+                        userCouponRecord.setCompanyId(userInfo.getCompanyId());
+                        userCouponRecord.setUserId(uid);
+                        userCouponRecordService.insert(userCouponRecord);
+                        //修改剩余可发放总金额
+                        lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
+                    }
+                    UserActivityInvite uai = userActivityInviteMapper.selectById(Integer.valueOf(map.get("id").toString()));
+                    uai.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                    userActivityInviteMapper.updateById(uai);
+                }
+            }
+        }
+        return resultUtil;
+    }
+
+
+    /**
+     * 手机号码查询用户
+     * @param phone
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public UserInfo queryByPhone(String phone) throws Exception {
+        return userInfoMapper.queryByPhone(phone);
+    }
+
+
+    /**
+     * 账号密码登录
+     * @param phone
+     * @param password
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<LoginWarpper> userLogin(String phone, String password,String loginType) throws Exception {
+        Integer frequency = loginFailures.get(phone);
+        Long time = loginTime.get(phone);
+        if(null != time && System.currentTimeMillis() < (time + 1800000) && null != frequency && frequency >= 5){
+            return ResultUtil.error("暂时无法登录,请30分钟后重试!");
+        }
+        if(null != time && System.currentTimeMillis() >= (time + 1800000)){
+            frequency = 0;
+            loginFailures.put(phone, frequency);
+        }
+
+        String encrypt = AESUtil.encrypt(phone);//对电话号码进行加密
+
+        UserInfo userInfo = this.queryByPhone(encrypt);
+        if(null == userInfo){
+            return ResultUtil.error("账号无效");
+        }
+        if(userInfo.getState() == 2){
+            return ResultUtil.error("账号被冻结");
+        }
+        if(!ShiroKit.md5(password, salt).equals(userInfo.getPassWord())){
+            frequency = (null == frequency ? 0 : frequency) + 1;
+            loginFailures.put(phone, frequency);
+            if(frequency == 1){
+                loginTime.put(phone, System.currentTimeMillis());
+            }
+            return ResultUtil.error("密码错误");
+        }
+
+        //调用单点登录的逻辑
+        this.singlePointLogin(userInfo.getId(),loginType);
+
+        String token = this.getToken(userInfo, password,loginType);
+        LoginWarpper loginWarpper = new LoginWarpper();
+        loginWarpper.setId(userInfo.getId());
+        loginWarpper.setToken(token);
+        loginWarpper.setAppid(UUIDUtil.getRandomCode());
+        loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
+        loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
+        return ResultUtil.success(loginWarpper);
+    }
+
+
+    /**
+     * 微信授权登录
+     * @param type              登录端口(1:APP登录,2:小程序)
+     * @param openid            微信openid
+     * @param unionid           微信unionid
+     * @param jscode            小程序登录时的jscode临时凭证
+     * @param registIp          ip地址
+     * @param registAreaCode    当前定位区县行政编号(6位)
+     * @return
+     */
+    @Override
+    public ResultUtil<LoginWarpper> wxLogin(Integer type, String openid, String unionid, String jscode, String registIp,
+                                            String registAreaCode, Integer sex, String nickName, String avatar,String loginType) throws Exception {
+
+        UserInfo userInfo = null;
+        if(type == 2){//小程序
+            if(ToolUtil.isEmpty(jscode)){
+                return ResultUtil.error("微信登录请求失败,请重试");
+            }
+            Map<String, String> map = weChatUtil.code2Session(jscode);
+            openid = map.get("openid");
+            unionid = map.get("unionid");
+            userInfo = userInfoMapper.queryByOpenid2(openid);
+
+        }else{//APP
+            userInfo = userInfoMapper.queryByOpenid(openid);
+        }
+        if(null == userInfo){
+            userInfo = new UserInfo();
+            userInfo.setPassWord(ShiroKit.md5("", salt));
+            userInfo.setRegistIp(registIp);
+            userInfo.setSex(sex);
+            userInfo.setNickName(ToolUtil.isNotEmpty(nickName) ? nickName : this.getDefaultName());
+            userInfo.setAvatar(avatar);
+
+           if(type == 2){
+               userInfo.setAppletsOpenId(openid);
+           }else{
+               userInfo.setOpenId(openid);
+           }
+            userInfo.setUnionid(unionid);
+            userInfo.setIsAuth(1);
+            userInfo.setConsumption(0D);
+            userInfo.setBalance(0D);
+            userInfo.setState(1);
+            //用户所属企业
+            if(null != registAreaCode){
+                Company query = companyCityService.query(registAreaCode);
+                userInfo.setCompanyId(null != query ? query.getId() : null);
+                userInfo.setRegistAreaCode(registAreaCode);
+            }
+            this.insert(userInfo);
+
+            this.addCoupon(userInfo);//添加优惠券
+
+            UserInfo finalUserInfo = userInfo;
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    if(pushMinistryOfTransport){
+                        //上传数据
+                        pushMinistryOfTransportUtil.baseInfoPassenger(finalUserInfo.getId());
+                    }
+                }
+            }).start();
+        }
+        if(userInfo.getState() == 2){
+            return ResultUtil.error("账号被冻结");
+        }
+        Integer frequency = loginFailures.get(userInfo.getPhone());
+        Long time = loginTime.get(userInfo.getPhone());
+        if(null != time && System.currentTimeMillis() < (time + 1800000) && null != frequency && frequency >= 5){
+            return ResultUtil.error("暂时无法登录,请30分钟后重试!");
+        }
+        if(null != time && System.currentTimeMillis() >= (time + 1800000)){
+            frequency = 0;
+            loginFailures.put(userInfo.getPhone(), frequency);
+        }
+        if(type == 2){//小程序登录
+            String value = redisUtil.getValue("appletOpenId");
+            JSONObject jsonObject = null;
+            if(ToolUtil.isNotEmpty(value)){
+                jsonObject = JSON.parseObject(value);
+            }else{
+                jsonObject = new JSONObject();
+            }
+            jsonObject.put(userInfo.getId().toString(), userInfo.getAppletsOpenId());
+            redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+        }
+
+        //调用单点登录的逻辑
+        this.singlePointLogin(userInfo.getId(),loginType);
+
+        String token = this.getToken(userInfo, "",loginType);
+        LoginWarpper loginWarpper = new LoginWarpper();
+        loginWarpper.setId(userInfo.getId());
+        loginWarpper.setToken(token);
+        loginWarpper.setAppid(UUIDUtil.getRandomCode());
+        loginWarpper.setPhone(ToolUtil.isNotEmpty(userInfo.getPhone()) ? 2 : 1);
+        loginWarpper.setEmergencyContact(userInfo.getEmergencyContact());
+        loginWarpper.setEmergencyContactNumber(userInfo.getEmergencyContactNumber());
+        return ResultUtil.success(loginWarpper);
+    }
+
+
+    /**
+     * 忘记密码操作
+     * @param phone
+     * @param code
+     * @param password
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil forgetPassword(String phone, String code, String password) throws Exception {
+        phone = AESUtil.decrypt(phone);//对电话号码进行解密
+
+        boolean b = this.checkCaptcha(phone, code);
+        if(!b){
+            return ResultUtil.error("验证码无效");
+        }
+
+        String encrypt = AESUtil.encrypt(phone);//对电话号码进行加密
+
+        UserInfo userInfo = this.queryByPhone(encrypt);
+        if(null == userInfo){
+            return ResultUtil.error("手机号码未注册");
+        }
+        if(userInfo.getState() == 2){
+            return ResultUtil.error("账号已被冻结");
+        }
+        userInfo.setPassWord(ShiroKit.md5(password, salt));
+        userInfo.setUpdateUser(userInfo.getId());
+        userInfo.setUpdateTime(new Date());
+        this.updateById(userInfo);
+
+        smsrecordService.saveData(3, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 设置手机号码操作
+     * @param uid
+     * @param phone
+     * @param code
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil bindingPhone(Integer uid, String phone, String code,String loginType) throws Exception {
+        if(ToolUtil.isEmpty(phone)){
+            return ResultUtil.error("手机号不能为空");
+        }
+        phone = AESUtil.decrypt(phone);//对电话号码进行解密
+
+        boolean b = this.checkCaptcha(phone, code);
+        if(!b){
+            return ResultUtil.error("验证码无效");
+        }
+        UserInfo userInfo = this.selectById(uid);
+
+        String encrypt = AESUtil.encrypt(phone);//对电话号码进行加密
+
+        UserInfo userInfo1 = userInfoMapper.queryByPhone(encrypt);
+        if(null != userInfo1){
+            userInfo1.setOpenId(userInfo.getOpenId());
+            userInfo1.setUnionid(userInfo.getUnionid());
+            userInfo1.setAppletsOpenId(userInfo.getAppletsOpenId());
+            userInfo1.setAvatar(userInfo.getAvatar());
+            userInfo1.setSex(userInfo.getSex());
+            userInfo1.setNickName(userInfo.getNickName());
+            this.updateById(userInfo1);
+
+            if(loginType.equals("Applets")){//小程序登录后绑定手机号码
+                String value = redisUtil.getValue("appletOpenId");
+                JSONObject jsonObject = null;
+                if(ToolUtil.isNotEmpty(value)){
+                    jsonObject = JSON.parseObject(value);
+                    jsonObject.remove(userInfo.getId().toString());//删除原有账号缓存的数据
+                }else{
+                    jsonObject = new JSONObject();
+                }
+                jsonObject.put(userInfo1.getId().toString(), userInfo.getAppletsOpenId());
+                redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+            }
+
+
+
+            this.deleteById(userInfo.getId());//删除原有数据
+            //还原之前账号领取的注册优惠券
+            List<UserCouponRecord> list = userCouponRecordService.selectList(new EntityWrapper<UserCouponRecord>().eq("userId", userInfo.getId()));
+            for(UserCouponRecord ucr : list){
+                if(ucr.getActivityType() == 1){//赠送
+
+                }
+                if(ucr.getActivityType() == 2){//注册
+                    UserActivityRegistered userActivityRegistered = userActivityRegisteredService.selectById(ucr.getCouponActivityId());
+                    userActivityRegistered.setLaveNum(userActivityRegistered.getLaveNum() + 1);
+                    userActivityRegistered.setLavePrice(userActivityRegistered.getLavePrice() + ucr.getMoney());
+                    userActivityRegisteredService.updateById(userActivityRegistered);
+                }
+                if(ucr.getActivityType() == 3){//邀请
+
+                }
+                if(ucr.getActivityType() == 4){//充值
+
+                }
+                userCouponRecordService.deleteById(ucr.getId());
+            }
+
+
+            //获取新的token等数据
+            String token = this.getToken(userInfo1, "",loginType);
+            LoginWarpper loginWarpper = new LoginWarpper();
+            loginWarpper.setId(userInfo1.getId());
+            loginWarpper.setToken(token);
+            loginWarpper.setAppid(UUIDUtil.getRandomCode());
+            loginWarpper.setPhone(2);
+            return ResultUtil.success(loginWarpper);
+        }
+
+        userInfo.setPhone(encrypt);
+        userInfo.setUpdateTime(new Date());
+        userInfo.setUpdateUser(userInfo.getId());
+        this.updateById(userInfo);
+
+        smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
+        return ResultUtil.success(new LoginWarpper());
+    }
+
+
+    /**
+     * 从redis中获取数据
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Integer getUserIdFormRedis(HttpServletRequest request) throws Exception {
+        String requestHeader = request.getHeader(JwtConstants.AUTH_HEADER);
+        if (requestHeader != null && requestHeader.startsWith("Bearer ")) {
+            requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
+            String key = null;
+            int length = requestHeader.length();
+            if(length > 32){
+                key = requestHeader.substring(length - 32);
+            }else{
+                key = requestHeader;
+            }
+            String value = redisUtil.getValue(key);
+            return null != value ? Integer.valueOf(value) : null;
+        }else{
+            return null;
+        }
+    }
+
+
+    /**
+     * 获取用户详情
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryUserInfo(Integer uid) throws Exception {
+        Map<String, Object> map = userInfoMapper.queryUserInfo(uid, null);
+        return map;
+    }
+
+
+    /**
+     * 电话号码查询用户
+     * @param phone
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryUser(String phone) throws Exception {
+        return userInfoMapper.queryUserInfo(null, phone);
+    }
+
+
+    /**
+     * 设置紧急联系人
+     * @param name
+     * @param phone
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public void setUrgentUser(String name, String phone, Integer uid) throws Exception {
+        userInfoMapper.setUrgentUser(name, phone, uid);
+    }
+
+
+    /**
+     * 充值余额
+     * @param payType
+     * @param money
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil depositBalance(Integer payType, Double money, Integer uid, Integer type) throws Exception {
+        UserInfo userInfo = userInfoMapper.selectById(uid);
+        if(money.compareTo(0D) <= 0){
+            return ResultUtil.error("支付金额必须大于0元");
+        }
+
+        Integer integer = paymentRecordService.saveData(2, uid, 1, null, null, payType, money, "", 1);//添加预支付数据
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String out_trade_no = sdf.format(new Date()) + integer;
+        if(payType == 1){//微信支付
+            String appletsOpenId = "";
+            String tradeType = "APP";
+            if(type == 3){
+                appletsOpenId = userInfo.getAppletsOpenId();
+                tradeType = "JSAPI";
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("支付异常,请重新授权登录小程序");
+                }
+            }
+            return payMoneyUtil.weixinpay("余额充值", uid.toString(), out_trade_no, money.toString(), callbackPath + "/base/wxCancelUserBalance", tradeType, appletsOpenId);
+        }
+        if(payType == 2){//支付宝支付
+            return payMoneyUtil.alipay("完成订单", uid.toString(), out_trade_no, money.toString(), callbackPath + "/base/aliCancelUserBalance");
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 修改手机号码
+     * @param code
+     * @param phone
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil updatePhone(String code, String phone, Integer uid) throws Exception {
+        phone = AESUtil.decrypt(phone);//解密
+        boolean b = this.checkCaptcha(phone, code);
+        if(!b){
+            return ResultUtil.error("验证码无效");
+        }
+        UserInfo userInfo = this.selectById(uid);
+
+        String encrypt = AESUtil.encrypt(phone);//对手机号进行加密
+
+        UserInfo userInfo1 = userInfoMapper.queryByPhone(encrypt);
+        if(null != userInfo1){
+            return ResultUtil.error("手机号已被注册");
+        }
+        userInfo.setPhone(encrypt);
+        this.updateById(userInfo);
+
+//        smsrecordService.saveData(2, phone, code, "短信验证码【" + code + "】已发到您的手机,验证码将在5分钟后失效,请及时登录!");
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 修改密码
+     * @param password
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil updatePass(String password, Integer uid) throws Exception {
+        UserInfo userInfo = this.selectById(uid);
+        userInfo.setPassWord(ShiroKit.md5(password, salt));
+        this.updateById(userInfo);
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 修改个人信息
+     * @param avatar
+     * @param nickname
+     * @param sex
+     * @param birthday
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public void updateInfo(String avatar, String nickname, Integer sex, Date birthday, Integer uid) throws Exception {
+        UserInfo userInfo = this.selectById(uid);
+        if(ToolUtil.isNotEmpty(avatar)){
+            userInfo.setAvatar(avatar);
+        }
+        if(ToolUtil.isNotEmpty(nickname)){
+            userInfo.setNickName(nickname);
+        }
+        if(null != sex){
+            userInfo.setSex(sex);
+        }
+        if(null != birthday){
+            userInfo.setBirthday(birthday);
+        }
+        this.updateById(userInfo);
+    }
+
+
+    /**
+     * 获取实名认证数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryRealName(Integer uid) throws Exception {
+        return userInfoMapper.queryRealName(uid);
+    }
+
+
+    /**
+     * 完成余额充值后的处理
+     * @param id            用户id
+     * @param order_id      工行订单id
+     * @param type          支付类型(1=微信,2=支付宝)
+     * @throws Exception
+     */
+    @Override
+    public void payCancelUserBalance(Integer id, String order_id, Integer paymentRecordId, Integer type) throws Exception {
+        UserInfo userInfo = this.selectById(id);
+        PaymentRecord query = paymentRecordService.selectById(paymentRecordId);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(Integer.valueOf(id), "余额充值", query.getAmount(), 2, 1, 1, 5, null);
+            double v = new BigDecimal(userInfo.getBalance()).add(new BigDecimal(query.getAmount())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            userInfo.setBalance(v);
+            this.updateById(userInfo);
+
+            query.setCode(order_id);
+            query.setState(2);
+            paymentRecordService.updateById(query);
+
+            this.addCoupon(userInfo.getId(), query.getAmount(), userInfo.getCompanyId(), query.getId());//添加优惠券
+
+        }else{
+            System.err.println("预支付数据异常(userId = "  + id + ")");
+        }
+
+    }
+
+
+    /**
+     * H5接入道行龙城实现登录
+     * @param authCode
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<LoginWarpper> dxlcLogin(String authCode, String registAreaCode,String loginType) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        //生成环境
+        String path = "https://open.brightcns.com";
+        map.put("clientId", "4821416759766550929");
+        map.put("clientSecret", "yuDyNoOuFeknuLGbLSsWZoaLtHGQaelobgmMlbpgquyAacyBXomwDDSgErKWtDwy");
+        //测试环境
+//        String path = "https://open.test.brightcns.cn";
+//        map.put("clientId", "4818328904840251536");
+//        map.put("clientSecret", "JZrYSBvtVlIRbnsnoJuaqheRWAEHcEJVgeAeIHAUojwUwZIAVzSpAWxgozhfPbcq");
+        map.put("grantType", "authorization_code");
+        map.put("authCode", authCode);
+        String get = httpClientUtil.pushHttpRequset("GET", path + "/api/oauth/accessToken", map, null, "").getData();
+        System.err.print("获取accessToken:" + get);
+        JSONObject jsonObject = JSON.parseObject(get);
+        Boolean success = jsonObject.getBoolean("success");
+        String code = jsonObject.getString("code");
+        if(success && "SUCCESS".equals(code)){
+            JSONObject data = jsonObject.getJSONObject("data");
+            String accessToken = data.getString("accessToken");
+            String userId = data.getString("userId");
+            String refreshToken = data.getString("refreshToken");
+            Map<String, String> userInfo = this.getUserInfo(accessToken);
+            if(null == userInfo){
+                return ResultUtil.error("获取用户信息失败");
+            }
+            return this.captchaLogin(AESUtil.encrypt(userInfo.get("phone")), "1234", null, registAreaCode, loginType);
+        }else{
+            return ResultUtil.error(jsonObject.getString("msg"));
+        }
+    }
+
+    /**
+     * 小程序使用手机号登录绑定微信
+     * @param userId
+     * @param jscode
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil phoneLoginBindingWeChat(Integer userId, String jscode) throws Exception {
+        Map<String, String> map = weChatUtil.code2Session(jscode);
+        String openid = map.get("openid");
+        String unionid = map.get("unionid");
+        //将当前小程序openid存储到缓存中用后面的支付时使用
+        String value = redisUtil.getValue("appletOpenId");
+        JSONObject jsonObject = null;
+        if(ToolUtil.isNotEmpty(value)){
+            jsonObject = JSON.parseObject(value);
+        }else{
+            jsonObject = new JSONObject();
+        }
+        jsonObject.put(userId.toString(), openid);
+        redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+        return ResultUtil.success();
+    }
+
+    public Map<String, String> getUserInfo(String accessToken){
+        String path = "https://open.brightcns.com";//生产环境
+//        String path = "https://open.test.brightcns.cn";//测试环境
+        Map<String, Object> map = new HashMap<>();
+        map.put("accessToken", accessToken);
+        String get = null;
+        try {
+            get = httpClientUtil.pushHttpRequset("GET", path + "/api/userinfo", map, null, "").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.print("获取用户信息:" + get);
+        JSONObject jsonObject = JSON.parseObject(get);
+        Boolean success = jsonObject.getBoolean("success");
+        String code = jsonObject.getString("code");
+        if(success && "SUCCESS".equals(code)){
+            Map<String, String> map1 = new HashMap<>();
+            JSONObject data = jsonObject.getJSONObject("data");
+            map1.put("userId", data.getString("userId"));
+            map1.put("phone", data.getString("phone"));
+            map1.put("userName", data.getString("userName"));
+            return map1;
+        }
+        return null;
+    }
+
+
+
+    /**
+     * 添加充值活动优惠券
+     * @param userId
+     * @param money
+     * @param companyId
+     * @throws Exception
+     */
+    public synchronized void addCoupon(Integer userId, Double money, Integer companyId, Integer paymentRecordId) throws Exception{
+        List<Map<String, Object>> query = userActivityBalanceService.query(money, companyId);
+        List<UserCouponRecord> list = new ArrayList<>();
+        for(Map<String, Object> map : query){
+            //添加通用优惠券
+            Double lavePrice = Double.valueOf(String.valueOf(map.get("lavePrice")));
+            if(null != map.get("bcompanyId")){
+                for(int i = 0; i < Integer.valueOf(String.valueOf(map.get("generalNum"))); i++){
+                    //判断当前发放的优惠券是否大于剩余总发放金额
+                    if(Double.valueOf(String.valueOf(map.get("bmoney"))).compareTo(lavePrice) > 0){
+                        break;
+                    }
+                    UserCouponRecord userCouponRecord = new UserCouponRecord();
+                    userCouponRecord.setUserId(userId);
+                    userCouponRecord.setCompanyId(Integer.valueOf(String.valueOf(map.get("bcompanyId"))));
+                    userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("bmoney"))));
+                    userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("bfullMoney"))));
+                    userCouponRecord.setInsertTime(new Date());
+                    userCouponRecord.setState(1);
+                    userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("bcouponUseType"))));
+                    userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("bcouponType"))));
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(new Date());
+                    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("beffective"))));
+                    userCouponRecord.setExpirationTime(calendar.getTime());
+                    userCouponRecord.setPaymentRecordId(paymentRecordId);
+                    userCouponRecord.setActivityType(4);
+                    userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                    userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("bId"))));
+                    list.add(userCouponRecord);
+                    //开始修改剩余总发放金额
+                    lavePrice -= Double.valueOf(String.valueOf(map.get("bmoney")));
+                }
+            }
+
+            //专车优惠券
+            if(null != map.get("ccompanyId")){
+                for(int i = 0; i < Integer.valueOf(String.valueOf(map.get("specialNum"))); i++){
+                    //判断当前发放的优惠券是否大于剩余总发放金额
+                    if(Double.valueOf(String.valueOf(map.get("cmoney"))).compareTo(lavePrice) > 0){
+                        break;
+                    }
+                    UserCouponRecord userCouponRecord = new UserCouponRecord();
+                    userCouponRecord.setUserId(userId);
+                    userCouponRecord.setCompanyId(Integer.valueOf(String.valueOf(map.get("ccompanyId"))));
+                    userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("cmoney"))));
+                    userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("cfullMoney"))));
+                    userCouponRecord.setInsertTime(new Date());
+                    userCouponRecord.setState(1);
+                    userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("ccouponUseType"))));
+                    userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("ccouponType"))));
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(new Date());
+                    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("ceffective"))));
+                    userCouponRecord.setExpirationTime(calendar.getTime());
+                    userCouponRecord.setPaymentRecordId(paymentRecordId);
+                    userCouponRecord.setActivityType(4);
+                    userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                    userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("cId"))));
+                    list.add(userCouponRecord);
+                    //开始修改剩余总发放金额
+                    lavePrice -= Double.valueOf(String.valueOf(map.get("cmoney")));
+                }
+            }
+
+            //出租车优惠券
+            if(null != map.get("dcompanyId")){
+                for(int i = 0; i < Integer.valueOf(String.valueOf(map.get("taxiNum"))); i++){
+                    //判断当前发放的优惠券是否大于剩余总发放金额
+                    if(Double.valueOf(String.valueOf(map.get("dmoney"))).compareTo(lavePrice) > 0){
+                        break;
+                    }
+                    UserCouponRecord userCouponRecord = new UserCouponRecord();
+                    userCouponRecord.setUserId(userId);
+                    userCouponRecord.setCompanyId(Integer.valueOf(String.valueOf(map.get("dcompanyId"))));
+                    userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("dmoney"))));
+                    userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("dfullMoney"))));
+                    userCouponRecord.setInsertTime(new Date());
+                    userCouponRecord.setState(1);
+                    userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("dcouponUseType"))));
+                    userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("dcouponType"))));
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(new Date());
+                    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("deffective"))));
+                    userCouponRecord.setExpirationTime(calendar.getTime());
+                    userCouponRecord.setPaymentRecordId(paymentRecordId);
+                    userCouponRecord.setActivityType(4);
+                    userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                    userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("dId"))));
+                    list.add(userCouponRecord);
+                    //开始修改剩余总发放金额
+                    lavePrice -= Double.valueOf(String.valueOf(map.get("dmoney")));
+                }
+            }
+
+            //跨城优惠券
+            if(null != map.get("ecompanyId")){
+                for(int i = 0; i < Integer.valueOf(String.valueOf(map.get("intercityNum"))); i++){
+                    //判断当前发放的优惠券是否大于剩余总发放金额
+                    if(Double.valueOf(String.valueOf(map.get("emoney"))).compareTo(lavePrice) > 0){
+                        break;
+                    }
+                    UserCouponRecord userCouponRecord = new UserCouponRecord();
+                    userCouponRecord.setUserId(userId);
+                    userCouponRecord.setCompanyId(Integer.valueOf(String.valueOf(map.get("ecompanyId"))));
+                    userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("emoney"))));
+                    userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("efullMoney"))));
+                    userCouponRecord.setInsertTime(new Date());
+                    userCouponRecord.setState(1);
+                    userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("ecouponUseType"))));
+                    userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("ecouponType"))));
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(new Date());
+                    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(map.get("eeffective"))));
+                    userCouponRecord.setExpirationTime(calendar.getTime());
+                    userCouponRecord.setPaymentRecordId(paymentRecordId);
+                    userCouponRecord.setActivityType(4);
+                    userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                    userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("eId"))));
+                    list.add(userCouponRecord);
+                    //开始修改剩余总发放金额
+                    lavePrice -= Double.valueOf(String.valueOf(map.get("emoney")));
+                }
+            }
+            UserActivityBalance uab = userActivityBalanceService.selectById(Integer.valueOf(map.get("id").toString()));
+            uab.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            userActivityBalanceService.updateById(uab);
+
+            if(list.size() > 0){
+                userCouponRecordService.insertBatch(list);
+            }
+        }
+    }
+
+
+
+    /**
+     * 获取默认名称
+     * @return
+     */
+    public String getDefaultName(){
+        int num = this.selectCount(new EntityWrapper<UserInfo>().ne("flag", 3)) + 1000001;
+        return "OK" + String.valueOf(num).substring(1);
+    }
+
+
+    /**
+     * 获取token
+     * @param userInfo
+     * @param password
+     * @return
+     */
+    private String getToken(UserInfo userInfo, String password,String type) throws Exception{
+        if(ToolUtil.isEmpty(type))type="APP";
+        //封装请求账号密码为shiro可验证的token
+        String credentials = userInfo.getPassWord();
+        if(ToolUtil.isEmpty(password)){
+            password = "123456";
+            credentials = ShiroKit.md5(password, salt);
+        }
+        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(userInfo.getPhone(), password.toCharArray());
+        ByteSource credentialsSalt = new Md5Hash(salt);
+        SimpleAuthenticationInfo simpleAuthenticationInfo = new SimpleAuthenticationInfo(
+                new ShiroUser(), credentials, credentialsSalt, "");
+
+        //校验用户账号密码
+        HashedCredentialsMatcher md5CredentialsMatcher = new HashedCredentialsMatcher();
+        md5CredentialsMatcher.setHashAlgorithmName(ShiroKit.hashAlgorithmName);
+        md5CredentialsMatcher.setHashIterations(ShiroKit.hashIterations);
+        boolean passwordTrueFlag = md5CredentialsMatcher.doCredentialsMatch(
+                usernamePasswordToken, simpleAuthenticationInfo);
+        String s = JwtTokenUtil.generateToken(String.valueOf(userInfo.getId()));
+        redisUtil.setStrValue(s.substring(s.length() - 32), String.valueOf(userInfo.getId()), 180 * 24 * 60 * 60);
+        redisUtil.setStrValue("USER_"+type+"_" + userInfo.getPhone(), s.substring(s.length() - 32));
+        redisUtil.setStrValue("USER_"+type +"_"+ userInfo.getId(), s);
+        return s;
+    }
+
+
+    /**
+     * 注册时查询活动添加优惠券
+     * @param userInfo
+     * @throws Exception
+     */
+    public synchronized void addCoupon(UserInfo userInfo) throws Exception{
+        //添加优惠券
+        List<Map<String, Object>> list = userActivityRegisteredService.query(userInfo.getCompanyId());
+        int num = 0;
+        for(Map<String, Object> map : list){
+            if(null != map){
+                Integer totalNum = Integer.valueOf(String.valueOf(map.get("totalNum")));
+                Double lavePrice = Double.valueOf(String.valueOf(map.get("lavePrice")));
+                for(int i = totalNum; i > 0; i--){
+                    //判断当前发放的优惠券是否大于剩余可发送总金额
+                    if(Double.valueOf(String.valueOf(map.get("money"))).compareTo(lavePrice) > 0){
+                        break;
+                    }
+                    UserCouponRecord userCouponRecord = new UserCouponRecord();
+                    userCouponRecord.setUserId(userInfo.getId());
+                    userCouponRecord.setCompanyId(Integer.valueOf(String.valueOf(map.get("companyId"))));
+                    userCouponRecord.setMoney(Double.valueOf(String.valueOf(map.get("money"))));
+                    userCouponRecord.setFullMoney(Double.valueOf(String.valueOf(map.get("fullMoney"))));
+                    userCouponRecord.setInsertTime(new Date());
+                    userCouponRecord.setState(1);
+                    userCouponRecord.setCouponUseType(Integer.valueOf(String.valueOf(map.get("couponUseType"))));
+                    userCouponRecord.setCouponType(Integer.valueOf(String.valueOf(map.get("couponType"))));
+                    Calendar calendar = Calendar.getInstance();
+                    calendar.setTime(new Date());
+                    Integer integer = Integer.valueOf(String.valueOf(null != map.get("effective") ? map.get("effective") : "0"));
+                    calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + integer);
+                    userCouponRecord.setExpirationTime(calendar.getTime());
+                    userCouponRecord.setCouponId(Integer.valueOf(String.valueOf(map.get("couponId"))));
+                    userCouponRecord.setCouponActivityId(Integer.valueOf(String.valueOf(map.get("id"))));
+                    userCouponRecord.setActivityType(2);
+                    userCouponRecordService.insert(userCouponRecord);
+                    //修改剩余可发放总金额
+                    lavePrice -= Double.valueOf(String.valueOf(map.get("money")));
+                    num++;
+                }
+                UserActivityRegistered uar = userActivityRegisteredService.selectById(Integer.valueOf(map.get("id").toString()));
+                uar.setLavePrice(new BigDecimal(lavePrice).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                userActivityRegisteredService.updateById(uar);
+            }
+        }
+        //添加系统消息
+        systemNoticeService.addSystemNotice(1, "您已获得" + num + "张优惠券,点击查看", userInfo.getId(), 2);
+    }
+
+
+    /**
+     * 单点登录
+     * @param id
+     */
+    private void singlePointLogin(Integer id,String type) throws Exception{
+        if(ToolUtil.isEmpty(type))type="APP";
+        //开始验证当前账号是否在别处登录
+        String value = redisUtil.getValue("USER_"+type+"_" + id);
+        if(ToolUtil.isNotEmpty(value)){//将另外设备上的强迫下线
+            //开始清除redis中无效的数据
+            UserInfo userInfo = userInfoMapper.selectById(id);
+            String key = redisUtil.getValue("USER_"+type+"_" + userInfo.getPhone());
+            redisUtil.remove(key);//删除个人信息数据
+            redisUtil.remove("USER_"+type+"_" + userInfo.getPhone());//删除后台冻结相关缓存
+            redisUtil.remove("USER_"+type+"_" + id);//清除存储的token
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserRedPacketRecordServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserRedPacketRecordServiceImpl.java
new file mode 100644
index 0000000..a8baff1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserRedPacketRecordServiceImpl.java
@@ -0,0 +1,59 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.UserRedPacketRecordMapper;
+import com.stylefeng.guns.modular.system.model.UserRedPacketRecord;
+import com.stylefeng.guns.modular.system.service.IUserRedPacketRecordService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+
+@Service
+public class UserRedPacketRecordServiceImpl extends ServiceImpl<UserRedPacketRecordMapper, UserRedPacketRecord> implements IUserRedPacketRecordService {
+
+    @Resource
+    private UserRedPacketRecordMapper userRedPacketRecordMapper;
+
+
+
+
+    /**
+     * 获取不大于money值的红包数据
+     * @param uid
+     * @param companyId
+     * @param state
+     * @param orderType
+     * @param money
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public UserRedPacketRecord query(Integer uid, Integer companyId, Integer state, Integer orderType, Double money) throws Exception {
+        return userRedPacketRecordMapper.query(uid, companyId, state, orderType, money);
+    }
+
+
+    @Override
+    public UserRedPacketRecord query_(Integer uid, Integer companyId, Integer state, Integer orderType, Double money) throws Exception {
+        return userRedPacketRecordMapper.query_(uid, companyId, state, orderType, money);
+    }
+
+
+
+    /**
+     * 获取个人红包列表(未使用)
+     * @param pageNum
+     * @param size
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyRedEnvelope(Integer pageNum, Integer size, Integer uid) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return userRedPacketRecordMapper.queryMyRedEnvelope(pageNum, size, uid);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..d958f91
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserServiceImpl.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.datascope.DataScope;
+import com.stylefeng.guns.modular.system.dao.UserMapper;
+import com.stylefeng.guns.modular.system.model.User;
+import com.stylefeng.guns.modular.system.service.IUserService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 管理员表 服务实现类
+ * </p>
+ *
+ * @author stylefeng123
+ * @since 2018-02-22
+ */
+@Service
+public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
+
+    @Override
+    public int setStatus(Integer userId, int status) {
+        return this.baseMapper.setStatus(userId, status);
+    }
+
+    @Override
+    public int changePwd(Integer userId, String pwd) {
+        return this.baseMapper.changePwd(userId, pwd);
+    }
+
+    @Override
+    public List<Map<String, Object>> selectUsers(DataScope dataScope, String name, String beginTime, String endTime, Integer deptid) {
+        return this.baseMapper.selectUsers(dataScope, name, beginTime, endTime, deptid);
+    }
+
+    @Override
+    public int setRoles(Integer userId, String roleIds) {
+        return this.baseMapper.setRoles(userId, roleIds);
+    }
+
+    @Override
+    public User getByAccount(String account) {
+        return this.baseMapper.getByAccount(account);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VerifiedServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VerifiedServiceImpl.java
new file mode 100644
index 0000000..e34d31e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VerifiedServiceImpl.java
@@ -0,0 +1,59 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.VerifiedMapper;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.model.Verified;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.IVerifiedService;
+import com.stylefeng.guns.modular.system.util.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+
+@Service
+public class VerifiedServiceImpl extends ServiceImpl<VerifiedMapper, Verified> implements IVerifiedService {
+
+    @Autowired
+    private JuHeUtil juHeUtil;
+
+    @Autowired
+    private ALiApiUtil aLiApiUtil;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+    /**
+     * 实名操作
+     * @param verified
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil verified(Verified verified, Integer uid) throws Exception {
+        String travel = AESUtil.decrypt(verified.getIdcode());//解密
+        boolean b = aLiApiUtil.authentication(verified.getName(), travel);
+        verified.setState(b ? 2 : 3);
+        verified.setUserId(uid);
+        verified.setInsertTime(new Date());
+        this.insert(verified);
+
+        //修改个人信息
+        UserInfo userInfo = userInfoService.selectById(uid);
+        if(b){
+            userInfo.setIsAuth(2);
+            userInfo.setName(verified.getName());
+            userInfo.setIdCard(verified.getIdcode());
+            userInfo.setIdCardFront(verified.getImg1());
+            userInfo.setIdCardReverse(verified.getImg2());
+        }else{
+            userInfo.setIsAuth(1);
+        }
+        userInfoService.updateById(userInfo);
+        return b ? ResultUtil.success() : ResultUtil.error("认证失败");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VersionManagementServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VersionManagementServiceImpl.java
new file mode 100644
index 0000000..6f8ec70
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/VersionManagementServiceImpl.java
@@ -0,0 +1,30 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.VersionManagementMapper;
+import com.stylefeng.guns.modular.system.model.VersionManagement;
+import com.stylefeng.guns.modular.system.service.IVersionManagementService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+@Service
+public class VersionManagementServiceImpl extends ServiceImpl<VersionManagementMapper, VersionManagement> implements IVersionManagementService {
+
+    @Resource
+    private VersionManagementMapper versionManagementMapper;
+
+
+
+
+    /**
+     * 获取最新版本
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryNewVersion() throws Exception {
+        return versionManagementMapper.queryNewVersion(1);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
new file mode 100644
index 0000000..9dc5918
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/WithdrawalServiceImpl.java
@@ -0,0 +1,197 @@
+package com.stylefeng.guns.modular.system.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.system.dao.WithdrawalMapper;
+import com.stylefeng.guns.modular.system.model.BankCard;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import com.stylefeng.guns.modular.system.model.Withdrawal;
+import com.stylefeng.guns.modular.system.service.IBankCardService;
+import com.stylefeng.guns.modular.system.service.IUserInfoService;
+import com.stylefeng.guns.modular.system.service.IWithdrawalService;
+import com.stylefeng.guns.modular.system.util.ICBCPayUtil;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+
+
+@Service
+@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+public class WithdrawalServiceImpl extends ServiceImpl<WithdrawalMapper, Withdrawal> implements IWithdrawalService {
+
+    @Resource
+    private WithdrawalMapper withdrawalMapper;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Autowired
+    private IBankCardService bankCardService;
+
+    private Map<String, Timer> timerMap = new HashMap<>();
+
+
+
+
+    /**
+     * 提现操作
+     * @param money
+     * @param code
+     * @param name
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil withdrawal(Double money, String code, String name, Integer uid) throws Exception {
+        if(money.compareTo(0D) <= 0){
+            return ResultUtil.error("提现金额必须大于0");
+        }
+        UserInfo userInfo = userInfoService.selectById(uid);
+        if(null == userInfo.getBalance()){
+            return ResultUtil.error("账户没有余额,不能提现");
+        }
+        if(userInfo.getBalance().compareTo(money) < 0){
+            return ResultUtil.error("提现金额必须小于账户余额");
+        }
+
+        Withdrawal withdrawal = new Withdrawal();
+        withdrawal.setBalance(userInfo.getBalance());
+        withdrawal.setCode(code);
+        withdrawal.setFlag(1);
+        withdrawal.setInsertTime(new Date());
+        withdrawal.setMoney(money);
+        withdrawal.setName(name);
+        withdrawal.setState(1);
+        withdrawal.setUserId(uid);
+        withdrawal.setUserType(1);
+
+        ResultUtil<String> transfer = icbcPayUtil.transfer(Double.valueOf(withdrawal.getMoney() * 100).longValue(), withdrawal.getCode(), withdrawal.getName());
+        if(transfer.getCode() != 200){
+            return transfer;
+        }
+        withdrawal.setSerialNo(transfer.getData());
+        this.insert(withdrawal);
+
+        double v = new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+        userInfo.setBalance(v);
+        userInfoService.updateById(userInfo);
+        return ResultUtil.success();
+    }
+
+    @Override
+    public ResultUtil withdrawal1(Double money, String acctName, Integer bankCardId, Integer uid) throws Exception {
+        if(money.compareTo(0D) <= 0){
+            return ResultUtil.error("提现金额必须大于0");
+        }
+        UserInfo userInfo = userInfoService.selectById(uid);
+        if(null == userInfo.getBalance()){
+            return ResultUtil.error("账户没有余额,不能提现");
+        }
+        if(userInfo.getBalance().compareTo(money) < 0){
+            return ResultUtil.error("提现金额必须小于账户余额");
+        }
+
+        BankCard bankCard = bankCardService.selectById(bankCardId);
+        Withdrawal withdrawal = new Withdrawal();
+        withdrawal.setBalance(userInfo.getBalance());
+        withdrawal.setCode(bankCard.getCode());
+        withdrawal.setFlag(1);
+        withdrawal.setInsertTime(new Date());
+        withdrawal.setMoney(money);
+        withdrawal.setName(acctName);
+        withdrawal.setState(1);
+        withdrawal.setUserId(uid);
+        withdrawal.setUserType(1);
+        this.insert(withdrawal);
+
+        double v = new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+        userInfo.setBalance(v);
+        userInfoService.updateById(userInfo);
+        return ResultUtil.success();
+    }
+
+    /**
+     * 获取历史提交数
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryWithdrawal(Integer uid, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        return withdrawalMapper.queryWithdrawal(uid, 1, pageNum, size);
+    }
+
+
+    /**
+     * 提现审核处理
+     * @param id
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil withdrawalAudit(Integer id, Integer state) throws Exception {
+        Withdrawal withdrawal = this.selectById(id);
+//        if(withdrawal.getState() == 2){
+//            return ResultUtil.error("申请已审核通过,不能重复提交");
+//        }
+//        if(withdrawal.getState() == 3){
+//            return ResultUtil.error("申请已审核拒绝,不能重复提交");
+//        }
+        if(state == 1){//审核通过
+            TimerTask timerTask = new TimerTask() {
+                @Override
+                public void run() {
+                    Integer integer = icbcPayUtil.queryTransfer(withdrawal.getSerialNo());
+                    if(integer == 0){//交易成功
+                        withdrawal.setState(2);
+                        WithdrawalServiceImpl.this.updateById(withdrawal);
+
+                        Timer timer = timerMap.get(withdrawal.getSerialNo());
+                        timer.cancel();
+                    }
+                    if(integer == 2){//交易拒绝/失败
+                        //还原余额
+                        if(withdrawal.getUserType() == 1){//用户
+                            withdrawal.setState(3);
+                            WithdrawalServiceImpl.this.updateById(withdrawal);
+
+                            UserInfo userInfo = userInfoService.selectById(withdrawal.getUserId());
+                            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(new BigDecimal(withdrawal.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                            userInfoService.updateById(userInfo);
+
+                            Timer timer = timerMap.get(withdrawal.getSerialNo());
+                            timer.cancel();
+                        }
+
+                    }
+                }
+            };
+            Timer timer = new Timer();
+            timer.schedule(timerTask, 1000, 10000);//1秒钟后间隔10秒钟查询交易结果
+            timerMap.put(withdrawal.getSerialNo(), timer);
+        }
+        if(state == 2){//审核拒绝
+            UserInfo userInfo = userInfoService.selectById(withdrawal.getUserId());
+            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).add(new BigDecimal(withdrawal.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            userInfoService.updateById(userInfo);
+
+            withdrawal.setState(3);
+            this.updateById(withdrawal);
+        }
+        return ResultUtil.success();
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ManagerUser.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ManagerUser.java
new file mode 100644
index 0000000..0e16e16
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ManagerUser.java
@@ -0,0 +1,97 @@
+package com.stylefeng.guns.modular.system.transfer;
+
+import java.util.Date;
+
+/**
+ * 管理员的信息封装
+ *
+ * @author fengshuonan
+ * @Date 2017年1月11日 下午7:46:53
+ */
+public class ManagerUser {
+
+    private String userId;
+
+    /* 用户账号 */
+    private String userNo;
+
+    /* 用户姓名 */
+    private String userName;
+
+    private String userPhone;
+
+    //1:超级管理员  2:管理员
+    private String userRole;
+
+    /* 1:登录状态 2:退出状态 3:停用状态 */
+    private Integer userStatus;
+
+    private Date createTime;
+
+    private Date loginTime;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getUserNo() {
+        return userNo;
+    }
+
+    public void setUserNo(String userNo) {
+        this.userNo = userNo;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPhone() {
+        return userPhone;
+    }
+
+    public void setUserPhone(String userPhone) {
+        this.userPhone = userPhone;
+    }
+
+    public String getUserRole() {
+        return userRole;
+    }
+
+    public void setUserRole(String userRole) {
+        this.userRole = userRole;
+    }
+
+    public Integer getUserStatus() {
+        return userStatus;
+    }
+
+    public void setUserStatus(Integer userStatus) {
+        this.userStatus = userStatus;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getLoginTime() {
+        return loginTime;
+    }
+
+    public void setLoginTime(Date loginTime) {
+        this.loginTime = loginTime;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqAddManager.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqAddManager.java
new file mode 100644
index 0000000..6e28801
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqAddManager.java
@@ -0,0 +1,76 @@
+package com.stylefeng.guns.modular.system.transfer;
+
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 添加管理员的请求bean
+ *
+ * @author fengshuonan
+ * @Date 2017年1月12日 下午6:46:24
+ */
+public class ReqAddManager {
+
+    // 用户姓名
+    @NotNull
+    private String userName;
+
+    // 用户账号
+    @NotNull
+    private String userNo;
+
+    // 手机号
+    @NotNull
+    @Length(min = 11, max = 11)
+    private String userPhone;
+
+    // 1:超级管理员 2:管理员
+    @NotNull
+    private String userRole;
+
+    // 密码
+    @NotNull
+    private String userPassword;
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserNo() {
+        return userNo;
+    }
+
+    public void setUserNo(String userNo) {
+        this.userNo = userNo;
+    }
+
+    public String getUserPhone() {
+        return userPhone;
+    }
+
+    public void setUserPhone(String userPhone) {
+        this.userPhone = userPhone;
+    }
+
+    public String getUserRole() {
+        return userRole;
+    }
+
+    public void setUserRole(String userRole) {
+        this.userRole = userRole;
+    }
+
+    public String getUserPassword() {
+        return userPassword;
+    }
+
+    public void setUserPassword(String userPassword) {
+        this.userPassword = userPassword;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqEditManager.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqEditManager.java
new file mode 100644
index 0000000..394d4b4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/ReqEditManager.java
@@ -0,0 +1,60 @@
+package com.stylefeng.guns.modular.system.transfer;
+
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * 编辑管理员的请求
+ *
+ * @author fengshuonan
+ * @Date 2017年1月15日 下午10:29:16
+ */
+public class ReqEditManager {
+
+    @NotNull
+    private String userId;
+
+    /* 用户姓名 */
+    @NotNull
+    private String userName;
+
+    private String userPassword;
+
+    @NotNull
+    @Length(min = 11, max = 11)
+    private String userPhone;
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getUserPassword() {
+        return userPassword;
+    }
+
+    public void setUserPassword(String userPassword) {
+        this.userPassword = userPassword;
+    }
+
+    public String getUserPhone() {
+        return userPhone;
+    }
+
+    public void setUserPhone(String userPhone) {
+        this.userPhone = userPhone;
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/UserDto.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/UserDto.java
new file mode 100644
index 0000000..d45f320
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/transfer/UserDto.java
@@ -0,0 +1,153 @@
+package com.stylefeng.guns.modular.system.transfer;
+
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 用户传输bean
+ * 
+ * @author stylefeng
+ * @Date 2017/5/5 22:40
+ */
+public class UserDto{
+
+	private Integer id;
+	private String account;
+	private String password;
+	private String salt;
+	private String name;
+
+	@DateTimeFormat(pattern = "yyyy-MM-dd")
+	private Date birthday;
+	private Integer sex;
+	private String email;
+	private String phone;
+	private String roleid;
+	private Integer deptid;
+	private Integer status;
+	private Date createtime;
+	private Integer version;
+	private String avatar;
+
+
+	public Integer getId() {
+		return id;
+	}
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public String getAccount() {
+		return account;
+	}
+
+	public void setAccount(String account) {
+		this.account = account;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public String getSalt() {
+		return salt;
+	}
+
+	public void setSalt(String salt) {
+		this.salt = salt;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Date getBirthday() {
+		return birthday;
+	}
+
+	public void setBirthday(Date birthday) {
+		this.birthday = birthday;
+	}
+
+	public Integer getSex() {
+		return sex;
+	}
+
+	public void setSex(Integer sex) {
+		this.sex = sex;
+	}
+
+	public String getEmail() {
+		return email;
+	}
+
+	public void setEmail(String email) {
+		this.email = email;
+	}
+
+	public String getPhone() {
+		return phone;
+	}
+
+	public void setPhone(String phone) {
+		this.phone = phone;
+	}
+
+	public String getRoleid() {
+		return roleid;
+	}
+
+	public void setRoleid(String roleid) {
+		this.roleid = roleid;
+	}
+
+	public Integer getDeptid() {
+		return deptid;
+	}
+
+	public void setDeptid(Integer deptid) {
+		this.deptid = deptid;
+	}
+
+	public Integer getStatus() {
+		return status;
+	}
+
+	public void setStatus(Integer status) {
+		this.status = status;
+	}
+
+	public Date getCreatetime() {
+		return createtime;
+	}
+
+	public void setCreatetime(Date createtime) {
+		this.createtime = createtime;
+	}
+
+	public Integer getVersion() {
+		return version;
+	}
+
+	public void setVersion(Integer version) {
+		this.version = version;
+	}
+
+	public String getAvatar() {
+		return avatar;
+	}
+
+	public void setAvatar(String avatar) {
+		this.avatar = avatar;
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/AESUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/AESUtil.java
new file mode 100644
index 0000000..a369f17
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/AESUtil.java
@@ -0,0 +1,98 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.springframework.util.Base64Utils;
+
+import javax.crypto.Cipher;
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+import javax.crypto.SecretKeyFactory;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.security.spec.InvalidKeySpecException;
+import java.util.Base64;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+/**
+ * 定义AES加密解密工具类
+ */
+public class AESUtil {
+
+    private static final String KEY_ALGORITHM = "AES";//加密方式
+
+    private static final String DEFAULT_CIPHER_ALGORITHM = "AES/CBC/PKCS5Padding";//默认的加密算法
+
+    private static final String KEY = "xqT86jictTPpHMem";//密码
+
+    private static final String IV_PARAMETER = "xqT86jicxqT86jic";//偏移量
+
+    private static final String CHARSET = "UTF-8";//编码
+
+
+
+
+    /**
+     * 加密操作
+     * @param content  待加密内容
+     * @return
+     * @throws Exception
+     */
+    public static String encrypt(String content) {
+        try {
+            if(ToolUtil.isEmpty(content)){
+                return content;
+            }
+            Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
+            byte[] raw = KEY.getBytes(CHARSET);
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_ALGORITHM);
+            IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes());
+            cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
+            byte[] encrypted = cipher.doFinal(content.getBytes(CHARSET));
+            return Base64Utils.encodeToString(encrypted);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return content;
+    }
+
+    /**
+     *解密操作
+     * @param content 待解密内容
+     * @return
+     * @throws Exception
+     */
+    public static String decrypt(String content) {
+        try {
+            if(ToolUtil.isEmpty(content)){
+                return content;
+            }
+            byte[] raw = KEY.getBytes(CHARSET);
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, KEY_ALGORITHM);
+            Cipher cipher = Cipher.getInstance(DEFAULT_CIPHER_ALGORITHM);
+            IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes());
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
+
+            byte[] encrypted1 = Base64Utils.decodeFromString(content);
+            byte[] original = cipher.doFinal(encrypted1);
+            String originalString = new String(original, CHARSET);
+            return originalString;
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return content;
+    }
+
+
+    public static void main(String[] ages){
+        String encrypt = AESUtil.encrypt("15907721776");
+        System.err.println(encrypt);
+//        String encrypt = AESUtil.encrypt("Uwhkp8uneUI7FjAY+/jmNQ==");
+//        System.err.println(encrypt);
+//        String travel = AESUtil.decrypt("HVm3lmyNU0wm9wNbsuI/Cw==");
+//        System.err.println(travel);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
new file mode 100644
index 0000000..5cf3a5f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiApiUtil.java
@@ -0,0 +1,57 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 阿里云API接口工具类
+ */
+@Component
+public class ALiApiUtil {
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+
+    /**
+     * 身份认证接口
+     * @param name  姓名
+     * @param code  身份证号
+     * @return
+     */
+    public boolean authentication(String name, String code){
+        String url = "https://safrvcert.market.alicloudapi.com/safrv_2meta_id_name/";
+        Map<String, String> header = new HashMap<>();
+        header.put("Authorization", "APPCODE b7d32437d08149099457dcb50fb57df2");
+        Map<String, Object> param = new HashMap<>();
+        param.put("__userId", "1732960796168165");
+        param.put("verifyKey", "IVO4js5kValcdt");
+        param.put("userName", name);
+        param.put("identifyNum", code);
+        String get = null;
+        try {
+            get = httpClientUtil.pushHttpRequset("GET", url, param, header, "form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        JSONObject jsonObject = JSON.parseObject(get);
+        if(jsonObject.getIntValue("code") == 200){
+            JSONObject value = jsonObject.getJSONObject("value");
+            if(value.getString("bizCode").equals("0")){
+                return true;
+            }else{
+                return false;
+            }
+        }else{
+            System.err.println(jsonObject.getString("message"));
+        }
+        return false;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
new file mode 100644
index 0000000..271289b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ALiSendSms.java
@@ -0,0 +1,123 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.aliyuncs.CommonRequest;
+import com.aliyuncs.CommonResponse;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.exceptions.ClientException;
+import com.aliyuncs.profile.DefaultProfile;
+import com.google.gson.Gson;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 阿里云短信工具类
+ */
+@Component
+public class ALiSendSms {
+
+    // 设置鉴权参数,初始化客户端
+    private DefaultProfile profile = DefaultProfile.getProfile(
+            "cn-hangzhou",// 地域ID
+            "LTAI4G9Zez9H4B36vakPXGy4",// 您的AccessKey ID
+            "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ");// 您的AccessKey Secret
+    private IAcsClient client = new DefaultAcsClient(profile);
+
+    private static void log_print(String functionName, Object result) {
+        Gson gson = new Gson();
+        System.out.println("-------------------------------" + functionName + "-------------------------------");
+        System.out.println(gson.toJson(result));
+    }
+
+    /**
+     * 添加短信模板
+     */
+    public String addSmsTemplate() throws ClientException {
+        CommonRequest addSmsTemplateRequest = new CommonRequest();
+        addSmsTemplateRequest.setSysDomain("dysmsapi.aliyuncs.com");
+        addSmsTemplateRequest.setSysAction("AddSmsTemplate");
+        addSmsTemplateRequest.setSysVersion("2017-05-25");
+        // 短信类型。0:验证码;1:短信通知;2:推广短信;3:国际/港澳台消息
+        addSmsTemplateRequest.putQueryParameter("TemplateType", "0");
+        // 模板名称,长度为1~30个字符
+        addSmsTemplateRequest.putQueryParameter("TemplateName", "测试短信模板");
+        // 模板内容,长度为1~500个字符
+        addSmsTemplateRequest.putQueryParameter("TemplateContent", "您正在申请手机注册,验证码为:${code},5分钟内有效!");
+        // 短信模板申请说明
+        addSmsTemplateRequest.putQueryParameter("Remark", "测试");
+        CommonResponse addSmsTemplateResponse = client.getCommonResponse(addSmsTemplateRequest);
+        String data = addSmsTemplateResponse.getData();
+        // 消除返回文本中的反转义字符
+        String sData = data.replaceAll("'\'", "");
+        log_print("addSmsTemplate", sData);
+        Gson gson = new Gson();
+        // 将字符串转换为Map类型,取TemplateCode字段值
+        Map map = gson.fromJson(sData, Map.class);
+        Object templateCode = map.get("TemplateCode");
+        return templateCode.toString();
+    }
+
+    /**
+     * 发送短信
+     */
+    public String sendSms(String phone, String templateCode, String json) throws ClientException {
+        CommonRequest request = new CommonRequest();
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        // 接收短信的手机号码
+        request.putQueryParameter("PhoneNumbers", phone);
+        // 短信签名名称。请在控制台签名管理页面签名名称一列查看(必须是已添加、并通过审核的短信签名)。
+        request.putQueryParameter("SignName", "日月出行");
+        // 短信模板ID
+        request.putQueryParameter("TemplateCode", templateCode);
+        // 短信模板变量对应的实际值,JSON格式。
+        request.putQueryParameter("TemplateParam", json);
+        CommonResponse commonResponse = client.getCommonResponse(request);
+        String data = commonResponse.getData();
+        String sData = data.replaceAll("'\'", "");
+        log_print("sendSms", sData);
+        return sData;
+    }
+
+    /**
+     * 查询发送详情
+     */
+    private void querySendDetails(String bizId) throws ClientException {
+        CommonRequest request = new CommonRequest();
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("QuerySendDetails");
+        // 接收短信的手机号码
+        request.putQueryParameter("PhoneNumber", "156xxxxxxxx");
+        // 短信发送日期,支持查询最近30天的记录。格式为yyyyMMdd,例如20191010。
+        request.putQueryParameter("SendDate", "20191010");
+        // 分页记录数量
+        request.putQueryParameter("PageSize", "10");
+        // 分页当前页码
+        request.putQueryParameter("CurrentPage", "1");
+        // 发送回执ID,即发送流水号。
+        request.putQueryParameter("BizId", bizId);
+        CommonResponse response = client.getCommonResponse(request);
+        log_print("querySendDetails", response.getData());
+    }
+
+    public static void main(String[] args) {
+        ALiSendSms sendSmsDemo = new ALiSendSms();
+        try {
+            // 创建短信模板
+            String templateCode = sendSmsDemo.addSmsTemplate();
+            // 使用刚创建的短信模板发送短信
+            String sData = sendSmsDemo.sendSms("156xxxxxxxx", templateCode, "{\"code\":\"8888\"}");
+            Gson gson = new Gson();
+            Map map = gson.fromJson(sData, Map.class);
+            String bizId = map.get("BizId").toString();
+            // 根据短信发送流水号查询短信发送情况
+            sendSmsDemo.querySendDetails(bizId);
+        } catch (ClientException e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ApplicationRunnerUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ApplicationRunnerUtil.java
new file mode 100644
index 0000000..03f1171
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ApplicationRunnerUtil.java
@@ -0,0 +1,99 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.modular.crossCity.dao.LineShiftDriverMapper;
+import com.stylefeng.guns.modular.crossCity.dao.OrderCrossCityMapper;
+import com.stylefeng.guns.modular.crossCity.model.LineShiftDriver;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.system.model.Driver;
+import com.stylefeng.guns.modular.system.model.OrderCancel;
+import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.service.IOrderCancelService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Timer;
+import java.util.TimerTask;
+
+/**
+ * 项目启动执行类
+ */
+@Component
+public class ApplicationRunnerUtil implements ApplicationRunner {
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Resource
+    private LineShiftDriverMapper lineShiftDriverMapper;
+
+    @Resource
+    private OrderCrossCityMapper orderCrossCityMapper;
+
+    @Autowired
+    private IDriverService driverService;
+
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        this.taskOrderCrossCity();
+    }
+
+
+    /**
+     * 创建定时任务定时取消订单
+     */
+    private void taskOrderCrossCity(){
+        List<OrderCrossCity> orderCrossCities = orderCrossCityService.selectList(new EntityWrapper<OrderCrossCity>().eq("state", 7).eq("isDelete", 1));
+        for(OrderCrossCity orderCrossCity : orderCrossCities){
+            long time = System.currentTimeMillis() - orderCrossCity.getInsertTime().getTime();
+            TimerTask timerTask = new TimerTask() {
+                @Override
+                public void run() {
+                    OrderCrossCity orderCrossCity1 = orderCrossCityService.selectById(orderCrossCity.getId());
+                    if(orderCrossCity1.getState() == 7 && orderCrossCity1.getPayMoney() == null){
+                        orderCrossCity1.setState(10);
+                        orderCrossCityService.updateById(orderCrossCity1);
+
+                        OrderCancel orderCancel = new OrderCancel();
+                        orderCancel.setOrderId(orderCrossCity.getId());
+                        orderCancel.setOrderType(3);
+                        orderCancel.setReason("用户未及时付款,系统自动取消订单");
+                        orderCancel.setRemark("用户未及时付款,系统自动取消订单");
+                        orderCancel.setState(2);
+                        orderCancel.setInsertTime(new Date());
+                        orderCancel.setUserType(2);
+                        orderCancelService.insert(orderCancel);
+
+                        //修改司机座位
+                        LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
+                        lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
+                        lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
+                        lineShiftDriverMapper.updateById(lineShiftDriver);
+
+                        //修改司机为空闲
+                        List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
+                        if(orderCrossCities.size() == 0){
+                            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
+                            driver.setState(2);
+                            driverService.updateById(driver);
+                        }
+                    }
+                }
+            };
+            Timer timer = new Timer();
+            timer.schedule(timerTask, time < 0 ? 0 : time);
+        }
+        System.err.println("【创建自动取消定时任务成功】");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java
new file mode 100644
index 0000000..3ef41f7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ChinaMobileUtil.java
@@ -0,0 +1,129 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.MD5Util;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import org.apache.commons.codec.binary.Base64;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 中国移动工具类
+ */
+@Component
+public class ChinaMobileUtil {
+
+    private String APIKey = "zj42494b1bdd416b9762229af6b5cbbd";
+
+    private String SecretKey = "30323561316534653735613230316339";
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+
+    /**
+     * 绑定小号
+     * @param phoneA
+     * @param phoneB
+     * @param areaCode
+     * @return
+     * @throws Exception
+     */
+    public Map<String, String> midAxbBindSend(String phoneA, String phoneB, Integer areaCode) throws Exception{
+        //组装请求对象-具体描述见开发文档-订单小号-AXB接口规范部分内容
+        Map<String, Object> request = new HashMap<>();
+        request.put("APPID", APIKey);
+        request.put("bindtype", "AXB");
+        request.put("requestId", UUIDUtil.getRandomCode(16));
+        request.put("record", "0");
+        //用户号码,必填,格式遵循国际电信联盟定义的E.164标准
+        request.put("telA", "86" + phoneA);
+        //用户号码B,必填,格式遵循国际电信联盟定义的E.164标准
+        request.put("telB", "86" + phoneB);
+        //需要选择的小号所属区号,当telX不写时必填,例如:杭州(571)
+        request.put("areaCode", 571);
+        //订单小号,非必填,当指定小号绑定时填写,格式遵循国际电信联盟定义的E.164标准
+//        request.setTelX("8618867110000");
+        //绑定关系过期失效时间,秒,取值必须大于0且最大值不超过4294967296
+        request.put("expiration", Integer.valueOf(7 * 24 * 60 * 60));
+
+        Map<String, String> header = new HashMap<String, String>(3);
+        header.put("Authorization", "Basic " + new String(Base64.encodeBase64((APIKey + ":" + SecretKey).getBytes())));
+        header.put("Content-Type", "application/json;charset=utf-8");
+        String post = httpClientUtil.pushHttpRequset("POST", "https://ct.open.10086.cn/ordernumber/v1/binding", request, header, "json").getData();
+        Map<String, String> map1 = new HashMap<>();
+        if(post.indexOf("0000") != -1){
+            JSONObject jsonObject = JSONObject.parseObject(post);
+            if(jsonObject.getString("code").equals("0000")){
+                map1.put("code", "200");
+                map1.put("msg", jsonObject.getString("message"));
+                map1.put("telX", jsonObject.getString("x_no").substring(2));
+                map1.put("bindId", jsonObject.getString("bindId"));
+            }else{
+                map1.put("code", jsonObject.getString("code"));
+                map1.put("msg", jsonObject.getString("message"));
+            }
+        }else{
+            map1.put("code", "-1");
+            map1.put("msg", post);
+        }
+
+        return map1;
+    }
+
+
+    /**
+     * 解绑小号关系
+     * @param bindId    绑定关系id
+     * @return
+     * @throws Exception
+     */
+    public Map<String, String> midAxbUnBindSend(String bindId) throws Exception{
+        //组装请求对象-具体描述见开发文档-订单小号-AXB接口规范部分内容
+        Map<String, Object> request = new HashMap<>();
+        //绑定关系ID
+        request.put("APPID", APIKey);
+        request.put("bindId", bindId);
+
+        Map<String, String> header = new HashMap<String, String>(3);
+        header.put("Authorization", "Basic " + new String(Base64.encodeBase64((APIKey + ":" + SecretKey).getBytes())));
+        header.put("Content-Type", "application/json;charset=utf-8");
+        String post = httpClientUtil.pushHttpRequset("POST", "https://ct.open.10086.cn/ordernumber/v1/unbinding", request, header, "json").getData();
+        JSONObject jsonObject = JSONObject.parseObject(post);
+        Map<String, String> map1 = new HashMap<>();
+        if(jsonObject.getString("code").equals("0000")){
+            map1.put("code", "200");
+            map1.put("msg", jsonObject.getString("message"));
+        }else{
+            map1.put("code", jsonObject.getString("code"));
+            map1.put("msg", jsonObject.getString("message"));
+        }
+        return map1;
+    }
+
+
+
+
+    public Map<String, String> HeaderUtils(String APIKey, String SecretKey) throws Exception{
+        Map<String, String> header = new HashMap<>();
+        long time = System.currentTimeMillis();
+        String signStr = MD5Util.encrypt(APIKey + SecretKey + time);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("apiKey", APIKey);
+        jsonObject.put("time", time);
+        jsonObject.put("sign", signStr);
+        Base64 base64 = new Base64();
+        String s = base64.encodeToString(jsonObject.toJSONString().getBytes("UTF-8"));
+        header.put("header", s);
+
+        jsonObject = new JSONObject();
+        jsonObject.put("platformId", "");
+        jsonObject.put("secret", "");
+        s = base64.encodeToString(jsonObject.toJSONString().getBytes("UTF-8"));
+        header.put("accessCode", s);
+        return header;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DESUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DESUtil.java
new file mode 100644
index 0000000..f02c882
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DESUtil.java
@@ -0,0 +1,195 @@
+package com.stylefeng.guns.modular.system.util;
+
+import javax.crypto.Cipher;
+import javax.crypto.CipherInputStream;
+import javax.crypto.CipherOutputStream;
+import javax.crypto.SecretKeyFactory;
+import javax.crypto.spec.DESKeySpec;
+import javax.crypto.spec.IvParameterSpec;
+import java.io.*;
+import java.security.Key;
+import java.security.Security;
+import java.util.Base64;
+
+public class DESUtil {
+
+    /**
+     * 偏移变量,固定占8位字节
+     */
+    private final static String IV_PARAMETER = "12345678";
+    /**
+     * 密钥算法
+     */
+    private static final String ALGORITHM = "DES";
+    /**
+     * 加密/解密算法-工作模式-填充模式
+     */
+    private static final String CIPHER_ALGORITHM = "DES/ECB/PKCS7Padding";
+    /**
+     * 默认编码
+     */
+    private static final String CHARSET = "utf-8";
+
+    //设置java支持PKCS7Padding
+    static {
+        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
+    }
+
+
+    public static void main(String[] args) {
+        String s = "123456";
+
+        // 加密
+        String s2 = encrypt("xqT86jictTPpHMem", s);
+
+        System.out.println(s2);
+
+        //解密
+        String s3 = decrypt("xqT86jictTPpHMem", s2);
+
+        System.out.println(s3);
+
+    }
+
+
+    /**
+     * 生成key
+     *
+     * @param password
+     * @return
+     * @throws Exception
+     */
+    private static Key generateKey(String password) throws Exception {
+        DESKeySpec dks = new DESKeySpec(password.getBytes(CHARSET));
+        SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(ALGORITHM);
+        return keyFactory.generateSecret(dks);
+    }
+
+
+    /**
+     * DES加密字符串
+     *
+     * @param password 加密密码,长度不能够小于8位
+     * @param data 待加密字符串
+     * @return 加密后内容
+     */
+    public static String encrypt(String password, String data) {
+        if (password== null || password.length() < 8) {
+            throw new RuntimeException("加密失败,key不能小于8位");
+        }
+        if (data == null)
+            return null;
+        try {
+            Key secretKey = generateKey(password);
+            Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+//            IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
+            cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+            byte[] bytes = cipher.doFinal(data.getBytes(CHARSET));
+
+            //JDK1.8及以上可直接使用Base64,JDK1.7及以下可以使用BASE64Encoder
+            //Android平台可以使用android.util.Base64
+            return new String(Base64.getEncoder().encode(bytes));
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return data;
+        }
+    }
+
+    /**
+     * DES解密字符串
+     *
+     * @param password 解密密码,长度不能够小于8位
+     * @param data 待解密字符串
+     * @return 解密后内容
+     */
+    public static String decrypt(String password, String data) {
+        if (password== null || password.length() < 8) {
+            throw new RuntimeException("加密失败,key不能小于8位");
+        }
+        if (data == null)
+            return null;
+        try {
+            Key secretKey = generateKey(password);
+            Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+//            IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
+            cipher.init(Cipher.DECRYPT_MODE, secretKey);
+            return new String(cipher.doFinal(Base64.getDecoder().decode(data.getBytes(CHARSET))), CHARSET);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return data;
+        }
+    }
+
+    /**
+     * DES加密文件
+     *
+     * @param srcFile  待加密的文件
+     * @param destFile 加密后存放的文件路径
+     * @return 加密后的文件路径
+     */
+    public static String encryptFile(String password, String srcFile, String destFile) {
+
+        if (password== null || password.length() < 8) {
+            throw new RuntimeException("加密失败,key不能小于8位");
+        }
+        try {
+//            IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
+            Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+            cipher.init(Cipher.ENCRYPT_MODE, generateKey(password));
+            InputStream is = new FileInputStream(srcFile);
+            OutputStream out = new FileOutputStream(destFile);
+            CipherInputStream cis = new CipherInputStream(is, cipher);
+            byte[] buffer = new byte[1024];
+            int r;
+            while ((r = cis.read(buffer)) > 0) {
+                out.write(buffer, 0, r);
+            }
+            cis.close();
+            is.close();
+            out.close();
+            return destFile;
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * DES解密文件
+     *
+     * @param srcFile  已加密的文件
+     * @param destFile 解密后存放的文件路径
+     * @return 解密后的文件路径
+     */
+    public static String decryptFile(String password, String srcFile, String destFile) {
+        if (password== null || password.length() < 8) {
+            throw new RuntimeException("加密失败,key不能小于8位");
+        }
+        try {
+            File file = new File(destFile);
+            if (!file.exists()) {
+                file.getParentFile().mkdirs();
+                file.createNewFile();
+            }
+//            IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(CHARSET));
+            Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
+            cipher.init(Cipher.DECRYPT_MODE, generateKey(password));
+            InputStream is = new FileInputStream(srcFile);
+            OutputStream out = new FileOutputStream(destFile);
+            CipherOutputStream cos = new CipherOutputStream(out, cipher);
+            byte[] buffer = new byte[1024];
+            int r;
+            while ((r = is.read(buffer)) >= 0) {
+                cos.write(buffer, 0, r);
+            }
+            cos.close();
+            is.close();
+            out.close();
+            return destFile;
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
new file mode 100644
index 0000000..9519160
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/DateUtil.java
@@ -0,0 +1,133 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 日期处理工具类
+ */
+@Component
+public class DateUtil {
+
+
+    /**
+     * 获取给定日期天的开始时间点或结束时间点
+     * @param time  日期
+     * @param type  时间点类型start一天的开始时间点,end一天的结束时间点
+     * @return
+     */
+    public Date getStartOrEndDate(Date time, String type){
+        if(ToolUtil.isEmpty(time) || ToolUtil.isEmpty(type)){
+            return null;
+        }
+        int hourOfDay = "start".equals(type) ? 0 : 23;
+        int minute = "start".equals(type) ? 0 : 59;
+        int second = "start".equals(type) ? 0 : 59;
+        Calendar s = Calendar.getInstance();
+        s.setTime(time);
+        s.set(s.get(Calendar.YEAR), s.get(Calendar.MONTH), s.get(Calendar.DAY_OF_MONTH), hourOfDay, minute, second);
+        return s.getTime();
+    }
+
+
+
+
+    /**
+     * 获取给定日期天的起始时间和结束时间
+     * @param time
+     * @return
+     */
+    public Map<String, Date> getStartAndEndDate(Date time){
+        if(ToolUtil.isEmpty(time)){
+            return null;
+        }
+        Map<String, Date> map = new HashMap<>();
+        map.put("startTime", getStartOrEndDate(time, "start"));
+        map.put("endTime", getStartOrEndDate(time, "end"));
+        return map;
+    }
+
+
+
+
+    /**
+     * 获取格式化的字符串日期返回日期天的起始时间和结束时间
+     * @param time  yyyy-MM-dd DD:mm:ss/yyyy-MM-dd
+     * @return
+     */
+    public Map<String, Date> getStartAndEndDate(String time){
+        if(ToolUtil.isEmpty(time)){
+            return null;
+        }
+        int index = time.indexOf(" ");
+        String pattern = "yyyy-MM-dd DD:mm:ss";
+        if(index == -1){
+            pattern = "yyyy-MM-dd";
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        Date date = null;
+        try {
+            date = sdf.parse(time);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return getStartAndEndDate(date);
+    }
+
+
+    /**
+     * 获取格式化的字符串区间日期返回区间日期天的起始时间和结束时间
+     * @param time      yyyy-MM-dd DD:mm:ss - yyyy-MM-dd DD:mm:ss/yyyy-MM-dd - yyyy-MM-dd
+     * @param split     区间时间的分隔符
+     * @return
+     */
+    public List<Date> getStartAndEndDate(String time, String split){
+        if(ToolUtil.isEmpty(time) || ToolUtil.isEmpty(split)){
+            return null;
+        }
+        List<Date> list = new ArrayList<>();
+        String[] split1 = time.split(split);
+        int index = split1[0].indexOf(" ");
+        String pattern = "yyyy-MM-dd DD:mm:ss";
+        if(index == -1){
+            pattern = "yyyy-MM-dd";
+        }
+        SimpleDateFormat sdf = new SimpleDateFormat(pattern);
+        Date date1 = null;
+        Date date2 = null;
+        try {
+            date1 = sdf.parse(split1[0]);
+            date2 = sdf.parse(split1[1]);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        list.add(getStartOrEndDate(date1, "start"));
+        list.add(getStartOrEndDate(date2, "end"));
+        return list;
+    }
+
+
+    /**
+     * 获取月初和月末日期
+     * @param date
+     * @return
+     */
+    public Map<String, Date> getMonthStartAndEnd(Date date){
+        Calendar s = Calendar.getInstance();
+        s.setTime(date);
+        s.set(Calendar.DAY_OF_MONTH, 1);
+        Calendar e = Calendar.getInstance();
+        e.setTime(date);
+        e.set(Calendar.DAY_OF_MONTH, e.getActualMaximum(Calendar.DAY_OF_MONTH));
+        Date start = this.getStartOrEndDate(s.getTime(), "start");
+        Date end = this.getStartOrEndDate(e.getTime(), "end");
+        Map<String, Date> map = new HashMap<>();
+        map.put("startTime", start);
+        map.put("endTime", end);
+        return map;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
new file mode 100644
index 0000000..7e25e4c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDFalconUtil.java
@@ -0,0 +1,224 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+
+/**
+ * 高德猎鹰服务
+ */
+@Component
+public class GDFalconUtil implements ApplicationRunner {
+
+    private String key = "e17d799b2506d05faf7f88320a266803";
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    private static String serverId = null;
+
+
+    public String getServerId() {
+        return serverId;
+    }
+
+    /**
+     * 服务启动后执行的代码
+     * @param args
+     * @throws Exception
+     */
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        this.init();
+    }
+
+
+
+    /**
+     * 初始化创建服务
+     */
+    public void init(){
+        if(serverId == null){
+            JSONArray jsonArray = this.selectServer();
+            if(null == jsonArray){
+                serverId = this.createServer("server");
+            }else{
+                serverId = jsonArray.getJSONObject(0).getString("sid");
+            }
+        }
+
+    }
+
+
+    /**
+     * 创建新的服务
+     * @return
+     */
+    public String createServer(String name){
+        String url = "https://tsapi.amap.com/v1/track/service/add";
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("key", key);
+        params.add("name", name);
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = restTemplate.postForObject(url, requestEntity , String.class);
+        JSONObject jsonObject = JSON.parseObject(s);
+        if(jsonObject.getIntValue("errcode") == 10000){
+            JSONObject data = jsonObject.getJSONObject("data");
+            if(null != data){
+                return data.getString("sid");
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * 查询服务
+     * @return
+     */
+    private JSONArray selectServer(){
+        String url = "https://tsapi.amap.com/v1/track/service/list?key=" + key;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        if(jsonObject.getIntValue("errcode") == 10000){
+            JSONObject data = jsonObject.getJSONObject("data");
+            if(null != data){
+                return data.getJSONArray("results");
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * 创建终端数据
+     * @param name
+     * @return
+     */
+    public String createTerminal(String name){
+        String tid = this.selectTerminal(name);
+        if(tid != null){
+            return tid;
+        }
+        String url = "https://tsapi.amap.com/v1/track/terminal/add";
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("key", key);
+        params.add("sid", serverId);
+        params.add("name", name);
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = restTemplate.postForObject(url, requestEntity , String.class);
+        JSONObject jsonObject = JSON.parseObject(s);
+        if(jsonObject.getIntValue("errcode") == 10000){
+            JSONObject data = jsonObject.getJSONObject("data");
+            return data.getString("tid");
+        }
+        System.err.println(jsonObject.getString("errmsg"));
+        return null;
+    }
+
+
+    /**
+     * 查询终端
+     * @param name
+     * @return
+     */
+    public String selectTerminal(String name){
+        String url = "https://tsapi.amap.com/v1/track/terminal/list?key=" + key + "&name=" + name;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        if(jsonObject.getIntValue("errcode") == 10000){
+            JSONObject data = jsonObject.getJSONObject("data");
+            int count = 0;
+            if(null != data){
+                count = data.getIntValue("count");
+            }
+            if(count > 0){
+                JSONObject results = data.getJSONArray("results").getJSONObject(0);
+                return results.getString("tid");
+            }else{
+                return this.createTerminal(name);
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * 创建轨迹
+     * @param tid   终端id
+     * @return
+     */
+    public String createTrack(String tid){
+        String url = "https://tsapi.amap.com/v1/track/trace/add";
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("key", key);
+        params.add("sid", serverId);
+        params.add("tid", tid);
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = restTemplate.postForObject(url, requestEntity , String.class);
+        JSONObject jsonObject = JSON.parseObject(s);
+        if(jsonObject.getIntValue("errcode") == 10000){
+            return jsonObject.getString("data");
+        }
+        System.err.println(jsonObject.getString("errmsg"));
+        return null;
+    }
+
+
+    /**
+     * 删除轨迹
+     * @param tid       终端id
+     * @param trid      轨迹id
+     */
+    public void deleteTrack(String tid, String trid){
+        String url = "https://tsapi.amap.com/v1/track/trace/delete";
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("key", key);
+        params.add("sid", serverId);
+        params.add("tid", tid);
+        params.add("trid", trid);
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = restTemplate.postForObject(url, requestEntity , String.class);
+        JSONObject jsonObject = JSON.parseObject(s);
+        if(jsonObject.getIntValue("errcode") != 10000){
+            System.err.println(jsonObject.getString("errmsg"));
+        }
+    }
+
+
+//
+//    public Map<String, Object> queryTrsearch(){
+//
+//    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
new file mode 100644
index 0000000..fcfec35
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapElectricFenceUtil.java
@@ -0,0 +1,405 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.ToolUtil;
+//import com.stylefeng.guns.modular.system.model.GDFence;
+//import com.stylefeng.guns.modular.system.service.IGDFenceService;
+import com.stylefeng.guns.modular.system.service.IGDInterfaceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.http.client.ClientHttpRequestFactory;
+import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 电子围栏工具类
+ */
+@Component
+public class GDMapElectricFenceUtil {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private IGDInterfaceService gdInterfaceService;
+
+    private String key = "e17d799b2506d05faf7f88320a266803";
+
+    private JSONArray jsonArray = new JSONArray();
+
+
+    @Bean
+    public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
+//       SimpleClientHttpRequestFactory factory=new SimpleClientHttpRequestFactory();
+//      上一行被注释掉的是Spring自己的实现,下面是依赖了httpclient包后的实现
+        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
+        factory.setConnectTimeout(5000);
+        factory.setReadTimeout(5000);
+        return factory;
+    }
+
+    /**
+     * 创建电子围栏
+     * @param id
+     * @param points
+     * @return
+     */
+    public List<String> createFence(String id, String points){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(calendar.getTime());
+
+
+        //开始调用高德接口创建围栏
+        String[] s = points.split("_");
+        List<String> resoult = new ArrayList<>();
+        for(int i = 0; i < s.length; i++){
+            String[] split = s[i].split(";");
+            JSONObject json = new JSONObject();
+            json.put("name", id);
+            if(split.length == 2){
+                json.put("center", split[0]);
+                json.put("radius", split[1]);
+            }else{
+                json.put("points", s[i]);
+            }
+            json.put("enable", "true");
+            json.put("valid_time", format);
+            json.put("repeat", "Mon,Tues,Wed,Thur,Fri,Sat,Sun");
+            json.put("alert_condition", "enter;leave");
+            json.put("desc", id);
+
+            HttpHeaders headers = new HttpHeaders();
+            MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+            headers.setContentType(type);
+            headers.add("Accept", MediaType.APPLICATION_JSON.toString());
+            HttpEntity<String> formEntity = new HttpEntity<>(json.toString(), headers);
+
+            String url = "https://restapi.amap.com/v4/geofence/meta?key=" + key;
+            String js = restTemplate.postForObject(url, formEntity, String.class);
+            JSONObject jsonObject = JSON.parseObject(js);
+            JSONObject data = jsonObject.getJSONObject("data");
+            String status = data.getString("status");
+
+//            gdInterfaceService.saveData("https://restapi.amap.com/v4/geofence/meta", "创建电子围栏");
+
+//            if(status.equals("0")){//创建成功
+//                GDFence gdFence = new GDFence();
+//                gdFence.setGdfenceId(UUIDUtil.getRandomCode());
+//                gdFence.setGid(data.getString("gid"));
+//                gdFence.setPoints(s[i]);
+//                gdFence.setLineElectricfenceIds(id);
+//                gdFenceService.insert(gdFence);
+//            }
+//
+//            if(status.equals("106")){//创建点电子围栏已经存在(只有坐标完全相同的电子围栏才会报重复)
+//                try {
+//                    GDFence data1 = gdFenceService.getData(s[i]);
+//                    int index = data1.getLineElectricfenceIds().indexOf(id);
+//                    if(index < 0){
+//                        data1.setLineElectricfenceIds(data1.getLineElectricfenceIds() + "," + id);
+//                        gdFenceService.updateById(data1);
+//                    }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//            }
+//            resoult.add(js);
+        }
+        return resoult;
+    }
+
+
+
+
+    /**
+     * 创建电子围栏
+     * @param id        围栏名称----绘制的数据id值
+     * @param points    多边形围栏坐标
+     */
+    public List<String> createElectricFenc(String id, String points){
+        List<String> fence = this.createFence(id, points);
+        List<String> gids = new ArrayList<>();
+        for(String f : fence){
+            JSONObject jsonObject = JSON.parseObject(f);
+            JSONObject data = jsonObject.getJSONObject("data");
+            String status = data.getString("status");
+            if(status.equals("0")){
+                gids.add(data.getString("gid"));
+            }
+        }
+        return gids;
+    }
+
+
+    /**
+     * 查询以创建的所有电子围栏
+     */
+    public String findElectricFenc(String center, String radius, String points){
+        String url = "https://restapi.amap.com/v4/geofence/meta?key=" + key;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        JSONObject data = jsonObject.getJSONObject("data");
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v4/geofence/meta", "查询电子围栏");
+
+        if(ToolUtil.isNotEmpty(center)){//圆形电子围栏
+            JSONArray rs_list = data.getJSONArray("rs_list");
+            for(int i = 0; i < rs_list.size(); i++){
+                String c = rs_list.getJSONObject(i).getString("center");
+                Double r = rs_list.getJSONObject(i).getDouble("radius");
+                if(c.equals(center) && radius.equals(String.valueOf(r))){
+                    return rs_list.getJSONObject(i).getString("gid");
+                }
+            }
+        }else{
+            JSONArray rs_list = data.getJSONArray("rs_list");
+            for(int i = 0; i < rs_list.size(); i++){
+                String p = rs_list.getJSONObject(i).getString("points");
+                if(points.equals(p)){
+                    return rs_list.getJSONObject(i).getString("gid");
+                }
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * 查询所有绘制好的电子围栏
+     * @return
+     */
+    public JSONArray findAllElectricFenc(int page){
+        if(page == 1){
+            jsonArray = new JSONArray();
+        }
+        String url = "https://restapi.amap.com/v4/geofence/meta?key=" + key + "&page_no=" + page + "&page_size=" + 30;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        JSONObject data = jsonObject.getJSONObject("data");
+        JSONArray rs_list = data.getJSONArray("rs_list");
+        jsonArray.addAll(rs_list);
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v4/geofence/meta", "查询电子围栏");
+
+        //判断是否有分页
+        int total_record = data.getIntValue("total_record");
+        if(total_record > jsonArray.size()){
+            //有分页,递归调用自己
+            page++;
+            this.findAllElectricFenc(page);
+        }
+        return jsonArray;
+    }
+
+
+    /**
+     * 批量更新电子围栏(失效的数据)
+     * @param jsonArray
+     * @throws ParseException
+     */
+    public void updateElectricFenc(JSONArray jsonArray) throws ParseException{
+        //批量更新查询出的失效的电子围栏,围栏失效日期在当前日期之后的数据
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        for(int i = 0; i < jsonArray.size(); i++){
+            JSONObject jsonObject = jsonArray.getJSONObject(i);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.set(Calendar.HOUR_OF_DAY, 8);
+            calendar.set(Calendar.MINUTE, 0);
+            calendar.set(Calendar.SECOND, 0);
+            calendar.set(Calendar.MILLISECOND, 0);
+            long timeInMillis1 = calendar.getTimeInMillis();
+
+            String valid_time = jsonObject.getString("valid_time");
+            Date parse = sdf.parse(valid_time);
+            Calendar cale = Calendar.getInstance();
+            cale.setTime(parse);
+            cale.set(Calendar.HOUR_OF_DAY, 8);
+            cale.set(Calendar.MINUTE, 0);
+            cale.set(Calendar.SECOND, 0);
+            cale.set(Calendar.MILLISECOND, 0);
+            long timeInMillis = cale.getTimeInMillis();
+            if(timeInMillis1 >= timeInMillis){
+                String gid = jsonObject.getString("gid");
+                String id = jsonObject.getString("name");
+                String center = jsonObject.getString("center");
+                String radius = jsonObject.getString("radius");
+                String points = jsonObject.getString("points");
+                this.updateElectricFenc(gid, id, center, radius, points);
+            }
+
+        }
+    }
+
+
+
+    /**
+     * 更新电子围栏
+     * @param gid
+     * @param id
+     * @param center
+     * @param radius
+     * @param points
+     */
+    public void updateElectricFenc(String gid, String id, String center, String radius, String points) throws ParseException {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String format = simpleDateFormat.format(calendar.getTime());
+
+        //开始调用高德接口创建围栏
+        JSONObject json = new JSONObject();
+        json.put("name", id);
+        if(ToolUtil.isNotEmpty(center)){
+            json.put("center", center);
+            json.put("radius", radius);
+        }else{
+            json.put("points", points);
+        }
+        json.put("valid_time", format);
+        json.put("repeat", "Mon,Tues,Wed,Thur,Fri,Sat,Sun");
+        json.put("alert_condition", "enter;leave");
+        json.put("desc", id + "围栏更新描述");
+
+        HttpHeaders headers = new HttpHeaders();
+        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
+        headers.setContentType(type);
+        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
+        HttpEntity<String> formEntity = new HttpEntity<>(json.toString(), headers);
+
+        String url = "https://restapi.amap.com/v4/geofence/meta?key=" + key + "&gid=" + gid;
+        String s = restTemplate.patchForObject(url, formEntity, String.class);
+        System.out.println(s);
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v4/geofence/meta", "更新电子围栏");
+    }
+
+
+    /**
+     * 电子围栏监控
+     * @param diu       设备唯一标识符,作为记录依据,不影响判断结果。Android设备一般使用imei号码,iOS一般使用idfv号,其余设备可根据业务自定义。
+     * @param locations 数据为坐标数据和坐标产生的时间戳数据,至少包含一个坐标对和时间戳。
+     *                  1、传入1个点时,直接判断交互关系。
+     *                  2、当传入多个点时,可以通过前后时间判断动态交互关系。
+     *                  格式: x1,y1,unix_ts1;x2,y2,unix_ts2
+     *                  动态交互判断方法:第一个点作为当前时间的点,然后从其余点中选出在当前点之前10s~1小时范围内的最早点,用这两个时间点的位置判断设备与围栏的动态交互关系。若数据无效交互关系默认返回leave。
+     * @return
+     */
+    public List<String> monitorElectricFenc(String diu, String locations){
+        if(ToolUtil.isEmpty(diu)){
+            diu = "B78F99DD-2496-4A43-843B-172CDA2D9798";
+        }
+        locations = locations + "," + (new Date().getTime() / 1000);
+        String url = "https://restapi.amap.com/v4/geofence/status?key=" + key + "&diu=" + diu + "&locations=" + locations;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        List<String> ids = new ArrayList<>();
+        JSONObject data = jsonObject.getJSONObject("data");
+        int status = data.getIntValue("status");
+        if(0 == status){
+            JSONArray fencingEventList = data.getJSONArray("fencing_event_list");
+            for(int i = 0; i < fencingEventList.size(); i++){
+                String clientStatus = fencingEventList.getJSONObject(i).getString("client_status");
+                if(clientStatus.equals("in")){//包含给定坐标的电子围栏
+                    JSONObject fence_info = fencingEventList.getJSONObject(i).getJSONObject("fence_info");//获取电子围栏信息
+                    String gid = fence_info.getString("fence_gid");
+                    ids.add(gid);
+                }
+            }
+        }
+        System.out.println("检测:" + forObject);
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v4/geofence/status", "电子围栏监控");
+        return ids;
+    }
+
+
+    /**
+     * 删除电子围栏
+     * @param gid
+     * @return
+     */
+    public boolean deleteElectricFenc(String gid){
+        restTemplate.delete("https://restapi.amap.com/v4/geofence/meta?key={1}&gid={2}", key, gid);
+        System.out.println("删除:" );
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v4/geofence/meta", "删除电子围栏");
+
+        return true;
+    }
+
+
+    /**
+     * 获取两点的距离
+     * @param origins       起点坐标
+     * @param destination   终点坐标
+     * @param type          计算类型:0:直线距离 1:驾车导航距离(仅支持国内坐标)。
+     * @return
+     */
+    public Map<String, String> getDistance(String origins, String destination, Integer type){
+        String url = "https://restapi.amap.com/v3/distance?key=" + key + "&origins=" + origins + "&destination=" + destination +
+                "&type=" + type;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        String status = jsonObject.getString("status");
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v3/distance", "查询两点间的距离");
+
+        if(status.equals("1")){
+            JSONArray results = jsonObject.getJSONArray("results");
+            JSONObject jsonObject1 = results.getJSONObject(0);
+            Map<String, String> map = new HashMap<>();
+            map.put("distance", jsonObject1.getString("distance"));//距离(米)
+            map.put("duration", jsonObject1.getString("duration"));//预计时间(秒)
+            return map;
+        }else{
+            System.err.println(forObject);
+        }
+        return null;
+    }
+
+
+    /**
+     * 获取路径规划
+     * @param origins       起点坐标
+     * @param destination   终点坐标
+     * @param waypoints     途经点
+     * @return
+     */
+    public Map<String, String> getDriving(String origins, String destination, String waypoints){
+        String url = "https://restapi.amap.com/v3/direction/driving?key=" + key + "&origin=" + origins + "&destination=" + destination +
+                "&waypoints=" + waypoints + "&extensions=base&strategy=0";
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        String status = jsonObject.getString("status");
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v3/direction/driving", "获取路径规划");
+
+        if(status.equals("1")){
+            JSONObject route = jsonObject.getJSONObject("route");
+            JSONArray results = route.getJSONArray("paths");
+            JSONObject jsonObject1 = results.getJSONObject(0);
+            Map<String, String> map = new HashMap<>();
+            map.put("distance", jsonObject1.getString("distance"));//距离(米)
+            map.put("duration", jsonObject1.getString("duration"));//预计时间(秒)
+            return map;
+        }
+        return null;
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
new file mode 100644
index 0000000..e604223
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GDMapGeocodingUtil.java
@@ -0,0 +1,138 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.service.IGDInterfaceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 高德地图的地理编码工具类
+ */
+@Component
+public class GDMapGeocodingUtil {
+
+    private String key = "e17d799b2506d05faf7f88320a266803";
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private IGDInterfaceService gdInterfaceService;
+
+
+    /**
+     * 将行政区域名称转化为坐标
+     * @param province
+     * @param city
+     * @param county
+     * @param address
+     * @return
+     */
+    public Map<String, Object> geocoding(String province, String city, String county, String address){
+        Map<String, Object> map = new HashMap<>();
+        if(ToolUtil.isEmpty(province)){
+            map.put("status", -1);
+            map.put("data", "省不能为空");
+            return map;
+        }
+        if((ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(county)) || (ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(address))){
+            map.put("status", -1);
+            map.put("data", "市不能为空");
+            return map;
+        }
+        if((ToolUtil.isEmpty(county) && ToolUtil.isNotEmpty(address))){
+            map.put("status", -1);
+            map.put("data", "县/区不能为空");
+            return map;
+        }
+
+        String url = "https://restapi.amap.com/v3/geocode/geo?key=" + key + "&output=JSON";
+        url += "&address=" + province + (ToolUtil.isNotEmpty(city) ? city : "") + (ToolUtil.isNotEmpty(county) ? county : "") + (ToolUtil.isNotEmpty(address) ? address : "");
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        String status = jsonObject.getString("status");
+        List<String> list = new ArrayList<>();
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v3/geocode/geo", "行政区域转经纬度");
+
+        if(status.equals("1")){
+            JSONArray geocodes = jsonObject.getJSONArray("geocodes");
+            for(int i = 0; i < geocodes.size(); i++){
+                String location = geocodes.getJSONObject(i).getString("location");
+                list.add(location);
+            }
+        }
+        map.put("status", 0);
+        map.put("data", list);
+        return map;
+    }
+
+
+
+    public Map<String, Object> geocoding(String address){
+        Map<String, Object> map = new HashMap<>();
+        String url = "https://restapi.amap.com/v3/geocode/geo?key=" + key + "&output=JSON&address=" + address;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        String status = jsonObject.getString("status");
+        List<String> list = new ArrayList<>();
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v3/geocode/geo", "行政区域转经纬度");
+
+        if(status.equals("1")){
+            JSONArray geocodes = jsonObject.getJSONArray("geocodes");
+            for(int i = 0; i < geocodes.size(); i++){
+                String location = geocodes.getJSONObject(i).getString("location");
+                list.add(location);
+            }
+        }
+        map.put("status", 0);
+        map.put("data", list);
+        return map;
+    }
+
+
+
+    /**
+     * 根据经纬度获取行政区域信息
+     * @param lon
+     * @param lan
+     * @return
+     * @throws Exception
+     */
+    public Map<String, String> geocode(String lon, String lan) throws Exception{
+        String url = "https://restapi.amap.com/v3/geocode/regeo?key=" + key + "&location=" + lon + "," + lan;
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        Map<String, String> map = new HashMap<>();
+
+//        gdInterfaceService.saveData("https://restapi.amap.com/v3/geocode/regeo", "经纬度转行政区域");
+
+        if(jsonObject.getString("status").equals("1")){
+            JSONObject regeocode = jsonObject.getJSONObject("regeocode");
+            JSONObject addressComponent = regeocode.getJSONObject("addressComponent");
+            String address = regeocode.getString("formatted_address");
+            map.put("address", address);
+            String code = addressComponent.getString("adcode");
+            String province = addressComponent.getString("province");
+            String city = addressComponent.getString("city");
+            String district = addressComponent.getString("district");
+            map.put("province", province);
+            map.put("provinceCode", code.substring(0, 2) + "0000");
+            map.put("city", city);
+            map.put("cityCode", code.substring(0, 4) + "00");
+            map.put("district", district);
+            map.put("districtCode", code);
+        }
+        return map;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java
new file mode 100644
index 0000000..f3eecf9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/GeodesyUtil.java
@@ -0,0 +1,71 @@
+package com.stylefeng.guns.modular.system.util;
+
+import org.gavaghan.geodesy.Ellipsoid;
+import org.gavaghan.geodesy.GeodeticCalculator;
+import org.gavaghan.geodesy.GeodeticCurve;
+import org.gavaghan.geodesy.GlobalCoordinates;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 计算两个金纬度坐标之间的直线距离
+ */
+@Component
+public class GeodesyUtil {
+
+
+    /**
+     * 获取直线距离
+     * @param fromLonLat
+     * @param toLonLat
+     * @return
+     */
+    public Map<String, Double> getDistance(String fromLonLat, String toLonLat){
+        String[] from = fromLonLat.split(",");
+        String[] to = toLonLat.split(",");
+        GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(from[1]), Double.valueOf(from[0]));
+        GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(to[1]), Double.valueOf(to[0]));
+        double Sphere = getDistanceMeter(source, target, Ellipsoid.Sphere);
+        double WGS84 = getDistanceMeter(source, target, Ellipsoid.WGS84);
+        double GRS80 = getDistanceMeter(source, target, Ellipsoid.GRS80);
+        double GRS67 = getDistanceMeter(source, target, Ellipsoid.GRS67);
+        double ANS = getDistanceMeter(source, target, Ellipsoid.ANS);
+        double WGS72 = getDistanceMeter(source, target, Ellipsoid.WGS72);
+        double Clarke1858 = getDistanceMeter(source, target, Ellipsoid.Clarke1858);
+        double Clarke1880 = getDistanceMeter(source, target, Ellipsoid.Clarke1880);
+//        System.out.println("Sphere坐标系计算结果:"+Sphere + "米");
+//        System.out.println("WGS84坐标系计算结果:"+WGS84 + "米");
+//        System.out.println("GRS80坐标系计算结果:"+GRS80 + "米");
+//        System.out.println("GRS67坐标系计算结果:"+GRS67 + "米");
+//        System.out.println("ANS坐标系计算结果:"+ANS + "米");
+//        System.out.println("WGS72坐标系计算结果:"+WGS72 + "米");
+//        System.out.println("Clarke1858坐标系计算结果:"+Clarke1858 + "米");
+//        System.out.println("Clarke1880坐标系计算结果:"+Clarke1880 + "米");
+        Map<String, Double> map = new HashMap<>();
+        map.put("Sphere", Sphere);
+        map.put("WGS84", WGS84);
+        map.put("GRS80", GRS80);
+        map.put("GRS67", GRS67);
+        map.put("ANS", ANS);
+        map.put("WGS72", WGS72);
+        map.put("Clarke1858", Clarke1858);
+        map.put("Clarke1880", Clarke1880);
+        return map;
+    }
+
+
+    private double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){
+        //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离
+        GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
+        return geoCurve.getEllipsoidalDistance();
+    }
+
+
+
+    public static void main(String[] ages){
+        GeodesyUtil geodesyUtil = new GeodesyUtil();
+        geodesyUtil.getDistance("115.481028,39.989643", "114.465302,40.004717");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ICBCPayUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ICBCPayUtil.java
new file mode 100644
index 0000000..4f4f25c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ICBCPayUtil.java
@@ -0,0 +1,679 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.icbc.api.DefaultIcbcClient;
+import com.icbc.api.IcbcApiException;
+import com.icbc.api.IcbcConstants;
+import com.icbc.api.request.*;
+import com.icbc.api.response.*;
+import com.icbc.api.utils.IcbcSignature;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.net.Inet4Address;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 工商银行支付工具类
+ */
+@Component
+public class ICBCPayUtil {
+
+    private String app_id = "10000000000003159405";
+
+    private String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCBnf5bNOMF106sxlN6reQKs4wvUpnvRxXxFCzm13Bz70V6Oldx0EF4mFw/LCXMxwftGEanzjXOwDdk9apVeIYjedb8jsBjgwlREVLmpe3kFo65DedEao3MykpoXrm9kt8FPuxLAkTbfFuqim9f+nruXP1DA7cLt3N4PEzsfDA/WG4wXJgqWkHJaDbzcJOEX7pNZXWtTjoMznKufELsUEf3sdX+9/anIyObmq2+kv2w8H5RcRxBY+2M4K8Hd3Zf9u2Ffvr/phOsUB14XLrjfdXeWbZzHtHfGlfIQf5EK9HySEcaQHMHluEQSkriHdW7dlanIzzLY9M0lH+2Ok9j3Yp5AgMBAAECggEAVnHEfZecAP1DXz811Y+7kteEGtuABnDmVU4bVClCuk9NiuL2BtXZlFAo1Yjf/N6QjrOuC6Qfhq/zQcYFv9MNwwMzOmUKMlPmFsby/xiSu5e/v/Nh1eMqhvYzAcCLJ7+YNattc+kjey5JBEgnV196NRaXYeZMYegLfpjYxK9ejh+85kxp9ElXxZsSwrgzvICtyZ0Bl2ZD28kXr9/89dNIQX5sWRBN/dpxj99Ctz3JtlaMhxdnZ3cZKLeIAIAYFtqw5lSqeL7/7a6LPGpNa0kA+8KvHNEAnkpcEFg427k7h7nerFl2PQV/y5LuRLbUMZkdaIoo25Sh90xhtwfGCTAkcQKBgQC71mNkQL5HPYJbRirG3CjbLRAubztzlqtTSE/RZnPNiIinwACWZVHQ7Ob2+WLaIEOqIq6h1zWyYFO+peFNfCbcdZTfQHxiYfmzrY7ZlBtRJM3ez20RQ85TJvej08HjTM4vVKXt9DDqlBu4IATcmNlJqgBKeNXsDYORTNqTZlrocwKBgQCwpxdmd2yhRIrWXx9K4lZYfpGEUUMKrCI2SGX0bdiNtgn2p2HK3cDVO/gh8Iz6tKLI53HS3OTTsVZq1xoUm3M+27sPUk6KiUBQqOsDmYVayKjOY2IciwU0SmS/9C9ptYpchUrZSR7mejKvk7QKBkH3utBUnfYCQmqhyAnjHBhCYwKBgHBVxNc+CQ3d8UnY6thG7oA1sQm0KB/2qbuC8YlP9k2jK+b24uMO8SE7rN1jRAUjapQjbcEITerBxROtbNLEPxF1mHTzwe+snIMidt4Uv0mF80EfWCENJiWAlnV5vOjNFDomK53lfiOsM++n5oBvQPPXIZloLrefVWHeTpH8kr2VAoGAbB+JqhT0r2yVkgqcy6fnc7jcdmGKqFCdjB4aEVbekjZWuNrQd2vtaFaRVKy4jYbckB1hRNAhWxUTMMfB1dUj39h8ES+ulQrXC8eoOQbRYbSp5dFcrt3EbLIQIpFiJ9CPBHwtSPuBZ05qEZ9VNkGIRQnaE8CvX8ipHaajrpd2ncMCgYAdjW2LFmc+K9tai8idbhEu1uzez+HPT8PgE5iy6ZE8gxQvzUdHaqgO+OgNhWEY+QJOEyM0YJuidaN9qiTiWJHs04/03qAy1wCZCYhvHuRMh1mPvqdA9ybUmG/K0bMqkqS9B2GxKQPtlnmeUG/pXjQ12U8WrS2ayjDoHBtimuxkIQ==";
+
+    private String icbcPulicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCMpjaWjngB4E3ATh+G1DVAmQnIpiPEFAEDqRfNGAVvvH35yDetqewKi0l7OEceTMN1C6NPym3zStvSoQayjYV+eIcZERkx31KhtFu9clZKgRTyPjdKMIth/wBtPKjL/5+PYalLdomM4ONthrPgnkN4x4R0+D4+EBpXo8gNiAFsNwIDAQAB";
+
+    private String mer_id = "210541210043";//商户编号
+
+    private String mer_id1 = "210541210044";//商户编号
+
+    private String mer_prtcl_no = "2105412100430201";//收单产品协议编号
+
+    private String mer_acct = "2105402019300157124";//商户账号,商户入账账号,只能交易时指定。(商户付给银行手续费的账户,可以在开户的时候指定,也可以用交易指定方式;用交易指定方式则使用此商户账号)目前暂不支持
+
+    private String wx_appid_user = "wx0071ebcb539570f8";
+
+    private String wx_appid_driver = "wx65d2c03f04352f90";
+
+    private String wx_appid_user1 = "wx7608ef3dae49b691";//小程序
+
+    private String ali_appid_user = "2016120203722668";
+
+    private String ali_appid_driver = "2021001165630930";
+
+    private String payer_account = "2105455809300020994";//银行账户
+
+    private String payer_cnname = "广西云森科技有限公司";//账户名称
+
+    @Autowired
+    private JuHeUtil juHeUtil;
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    private String bank = "{\"CDB\":\"国家开发银行\",\"ICBC\":\"中国工商银行\",\"ABC\":\"中国农业银行\",\"BOC\":\"中国银行\",\"CCB\":\"中国建设银行\",\"PSBC\":\"中国邮政储蓄银行\",\"COMM\":\"交通银行\",\"CMB\":\"招商银行\",\"SPDB\":\"上海浦东发展银行\",\"CIB\":\"兴业银行\",\"HXBANK\":\"华夏银行\",\"GDB\":\"广东发展银行\",\"CMBC\":\"中国民生银行\",\"CITIC\":\"中信银行\",\"CEB\":\"中国光大银行\",\"EGBANK\":\"恒丰银行\",\"CZBANK\":\"浙商银行\",\"BOHAIB\":\"渤海银行\",\"SPABANK\":\"平安银行\",\"SHRCB\":\"上海农村商业银行\",\"YXCCB\":\"玉溪市商业银行\",\"YDRCB\":\"尧都农商行\",\"BJBANK\":\"北京银行\",\"SHBANK\":\"上海银行\",\"JSBANK\":\"江苏银行\",\"HZCB\":\"杭州银行\",\"NJCB\":\"南京银行\",\"NBBANK\":\"宁波银行\",\"HSBANK\":\"徽商银行\",\"CSCB\":\"长沙银行\",\"CDCB\":\"成都银行\",\"CQBANK\":\"重庆银行\",\"DLB\":\"大连银行\",\"NCB\":\"南昌银行\",\"FJHXBC\":\"福建海峡银行\",\"HKB\":\"汉口银行\",\"WZCB\":\"温州银行\",\"QDCCB\":\"青岛银行\",\"TZCB\":\"台州银行\",\"JXBANK\":\"嘉兴银行\",\"CSRCB\":\"常熟农村商业银行\",\"NHB\":\"南海农村信用联社\",\"CZRCB\":\"常州农村信用联社\",\"H3CB\":\"内蒙古银行\",\"SXCB\":\"绍兴银行\",\"SDEB\":\"顺德农商银行\",\"WJRCB\":\"吴江农商银行\",\"ZBCB\":\"齐商银行\",\"GYCB\":\"贵阳市商业银行\",\"ZYCBANK\":\"遵义市商业银行\",\"HZCCB\":\"湖州市商业银行\",\"DAQINGB\":\"龙江银行\",\"JINCHB\":\"晋城银行JCBANK\",\"ZJTLCB\":\"浙江泰隆商业银行\",\"GDRCC\":\"广东省农村信用社联合社\",\"DRCBCL\":\"东莞农村商业银行\",\"MTBANK\":\"浙江民泰商业银行\",\"GCB\":\"广州银行\",\"LYCB\":\"辽阳市商业银行\",\"JSRCU\":\"江苏省农村信用联合社\",\"LANGFB\":\"廊坊银行\",\"CZCB\":\"浙江稠州商业银行\",\"DYCB\":\"德阳商业银行\",\"JZBANK\":\"晋中市商业银行\",\"BOSZ\":\"苏州银行\",\"GLBANK\":\"桂林银行\",\"URMQCCB\":\"乌鲁木齐市商业银行\",\"CDRCB\":\"成都农商银行\",\"ZRCBANK\":\"张家港农村商业银行\",\"BOD\":\"东莞银行\",\"LSBANK\":\"莱商银行\",\"BJRCB\":\"北京农村商业银行\",\"TRCB\":\"天津农商银行\",\"SRBANK\":\"上饶银行\",\"FDB\":\"富滇银行\",\"CRCBANK\":\"重庆农村商业银行\",\"ASCB\":\"鞍山银行\",\"NXBANK\":\"宁夏银行\",\"BHB\":\"河北银行\",\"HRXJB\":\"华融湘江银行\",\"ZGCCB\":\"自贡市商业银行\",\"YNRCC\":\"云南省农村信用社\",\"JLBANK\":\"吉林银行\",\"DYCCB\":\"东营市商业银行\",\"KLB\":\"昆仑银行\",\"ORBANK\":\"鄂尔多斯银行\",\"XTB\":\"邢台银行\",\"JSB\":\"晋商银行\",\"TCCB\":\"天津银行\",\"BOYK\":\"营口银行\",\"JLRCU\":\"吉林农信\",\"SDRCU\":\"山东农信\",\"XABANK\":\"西安银行\",\"HBRCU\":\"河北省农村信用社\",\"NXRCU\":\"宁夏黄河农村商业银行\",\"GZRCU\":\"贵州省农村信用社\",\"FXCB\":\"阜新银行\",\"HBHSBANK\":\"湖北银行黄石分行\",\"ZJNX\":\"浙江省农村信用社联合社\",\"XXBANK\":\"新乡银行\",\"HBYCBANK\":\"湖北银行宜昌分行\",\"LSCCB\":\"乐山市商业银行\",\"TCRCB\":\"江苏太仓农村商业银行\",\"BZMD\":\"驻马店银行\",\"GZB\":\"赣州银行\",\"WRCB\":\"无锡农村商业银行\",\"BGB\":\"广西北部湾银行\",\"GRCB\":\"广州农商银行\",\"JRCB\":\"江苏江阴农村商业银行\",\"BOP\":\"平顶山银行\",\"TACCB\":\"泰安市商业银行\",\"CGNB\":\"南充市商业银行\",\"CCQTGB\":\"重庆三峡银行\",\"XLBANK\":\"中山小榄村镇银行\",\"HDBANK\":\"邯郸银行\",\"KORLABANK\":\"库尔勒市商业银行\",\"BOJZ\":\"锦州银行\",\"QLBANK\":\"齐鲁银行\",\"BOQH\":\"青海银行\",\"YQCCB\":\"阳泉银行\",\"SJBANK\":\"盛京银行\",\"FSCB\":\"抚顺银行\",\"ZZBANK\":\"郑州银行\",\"SRCB\":\"深圳农村商业银行\",\"BANKWF\":\"潍坊银行\",\"JJBANK\":\"九江银行\",\"JXRCU\":\"江西省农村信用\",\"HNRCU\":\"河南省农村信用\",\"GSRCU\":\"甘肃省农村信用\",\"SCRCU\":\"四川省农村信用\",\"GXRCU\":\"广西省农村信用\",\"SXRCCU\":\"陕西信合\",\"WHRCB\":\"武汉农村商业银行\",\"YBCCB\":\"宜宾市商业银行\",\"KSRB\":\"昆山农村商业银行\",\"SZSBK\":\"石嘴山银行\",\"HSBK\":\"衡水银行\",\"XYBANK\":\"信阳银行\",\"NBYZ\":\"鄞州银行\",\"ZJKCCB\":\"张家口市商业银行\",\"XCYH\":\"许昌银行\",\"JNBANK\":\"济宁银行\",\"CBKF\":\"开封市商业银行\",\"WHCCB\":\"威海市商业银行\",\"HBC\":\"湖北银行\",\"BOCD\":\"承德银行\",\"BODD\":\"丹东银行\",\"JHBANK\":\"金华银行\",\"BOCY\":\"朝阳银行\",\"LSBC\":\"临商银行\",\"BSB\":\"包商银行\",\"LZYH\":\"兰州银行\",\"BOZK\":\"周口银行\",\"DZBANK\":\"德州银行\",\"SCCB\":\"三门峡银行\",\"AYCB\":\"安阳银行\",\"ARCU\":\"安徽省农村信用社\",\"HURCB\":\"湖北省农村信用社\",\"HNRCC\":\"湖南省农村信用社\",\"NYNB\":\"广东南粤银行\",\"LYBANK\":\"洛阳银行\",\"NHQS\":\"农信银清算中心\",\"CBBQS\":\"城市商业银行资金清算中心\"}";
+
+
+
+    /**
+     * 统一下单接口
+     * @param out_trade_no      商户订单号
+     * @param pay_mode          支付方式,9-微信,10-支付宝
+     * @param access_type       收单接入方式,5-APP,7-微信公众号,8-支付宝生活号,9-微信小程序
+     * @param deciveInfo        设备号(设备唯一编号)
+     * @param body
+     * @param total_fee
+     * @param mer_url           回调地址(完整地址)
+     * @param attach            附加信息
+     * @param type              支付端类型(1:用户端,2:司机端,3:小程序)
+     * @throws UnknownHostException
+     */
+    public Map<String, String> placeAnOrder(String out_trade_no, Integer pay_mode, Integer access_type, String deciveInfo, String body, Double total_fee, String mer_url, String attach, Integer type, String openId) throws Exception {
+        //签名类型为RSA时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA,其他参数使用缺省值
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1 request = new
+                CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1();
+        //根据测试环境和生产环境替换相应ip和端口
+        request.setServiceUrl("https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/consumepurchase/V1");
+        CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1.CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1Biz bizContent = new CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1.CardbusinessAggregatepayB2cOnlineConsumepurchaseRequestV1Biz();
+        request.setBizContent(bizContent);
+        //请对照接口文档用bizContent.setxxx()方法对业务上送数据进行赋值
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+        String format = sdf.format(new Date());
+        bizContent.setMer_id(mer_id);
+        bizContent.setOut_trade_no(out_trade_no);
+        bizContent.setPay_mode(pay_mode.toString());
+        bizContent.setAccess_type(access_type.toString());
+        bizContent.setMer_prtcl_no(mer_prtcl_no);
+        bizContent.setOrig_date_time(format);
+        bizContent.setDecive_info(deciveInfo);
+        bizContent.setBody("日月出行-" + body);
+        bizContent.setFee_type("001");
+        InetAddress ip4 = Inet4Address.getLocalHost();
+        bizContent.setSpbill_create_ip(ip4.getHostAddress());
+        bizContent.setTotal_fee(Double.valueOf(total_fee * 100).intValue() + "");
+        bizContent.setMer_url(mer_url);
+        bizContent.setOpen_id("");
+        bizContent.setShop_appid("");
+        bizContent.setUnion_id("");
+        bizContent.setIcbc_appid(app_id);
+        if(pay_mode == 9){
+            switch (type){
+                case 1://用户端
+                    bizContent.setShop_appid(wx_appid_user);
+                    break;
+                case 2://司机端
+                    bizContent.setShop_appid(wx_appid_driver);
+                    break;
+                case 3://小程序
+                    bizContent.setShop_appid(wx_appid_user1);
+                    bizContent.setAccess_type("9");
+                    bizContent.setOpen_id(openId);
+                    break;
+            }
+        }
+        if(pay_mode == 10){
+            switch (type){
+                case 1://用户端
+                    bizContent.setUnion_id(ali_appid_user);
+                    break;
+                case 2://司机端
+                    bizContent.setUnion_id(ali_appid_driver);
+                    break;
+            }
+        }
+        bizContent.setMer_acct(mer_acct);
+        bizContent.setExpire_time("120");
+        bizContent.setAttach(attach);
+        bizContent.setNotify_type("HS");
+        bizContent.setResult_type("0");
+        bizContent.setPay_limit("no_credit");
+        bizContent.setOrder_apd_inf("");
+        CardbusinessAggregatepayB2cOnlineConsumepurchaseResponseV1 response;
+        response = client.execute(request, System.currentTimeMillis()+"");//msgId消息通讯唯一编号,要求每次调用独立生成,APP级唯一
+        Map<String, String> map = new HashMap<>();
+        if (response.getReturnCode() == 0) {
+            // 6、业务成功处理,请根据接口文档用response.getxxx()获取同步返回的业务数据
+            System.err.println("ReturnCode:"+response.getReturnCode());
+            System.err.println("response:" + JSON.toJSONString(response));
+            if(pay_mode == 9){//微信
+                String order_id = response.getOrder_id();//工行订单号
+                String out_trade_no1 = response.getOut_trade_no();//商户订单号
+                map.put("order_id", order_id);
+                map.put("out_trade_no1", out_trade_no1);
+                map.put("data", response.getWx_data_package());
+                map.put("code", "200");
+                map.put("msg", "成功");
+
+                return map;
+            }
+            if(pay_mode == 10){//支付宝
+                String order_id = response.getOrder_id();//工行订单号
+                String out_trade_no1 = response.getOut_trade_no();//商户订单号
+                map.put("order_id", order_id);
+                map.put("out_trade_no1", out_trade_no1);
+                map.put("data", response.getZfb_data_package());
+                map.put("code", "200");
+                map.put("msg", "成功");
+                return map;
+            }
+        }
+        if(response.getReturnCode() == 92209500){
+            System.err.println("response:" + JSON.toJSONString(response));
+            System.err.println("ReturnCode:"+response.getReturnCode());
+            System.err.println("ReturnMsg:"+response.getReturnMsg());
+            map.put("order_id", "");
+            map.put("out_trade_no1", "");
+            map.put("data", "");
+            map.put("code", "300");
+            map.put("msg", "支付失败,请过两分钟后再重新支付!");
+            return map;
+        }else {
+            // 失败
+            System.err.println("response:" + JSON.toJSONString(response));
+            System.err.println("ReturnCode:"+response.getReturnCode());
+            System.err.println("ReturnMsg:"+response.getReturnMsg());
+            map.put("order_id", "");
+            map.put("out_trade_no1", "");
+            map.put("data", "");
+            map.put("code", "300");
+            map.put("msg", "支付失败");
+            return map;
+        }
+    }
+
+
+
+
+    /**
+     * 查询交易(商户订单号和工行订单号二选其一)
+     * @param out_trade_no  商户订单号
+     * @param order_id      工行订单号
+     * @return
+     */
+    public String queryTransaction(String out_trade_no, String order_id){
+        //签名类型为RSA时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA,其他参数使用缺省值
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        CardbusinessAggregatepayB2cOnlineOrderqryRequestV1 request = new CardbusinessAggregatepayB2cOnlineOrderqryRequestV1();
+        //根据测试环境和生产环境替换相应ip和端口
+        request.setServiceUrl("https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/orderqry/V1");
+        CardbusinessAggregatepayB2cOnlineOrderqryRequestV1.CardbusinessAggregatepayB2cOnlineOrderqryRequestV1Biz bizContent = new
+                CardbusinessAggregatepayB2cOnlineOrderqryRequestV1.CardbusinessAggregatepayB2cOnlineOrderqryRequestV1Biz();
+        request.setBizContent(bizContent);
+        //请对照接口文档用bizContent.setxxx()方法对业务上送数据进行赋值
+        bizContent.setMer_id(mer_id);
+        bizContent.setOut_trade_no(out_trade_no);
+        bizContent.setOrder_id(order_id);
+        bizContent.setDeal_flag("0");//操作标志,0-查询;1-关单
+        bizContent.setIcbc_appid(app_id);
+        CardbusinessAggregatepayB2cOnlineOrderqryResponseV1 response;
+        try {
+            response = client.execute(request, System.currentTimeMillis()+"");//msgId消息通讯唯一编号,要求每次调用独立生成,APP级唯一
+            if (response.getReturnCode() == 0) {
+                // 6、业务成功处理,请根据接口文档用response.getxxx()获取同步返回的业务数据
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("response:" + JSON.toJSONString(response));
+
+                String pay_status = response.getPay_status();
+
+                return pay_status;
+            } else {
+                // 失败
+                System.out.println("response:" + JSON.toJSONString(response));
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("ReturnMsg:"+response.getReturnMsg());
+            }
+        } catch (IcbcApiException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+
+
+    /**
+     * 支付回调处理
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    public Map<String, String> payCallback(HttpServletRequest request) throws Exception{
+        String biz_content1 = request.getParameter("biz_content");
+        JSONObject biz_content = JSON.parseObject(biz_content1);
+        int return_code = biz_content.getIntValue("return_code");
+        String return_msg = biz_content.getString("return_msg");
+        Map<String, String> map = new HashMap<>();
+        if(return_code == 0){
+            String out_trade_no = biz_content.getString("out_trade_no");//商家订单编号
+            String order_id = biz_content.getString("order_id");//工行订单号
+            String third_trade_no = biz_content.getString("third_trade_no");//第三方订单号(微信/支付宝)
+            String attach = biz_content.getString("attach");//附加信息
+            String pay_time = biz_content.getString("pay_time");//支付完成时间"20190112"
+
+            map.put("out_trade_no", out_trade_no);
+            map.put("order_id", order_id);
+            map.put("third_trade_no", third_trade_no);
+            map.put("attach", attach);
+            map.put("pay_time", pay_time);
+        }else{
+            System.err.println("支付失败:" + return_msg);
+        }
+        return map;
+    }
+
+
+    /**
+     * 回调通知应答
+     * @param response
+     * @throws Exception
+     */
+    public void answer(HttpServletResponse response) throws Exception{
+        response.setContentType("application/json;charset=UTF-8");
+        StringBuffer sb = new StringBuffer();
+        String nativeUUID = UUIDUtil.getNativeUUID();
+        sb.append("\"response_biz_content\":{\"return_code\":0,\"return_msg\":\"success\",\"msg_id\":\"" + nativeUUID + "\"},\"sign_type\":\"RSA2\"");
+        String sign = IcbcSignature.sign(sb.toString(), IcbcConstants.SIGN_TYPE_RSA2, privateKey, "UTF-8");
+        StringBuffer string = new StringBuffer();
+        string.append("{\"response_biz_content\":{\"return_code\":0,\"return_msg\":\"success\",\"msg_id\":\"" + nativeUUID + "\"},\"sign_type\":\"RSA2\",\"sign\":\"" + sign + "\"}");
+        PrintWriter out = response.getWriter();
+        out.write(string.toString());
+        out.flush();
+        out.close();
+    }
+
+
+
+
+
+    /**
+     * 转账
+     * @param money             转账金额(分)
+     * @param payeeAccount      收款账户(默认使用工行账户)
+     * @param payeeCnname       收款账户名称
+     * @return
+     */
+    public ResultUtil<String> transfer(Long money, String payeeAccount, String payeeCnname) throws Exception{
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf_ = new SimpleDateFormat("HHmmssSSS");
+        Date date = new Date();
+        String url = "https://gw.open.icbc.com.cn/api/mybank/enterprise/pay/payent/V1";
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        MybankEnterprisePayPayentRequestV1.MybankEnterprisePayPayentRequestBizV1 bizContent =
+                new MybankEnterprisePayPayentRequestV1.MybankEnterprisePayPayentRequestBizV1();
+        MybankEnterprisePayPayentRequestV1 request = new MybankEnterprisePayPayentRequestV1();
+        // 请对照接⼝⽂档⽤bizContent.setxxx()⽅法对业务上送数据进⾏赋值
+        bizContent.setTransCode("PAYPER");
+        bizContent.setCis("210590000448207");//集团CIS号
+        bizContent.setBankCode("102");//归属银行编号
+        bizContent.setLoginId("GXYS01.y.2105");//证书ID
+        bizContent.setTranDate(sdf.format(date));
+        bizContent.setTranTime(sdf_.format(date));
+        bizContent.setfSeqno(System.currentTimeMillis() + "");
+        bizContent.setSettleMode(0);//入账方式。0:逐笔记账;2:并笔记账
+        bizContent.setInstrCount(1);//总笔数
+        bizContent.setTotalAmount(new BigDecimal(money));//总金额(分)
+        ArrayList<MybankEnterprisePayPayentRequestV1.MybankEnterprisePayPayentRequestRdV1> list = new ArrayList<>();
+        MybankEnterprisePayPayentRequestV1.MybankEnterprisePayPayentRequestRdV1 rd = new MybankEnterprisePayPayentRequestV1.MybankEnterprisePayPayentRequestRdV1();
+        rd.setiSeqno(UUIDUtil.getRandomCode());//指令顺序号:每笔指令的序号,本包内不重复
+        rd.setPayType("1");//记账处理方式:1:加急;2:普通;3:跨行快汇。联机批量标志为2-批量时,此字段无意义,上送1即可
+        rd.setPayerAccount(mer_acct);//本方账户
+        rd.setPayerCnname(payer_cnname);//本方账户名
+        rd.setPayeeAccount(payeeAccount);//收方账号
+        rd.setPayeeCnname(payeeCnname);//收方账户名
+        rd.setIoFlag("1");//系统内外标志:1:系统内;2:系统外
+        rd.setCurrency("CNY");
+        rd.setAmount(new BigDecimal(money));//金额:无正负号,以分为单位
+        rd.setPurpose("代收款");//用途描述
+
+        list.add(rd);
+        bizContent.setRd(list);
+        request.setServiceUrl(url);
+        request.setBizContent(bizContent);
+        MybankEnterprisePayPayentResponseV1 response = client.execute(request);
+        if (response.isSuccess()) {
+            // 业务成功处理
+            System.err.println("ReturnCode:"+response.getReturnCode());
+            System.err.println("response:" + JSON.toJSONString(response));
+            if(response.getReturnCode() == 0){
+                return ResultUtil.success(response.getSerialNo());
+            }else{
+                return ResultUtil.error("转账申请提交失败(" + response.getReturnMsg() + ")");
+            }
+        } else {
+            System.err.println("response:" + JSON.toJSONString(response));
+            System.err.println("ReturnCode:"+response.getReturnCode());
+            System.err.println("ReturnMsg:"+response.getReturnMsg());
+            return ResultUtil.error("转账申请提交失败(" + response.getReturnMsg() + ")");
+        }
+    }
+
+
+    /**
+     * 查询转账交易状态
+     * @param serialNo      转账申请序列号(转账接口返回)
+     * @return              -1=查询异常,0=交易成功,1=交易处理中,2=交易拒绝
+     */
+    public Integer queryTransfer(String serialNo){
+        String url = "https://gw.open.icbc.com.cn/api/mybank/enterprise/pay/qpayent/V1";
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        try {
+            MybankEnterprisePayQpayentRequestV1.MybankEnterprisePayQpayentRequestBizV1 bizContent =
+                    new MybankEnterprisePayQpayentRequestV1.MybankEnterprisePayQpayentRequestBizV1();
+            MybankEnterprisePayQpayentRequestV1 request = new MybankEnterprisePayQpayentRequestV1();
+            Date date = new Date();
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmssSSS");
+            bizContent.setTransCode("QPAYPER");//交易代码
+            bizContent.setTranDate(sdf1.format(date));//交易日期:ERP系统产生,格式是yyyyMMdd
+            bizContent.setTranTime(sdf2.format(date));//交易时间:ERP系统产生,格式如HHmmssSSS,精确到毫秒
+            bizContent.setLanguage("zh_CN");
+            bizContent.setfSeqNo(UUIDUtil.getRandomCode());//指令包序列号:ERP系统产生,一个集团永远不能重复
+            bizContent.setQryfSeqno("");//待查指令包序列号:判断待查指令包序列号和待查平台交易流水号必须至少有一项有值
+            bizContent.setQrySerialNo(serialNo);//待查平台交易序列号
+            request.setServiceUrl(url);
+            request.setBizContent(bizContent);
+            MybankEnterprisePayQpayentResponseV1 response = client.execute(request);
+            if (response.isSuccess()) {
+                int returnCode = response.getReturnCode();//返回码,交易成功返回0,正表示业务报错,负表示系统报错,负值时须考虑疑帐
+                String returnMsg = response.getReturnMsg();//返回说明
+                if(0 == returnCode){
+                    List<MybankEnterprisePayQpayentResponseV1.MybankEnterprisePayQpayentResponseRdV1> rd = response.getRd();
+                    MybankEnterprisePayQpayentResponseV1.MybankEnterprisePayQpayentResponseRdV1 bank = rd.get(0);
+                    String result = bank.getResult();//指令状态:0:提交成功,等待银行处理 1:授权成功, 等待银行处理 2:等待授权 3:等待二次授权 4:等待银行答复 5:主机返回待处理 6:被银行拒绝 7:处理成功 8:指令被拒绝授权 9:银行正在处理 10:预约指令 11:预约取消 86:等待电话核实 95:待核查 98:区域中心通讯可疑
+                    if(result.equals("7")){//交易成功
+                        return 0;
+                    }
+                    if(result.equals("6") || result.equals("8")){//交易拒绝
+                        return 2;
+                    }
+                    return 1;//交易处理中
+                }else{
+                    System.err.println(returnMsg);
+                    return -1;
+                }
+            } else {
+                return -1;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return -1;
+        }
+    }
+
+
+    /**
+     * 获取扫码支付二维码(客户扫商户二维码)
+     * @param out_trade_no      商户系统订单号
+     * @param order_amt         订单金额
+     * @param orderTime         订单生成时间
+     * @param attach            附加信息
+     * @param notify_url        支付成功回调地址
+     * @return
+     * @throws Exception
+     */
+    public ResultUtil<Map<String, Object>> generate(String out_trade_no, Double order_amt, Date orderTime, String attach, String notify_url) throws Exception{
+        order_amt = order_amt * 100;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf1 = new SimpleDateFormat("HHmmss");
+        //签名类型为RSA2时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA2,其他参数使用缺省值
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        QrcodeGenerateRequestV2 request = new QrcodeGenerateRequestV2();
+        request.setServiceUrl("https://gw.open.icbc.com.cn/api/qrcode/V2/generate");
+        QrcodeGenerateRequestV2.QrcodeGenerateRequestV2Biz bizContent = new QrcodeGenerateRequestV2.QrcodeGenerateRequestV2Biz();
+        bizContent.setMerId(mer_id1);
+        bizContent.setStoreCode("21050022636");//E生活编号
+        bizContent.setOutTradeNo(out_trade_no);
+        bizContent.setOrderAmt(order_amt.intValue() + "");
+        bizContent.setTradeDate(sdf.format(orderTime));
+        bizContent.setTradeTime(sdf1.format(orderTime));
+        bizContent.setAttach(attach);//该字段非必输项
+        bizContent.setPayExpire("1200");
+        bizContent.setNotifyUrl(notify_url);//该字段非必输项
+        bizContent.setTporderCreateIp(InetAddress.getLocalHost().getHostAddress());
+        bizContent.setSpFlag("0");//该字段非必输项
+        bizContent.setNotifyFlag("1");
+        request.setBizContent(bizContent);
+        QrcodeGenerateResponseV2 response = client.execute(request, System.currentTimeMillis()+"");
+        if (response.isSuccess()) {
+            // 业务成功处理
+            System.out.println("ReturnCode:"+response.getReturnCode());
+            System.out.println("response:" + response);
+            Map<String, Object> map = new HashMap<>();
+            map.put("qrcode", response.getQrcode());
+            map.put("attach", response.getAttach());
+            return ResultUtil.success(map);
+        } else {
+            // 失败
+            System.out.println("ReturnCode:" + response.getReturnCode());
+            System.out.println("ReturnMsg:" + response.getReturnMsg());
+            return ResultUtil.error("获取支付二维码失败(" + response.getReturnMsg() + ")");
+        }
+    }
+
+
+    /**
+     * 扫码支付结果查询
+     * @param out_trade_no  用户订单号
+     * @param order_id      工行订单号
+     * @return
+     */
+    public String queryGeneratePayState(String out_trade_no, String order_id){
+        //签名类型为RSA2时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA2,其他参数使用缺省值
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        QrcodeQueryRequestV2 request = new QrcodeQueryRequestV2();
+        request.setServiceUrl("https://gw.open.icbc.com.cn/api/qrcode/V2/query");
+        QrcodeQueryRequestV2.QrcodeQueryRequestV2Biz bizContent = new QrcodeQueryRequestV2.QrcodeQueryRequestV2Biz();
+        bizContent.setMerId(mer_id);
+        bizContent.setOutTradeNo(out_trade_no);//该字段非必输项,out_trade_no和order_id选一项上送即可
+        bizContent.setOrderId(order_id);//该字段非必输项,out_trade_no和order_id选一项上送即可
+        request.setBizContent(bizContent);
+        QrcodeQueryResponseV2 response;
+        try {
+            response = client.execute(request, System.currentTimeMillis()+"");
+            if (response.getReturnCode() == 0) {
+                // 6、业务成功处理,请根据接口文档用response.getxxx()获取同步返回的业务数据
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("response:" + JSON.toJSONString(response));
+
+                String pay_status = response.getPayStatus();//交易结果标志,0:支付中,1:支付成功,2:支付失败
+                return pay_status;
+            } else {
+                // 失败
+                System.out.println("response:" + JSON.toJSONString(response));
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("ReturnMsg:"+response.getReturnMsg());
+            }
+        } catch (IcbcApiException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+
+
+    /**
+     * 扫码支付成功回调客户扫商户二维码)
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    public Map<String, String> generatePayCallback(HttpServletRequest request) throws Exception{
+        String biz_content1 = request.getParameter("biz_content");
+        JSONObject biz_content = JSON.parseObject(biz_content1);
+        int return_code = biz_content.getIntValue("return_code");
+        String return_msg = biz_content.getString("return_msg");
+        Map<String, String> map = new HashMap<>();
+        if(return_code == 0){
+            String out_trade_no = biz_content.getString("out_trade_no");//商家订单编号
+            String order_id = biz_content.getString("order_id");//工行订单号
+//            String third_trade_no = biz_content.getString("third_trade_no");//第三方订单号(微信/支付宝)
+            String attach = biz_content.getString("attach");//附加信息
+            String pay_time = biz_content.getString("pay_time");//支付完成时间"20190112"
+
+            map.put("out_trade_no", out_trade_no);
+            map.put("order_id", order_id);
+//            map.put("third_trade_no", third_trade_no);
+            map.put("attach", attach);
+            map.put("pay_time", pay_time);
+        }else{
+            System.err.println("支付失败:" + return_msg);
+        }
+        return map;
+    }
+
+
+
+
+    /**
+     * 退款申请
+     * @param order_id          工行下单订单号(与“商户系统下单订单号”二选一)
+     * @param out_trade_no      商户系统下单订单号(与“工行下单订单号”二选一)
+     * @param ret_total_amt     退款金额
+     * @param order_apd_inf     附加信息
+     * @param outtrx_serial_no  外部退货流水号
+     * @return
+     * @throws Exception
+     */
+    public Map<String, Object> merrefund(String order_id, String out_trade_no, Double ret_total_amt, String order_apd_inf, String outtrx_serial_no) throws Exception{
+        ret_total_amt = ret_total_amt * 100;
+        //签名类型为RSA2时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA2,其他参数使用缺省值
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        CardbusinessAggregatepayB2cOnlineMerrefundRequestV1 request = new CardbusinessAggregatepayB2cOnlineMerrefundRequestV1();
+        //根据测试环境和生产环境替换相应ip和端口
+        request.setServiceUrl("https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/merrefund/V1");
+        //请对照接口文档用bizContent.setxxx()方法对业务上送数据进行赋值
+        CardbusinessAggregatepayB2cOnlineMerrefundRequestV1.CardbusinessAggregatepayB2cOnlineMerrefundRequestV1Biz bizContent = new
+                CardbusinessAggregatepayB2cOnlineMerrefundRequestV1.CardbusinessAggregatepayB2cOnlineMerrefundRequestV1Biz();
+        request.setBizContent(bizContent);
+        bizContent.setOrder_id(order_id);//消费工行订单号,工行订单号,商户订单号或行内订单号必须其中一个不为空
+        bizContent.setMer_id(mer_id);//商户编号‐必输项
+        bizContent.setOut_trade_no(out_trade_no);//商户订单号,工行订单号,商户订单号或行内订单号必须其中一个不为空
+        bizContent.setOuttrx_serial_no(outtrx_serial_no);//外部退货流水号‐必输项
+        bizContent.setRet_total_amt(ret_total_amt.intValue() + "");//退货总金额‐必输项
+        bizContent.setTrnsc_ccy("001");//交易币种‐必输项
+        bizContent.setOrder_apd_inf(order_apd_inf);//备注信息
+        bizContent.setIcbc_appid(app_id);
+        bizContent.setMer_acct("");
+        CardbusinessAggregatepayB2cOnlineMerrefundResponseV1 response;
+        Map<String, Object> map = new HashMap<>();
+        try {
+            response = client.execute(request, "msgId3");//msgId消息通讯唯一编号,要求每次调用独立生成,APP级唯一
+            if (response.isSuccess()) {
+                // 业务成功处理,请根据接口文档用response.getxxx()获取同步返回的业务数据
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("response:" + response);
+                map.put("intrx_serial_no", response.getIntrx_serial_no());//退货工行流水号
+                map.put("code", response.getReturnCode());
+                map.put("mag", response.getReturnMsg());
+            } else {
+                // 失败
+                System.out.println("ReturnCode:"+response.getReturnCode());
+                System.out.println("ReturnMsg:"+response.getReturnMsg());
+                map.put("code", response.getReturnCode());
+                map.put("mag", response.getReturnMsg());
+            }
+        } catch (IcbcApiException e) {
+            e.printStackTrace();
+        }
+        return map;
+    }
+
+
+    /**
+     * 退款查询
+     * @param out_trade_no          商户系统消费下单订单号
+     * @param order_id              工行消费下单订单号
+     * @param outtrx_serial_no      商户系统退货编号
+     * @return
+     */
+    public Map<String, Object> refundqry(String out_trade_no, String order_id, String outtrx_serial_no){
+        // 签名类型为RSA时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA,其他参数使用缺省值
+        DefaultIcbcClient client = new DefaultIcbcClient(app_id, IcbcConstants.SIGN_TYPE_RSA2, privateKey, icbcPulicKey);
+        CardbusinessAggregatepayB2cOnlineRefundqryRequestV1 request = new CardbusinessAggregatepayB2cOnlineRefundqryRequestV1();
+        // 根据测试环境和生产环境替换相应ip和端口
+        request.setServiceUrl("https://gw.open.icbc.com.cn/api/cardbusiness/aggregatepay/b2c/online/refundqry/V1");
+        CardbusinessAggregatepayB2cOnlineRefundqryRequestV1.CardbusinessAggregatepayB2cOnlineRefundqryRequestV1Biz bizContent = new
+                CardbusinessAggregatepayB2cOnlineRefundqryRequestV1.CardbusinessAggregatepayB2cOnlineRefundqryRequestV1Biz();
+        request.setBizContent(bizContent);
+        // 请对照接口文档用bizContent.setxxx()方法对业务上送数据进行赋值
+        bizContent.setMer_id(mer_id);
+        bizContent.setOut_trade_no(out_trade_no);
+        bizContent.setOuttrx_serial_no(outtrx_serial_no);
+        bizContent.setOrder_id(order_id);
+        CardbusinessAggregatepayB2cOnlineRefundqryResponseV1 response;
+        Map<String, Object> map = new HashMap<>();
+        try {
+            response = client.execute(request, System.currentTimeMillis() + "");// msgId消息通讯唯一编号,要求每次调用独立生成,APP级唯一
+            if (response.getReturnCode() == 0) {
+                // 业务成功处理,请根据接口文档用response.getxxx()获取同步返回的业务数据
+                System.out.println("ReturnCode:" + response.getReturnCode());
+                System.out.println("response:" + JSON.toJSONString(response));
+                map.put("code", response.getReturnCode());//0
+                map.put("msg", response.getReturnMsg());
+                map.put("pay_status", response.getPay_status());//订单状态说明:0-退货成功;1-退货失败;2-退货状态未知
+            } else {
+                // 失败
+                System.out.println("response:" + JSON.toJSONString(response));
+                System.out.println("ReturnCode:" + response.getReturnCode());
+                System.out.println("ReturnMsg:" + response.getReturnMsg());
+                map.put("code", response.getReturnCode());//0
+                map.put("msg", response.getReturnMsg());
+            }
+        } catch (IcbcApiException e) {
+            e.printStackTrace();
+        }
+        return map;
+    }
+
+
+
+
+    /**
+     * 获取银行卡号归属地
+     * @param code
+     * @return
+     */
+    public Map<String, String> queryBank(String code){
+        String url = "https://bankaddress.shumaidata.com/bankaddress?bankcard=" + code;
+        Map<String, String> header = new HashMap<>();
+        header.put("Authorization", "APPCODE b7d32437d08149099457dcb50fb57df2");
+        String get = null;
+        try {
+            get = httpClientUtil.pushHttpRequset("GET", url, null, header, "form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        JSONObject jsonObject = JSON.parseObject(get);
+        int code1 = jsonObject.getIntValue("code");
+        Map<String, String> map = new HashMap<>();
+        if(code1 == 200){
+            map.put("msg", "success");
+            JSONObject data = jsonObject.getJSONObject("data");
+            map.put("province", data.getString("province"));//开通省
+            map.put("city", data.getString("city"));//开通市
+            map.put("abbreviation", data.getString("abbreviation"));//银行英文大写
+            map.put("type", data.getString("type"));//卡类型(借记卡)
+            map.put("bank", data.getString("bank"));//总行名称
+        }else{
+            map.put("msg", jsonObject.getString("msg"));
+        }
+        return map;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JuHeUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JuHeUtil.java
new file mode 100644
index 0000000..a65d07f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/JuHeUtil.java
@@ -0,0 +1,50 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 聚合数据工具类
+ */
+@Component
+public class JuHeUtil {
+
+    @Value("${juhe.appKey}")
+    private String key;
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+    /**
+     * 身份证号码实名认证
+     * @param name
+     * @param idcard
+     * @return
+     */
+    public boolean idcard(String name, String idcard){
+        Map<String, Object> map = new HashMap<>();
+        map.put("key", key);
+        map.put("idcard", idcard);
+        map.put("realname", name);
+        String content = null;
+        try {
+            content = httpClientUtil.pushHttpRequset("GET", "http://op.juhe.cn/idcard/query", map, new HashMap<>(), "form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(content);
+        JSONObject jsonObject = JSON.parseObject(content);
+        if(jsonObject.getIntValue("error_code") == 0){
+            int res = jsonObject.getJSONObject("result").getIntValue("res");
+            return res == 1 ? true : false;
+        }
+        return false;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/Config.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/Config.java
new file mode 100644
index 0000000..4bcea6c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/Config.java
@@ -0,0 +1,21 @@
+package com.stylefeng.guns.modular.system.util.LiuZhouBank;
+
+/**
+* 配置枚举类
+* @author pzb
+* @Date 2022/11/28 19:07
+*/
+public interface Config {
+
+    String MCHT_NO = "49561404121B083";
+
+    String APP_ID = "bolz18g5bw9eb80pc72d";
+
+    String PRIVATE_KEY = "3f0e856ca40ae36b787aaae4f72d85a5034759fe11e75c9033f17b09c94e4b85";
+
+    String FOP_PUBLIC_KEY = "04bf22b5bf2e98719c149f98b54264a3e2ced402d03430e884cf464289766ef24b3e9323b203a9132069b70830f468c5cd834b234c7479a2608f3026187a24a12b";
+
+    String TEST_URL = "http://117.141.212.41:38188";
+
+    String PRODUCTION_URL = "https://open.bolz.cn:8188";
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/PayUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/PayUtil.java
new file mode 100644
index 0000000..b263652
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/PayUtil.java
@@ -0,0 +1,394 @@
+package com.stylefeng.guns.modular.system.util.LiuZhouBank;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fop.sdk.*;
+import com.fop.sdk.domain.*;
+import com.fop.sdk.request.*;
+import com.fop.sdk.response.*;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+* 支付工具类
+* @author pzb
+* @Date 2022/11/28 21:10
+*/
+public class PayUtil {
+
+
+    /**
+     * 聚合支付预下单(微信、本行卡)
+     * @param subAppId          微信分配商户的子商户公众账号 ID
+     * @param openid            微信小程序openid
+     * @param chnlPayPage       微信商户号
+     * @param payType           支付类型:01-本行卡支付,02-聚合 微信,03-本行卡支付,微信支付 04-支付宝支付,05-本行卡支付,支付宝支付,06-微信支付,支付宝支付 07-全部
+     * @param amount            支付金额
+     * @param transDesc         交易描述
+     * @param backNotifyUrl     回调地址
+     * @param transSeq          商户流水号
+     * @param frontNotifyUrl    支付成功的跳转页面(前端)
+     * @param mcht_no           银行商户号
+     * @return
+     */
+    public static String polymericPay(String subAppId, String openid, String chnlPayPage, String payType, Double amount, String transDesc, String backNotifyUrl, String transSeq, String frontNotifyUrl, String mcht_no){
+        String uri = "/api/conductor/cashier/polymericPay/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierPolymericpayModel_100 model = new ConductorCashierPolymericpayModel_100();
+        ConductorCashierPolymericpayRequest_100 request = new ConductorCashierPolymericpayRequest_100();
+        ConductorCashierPolymericpayResponse_100 response = null;
+
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String format = sdf1.format(new Date());
+        String format1 = sdf2.format(new Date());
+        model.setMchtNo(mcht_no);
+        model.setTransSeq(transSeq);
+        model.setTransDate(format);
+        model.setTransTime(format1);
+        model.setVersion("1.0");
+        model.setSndDt(format + format1);
+
+        model.setSubAppId(subAppId);//微信分配商户的子商户公众账号 ID
+        model.setOpenId(openid);//商户通过微信预授权获取的用户唯一标识,当payChnlType=02时必传
+        model.setChnlPayPage(chnlPayPage);//微信分配商户的子商户账号 ID,当 payChnlType=02 时必传
+        model.setPayChnlType(ToolUtil.isNotEmpty(openid) ? "02" : "01");//01-H5  02-微信小程序
+        model.setPayType(payType);//支付类型:01-本行卡支付,02-聚合 微信,03-本行卡支付,微信支付 04-支付宝支付,05-本行卡支付,支 付宝支付,06-微信支付,支付宝支 付 07-全部
+        model.setTransAmount(amount.toString());//交易金额
+        model.setTransDesc(transDesc);//交易描述
+        model.setBackNotifyUrl(backNotifyUrl);//后台异步通知回调地址
+        model.setFrontNotifyUrl(frontNotifyUrl);
+        try {
+            model.setTermIp(InetAddress.getLocalHost().getHostAddress());//终端IP
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
+        request.setBizModel(model);
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        System.err.println("预下单请求:" + JSON.toJSONString(model));
+        System.err.println("预下单响应:" + JSON.toJSONString(response));
+        if("00000000".equals(response.getBizCode()) || "88888888".equals(response.getBizCode())){
+            String transDate = response.getTransDate();
+            String transTime = response.getTransTime();
+            String transSeq1 = response.getTransSeq();
+            return response.getCodeUrl();
+        }else{
+            System.err.println(response.getBizCode() + ":" + response.getBizMsg());
+        }
+        return null;
+    }
+
+
+    /**
+     * 聚合支付交易状态查询
+     * @param oriTransSeq       原商户上送交易流水号
+     * @param oriTransDate      原交易日期
+     * @param oriTansTime       原交易时间
+     * @param oriTransAmount    原交易金额
+     * @return
+     */
+    public static String poPayTransStatusQuery(String oriTransSeq, String oriTransDate, String oriTansTime, Double oriTransAmount){
+        String uri = "/api/conductor/cashier/poPayTransStatusQuery/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierPopaytransstatusqueryModel_100 model = new ConductorCashierPopaytransstatusqueryModel_100();
+        ConductorCashierPopaytransstatusqueryRequest_100 request = new ConductorCashierPopaytransstatusqueryRequest_100();
+        ConductorCashierPopaytransstatusqueryResponse_100 response = null;
+
+        model.setOriTransSeq(oriTransSeq);//原商户上送交易流水号
+        model.setOriTransType("mergePay.order");//sign.pay 协议支付,sign.deposit协议代付,sign.wx.jspay协议代付关联微信公众号支付,sign.ali.jspay协议代付关联支付宝服务窗支付,loan.pay欠款订单还款,card.prepay本行卡支付预下单,unified.pay客户被扫接口,ali.dynamic.code支付宝扫码支付,union.dynamic.code银联扫码支付,wx.jspay微信公众号支付,ali.jspay支付宝服务窗支付,mergePay.order聚合支付预下单
+        model.setOriTransDate(oriTransDate);//原交易日期
+        model.setOriTransTime(oriTansTime);//原交易时间
+        model.setOriTransAmount(oriTransAmount.toString());//原交易金额
+        request.setBizModel(model);
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        return JSONObject.toJSONString(response);
+    }
+
+
+    /**
+     * 聚合支付退款
+     * @param oriTransSeq       原商户上送交易流水号
+     * @param oriTransDate      原交易日期
+     * @param oriTansTime       原交易时间
+     * @param oriTransAmount    原交易金额
+     * @param refundAmount      退款金额
+     * @return
+     */
+    public static String polymericPayRefund(String oriTransSeq, String oriTransDate, String oriTansTime, Double oriTransAmount, Double refundAmount){
+        String uri = "/api/conductor/cashier/polymericPayRefund/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierPolymericpayrefundModel_100 model = new ConductorCashierPolymericpayrefundModel_100();
+        ConductorCashierPolymericpayrefundRequest_100 request = new ConductorCashierPolymericpayrefundRequest_100();
+        ConductorCashierPolymericpayrefundResponse_100 response = null;
+
+        model.setOriTransSeq(oriTransSeq);//原商户上送交易流水号
+        model.setOriTransType("mergePay.order");//sign.pay 协议支付,sign.deposit协议代付,sign.wx.jspay协议代付关联微信公众号支付,sign.ali.jspay协议代付关联支付宝服务窗支付,loan.pay欠款订单还款,card.prepay本行卡支付预下单,unified.pay客户被扫接口,ali.dynamic.code支付宝扫码支付,union.dynamic.code银联扫码支付,wx.jspay微信公众号支付,ali.jspay支付宝服务窗支付,mergePay.order聚合支付预下单
+        model.setOriTransDate(oriTransDate);//原交易日期
+        model.setOriTransTime(oriTansTime);//原交易时间
+        model.setOriTransAmount(oriTransAmount.toString());//原交易金额
+        model.setRefundAmount(refundAmount.toString());//退款金额
+        request.setBizModel(model);
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        return JSONObject.toJSONString(response);
+    }
+
+
+    /**
+     * 协议代付关联支付宝服务窗支付
+     * @param chnlSeq       渠道流水号(自定义,唯一)
+     * @param signNum       签约协议号
+     * @param mchtReserve   商户保留内容,和签约上送一致
+     * @param buyerId       支付宝买家用户id
+     * @param body          商品描述
+     * @param totalFee      支付金额
+     * @param notifyUrl     通知回调地址
+     */
+    public static void relatedZFBOfficialPay(String chnlSeq, String signNum, String mchtReserve, String buyerId, String body, String totalFee, String notifyUrl){
+        String uri = "/api/conductor/cashier/relatedZFBOfficialPay/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierRelatedzfbofficialpayModel_100 model = new ConductorCashierRelatedzfbofficialpayModel_100();
+        ConductorCashierRelatedzfbofficialpayRequest_100 request = new ConductorCashierRelatedzfbofficialpayRequest_100();
+        ConductorCashierRelatedzfbofficialpayResponse_100 response = null;
+
+        Date date = new Date();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf1 = new SimpleDateFormat("HHmmss");
+
+        model.setChnlSeq(chnlSeq);//渠道流水号
+        model.setChnlDate(sdf.format(date));//渠道日期
+        model.setChnlTime(sdf1.format(date));//渠道时间
+        model.setSignNum(signNum);//签约协议号
+        model.setMchtReserve(mchtReserve);//商户保留 即在协议签约时,上送的商户保留字段,普通商户一般为用户标识号,需要确保唯一
+        model.setDeviceInfo("");//设备号
+        model.setBuyerId(buyerId);//卖价支付宝用户ID
+        model.setBody(body);//商品描述
+        model.setTotalFee(totalFee);//支付总金额
+        try {
+            model.setTermIp(InetAddress.getLocalHost().getHostAddress());//终端IP
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
+        model.setTermMac("");//终端MAC信息
+        model.setLocations("");//经纬度信息
+        model.setNotifyUrl(notifyUrl);//通知回调地址
+        request.setBizModel(model);
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        if("00000000".equals(response.getBizCode())){
+            if("00".equals(response.getCode())){
+                String tradeMoney = response.getTradeMoney();//实际支付金额
+                String totalFee1 = response.getTotalFee();//订单金额
+                String tradeNo = response.getTradeNo();//支付宝JS订单号
+            }else{
+                System.err.println(response.getMsg());
+            }
+
+            String transDate = response.getTransDate();
+            String transTime = response.getTransTime();
+            String transSeq1 = response.getTransSeq();
+
+        }else{
+            System.err.println(response.getBizMsg());
+        }
+
+    }
+
+
+
+
+
+
+    /**
+     * 支付宝扫码支付
+     * @param chnlSeq
+     * @param deviceInfo
+     * @param body
+     * @param totalFee
+     * @param subject
+     * @param notifyUrl
+     * @return
+     */
+    public static String zfbScanCodePay(String chnlSeq, String deviceInfo, String body, Double totalFee, String subject, String notifyUrl){
+        String uri = "/api/conductor/cashier/zfbScanCodePay/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierZfbscancodepayModel_100 model = new ConductorCashierZfbscancodepayModel_100();
+        ConductorCashierZfbscancodepayRequest_100 request = new ConductorCashierZfbscancodepayRequest_100();
+        ConductorCashierZfbscancodepayResponse_100 response = null;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HHmmss");
+        String format = sdf.format(new Date());
+        model.setChnlSeq(chnlSeq);//渠道流水号
+        model.setChnlDate(format.split(" ")[0]);//渠道日期
+        model.setChnlTime(format.split(" ")[1]);//渠道时间
+        model.setDeviceInfo(deviceInfo);//设备号
+        model.setBody(body);//商品描述
+        model.setFeeType("CNY");//货币类型
+        model.setTotalFee(totalFee.toString());//总金额
+        model.setSubject(subject);//订单标题
+        try {
+            model.setTermIp(InetAddress.getLocalHost().getHostAddress());//终端IP
+            model.setTermMac("");//终端MAC信息
+            model.setLocations("");//经纬度信息
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
+        model.setNotifyUrl(notifyUrl);//异步通知回调地址
+        request.setBizModel(model);
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        if("00000000".equals(response.getBizCode())){
+            if("00".equals(response.getResultCode())){//成功
+                return response.getCodeUrl();
+            }else{
+                System.err.println(response.getResultMsg());
+                return null;
+            }
+        }else{
+            System.err.println(response.getBizMsg());
+            return null;
+        }
+    }
+
+
+
+
+    /**
+     * 支付回调处理
+     * @param request
+     * @return
+     */
+    public static ResultNotification payResultNotification(HttpServletRequest request){
+        String param = null;
+        try {
+            param = getParam(request);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        JSONObject jsonObject1 = JSON.parseObject(param);
+        JSONObject jsonObject = FopClient.SM2checkSign(jsonObject1, Config.FOP_PUBLIC_KEY);
+        if(!jsonObject.getBoolean("sign")){
+            System.err.println("线下收款回调异常---------->" + jsonObject.getString("msg"));
+            return null;
+        }
+        ResultNotification resultNotification = jsonObject1.toJavaObject(ResultNotification.class);
+        resultNotification.setResponseStr("success");//响应内容
+        return resultNotification;
+    }
+
+
+
+    /**
+     * 获取请求内容
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    private static String getParam(HttpServletRequest request) throws IOException {
+        // 读取参数
+        InputStream inputStream;
+        StringBuilder sb = new StringBuilder();
+        inputStream = request.getInputStream();
+        String s;
+        BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+        while ((s = in.readLine()) != null) {
+            sb.append(s);
+        }
+        in.close();
+        inputStream.close();
+        return sb.toString();
+    }
+
+
+    public static void main(String[] args) {
+//        String polymericPay = PayUtil.polymericPay(null, null, null, "02", 0.01d, "测试支付", "https://10pz685243.zicp.fun/user/base/offlineTravelPaymentCallback", "123111");
+//        System.err.println(polymericPay);
+//        PayUtil.relatedZFBOfficialPay("11212", "", "", "1212", "测试商品", "0.01", "");
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ProtocolSignUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ProtocolSignUtil.java
new file mode 100644
index 0000000..7dac000
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ProtocolSignUtil.java
@@ -0,0 +1,546 @@
+package com.stylefeng.guns.modular.system.util.LiuZhouBank;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fop.sdk.*;
+import com.fop.sdk.domain.*;
+import com.fop.sdk.request.*;
+import com.fop.sdk.response.*;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.UUIDUtil;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 银行签约工具类
+ * @author pzb
+ * @Date 2022/11/28 19:06
+ */
+
+public class ProtocolSignUtil {
+
+
+    /**
+     * 签约前获取短信验证码
+     * @param IdNum         身份证号码
+     * @param phone         银行预留电话
+     * @param acctName      账户名称
+     * @param acctNum       账户号
+     * @return
+     */
+    public static ResultUtil<String> protocolSignSendSms(String IdNum, String phone, String acctName, String acctNum){
+        try {
+            String uri = "/api/conductor/cashier/protocolSignSendSms/1.0.0";
+            FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                    .IsBodyEncrypt(true)
+                    .SererUrl(Config.PRODUCTION_URL + uri)
+                    .EncryptType(EncryptType.SM4)
+                    .SignType(SignType.SM2).build();
+
+            /**
+             * model,request,response类
+             * 不同接口的model,request,response均不相同
+             * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+             * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+             * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+             */
+            ConductorCashierProtocolsignsendsmsModel_100 model = new ConductorCashierProtocolsignsendsmsModel_100();
+            ConductorCashierProtocolsignsendsmsRequest_100  request = new ConductorCashierProtocolsignsendsmsRequest_100();
+            ConductorCashierProtocolsignsendsmsResponse_100 response = null;
+
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String format = sdf1.format(new Date());
+            String format1 = sdf2.format(new Date());
+            model.setMchtNo(Config.MCHT_NO);
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+            model.setTransDate(format);
+            model.setTransTime(format1);
+            model.setVersion("1.0");
+            model.setSndDt(format + format1);
+
+            model.setContractType("02");//01代扣,02代付
+            model.setIdType("01");//01 居民身份证
+            model.setIdNum(IdNum);//证件号码
+            model.setMobilePhone(phone);//银行预留手机号
+            model.setAcctName(acctName);//账户名称
+            model.setAcctNum(acctNum);//账号
+            model.setCardType("01");//01本行卡,02他行卡
+            request.setBizModel(model);
+            System.err.println("请求参数----》" + JSON.toJSONString(model));
+            response = fopClient.execute(request);
+            System.err.println("响应结果----》" + JSON.toJSONString(response));
+            if("00000000".equals(response.getBizCode())){
+                return ResultUtil.success();
+            }else{
+                System.err.println(response.getBizMsg());
+                return ResultUtil.error(response.getBizMsg());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 银行卡签约
+     * @param IdNum     身份证号码
+     * @param phone     银行预留电话号码
+     * @param acctName  账户名
+     * @param acctNum   账号
+     * @param code
+     * @return
+     */
+    public static Map<String, String> protocolSign(String IdNum, String phone, String acctName, String acctNum, String code){
+        Map<String, String> map = new HashMap<>();
+        try {
+            String uri = "/api/conductor/cashier/protocolSign/1.0.0";
+            FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                    .IsBodyEncrypt(true)
+                    .SererUrl(Config.PRODUCTION_URL + uri)
+                    .EncryptType(EncryptType.SM4)
+                    .SignType(SignType.SM2).build();
+
+            /**
+             * model,request,response类
+             * 不同接口的model,request,response均不相同
+             * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+             * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+             * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+             */
+            ConductorCashierProtocolsignModel_100 model = new ConductorCashierProtocolsignModel_100();
+            ConductorCashierProtocolsignRequest_100 request = new ConductorCashierProtocolsignRequest_100();
+            ConductorCashierProtocolsignResponse_100 response = null;
+
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String format = sdf1.format(new Date());
+            String format1 = sdf2.format(new Date());
+            model.setMchtNo(Config.MCHT_NO);
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+            model.setTransDate(format);
+            model.setTransTime(format1);
+            model.setVersion("1.0");
+            model.setSndDt(format + format1);
+
+            model.setContractType("02");//协议类型01代扣,02代付
+            model.setChannelType("11");//11收单商户
+            model.setBusiType("01");//01商户后台接口调用
+            model.setIdType("01");//01 居民身份证
+            model.setIdNum(IdNum);//证件号码
+            model.setMobilePhone(phone);//银行预留手机号码
+            model.setAcctName(acctName);//户名
+            model.setAcctNum(acctNum);//账户
+            model.setCardType("01");//01本行卡,02他行卡
+            model.setDynamicCode(code);//短信验证码
+            request.setBizModel(model);
+            System.err.println("请求参数----》" + JSON.toJSONString(model));
+            response = fopClient.execute(request);
+            System.err.println("响应结果----》" + JSON.toJSONString(response));
+            if("00000000".equals(response.getBizCode())){
+                map.put("code", "00");
+                map.put("signNum", response.getSignNum());
+                map.put("acctNumSuffix", response.getAcctNumSuffix());//银行卡号后4位
+            }else{
+                map.put("code", "01");
+                map.put("msg", response.getBizMsg());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("code", "01");
+            map.put("msg", "接口异常");
+        }
+        return map;
+    }
+
+
+    /**
+     * 协议签约查询
+     * @param signNum   签约协议号
+     * @param acctNum   银行账号
+     * @return
+     */
+    public static Map<String, String> queryProtocolSign(String signNum, String acctNum){
+        Map<String, String> map = new HashMap<>();
+        try {
+            String uri = "/api/conductor/cashier/queryProtocolSign/1.0.0";
+            FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                    .IsBodyEncrypt(true)
+                    .SererUrl(Config.PRODUCTION_URL + uri)
+                    .EncryptType(EncryptType.SM4)
+                    .SignType(SignType.SM2).build();
+
+            /**
+             * model,request,response类
+             * 不同接口的model,request,response均不相同
+             * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+             * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+             * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+             */
+            ConductorCashierQueryprotocolsignModel_100 model = new ConductorCashierQueryprotocolsignModel_100();
+            ConductorCashierQueryprotocolsignRequest_100 request = new ConductorCashierQueryprotocolsignRequest_100();
+            ConductorCashierQueryprotocolsignResponse_100 response = null;
+
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String format = sdf1.format(new Date());
+            String format1 = sdf2.format(new Date());
+            model.setMchtNo(Config.MCHT_NO);
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+            model.setTransDate(format);
+            model.setTransTime(format1);
+            model.setVersion("1.0");
+            model.setSndDt(format + format1);
+
+            model.setSignNum(signNum);//签约协议号
+            model.setAcctNum(acctNum);//账号
+            model.setContractType("02");//协议类型01代扣,02代付
+            request.setBizModel(model);
+            System.err.println("请求参数----》" + JSON.toJSONString(model));
+            response = fopClient.execute(request);
+            System.err.println("响应结果----》" + JSON.toJSONString(response));
+            String bizCode = response.getBizCode();
+            if("00000000".equals(bizCode)){
+                String signNum1 = response.getSignNum();
+                String signStatus = response.getSignStatus();
+                map.put("code", "00");
+                map.put("SignNum", signNum1);//签约协议号
+                map.put("SignStatus", signStatus);//签约状态 01-签约,02-解约,03客户黑名单,04-垫资超限冻结
+            }else{
+                map.put("code", "01");
+                map.put("msg", response.getBizMsg());
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("code", "01");
+            map.put("msg", "接口异常");
+        }
+        return map;
+    }
+
+
+
+
+    /**
+     * 协议解约
+     * @param signNum   签约协议号
+     * @return
+     */
+    public static Map<String, String> protocolRescind(String signNum){
+        Map<String, String> map = new HashMap<>();
+        try {
+            String uri = "/api/conductor/cashier/protocolRescind/1.0.0";
+            FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                    .IsBodyEncrypt(true)
+                    .SererUrl(Config.PRODUCTION_URL + uri)
+                    .EncryptType(EncryptType.SM4)
+                    .SignType(SignType.SM2).build();
+
+            /**
+             * model,request,response类
+             * 不同接口的model,request,response均不相同
+             * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+             * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+             * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+             */
+            ConductorCashierProtocolrescindModel_100 model = new ConductorCashierProtocolrescindModel_100();
+            ConductorCashierProtocolrescindRequest_100 request = new ConductorCashierProtocolrescindRequest_100();
+            ConductorCashierProtocolrescindResponse_100 response = null;
+
+            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+            SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String format = sdf1.format(new Date());
+            String format1 = sdf2.format(new Date());
+            model.setMchtNo(Config.MCHT_NO);
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+            model.setTransDate(format);
+            model.setTransTime(format1);
+            model.setVersion("1.0");
+            model.setSndDt(format + format1);
+
+            model.setSignNum(signNum);//签约协议号
+            model.setContractType("02");//协议类型01代扣,02代付
+            model.setChannelType("11");//11收单商户
+            request.setBizModel(model);
+            System.err.println("请求参数----》" + JSON.toJSONString(model));
+            response = fopClient.execute(request);
+            System.err.println("响应结果----》" + JSON.toJSONString(response));
+            String bizCode = response.getBizCode();
+
+            if("00000000".equals(bizCode)){
+                String signNum1 = response.getSignNum();
+                String transSeq = response.getTransSeq();
+                map.put("code", "00");
+                map.put("SignNum", signNum1);//签约协议号
+                map.put("TransSeq", transSeq);//流水号
+            }else{
+                map.put("code", "01");
+                map.put("msg", response.getBizMsg());//流水号
+            }
+        }catch (Exception e){
+            map.put("code", "01");
+            map.put("msg", "接口异常");//流水号
+        }
+        return map;
+    }
+
+
+    /**
+     * 协议支付
+     * @param signNum       签约协议号
+     * @param amount        支付金额
+     * @param transDesc     交易描述
+     * @return
+     */
+    public static String protocolPayTrans(String signNum, Double amount, String transDesc){
+        String uri = "/api/conductor/cashier/protocolPayTrans/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierProtocolpaytransModel_100 model = new ConductorCashierProtocolpaytransModel_100();
+        ConductorCashierProtocolpaytransRequest_100 request = new ConductorCashierProtocolpaytransRequest_100();
+        ConductorCashierProtocolpaytransResponse_100 response = null;
+
+
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String format = sdf1.format(new Date());
+        String format1 = sdf2.format(new Date());
+        model.setMchtNo(Config.MCHT_NO);
+        try {
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        model.setTransDate(format);
+        model.setTransTime(format1);
+        model.setVersion("1.0");
+        model.setSndDt(format + format1);
+
+        model.setSignNum(signNum);//签约协议号
+        model.setTransAmount(amount.toString());//支付金额
+        model.setTransDesc(transDesc);//交易描述
+        request.setBizModel(model);
+        System.err.println("请求参数----》" + JSON.toJSONString(model));
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        System.err.println("响应结果----》" + JSON.toJSONString(response));
+        return  JSONObject.toJSONString(response);
+    }
+
+
+    /**
+     * 协议代付
+     * @param signNum
+     * @param amount
+     * @param transDesc
+     * @return
+     */
+    public static Map<String, Object> protocolAgentPay(String signNum, Double amount, String transDesc){
+        String uri = "/api/conductor/cashier/protocolAgentPay/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierProtocolagentpayModel_100 model = new ConductorCashierProtocolagentpayModel_100();
+        ConductorCashierProtocolagentpayRequest_100 request = new ConductorCashierProtocolagentpayRequest_100();
+        ConductorCashierProtocolagentpayResponse_100 response = null;
+
+
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String format = sdf1.format(new Date());
+        String format1 = sdf2.format(new Date());
+        model.setMchtNo(Config.MCHT_NO);
+        try {
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        model.setTransDate(format);
+        model.setTransTime(format1);
+        model.setVersion("1.0");
+        model.setSndDt(format + format1);
+
+        model.setSignNum(signNum);//签约协议号
+        model.setTransAmount(amount.toString());//支付金额
+        model.setTransDesc(transDesc);//交易描述
+        request.setBizModel(model);
+        System.err.println("请求参数----》" + JSON.toJSONString(model));
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        System.err.println("响应结果----》" + JSON.toJSONString(response));
+        String bizCode = response.getBizCode();
+        Map<String, Object> map = new HashMap<>();
+        if("00000000".equals(bizCode)){
+            String transSeq = response.getTransSeq();
+            map.put("code", "00");
+            map.put("TransSeq", transSeq);
+        }else{
+            map.put("code", "01");
+            map.put("msg", response.getBizMsg());
+            System.err.println(response.getBizMsg());
+        }
+        return map;
+    }
+
+
+    /**
+     * 统一交易退款
+     * @param oriTransSeq       原商户上送交易流水号
+     * @param oriTransDate      原交易日期
+     * @param oriTansTime       原交易时间
+     * @param oriTransAmount    原交易金额
+     * @param refundAmount      退款金额
+     * @return
+     */
+    public static String protocolPayRefund(String oriTransSeq, String oriTransDate, String oriTansTime, Double oriTransAmount, Double refundAmount){
+        String uri = "/api/conductor/cashier/protocolPayRefund/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierProtocolpayrefundModel_100 model = new ConductorCashierProtocolpayrefundModel_100();
+        ConductorCashierProtocolpayrefundRequest_100 request = new ConductorCashierProtocolpayrefundRequest_100();
+        ConductorCashierProtocolpayrefundResponse_100 response = null;
+
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String format = sdf1.format(new Date());
+        String format1 = sdf2.format(new Date());
+        model.setMchtNo(Config.MCHT_NO);
+        try {
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        model.setTransDate(format);
+        model.setTransTime(format1);
+        model.setVersion("1.0");
+        model.setSndDt(format + format1);
+
+        model.setOriTransSeq(oriTransSeq);//原商户上送交易流水号
+        model.setOriTransType("sign.pay");//sign.pay 协议支付,sign.deposit协议代付,sign.wx.jspay协议代付关联微信公众号支付,sign.ali.jspay协议代付关联支付宝服务窗支付,loan.pay欠款订单还款,card.prepay本行卡支付预下单,unified.pay客户被扫接口,ali.dynamic.code支付宝扫码支付,union.dynamic.code银联扫码支付,wx.jspay微信公众号支付,ali.jspay支付宝服务窗支付,mergePay.order聚合支付预下单
+        model.setOriTransDate(oriTransDate);//原交易日期
+        model.setOriTansTime(oriTansTime);//原交易时间
+        model.setOriTransAmount(oriTransAmount.toString());//原交易金额
+        model.setRefundAmount(refundAmount.toString());//退款金额
+        request.setBizModel(model);
+        System.err.println("请求参数----》" + JSON.toJSONString(model));
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        System.err.println("响应结果----》" + JSON.toJSONString(response));
+        return  JSONObject.toJSONString(response);
+    }
+
+
+    /**
+     * 统一交易状态查询
+     * @param oriTransSeq       原商户上送交易流水号
+     * @param oriTransDate      原交易日期
+     * @param oriTansTime       原交易时间
+     * @param oriTransAmount    原交易金额
+     * @return
+     */
+    public static String queryTransStatus(String oriTransSeq, String oriTransDate, String oriTansTime, Double oriTransAmount){
+        String uri = "/api/conductor/cashier/protocolPayRefund/1.0.0";
+        FopClient fopClient = DefaultFopClient.builder(Config.APP_ID, Config.PRIVATE_KEY, Config.FOP_PUBLIC_KEY)
+                .IsBodyEncrypt(true)
+                .SererUrl(Config.PRODUCTION_URL + uri)
+                .EncryptType(EncryptType.SM4)
+                .SignType(SignType.SM2).build();
+
+        /**
+         * model,request,response类
+         * 不同接口的model,request,response均不相同
+         * 其中,ConductorCashierXXXX需与apiUrl相互对应。在引入开放平台jar包后,驼峰可使用ide快捷键补全
+         * 或查看jar包中com.fop.sdk中的domain包,request包,response包,引入对象皆在此目录中
+         * 如,协议支付的model 为 ConductorCashierProtocolpaytransModel_100
+         */
+        ConductorCashierQuerytransstatusModel_100 model = new ConductorCashierQuerytransstatusModel_100();
+        ConductorCashierQuerytransstatusRequest_100 request = new ConductorCashierQuerytransstatusRequest_100();
+        ConductorCashierQuerytransstatusResponse_100 response = null;
+
+
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
+        SimpleDateFormat sdf2 = new SimpleDateFormat("HHmmss");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String format = sdf1.format(new Date());
+        String format1 = sdf2.format(new Date());
+        model.setMchtNo(Config.MCHT_NO);
+        try {
+            model.setTransSeq(sdf.format(new Date()) + UUIDUtil.getRandomCode(5));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        model.setTransDate(format);
+        model.setTransTime(format1);
+        model.setVersion("1.0");
+        model.setSndDt(format + format1);
+
+        model.setOriTransSeq(oriTransSeq);//原商户上送交易流水号
+        model.setOriTransType("sign.pay");//sign.pay 协议支付,sign.deposit协议代付,sign.wx.jspay协议代付关联微信公众号支付,sign.ali.jspay协议代付关联支付宝服务窗支付,loan.pay欠款订单还款,card.prepay本行卡支付预下单,unified.pay客户被扫接口,ali.dynamic.code支付宝扫码支付,union.dynamic.code银联扫码支付,wx.jspay微信公众号支付,ali.jspay支付宝服务窗支付,mergePay.order聚合支付预下单
+        model.setOriTransDate(oriTransDate);//原交易日期
+        model.setOriTansTime(oriTansTime);//原交易时间
+        model.setOriTransAmount(oriTransAmount.toString());//原交易金额
+        request.setBizModel(model);
+        System.err.println("请求参数----》" + JSON.toJSONString(model));
+        try {
+            response = fopClient.execute(request);
+        } catch (FopApiException e) {
+            e.printStackTrace();
+        }
+        System.err.println("响应结果----》" + JSON.toJSONString(response));
+        return  JSONObject.toJSONString(response);
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ResultNotification.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ResultNotification.java
new file mode 100644
index 0000000..0210619
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/LiuZhouBank/ResultNotification.java
@@ -0,0 +1,215 @@
+package com.stylefeng.guns.modular.system.util.LiuZhouBank;
+
+/**
+* 回调结果
+* @author pzb
+* @Date 2022/11/28 20:56
+*/
+public class ResultNotification {
+    /**
+     * 响应码
+     * 0000000:成功
+     * 其他:失败
+     */
+    private String returnCode;
+    /**
+     * 响应信息
+     */
+    private String returnMessage;
+    /**
+     * 商户号
+     */
+    private String mchtNo;
+    /**
+     * 商户名称
+     */
+    private String mchtName;
+    /**
+     * 签名证书序列号
+     */
+    private String signSn;
+    /**
+     * 加密证书序列号
+     */
+    private String encSn;
+    /**
+     * 业务结果信息  00 成功  01 失败
+     */
+    private String resultCode;
+    /**
+     * 业务结果信息
+     */
+    private String resultMsg;
+    /**
+     * 渠道流水号即报文上送的渠道流水号
+     */
+    private String chnlSeq;
+    /**
+     * 订单金额
+     */
+    private String totalFee;
+    /**
+     * 系统交易日期
+     */
+    private String txnDate;
+    /**
+     * 系统交易时间
+     */
+    private String txnTime;
+    /**
+     * 特约商户
+     */
+    private String subMchId;
+    /**
+     * 系统流水号
+     */
+    private String txnSeq;
+    /**
+     * 支付交易渠道 01-微信,02-支付宝,03-云闪付
+     */
+    private String paytype;
+    /**
+     * 签名
+     */
+    private String sign;
+    /**
+     * 接口响应内容
+     */
+    private String responseStr;
+
+    public String getReturnCode() {
+        return returnCode;
+    }
+
+    public void setReturnCode(String returnCode) {
+        this.returnCode = returnCode;
+    }
+
+    public String getReturnMessage() {
+        return returnMessage;
+    }
+
+    public void setReturnMessage(String returnMessage) {
+        this.returnMessage = returnMessage;
+    }
+
+    public String getMchtNo() {
+        return mchtNo;
+    }
+
+    public void setMchtNo(String mchtNo) {
+        this.mchtNo = mchtNo;
+    }
+
+    public String getMchtName() {
+        return mchtName;
+    }
+
+    public void setMchtName(String mchtName) {
+        this.mchtName = mchtName;
+    }
+
+    public String getResultCode() {
+        return resultCode;
+    }
+
+    public void setResultCode(String resultCode) {
+        this.resultCode = resultCode;
+    }
+
+    public String getResultMsg() {
+        return resultMsg;
+    }
+
+    public void setResultMsg(String resultMsg) {
+        this.resultMsg = resultMsg;
+    }
+
+    public String getChnlSeq() {
+        return chnlSeq;
+    }
+
+    public void setChnlSeq(String chnlSeq) {
+        this.chnlSeq = chnlSeq;
+    }
+
+    public String getTotalFee() {
+        return totalFee;
+    }
+
+    public void setTotalFee(String totalFee) {
+        this.totalFee = totalFee;
+    }
+
+    public String getTxnDate() {
+        return txnDate;
+    }
+
+    public void setTxnDate(String txnDate) {
+        this.txnDate = txnDate;
+    }
+
+    public String getTxnTime() {
+        return txnTime;
+    }
+
+    public void setTxnTime(String txnTime) {
+        this.txnTime = txnTime;
+    }
+
+    public String getTxnSeq() {
+        return txnSeq;
+    }
+
+    public void setTxnSeq(String txnSeq) {
+        this.txnSeq = txnSeq;
+    }
+
+    public String getPaytype() {
+        return paytype;
+    }
+
+    public void setPaytype(String paytype) {
+        this.paytype = paytype;
+    }
+
+    public String getSign() {
+        return sign;
+    }
+
+    public void setSign(String sign) {
+        this.sign = sign;
+    }
+
+    public String getResponseStr() {
+        return responseStr;
+    }
+
+    public void setResponseStr(String responseStr) {
+        this.responseStr = responseStr;
+    }
+
+    public String getSignSn() {
+        return signSn;
+    }
+
+    public void setSignSn(String signSn) {
+        this.signSn = signSn;
+    }
+
+    public String getEncSn() {
+        return encSn;
+    }
+
+    public void setEncSn(String encSn) {
+        this.encSn = encSn;
+    }
+
+    public String getSubMchId() {
+        return subMchId;
+    }
+
+    public void setSubMchId(String subMchId) {
+        this.subMchId = subMchId;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MD5AndKL.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MD5AndKL.java
new file mode 100644
index 0000000..c97abd6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MD5AndKL.java
@@ -0,0 +1,112 @@
+package com.stylefeng.guns.modular.system.util;
+
+import java.security.MessageDigest;
+
+public class MD5AndKL {
+	
+	/**
+	 * MD5加码。32位
+	 * 
+	 * @param inStr
+	 * @return
+	 */
+	public static String MD5(String inStr) {
+		MessageDigest md5 = null;
+		try {
+			md5 = MessageDigest.getInstance("MD5");
+		} catch (Exception e) {
+			throw new RuntimeException(e.toString());
+		}
+		byte[] md5Bytes = md5.digest(inStr.getBytes());
+		StringBuffer hexValue = new StringBuffer();
+		for (int i = 0; i < md5Bytes.length; i++) {
+			int val = ((int) md5Bytes[i]) & 0xff;
+			if (val < 16) {
+				hexValue.append("0");
+			}
+			hexValue.append(Integer.toHexString(val));
+		}
+		return hexValue.toString();
+	}
+
+	/**
+	 * 可逆的加密算法
+	 * 
+	 * @param inStr
+	 * @return
+	 */
+	public static String KL(String inStr) {
+		char[] a = inStr.toCharArray();
+		for (int i = 0; i < a.length; i++) {
+			a[i] = (char) (a[i] ^ 't');
+		}
+		String s = new String(a);
+		return s;
+	}
+
+	/**
+	 * 加密后解密
+	 * 
+	 * @param inStr
+	 * @return
+	 */
+	public static String JM(String inStr) {
+		char[] a = inStr.toCharArray();
+		for (int i = 0; i < a.length; i++) {
+			a[i] = (char) (a[i] ^ 't');
+		}
+		String k = new String(a);
+		return k;
+	}
+
+
+
+	private static String byteArrayToHexString(byte b[]) {
+		StringBuffer resultSb = new StringBuffer();
+		for (int i = 0; i < b.length; i++)
+			resultSb.append(byteToHexString(b[i]));
+
+		return resultSb.toString();
+	}
+
+	private static String byteToHexString(byte b) {
+		int n = b;
+		if (n < 0)
+			n += 256;
+		int d1 = n / 16;
+		int d2 = n % 16;
+		return hexDigits[d1] + hexDigits[d2];
+	}
+
+	public static String MD5Encode(String origin, String charsetname) {
+		String resultString = null;
+		try {
+			resultString = new String(origin);
+			MessageDigest md = MessageDigest.getInstance("MD5");
+			if (charsetname == null || "".equals(charsetname)){
+				resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
+			}else{
+				resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
+			}
+		} catch (Exception exception) {
+			exception.printStackTrace();
+		}
+		return resultString;
+	}
+
+	private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
+			"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
+
+	public static void main(String args[]) {
+		 
+		System.out.println("MD5后再加密:" + KL(MD5("123456")));
+		System.out.println(MD5("123456"));
+		// System.out.println("加密:" + KL(MD5("123456")));
+		// s = KL(s);
+		// System.out.println("解密:" + KL("81dc9bdb52d04dc20036dbd8313ed055"));
+		// System.out.println("解密:" + JM(KL(s)));
+		// System.out.println("解密为MD5后的:" + KL(KL(MD5(s))));
+		// System.out.println(JM("5d62957bb57d3e49dcf48a0df064be4c"));
+		// System.out.println(MD5AndKL.KL(MD5AndKL.MD5("admin"+"87654321")));
+	}
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MinistryOfTransport.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MinistryOfTransport.java
new file mode 100644
index 0000000..38b11ab
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/MinistryOfTransport.java
@@ -0,0 +1,1224 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import sun.security.krb5.internal.PAData;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 交通部接口对接
+ */
+@Component
+public class MinistryOfTransport {
+
+    private final String CompanyId = "4502YSGSGK3Y";//公司标识
+
+    private final String Source = "0";//消息来源标识
+
+    private final String url = "http://172.19.5.101:8085";
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+    private SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
+
+    private SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
+
+    private SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss");
+
+
+    /**
+     * 上传企业基础信息
+     */
+    public void baseInfoCompany(){
+        String IPCType = "baseInfoCompany";
+        String path = url + "/baseinfo/company";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("CompanyName", "广西云森科技有限公司");//公司名称
+        jsonObject.put("Identifier", "91450200MA5K99GK3Y");//统一社会信用代码
+        jsonObject.put("Address", 450204);//注册地行政区划代码
+        jsonObject.put("BusinessScope", "网络预约出租汽车客运");//经营范围
+        jsonObject.put("ContactAddress", "柳州市柳南区航银路8号万利大厦3楼303室");//通信地址
+        jsonObject.put("EconomicType", "150");//经营业户经济类型
+        jsonObject.put("RegCapital", "壹仟万圆整");//注册资本
+        jsonObject.put("LegalName", "翁克顺");//法人代表姓名
+        jsonObject.put("LegalID", "44052419650805207X");//法人代表身份证号
+        jsonObject.put("LegalPhone", "13907728585");//法人代表电话
+        jsonObject.put("LegalPhoto", "");//法人代表身份证扫描件文件编号
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车平台公司营运规模信息接口
+     */
+    public void baseInfoCompanyStat(){
+        String IPCType = "baseInfoCompanyStat";
+        String path = url + "/baseinfo/companystat";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("VehicleNum", 0);//平台注册网约车辆数
+        jsonObject.put("DriverNum", 0);//平台注册驾驶员数
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车平台公司支付信息
+     */
+    public void baseInfoCompanyPay(){
+        String IPCType = "baseInfoCompanyPay";
+        String path = url + "/baseinfo/companypay";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("PayName", "");//银行或者非银行支付机构名称
+        jsonObject.put("PayId", "");//非银行支付机构支付业务许可证编号
+        jsonObject.put("PayType", "");//支付业务类型
+        jsonObject.put("PayScope", "");//业务覆盖范围
+        jsonObject.put("PrepareBank", "");//备付金存管银行
+        jsonObject.put("CountDate", 1);//结算周期
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车平台公司服务机构
+     */
+    public void baseInfoCompanyService(){
+        String IPCType = "baseInfoCompanyService";
+        String path = url + "/baseinfo/companyservice";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//行政区划代码
+        jsonObject.put("ServiceNae", "广西云森科技有限公司");//服务机构名称
+        jsonObject.put("ServiceNo", "");//服务机构代码
+        jsonObject.put("DetailAddress", "柳州市柳南区航银路8号万利大厦3楼303室");//服务机构地址
+        jsonObject.put("ResponsibleName", "");//服务机构负责人姓名
+        jsonObject.put("ResponsiblePhone", "");//负责人联系电话
+        jsonObject.put("ManagerName", "");//服务机构管理人姓名
+        jsonObject.put("ManagerPhone", "");//管理人联系电话
+        jsonObject.put("ContactPhone", "");//服务机构紧急联系电话
+        jsonObject.put("MailAddress", "");//行政文书送达邮寄地址
+        jsonObject.put("CreateDate", 20150918);//服务机构设立日期
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车平台公司经营许可
+     */
+    public void baseInfoCompanyPermit(){
+        String IPCType = "baseInfoCompanyPermit";
+        String path = url + "/baseinfo/companypermit";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//许可地行政区划代码
+        jsonObject.put("Certificate", "450200005403");//网络预约出租车经营许可证号
+        jsonObject.put("OperationArea", "广西壮族自治州柳州市城区");//经营区域
+        jsonObject.put("OwnerName", "广西云森科技有限公司");//公司名称
+        jsonObject.put("Organization", "柳州市行政审批据");//发证机构名称
+        jsonObject.put("StartDate", 20180330);//有效期起YYYYMMDD
+        jsonObject.put("StopDate", 20220329);//有效期止YYYYMMDD
+        jsonObject.put("CertifyDate", 0);//初次发证日期YYYYMMDD
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车平台公司运价信息
+     */
+    public void baseInfoCompanyFare(){
+        String IPCType = "baseInfoCompanyFare";
+        String path = url + "/baseinfo/companyfare";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//运价适用地行政区划代码
+        jsonObject.put("FareType", "");//运价类型编码(由网约车平台公司统一编码,应确保唯一性)
+        jsonObject.put("FareTypeNote", "");//运价类型说明
+        jsonObject.put("FareValidOn", 0);//运价有效期起YYYYMMDDhhmmss
+        jsonObject.put("FareValidOff", 0);//运价有效止YYYYMMDDhhmmss
+        jsonObject.put("StartFare", 0);//起步价(元)
+        jsonObject.put("StartMile", 0);//起步里程(km)
+        jsonObject.put("UnitPricePerMile", 0);//计程单价(按公里/元)
+        jsonObject.put("UnitPricePerMinute", 0);//计时单价(按分钟/元)
+        jsonObject.put("UpPrice", 0);//单程加价单价(元)
+        jsonObject.put("UpPriceStartMile", 0);//单程加价公里(km)
+        jsonObject.put("MorningPeakTimeOn", "");//营运早高峰时间起(HHmm 24小时)
+        jsonObject.put("MorningPeakTimeOff", "");//营运早高峰时间止(HHmm 24小时)
+        jsonObject.put("EveningPeakTimeOn", "");//营运晚高峰时间起(HHmm 24小时)
+        jsonObject.put("EveningPeakTimeOff", "");//营运晚高峰时间止(HHmm 24小时)
+        jsonObject.put("OtherPeakTimeOn", "");//其他营运高等时间起(HHmm 24小时)
+        jsonObject.put("OtherPeakTineOff", "");//其他营运高等时间止(HHmm 24小时)
+        jsonObject.put("PeakUnitPrice", 0);//高峰时间单程加价单价(元)
+        jsonObject.put("PeakPriceStartMile", 0);//高峰时间单程加价公里(km)
+        jsonObject.put("LowSpeedPriceMinute", 0);//低速计时加价(按分钟 元)
+        jsonObject.put("NightPricePerMile", 0);//夜间费(按公里 元)
+        jsonObject.put("NightPricePerMinute", 0);//夜间费(按分钟 元)
+        jsonObject.put("OtherPrice", 0);//其它加价金额(元)
+
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 车辆基本信息
+     */
+    public void baseInfoVehicle(){
+        String IPCType = "baseInfoVehicle";
+        String path = url + "/baseinfo/vehicle";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//车辆所在城市行政区划代码
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("PlateColor", "");//车牌颜色
+        jsonObject.put("Seats", 5);//核定载客位
+        jsonObject.put("Brand", "");//车辆厂牌
+        jsonObject.put("Model", "");//车辆型号
+        jsonObject.put("VehicleType", "");//车辆类型(以机动车行驶证为准)
+        jsonObject.put("OwnerName", "");//车辆所有人(以机动车行驶证为准)
+        jsonObject.put("VehicleColor", "");//车身颜色
+        jsonObject.put("EngineId", "");//发送机号(以机动车行驶证为准)
+        jsonObject.put("VIN", "");//车辆VIN码(以机动车行驶证为准)
+        jsonObject.put("CertifyDateA", 0);//车辆注册日期(以机动车行驶证为准)
+        jsonObject.put("FuelType", "");//车辆燃料类型
+        jsonObject.put("EngineDisplace", "");//发送机排量(毫升)
+        jsonObject.put("PhotoId", "");//车辆照片文件编号
+        jsonObject.put("Certificate", "");//运输证字号
+        jsonObject.put("TransAgency", "");//车辆运输证发证机构
+        jsonObject.put("TransArea", "");//车辆经营区域
+        jsonObject.put("TransDateStart", 0);//车辆运输证有效期起YYYYMMDD
+        jsonObject.put("TransDateStop", 0);//车辆运输证有效期止YYYYMMDD
+        jsonObject.put("CertifyDateB", 0);//车辆初次登记日期
+        jsonObject.put("FixState", "");//车辆维修状态(0:未检修,1:已检修,2:未知)
+        jsonObject.put("NextFixDate", 0);//车辆下次年检时间
+        jsonObject.put("CheckState", "");//车辆年度审验状态
+        jsonObject.put("FeePrintId", "");//发票打印设备序列号
+        jsonObject.put("GPSBrand", "");//卫星定位装置品牌
+        jsonObject.put("GPSModel", "");//卫星定位装置型号
+        jsonObject.put("GPSIMEI", "");//卫星定位装置IMEI号
+        jsonObject.put("GPSInstallDate", 0);//卫星定位设备安装日期YYYYMMDD
+        jsonObject.put("RegisterDate", 0);//报备日期(车辆信息向服务所在地出租车行政主管部门报备日期YYYYMMDD)
+        jsonObject.put("CommercialType", 0);//服务类型(1:网络预约出租车,2:巡游出租汽车,3:私人小客车合乘)
+        jsonObject.put("FareType", "");//运价类型编码(与云间信息中一一对应)
+
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 2);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 车辆保险信息
+     */
+    public void baseInfoVehicleInsurance(){
+        String IPCType = "baseInfoVehicleInsurance";
+        String path = url + "/baseinfo/vehicleinsurance";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("InsurCom", "");//保险公司名称
+        jsonObject.put("InsurNum", "");//保险号
+        jsonObject.put("InsurType", "");//保险类型
+        jsonObject.put("InsurCount", 0);//保险金额(元)
+        jsonObject.put("InsurEff", 0);//保险生效时间YYYYMMDD
+        jsonObject.put("InsurExp", 0);//保险到期时间YYYYMMDD
+
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车车辆里程信息
+     */
+    public void baseInfoVehicleTotalMile(){
+        String IPCType = "baseInfoVehicleTotalMile";
+        String path = url + "/baseinfo/vehicletotalmile";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//注册地行政区划代码
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("TotalMile", 0);//行驶总里程(km)
+
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 驾驶员基本信息
+     */
+    public void baseInfoDriver(){
+        String IPCType = "baseInfoDriver";
+        String path = url + "/baseinfo/driver";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//注册地行政区划代码
+        jsonObject.put("DriverName", "");//机动车驾驶员姓名
+        jsonObject.put("DriverPhone", "");//驾驶员手机号
+        jsonObject.put("DriverGender", "");//驾驶员性别
+        jsonObject.put("DriverBirthday", 0);//出生日期YYYYMMDD
+        jsonObject.put("DriverNationality", "");//国籍
+        jsonObject.put("DriverNation", "");//驾驶员民族
+        jsonObject.put("DriverMaritalStatus", "");//驾驶员婚姻状况(未婚,已婚,离异)
+        jsonObject.put("DriverLanguageLevel", "");//驾驶员外语能力
+        jsonObject.put("DriverEducation", "");//驾驶员学历
+        jsonObject.put("DriverCensus", "");//户口登记机关名称
+        jsonObject.put("DriverAddress", "");//户口住址或长住地址
+        jsonObject.put("DriverContactAddress", "");//驾驶员通信地址
+        jsonObject.put("PhotoId", "");//驾驶员照片文件编号
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("LicensePhotoId", "");//机动车驾驶证扫描件文件编号
+        jsonObject.put("DriverType", "");//准驾车型
+        jsonObject.put("GetDriverLicenseDate", 0);//初次领取驾驶证日期YYYYMMDD
+        jsonObject.put("DriverLicenseOn", 0);//驾驶证有效期限起YYYYMMDD
+        jsonObject.put("DriverLicenseOff", 0);//驾驶证有效期限止YYYYMMDD
+        jsonObject.put("TaxiDriver", 0);//是否巡游出租汽车驾驶员(1:是,2:否)
+        jsonObject.put("CertificateNo", "");//网络预约出租汽车驾驶员资格证号
+        jsonObject.put("NetworkCarIssueOrganization", "");//网络预约出租汽车驾驶员证发证机构
+        jsonObject.put("NetworkCarIssueDate", 0);//资格证发证日期YYYYMMDD
+        jsonObject.put("GetNetworkCarProofDate", 0);//初次领取资格证日期YYYYMMDD
+        jsonObject.put("NetworkCarProofOn", 0);//资格证有效起始日期YYYYMMDD
+        jsonObject.put("NetworkCarProofOff", 0);//资格证有截止日期YYYYMMDD
+        jsonObject.put("RegisterDate", 0);//报备日期(驾驶员信息向服务所在地出租车行政主管部门报备日期)
+        jsonObject.put("FullTimeDriver", 0);//是否专职驾驶员(1:是,0:否)
+        jsonObject.put("InDriverBlacklist", 0);//是否在驾驶员黑名单内(1:是,0:否)
+        jsonObject.put("CommercialType", 0);//服务类型(1:网络预约出租汽车,2:巡游出租汽车,3:私人小客车合乘)
+        jsonObject.put("ContractCompany", "");//驾驶员合同签署公司
+        jsonObject.put("ContractOn", 0);//合同有效期起YYYYMMDD
+        jsonObject.put("ContractOff", 0);//合同有效期止YYYYMMDD
+        jsonObject.put("EmergencyContact", "");//紧急情况联系人
+        jsonObject.put("EmergencyContactPhone", "");//紧急情况联系人电话
+        jsonObject.put("EmergencyContactAddress", "");//紧急情况联系人通信地址
+
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 网约车驾驶员培训信息
+     */
+    public void baseInfoDriverEducate(){
+        String IPCType = "baseInfoDriverEducate";
+        String path = url + "/baseinfo/drivereducate";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//注册地行政区划代码
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("CourseName", "");//驾驶员培训课程名称
+        jsonObject.put("CourseDate", 0);//培训课程日期YYYYMMDD
+        jsonObject.put("StartTime", "");//培训开始时间
+        jsonObject.put("StopTime", "");//培训结束时间
+        jsonObject.put("Duration", 0);//培训时长
+
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 驾驶员移动终端信息
+     */
+    public void baseInfoDriverApp(){
+        String IPCType = "baseInfoDriverApp";
+        String path = url + "/baseinfo/driverapp";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//注册地行政区划代码
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("DriverPhone", "");//驾驶员手机号
+        jsonObject.put("NetType", 0);//手机运营商(1:中国联通,2:中国移动,3:中国电信,4:其他)
+        jsonObject.put("AppVersion", "");//使用APP版本号
+        jsonObject.put("MapType", 0);//使用地图类型(1:百度地图,2:高德地图,3:其他)
+
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 驾驶员统计信息
+     */
+    public void baseInfoDriverStat(){
+        String IPCType = "baseInfoDriverStat";
+        String path = url + "/baseinfo/driverstat";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 450204);//注册地行政区划代码
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("Cycle", 0);//统计周期(统计周期按月,内容填写统计月份YYYYMM)
+        jsonObject.put("OrderCount", 0);//完成订单次数
+        jsonObject.put("TrafficViolationCount", 0);//交通违章次数
+        jsonObject.put("ComplainedCount", 0);//被投诉次数
+
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 乘客基本信息
+     */
+    public void baseInfoPassenger(){
+        String IPCType = "baseInfoPassenger";
+        String path = url + "/baseinfo/passenger";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("RegisterDate", 0);//注册日期YYYYMMDD
+        jsonObject.put("PassengerPhone", "");//乘客手机号
+        jsonObject.put("PassengerName", "");//乘客称谓
+        jsonObject.put("PassengerGender", "");//乘客性别
+
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", Long.valueOf(sdf.format(new Date())));
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 订单发起接口
+     */
+    public void orderCreate(){
+        String IPCType = "orderCreate";
+        String path = url + "/order/create";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 0);//发起第行政区划代码
+        jsonObject.put("OrderId", "");//订单编号
+        jsonObject.put("DepartTime", 0);//预计用车时间YYYYMMDDhhmmss
+        jsonObject.put("OrderTime", 0);//订单发起时间YYYYMMDDhhmmss
+        jsonObject.put("PassengerNote", "");//乘客备注
+        jsonObject.put("Departure", "");//预计出发地点详细地址
+        jsonObject.put("DepLongitude", 0);//预计出发地点经度
+        jsonObject.put("DepLatitude", 0);//预计出发地点纬度
+        jsonObject.put("Destination", "");//预计目的地
+        jsonObject.put("DestLongitude", 0);//预计目的地经度
+        jsonObject.put("DestLatitude", 0);//预计目的地纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("FareType", "");//运价类型编码
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 订单成功接口
+     */
+    public void orderMatch(){
+        String IPCType = "orderMatch";
+        String path = url + "/order/match";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 0);//发起第行政区划代码
+        jsonObject.put("OrderId", "");//订单编号
+        jsonObject.put("Longitude", 0);//车辆经度
+        jsonObject.put("Latitude", 0);//车辆纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("LicenseId", "");//机动车驾驶证编号
+        jsonObject.put("DriverPhone", "");//驾驶员手机号
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("DistributeTime", 0);//派单成功时间YYYYMMDDhhmmss
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 订单撤销接口
+     */
+    public void orderCancel(){
+        String IPCType = "orderCancel";
+        String path = url + "/order/cancel";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 0);//上车地点行政区划代码
+        jsonObject.put("OrderId", "");//订单编号
+        jsonObject.put("OrderTime", 0);//订单时间YYYYMMDDhhmmss
+        jsonObject.put("CancelTime", 0);//订单撤销时间YYYYMMDDhhmmss
+        jsonObject.put("Operator", "");//撤销发起方(1:乘客,2:驾驶员,3:平台公司)
+        jsonObject.put("CancelTypeCode", "");//机动车驾驶证编号
+        jsonObject.put("DriverPhone", "");//撤销类型代码(1:乘客提前撤销,2:驾驶员提前撤销,3:平台公司撤销,4:乘客违约撤销,5:驾驶员违约撤销)
+        jsonObject.put("CancelReason", "");//撤销或违约原因
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 车辆经营上线接口
+     */
+    public void operateLogin(){
+        String IPCType = "operateLogin";
+        String path = url + "/operate/login";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("LoginTime", 0);//车辆经营上线时间YYYYMMDDhhmmss
+        jsonObject.put("Longitude", 0);//上线经度
+        jsonObject.put("Latitude", 0);//上线纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 车辆经营下线接口
+     */
+    public void operateLogout(){
+        String IPCType = "operateLogout";
+        String path = url + "/operate/logout";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("LoginTime", 0);//车辆经营下线时间YYYYMMDDhhmmss
+        jsonObject.put("Longitude", 0);//下线经度
+        jsonObject.put("Latitude", 0);//下线纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 经营出发接口
+     */
+    public void operateDepart(){
+        String IPCType = "operateDepart";
+        String path = url + "/operate/depart";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("OrderId", "");//订单号
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("FareType", "");//运价类型编码
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("DepLongitude", 0);//车辆出发经度
+        jsonObject.put("DepLatitude", 0);//车辆出发纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("DepTime", 0);//上车时间YYYYMMDDhhmmss
+        jsonObject.put("WaitMile", 0);//空驶里程(km)
+        jsonObject.put("WaitTime", 0);//等待时间(秒)
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 经营到达接口
+     */
+    public void operateArrive(){
+        String IPCType = "operateArrive";
+        String path = url + "/operate/arrive";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("OrderId", "");//订单号
+        jsonObject.put("DestLongitude", 0);//车辆到达经度
+        jsonObject.put("DestLatitude", 0);//车辆到达纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("DestTime", 0);//下车时间YYYYMMDDhhmmss
+        jsonObject.put("DriveMile", 0);//载客里程(km)
+        jsonObject.put("DriveTime", 0);//载客时间(秒)
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 经营支付接口
+     */
+    public void operatePay(){
+        String IPCType = "operatePay";
+        String path = url + "/operate/pay";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("OrderId", "");//订单号
+        jsonObject.put("OnArea", 0);//上车位置行政区划代码
+        jsonObject.put("DriverName", "");//机动车驾驶员
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("FareType", "");//运价类型编码(由网约车公司定义,与运价信息接口保持一街)
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("BookDepTime", 0);//预计上车时间YYYYMMDDhhmmss
+        jsonObject.put("WaitTime", 0);//等待时间(秒)
+        jsonObject.put("DepLongitude", 0);//车辆出发经度
+        jsonObject.put("DepLatitude", 0);//车辆出发纬度
+        jsonObject.put("DepArea", "");//上车点
+        jsonObject.put("DepTime", 0);//上车时间YYYYMMDDhhmmss
+        jsonObject.put("DestLongitude", 0);//车辆到达经度
+        jsonObject.put("DestLatitude", 0);//车辆到达纬度
+        jsonObject.put("DestArea", "");//下车地点
+        jsonObject.put("DestTime", 0);//下车时间YYYYMMDDhhmmss
+        jsonObject.put("BookModel", "");//预定车型
+        jsonObject.put("DriveMile", 0);//载客里程(km)
+        jsonObject.put("DriveTime", 0);//载客时间(秒)
+        jsonObject.put("WaitMile", 0);//空驶里程(km)
+        jsonObject.put("FactPrice", 0);//实收金额(元)
+        jsonObject.put("Price", 0);//应收金额(元)
+        jsonObject.put("CashPrice", 0);//现金支付金额(元)
+        jsonObject.put("LineName", "");//电子支付机构
+        jsonObject.put("LinePrice", 0);//电子支付金额(元)
+        jsonObject.put("PosName", "");//POS机支付机构
+        jsonObject.put("PosPrice", 0);//POS机支付金额(元)
+        jsonObject.put("BenfitPrice", 0);//优惠金额(元)
+        jsonObject.put("BookTip", 0);//预约服务费(元)
+        jsonObject.put("PassengerTip", 0);//附加费(元)
+        jsonObject.put("PeakUpPrice", 0);//高峰时段时间加价金额(元)
+        jsonObject.put("NightUpPrice", 0);//夜间时段里程加价金额(元)
+        jsonObject.put("FarUpPrice", 0);//远途加价金额(元)
+        jsonObject.put("OtherUpPrice", 0);//其他加价金额(元)
+        jsonObject.put("PayState", "");//结算状态(0:未结算,1:已结算,2:未知)
+        jsonObject.put("PayTime", 0);//乘客结算时间YYYYMMDDhhmmss
+        jsonObject.put("OrderMatchTime", 0);//订单完成时间YYYYMMDDhhmmss
+        jsonObject.put("InvoiceStatus", "");//发票状态(0:未开票,1:已开票,2:未知)
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 驾驶员定位信息
+     */
+    public void positionDriver(){
+        String IPCType = "positionDriver";
+        String path = url + "/position/driver";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("DriverRegionCode", 0);//行政区划代码
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("PositionTime", 0);//定位时间(时间戳)
+        jsonObject.put("Longitude", 0);//经度
+        jsonObject.put("Latitude", 0);//纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("Direction", 0);//方向角
+        jsonObject.put("Elevation", 0);//海拔高度
+        jsonObject.put("Speed", 0);//瞬时速度(km/h)
+        jsonObject.put("BizStatus", 0);//营运状态(1:载客,2:接单,3:空驶,4:停运)
+        jsonObject.put("OrderId", "");//订单编号
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 车辆定位信息
+     */
+    public void positionVehicle(){
+        String IPCType = "positionVehicle";
+        String path = url + "/position/vehicle";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("VehicleRegionCode", 0);//行政区划代码
+        jsonObject.put("PositionTime", 0);//定位时间(时间戳)
+        jsonObject.put("Longitude", 0);//经度
+        jsonObject.put("Latitude", 0);//纬度
+        jsonObject.put("Speed", 0);//瞬时速度(km/h)
+        jsonObject.put("Direction", 0);//方向角
+        jsonObject.put("Elevation", 0);//海拔高度
+        jsonObject.put("Mileage", 0);//行驶里程(KM)
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("WarnStatus", 0);//预警状态
+        jsonObject.put("VehStatus", 0);//车辆状态
+        jsonObject.put("BizStatus", 0);//营运状态(1:载客,2:接单,3:空驶,4:停运)
+        jsonObject.put("OrderId", "");//订单编号(非营运状态下填"0")
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 乘客评价信息
+     */
+    public void ratedPassenger(){
+        String IPCType = "ratedPassenger";
+        String path = url + "/rated/passenger";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("OrderId", "");//订单号
+        jsonObject.put("EvaluateTime", 0);//评价时间YYYYMMDDhhmms
+        jsonObject.put("ServiceScore", 0);//服务满意度(五分制)
+        jsonObject.put("DriverScore", 0);//驾驶员满意度(五分制)
+        jsonObject.put("VehicleScore", 0);//车辆满意度(五分制)
+        jsonObject.put("Detail", "");//评价内容
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 乘客投诉信息
+     */
+    public void ratedPassengerComplaint(){
+        String IPCType = "ratedPassengerComplaint";
+        String path = url + "/rated/passengercomplaint";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("OrderId", "");//订单号
+        jsonObject.put("ComplaintTime", 0);//投诉时间YYYYMMDDhhmms
+        jsonObject.put("Detail", "");//投诉内容
+        jsonObject.put("Result", "");//处理结果
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+    /**
+     * 驾驶员处罚信息
+     */
+    public void ratedDriverPunish(){
+        String IPCType = "ratedDriverPunish";
+        String path = url + "/rated/driverpunish";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("LicenseId", "");//机动车驾驶证编号
+        jsonObject.put("PunishTime", 0);//处罚时间YYYYMMDDhhmms
+        jsonObject.put("PunishReason", "");//处罚原因
+        jsonObject.put("PunishReault", "");//处罚结果
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 驾驶员信誉信息
+     */
+    public void ratedDriver(){
+        String IPCType = "ratedDriver";
+        String path = url + "/rated/driver";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("LicenseId", "");//机动车驾驶证编号
+        jsonObject.put("Level", 0);//服务质量信誉等级(五分制)
+        jsonObject.put("TestDate", 0);//服务质量信誉考核日期YYYYMMDD
+        jsonObject.put("TestDepartment", "");//服务质量信誉考核机构
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 私人小客车合乘信息服务平台基本信息
+     */
+    public void shareCompany(){
+        String IPCType = "shareCompany";
+        String path = url + "/share/company";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("CompanyName", "");//公司名称
+        jsonObject.put("Identifier", "");//统一社会信用代码
+        jsonObject.put("Address", 0);//注册地行政区划代码
+        jsonObject.put("ContactAddress", "");//通信地址
+        jsonObject.put("EconomicType", "");//经营业户经济类型
+        jsonObject.put("LegalName", "");//法人代表姓名(按照营业执照填写)
+        jsonObject.put("LegalPhone", "");//法人代表电话
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", 1);//更新时间YYYYMMDDhhmmss
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+    /**
+     * 私人小客车合乘驾驶员行程发布接口
+     */
+    public void shareRoute(){
+        String IPCType = "shareRoute";
+        String path = url + "/share/route";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 0);//行政区划代码
+        jsonObject.put("RouteId", "");//驾驶员发起行程编号
+        jsonObject.put("DriverName", "");//驾驶员姓名
+        jsonObject.put("DriverPhone", "");//驾驶员手机号
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("Departure", "");//行程出发地点
+        jsonObject.put("DepLongitude", 0);//车辆出发经度
+        jsonObject.put("DepLatitude", 0);//车辆出发纬度
+        jsonObject.put("Destination", "");//行程到达地点
+        jsonObject.put("DestLongitude", 0);//到达地经度
+        jsonObject.put("DestLatitude", 0);//到达纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("RouteCreateTime", 0);//行程发布时间YYYYMMDDhhmmss
+        jsonObject.put("RouteMile", 0);//行程预计里程(km)
+        jsonObject.put("RouteNote", "");//行程备注
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 此人小客车合乘订单接口
+     */
+    public void shareOrder(){
+        String IPCType = "shareOrder";
+        String path = url + "/share/order";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 0);//行政区划代码
+        jsonObject.put("RouteId", "");//驾驶员发起行程编号
+        jsonObject.put("OrderId", "");//乘客合乘订单号
+        jsonObject.put("BookDepartTime", 0);//预计上车时间YYYYMMDDhhmmss
+        jsonObject.put("Departure", "");//预计上车地点
+        jsonObject.put("DepLongitude", 0);//预计上车地点经度
+        jsonObject.put("DepLatitude", 0);//预计上车地点纬度
+        jsonObject.put("Destination", "");//预计下车地点
+        jsonObject.put("DestLongitude", 0);//预计下车地点经度
+        jsonObject.put("DestLatitude", 0);//预计下车地点纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("OrderEnsureTime", 0);//订单确认时间YYYYMMDDhhmmss
+        jsonObject.put("PassengerNum", 0);//乘客人数
+        jsonObject.put("PassengerNote", "");//乘客备注
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+
+
+    /**
+     * 私人小客车合乘订单支付接口
+     */
+    public void sharePay(){
+        String IPCType = "sharePay";
+        String path = url + "/share/pay";
+        Map<String, Object> data = new HashMap<>();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("CompanyId", CompanyId);
+        jsonObject.put("Address", 0);//行政区划代码
+        jsonObject.put("RouteId", "");//驾驶员发起行程编号
+        jsonObject.put("OrderId", "");//乘客合乘订单号
+        jsonObject.put("DriverPhone", "");//驾驶员手机号
+        jsonObject.put("LicenseId", "");//机动车驾驶证号
+        jsonObject.put("VehicleNo", "");//车辆号牌
+        jsonObject.put("FareType", "");//运价类型编码
+        jsonObject.put("BookDepartTime", 0);//预计上车时间YYYYMMDDhhmmss
+        jsonObject.put("DepartTime", 0);//实际上车时间YYYYMMDDhhmmss
+        jsonObject.put("Departure", "");//上车地点
+        jsonObject.put("DepLongitude", 0);//上车地点经度
+        jsonObject.put("DepLatitude", 0);//上车地点纬度
+        jsonObject.put("DestTime", 0);//下车时间YYYYMMDDhhmmss
+        jsonObject.put("Destination", "");//下车地点
+        jsonObject.put("DestLongitude", 0);//下车地点经度
+        jsonObject.put("DestLatitude", "");//下车地点纬度
+        jsonObject.put("Encrypt", 0);//坐标加密标识(1:GCJ-02测绘局标准,2:WGS84 GPS标准,3:BD-09百度标准,4:CGCS2000北斗标准,0:其他)
+        jsonObject.put("DriveMile", 0);//载客里程(km)
+        jsonObject.put("DriveTime", 0);//载客时间(秒)
+        jsonObject.put("FactPrice", 0);//实收金额(元)
+        jsonObject.put("Price", 0);//应收金额(元)
+        jsonObject.put("CashPrice", 0);//现金支付金额(元)
+        jsonObject.put("LineName", "");//电子支付机构
+        jsonObject.put("LinePrice", 0);//电子支付金额(元)
+        jsonObject.put("BenfitPrice", 0);//优惠金额(元)
+        jsonObject.put("ShareFuelFee", 0);//燃料成本分摊金额(元)
+        jsonObject.put("ShareHighwayToll", 0);//路桥通行分摊金额(元)
+        jsonObject.put("PassengerTip", 0);//附加费(元)
+        jsonObject.put("ShareOther", 0);//其他费用分摊金额(元)
+        jsonObject.put("PayState", 0);//结算状态(0:未结算,1:已结算,2:未知)
+        jsonObject.put("PassengerNum", 0);//乘客人数(元)
+        jsonObject.put("PayTime", 0);//乘客结算时间YYYYMMDDhhmmss
+        jsonObject.put("OrderMatchTime", 0);//订单完成时间YYYYMMDDhhmmss
+
+        data.put("CompanyId", CompanyId);
+        data.put("Source", Source);
+        data.put("IPCType", IPCType);
+        data.put("baseInfoCompany", jsonObject);
+        String s = null;
+        try {
+            s = httpClientUtil.pushHttpRequset("POST", path, data, null, "json").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(s);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
new file mode 100644
index 0000000..d34abcd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PayMoneyUtil.java
@@ -0,0 +1,857 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.AlipayClient;
+import com.alipay.api.DefaultAlipayClient;
+import com.alipay.api.domain.AlipayTradeAppPayModel;
+import com.alipay.api.internal.util.AlipaySignature;
+import com.alipay.api.request.AlipayTradeAppPayRequest;
+import com.alipay.api.request.AlipayTradePrecreateRequest;
+import com.alipay.api.request.AlipayTradeQueryRequest;
+import com.alipay.api.request.AlipayTradeRefundRequest;
+import com.alipay.api.response.AlipayTradeAppPayResponse;
+import com.alipay.api.response.AlipayTradePrecreateResponse;
+import com.alipay.api.response.AlipayTradeQueryResponse;
+import com.alipay.api.response.AlipayTradeRefundResponse;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import org.apache.commons.collections.map.HashedMap;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import org.dom4j.Document;
+import org.dom4j.DocumentException;
+import org.dom4j.Element;
+import org.dom4j.io.SAXReader;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.SecretKeySpec;
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.math.BigDecimal;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.Security;
+import java.util.*;
+
+/**
+ * 第三方支付工具类
+ */
+@Component
+public class PayMoneyUtil {
+
+    @Value("${alipay.appid}")
+    private String aliAppid;//支付宝appid
+
+    @Value("${alipay.appPrivateKey}")
+    private String appPrivateKey;//支付宝开发者应用私钥
+
+    @Value("${alipay.alipayPublicKey}")
+    private String alipayPublicKey;//支付宝应用公钥
+
+    @Value("${alipay.alipay_public_key}")
+    private String alipay_public_key;//支付宝支付公钥
+
+    @Value("${wx.appid}")
+    private String appid;//微信appid
+
+    @Value("${wx.appletsAppid}")
+    private String appletsAppid;
+
+    @Value("${wx.appletsAppSecret}")
+    private String appletsAppSecret;
+
+    @Value("${wx.mchId}")
+    private String mchId;//微信商户号
+
+    @Value("${wx.key}")
+    private String key;//微信商户号
+
+    @Value("${wx.certPath}")
+    String certPath;
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+
+    /**
+     * 支付宝支付
+     */
+    public ResultUtil alipay(String body, String subject, String outTradeNo, String amount, String notifyUrl){
+        //实例化客户端
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipayPublicKey, "RSA2");
+        //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
+        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
+        //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
+        AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
+        model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。
+        model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。
+        model.setOutTradeNo(outTradeNo);//商户网站唯一订单号
+        model.setTimeoutExpress("30m");
+        model.setTotalAmount(amount);//付款金额
+        model.setProductCode("QUICK_MSECURITY_PAY");
+        request.setBizModel(model);
+        request.setNotifyUrl(notifyUrl);
+        try {
+            //这里和普通的接口调用不同,使用的是sdkExecute
+            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
+            Map<String, String> map = new HashMap<>();
+            map.put("orderString", response.getBody());
+            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
+            return ResultUtil.success(map);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    /**
+     * 支付宝扫码支付下单
+     * @param body
+     * @param subject
+     * @param outTradeNo
+     * @param amount
+     * @param notifyUrl
+     * @return
+     */
+    public ResultUtil aliScanCodePay(String body, String subject, String outTradeNo, String amount, String notifyUrl){
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); //获得初始化的AlipayClient
+        AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();//创建API对应的request类
+        request.setBizContent("{" +
+                "    \"out_trade_no\":\"" + outTradeNo + "\"," +//商户订单号
+                "    \"total_amount\":\"" + 1 + "\"," +
+                "    \"subject\":\"" + subject + "\"," +
+                "    \"notify_url\":\"" + notifyUrl + "\"," +
+                "    \"body\":\"" + body + "\"," +
+                "    \"store_id\":\"NJ_001\"," +
+                "    \"timeout_express\":\"90m\"}");//订单允许的最晚付款时间
+        AlipayTradePrecreateResponse response = null;
+        try {
+            response = alipayClient.execute(request);
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        JSONObject alipay_trade_precreate_response = JSON.parseObject(response.getBody()).getJSONObject("alipay_trade_precreate_response");
+
+        System.err.print(alipay_trade_precreate_response.getString("qr_code"));
+        return ResultUtil.success(alipay_trade_precreate_response.getString("qr_code"));
+    }
+
+
+    /**
+     * 支付成功后的回调处理逻辑
+     * @param request
+     */
+    public Map<String, String> alipayCallback(HttpServletRequest request){
+        //获取支付宝POST过来反馈信息
+        Map<String,String> params = new HashMap<String,String>();
+        Map requestParams = request.getParameterMap();
+        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
+            String name = (String) iter.next();
+            String[] values = (String[]) requestParams.get(name);
+            String valueStr = "";
+            for (int i = 0; i < values.length; i++) {
+                valueStr = (i == values.length - 1) ? valueStr + values[i]
+                        : valueStr + values[i] + ",";
+            }
+            //乱码解决,这段代码在出现乱码时使用。
+            //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
+            params.put(name, valueStr);
+        }
+
+        Map<String, String> map = new HashMap<>();
+        String out_trade_no = params.get("out_trade_no");
+        String subject = params.get("subject");
+        String total_amount = params.get("total_amount");
+        String trade_no = params.get("trade_no");
+        map.put("out_trade_no", out_trade_no);//商家订单号
+        map.put("subject", subject);
+        map.put("total_amount", total_amount);
+        map.put("trade_no", trade_no);//支付宝交易号
+        return map;
+
+
+
+        //切记alipaypublickey是支付宝的公钥,请去open.alipay.com对应应用下查看。
+        //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)
+//        try {
+//            boolean flag = AlipaySignature.rsaCheckV1(params, alipayPublicKey, "UTF-8","RSA2");
+//            if(flag){
+//                Map<String, String> map = new HashMap<>();
+//                String out_trade_no = params.get("out_trade_no");
+//                String subject = params.get("subject");
+//                String total_amount = params.get("total_amount");
+//                String trade_no = params.get("trade_no");
+//                map.put("out_trade_no", out_trade_no);//商家订单号
+//                map.put("subject", subject);
+//                map.put("total_amount", total_amount);
+//                map.put("trade_no", trade_no);//支付宝交易号
+//                return map;
+//            }
+//
+//        } catch (AlipayApiException e) {
+//            e.printStackTrace();
+//        }
+//        return null;
+    }
+
+
+    /**
+     * 支付宝查询订单支付状态
+     * @param out_trade_no
+     * @return
+     * @throws Exception
+     */
+    public ResultUtil queryALIOrder(String out_trade_no) throws Exception{
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8", alipay_public_key,"RSA2");
+        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
+        request.setBizContent("{" +
+                "\"out_trade_no\":" + out_trade_no +
+                "  }");
+        AlipayTradeQueryResponse response = alipayClient.execute(request);
+        if(response.isSuccess()){
+            String tradeStatus = response.getTradeStatus();//交易状态:WAIT_BUYER_PAY(交易创建,等待买家付款)、TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、TRADE_SUCCESS(交易支付成功)、TRADE_FINISHED(交易结束,不可退款)
+            return ResultUtil.success(tradeStatus);
+        } else {
+            return ResultUtil.error(response.getMsg());
+        }
+    }
+
+
+
+    /**
+     * 微信统一下单
+     * @param body          商品描述
+     * @param attach        附加数据
+     * @param out_trade_no  商户订单号
+     * @param total_fee     标价金额
+     * @param notify_url    通知地址
+     * @param tradeType     交易类型
+     * @return
+     */
+    public ResultUtil weixinpay(String body, String attach, String out_trade_no, String total_fee, String notify_url, String tradeType, String openid) throws Exception{
+        int i = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
+        String hostAddress = null;
+        try {
+            hostAddress = InetAddress.getLocalHost().getHostAddress();
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
+        String nonce_str = UUIDUtil.getRandomCode(16);
+        Map<String, Object> map = new HashMap<>();
+        map.put("appid", "JSAPI".equals(tradeType) ? appletsAppid : appid);
+        map.put("mch_id", mchId);
+        map.put("nonce_str", nonce_str);
+        map.put("body", body);
+        map.put("attach", attach);//存储订单id
+        map.put("out_trade_no", out_trade_no);//存储的订单code
+        map.put("total_fee", i);
+        map.put("spbill_create_ip", hostAddress);
+        map.put("notify_url", notify_url);
+        map.put("trade_type", tradeType);
+        map.put("openid", openid);
+        String s = this.weixinSignature(map);
+        map.put("sign", s);
+
+        String url = "https://api.mch.weixin.qq.com/pay/unifiedorder";
+        //设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_XML);
+        StringBuffer xmlString = new StringBuffer();
+        Set<String> strings = map.keySet();
+        String[] keys = {};
+        keys = strings.toArray(keys);
+        Arrays.sort(keys);
+        xmlString.append("<xml>");
+        for(int l = 0; l < keys.length; l++){
+            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
+        }
+        xmlString.append("</xml>");
+
+        Map<String, String> map1 = null;
+        String body1 = httpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData();
+        //将结果xml解析成map
+        body1 = body1.replaceAll("<!\\[CDATA\\[","");
+        body1 = body1.replaceAll("]]>", "");
+        try {
+            map1 = this.xmlToMap(body1, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        String return_code = map1.get("return_code");
+        if("SUCCESS".equals(return_code)){
+            String result_code = map1.get("result_code");
+            if("SUCCESS".equals(result_code)){
+                String type = map1.get("trade_type");
+                String prepay_id = map1.get("prepay_id");
+                switch (type){
+                    case "JSAPI":
+                        Map<String, Object> map2 = new HashMap<>();
+                        map2.put("appId", map1.get("appid"));
+                        map2.put("nonceStr", map1.get("nonce_str"));
+                        map2.put("package", "prepay_id=" + prepay_id);
+                        map2.put("signType", "MD5");
+                        map2.put("timeStamp", new Date().getTime() + "");
+                        String s2 = this.weixinSignature(map2);
+
+                        map2.put("prepay_id", prepay_id);
+                        map2.put("mch_id", map1.get("mch_id"));
+                        map2.put("trade_type", map1.get("trade_type"));
+
+                        map2.put("sign", s2);
+                        return ResultUtil.success(map2);
+                    case "NATIVE":
+                        Map<String, Object> map4 = new HashMap<>();
+                        String code_url = map1.get("code_url");
+                        map4.put("code_url", code_url);
+                        return ResultUtil.success(map4);
+                    case "APP":
+                        //重新进行签名后返回给前端
+                        Map<String, Object> map3 = new HashMap<>();
+                        map3.put("appid", appid);
+                        map3.put("noncestr", nonce_str);
+                        map3.put("package", "Sign=WXPay");
+                        map3.put("partnerid", mchId);
+                        map3.put("prepayid", prepay_id);
+                        map3.put("timestamp", new Date().getTime() / 1000);
+                        String s3 = this.weixinSignature(map3);
+                        map3.put("sign", s3);
+                        System.err.println(map3);
+                        return ResultUtil.success(map3);
+                }
+                return null;
+            }else{
+                System.err.println(map1.get("err_code_des"));
+                return ResultUtil.error(map1.get("err_code_des"));
+            }
+        }else{
+            System.err.println(map1.get("return_msg") + appid + "----" + mchId);
+            return ResultUtil.error(map1.get("return_msg"), new JSONObject());
+        }
+    }
+
+
+
+
+
+    /**
+     * 微信支付成功后的回调处理
+     * @param request
+     */
+    public Map<String, String> weixinpayCallback(HttpServletRequest request){
+        try {
+            String param = this.getParam(request);
+            param = param.replaceAll("<!\\[CDATA\\[","");
+            param = param.replaceAll("]]>", "");
+            Map<String, String> map = this.xmlToMap(param, "UTF-8");
+            String return_code = map.get("return_code");
+            if("SUCCESS".equals(return_code)){
+                String result_code = map.get("result_code");
+                if("SUCCESS".equals(result_code)){
+                    Map<String, String> map1 = new HashedMap();
+                    map1.put("nonce_str", map.get("nonce_str"));
+                    map1.put("out_trade_no", map.get("out_trade_no"));//存储的订单code
+                    map1.put("attach", map.get("attach"));//存储订单id
+                    map1.put("total_fee", map.get("total_fee"));
+                    map1.put("transaction_id", map.get("transaction_id"));//微信支付订单号
+                    String result = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
+                    map1.put("result", result);
+                    return map1;
+                }else{
+                    System.err.println(map.get("err_code_des"));
+                }
+            }else{
+                System.err.println(map.get("return_msg"));
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    /**
+     * 微信扫码收款
+     * @param body              商品描述
+     * @param attach            附加数据
+     * @param nonce_str         随机字符串
+     * @param out_trade_no      商户订单号
+     * @param total_fee         订单金额
+     * @param auth_code         授权码	扫码支付授权码,设备读取用户微信中的条码或者二维码信息(注:用户付款码条形码规则:18位纯数字,以10、11、12、13、14、15开头)
+     * @return
+     */
+    public ResultUtil wxScanQRCodePay(String body, String attach, String nonce_str, String out_trade_no, String total_fee, String auth_code){
+        int i = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
+        String hostAddress = null;
+        try {
+            InetAddress address = InetAddress.getLocalHost();
+            hostAddress = address.getHostAddress();
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
+        String randomCode = null;
+        try {
+            randomCode = UUIDUtil.getRandomCode(10);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("appid", appid);
+        map.put("mch_id", mchId);
+        map.put("nonce_str", nonce_str);//存储的支付人员id,员工扫描二维码支付的时候存储的是收款员工id
+        map.put("body", body);
+        map.put("attach", attach);//存储的费用月份数据,员工扫描二维码支付的时候存储的是收费项id
+        map.put("out_trade_no", randomCode + "_" + out_trade_no);//存储的房间id
+        map.put("total_fee", i);
+        map.put("spbill_create_ip", hostAddress);
+        map.put("auth_code", auth_code);
+        String s = this.weixinSignature(map);
+        map.put("sign", s);
+
+        String url = "https://api.mch.weixin.qq.com/pay/unifiedorder";
+        //设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_XML);
+        StringBuffer xmlString = new StringBuffer();
+        Set<String> strings = map.keySet();
+        String[] keys = {};
+        keys = strings.toArray(keys);
+        Arrays.sort(keys);
+        xmlString.append("<xml>");
+        for(int l = 0; l < keys.length; l++){
+            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
+        }
+        xmlString.append("</xml>");
+
+        Map<String, String> map1 = null;
+        String body1 = null;
+        try {
+            body1 = httpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        //将结果xml解析成map
+        body1 = body1.replaceAll("<!\\[CDATA\\[","");
+        body1 = body1.replaceAll("]]>", "");
+        try {
+            map1 = this.xmlToMap(body1, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        String return_code = map1.get("return_code");
+        if("SUCCESS".equals(return_code)){
+            String result_code = map1.get("result_code");
+            if("SUCCESS".equals(result_code)){
+                String type = map1.get("trade_type");
+                switch (type){
+                    case "JSAPI":
+                        break;
+                    case "NATIVE":
+                        String code_url = map1.get("code_url");
+                        return ResultUtil.success(code_url);
+                    case "APP":
+                        String prepay_id = map1.get("prepay_id");
+                        //重新进行签名后返回给前端
+                        Map<String, Object> map2 = new HashMap<>();
+                        map2.put("appid", appid);
+                        map2.put("noncestr", nonce_str);
+                        map2.put("package", "Sign=WXPay");
+                        map2.put("partnerid", mchId);
+                        map2.put("prepayid", prepay_id);
+                        map2.put("timestamp", new Date().getTime() + "");
+                        String s1 = this.weixinSignature(map2);
+
+                        map2.put("pac", "Sign=WXPay");
+                        map2.put("sign", s1);
+//                      System.err.println(map2);
+                        return ResultUtil.success(map2);
+                }
+                return null;
+            }else{
+//                System.err.println(map1.get("err_code_des"));
+                return ResultUtil.error(map1.get("err_code_des"));
+            }
+        }else{
+//            System.err.println(map1.get("return_msg") + appid + "----" + mchId);
+            return ResultUtil.error(map1.get("return_msg"), new JSONObject());
+        }
+    }
+
+
+    /**
+     * 支付宝扫码收款
+     * @param data
+     * @return
+     */
+    public Object aliScanQRCodePay(String data){
+        return null;
+    }
+
+
+    /**
+     * 微信退款申请
+     * @param transaction_id    微信订单号。微信生成的订单号,在支付通知中有返回
+     * @param out_refund_no     商户退款单号。商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。
+     * @param total_fee         订单金额。订单总金额,单位为分,只能为整数
+     * @param refund_fee        退款金额。退款总金额,订单总金额,单位为分,只能为整数
+     * @param notify_url        退款结果通知url。异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数 如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效。
+     * @return
+     */
+    public Map<String, String> wxRefund(String transaction_id, String out_refund_no, String total_fee, String refund_fee, String notify_url){
+        int tf = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
+        int rf = new BigDecimal(refund_fee).multiply(new BigDecimal("100")).intValue();
+        String nonce_str = UUIDUtil.getRandomCode();
+        Map<String, Object> map = new HashMap<>();
+        map.put("appid", appletsAppid);
+        map.put("mch_id", mchId);
+        map.put("nonce_str", nonce_str);
+        map.put("transaction_id", transaction_id);
+        map.put("out_refund_no", out_refund_no);
+        map.put("total_fee", tf);
+        map.put("refund_fee", rf);
+        map.put("notify_url", notify_url);
+        String s = this.weixinSignature(map);
+        map.put("sign", s);
+
+        String url = "https://api.mch.weixin.qq.com/secapi/pay/refund";
+        //设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_XML);
+        StringBuffer xmlString = new StringBuffer();
+        Set<String> strings = map.keySet();
+        String[] keys = {};
+        keys = strings.toArray(keys);
+        Arrays.sort(keys);
+        xmlString.append("<xml>");
+        for(int l = 0; l < keys.length; l++){
+            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
+        }
+        xmlString.append("</xml>");
+
+        Map<String, String> map1 = null;
+        String body1 = null;
+        try {
+            body1 = httpClientUtil.pushHttpsRequsetXml(url, xmlString.toString(), new HashMap<>(), mchId, certPath, "PKCS12");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println(body1);
+        //将结果xml解析成map
+        body1 = body1.replaceAll("<!\\[CDATA\\[","");
+        body1 = body1.replaceAll("]]>", "");
+        try {
+            map1 = this.xmlToMap(body1, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        String return_code = map1.get("return_code");
+        Map<String, String> map2 = new HashMap<>();
+        if("SUCCESS".equals(return_code)){
+            String result_code = map1.get("result_code");
+            if("SUCCESS".equals(result_code)){
+                map2.put("return_code", result_code);
+                map2.put("refund_id", String.valueOf(map1.get("refund_id")));//微信退款订单号
+                map2.put("refund_fee", String.valueOf(map1.get("refund_fee")));//退款金额
+                return map2;
+            }else{
+                map2.put("return_code", result_code);
+                map2.put("return_msg", map1.get("err_code_des"));
+                return map2;
+            }
+        }else{
+            map2.put("return_code", return_code);
+            map2.put("return_msg", map1.get("return_msg"));
+            return map2;
+        }
+    }
+
+
+    /**
+     * 微信退款成功后的回调处理
+     * @param request
+     * @return
+     */
+    public Map<String, String> wxRefundCallback(HttpServletRequest request){
+        try {
+            String param = this.getParam(request);
+            param = param.replaceAll("<!\\[CDATA\\[","");
+            param = param.replaceAll("]]>", "");
+            Map<String, String> map = this.xmlToMap(param, "UTF-8");
+            String return_code = map.get("return_code");
+            if("SUCCESS".equals(return_code)){
+                String req_info = map.get("req_info");//加密信息请用商户秘钥进行解密
+                String s = this.wxDecrypt(req_info);
+                s = s.replaceAll("<!\\[CDATA\\[","");
+                s = s.replaceAll("]]>", "");
+                map = this.xmlToMap(s, "UTF-8");
+                Map<String, String> map1 = new HashMap<>();
+                map1.put("refund_id", map.get("refund_id"));
+                map1.put("out_refund_no", map.get("out_refund_no"));
+                String result = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
+                map1.put("result", result);
+                return map1;
+            }else{
+                System.err.println(map.get("return_msg"));
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (InvalidKeyException e) {
+            e.printStackTrace();
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+        } catch (BadPaddingException e) {
+            e.printStackTrace();
+        } catch (NoSuchProviderException e) {
+            e.printStackTrace();
+        } catch (IllegalBlockSizeException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    /**
+     * 支付宝退款
+     * @param trade_no          支付宝交易号
+     * @param refund_amount     退款金额
+     * @return
+     * @throws AlipayApiException
+     */
+    public Map<String, String> aliRefund(String trade_no, String refund_amount) throws AlipayApiException {
+        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey,"json","UTF-8", alipay_public_key,"RSA2");
+        AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("trade_no", trade_no);
+        jsonObject.put("refund_amount", refund_amount);
+        request.setBizContent(jsonObject.toJSONString());
+        AlipayTradeRefundResponse response = alipayClient.execute(request);
+        Map<String, String> map = new HashMap<>();
+        if(response.isSuccess()){
+            System.out.println("调用成功");
+            String outTradeNo = response.getOutTradeNo();
+            map.put("code", response.getCode());//10000
+            map.put("trade_no", response.getTradeNo());//支付宝交易号
+            map.put("out_trade_no", outTradeNo);//商户订单号
+        } else {
+            System.out.println("调用失败");
+            map.put("code", response.getCode());
+            map.put("msg", response.getSubMsg());
+        }
+        return map;
+    }
+
+
+    /**
+     * 查询微信支付订单
+     * @return
+     * @throws Exception
+     */
+    public ResultUtil queryWXOrder() throws Exception{
+        String url = "https://api.mch.weixin.qq.com/pay/orderquery";
+        String nonce_str = UUIDUtil.getRandomCode(16);
+        Map<String, Object> map = new HashMap<>();
+        map.put("appid", appid);
+        map.put("mch_id", mchId);
+        map.put("transaction_id", nonce_str);//微信订单号
+        map.put("nonce_str", nonce_str);//随机字符串
+        String s = this.weixinSignature(map);
+        map.put("sign", s);
+
+        //设置请求头
+        HttpHeaders headers = new HttpHeaders();
+        headers.setContentType(MediaType.APPLICATION_XML);
+        StringBuffer xmlString = new StringBuffer();
+        Set<String> strings = map.keySet();
+        String[] keys = {};
+        keys = strings.toArray(keys);
+        Arrays.sort(keys);
+        xmlString.append("<xml>");
+        for(int l = 0; l < keys.length; l++){
+            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
+        }
+        xmlString.append("</xml>");
+
+        Map<String, String> map1 = null;
+        String body1 = httpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData();
+        //将结果xml解析成map
+        body1 = body1.replaceAll("<!\\[CDATA\\[","");
+        body1 = body1.replaceAll("]]>", "");
+        try {
+            map1 = this.xmlToMap(body1, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        } catch (DocumentException e) {
+            e.printStackTrace();
+        }
+        String return_code = map1.get("return_code");
+        if("SUCCESS".equals(return_code)){
+            String result_code = map1.get("result_code");
+            if("SUCCESS".equals(result_code)){
+                String type = map1.get("trade_type");
+                switch (type){
+                    case "JSAPI":
+                        break;
+                    case "NATIVE":
+                        String code_url = map1.get("code_url");
+                        return ResultUtil.success(code_url);
+                    case "APP":
+                        String trade_state = map1.get("trade_state");
+                        String time_end = map1.get("time_end");
+                        Map<String, Object> map2 = new HashMap<>();
+                        map2.put("trade_state", trade_state);//订单状态SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败)
+                        map2.put("time_end", time_end);//订单支付时间,格式为yyyyMMddHHmmss,如2009年12月25日9点10分10秒表示为20091225091010。
+                        return ResultUtil.success(map2);
+                }
+                return null;
+            }else{
+                System.err.println(map1.get("err_code_des"));
+                return ResultUtil.error(map1.get("err_code_des"));
+            }
+        }else{
+            System.err.println(map1.get("return_msg") + appid + "----" + mchId);
+            return ResultUtil.error(map1.get("return_msg"), new JSONObject());
+        }
+    }
+
+
+
+    /**
+     * 获取请求内容
+     * @param request
+     * @return
+     * @throws IOException
+     */
+    private String getParam(HttpServletRequest request) throws IOException {
+        // 读取参数
+        InputStream inputStream;
+        StringBuilder sb = new StringBuilder();
+        inputStream = request.getInputStream();
+        String s;
+        BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+        while ((s = in.readLine()) != null) {
+            sb.append(s);
+        }
+        in.close();
+        inputStream.close();
+        return sb.toString();
+    }
+
+
+    /**
+     * 微信下单的签名算法
+     * @param map
+     * @return
+     */
+    private String weixinSignature(Map<String, Object> map){
+        try {
+            Set<Map.Entry<String, Object>> entries = map.entrySet();
+            List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries);
+            // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)
+            Collections.sort(infoIds, new Comparator<Map.Entry<String, Object>>() {
+                public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {
+                    return (o1.getKey()).toString().compareTo(o2.getKey());
+                }
+            });
+            // 构造签名键值对的格式
+            StringBuilder sb = new StringBuilder();
+            for (Map.Entry<String, Object> item : infoIds) {
+                if (item.getKey() != null || item.getKey() != "") {
+                    String key = item.getKey();
+                    Object val = item.getValue();
+                    if (!(val == "" || val == null)) {
+                        sb.append(key + "=" + val + "&");
+                    }
+                }
+            }
+            sb.append("key=" + key);
+            String sign = MD5AndKL.MD5Encode(sb.toString(), "UTF-8").toUpperCase(); //注:MD5签名方式
+            return sign;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+
+    /**
+     * 微信退款成功后的解密
+     * @param req_info
+     * @return
+     */
+    private String wxDecrypt(String req_info) throws NoSuchPaddingException, NoSuchAlgorithmException, NoSuchProviderException,
+            InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
+        byte[] decode = Base64.getDecoder().decode(req_info);
+        String sign = MD5AndKL.MD5Encode(key, "UTF-8").toLowerCase();
+        if (Security.getProvider("BC") == null){
+            Security.addProvider(new BouncyCastleProvider());
+        }
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");
+        SecretKeySpec secretKeySpec = new SecretKeySpec(sign.getBytes(), "AES");
+        cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
+        return new String(cipher.doFinal(decode));
+    }
+
+
+    public static void main(String[] ages){
+//        PayMoneyUtil payMoneyUtil = new PayMoneyUtil();
+//        payMoneyUtil.weixinpay("测试", "123", "12.5", "");
+    }
+
+
+    /**
+     * xml转map
+     * @param xml
+     * @param charset
+     * @return
+     * @throws UnsupportedEncodingException
+     * @throws DocumentException
+     */
+    public static Map<String, String> xmlToMap(String xml, String charset) throws UnsupportedEncodingException, DocumentException {
+
+        Map<String, String> respMap = new HashMap<String, String>();
+
+        SAXReader reader = new SAXReader();
+        Document doc = reader.read(new ByteArrayInputStream(xml.getBytes(charset)));
+        Element root = doc.getRootElement();
+        xmlToMap(root, respMap);
+        return respMap;
+    }
+
+    public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap){
+        if (tmpElement.isTextOnly()) {
+            respMap.put(tmpElement.getName(), tmpElement.getText());
+            return respMap;
+        }
+
+        @SuppressWarnings("unchecked")
+        Iterator<Element> eItor = tmpElement.elementIterator();
+        while (eItor.hasNext()) {
+            Element element = eItor.next();
+            xmlToMap(element, respMap);
+        }
+        return respMap;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
new file mode 100644
index 0000000..5c0c7f9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushMinistryOfTransportUtil.java
@@ -0,0 +1,464 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.stylefeng.guns.core.common.constant.state.Order;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.CarMapper;
+import com.stylefeng.guns.modular.system.dao.ServerCarModelMapper;
+import com.stylefeng.guns.modular.system.dao.SystemPriceMapper;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.httpClinet.HttpClientUtil;
+import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+
+/**
+ * 上传交通部
+ */
+@Component
+public class PushMinistryOfTransportUtil {
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private HttpClientUtil httpClientUtil;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Resource
+    private SystemPriceMapper systemPriceMapper;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Resource
+    private CarMapper carMapper;
+
+    @Resource
+    private ServerCarModelMapper serverCarModelMapper;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private IOrderPositionService orderPositionService;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private IOrderEvaluateService orderEvaluateService;
+
+    private String path = "http://120.77.11.218:8868/";
+
+
+    /**
+     * 乘客基本信息
+     * @param uid
+     */
+    public void baseInfoPassenger(Integer uid){
+        UserInfo userInfo = userInfoService.selectById(uid);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("RegisterDate", userInfo.getInsertTime());//注册日期YYYYMMDD
+        jsonObject.put("PassengerPhone", userInfo.getPhone());//乘客手机号
+        jsonObject.put("PassengerName", userInfo.getNickName());//乘客称谓
+        jsonObject.put("PassengerGender", userInfo.getSex() == 1 ? "男" : "女");//乘客性别
+        jsonObject.put("State", 0);//状态(0:有效,1:失效)
+        jsonObject.put("Flag", 1);//操作标识(1:新增,2:更新,3:删除)
+        jsonObject.put("UpdateTime", new Date());
+        Map<String, Object> map = new HashMap<>();
+        map.put("baseInfoPassenger", jsonObject.toJSONString());
+
+        Map<String, String> header = new HashMap<>();
+        header.put("Connection", "keep-alive");
+        header.put("Content-Type", "application/x-www-form-urlencoded");
+        header.put("Accept", "*/*");
+        header.put("Accept-Encoding", "gzip");
+        header.put("Accept-Charset", "utf-8");
+        String result = null;
+        try {
+            result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/baseInfoPassenger", map, header,"form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println("---------------------------乘客基本信息--------------------------:" + result);
+    }
+
+
+    /**
+     * 订单撤销接口
+     * @param orderId
+     */
+    public void orderCancel(Integer orderId){
+        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        OrderCancel query = null;
+        try {
+            query = orderCancelService.query(orderId, 1, null, null, 2);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        Map<String, String> geocode = null;
+        try {
+            geocode = gdMapGeocodingUtil.geocode(orderPrivateCar.getBoardingLon().toString(),
+                    orderPrivateCar.getBoardingLat().toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("Address", Integer.valueOf(geocode.get("districtCode")));//上车地点行政区划代码
+        jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单编号
+        jsonObject.put("OrderTime", orderPrivateCar.getOrderNum());//订单时间YYYYMMDDhhmmss
+        jsonObject.put("CancelTime", query.getInsertTime());//订单撤销时间YYYYMMDDhhmmss
+        jsonObject.put("Operator", "1");//撤销发起方(1:乘客,2:驾驶员,3:平台公司)
+        jsonObject.put("CancelTypeCode", driver.getDriveCard());//机动车驾驶证编号
+        jsonObject.put("CancelReason", query.getReason());//撤销或违约原因
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderCancel", jsonObject.toJSONString());
+
+        Map<String, String> header = new HashMap<>();
+        header.put("Connection", "keep-alive");
+        header.put("Content-Type", "application/x-www-form-urlencoded");
+        header.put("Accept", "*/*");
+        header.put("Accept-Encoding", "gzip");
+        header.put("Accept-Charset", "utf-8");
+        String result = null;
+        try {
+            result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/orderCancel", map, header,"form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println("----------------------------订单撤销接口------------------:" + result);
+    }
+
+
+    /**
+     * 经营支付接口
+     * @param orderId
+     */
+    public void operatePay(Integer orderId){
+        OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+        Driver driver = driverService.selectById(orderPrivateCar.getDriverId());
+        Map<String, Object> query = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId());
+        Car car = carMapper.selectById(orderPrivateCar.getCarId());
+        ServerCarModel serverCarModel = serverCarModelMapper.selectById(orderPrivateCar.getServerCarModelId());
+//        TransactionDetails transactionDetails = transactionDetailsService.selectById(new EntityWrapper<TransactionDetails>().eq("orderId", orderId).eq("orderType", 1));
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("OrderId", orderPrivateCar.getOrderNum());//订单号
+        jsonObject.put("OnArea", 450204);//上车位置行政区划代码
+        jsonObject.put("DriverName", driver.getName());//机动车驾驶员
+        jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证号
+        jsonObject.put("FareType", query.get("id").toString());//运价类型编码(由网约车公司定义,与运价信息接口保持一街)
+        jsonObject.put("VehicleNo", car.getCarLicensePlate());//车辆号牌
+        jsonObject.put("BookDepTime", orderPrivateCar.getTravelTime());//预计上车时间YYYYMMDDhhmmss
+        jsonObject.put("WaitTime", orderPrivateCar.getWait() * 60);//等待时间(秒)
+        jsonObject.put("DepLongitude", orderPrivateCar.getBoardingLon());//车辆出发经度
+        jsonObject.put("DepLatitude", orderPrivateCar.getBoardingLat());//车辆出发纬度
+        jsonObject.put("DepArea", orderPrivateCar.getBoardingAddress());//上车点
+        jsonObject.put("DepTime", orderPrivateCar.getBoardingTime());//上车时间YYYYMMDDhhmmss
+        jsonObject.put("DestLongitude", orderPrivateCar.getGetoffLon());//车辆到达经度
+        jsonObject.put("DestLatitude", orderPrivateCar.getGetoffLat());//车辆到达纬度
+        jsonObject.put("DestArea", orderPrivateCar.getGetoffAddress());//下车地点
+        jsonObject.put("DestTime", orderPrivateCar.getGetoffTime());//下车时间YYYYMMDDhhmmss
+        jsonObject.put("BookModel", serverCarModel.getName());//预定车型
+        jsonObject.put("Model", serverCarModel.getName());//实际使用车型
+        jsonObject.put("DriveMile", Double.valueOf(orderPrivateCar.getMileage() / 1000).intValue());//载客里程(km)
+        jsonObject.put("DriveTime", Double.valueOf((orderPrivateCar.getGetoffTime().getTime() - orderPrivateCar.getBoardingTime().getTime()) / 1000).intValue());//载客时间(秒)
+        List<OrderPosition> orderPositions = null;
+        try {
+            orderPositions = orderPositionService.queryPosition(orderId, 1);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        int distance = 0;
+        if(orderPositions.size() > 0){
+            OrderPosition orderPosition = orderPositions.get(0);
+            Map<String, String> distance1 = gdMapElectricFenceUtil.getDistance(orderPosition.getLon() + "," + orderPosition.getLat(), orderPrivateCar.getBoardingLon() + "," + orderPrivateCar.getBoardingLat(), 1);
+            distance = Integer.valueOf(distance1.get("distance")) / 1000;
+        }
+        jsonObject.put("WaitMile", distance);//空驶里程(km)
+        jsonObject.put("FactPrice", orderPrivateCar.getPayMoney());//实收金额(元)
+        jsonObject.put("Price", orderPrivateCar.getOrderMoney());//应收金额(元)
+        jsonObject.put("CashPrice", orderPrivateCar.getPayType() == 3 ? orderPrivateCar.getPayMoney() : 0);//现金支付金额(元)
+        jsonObject.put("LineName", orderPrivateCar.getPayType() != 3 ? "" : "");//电子支付机构
+        jsonObject.put("LinePrice", orderPrivateCar.getPayType() != 3 ? orderPrivateCar.getPayMoney() : 0);//电子支付金额(元)
+        jsonObject.put("PosName", "");//POS机支付机构
+        jsonObject.put("PosPrice", 0);//POS机支付金额(元)
+        jsonObject.put("BenfitPrice", (orderPrivateCar.getRedPacketMoney() == null ? 0 : orderPrivateCar.getRedPacketMoney())
+                + (orderPrivateCar.getCouponMoney() == null ? 0 : orderPrivateCar.getCouponMoney())
+                + (orderPrivateCar.getDurationMoney() == null ? 0 : orderPrivateCar.getDurationMoney()));//优惠金额(元)
+        jsonObject.put("BookTip", 0);//预约服务费(元)
+        jsonObject.put("PassengerTip", (orderPrivateCar.getParkMoney() == null ? 0 : orderPrivateCar.getParkMoney())
+                + (orderPrivateCar.getRoadTollMoney() == null ? 0 : orderPrivateCar.getRoadTollMoney()));//附加费(元)
+        Map<String, Double> map1 = this.setMoney(orderPrivateCar);
+        Double amount3 = map1.get("amount3");//其他时间段
+        Double amount2 = map1.get("amount2");//高峰时段
+        Double amount1 = map1.get("amount1");//夜间时段
+        jsonObject.put("PeakUpPrice", null != amount2 ? (amount2 - amount3) : 0);//高峰时段时间加价金额(元)
+        jsonObject.put("NightUpPrice", null != amount1 ? (amount1 - amount3) : 0);//夜间时段里程加价金额(元)
+        jsonObject.put("FarUpPrice", orderPrivateCar.getLongDistanceMoney() == null ? 0 : orderPrivateCar.getLongDistanceMoney());//远途加价金额(元)
+        jsonObject.put("OtherUpPrice", (orderPrivateCar.getDurationMoney() == null ? 0 : orderPrivateCar.getDurationMoney())
+                + (orderPrivateCar.getWaitMoney() == null ? 0 : orderPrivateCar.getWaitMoney()));//其他加价金额(元)
+        jsonObject.put("PayState", 1);//结算状态(0:未结算,1:已结算,2:未知)
+        jsonObject.put("PayTime", new Date());//乘客结算时间YYYYMMDDhhmmss
+        jsonObject.put("OrderMatchTime", new Date());//订单完成时间YYYYMMDDhhmmss
+        jsonObject.put("InvoiceStatus", "0");//发票状态(0:未开票,1:已开票,2:未知)
+        Map<String, Object> map = new HashMap<>();
+        map.put("operatePay", jsonObject.toJSONString());
+
+        Map<String, String> header = new HashMap<>();
+        header.put("Connection", "keep-alive");
+        header.put("Content-Type", "application/x-www-form-urlencoded");
+        header.put("Accept", "*/*");
+        header.put("Accept-Encoding", "gzip");
+        header.put("Accept-Charset", "utf-8");
+        String result = null;
+        try {
+            result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/operatePay", map, header,"form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println("------------------------经营支付接口----------------------:" + result);
+    }
+
+
+    /**
+     * 乘客评价信息
+     * @param id
+     */
+    public void ratedPassenger(Integer id){
+        OrderEvaluate orderEvaluate = orderEvaluateService.selectById(id);
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("OrderId", orderEvaluate.getOrderId());//订单号
+        jsonObject.put("EvaluateTime", new Date());//评价时间YYYYMMDDhhmms
+        jsonObject.put("ServiceScore", orderEvaluate.getFraction());//服务满意度(五分制)
+        jsonObject.put("DriverScore", orderEvaluate.getFraction());//驾驶员满意度(五分制)
+        jsonObject.put("VehicleScore", orderEvaluate.getFraction());//车辆满意度(五分制)
+        jsonObject.put("Detail", orderEvaluate.getContent());//评价内容
+        Map<String, Object> map = new HashMap<>();
+        map.put("ratedPassenger", jsonObject.toJSONString());
+
+        Map<String, String> header = new HashMap<>();
+        header.put("Connection", "keep-alive");
+        header.put("Content-Type", "application/x-www-form-urlencoded");
+        header.put("Accept", "*/*");
+        header.put("Accept-Encoding", "gzip");
+        header.put("Accept-Charset", "utf-8");
+        String result = null;
+        try {
+            result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/ratedPassenger", map, header,"form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println("-----------------------------乘客评价信息----------------------:" + result);
+    }
+
+
+
+    /**
+     * 驾驶员信誉信息
+     * @param driverId
+     */
+    public void ratedDriver(Integer driverId){
+        Driver driver = driverService.selectById(driverId);
+        List<OrderEvaluate> driverId1 = orderEvaluateService.selectList(new EntityWrapper<OrderEvaluate>().eq("driverId", driverId));
+        Integer level = 0;
+        for(OrderEvaluate orderEvaluate : driverId1){
+            level += orderEvaluate.getFraction().intValue();
+        }
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("LicenseId", driver.getDriveCard());//机动车驾驶证编号
+        jsonObject.put("Level", driverId1.size() == 0 ? 0 : level / driverId1.size());//服务质量信誉等级(五分制)
+        jsonObject.put("TestDate", new Date());//服务质量信誉考核日期YYYYMMDD
+        jsonObject.put("TestDepartment", "广西云森科技有限公司");//服务质量信誉考核机构
+        Map<String, Object> map = new HashMap<>();
+        map.put("ratedDriver", jsonObject.toJSONString());
+
+        Map<String, String> header = new HashMap<>();
+        header.put("Connection", "keep-alive");
+        header.put("Content-Type", "application/x-www-form-urlencoded");
+        header.put("Accept", "*/*");
+        header.put("Accept-Encoding", "gzip");
+        header.put("Accept-Charset", "utf-8");
+        String result = null;
+        try {
+            result = httpClientUtil.pushHttpRequset("POST", path + "ministryOfTransport/ratedDriver", map, header,"form").getData();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        System.err.println("---------------------------驾驶员信誉信息-----------------------:" + result);
+    }
+
+
+
+
+    /**
+     * 计算价格
+     * @param orderPrivateCar
+     * @return
+     * @throws Exception
+     */
+    private Map<String, Double> setMoney(OrderPrivateCar orderPrivateCar) {
+        Map<String, Object> query1 = systemPriceMapper.query(orderPrivateCar.getCompanyId(), 1, orderPrivateCar.getServerCarModelId());
+        Map<String, Double> map = new HashMap<>();
+        //开始根据不同的方式计算金额
+        double amount1 = 0;
+        double amount2 = 0;
+        double amount3 = 0;
+        JSONObject jsonObject = JSON.parseObject(query1.get("content").toString());
+        Double num1 = jsonObject.getDouble("num1");//起步价(元)
+        Double num2 = jsonObject.getDouble("num2");//起步公里(公里)
+        Double num3 = jsonObject.getDouble("num3");//起步时间(分钟)
+        Double num4 = jsonObject.getDouble("num4");//里程费(元)
+        Double num5 = jsonObject.getDouble("num5");//时长费(分钟)
+        Double num6 = jsonObject.getDouble("num6");//等待费(分钟)
+        Double num7 = jsonObject.getDouble("num7");//等待费(元)
+        Double num8 = jsonObject.getDouble("num8");//远途费(公里)
+        Double num9 = jsonObject.getDouble("num9");//远途费(公里)
+        Double num10 = jsonObject.getDouble("num10");//远途费(元)
+        Double num11 = jsonObject.getDouble("num11");//远途费(公里)
+        Double num12 = jsonObject.getDouble("num12");//远途费(公里)
+        Double num13 = jsonObject.getDouble("num13");//远途费(元)
+        Double num14 = jsonObject.getDouble("num14");//远途费(公里)
+        Double num15 = jsonObject.getDouble("num15");//远途费(元)
+        String num16 = jsonObject.getString("num16");//夜间费(开始时间)
+        Double num17 = jsonObject.getDouble("num17");//夜间费(元)
+        Double num18 = jsonObject.getDouble("num18");//夜间费(元)
+        Double num19 = jsonObject.getDouble("num19");//夜间费(元)
+        Double num20 = jsonObject.getDouble("num20");//夜间费(元)
+        Double num21 = jsonObject.getDouble("num21");//夜间费(元)
+        Double num22 = jsonObject.getDouble("num22");//夜间费(元)
+        String num23 = jsonObject.getString("num23");//高峰费(开始时间)
+        String num24 = jsonObject.getString("num24");//高峰费(开始时间)
+        Double num25 = jsonObject.getDouble("num25");//高峰费(元)
+        Double num26 = jsonObject.getDouble("num26");//高峰费(元)
+        Double num27 = jsonObject.getDouble("num27");//高峰费(元)
+        Double num28 = jsonObject.getDouble("num28");//高峰费(元)
+        Double num29 = jsonObject.getDouble("num29");//高峰费(元)
+        Double num30 = jsonObject.getDouble("num30");//高峰费(元)
+
+        Date date = new Date();
+        double d = (null == orderPrivateCar.getMileage() ? 0D : orderPrivateCar.getMileage()) / 1000;//实际公里
+        double t = ((orderPrivateCar.getEndServiceTime().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000) + 1;//实际时间(不满一分钟按一分钟算)
+        double w = ((orderPrivateCar.getStartServiceTime().getTime() - orderPrivateCar.getArriveTime().getTime()) / 60000) + 1;//等待分钟(不满一分钟按一分钟算)
+        double d1 = (d - num2) < 0 ? 0 : d - num2;//超出起步里程的公里
+        double t1 = (t - num3) < 0 ? 0 : new BigDecimal(t - num3).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超过起步分钟数的时间
+        double w1 = (w - num6) < 0 ? 0 : new BigDecimal(w - num6).setScale(0, BigDecimal.ROUND_UP).doubleValue();//超出等待时间的时间
+        double yt1 = 0;//远途1段
+        double yt2 = 0;//远途2段
+        double yt3 = 0;//远途3段
+
+
+        //夜间服务处理逻辑
+        Calendar s = Calendar.getInstance();
+        s.setTime(date);
+        s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[0].split(":")[0]));
+        s.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[0].split(":")[1]));
+
+        Calendar e = Calendar.getInstance();
+        e.setTime(date);
+        e.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num16.split(" - ")[1].split(":")[0]));
+        e.set(Calendar.MINUTE, Integer.valueOf(num16.split(" - ")[1].split(":")[1]));
+
+        if(date.getTime() > s.getTimeInMillis() && date.getTime() < e.getTimeInMillis()){
+            if(d > num8.doubleValue() && d <= num9.doubleValue()){
+                yt1 = num20 * (d - num8);
+            }
+            if(d > num9.doubleValue()){
+                yt1 = num20 * (num9 - num8);
+            }
+            if(d > num11.doubleValue() || d <= num12.doubleValue()){
+                yt2 = num21 * (d - num11);
+            }
+            if(d > num12.doubleValue()){
+                yt2 = num21 * (num12 - num11);
+            }
+            if(d > num14.doubleValue()){
+                yt3 = num22 * (d - num14);
+            }
+            amount1 = num17 + (d1 * num18) + (t1 * num19) + (w1 * num7) + yt1 + yt2 + yt3;
+            map.put("amount1", amount1);
+        }
+
+
+        //高峰时段处理逻辑
+        Calendar s1 = Calendar.getInstance();
+        s1.setTime(date);
+        s1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[0].split(":")[0]));
+        s1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[0].split(":")[1]));
+
+        Calendar e1 = Calendar.getInstance();
+        e1.setTime(date);
+        e1.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num23.split(" - ")[1].split(":")[0]));
+        e1.set(Calendar.MINUTE, Integer.valueOf(num23.split(" - ")[1].split(":")[1]));
+
+        Calendar s2 = Calendar.getInstance();
+        s2.setTime(date);
+        s2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[0].split(":")[0]));
+        s2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[0].split(":")[1]));
+
+        Calendar e2 = Calendar.getInstance();
+        e2.setTime(date);
+        e2.set(Calendar.HOUR_OF_DAY, Integer.valueOf(num24.split(" - ")[1].split(":")[0]));
+        e2.set(Calendar.MINUTE, Integer.valueOf(num24.split(" - ")[1].split(":")[1]));
+
+        if((date.getTime() > s1.getTimeInMillis() && date.getTime() < e1.getTimeInMillis()) || (date.getTime() > s2.getTimeInMillis() && date.getTime() < e2.getTimeInMillis())){
+            if(d > num8.doubleValue() && d <= num9.doubleValue()){
+                yt1 = num28 * (d - num8);
+            }
+            if(d > num9.doubleValue()){
+                yt1 = num28 * (num9 - num8);
+            }
+            if(d > num11.doubleValue() && d <= num12.doubleValue()){
+                yt2 = num29 * (d - num11);
+            }
+            if(d > num12.doubleValue()){
+                yt2 = num29 * (num12 - num11);
+            }
+            if(d > num14.doubleValue()){
+                yt3 = num30 * (d - num14);
+            }
+            amount2 = num25 + (d1 * num26) + (t1 * num27) + (w1 * num7) + yt1 + yt2 + yt3;
+            map.put("amount2", amount2);
+        }
+
+        //其他时间段的计算
+        if(d > num8.doubleValue() && d <= num9.doubleValue()){
+            yt1 = num10 * (d - num8);
+        }
+        if(d > num9.doubleValue()){
+            yt1 = num10 * (num9 - num8);
+        }
+        if(d > num11.doubleValue() && d <= num12.doubleValue()){
+            yt2 = num13 * (d - num11);
+        }
+        if(d > num12.doubleValue()){
+            yt2 = num13 * (num12 - num11);
+        }
+        if(d > num14.doubleValue()){
+            yt3 = num15 * (d - num14);
+        }
+        amount3 = num1 + (d1 * num4) + (t1 * num5) + (w1 * num7) + yt1 + yt2 + yt3;
+        map.put("amount3", amount3);
+        return map;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
new file mode 100644
index 0000000..aec822d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -0,0 +1,417 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.util.*;
+
+/**
+ * socket推单处理类
+ */
+@Component
+public class PushUtil {
+
+    @Autowired
+    private RestTemplate internalRestTemplate;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    private Map<String, JSONObject> pushMap = new HashMap<>();//存储需要定时推送的数据
+
+    private Map<String, Timer> taskMap = new HashMap<>();//存储定时推送的定时器
+
+
+
+
+    /**
+     * 推送订单状态
+     * @param type          1=用户,2=司机
+     * @param uid           对象id
+     * @param orderId       订单id
+     * @param orderType     订单类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车)
+     * @param state         订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
+     */
+    public void pushOrderState(Integer type, Integer uid, Integer orderId, Integer orderType, Integer state, Integer time){
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 200);
+        jsonObject.put("msg", "SUCCESS");
+        jsonObject.put("method", "ORDER_STATUS");
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderId", orderId);
+        map.put("orderType", orderType);
+        map.put("state", state);
+        map.put("time", time);
+        jsonObject.put("data", map);
+
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("msg", jsonObject.toJSONString());
+
+        if(orderType == 2 && type == 1){
+            OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+            if(orderTaxi.getOrderSource() == 7){
+                params.add("id", orderTaxi.getDeviceCode());
+            }else{
+                params.add("id", String.valueOf(uid));
+            }
+        }else{
+            params.add("id", String.valueOf(uid));
+        }
+
+        params.add("type", String.valueOf(type));
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
+        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject1.getIntValue("code") != 200){
+            System.err.println(jsonObject1.getString("msg"));
+        }
+    }
+
+
+    /**
+     * 推单完成后,没有司机接单的推送提醒
+     * @param type
+     * @param uid
+     * @param orderId
+     * @param orderType
+     */
+    public void pushEndPush(Integer type, Integer uid, Integer orderId, Integer orderType){
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 200);
+        jsonObject.put("msg", "SUCCESS");
+        jsonObject.put("method", "END_PUSH");
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderId", orderId);
+        map.put("orderType", orderType);
+        jsonObject.put("data", map);
+
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("msg", jsonObject.toJSONString());
+
+        if(orderType == 2 && type == 1){
+            OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+            if(orderTaxi.getOrderSource() == 7){
+                params.add("id", orderTaxi.getDeviceCode());
+            }else{
+                params.add("id", String.valueOf(uid));
+            }
+        }else{
+            params.add("id", String.valueOf(uid));
+        }
+        params.add("type", String.valueOf(type));
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
+        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject1.getIntValue("code") != 200){
+            System.err.println(jsonObject1.getString("msg"));
+        }
+    }
+
+
+
+
+    /**
+     * 推送司机位置给乘客端
+     */
+    public void pushDriverPosition(Integer orderId, Integer orderType){
+        Integer userId = null;
+        switch (orderType){
+            case 1:
+                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                userId = orderPrivateCar.getUserId();
+                break;
+            case 2:
+                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                userId = orderTaxi.getUserId();
+                break;
+            case 3:
+                OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                userId = orderCrossCity.getUserId();
+                break;
+        }
+        JSONObject data = new JSONObject();
+        data.put("id", userId);
+        data.put("type", 1);
+        this.pushMap.put(orderId + "_" + orderType, data);
+        this.createTask(orderId, orderType);
+    }
+
+
+    /**
+     * 创建定时任务
+     * @param orderId
+     */
+    public void createTask(Integer orderId, Integer orderType){
+        TimerTask task = new TimerTask() {
+            @Override
+            public void run() {
+                try {
+                    PushUtil.this.pushPositon(orderId, orderType);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        };
+        Timer timer = new Timer();
+        timer.schedule(task, 1000, 10000);//1秒后开始10秒钟一次的重复执行
+        taskMap.put(orderId + "_" + orderType, timer);
+    }
+
+
+    /**
+     * 推送处理方法
+     * @param orderId
+     * @param orderType
+     * @throws Exception
+     */
+    public void pushPositon(Integer orderId, Integer orderType) throws Exception{
+        Integer driverId = null;
+        String startLonLat = null;
+        String endLonLat = null;
+        Integer state = 0;
+        Integer oldState = 0;
+        Long startServiceTime = null;
+        Double servedMileage = null;
+        switch (orderType){
+            case 1:
+                OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderId);
+                driverId = orderPrivateCar.getDriverId();
+                startLonLat = orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat();
+                state = orderPrivateCar.getState();
+                oldState = orderPrivateCar.getOldState();
+                startServiceTime = null != orderPrivateCar.getStartServiceTime() ? orderPrivateCar.getStartServiceTime().getTime() : null;
+                servedMileage = orderPrivateCar.getMileage();
+                endLonLat = orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat();
+                break;
+            case 2:
+                OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+                driverId = orderTaxi.getDriverId();
+                startLonLat = orderTaxi.getStartLon() + "," + orderTaxi.getStartLat();
+                state = orderTaxi.getState();
+                oldState = orderTaxi.getOldState();
+                startServiceTime = null != orderTaxi.getStartServiceTime() ? orderTaxi.getStartServiceTime().getTime() : null;
+                servedMileage = orderTaxi.getMileage();
+                endLonLat = orderTaxi.getEndLon() + "," + orderTaxi.getEndLat();
+                break;
+            case 3:
+                OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+                driverId = orderCrossCity.getDriverId();
+                startLonLat = orderCrossCity.getStartLon() + "," + orderCrossCity.getStartLat();
+                state = orderCrossCity.getState();
+                oldState = orderCrossCity.getOldState();
+                startServiceTime = null != orderCrossCity.getStartServiceTime() ? orderCrossCity.getStartServiceTime().getTime() : null;
+                servedMileage = orderCrossCity.getMileage();
+                endLonLat = orderCrossCity.getEndLon() + "," + orderCrossCity.getEndLat();
+                break;
+        }
+        //计算预计距离和剩余时间
+        String value = redisUtil.getValue("DRIVER" + String.valueOf(driverId));
+        if(null == value || "".equals(value)){
+            System.err.println("司机没有上传位置信息");
+        }
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, startLonLat, 1);
+        String d = "0";
+        String t = "0";
+        if(null == distance){
+            System.err.println("查询距离出错了");
+        }else{
+            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+        }
+        JSONObject msg = new JSONObject();
+        msg.put("code", 200);
+        msg.put("msg", "SUCCESS");
+        msg.put("method", "DRIVER_POSITION");
+        Map<String, String> map = new HashMap<>();
+        map.put("orderId", String.valueOf(orderId));
+        map.put("orderType", String.valueOf(orderType));
+        map.put("lon", (null != value ? value.split(",")[0] : ""));
+        map.put("lat", (null != value ? value.split(",")[1] : ""));
+        if(state == 7 || state == 8 || state == 9 || state == 10 || state == 12){//删除定时任务
+            this.removeTask(orderId, orderType);
+            return;
+        }
+        if((state == 2 || state == 3 || state == 4) || (oldState != null && (oldState == 2 || oldState == 3 || oldState == 4))){//前往预约地
+            map.put("reservationMileage", d);//当前位置距离预约点的剩余里程
+            map.put("reservationTime", t);//当前位置距离预约点的剩余分钟
+            map.put("servedMileage", "0");//距离起点已经服务的里程
+            map.put("servedTime", "0");//距离起点已经服务的时间
+            map.put("laveMileage", "0");//距离终点剩余未服务的里程数
+            map.put("laveTime", "0");//距离终端剩余未服务的预计时间
+        }
+        if((state == 5 || state == 6) || (oldState != null && (oldState == 5 || oldState == 6))){//服务中
+            map.put("reservationMileage", "0");//当前位置距离预约点的剩余里程
+            map.put("reservationTime", "0");//当前位置距离预约点的剩余分钟
+            map.put("servedMileage", String.valueOf(servedMileage / 1000));//距离起点已经服务的里程
+            Integer servedTime = Long.valueOf((new Date().getTime() - startServiceTime) / 60000).intValue();
+            map.put("servedTime", servedTime + "");//距离起点已经服务的时间
+            distance = gdMapElectricFenceUtil.getDistance(value, endLonLat, 1);
+            if(null == distance){
+                System.err.println("查询距离出错了");
+            }else{
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            }
+            map.put("laveMileage", d);//距离终点剩余未服务的里程数
+            map.put("laveTime", t);//距离终端剩余未服务的预计时间
+        }
+
+        msg.put("data", map);
+
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        JSONObject jsonObject = pushMap.get(orderId + "_" + orderType);
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("msg", msg.toJSONString());
+
+        if(orderType == 2){
+            OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+            if(orderTaxi.getOrderSource() == 7){
+                params.add("id", orderTaxi.getDeviceCode());
+            }else{
+                params.add("id", jsonObject.getString("id"));
+            }
+        }else{
+            params.add("id", jsonObject.getString("id"));
+        }
+        params.add("type", jsonObject.getString("type"));
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
+        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject1.getIntValue("code") != 200){
+            System.err.println(jsonObject1.getString("msg"));
+        }
+    }
+
+
+    /**
+     * 推送强迫下线
+     * @param id
+     * @param type
+     */
+    public void pushOffline(Integer id, Integer type){
+        JSONObject msg = new JSONObject();
+        msg.put("code", 200);
+        msg.put("msg", "SUCCESS");
+        msg.put("method", "OFFLINE");
+        msg.put("data", new Object());
+
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("msg", msg.toJSONString());
+        params.add("id", id.toString());
+        params.add("type", type.toString());
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
+        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject1.getIntValue("code") != 200){
+            System.err.println(jsonObject1.getString("msg"));
+        }
+    }
+
+
+    /**
+     * 摆渡抢单成功后推单
+     * @param type
+     * @param uid
+     * @param orderId
+     * @param orderType
+     * @param state
+     */
+    public void pushFerryOrderState(Integer type, Integer uid, Integer orderId, Integer orderType, Integer state){
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("code", 200);
+        jsonObject.put("msg", "SUCCESS");
+        jsonObject.put("method", "FERRY");
+        Map<String, Object> map = new HashMap<>();
+        map.put("orderId", orderId);
+        map.put("orderType", orderType);
+        map.put("state", state);
+        jsonObject.put("data", map);
+
+        //调用推送
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("msg", jsonObject.toJSONString());
+
+        if(orderType == 2 && type == 1){
+            OrderTaxi orderTaxi = orderTaxiService.selectById(orderId);
+            if(orderTaxi.getOrderSource() == 7){
+                params.add("id", orderTaxi.getDeviceCode());
+            }else{
+                params.add("id", String.valueOf(uid));
+            }
+        }else{
+            params.add("id", String.valueOf(uid));
+        }
+        params.add("type", String.valueOf(type));
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class);
+        JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject1.getIntValue("code") != 200){
+            System.err.println(jsonObject1.getString("msg"));
+        }
+    }
+
+
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     */
+    public void removeTask(Integer orderId, Integer orderType){
+        Timer timer = taskMap.get(orderId + "_" + orderType);
+        if (null != timer){
+            timer.cancel();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
new file mode 100644
index 0000000..22f75e6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/RedisUtil.java
@@ -0,0 +1,128 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.stylefeng.guns.core.util.ToolUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Component;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
+
+
+/**
+ * Redis工具类
+ */
+@Component
+public class RedisUtil {
+
+    @Autowired
+    private RestTemplate internalRestTemplate;
+
+
+    /**
+     * 向redis中存储字符串没有过期时间
+     * @param key
+     * @param value
+     */
+    public void setStrValue(String key, String value){
+        if(ToolUtil.isNotEmpty(key)){
+            //发送验证码短信
+            HttpHeaders headers = new HttpHeaders();
+            // 以表单的方式提交
+            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+            //将请求头部和参数合成一个请求
+            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+            params.add("key", key);
+            params.add("value", value);
+            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue_", requestEntity, String.class);
+            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+            if(jsonObject.getIntValue("code") != 200){
+                System.err.println("调用redis出错了");
+            }
+        }
+
+    }
+
+
+    /**
+     * 以分钟为单位设置存储值(设置过期时间)
+     * @param key
+     * @param value
+     * @param time 秒
+     */
+    public void setStrValue(String key, String value, int time){
+        if(ToolUtil.isNotEmpty(key)){
+            //发送验证码短信
+            HttpHeaders headers = new HttpHeaders();
+            // 以表单的方式提交
+            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+            //将请求头部和参数合成一个请求
+            MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+            params.add("key", key);
+            params.add("value", value);
+            params.add("time", String.valueOf(time));
+            HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(params, headers);
+            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/setValue", requestEntity, String.class);
+            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+            if(jsonObject.getIntValue("code") != 200){
+                System.err.println("调用redis出错了");
+            }
+        }
+    }
+
+
+    /**
+     * 从redis中获取值
+     * @param key
+     * @return
+     */
+    public String getValue(String key){
+        if(ToolUtil.isNotEmpty(key)){
+            HttpHeaders headers = new HttpHeaders();
+            // 以表单的方式提交
+            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+            //将请求头部和参数合成一个请求
+            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+            params.add("key", key);
+            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/getValue",requestEntity , String.class);
+            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+            if(jsonObject.getIntValue("code") != 200){
+                System.err.println("调用redis出错了");
+            }
+            return jsonObject.getString("data");
+        }
+        return null;
+    }
+
+
+    /**
+     * 删除key
+     * @param key
+     */
+    public String remove(String key){
+        if(ToolUtil.isNotEmpty(key)){
+            HttpHeaders headers = new HttpHeaders();
+            // 以表单的方式提交
+            headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+            //将请求头部和参数合成一个请求
+            MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+            params.add("key", key);
+            HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+            String s = internalRestTemplate.postForObject("http://zuul-gateway/redis/remove",requestEntity , String.class);
+            JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+            if(jsonObject.getIntValue("code") != 200){
+                System.err.println("调用redis出错了");
+            }
+            return jsonObject.getString("data");
+        }
+        return null;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ResultUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ResultUtil.java
new file mode 100644
index 0000000..d8102a0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/ResultUtil.java
@@ -0,0 +1,188 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 定义统一返回对象
+ */
+@ApiModel(value = "统一返回结果集")
+public class ResultUtil<T> {
+
+    public static final Integer SUCCESS = 200;
+
+    public static final Integer PARAM_ERROR = 300;
+
+    public static final Integer RUNTIME_ERROR = 400;
+
+    public static final Integer ERROR = 500;
+
+    public static final Integer TOKEN_ERROR = 600;
+
+    public static final Integer SIGN_ERROR = 700;
+
+    public static final String Token = "TOKEN_INVALID";
+
+    public static final String SIGN = "SIGN_INVALID";
+
+    @ApiModelProperty(name = "code", value = "业务状态码 200:成功,300:参数错误,400:运行异常,500:其他异常, 600:token无效,需重新登录,700:签名无效")
+    private Integer code;//备用状态码
+
+    @ApiModelProperty(name = "msg", value = "返回结果说明")
+    private String msg;//返回说明
+
+    @ApiModelProperty(name = "data", value = "返回结果值")
+    private T data;//返回数据
+
+
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+
+    public Integer getCode() {
+        return code;
+    }
+
+    private ResultUtil(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    private ResultUtil(Integer code, String msg, T data) {
+        this.code = code;
+        this.msg = msg;
+        this.data = data;
+    }
+
+
+    public static <T> ResultUtil<T> getResult(Integer code, String msg){
+        return new ResultUtil<>(code, msg);
+    }
+
+    public static <T> ResultUtil<T> getResult(Integer code, String msg, T data){
+        return new ResultUtil<>(code, msg, data);
+    }
+
+    /**
+     * 错误信息
+     * @return
+     */
+    public static ResultUtil error(String mag){
+        return ResultUtil.getResult(ResultUtil.ERROR, mag, new JSONObject());
+    }
+
+    /**
+     * 错误信息
+     * @return
+     */
+    public static <T> ResultUtil <T> error(String mag, T obj){
+        return ResultUtil.getResult(ResultUtil.ERROR, mag, obj);
+    }
+
+    /**
+     * token失效
+     * @return
+     */
+    public static ResultUtil tokenErr(){
+        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, ResultUtil.Token, new JSONObject());
+    }
+
+    /**
+     * token失效
+     * @return
+     */
+    public static ResultUtil tokenErr(String msg){
+        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, msg, new JSONObject());
+    }
+
+    /**
+     * 参数异常
+     * @return
+     */
+    public static  ResultUtil paranErr(){
+        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "PARAM_ERROR", new JSONObject());
+    }
+
+    /**
+     * 参数异常
+     * @return
+     */
+    public static <T> ResultUtil<T> paranErr(T data){
+        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "SYSTEM_RUN_ERROR", data);
+    }
+
+    /**
+     * 运行异常
+     * @return
+     */
+    public static ResultUtil runErr(){
+        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", new JSONObject());
+    }
+
+
+    /**
+     * 运行异常
+     * @return
+     */
+    public static <T>ResultUtil<T> runErr(T data){
+        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", data);
+    }
+
+    /**
+     * 运行异常
+     * @return
+     */
+    public static <T>ResultUtil<T> runErr(T data, String msg){
+        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, msg, data);
+    }
+
+
+    /**
+     * 返回成功
+     * @param
+     * @return
+     */
+    public static ResultUtil success(){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", new JSONObject());
+    }
+
+
+    /**
+     * 返回成功
+     * @param data
+     * @param <T>
+     * @return
+     */
+    public static <T> ResultUtil<T> success(T data){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", data);
+    }
+
+    /**
+     * 返回成功
+     * @param msg
+     * @param data
+     * @param <T>
+     * @return
+     */
+    public static <T> ResultUtil<T> success(String msg, T data){
+        return ResultUtil.getResult(ResultUtil.SUCCESS, msg, data);
+    }
+
+
+    /**
+     * 签名无效
+     * @param <T>
+     * @return
+     */
+    public static <T> ResultUtil<T> sign(){
+        return ResultUtil.getResult(ResultUtil.SIGN_ERROR, SIGN);
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SystemException.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SystemException.java
new file mode 100644
index 0000000..7017207
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/SystemException.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util;
+
+/**
+ * 自定义系统异常类
+ */
+public class SystemException extends Exception {
+
+    public SystemException(String message) {
+        super(message);
+    }
+
+    public SystemException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public SystemException(Throwable cause) {
+        super(cause);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
new file mode 100644
index 0000000..9965c15
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -0,0 +1,59 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+import com.stylefeng.guns.modular.system.service.IUserCouponRecordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 定时任务工具类
+ */
+@Component
+public class TaskUtil {
+
+    @Autowired
+    private IUserCouponRecordService userCouponRecordService;
+
+
+
+    /**
+     * 每隔一分钟去处理的定时任务
+     */
+    @Scheduled(fixedRate = 1000 * 60)
+    public void taskMinute(){
+        try {
+            //修改过期的优惠券
+            userCouponRecordService.updateTimeOut();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+//    /**
+//     * 每天的凌晨执行的任务
+//     */
+//    @Scheduled(cron = "0 0 0 * * *")
+//    public void taskDay(){
+//        try {
+//        }catch (Exception e){
+//            e.printStackTrace();
+//        }
+//    }
+
+
+//
+//    /**
+//     * 每月第一天的1点执行的任务
+//     */
+//    @Scheduled(cron = "0 0 1 1 * *")
+//    public void taskMonth(){
+//        try {
+//
+//        }catch (Exception e){
+//            e.printStackTrace();
+//        }
+//    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/UUIDUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/UUIDUtil.java
new file mode 100644
index 0000000..3237efb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/UUIDUtil.java
@@ -0,0 +1,78 @@
+package com.stylefeng.guns.modular.system.util;
+
+
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * 定义生成随机码的工具类
+ */
+public class UUIDUtil {
+
+    private int i = 1;
+
+
+    /**
+     * 定义生成原生的UUID随机码
+     * @return
+     */
+    public static String getNativeUUID(){
+        return UUID.randomUUID().toString();
+    }
+
+
+    /**
+     * 生成32位随机码
+     * @return
+     */
+    public static String getRandomCode(){
+        return UUIDUtil.getNativeUUID().replaceAll("-", "");
+    }
+
+
+    /**
+     * 获取给定长度的随机码
+     * @param num
+     * @return
+     * @throws Exception
+     */
+    public static String getRandomCode(Integer num) throws Exception{
+        String str = null;
+        if(0 < num){
+            if(num % 32 > 0){
+                Integer s = num / 32;
+                Integer l = num % 32;
+                StringBuffer sb = new StringBuffer();
+                for(int i = 0; i < s; i++){
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                sb.append(UUIDUtil.getRandomCode().substring(0, l));
+                str = sb.toString();
+            }else if(num % 32 == 0){
+                Integer s = num / 32;
+                StringBuffer sb = new StringBuffer();
+                for(int i = 0; i < s; i++){
+                    sb.append(UUIDUtil.getRandomCode());
+                }
+                str = sb.toString();
+            }else{
+                str = UUIDUtil.getRandomCode().substring(0, num);
+            }
+        }else{
+            throw new Exception("参数只能大于0");
+        }
+        return str;
+    }
+
+
+    /**
+     * 获取根据当前时间的字符串数据
+     * @return
+     */
+    public synchronized static String getTimeStr(){
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssSSS");
+        return simpleDateFormat.format(new Date());
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/VerifyCodeUtils.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/VerifyCodeUtils.java
new file mode 100644
index 0000000..f01b357
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/VerifyCodeUtils.java
@@ -0,0 +1,260 @@
+package com.stylefeng.guns.modular.system.util;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.geom.AffineTransform;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Arrays;
+import java.util.Random;
+
+public class VerifyCodeUtils {
+    //使用到Algerian字体,系统里没有的话需要安装字体,字体只显示大写,去掉了1,0,i,o几个容易混淆的字符
+    public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ";
+    private static Random random = new Random();
+
+
+    /**
+     * 使用系统默认字符源生成验证码
+     * @param verifySize    验证码长度
+     * @return
+     */
+    public static String generateVerifyCode(int verifySize){
+        return generateVerifyCode(verifySize, VERIFY_CODES);
+    }
+
+    /**
+     * 使用指定源生成验证码
+     * @param verifySize    验证码长度
+     * @param sources   验证码字符源
+     * @return
+     */
+    public static String generateVerifyCode(int verifySize, String sources){
+        if(sources == null || sources.length() == 0){
+            sources = VERIFY_CODES;
+        }
+        int codesLen = sources.length();
+        Random rand = new Random(System.currentTimeMillis());
+        StringBuilder verifyCode = new StringBuilder(verifySize);
+        for(int i = 0; i < verifySize; i++){
+            verifyCode.append(sources.charAt(rand.nextInt(codesLen-1)));
+        }
+        return verifyCode.toString();
+    }
+
+    /**
+     * 生成随机验证码文件,并返回验证码值
+     * @param w
+     * @param h
+     * @param outputFile
+     * @param verifySize
+     * @return
+     * @throws IOException
+     */
+    public static String outputVerifyImage(int w, int h, File outputFile, int verifySize) throws IOException {
+        String verifyCode = generateVerifyCode(verifySize);
+        outputImage(w, h, outputFile, verifyCode);
+        return verifyCode;
+    }
+
+    /**
+     * 输出随机验证码图片流,并返回验证码值
+     * @param w
+     * @param h
+     * @param os
+     * @param verifySize
+     * @return
+     * @throws IOException
+     */
+    public static String outputVerifyImage(int w, int h, OutputStream os, int verifySize) throws IOException{
+        String verifyCode = generateVerifyCode(verifySize);
+        outputImage(w, h, os, verifyCode);
+        return verifyCode;
+    }
+
+    /**
+     * 生成指定验证码图像文件
+     * @param w
+     * @param h
+     * @param outputFile
+     * @param code
+     * @throws IOException
+     */
+    public static void outputImage(int w, int h, File outputFile, String code) throws IOException{
+        if(outputFile == null){
+            return;
+        }
+        File dir = outputFile.getParentFile();
+        if(!dir.exists()){
+            dir.mkdirs();
+        }
+        try{
+            outputFile.createNewFile();
+            FileOutputStream fos = new FileOutputStream(outputFile);
+            outputImage(w, h, fos, code);
+            fos.close();
+        } catch(IOException e){
+            throw e;
+        }
+    }
+
+    /**
+     * 输出指定验证码图片流
+     * @param w
+     * @param h
+     * @param os
+     * @param code
+     * @throws IOException
+     */
+    public static void outputImage(int w, int h, OutputStream os, String code) throws IOException{
+        int verifySize = code.length();
+        BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
+        Random rand = new Random();
+        Graphics2D g2 = image.createGraphics();
+        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
+        Color[] colors = new Color[5];
+        Color[] colorSpaces = new Color[] { Color.WHITE, Color.CYAN,
+                Color.GRAY, Color.LIGHT_GRAY, Color.MAGENTA, Color.ORANGE,
+                Color.PINK, Color.YELLOW };
+        float[] fractions = new float[colors.length];
+        for(int i = 0; i < colors.length; i++){
+            colors[i] = colorSpaces[rand.nextInt(colorSpaces.length)];
+            fractions[i] = rand.nextFloat();
+        }
+        Arrays.sort(fractions);
+
+        g2.setColor(Color.GRAY);// 设置边框色
+        g2.fillRect(0, 0, w, h);
+
+        Color c = getRandColor(200, 250);
+        g2.setColor(c);// 设置背景色
+        g2.fillRect(0, 2, w, h-4);
+
+        //绘制干扰线
+        Random random = new Random();
+        g2.setColor(getRandColor(160, 200));// 设置线条的颜色
+        for (int i = 0; i < 20; i++) {
+            int x = random.nextInt(w - 1);
+            int y = random.nextInt(h - 1);
+            int xl = random.nextInt(6) + 1;
+            int yl = random.nextInt(12) + 1;
+            g2.drawLine(x, y, x + xl + 40, y + yl + 20);
+        }
+
+        // 添加噪点
+        float yawpRate = 0.05f;// 噪声率
+        int area = (int) (yawpRate * w * h);
+        for (int i = 0; i < area; i++) {
+            int x = random.nextInt(w);
+            int y = random.nextInt(h);
+            int rgb = getRandomIntColor();
+            image.setRGB(x, y, rgb);
+        }
+
+        shear(g2, w, h, c);// 使图片扭曲
+
+        g2.setColor(getRandColor(100, 160));
+        int fontSize = h-4;
+        Font font = new Font("Algerian", Font.ITALIC, fontSize);
+        g2.setFont(font);
+        char[] chars = code.toCharArray();
+        for(int i = 0; i < verifySize; i++){
+            AffineTransform affine = new AffineTransform();
+            affine.setToRotation(Math.PI / 4 * rand.nextDouble() * (rand.nextBoolean() ? 1 : -1), (w / verifySize) * i + fontSize/2, h/2);
+            g2.setTransform(affine);
+            g2.drawChars(chars, i, 1, ((w-10) / verifySize) * i + 5, h/2 + fontSize/2 - 10);
+        }
+
+        g2.dispose();
+        ImageIO.write(image, "png", os);
+    }
+
+    private static Color getRandColor(int fc, int bc) {
+        if (fc > 255)
+            fc = 255;
+        if (bc > 255)
+            bc = 255;
+        int r = fc + random.nextInt(bc - fc);
+        int g = fc + random.nextInt(bc - fc);
+        int b = fc + random.nextInt(bc - fc);
+        return new Color(r, g, b);
+    }
+
+    private static int getRandomIntColor() {
+        int[] rgb = getRandomRgb();
+        int color = 0;
+        for (int c : rgb) {
+            color = color << 8;
+            color = color | c;
+        }
+        return color;
+    }
+
+    private static int[] getRandomRgb() {
+        int[] rgb = new int[3];
+        for (int i = 0; i < 3; i++) {
+            rgb[i] = random.nextInt(255);
+        }
+        return rgb;
+    }
+
+    private static void shear(Graphics g, int w1, int h1, Color color) {
+        shearX(g, w1, h1, color);
+        shearY(g, w1, h1, color);
+    }
+
+    private static void shearX(Graphics g, int w1, int h1, Color color) {
+
+        int period = random.nextInt(2);
+
+        boolean borderGap = true;
+        int frames = 1;
+        int phase = random.nextInt(2);
+
+        for (int i = 0; i < h1; i++) {
+            double d = (double) (period >> 1)
+                    * Math.sin((double) i / (double) period
+                    + (6.2831853071795862D * (double) phase)
+                    / (double) frames);
+            g.copyArea(0, i, w1, 1, (int) d, 0);
+            if (borderGap) {
+                g.setColor(color);
+                g.drawLine((int) d, i, 0, i);
+                g.drawLine((int) d + w1, i, w1, i);
+            }
+        }
+
+    }
+
+    private static void shearY(Graphics g, int w1, int h1, Color color) {
+
+        int period = random.nextInt(40) + 10; // 50;
+
+        boolean borderGap = true;
+        int frames = 20;
+        int phase = 7;
+        for (int i = 0; i < w1; i++) {
+            double d = (double) (period >> 1)
+                    * Math.sin((double) i / (double) period
+                    + (6.2831853071795862D * (double) phase)
+                    / (double) frames);
+            g.copyArea(i, 0, 1, h1, 0, (int) d);
+            if (borderGap) {
+                g.setColor(color);
+                g.drawLine(i, (int) d, i, 0);
+                g.drawLine(i, (int) d + h1, i, h1);
+            }
+
+        }
+    }
+    public static void main(String[] args) throws IOException{
+        File dir = new File("C:/Users/H__D/Desktop/");
+        int w = 200, h = 80;
+        String verifyCode = generateVerifyCode(4);
+        File file = new File(dir, verifyCode + ".jpg");
+        outputImage(w, h, file, verifyCode);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
new file mode 100644
index 0000000..1961a68
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
@@ -0,0 +1,120 @@
+package com.stylefeng.guns.modular.system.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 微信工具类
+ */
+@Component
+public class WeChatUtil {
+
+    @Value("${wx.appletsAppid}")
+    private String wxAppletsAppid;
+
+    @Value("${wx.appletsAppSecret}")
+    private String wxAppletsAppSecret;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+
+    /**
+     * 小程序使用jscode获取openid
+     * @param jscode
+     * @return
+     */
+    public Map<String, String> code2Session(String jscode){
+        String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret
+                + "&js_code=" + jscode + "&grant_type=authorization_code";
+        String forObject = restTemplate.getForObject(url, String.class);
+        JSONObject jsonObject = JSON.parseObject(forObject);
+        int errcode = jsonObject.getIntValue("errcode");
+        Map<String, String> map = new HashMap<>();
+        if(errcode == 0){//成功
+            map.put("openid", jsonObject.getString("openid"));
+            map.put("sessionKey", jsonObject.getString("session_key"));
+            map.put("unionid", jsonObject.getString("unionid"));
+            return map;
+        }
+        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
+            map.put("msg", jsonObject.getString("errmsg"));
+            return map;
+        }
+        if(errcode == 40029){//code 无效
+            map.put("msg", jsonObject.getString("errmsg"));
+            return map;
+        }
+        if(errcode == 45011){//频率限制,每个用户每分钟100次
+            map.put("msg", jsonObject.getString("errmsg"));
+            return map;
+        }
+        return null;
+    }
+
+
+    /**
+     * 通过config接口注入权限验证配置(公众号)
+     * 附录1-JS-SDK使用权限签名算法,
+     * @return
+     */
+    public Map<String,Object> getSignatureConfig(String url){
+        //获取token
+        try {
+            url = URLDecoder.decode(url, "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        String ticket = getJSApiTicket();
+        String noncestr = UUIDUtil.getRandomCode();
+        Long timestamp = System.currentTimeMillis();
+        String content = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
+        String signature = DigestUtils.sha1Hex(content);
+        Map<String,Object> map=new HashMap<>();
+        map.put("appId", "wx0e72f86394831b34");
+        map.put("timestamp", timestamp);
+        map.put("nonceStr", noncestr);
+        map.put("signature", signature);
+        return  map;
+    }
+
+
+
+    /***
+     * 获取jsapiTicket(公众号)
+     * 来源 www.vxzsk.com
+     * @return
+     */
+    public String getJSApiTicket(){
+        //获取token
+        String acess_token= this.getAccessToken();
+        String urlStr = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + acess_token + "&type=jsapi";
+        String backData = restTemplate.getForObject(urlStr, String.class);
+        System.out.println(backData);
+        String ticket = JSONObject.parseObject(backData).getString("ticket");
+        return  ticket;
+    }
+
+
+    /***
+     * 获取acess_token (公众号)
+     * 来源www.vxzsk.com
+     * @return
+     */
+    public String getAccessToken(){
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx0e72f86394831b34&secret=930f857abc74f7bb5cbd89e1544c5669";
+        String backData = restTemplate.getForObject(url, String.class);
+        String accessToken = JSONObject.parseObject(backData).getString("access_token");
+        return accessToken;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpClientUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpClientUtil.java
new file mode 100644
index 0000000..d4def85
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpClientUtil.java
@@ -0,0 +1,265 @@
+package com.stylefeng.guns.modular.system.util.httpClinet;
+
+import com.alibaba.fastjson.JSON;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.message.BasicNameValuePair;
+import org.apache.http.ssl.SSLContexts;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Component;
+
+import javax.net.ssl.SSLContext;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.security.KeyStore;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * http工具类
+ */
+@Component
+public class HttpClientUtil {
+
+    private PoolingHttpClientConnectionManager connectionManager;
+
+
+    public HttpClientUtil(){
+        //1.创建连接池管理器
+        connectionManager = new PoolingHttpClientConnectionManager(60000,
+                TimeUnit.MILLISECONDS);
+        connectionManager.setMaxTotal(1000);
+        connectionManager.setDefaultMaxPerRoute(50);
+    }
+
+    /**
+     * 创建一个httpClient对象
+     */
+    private CloseableHttpClient getHttpCline(){
+        return  HttpClients.custom()
+                .setConnectionManager(connectionManager)
+                .disableAutomaticRetries()
+                .build();
+    }
+
+    private RequestConfig getRequestConfig(){
+        RequestConfig.Builder builder = RequestConfig.custom();
+        builder.setSocketTimeout(60000)//3.1设置客户端等待服务端返回数据的超时时间
+                .setConnectTimeout(30000)//3.2设置客户端发起TCP连接请求的超时时间
+                .setExpectContinueEnabled(true)
+                .setConnectionRequestTimeout(30000);//3.3设置客户端从连接池获取链接的超时时间
+        return builder.build();
+    }
+
+
+
+    /**
+     * 创建一个POST请求实例
+     * @param url       请求地址
+     * @param params    请求参数
+     */
+    private CloseableHttpResponse setPostHttpRequset(String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
+        HttpPost httpPost = new HttpPost(url);
+        httpPost.setConfig(this.getRequestConfig());
+        if(null != header){
+            for(String key : header.keySet()){
+                httpPost.setHeader(key, header.get(key));
+            }
+        }
+        List<NameValuePair> list = new ArrayList<>();
+        if(null != params){
+            Set<String> keys = params.keySet();
+            for(String key : keys){
+                list.add(new BasicNameValuePair(key, null == params.get(key) ? null : params.get(key).toString()));
+            }
+        }
+        switch (contentType){
+            case "form":
+                httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
+                break;
+            case "json":
+                ObjectMapper objectMapper = new ObjectMapper();
+                String s =objectMapper.writeValueAsString(params);
+                httpPost.setEntity(new StringEntity(s, ContentType.create(ContentType.APPLICATION_JSON.getMimeType(), Charset.forName("UTF-8"))));
+                break;
+        }
+        return getHttpCline().execute(httpPost);
+    }
+
+
+    /**
+     * 获取get请求实例
+     * @param url       请求地址
+     * @param params    请求参数
+     */
+    private CloseableHttpResponse setGetHttpRequset(String url, Map<String, Object> params, Map<String, String> header) throws Exception{
+        StringBuffer sb = new StringBuffer();
+        String p = "";
+        if(null != params){
+            Set<String> keys = params.keySet();
+            for(String key : keys){
+                sb.append(key + "=" + params.get(key) + "&");
+            }
+            p = "?" + sb.substring(0, sb.length() - 1);
+        }
+        HttpGet httpGet = new HttpGet(url + p);
+        httpGet.setConfig(getRequestConfig());
+        if(null != header){
+            for(String key : header.keySet()){
+                httpGet.setHeader(key, header.get(key));
+            }
+        }
+        return getHttpCline().execute(httpGet);
+    }
+
+
+    /**
+     * 发送http请求
+     * @param mothed        "GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS"
+     * @param url           请求地址
+     * @param params        请求参数
+     * @param header        请求头
+     * @param contentType   参数请求方式form/json
+     * @return
+     */
+    public HttpResult pushHttpRequset(String mothed, String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
+        String randome = UUID.randomUUID().toString();
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:S");
+        System.err.println(sdf.format(new Date()) + "----(" + randome + ")请求参数:" + JSON.toJSONString(params));
+        CloseableHttpResponse httpResponse = null;
+        switch (mothed){
+            case "GET":
+                httpResponse = this.setGetHttpRequset(url, params, header);
+                break;
+            case "POST":
+                httpResponse = setPostHttpRequset(url, params, header, contentType);
+                break;
+        }
+        int statusCode = httpResponse.getStatusLine().getStatusCode();
+        String content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+        System.err.println(sdf.format(new Date()) + "----(" + randome + ")返回结果:" + content);
+        HttpResult httpResult = HttpResult.getHttpResult(statusCode, content);
+        this.close(httpResponse);
+        return httpResult;
+    }
+
+
+    /**
+     * 发送XML请求
+     * @param url       请求地址
+     * @param xml       XML数据
+     * @param header    自定义请求头
+     * @return
+     */
+    public HttpResult pushHttpRequsetXml(String url, String xml, Map<String, String> header) throws Exception{
+        HttpPost httpPost = new HttpPost(url);
+        httpPost.setConfig(getRequestConfig());
+        for(String key : header.keySet()){
+            httpPost.setHeader(key, header.get(key));
+        }
+        httpPost.setHeader("Content-Type", "application/xml");
+        httpPost.setEntity(new StringEntity(xml, "UTF-8"));
+        CloseableHttpResponse httpResponse = getHttpCline().execute(httpPost);
+        int statusCode = httpResponse.getStatusLine().getStatusCode();
+        String content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+        HttpResult httpResult = HttpResult.getHttpResult(statusCode, content);
+        this.close(httpResponse);
+        return httpResult;
+    }
+
+
+
+    /**
+     * 请求https发送XML请求
+     * @param url           接口路径
+     * @param xml           内容
+     * @param header        请求头
+     * @param certPassword      证书密码
+     * @param certPath      证书路径
+     * @param certType      证书类型
+     * @return
+     * @throws Exception
+     */
+    public String pushHttpsRequsetXml(String url, String xml, Map<String, String> header, String certPassword, String certPath, String certType) throws Exception{
+        HttpPost httpPost = new HttpPost(url);
+        for(String key : header.keySet()){
+            httpPost.setHeader(key, header.get(key));
+        }
+        httpPost.setHeader("Content-Type", "application/xml");
+        httpPost.setEntity(new StringEntity(xml, "UTF-8"));
+        CloseableHttpClient httpCline = this.initCert(certPassword, certPath, certType);
+        CloseableHttpResponse httpResponse = httpCline.execute(httpPost);
+        String content = null;
+        if(httpResponse.getStatusLine().getStatusCode() == 200){
+            content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+        }else{
+            content = "返回状态码:" + httpResponse.getStatusLine() + "。" + EntityUtils.toString(httpResponse.getEntity());
+        }
+        this.close(httpResponse);
+        httpCline.close();
+        return content;
+    }
+
+
+    /**
+     * 初始化https对象(带证书)
+     * @param key       证书密码
+     * @param certPath  证书路径
+     * @param certType  证书类型
+     * @throws Exception
+     */
+    private CloseableHttpClient initCert(String key, String certPath, String certType) throws Exception {
+        KeyStore keyStore = KeyStore.getInstance(certType);
+        InputStream inputStream = new FileInputStream(new File(certPath));
+        try {
+            keyStore.load(inputStream, key.toCharArray());
+        } finally {
+            inputStream.close();
+        }
+        SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, key.toCharArray()).build();
+        SSLConnectionSocketFactory sslsf =
+                new SSLConnectionSocketFactory(sslcontext, new String[] {"TLSv1"}, null,
+                        SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
+        return HttpClients.custom().setSSLSocketFactory(sslsf).build();
+    }
+
+
+
+    /**
+     * 关闭资源
+     */
+    private void close(CloseableHttpResponse httpResponse){
+        try {
+            if(null != httpResponse){
+                EntityUtils.consume(httpResponse.getEntity());//此处高能,通过源码分析,由EntityUtils是否回收HttpEntity
+                httpResponse.close();
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }finally {
+            try {
+                if(null != httpResponse){
+                    httpResponse.close();
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpResult.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpResult.java
new file mode 100644
index 0000000..49b4440
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/httpClinet/HttpResult.java
@@ -0,0 +1,45 @@
+package com.stylefeng.guns.modular.system.util.httpClinet;
+
+
+/**
+ * http请求返回封装
+ */
+public class HttpResult {
+    /**
+     * 返回状态码
+     */
+    private Integer code;
+    /**
+     * 返回结果
+     */
+    private String data;
+
+    /**
+     * 返回封装结果
+     * @param code
+     * @param data
+     * @return
+     */
+    public static HttpResult getHttpResult(Integer code, String data){
+        HttpResult httpResult = new HttpResult();
+        httpResult.setCode(code);
+        httpResult.setData(data);
+        return httpResult;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getData() {
+        return data;
+    }
+
+    public void setData(String data) {
+        this.data = data;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/AdvertisementWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/AdvertisementWarpper.java
new file mode 100644
index 0000000..ed2d37f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/AdvertisementWarpper.java
@@ -0,0 +1,103 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel("广告")
+public class AdvertisementWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("名称")
+    private String name;
+    @ApiModelProperty("图片地址")
+    private String imgUrl;
+    @ApiModelProperty("类型(1:弹窗,2:底部)")
+    private Integer type;
+    @ApiModelProperty("是否跳转(1:是,2:否)")
+    private Integer isJump;
+    @ApiModelProperty("跳转类型(1:外部,2:内部)")
+    private Integer jumpType;
+    @ApiModelProperty("跳转路径")
+    private String jumpUrl;
+    @ApiModelProperty("内容")
+    private String content;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getIsJump() {
+        return isJump;
+    }
+
+    public void setIsJump(Integer isJump) {
+        this.isJump = isJump;
+    }
+
+    public Integer getJumpType() {
+        return jumpType;
+    }
+
+    public void setJumpType(Integer jumpType) {
+        this.jumpType = jumpType;
+    }
+
+    public String getJumpUrl() {
+        return jumpUrl;
+    }
+
+    public void setJumpUrl(String jumpUrl) {
+        this.jumpUrl = jumpUrl;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    @Override
+    public String toString() {
+        return "AdvertisementWarpper{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", imgUrl='" + imgUrl + '\'' +
+                ", type=" + type +
+                ", isJump=" + isJump +
+                ", jumpType=" + jumpType +
+                ", jumpUrl='" + jumpUrl + '\'' +
+                ", content='" + content + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java
new file mode 100644
index 0000000..0efb0ed
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BankCardWarpper.java
@@ -0,0 +1,64 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+
+/**
+ * 银行卡
+ */
+@ApiModel
+public class BankCardWarpper {
+    /**
+     * 主键
+     */
+    @ApiModelProperty("id")
+    private Integer id;
+    /**
+     * 银行全称
+     */
+    @ApiModelProperty("银行全称")
+    private String bank;
+    /**
+     * 开户人姓名
+     */
+    @ApiModelProperty("开户人姓名")
+    private String name;
+    /**
+     * 银行卡号
+     */
+    @ApiModelProperty("银行卡号")
+    private String code;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getBank() {
+        return bank;
+    }
+
+    public void setBank(String bank) {
+        this.bank = bank;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java
new file mode 100644
index 0000000..9394d0c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/BaseWarpper.java
@@ -0,0 +1,146 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 公共封装类
+ */
+@ApiModel("公共对象")
+public class BaseWarpper {
+    @ApiModelProperty("主键id")
+    private Integer id;
+    @ApiModelProperty("名称")
+    private String name;
+    @ApiModelProperty("内容")
+    private String content;
+    @ApiModelProperty("数量")
+    private Integer number;
+    @ApiModelProperty("总数量")
+    private Integer totalNumber;
+    @ApiModelProperty("金额")
+    private Double amount;
+    @ApiModelProperty("时长(分钟)")
+    private Integer minute;
+    @ApiModelProperty("经度")
+    private Double lon;
+    @ApiModelProperty("纬度")
+    private Double lat;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    public Integer getTotalNumber() {
+        return totalNumber;
+    }
+
+    public void setTotalNumber(Integer totalNumber) {
+        this.totalNumber = totalNumber;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public Integer getMinute() {
+        return minute;
+    }
+
+    public void setMinute(Integer minute) {
+        this.minute = minute;
+    }
+
+    public Double getLon() {
+        return lon;
+    }
+
+    public void setLon(Double lon) {
+        this.lon = lon;
+    }
+
+    public Double getLat() {
+        return lat;
+    }
+
+    public void setLat(Double lat) {
+        this.lat = lat;
+    }
+
+    @Override
+    public String toString() {
+        return "BaseWarpper{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", content='" + content + '\'' +
+                ", number=" + number +
+                ", totalNumber=" + totalNumber +
+                ", amount=" + amount +
+                ", minute=" + minute +
+                ", lon=" + lon +
+                ", lat=" + lat +
+                '}';
+    }
+
+    public static BaseWarpper getBaseWarpper(Map<String, Object> map){
+        BaseWarpper baseWarpper = new BaseWarpper();
+        if(null != map){
+            baseWarpper.setId(null != map.get("id") ? Integer.valueOf(map.get("id").toString()) : 0);
+            baseWarpper.setName(null != map.get("name") ? map.get("name").toString() : "");
+            baseWarpper.setContent(null != map.get("content") ? map.get("content").toString() : "");
+            baseWarpper.setNumber(null != map.get("number") ? Integer.valueOf(map.get("number").toString()) : 0);
+            baseWarpper.setTotalNumber(null != map.get("totalNumber") ? Integer.valueOf(map.get("totalNumber").toString()) : 0);
+            baseWarpper.setAmount(null != map.get("amount") ? Double.valueOf(map.get("amount").toString()) : 0);
+            baseWarpper.setMinute(null != map.get("minute") ? Integer.valueOf(map.get("minute").toString()) : 0);
+            baseWarpper.setLon(null != map.get("lon") ? Double.valueOf(map.get("lon").toString()) : 0);
+            baseWarpper.setLat(null != map.get("lat") ? Double.valueOf(map.get("lat").toString()) : 0);
+        }
+        return baseWarpper;
+    }
+
+    public static List<BaseWarpper> getBaseWarppers(List<Map<String, Object>> list){
+        List<BaseWarpper> data = new ArrayList<>();
+        if(null != list){
+            for(Map<String, Object> map : list){
+                data.add(BaseWarpper.getBaseWarpper(map));
+            }
+        }
+        return data;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/CouponWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/CouponWarpper.java
new file mode 100644
index 0000000..0ffad5a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/CouponWarpper.java
@@ -0,0 +1,124 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("优惠券列表")
+public class CouponWarpper {
+    @ApiModelProperty("主键id")
+    private Integer id;
+    @ApiModelProperty("优惠金额")
+    private Double money;
+    @ApiModelProperty("类型(0=通用,1=专车,2=出租车,3=城际,4=小件物流)")
+    private Integer userType;
+    @ApiModelProperty("有效期")
+    private String time;
+    @ApiModelProperty("优惠券类型(1=抵扣,2=满减)")
+    private Integer type;
+    @ApiModelProperty("满金额")
+    private Double fullMoney;
+    @ApiModelProperty("公司名称")
+    private String name;
+    @ApiModelProperty("状态(1=未使用,2=已使用,3=已过期)")
+    private Integer state;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Double getFullMoney() {
+        return fullMoney;
+    }
+
+    public void setFullMoney(Double fullMoney) {
+        this.fullMoney = fullMoney;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "CouponWarpper{" +
+                "id=" + id +
+                ", money=" + money +
+                ", userType=" + userType +
+                ", time='" + time + '\'' +
+                ", type=" + type +
+                ", fullMoney=" + fullMoney +
+                ", name='" + name + '\'' +
+                '}';
+    }
+
+    public static List<CouponWarpper> getCouponWarppers(List<Map<String, Object>> maps){
+        List<CouponWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                CouponWarpper couponWarpper = new CouponWarpper();
+                couponWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+                couponWarpper.setMoney(null != map.get("money") ? Double.valueOf(String.valueOf(map.get("money"))) : 0);
+                couponWarpper.setUserType(null != map.get("userType") ? Integer.valueOf(String.valueOf(map.get("userType"))) : 0);
+                couponWarpper.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
+                couponWarpper.setType(null != map.get("type") ? Integer.valueOf(String.valueOf(map.get("type"))) : 0);
+                couponWarpper.setFullMoney(null != map.get("fullMoney") ? Double.valueOf(String.valueOf(map.get("fullMoney"))) : 0);
+                couponWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+                couponWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+                list.add(couponWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java
new file mode 100644
index 0000000..d1cb1a8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DeptWarpper.java
@@ -0,0 +1,33 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import java.util.Map;
+
+/**
+ * 部门列表的包装
+ *
+ * @author fengshuonan
+ * @date 2017年4月25日 18:10:31
+ */
+public class DeptWarpper extends BaseControllerWarpper {
+
+    public DeptWarpper(Object list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+
+        Integer pid = (Integer) map.get("pid");
+
+        if (ToolUtil.isEmpty(pid) || pid.equals(0)) {
+            map.put("pName", "--");
+        } else {
+            map.put("pName", ConstantFactory.me().getDeptName(pid));
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java
new file mode 100644
index 0000000..c56a1e4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DictWarpper.java
@@ -0,0 +1,36 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.modular.system.model.Dict;
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 字典列表的包装
+ *
+ * @author fengshuonan
+ * @date 2017年4月25日 18:10:31
+ */
+public class DictWarpper extends BaseControllerWarpper {
+
+    public DictWarpper(Object list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+        StringBuffer detail = new StringBuffer();
+        Integer id = Integer.valueOf(map.get("id").toString());
+        List<Dict> dicts = ConstantFactory.me().findInDict(id);
+        if(dicts != null){
+            for (Dict dict : dicts) {
+                detail.append(dict.getCode() + ":" +dict.getName() + ",");
+            }
+            map.put("detail", ToolUtil.removeSuffix(detail.toString(),","));
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java
new file mode 100644
index 0000000..83a7efc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverInfoWarpper.java
@@ -0,0 +1,168 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("司机详情")
+public class DriverInfoWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("头像")
+    private String avatar;
+    @ApiModelProperty("姓名")
+    private String name;
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("身份证号")
+    private String idcode;
+    @ApiModelProperty("车牌")
+    private String licensePlate;
+    @ApiModelProperty("车辆颜色")
+    private String carColor;
+    @ApiModelProperty("车辆品牌")
+    private String brand;
+    @ApiModelProperty("订单数")
+    private Integer orderNum;
+    @ApiModelProperty("评分")
+    private Double fraction;
+    @ApiModelProperty("1=未上班,2=空闲,3=服务中")
+    private Integer state;
+    @ApiModelProperty("司机业务类型")
+    private List<JSONObject> list;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIdcode() {
+        return idcode;
+    }
+
+    public void setIdcode(String idcode) {
+        this.idcode = idcode;
+    }
+
+    public String getLicensePlate() {
+        return licensePlate;
+    }
+
+    public void setLicensePlate(String licensePlate) {
+        this.licensePlate = licensePlate;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public Integer getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(Integer orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Double getFraction() {
+        return fraction;
+    }
+
+    public void setFraction(Double fraction) {
+        this.fraction = fraction;
+    }
+
+    public List<JSONObject> getList() {
+        return list;
+    }
+
+    public void setList(List<JSONObject> list) {
+        this.list = list;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getCarColor() {
+        return carColor;
+    }
+
+    public void setCarColor(String carColor) {
+        this.carColor = carColor;
+    }
+
+    @Override
+    public String toString() {
+        return "DriverInfoWarpper{" +
+                "id=" + id +
+                ", avatar='" + avatar + '\'' +
+                ", name='" + name + '\'' +
+                ", idcode='" + idcode + '\'' +
+                ", licensePlate='" + licensePlate + '\'' +
+                ", brand='" + brand + '\'' +
+                ", orderNum=" + orderNum +
+                ", fraction=" + fraction +
+                '}';
+    }
+
+    public static DriverInfoWarpper getDriverInfoWarpper(Map<String, Object> map){
+        DriverInfoWarpper driverInfoWarpper = new DriverInfoWarpper();
+        if(null != map){
+            driverInfoWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+            driverInfoWarpper.setAvatar(null != map.get("avatar") ? String.valueOf(map.get("avatar")) : "");
+            driverInfoWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+            driverInfoWarpper.setPhone(null != map.get("phone") ? String.valueOf(map.get("phone")) : "");
+            driverInfoWarpper.setIdcode(null != map.get("idcode") ? String.valueOf(map.get("idcode")) : "");
+            driverInfoWarpper.setLicensePlate(null != map.get("licensePlate") ? String.valueOf(map.get("licensePlate")) : "");
+            driverInfoWarpper.setBrand(null != map.get("brand") ? String.valueOf(map.get("brand")) : "");
+            driverInfoWarpper.setOrderNum(null != map.get("orderNum") ? Integer.valueOf(String.valueOf(map.get("orderNum"))) : 0);
+            driverInfoWarpper.setFraction(null != map.get("fraction") ? Double.valueOf(String.valueOf(map.get("fraction"))) : 0);
+            driverInfoWarpper.setList(null != map.get("list") ? JSONArray.parseArray(JSON.toJSONString(map.get("list")), JSONObject.class) : new ArrayList<>());
+            driverInfoWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+            driverInfoWarpper.setCarColor(null != map.get("carColor") ? String.valueOf(map.get("carColor")) : "");
+        }
+        return driverInfoWarpper;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/EndPushWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/EndPushWarpper.java
new file mode 100644
index 0000000..9cd1f31
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/EndPushWarpper.java
@@ -0,0 +1,47 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel("下单后无人接单提醒")
+public class EndPushWarpper {
+    @ApiModelProperty("订单id")
+    private Integer orderId = 0;
+    @ApiModelProperty("订单类型()")
+    private Integer orderType = 0;
+    @ApiModelProperty("状态(1=正在推单,2=无人接单)")
+    private Integer state = 0;
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "EndPushWarpper{" +
+                "orderId=" + orderId +
+                ", orderType=" + orderType +
+                ", state=" + state +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralGoodsWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralGoodsWarpper.java
new file mode 100644
index 0000000..823289d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralGoodsWarpper.java
@@ -0,0 +1,84 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("积分商品")
+public class IntegralGoodsWarpper {
+    @ApiModelProperty("商品id")
+    private Integer id;
+    @ApiModelProperty("商品名称")
+    private String name;
+    @ApiModelProperty("商品图片")
+    private String url;
+    @ApiModelProperty("兑换积分")
+    private Integer integral;
+    @ApiModelProperty("商品说明")
+    private String instructions;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    public String getInstructions() {
+        return instructions;
+    }
+
+    public void setInstructions(String instructions) {
+        this.instructions = instructions;
+    }
+
+    public static IntegralGoodsWarpper getIntegralGoodsWarpper(Map<String, Object> map){
+        IntegralGoodsWarpper integralGoodsWarpper = new IntegralGoodsWarpper();
+        if(null != map){
+            integralGoodsWarpper.setId(null != map.get("id") ? Integer.valueOf(map.get("id").toString()) : 0);
+            integralGoodsWarpper.setName(null != map.get("name") ? map.get("name").toString() : "");
+            integralGoodsWarpper.setUrl(null != map.get("url") ? map.get("url").toString() : "");
+            integralGoodsWarpper.setIntegral(null != map.get("integral") ? Integer.valueOf(map.get("integral").toString()) : 0);
+            integralGoodsWarpper.setInstructions(null != map.get("instructions") ? map.get("instructions").toString() : "");
+        }
+        return integralGoodsWarpper;
+    }
+
+    public static List<IntegralGoodsWarpper> getIntegralGoodsWarppers(List<Map<String, Object>> maps){
+        List<IntegralGoodsWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                list.add(IntegralGoodsWarpper.getIntegralGoodsWarpper(map));
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralOrderWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralOrderWarpper.java
new file mode 100644
index 0000000..54f215d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/IntegralOrderWarpper.java
@@ -0,0 +1,74 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("历史订单")
+public class IntegralOrderWarpper {
+    @ApiModelProperty("订单id")
+    private Integer id;
+    @ApiModelProperty("商品名称")
+    private String name;
+    @ApiModelProperty("兑换时间")
+    private String time;
+    @ApiModelProperty("兑换积分")
+    private String integral;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(String integral) {
+        this.integral = integral;
+    }
+
+
+    public static IntegralOrderWarpper getIntegralOrderWarpper(Map<String, Object> map){
+        IntegralOrderWarpper integralOrderWarpper = new IntegralOrderWarpper();
+        if(null != map){
+            integralOrderWarpper.setId(null != map.get("id") ? Integer.valueOf(map.get("id").toString()) : 0);
+            integralOrderWarpper.setName(null != map.get("name") ? map.get("name").toString() : "");
+            integralOrderWarpper.setTime(null != map.get("time") ? map.get("time").toString() : "");
+            integralOrderWarpper.setIntegral(null != map.get("integral") ? map.get("integral").toString() : "");
+        }
+        return integralOrderWarpper;
+    }
+
+    public static List<IntegralOrderWarpper> getIntegralOrderWarppers(List<Map<String, Object>> maps){
+        List<IntegralOrderWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                list.add(IntegralOrderWarpper.getIntegralOrderWarpper(map));
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/InvoiceWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/InvoiceWarpper.java
new file mode 100644
index 0000000..ec52c79
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/InvoiceWarpper.java
@@ -0,0 +1,104 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 发票
+ */
+@ApiModel("发票")
+public class InvoiceWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("申请时间")
+    private String insertTime;
+    @ApiModelProperty("发票类型说明")
+    private String type;
+    @ApiModelProperty("发票内容")
+    private String content;
+    @ApiModelProperty("开票状态(1=待开,2=已开,3=失败)")
+    private Integer state;
+    @ApiModelProperty("开票金额")
+    private Double money;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(String insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    @Override
+    public String toString() {
+        return "InvoiceWarpper{" +
+                "id=" + id +
+                ", insertTime='" + insertTime + '\'' +
+                ", type='" + type + '\'' +
+                ", content='" + content + '\'' +
+                ", state=" + state +
+                ", money=" + money +
+                '}';
+    }
+
+    public static List<InvoiceWarpper> getInvoiceWarpper(List<Map<String, Object>> maps){
+        List<InvoiceWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                InvoiceWarpper invoiceWarpper = new InvoiceWarpper();
+                invoiceWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+                invoiceWarpper.setInsertTime(null != map.get("insertTime") ? String.valueOf(map.get("insertTime")) : "");
+                invoiceWarpper.setType(null != map.get("type") ? String.valueOf(map.get("type")) : "");
+                invoiceWarpper.setContent(null != map.get("content") ? String.valueOf(map.get("content")) : "");
+                invoiceWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+                invoiceWarpper.setMoney(null != map.get("money") ? Double.valueOf(String.valueOf(map.get("money"))) : 0);
+                list.add(invoiceWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java
new file mode 100644
index 0000000..6cf266b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LogWarpper.java
@@ -0,0 +1,44 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+import com.stylefeng.guns.core.util.Contrast;
+import com.stylefeng.guns.core.util.ToolUtil;
+
+import java.util.Map;
+
+/**
+ * 日志列表的包装类
+ *
+ * @author fengshuonan
+ * @date 2017年4月5日22:56:24
+ */
+public class LogWarpper extends BaseControllerWarpper {
+
+    public LogWarpper(Object list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+        String message = (String) map.get("message");
+
+        Integer userid = (Integer) map.get("userid");
+        map.put("userName", ConstantFactory.me().getUserNameById(userid));
+
+        //如果信息过长,则只截取前100位字符串
+        if (ToolUtil.isNotEmpty(message) && message.length() >= 100) {
+            String subMessage = message.substring(0, 100) + "...";
+            map.put("message", subMessage);
+        }
+
+        //如果信息中包含分割符号;;;   则分割字符串返给前台
+        if (ToolUtil.isNotEmpty(message) && message.indexOf(Contrast.separator) != -1) {
+            String[] msgs = message.split(Contrast.separator);
+            map.put("regularMessage",msgs);
+        }else{
+            map.put("regularMessage",message);
+        }
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java
new file mode 100644
index 0000000..a095cbf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/LoginWarpper.java
@@ -0,0 +1,68 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel("登录")
+public class LoginWarpper {
+    @ApiModelProperty("id")
+    private Integer id;
+    @ApiModelProperty("token")
+    private String token;
+    @ApiModelProperty("appid")
+    private String appid;
+    @ApiModelProperty("是否有手机号码(1=否,2=是)")
+    private Integer phone;
+    @ApiModelProperty("紧急联系人")
+    private String emergencyContact;
+    @ApiModelProperty("联系人电话")
+    private String emergencyContactNumber;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getToken() {
+        return token;
+    }
+
+    public void setToken(String token) {
+        this.token = token;
+    }
+
+    public String getAppid() {
+        return appid;
+    }
+
+    public void setAppid(String appid) {
+        this.appid = appid;
+    }
+
+    public Integer getPhone() {
+        return phone;
+    }
+
+    public void setPhone(Integer phone) {
+        this.phone = phone;
+    }
+
+    public String getEmergencyContact() {
+        return emergencyContact;
+    }
+
+    public void setEmergencyContact(String emergencyContact) {
+        this.emergencyContact = emergencyContact;
+    }
+
+    public String getEmergencyContactNumber() {
+        return emergencyContactNumber;
+    }
+
+    public void setEmergencyContactNumber(String emergencyContactNumber) {
+        this.emergencyContactNumber = emergencyContactNumber;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java
new file mode 100644
index 0000000..3503f3e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/MenuWarpper.java
@@ -0,0 +1,28 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.constant.IsMenu;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 菜单列表的包装类
+ *
+ * @author fengshuonan
+ * @date 2017年2月19日15:07:29
+ */
+public class MenuWarpper extends BaseControllerWarpper {
+
+    public MenuWarpper(List<Map<String, Object>> list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+        map.put("statusName", ConstantFactory.me().getMenuStatusName((Integer) map.get("status")));
+        map.put("isMenuName", IsMenu.valueOf((Integer) map.get("ismenu")));
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java
new file mode 100644
index 0000000..6e5cc76
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/NoticeWrapper.java
@@ -0,0 +1,26 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+
+import java.util.Map;
+
+/**
+ * 部门列表的包装
+ *
+ * @author fengshuonan
+ * @date 2017年4月25日 18:10:31
+ */
+public class NoticeWrapper extends BaseControllerWarpper {
+
+    public NoticeWrapper(Object list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+        Integer creater = (Integer) map.get("creater");
+        map.put("createrName", ConstantFactory.me().getUserNameById(creater));
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderDriverWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderDriverWarpper.java
new file mode 100644
index 0000000..9c72d33
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderDriverWarpper.java
@@ -0,0 +1,181 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Map;
+
+@ApiModel("订单中的司机")
+public class OrderDriverWarpper {
+    @ApiModelProperty("订单id")
+    private Integer orderId;
+    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)")
+    private Integer state;
+    @ApiModelProperty("司机id")
+    private Integer driverId;
+    @ApiModelProperty("姓名")
+    private String name;
+    @ApiModelProperty("头像")
+    private String avatar;
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("车牌号")
+    private String carCode;
+    @ApiModelProperty("车辆品牌及颜色")
+    private String carName;
+    @ApiModelProperty("历史评分")
+    private Double score;
+    @ApiModelProperty("历史单数")
+    private Integer num;
+    @ApiModelProperty("出发时间")
+    private String time;
+    @ApiModelProperty("起点")
+    private String start;
+    @ApiModelProperty("终点")
+    private String end;
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCarCode() {
+        return carCode;
+    }
+
+    public void setCarCode(String carCode) {
+        this.carCode = carCode;
+    }
+
+    public String getCarName() {
+        return carName;
+    }
+
+    public void setCarName(String carName) {
+        this.carName = carName;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getStart() {
+        return start;
+    }
+
+    public void setStart(String start) {
+        this.start = start;
+    }
+
+    public String getEnd() {
+        return end;
+    }
+
+    public void setEnd(String end) {
+        this.end = end;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderDriverWarpper{" +
+                "orderId=" + orderId +
+                ", state=" + state +
+                ", driverId=" + driverId +
+                ", name='" + name + '\'' +
+                ", avatar='" + avatar + '\'' +
+                ", phone='" + phone + '\'' +
+                ", carCode='" + carCode + '\'' +
+                ", carName='" + carName + '\'' +
+                ", score=" + score +
+                ", num=" + num +
+                ", time='" + time + '\'' +
+                ", start='" + start + '\'' +
+                ", end='" + end + '\'' +
+                '}';
+    }
+
+
+    public static OrderDriverWarpper getOrderDriverWarpper(Map<String, Object> map){
+        OrderDriverWarpper orderDriverWarpper = new OrderDriverWarpper();
+        if(null != map){
+            orderDriverWarpper.setOrderId(null != map.get("orderId") ? Integer.valueOf(String.valueOf(map.get("orderId"))) : 0);
+            orderDriverWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+            orderDriverWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
+            orderDriverWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+            orderDriverWarpper.setAvatar(null != map.get("avatar") ? String.valueOf(map.get("avatar")) : "");
+            orderDriverWarpper.setPhone(null != map.get("phone") ? String.valueOf(map.get("phone")) : "");
+            orderDriverWarpper.setCarCode(null != map.get("carCode") ? String.valueOf(map.get("carCode")) : "");
+            orderDriverWarpper.setCarName(null != map.get("carName") ? String.valueOf(map.get("carName")) : "");
+            orderDriverWarpper.setScore(null != map.get("score") ? Double.valueOf(String.valueOf(map.get("score"))) : 0);
+            orderDriverWarpper.setNum(null != map.get("num") ? Integer.valueOf(String.valueOf(map.get("num"))) : 0);
+            orderDriverWarpper.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
+            orderDriverWarpper.setStart(null != map.get("start") ? String.valueOf(map.get("start")) : "");
+            orderDriverWarpper.setEnd(null != map.get("end") ? String.valueOf(map.get("end")) : "");
+        }
+        return orderDriverWarpper;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderEvaluateWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderEvaluateWarpper.java
new file mode 100644
index 0000000..f16fc2b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderEvaluateWarpper.java
@@ -0,0 +1,66 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("历史司机评价")
+public class OrderEvaluateWarpper {
+    @ApiModelProperty("评价时间")
+    private String time;
+    @ApiModelProperty("评价内容")
+    private String content;
+    @ApiModelProperty("评分")
+    private Double fraction;
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Double getFraction() {
+        return fraction;
+    }
+
+    public void setFraction(Double fraction) {
+        this.fraction = fraction;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderEvaluateWarpper{" +
+                "time='" + time + '\'' +
+                ", content='" + content + '\'' +
+                ", fraction=" + fraction +
+                '}';
+    }
+
+
+    public static List<OrderEvaluateWarpper> getOrderEvaluateWarpper(List<Map<String, Object>> maps){
+        List<OrderEvaluateWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                OrderEvaluateWarpper orderEvaluateWarpper = new OrderEvaluateWarpper();
+                orderEvaluateWarpper.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
+                orderEvaluateWarpper.setContent(null != map.get("content") ? String.valueOf(map.get("content")) : "");
+                orderEvaluateWarpper.setFraction(null != map.get("fraction") ? Double.valueOf(String.valueOf(map.get("fraction"))) : 0);
+                list.add(orderEvaluateWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java
new file mode 100644
index 0000000..93ef99e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderInfoWarpper.java
@@ -0,0 +1,716 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Map;
+
+@ApiModel("订单详情")
+public class OrderInfoWarpper {
+    @ApiModelProperty("订单id")
+    private Integer orderId;
+    @ApiModelProperty("订单类型(1=专车,2=出租车,3=跨城)")
+    private Integer orderType;
+    @ApiModelProperty("订单类型(1=普通订单,2=摆渡车)")
+    private Integer type;
+    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)")
+    private Integer state;
+    @ApiModelProperty("下单时间")
+    private String insertTime;
+    @ApiModelProperty("出行时间")
+    private String travelTime;
+    @ApiModelProperty("出行时间(完整)")
+    private String travelTime1;
+    @ApiModelProperty("班次时间")
+    private String lineShiftTime;
+    @ApiModelProperty("到达预约点时间")
+    private String arriveTime;
+    @ApiModelProperty("起点经度")
+    private Double startLon;
+    @ApiModelProperty("起点纬度")
+    private Double startLat;
+    @ApiModelProperty("起点")
+    private String startAddress;
+    @ApiModelProperty("起点市")
+    private String startCity;
+    @ApiModelProperty("终点经度")
+    private Double endLon;
+    @ApiModelProperty("终点纬度")
+    private Double endLat;
+    @ApiModelProperty("终点")
+    private String endAddress;
+    @ApiModelProperty("终点市")
+    private String endCity;
+    @ApiModelProperty("司机id")
+    private Integer driverId;
+    @ApiModelProperty("司机头像")
+    private String driverAvatar;
+    @ApiModelProperty("司机名称")
+    private String driverName;
+    @ApiModelProperty("车牌")
+    private String licensePlate;
+    @ApiModelProperty("车辆品牌")
+    private String brand;
+    @ApiModelProperty("车辆颜色")
+    private String carColor;
+    @ApiModelProperty("司机评分")
+    private Double score;
+    @ApiModelProperty("历史单数")
+    private Integer orderNum;
+    @ApiModelProperty("司机电话")
+    private String driverPhone;
+    @ApiModelProperty("订单取消支付金额")
+    private Double cancelPayMoney;
+    @ApiModelProperty("取消单预支付id(支付的时候需要回传)")
+    private Integer cancelId;
+    @ApiModelProperty("订单总金额")
+    private Double orderMoney;
+    @ApiModelProperty("起步里程")
+    private Double startMoney;
+    @ApiModelProperty("起步价")
+    private Double startMileage;
+    @ApiModelProperty("里程数")
+    private Double mileage;
+    @ApiModelProperty("里程费")
+    private Double mileageMoney;
+    @ApiModelProperty("时长")
+    private Double duration;
+    @ApiModelProperty("时长费")
+    private Double durationMoney;
+    @ApiModelProperty("等待时长")
+    private Double wait;
+    @ApiModelProperty("等待费")
+    private Double waitMoney;
+    @ApiModelProperty("远途里程")
+    private Double longDistance;
+    @ApiModelProperty("远途费")
+    private Double longDistanceMoney;
+    @ApiModelProperty("行程费")
+    private Double travelMoney;
+    @ApiModelProperty("停车费")
+    private Double parkMoney;
+    @ApiModelProperty("过路费")
+    private Double roadTollMoney;
+    @ApiModelProperty("红包抵扣金额")
+    private Double redPacketMoney;
+    @ApiModelProperty("优惠券抵扣金额")
+    private Double couponMoney;
+    @ApiModelProperty("discount")
+    private Double discount;
+    @ApiModelProperty("折扣优惠金额")
+    private Double discountMoney;
+    @ApiModelProperty("订单支付金额")
+    private Double payMoney;
+    @ApiModelProperty("小费金额")
+    private Double tipMoney;
+    @ApiModelProperty("订单评分")
+    private Integer orderScore;
+    @ApiModelProperty("评价内容")
+    private String evaluate;
+    @ApiModelProperty("接单设备(1=APP,2=车载端)")
+    private Integer device;
+    @ApiModelProperty("出行人数")
+    private Integer peopleNumber;
+    @ApiModelProperty("座位号")
+    private String seatNumber;
+    @ApiModelProperty("取消方(1=用户,2=后台,3=调度)")
+    private Integer cancelUserType;
+    @ApiModelProperty("取消费用")
+    private Double cancelMoney;
+    @ApiModelProperty("取消原因")
+    private String cancelReason;
+    @ApiModelProperty("取消备注")
+    private String cancelRemark;
+    @ApiModelProperty("备注")
+    private String remark;
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public String getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(String travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getDriverAvatar() {
+        return driverAvatar;
+    }
+
+    public void setDriverAvatar(String driverAvatar) {
+        this.driverAvatar = driverAvatar;
+    }
+
+    public String getDriverName() {
+        return driverName;
+    }
+
+    public void setDriverName(String driverName) {
+        this.driverName = driverName;
+    }
+
+    public String getLicensePlate() {
+        return licensePlate;
+    }
+
+    public void setLicensePlate(String licensePlate) {
+        this.licensePlate = licensePlate;
+    }
+
+    public String getBrand() {
+        return brand;
+    }
+
+    public void setBrand(String brand) {
+        this.brand = brand;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public Integer getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(Integer orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public String getDriverPhone() {
+        return driverPhone;
+    }
+
+    public void setDriverPhone(String driverPhone) {
+        this.driverPhone = driverPhone;
+    }
+
+    public Double getCancelPayMoney() {
+        return cancelPayMoney;
+    }
+
+    public void setCancelPayMoney(Double cancelPayMoney) {
+        this.cancelPayMoney = cancelPayMoney;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Double getTipMoney() {
+        return tipMoney;
+    }
+
+    public void setTipMoney(Double tipMoney) {
+        this.tipMoney = tipMoney;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getStartMoney() {
+        return startMoney;
+    }
+
+    public void setStartMoney(Double startMoney) {
+        this.startMoney = startMoney;
+    }
+
+    public Double getMileageMoney() {
+        return mileageMoney;
+    }
+
+    public void setMileageMoney(Double mileageMoney) {
+        this.mileageMoney = mileageMoney;
+    }
+
+    public Double getDurationMoney() {
+        return durationMoney;
+    }
+
+    public void setDurationMoney(Double durationMoney) {
+        this.durationMoney = durationMoney;
+    }
+
+    public Double getLongDistanceMoney() {
+        return longDistanceMoney;
+    }
+
+    public void setLongDistanceMoney(Double longDistanceMoney) {
+        this.longDistanceMoney = longDistanceMoney;
+    }
+
+    public String getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(String insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getArriveTime() {
+        return arriveTime;
+    }
+
+    public void setArriveTime(String arriveTime) {
+        this.arriveTime = arriveTime;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public Integer getOrderScore() {
+        return orderScore;
+    }
+
+    public void setOrderScore(Integer orderScore) {
+        this.orderScore = orderScore;
+    }
+
+    public String getEvaluate() {
+        return evaluate;
+    }
+
+    public void setEvaluate(String evaluate) {
+        this.evaluate = evaluate;
+    }
+
+    public String getCarColor() {
+        return carColor;
+    }
+
+    public void setCarColor(String carColor) {
+        this.carColor = carColor;
+    }
+
+    public Integer getCancelId() {
+        return cancelId;
+    }
+
+    public void setCancelId(Integer cancelId) {
+        this.cancelId = cancelId;
+    }
+
+    public Double getTravelMoney() {
+        return travelMoney;
+    }
+
+    public void setTravelMoney(Double travelMoney) {
+        this.travelMoney = travelMoney;
+    }
+
+    public Double getParkMoney() {
+        return parkMoney;
+    }
+
+    public void setParkMoney(Double parkMoney) {
+        this.parkMoney = parkMoney;
+    }
+
+    public Double getRoadTollMoney() {
+        return roadTollMoney;
+    }
+
+    public void setRoadTollMoney(Double roadTollMoney) {
+        this.roadTollMoney = roadTollMoney;
+    }
+
+    public Double getRedPacketMoney() {
+        return redPacketMoney;
+    }
+
+    public void setRedPacketMoney(Double redPacketMoney) {
+        this.redPacketMoney = redPacketMoney;
+    }
+
+    public Double getCouponMoney() {
+        return couponMoney;
+    }
+
+    public void setCouponMoney(Double couponMoney) {
+        this.couponMoney = couponMoney;
+    }
+
+    public Double getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Double discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getDevice() {
+        return device;
+    }
+
+    public void setDevice(Integer device) {
+        this.device = device;
+    }
+
+    public Integer getPeopleNumber() {
+        return peopleNumber;
+    }
+
+    public void setPeopleNumber(Integer peopleNumber) {
+        this.peopleNumber = peopleNumber;
+    }
+
+    public String getSeatNumber() {
+        return seatNumber;
+    }
+
+    public void setSeatNumber(String seatNumber) {
+        this.seatNumber = seatNumber;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Double getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Double duration) {
+        this.duration = duration;
+    }
+
+    public Double getWait() {
+        return wait;
+    }
+
+    public void setWait(Double wait) {
+        this.wait = wait;
+    }
+
+    public Double getWaitMoney() {
+        return waitMoney;
+    }
+
+    public void setWaitMoney(Double waitMoney) {
+        this.waitMoney = waitMoney;
+    }
+
+    public Double getLongDistance() {
+        return longDistance;
+    }
+
+    public void setLongDistance(Double longDistance) {
+        this.longDistance = longDistance;
+    }
+
+    public Double getStartMileage() {
+        return startMileage;
+    }
+
+    public void setStartMileage(Double startMileage) {
+        this.startMileage = startMileage;
+    }
+
+    public String getTravelTime1() {
+        return travelTime1;
+    }
+
+    public void setTravelTime1(String travelTime1) {
+        this.travelTime1 = travelTime1;
+    }
+
+    public Double getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(Double discount) {
+        this.discount = discount;
+    }
+
+    public Integer getCancelUserType() {
+        return cancelUserType;
+    }
+
+    public void setCancelUserType(Integer cancelUserType) {
+        this.cancelUserType = cancelUserType;
+    }
+
+    public Double getCancelMoney() {
+        return cancelMoney;
+    }
+
+    public void setCancelMoney(Double cancelMoney) {
+        this.cancelMoney = cancelMoney;
+    }
+
+    public String getCancelReason() {
+        return cancelReason;
+    }
+
+    public void setCancelReason(String cancelReason) {
+        this.cancelReason = cancelReason;
+    }
+
+    public String getCancelRemark() {
+        return cancelRemark;
+    }
+
+    public void setCancelRemark(String cancelRemark) {
+        this.cancelRemark = cancelRemark;
+    }
+
+    public String getStartCity() {
+        return startCity;
+    }
+
+    public void setStartCity(String startCity) {
+        this.startCity = startCity;
+    }
+
+    public String getEndCity() {
+        return endCity;
+    }
+
+    public void setEndCity(String endCity) {
+        this.endCity = endCity;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public String getLineShiftTime() {
+        return lineShiftTime;
+    }
+
+    public void setLineShiftTime(String lineShiftTime) {
+        this.lineShiftTime = lineShiftTime;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderInfoWarpper{" +
+                "orderId=" + orderId +
+                ", type=" + type +
+                ", state=" + state +
+                ", insertTime='" + insertTime + '\'' +
+                ", travelTime='" + travelTime + '\'' +
+                ", travelTime1='" + travelTime1 + '\'' +
+                ", arriveTime='" + arriveTime + '\'' +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", startCity='" + startCity + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", endCity='" + endCity + '\'' +
+                ", driverId=" + driverId +
+                ", driverAvatar='" + driverAvatar + '\'' +
+                ", driverName='" + driverName + '\'' +
+                ", licensePlate='" + licensePlate + '\'' +
+                ", brand='" + brand + '\'' +
+                ", carColor='" + carColor + '\'' +
+                ", score=" + score +
+                ", orderNum=" + orderNum +
+                ", driverPhone='" + driverPhone + '\'' +
+                ", cancelPayMoney=" + cancelPayMoney +
+                ", cancelId=" + cancelId +
+                ", orderMoney=" + orderMoney +
+                ", startMoney=" + startMoney +
+                ", startMileage=" + startMileage +
+                ", mileage=" + mileage +
+                ", mileageMoney=" + mileageMoney +
+                ", duration=" + duration +
+                ", durationMoney=" + durationMoney +
+                ", wait=" + wait +
+                ", waitMoney=" + waitMoney +
+                ", longDistance=" + longDistance +
+                ", longDistanceMoney=" + longDistanceMoney +
+                ", travelMoney=" + travelMoney +
+                ", parkMoney=" + parkMoney +
+                ", roadTollMoney=" + roadTollMoney +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", payMoney=" + payMoney +
+                ", tipMoney=" + tipMoney +
+                ", orderScore=" + orderScore +
+                ", evaluate='" + evaluate + '\'' +
+                ", device=" + device +
+                ", peopleNumber=" + peopleNumber +
+                ", seatNumber='" + seatNumber + '\'' +
+                ", cancelUserType=" + cancelUserType +
+                ", cancelMoney=" + cancelMoney +
+                ", cancelReason='" + cancelReason + '\'' +
+                ", cancelRemark='" + cancelRemark + '\'' +
+                '}';
+    }
+
+    public static OrderInfoWarpper getOrderInfoWarpper(Map<String, Object> map){
+        OrderInfoWarpper orderInfoWarpper = new OrderInfoWarpper();
+        if(null != map){
+            orderInfoWarpper.setOrderId(null != map.get("orderId") ? Integer.valueOf(String.valueOf(map.get("orderId"))) : 0);
+            orderInfoWarpper.setOrderType(null != map.get("orderType") ? Integer.valueOf(map.get("orderType").toString()) : 0);
+            orderInfoWarpper.setType(null != map.get("type") ? Integer.valueOf(map.get("type").toString()) : 0);
+            orderInfoWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+            orderInfoWarpper.setTravelTime(null != map.get("travelTime") ? String.valueOf(map.get("travelTime")) : "");
+            orderInfoWarpper.setTravelTime1(null != map.get("travelTime1") ? String.valueOf(map.get("travelTime1")) : "");
+            orderInfoWarpper.setStartAddress(null != map.get("startAddress") ? String.valueOf(map.get("startAddress")) : "");
+            orderInfoWarpper.setEndAddress(null != map.get("endAddress") ? String.valueOf(map.get("endAddress")) : "");
+            orderInfoWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
+            orderInfoWarpper.setDriverAvatar(null != map.get("driverAvatar") ? String.valueOf(map.get("driverAvatar")) : "");
+            orderInfoWarpper.setDriverName(null != map.get("driverName") ? String.valueOf(map.get("driverName")).substring(0, 1) + "师傅" : "");
+            orderInfoWarpper.setLicensePlate(null != map.get("licensePlate") ? String.valueOf(map.get("licensePlate")) : "");
+            orderInfoWarpper.setBrand(null != map.get("brand") ? String.valueOf(map.get("brand")) : "");
+            orderInfoWarpper.setScore(null != map.get("score") ? Double.valueOf(String.valueOf(map.get("score"))) : 0);
+            orderInfoWarpper.setOrderNum(null != map.get("orderNum") ? Integer.valueOf(String.valueOf(map.get("orderNum"))) : 0);
+            orderInfoWarpper.setDriverPhone(null != map.get("driverPhone") ? String.valueOf(map.get("driverPhone")) : "");
+            orderInfoWarpper.setCancelPayMoney(null != map.get("cancelPayMoney") ? Double.valueOf(String.valueOf(map.get("cancelPayMoney"))) : 0);
+            orderInfoWarpper.setPayMoney(null != map.get("payMoney") ? Double.valueOf(String.valueOf(map.get("payMoney"))) : 0);
+            orderInfoWarpper.setTipMoney(null != map.get("tipMoney") ? Double.valueOf(String.valueOf(map.get("tipMoney"))) : 0);
+            orderInfoWarpper.setOrderMoney(null != map.get("orderMoney") ? Double.valueOf(String.valueOf(map.get("orderMoney"))) : 0);
+            orderInfoWarpper.setStartMileage(null != map.get("startMileage") ? Double.valueOf(String.valueOf(map.get("startMileage"))) : 0);
+            orderInfoWarpper.setStartMoney(null != map.get("startMoney") ? Double.valueOf(String.valueOf(map.get("startMoney"))) : 0);
+            orderInfoWarpper.setMileage(null != map.get("mileageKilometers") ? Double.valueOf(String.valueOf(map.get("mileageKilometers"))) : 0);
+            orderInfoWarpper.setMileageMoney(null != map.get("mileageMoney") ? Double.valueOf(String.valueOf(map.get("mileageMoney"))) : 0);
+            orderInfoWarpper.setDuration(null != map.get("duration") ? Double.valueOf(String.valueOf(map.get("duration"))) : 0);
+            orderInfoWarpper.setDurationMoney(null != map.get("durationMoney") ? Double.valueOf(String.valueOf(map.get("durationMoney"))) : 0);
+            orderInfoWarpper.setWait(null != map.get("wait") ? Double.valueOf(String.valueOf(map.get("wait"))) : 0);
+            orderInfoWarpper.setWaitMoney(null != map.get("waitMoney") ? Double.valueOf(String.valueOf(map.get("waitMoney"))) : 0);
+            orderInfoWarpper.setLongDistance(null != map.get("longDistance") ? Double.valueOf(String.valueOf(map.get("longDistance"))) : 0);
+            orderInfoWarpper.setLongDistanceMoney(null != map.get("longDistanceMoney") ? Double.valueOf(String.valueOf(map.get("longDistanceMoney"))) : 0);
+            orderInfoWarpper.setInsertTime(null != map.get("insertTime") ? String.valueOf(map.get("insertTime")) : "");
+            orderInfoWarpper.setArriveTime(null != map.get("arriveTime") ? String.valueOf(map.get("arriveTime")) : "");
+            orderInfoWarpper.setStartLon(null != map.get("startLon") ? Double.valueOf(String.valueOf(map.get("startLon"))) : 0);
+            orderInfoWarpper.setStartLat(null != map.get("startLat") ? Double.valueOf(String.valueOf(map.get("startLat"))) : 0);
+            orderInfoWarpper.setEndLon(null != map.get("endLon") ? Double.valueOf(String.valueOf(map.get("endLon"))) : 0);
+            orderInfoWarpper.setEndLat(null != map.get("endLat") ? Double.valueOf(String.valueOf(map.get("endLat"))) : 0);
+            orderInfoWarpper.setOrderScore(null != map.get("orderScore") ? Double.valueOf(String.valueOf(map.get("orderScore"))).intValue() : 0);
+            orderInfoWarpper.setEvaluate(null != map.get("evaluate") ? String.valueOf(map.get("evaluate")) : "");
+            orderInfoWarpper.setCarColor(null != map.get("carColor") ? String.valueOf(map.get("carColor")) : "");
+            orderInfoWarpper.setCancelId(null != map.get("cancelId") ? Integer.valueOf(String.valueOf(map.get("cancelId"))) : 0);
+            orderInfoWarpper.setTravelMoney(null != map.get("travelMoney") ? Double.valueOf(String.valueOf(map.get("travelMoney"))) : 0);
+            orderInfoWarpper.setParkMoney(null != map.get("parkMoney") ? Double.valueOf(String.valueOf(map.get("parkMoney"))) : 0);
+            orderInfoWarpper.setRoadTollMoney(null != map.get("roadTollMoney") ? Double.valueOf(String.valueOf(map.get("roadTollMoney"))) : 0);
+            orderInfoWarpper.setRedPacketMoney(null != map.get("redPacketMoney") ? Double.valueOf(String.valueOf(map.get("redPacketMoney"))) : 0);
+            orderInfoWarpper.setCouponMoney(null != map.get("couponMoney") ? Double.valueOf(String.valueOf(map.get("couponMoney"))) : 0);
+            orderInfoWarpper.setDiscountMoney(null != map.get("discountMoney") ? Double.valueOf(String.valueOf(map.get("discountMoney"))) : 0);
+            orderInfoWarpper.setDevice(null != map.get("device") ? Integer.valueOf(String.valueOf(map.get("device"))) : 1);
+            orderInfoWarpper.setPeopleNumber(null != map.get("peopleNumber") ? Integer.valueOf(String.valueOf(map.get("peopleNumber"))) : 1);
+            orderInfoWarpper.setSeatNumber(null != map.get("seatNumber") ? String.valueOf(map.get("seatNumber")) : "");
+            orderInfoWarpper.setDiscount(null != map.get("discount") ? Double.valueOf(map.get("discount").toString()) : 0);
+            orderInfoWarpper.setCancelUserType(null != map.get("cancelUserType") ? Integer.valueOf(map.get("cancelUserType").toString()) : 0);
+            orderInfoWarpper.setCancelMoney(null != map.get("cancelMoney") ? Double.valueOf(map.get("cancelMoney").toString()) : 0);
+            orderInfoWarpper.setCancelReason(null != map.get("cancelReason") ? map.get("cancelReason").toString() : "");
+            orderInfoWarpper.setCancelRemark(null != map.get("cancelRemark") ? map.get("cancelRemark").toString() : "");
+            orderInfoWarpper.setStartCity(null != map.get("startCity") ? map.get("startCity").toString() : "");
+            orderInfoWarpper.setEndCity(null != map.get("endCity") ? map.get("endCity").toString() : "");
+            orderInfoWarpper.setRemark(null != map.get("remark") ? map.get("remark").toString() : "");
+            orderInfoWarpper.setLineShiftTime(null != map.get("lineShiftTime") ? map.get("lineShiftTime").toString() : "");
+        }
+        return orderInfoWarpper;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderServerWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderServerWarpper.java
new file mode 100644
index 0000000..a1432a7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderServerWarpper.java
@@ -0,0 +1,128 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel("订单服务中的数据")
+public class OrderServerWarpper {
+    @ApiModelProperty("订单id")
+    private Integer orderId;
+    @ApiModelProperty("订单类型")
+    private Integer orderType;
+    @ApiModelProperty("司机位置经度")
+    private String lon;
+    @ApiModelProperty("司机位置纬度")
+    private String lat;
+    @ApiModelProperty("当前位置距离预约点的剩余里程")
+    private String reservationMileage;
+    @ApiModelProperty("当前位置距离预约点的剩余分钟")
+    private String reservationTime;
+    @ApiModelProperty("距离起点已经服务的里程")
+    private String servedMileage;
+    @ApiModelProperty("距离起点已经服务的时间")
+    private String servedTime;
+    @ApiModelProperty("距离终点剩余未服务的里程数")
+    private String laveMileage;
+    @ApiModelProperty("距离终端剩余未服务的预计时间")
+    private String laveTime;
+    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)")
+    private Integer state;
+    @ApiModelProperty("订单改派状态(0=未改派,1=改派中,2=已改派)")
+    private Integer reassignNotice;
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public String getLon() {
+        return lon;
+    }
+
+    public void setLon(String lon) {
+        this.lon = lon;
+    }
+
+    public String getLat() {
+        return lat;
+    }
+
+    public void setLat(String lat) {
+        this.lat = lat;
+    }
+
+    public String getReservationMileage() {
+        return reservationMileage;
+    }
+
+    public void setReservationMileage(String reservationMileage) {
+        this.reservationMileage = reservationMileage;
+    }
+
+    public String getReservationTime() {
+        return reservationTime;
+    }
+
+    public void setReservationTime(String reservationTime) {
+        this.reservationTime = reservationTime;
+    }
+
+    public String getServedMileage() {
+        return servedMileage;
+    }
+
+    public void setServedMileage(String servedMileage) {
+        this.servedMileage = servedMileage;
+    }
+
+    public String getServedTime() {
+        return servedTime;
+    }
+
+    public void setServedTime(String servedTime) {
+        this.servedTime = servedTime;
+    }
+
+    public String getLaveMileage() {
+        return laveMileage;
+    }
+
+    public void setLaveMileage(String laveMileage) {
+        this.laveMileage = laveMileage;
+    }
+
+    public String getLaveTime() {
+        return laveTime;
+    }
+
+    public void setLaveTime(String laveTime) {
+        this.laveTime = laveTime;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getReassignNotice() {
+        return reassignNotice;
+    }
+
+    public void setReassignNotice(Integer reassignNotice) {
+        this.reassignNotice = reassignNotice;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderStatusWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderStatusWarpper.java
new file mode 100644
index 0000000..29f3c8a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderStatusWarpper.java
@@ -0,0 +1,38 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel("订单状态")
+public class OrderStatusWarpper {
+    @ApiModelProperty("订单id")
+    private Integer orderId;
+    @ApiModelProperty("订单类型")
+    private Integer orderType;
+    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)")
+    private Integer state;
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
new file mode 100644
index 0000000..5f5c55b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/OrderWarpper.java
@@ -0,0 +1,267 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 订单(综合)
+ */
+@ApiModel("订单列表")
+public class OrderWarpper  implements Comparable {
+    @ApiModelProperty("订单id")
+    private Integer orderId;
+    @ApiModelProperty("订单日期")
+    private String orderTime;
+    @ApiModelProperty("出行时间/(小件物流的取货时间)")
+    private String time;
+    @ApiModelProperty("起点名称")
+    private String startAddress;
+    @ApiModelProperty("终点名称")
+    private String endAddress;
+    @ApiModelProperty("人数")
+    private Integer num;
+    @ApiModelProperty("司机id")
+    private Integer driverId;
+    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)<br/>" +
+            "小件物流订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待取货,5=送货中,6=已送达,7=待支付,8=需补差价,9=已取货,10=已取消,11=已支付差价")
+    private Integer state;
+    @ApiModelProperty("货物类型(小件物流)")
+    private String cargoType;
+    @ApiModelProperty("用车时长")
+    private Integer carTime;
+    @ApiModelProperty("车型")
+    private String serverCarModel;
+    @ApiModelProperty("订单金额")
+    private Double orderMoney;
+    @ApiModelProperty("支付金额")
+    private Double payMoney;
+    @ApiModelProperty("差价金额")
+    private Double differenceMoney;
+    @ApiModelProperty("开票状态(1=未开票,2=已开票)")
+    private Integer invoice;
+    @ApiModelProperty("订单名称")
+    private String orderName;
+    @ApiModelProperty("订单类型(1=专车,2=出租车,3=跨城出行,4=同城小件物流,5=跨城小件物流)")
+    private Integer orderType;
+    private Long insertTime;
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public String getOrderTime() {
+        return orderTime;
+    }
+
+    public void setOrderTime(String orderTime) {
+        this.orderTime = orderTime;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Integer getNum() {
+        return num;
+    }
+
+    public void setNum(Integer num) {
+        this.num = num;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Integer getInvoice() {
+        return invoice;
+    }
+
+    public void setInvoice(Integer invoice) {
+        this.invoice = invoice;
+    }
+
+    public String getOrderName() {
+        return orderName;
+    }
+
+    public void setOrderName(String orderName) {
+        this.orderName = orderName;
+    }
+
+    public Long getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Long insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public String getCargoType() {
+        return cargoType;
+    }
+
+    public void setCargoType(String cargoType) {
+        this.cargoType = cargoType;
+    }
+
+    public Integer getCarTime() {
+        return carTime;
+    }
+
+    public void setCarTime(Integer carTime) {
+        this.carTime = carTime;
+    }
+
+    public String getServerCarModel() {
+        return serverCarModel;
+    }
+
+    public void setServerCarModel(String serverCarModel) {
+        this.serverCarModel = serverCarModel;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getDifferenceMoney() {
+        return differenceMoney;
+    }
+
+    public void setDifferenceMoney(Double differenceMoney) {
+        this.differenceMoney = differenceMoney;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderWarpper{" +
+                "orderId=" + orderId +
+                ", orderTime='" + orderTime + '\'' +
+                ", time='" + time + '\'' +
+                ", startAddress='" + startAddress + '\'' +
+                ", endAddress='" + endAddress + '\'' +
+                ", num=" + num +
+                ", driverId=" + driverId +
+                ", state=" + state +
+                ", cargoType='" + cargoType + '\'' +
+                ", carTime=" + carTime +
+                ", serverCarModel='" + serverCarModel + '\'' +
+                ", payMoney=" + payMoney +
+                ", invoice=" + invoice +
+                ", orderName='" + orderName + '\'' +
+                ", orderType=" + orderType +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+
+    public static List<OrderWarpper> getOrderWarpper(List<Map<String, Object>> maps){
+        List<OrderWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                OrderWarpper orderWarpper = new OrderWarpper();
+                orderWarpper.setOrderId(null != map.get("orderId") ? Integer.valueOf(String.valueOf(map.get("orderId"))) : 0);
+                orderWarpper.setOrderTime(null != map.get("orderTime") ? String.valueOf(map.get("orderTime")) : "");
+                orderWarpper.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
+                orderWarpper.setStartAddress(null != map.get("startAddress") ? String.valueOf(map.get("startAddress")) : "");
+                orderWarpper.setEndAddress(null != map.get("endAddress") ? String.valueOf(map.get("endAddress")) : "");
+                orderWarpper.setNum(null != map.get("num") ? Integer.valueOf(String.valueOf(map.get("num"))) : 0);
+                orderWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+                orderWarpper.setOrderMoney(null != map.get("orderMoney") ? Double.valueOf(String.valueOf(map.get("orderMoney"))) : 0);
+                orderWarpper.setPayMoney(null != map.get("payMoney") ? Double.valueOf(String.valueOf(map.get("payMoney"))) : 0);
+                orderWarpper.setInvoice(null != map.get("invoice") ? Integer.valueOf(String.valueOf(map.get("invoice"))) : 0);
+                orderWarpper.setOrderName(null != map.get("orderName") ? String.valueOf(map.get("orderName")) : "");
+                orderWarpper.setInsertTime(null != map.get("insertTime") ? Long.valueOf(String.valueOf(map.get("insertTime"))) : 0);
+                orderWarpper.setOrderType(null != map.get("orderType") ? Integer.valueOf(String.valueOf(map.get("orderType"))) : 0);
+                orderWarpper.setDriverId(null != map.get("driverId") ? Integer.valueOf(String.valueOf(map.get("driverId"))) : 0);
+                orderWarpper.setCargoType(null != map.get("cargoType") ? String.valueOf(map.get("cargoType")) : "");
+                orderWarpper.setCarTime(null != map.get("carTime") ? Integer.valueOf(String.valueOf(map.get("carTime"))) : 0);
+                orderWarpper.setServerCarModel(null != map.get("serverCarModel") ? String.valueOf(map.get("serverCarModel")) : "");
+                orderWarpper.setDifferenceMoney(null != map.get("differenceMoney") ? Double.valueOf(map.get("differenceMoney").toString()) : 0D);
+                list.add(orderWarpper);
+            }
+        }
+        Collections.sort(list);
+        return list;
+    }
+
+    @Override
+    public int compareTo(Object o) {
+        if (o instanceof OrderWarpper) {
+            OrderWarpper s = (OrderWarpper) o;
+            if(this.insertTime == null || s.insertTime == null){
+                return -1;
+            }
+            if (this.insertTime > s.insertTime) {
+                return -1;
+            } else if (this.insertTime == s.insertTime) {
+                return 0;
+            } else {
+                return 1;
+            }
+        }
+        return 0;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ProblemWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ProblemWarpper.java
new file mode 100644
index 0000000..9c34d3d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ProblemWarpper.java
@@ -0,0 +1,78 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("客服留言")
+public class ProblemWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("留言时间")
+    private String insertTime;
+    @ApiModelProperty("留言内容")
+    private String content;
+    @ApiModelProperty("回复内容")
+    private String answer;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(String insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getAnswer() {
+        return answer;
+    }
+
+    public void setAnswer(String answer) {
+        this.answer = answer;
+    }
+
+    @Override
+    public String toString() {
+        return "ProblemWarpper{" +
+                "id=" + id +
+                ", insertTime='" + insertTime + '\'' +
+                ", content='" + content + '\'' +
+                ", answer='" + answer + '\'' +
+                '}';
+    }
+
+
+    public static List<ProblemWarpper> getProblemWarpper(List<Map<String, Object>> maps){
+        List<ProblemWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps) {
+                ProblemWarpper problemWarpper = new ProblemWarpper();
+                problemWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+                problemWarpper.setInsertTime(null != map.get("insertTime") ? String.valueOf(map.get("insertTime")) : "");
+                problemWarpper.setContent(null != map.get("content") ? String.valueOf(map.get("content")) : "");
+                problemWarpper.setAnswer(null != map.get("answer") ? String.valueOf(map.get("answer")) : "");
+                list.add(problemWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java
new file mode 100644
index 0000000..172961b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RoleWarpper.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 角色列表的包装类
+ *
+ * @author fengshuonan
+ * @date 2017年2月19日10:59:02
+ */
+public class RoleWarpper extends BaseControllerWarpper {
+
+    public RoleWarpper(List<Map<String, Object>> list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+        map.put("pName", ConstantFactory.me().getSingleRoleName((Integer) map.get("pid")));
+        map.put("deptName", ConstantFactory.me().getDeptName((Integer) map.get("deptid")));
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
new file mode 100644
index 0000000..66ff9f4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/ServerCarModelWarpper.java
@@ -0,0 +1,121 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("服务车型")
+public class ServerCarModelWarpper {
+    @ApiModelProperty("车型id")
+    private Integer id;
+    @ApiModelProperty("车型名称")
+    private String name;
+    @ApiModelProperty("车型照片")
+    private String img;
+    @ApiModelProperty("预估金额")
+    private Double amount;
+    @ApiModelProperty("包车的价格")
+    private String price;
+    @ApiModelProperty("预估里程(公里)")
+    private Double mileage;
+    @ApiModelProperty("预估时间(分钟)")
+    private Double duration;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public String getPrice() {
+        return price;
+    }
+
+    public void setPrice(String price) {
+        this.price = price;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Double getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Double duration) {
+        this.duration = duration;
+    }
+
+    @Override
+    public String toString() {
+        return "ServerCarModelWarpper{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", img='" + img + '\'' +
+                ", amount=" + amount +
+                ", price='" + price + '\'' +
+                ", mileage=" + mileage +
+                ", duration=" + duration +
+                '}';
+    }
+
+    public static ServerCarModelWarpper getServerCarModelWarpper(Map<String, Object> map){
+        ServerCarModelWarpper serverCarModelWarpper = new ServerCarModelWarpper();
+        if(null != map){
+            serverCarModelWarpper.setId(null != map.get("id") ? Integer.valueOf(map.get("id").toString()) : 0);
+            serverCarModelWarpper.setName(null != map.get("name") ? map.get("name").toString() : "");
+            serverCarModelWarpper.setImg(null != map.get("img") ? map.get("img").toString() : "");
+            serverCarModelWarpper.setAmount(null != map.get("amount") ? Double.valueOf(map.get("amount").toString()) : 0);
+            serverCarModelWarpper.setPrice(null != map.get("price") ? map.get("price").toString() : "");
+            serverCarModelWarpper.setMileage(null != map.get("mileage") ? Double.valueOf(map.get("mileage").toString()) : 0);
+            serverCarModelWarpper.setDuration(null != map.get("duration") ? Double.valueOf(map.get("duration").toString()) : 0);
+        }
+        return serverCarModelWarpper;
+    }
+
+
+    public static List<ServerCarModelWarpper>getServerCarModelWarppers(List<Map<String, Object>> list){
+        List<ServerCarModelWarpper> data = new ArrayList<>();
+        if(null != list){
+            for(Map<String, Object> map : list){
+                data.add(ServerCarModelWarpper.getServerCarModelWarpper(map));
+            }
+        }
+        return data;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SmartScreenOrderVo.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SmartScreenOrderVo.java
new file mode 100644
index 0000000..898609f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SmartScreenOrderVo.java
@@ -0,0 +1,99 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel
+public class SmartScreenOrderVo {
+    @ApiModelProperty("订单id")
+    private Integer id;
+    @ApiModelProperty("乘客电话号码")
+    private String userPhone;
+    @ApiModelProperty("下单时间")
+    private String insertTime;
+    @ApiModelProperty("车牌号")
+    private String carLicensePlate;
+    @ApiModelProperty("司机手机号")
+    private String driverPhone;
+    @ApiModelProperty("距离(公里)")
+    private Double distance;
+    @ApiModelProperty("时间(分钟)")
+    private Integer minute;
+    @ApiModelProperty("订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车)")
+    private Integer status;
+    @ApiModelProperty("司机到达预约点时间")
+    private String arrivalTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUserPhone() {
+        return userPhone;
+    }
+
+    public void setUserPhone(String userPhone) {
+        this.userPhone = userPhone;
+    }
+
+    public String getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(String insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getCarLicensePlate() {
+        return carLicensePlate;
+    }
+
+    public void setCarLicensePlate(String carLicensePlate) {
+        this.carLicensePlate = carLicensePlate;
+    }
+
+    public String getDriverPhone() {
+        return driverPhone;
+    }
+
+    public void setDriverPhone(String driverPhone) {
+        this.driverPhone = driverPhone;
+    }
+
+    public Double getDistance() {
+        return distance;
+    }
+
+    public void setDistance(Double distance) {
+        this.distance = distance;
+    }
+
+    public Integer getMinute() {
+        return minute;
+    }
+
+    public void setMinute(Integer minute) {
+        this.minute = minute;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+
+    public String getArrivalTime() {
+        return arrivalTime;
+    }
+
+    public void setArrivalTime(String arrivalTime) {
+        this.arrivalTime = arrivalTime;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SystemNoticeWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SystemNoticeWarpper.java
new file mode 100644
index 0000000..31a6974
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/SystemNoticeWarpper.java
@@ -0,0 +1,124 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("消息类表")
+public class SystemNoticeWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("类型(1=公告,2=系统消息)")
+    private Integer type;
+    @ApiModelProperty("标题")
+    private String title;
+    @ApiModelProperty("内容")
+    private String content;
+    @ApiModelProperty("图片")
+    private String img;
+    @ApiModelProperty("时间")
+    private String time;
+    @ApiModelProperty("阅读状态(1=未读,2=已读)")
+    private Integer read;
+    @ApiModelProperty("消息类型(1=打车业务,2=优惠券)")
+    private Integer noticeType;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getImg() {
+        return img;
+    }
+
+    public void setImg(String img) {
+        this.img = img;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public Integer getRead() {
+        return read;
+    }
+
+    public void setRead(Integer read) {
+        this.read = read;
+    }
+
+    public Integer getNoticeType() {
+        return noticeType;
+    }
+
+    public void setNoticeType(Integer noticeType) {
+        this.noticeType = noticeType;
+    }
+
+    @Override
+    public String toString() {
+        return "SystemNoticeWarpper{" +
+                "id=" + id +
+                ", type=" + type +
+                ", title='" + title + '\'' +
+                ", content='" + content + '\'' +
+                ", img='" + img + '\'' +
+                ", time='" + time + '\'' +
+                '}';
+    }
+
+
+    public static List<SystemNoticeWarpper> getSystemNoticeWarpper(List<Map<String, Object>> maps){
+        List<SystemNoticeWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                SystemNoticeWarpper systemNoticeWarpper = new SystemNoticeWarpper();
+                systemNoticeWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+                systemNoticeWarpper.setType(null != map.get("type") ? Integer.valueOf(String.valueOf(map.get("type"))) : 0);
+                systemNoticeWarpper.setTitle(null != map.get("title") ? String.valueOf(map.get("title")) : "");
+                systemNoticeWarpper.setContent(null != map.get("content") ? String.valueOf(map.get("content")) : "");
+                systemNoticeWarpper.setImg(null != map.get("img") ? String.valueOf(map.get("img")) : "");
+                systemNoticeWarpper.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
+                systemNoticeWarpper.setRead(null != map.get("read") ? Integer.valueOf(String.valueOf(map.get("read"))) : 0);
+                systemNoticeWarpper.setNoticeType(null != map.get("noticeType") ? Integer.valueOf(String.valueOf(map.get("noticeType"))) : 1);
+                list.add(systemNoticeWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TNoticeWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TNoticeWarpper.java
new file mode 100644
index 0000000..bfd91fc
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TNoticeWarpper.java
@@ -0,0 +1,78 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.modular.system.model.TNotices;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@ApiModel("公告")
+public class TNoticeWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("标题")
+    private String title;
+    @ApiModelProperty("内容")
+    private String content;
+    @ApiModelProperty("图片地址")
+    private String imgUrl;
+    @ApiModelProperty("发布时间")
+    private Long insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Long getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Long insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public static List<TNoticeWarpper> getTNoticeWarppers(List<TNotices> notices){
+        List<TNoticeWarpper> list = new ArrayList<>();
+        if(null != notices){
+            for(TNotices t : notices){
+                TNoticeWarpper noticeWarpper = new TNoticeWarpper();
+                noticeWarpper.setId(t.getId());
+                noticeWarpper.setTitle(t.getTitle());
+                noticeWarpper.setContent(t.getContent());
+                noticeWarpper.setImgUrl(t.getImgUrl());
+                noticeWarpper.setInsertTime(t.getInsertTime().getTime());
+                list.add(noticeWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TravelRecordWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TravelRecordWarpper.java
new file mode 100644
index 0000000..073f84f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/TravelRecordWarpper.java
@@ -0,0 +1,101 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 个人中心消费记录列表
+ */
+@ApiModel("消费记录")
+public class TravelRecordWarpper implements Comparable {
+    @ApiModelProperty("金额")
+    private Double money;
+    @ApiModelProperty("时间")
+    private String time;
+    @ApiModelProperty("订单名称")
+    private String name;
+    private Long insertTime;
+
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Long getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Long insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "TravelRecordWarpper{" +
+                "money=" + money +
+                ", time='" + time + '\'' +
+                ", name='" + name + '\'' +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+
+
+    public static List<TravelRecordWarpper> getTravelRecordWarpper(List<Map<String, Object>> maps){
+        List<TravelRecordWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                TravelRecordWarpper travelRecordWarpper = new TravelRecordWarpper();
+                travelRecordWarpper.setMoney(null != map.get("money") ? Double.valueOf(String.valueOf(map.get("money"))) : 0);
+                travelRecordWarpper.setTime(null != map.get("time") ? String.valueOf(map.get("time")) : "");
+                travelRecordWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+                travelRecordWarpper.setInsertTime(null != map.get("insertTime") ? Long.valueOf(String.valueOf(map.get("insertTime"))) : 0);
+                list.add(travelRecordWarpper);
+            }
+        }
+        Collections.sort(list);
+        return list;
+    }
+
+    @Override
+    public int compareTo(Object o) {
+        if (o instanceof TravelRecordWarpper) {
+            TravelRecordWarpper s = (TravelRecordWarpper) o;
+            if(this.insertTime == null || s.insertTime == null){
+                return -1;
+            }
+            if (this.insertTime > s.insertTime) {
+                return -1;
+            } else if (this.insertTime == s.insertTime) {
+                return 0;
+            } else {
+                return 1;
+            }
+        }
+        return 0;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
new file mode 100644
index 0000000..2c27096
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserInfoWarpper.java
@@ -0,0 +1,183 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.modular.system.model.UserInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Map;
+
+/**
+ * 用户信息
+ */
+@ApiModel("用户信息")
+public class UserInfoWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("姓名")
+    private String name;
+    @ApiModelProperty("昵称")
+    private String nickName;
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("是否实名(1:否,2:是)")
+    private Integer isAuth;
+    @ApiModelProperty("实名认证状态(1=待认证,2=认证通过,3=认证失败)")
+    private Integer verified;
+    @ApiModelProperty("头像")
+    private String avatar;
+    @ApiModelProperty("性别(1=男,2=女)")
+    private Integer sex;
+    @ApiModelProperty("生日")
+    private String birthday;
+    @ApiModelProperty("积分")
+    private Integer integral;
+    @ApiModelProperty("账户余额")
+    private Double balance;
+    @ApiModelProperty("紧急联系人姓名")
+    private String emergencyContact;
+    @ApiModelProperty("紧急联系人电话")
+    private String emergencyContactNumber;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getNickName() {
+        return nickName;
+    }
+
+    public void setNickName(String nickName) {
+        this.nickName = nickName;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public Integer getIsAuth() {
+        return isAuth;
+    }
+
+    public void setIsAuth(Integer isAuth) {
+        this.isAuth = isAuth;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public Integer getSex() {
+        return sex;
+    }
+
+    public void setSex(Integer sex) {
+        this.sex = sex;
+    }
+
+    public String getBirthday() {
+        return birthday;
+    }
+
+    public void setBirthday(String birthday) {
+        this.birthday = birthday;
+    }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
+
+    public Integer getVerified() {
+        return verified;
+    }
+
+    public void setVerified(Integer verified) {
+        this.verified = verified;
+    }
+
+    public String getEmergencyContact() {
+        return emergencyContact;
+    }
+
+    public void setEmergencyContact(String emergencyContact) {
+        this.emergencyContact = emergencyContact;
+    }
+
+    public String getEmergencyContactNumber() {
+        return emergencyContactNumber;
+    }
+
+    public void setEmergencyContactNumber(String emergencyContactNumber) {
+        this.emergencyContactNumber = emergencyContactNumber;
+    }
+
+    public Double getBalance() {
+        return balance;
+    }
+
+    public void setBalance(Double balance) {
+        this.balance = balance;
+    }
+
+    @Override
+    public String toString() {
+        return "UserInfoWarpper{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", nickName='" + nickName + '\'' +
+                ", phone='" + phone + '\'' +
+                ", isAuth=" + isAuth +
+                ", verified=" + verified +
+                ", avatar='" + avatar + '\'' +
+                ", sex=" + sex +
+                ", birthday='" + birthday + '\'' +
+                ", integral=" + integral +
+                ", balance=" + balance +
+                ", emergencyContact='" + emergencyContact + '\'' +
+                ", emergencyContactNumber='" + emergencyContactNumber + '\'' +
+                '}';
+    }
+
+    public static UserInfoWarpper getUserInfoWarpper(Map<String, Object> map){
+        UserInfoWarpper userInfoWarpper = new UserInfoWarpper();
+        if (null != map) {
+            userInfoWarpper.setId(null != map.get("id")  ? Integer.valueOf(String.valueOf(map.get("id"))) : null);
+            userInfoWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+            userInfoWarpper.setNickName(null != map.get("nickName") ? String.valueOf(map.get("nickName")) : "");
+            userInfoWarpper.setPhone(null != map.get("phone") ? String.valueOf(map.get("phone")) : "");
+            userInfoWarpper.setIsAuth(null != map.get("isAuth") ? Integer.valueOf(String.valueOf(map.get("isAuth"))) : null);
+            userInfoWarpper.setAvatar(null != map.get("avatar") ? String.valueOf(map.get("avatar")) : "");
+            userInfoWarpper.setSex(null != map.get("sex") ? Integer.valueOf(String.valueOf(map.get("sex"))) : null);
+            userInfoWarpper.setBirthday(null != map.get("birthday") ? String.valueOf(map.get("birthday")) : "");
+            userInfoWarpper.setIntegral(null != map.get("integral") ? Integer.valueOf(String.valueOf(map.get("integral"))) : 0);
+            userInfoWarpper.setVerified(null != map.get("verified") ? Integer.valueOf(String.valueOf(map.get("verified"))) : 0);
+            userInfoWarpper.setEmergencyContact(null != map.get("emergencyContact") ? String.valueOf(map.get("emergencyContact")) : "");
+            userInfoWarpper.setEmergencyContactNumber(null != map.get("emergencyContactNumber") ? String.valueOf(map.get("emergencyContactNumber")) : "");
+            userInfoWarpper.setBalance(null != map.get("balance") ? Double.valueOf(String.valueOf(map.get("balance"))) : 0);
+        }
+        return userInfoWarpper;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java
new file mode 100644
index 0000000..643677e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/UserWarpper.java
@@ -0,0 +1,29 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.core.common.constant.factory.ConstantFactory;
+import com.stylefeng.guns.core.base.warpper.BaseControllerWarpper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 用户管理的包装类
+ *
+ * @author fengshuonan
+ * @date 2017年2月13日 下午10:47:03
+ */
+public class UserWarpper extends BaseControllerWarpper {
+
+    public UserWarpper(List<Map<String, Object>> list) {
+        super(list);
+    }
+
+    @Override
+    public void warpTheMap(Map<String, Object> map) {
+        map.put("sexName", ConstantFactory.me().getSexName((Integer) map.get("sex")));
+        map.put("roleName", ConstantFactory.me().getRoleName((String) map.get("roleid")));
+        map.put("deptName", ConstantFactory.me().getDeptName((Integer) map.get("deptid")));
+        map.put("statusName", ConstantFactory.me().getStatusName((Integer) map.get("status")));
+    }
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VerifiedWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VerifiedWarpper.java
new file mode 100644
index 0000000..3791ec4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VerifiedWarpper.java
@@ -0,0 +1,69 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import com.stylefeng.guns.modular.system.model.Verified;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+@ApiModel("实名认证")
+public class VerifiedWarpper {
+    @ApiModelProperty(value = "姓名", required = true, dataType = "String")
+    private String name;
+    @ApiModelProperty(value = "身份证号码", required = true, dataType = "String")
+    private String idcode;
+    @ApiModelProperty(value = "身份证正面照", required = false, dataType = "String")
+    private String img1;
+    @ApiModelProperty(value = "身份证背面照", required = false, dataType = "String")
+    private String img2;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getIdcode() {
+        return idcode;
+    }
+
+    public void setIdcode(String idcode) {
+        this.idcode = idcode;
+    }
+
+    public String getImg1() {
+        return img1;
+    }
+
+    public void setImg1(String img1) {
+        this.img1 = img1;
+    }
+
+    public String getImg2() {
+        return img2;
+    }
+
+    public void setImg2(String img2) {
+        this.img2 = img2;
+    }
+
+    @Override
+    public String toString() {
+        return "VerifiedWarpper{" +
+                "name='" + name + '\'' +
+                ", idcode='" + idcode + '\'' +
+                ", img1='" + img1 + '\'' +
+                ", img2='" + img2 + '\'' +
+                '}';
+    }
+
+
+    public static Verified getVerified(VerifiedWarpper verifiedWarpper){
+        Verified verified = new Verified();
+        verified.setName(verifiedWarpper.getName());
+        verified.setIdcode(verifiedWarpper.getIdcode());
+        verified.setImg1(verifiedWarpper.getImg1());
+        verified.setImg2(verifiedWarpper.getImg2());
+        return verified;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VersionWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VersionWarpper.java
new file mode 100644
index 0000000..413a31d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/VersionWarpper.java
@@ -0,0 +1,84 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Map;
+
+@ApiModel("版本")
+public class VersionWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("包地址")
+    private String url;
+    @ApiModelProperty("版本说明")
+    private String content;
+    @ApiModelProperty("是否强制更新(0=否,1=是)")
+    private Integer mandatory;
+    @ApiModelProperty("版本号")
+    private String version;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Integer getMandatory() {
+        return mandatory;
+    }
+
+    public void setMandatory(Integer mandatory) {
+        this.mandatory = mandatory;
+    }
+
+    public String getVersion() {
+        return version;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    @Override
+    public String toString() {
+        return "VersionWarpper{" +
+                "id=" + id +
+                ", url='" + url + '\'' +
+                ", content='" + content + '\'' +
+                ", mandatory=" + mandatory +
+                ", version='" + version + '\'' +
+                '}';
+    }
+
+
+    public static VersionWarpper getVersionWarpper(Map<String, Object> map){
+        VersionWarpper versionWarpper = new VersionWarpper();
+        if(null != map){
+            versionWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+            versionWarpper.setUrl(null != map.get("url") ? String.valueOf(map.get("url")) : "");
+            versionWarpper.setContent(null != map.get("content") ? String.valueOf(map.get("content")) : "");
+            versionWarpper.setMandatory(null != map.get("mandatory") ? Integer.valueOf(String.valueOf(map.get("mandatory"))) : 0);
+            versionWarpper.setVersion(null != map.get("version") ? String.valueOf(map.get("version")) : "");
+        }
+        return versionWarpper;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/WithdrawalWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/WithdrawalWarpper.java
new file mode 100644
index 0000000..e9b1d9c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/WithdrawalWarpper.java
@@ -0,0 +1,101 @@
+package com.stylefeng.guns.modular.system.warpper;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel("提现历史记录")
+public class WithdrawalWarpper {
+    @ApiModelProperty("主键")
+    private Integer id;
+    @ApiModelProperty("提现时间")
+    private String insertTime;
+    @ApiModelProperty("提现金额")
+    private Double money;
+    @ApiModelProperty("提现方式")
+    private String name;
+    @ApiModelProperty("备注")
+    private String remark;
+    @ApiModelProperty("提现状态(1=待处理,2=成功,3=失败)")
+    private Integer state;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(String insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    @Override
+    public String toString() {
+        return "WithdrawalWarpper{" +
+                "id=" + id +
+                ", insertTime='" + insertTime + '\'' +
+                ", money=" + money +
+                ", name='" + name + '\'' +
+                ", remark='" + remark + '\'' +
+                ", state=" + state +
+                '}';
+    }
+
+    public static List<WithdrawalWarpper> getWithdrawalWarpper(List<Map<String, Object>> maps){
+        List<WithdrawalWarpper> list = new ArrayList<>();
+        if(null != maps){
+            for(Map<String, Object> map : maps){
+                WithdrawalWarpper withdrawalWarpper = new WithdrawalWarpper();
+                withdrawalWarpper.setId(null != map.get("id") ? Integer.valueOf(String.valueOf(map.get("id"))) : 0);
+                withdrawalWarpper.setMoney(null != map.get("money") ? Double.valueOf(String.valueOf(map.get("money"))) : 0);
+                withdrawalWarpper.setName(null != map.get("name") ? String.valueOf(map.get("name")) : "");
+                withdrawalWarpper.setRemark(null != map.get("remark") ? String.valueOf(map.get("remark")) : "");
+                withdrawalWarpper.setState(null != map.get("state") ? Integer.valueOf(String.valueOf(map.get("state"))) : 0);
+                withdrawalWarpper.setInsertTime(null != map.get("insertTime") ? String.valueOf(map.get("insertTime")) : "");
+                list.add(withdrawalWarpper);
+            }
+        }
+        return list;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java
new file mode 100644
index 0000000..76c2007
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/OrderTaxiController.java
@@ -0,0 +1,90 @@
+package com.stylefeng.guns.modular.taxi.controller;
+
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import com.stylefeng.guns.modular.taxi.warpper.OrderTaxiWarpper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 出租车订单控制器
+ */
+@RestController
+@RequestMapping("")
+public class OrderTaxiController {
+
+    @Autowired
+    private IOrderTaxiService orderTaxiService;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+
+
+
+    /**
+     * 出租车下单操作(APP下单和扫码下单)
+     * @param orderTaxiWarpper
+     * @param request
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/taxiOrder")
+    @ApiOperation(value = "出租车下单操作(APP下单和扫码下单)", tags = {"用户端-出租车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<BaseWarpper> taxiOrder(OrderTaxiWarpper orderTaxiWarpper, HttpServletRequest request){
+        try {
+            OrderTaxi orderTaxi = OrderTaxiWarpper.getOrderTaxi(orderTaxiWarpper);
+            Integer uid = userInfoService.getUserIdFormRedis(request);
+            if(null == uid){
+                return ResultUtil.tokenErr();
+            }
+            return orderTaxiService.taxiOrder(orderTaxi, uid);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+
+    /**
+     * 手动确认订单完成
+     * @param orderId
+     * @param orderType
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/api/taxi/completeOrder")
+    @ApiOperation(value = "手动确认订单完成", tags = {"用户端-出租车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil completeOrder(Integer orderId, Integer orderType){
+        try {
+            return orderTaxiService.completeOrder(orderId, orderType);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiCallbackController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiCallbackController.java
new file mode 100644
index 0000000..e880925
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiCallbackController.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.taxi.controller;
+
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
+import com.stylefeng.guns.modular.system.util.ICBCPayUtil;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+/**
+ * 支付回调控制器
+ */
+@RestController
+@RequestMapping("/base")
+public class TaxiCallbackController {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiDriverController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiDriverController.java
new file mode 100644
index 0000000..882fc3b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/controller/TaxiDriverController.java
@@ -0,0 +1,52 @@
+package com.stylefeng.guns.modular.taxi.controller;
+
+import com.stylefeng.guns.modular.system.service.IDriverService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.OrderDriverWarpper;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * 出租车模块的司机控制器
+ */
+@RestController
+@RequestMapping("/api/taxiDrive")
+public class TaxiDriverController {
+
+    @Autowired
+    private IDriverService driverService;
+
+
+    /**
+     * 根据订单id获取司机数据
+     * @param id
+     * @return
+     */
+    @ResponseBody
+    @PostMapping("/queryOrderDriver")
+    @ApiOperation(value = "根据订单id获取司机数据", tags = {"用户端-出租车", "用户端-专车"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单id", name = "id", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=跨城)", name = "orderType", required = true, dataType = "int"),
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<OrderDriverWarpper> queryOrderDriver(Integer id, Integer orderType){
+        try {
+            Map<String, Object> map = driverService.queryOrderDriver(id, orderType);
+            // TODO: 2020/5/25 需要推送订单数据
+            OrderDriverWarpper orderDriverWarpper = OrderDriverWarpper.getOrderDriverWarpper(map);
+            return ResultUtil.success(orderDriverWarpper);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/OrderTaxiMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/OrderTaxiMapper.java
new file mode 100644
index 0000000..6f8920e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/OrderTaxiMapper.java
@@ -0,0 +1,92 @@
+package com.stylefeng.guns.modular.taxi.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface OrderTaxiMapper extends BaseMapper<OrderTaxi> {
+
+
+    /**
+     * 获取数据
+     * @param start
+     * @param end
+     * @return
+     * @throws Exception
+     */
+    List<OrderTaxi> query(@Param("start") Date start, @Param("end") Date end) throws Exception;
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     */
+    List<Map<String, Object>> queryMyOrderList(@Param("uid") Integer uid, @Param("pageNum") Integer pageNum,
+                                               @Param("size") Integer size);
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryMyTravelRecord(@Param("uid") Integer uid);
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryRedEnvelope(@Param("uid") Integer uid);
+
+
+    /**
+     * 获取用户单发票页面的订单列表
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     */
+    List<Map<String, Object>> queryInvoiceOrder(@Param("type") Integer type, @Param("startTime") Date startTime,
+                                                @Param("endTime") Date endTime, @Param("startMoney") Double startMoney,
+                                                @Param("endMoney") Double endMoney, @Param("uid") Integer uid);
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(@Param("orderId") Integer orderId);
+
+
+    /**
+     * 获取订单数据
+     * @param uid
+     * @param state
+     * @return
+     */
+    List<OrderTaxi> queryByState(@Param("uid") Integer uid, @Param("state") Integer...state);
+
+
+    /**
+     * 获取订单数据
+     * @param uid
+     * @param orderType     1=即时单,2=预约单
+     * @param state
+     * @return
+     */
+    List<OrderTaxi> queryByState_(@Param("uid") Integer uid, @Param("orderType") Integer orderType,
+                                  @Param("type") Integer type, @Param("state") Integer...state);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/PaymentRecordMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/PaymentRecordMapper.java
new file mode 100644
index 0000000..f8fd1ab
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/PaymentRecordMapper.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.taxi.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface PaymentRecordMapper extends BaseMapper<PaymentRecord> {
+
+
+    /**
+     * 获取数据
+     * @param orderId
+     * @param payType
+     * @param state
+     * @return
+     */
+    PaymentRecord query(@Param("category") Integer category, @Param("userId") Integer userId,
+                               @Param("type") Integer type, @Param("orderId") Integer orderId,
+                               @Param("orderType") Integer orderType, @Param("payType") Integer payType,
+                               @Param("state") Integer state);
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/TransactionDetailsMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/TransactionDetailsMapper.java
new file mode 100644
index 0000000..fbdcbdb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/TransactionDetailsMapper.java
@@ -0,0 +1,7 @@
+package com.stylefeng.guns.modular.taxi.dao;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
+
+public interface TransactionDetailsMapper extends BaseMapper<TransactionDetails> {
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
new file mode 100644
index 0000000..60ef596
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/OrderTaxiMapper.xml
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.taxi.model.OrderTaxi">
+        <id column="id" property="id"/>
+        <result column="type" property="type"/>
+        <result column="crossCityOrderId" property="crossCityOrderId"/>
+        <result column="place" property="place"/>
+        <result column="userId" property="userId"/>
+        <result column="driverId" property="driverId"/>
+        <result column="carId" property="carId"/>
+        <result column="orderNum" property="orderNum"/>
+        <result column="placementLon" property="placementLon"/>
+        <result column="placementLat" property="placementLat"/>
+        <result column="placementAddress" property="placementAddress"/>
+        <result column="startLon" property="startLon"/>
+        <result column="startLat" property="startLat"/>
+        <result column="startAddress" property="startAddress"/>
+        <result column="endLon" property="endLon"/>
+        <result column="endLat" property="endLat"/>
+        <result column="endAddress" property="endAddress"/>
+        <result column="boardingLon" property="boardingLon"/>
+        <result column="boardingLat" property="boardingLat"/>
+        <result column="boardingAddress" property="boardingAddress"/>
+        <result column="boardingTime" property="boardingTime"/>
+        <result column="getoffLon" property="getoffLon"/>
+        <result column="getoffLat" property="getoffLat"/>
+        <result column="getoffAddress" property="getoffAddress"/>
+        <result column="getoffTime" property="getoffTime"/>
+        <result column="mileage" property="mileage"/>
+        <result column="payManner" property="payManner"/>
+        <result column="payType" property="payType"/>
+        <result column="orderMoney" property="orderMoney"/>
+        <result column="travelMoney" property="travelMoney"/>
+        <result column="parkMoney" property="parkMoney"/>
+        <result column="roadTollMoney" property="roadTollMoney"/>
+        <result column="tipMoney" property="tipMoney"/>
+        <result column="redPacketMoney" property="redPacketMoney"/>
+        <result column="couponMoney" property="couponMoney"/>
+        <result column="redPacketId" property="redPacketId"/>
+        <result column="couponId" property="couponId"/>
+        <result column="discount" property="discount"/>
+        <result column="discountMoney" property="discountMoney"/>
+        <result column="activityId" property="activityId"/>
+        <result column="companyId" property="companyId"/>
+        <result column="payMoney" property="payMoney"/>
+        <result column="substitute" property="substitute"/>
+        <result column="passengers" property="passengers"/>
+        <result column="passengersPhone" property="passengersPhone"/>
+        <result column="state" property="state"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="travelTime" property="travelTime"/>
+        <result column="snatchOrderTime" property="snatchOrderTime"/>
+        <result column="setOutTime" property="setOutTime"/>
+        <result column="arriveTime" property="arriveTime"/>
+        <result column="startServiceTime" property="startServiceTime"/>
+        <result column="endServiceTime" property="endServiceTime"/>
+        <result column="orderType" property="orderType"/>
+        <result column="orderSource" property="orderSource"/>
+        <result column="invoiceId" property="invoiceId"/>
+        <result column="isReassign" property="isReassign"/>
+        <result column="reassignNotice" property="reassignNotice"/>
+        <result column="deviceCode" property="deviceCode"/>
+        <result column="trackId" property="trackId"/>
+        <result column="isDelete" property="isDelete"/>
+        <result column="oldState" property="oldState"/>
+        <result column="telX" property="telX"/>
+        <result column="bindId" property="bindId"/>
+    </resultMap>
+
+
+
+    <select id="query" resultType="OrderTaxi">
+        select
+        id as id,
+        userId as userId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        travelMoney as travelMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        tipMoney as tipMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId
+        from t_order_taxi where insertTime between #{start} and #{end}
+    </select>
+
+
+
+    <select id="queryMyOrderList" resultType="map">
+        select
+        id as orderId,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime,
+        DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        driverId as driverId,
+        (2) as orderType,
+        state as state,
+        oldState as oldState
+        from t_order_taxi where userId = #{uid} order by insertTime desc limit #{pageNum}, #{size}
+    </select>
+
+
+    <select id="queryMyTravelRecord" resultType="map">
+        select
+        (payMoney * -1) as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('出租车订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_taxi where payMoney != 0 and userId = #{uid} and state in (8, 9, 10, 11, 12)
+    </select>
+
+
+    <select id="queryRedEnvelope" resultType="map">
+        select
+        redPacketMoney as money,
+        DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as time,
+        ('出租车订单') as name,
+        UNIX_TIMESTAMP(insertTime) as insertTime
+        from t_order_taxi where userId = #{uid} and state in (8, 9) and redPacketId is not null
+    </select>
+
+
+
+    <select id="queryInvoiceOrder" resultType="map">
+        select
+        id as id,
+        DATE_FORMAT(travelTime, '%Y-%m-%d %H:%i') as time,
+        startAddress as startAddress,
+        endAddress as endAddress,
+        payMoney as payMoney,
+        ('出租车订单') as orderName,
+        if(invoiceId is null, 1, 2) as invoice,
+        unix_timestamp(insertTime) as insertTime,
+        (2) as orderType
+        from t_order_taxi where state in (8, 9)
+        <if test="type == 1">
+            and invoiceId is null and invoiceId in (select id from t_invoice where state != 2)
+        </if>
+        <if test="type == 2">
+            and invoiceId in (select id from t_invoice where state = 2)
+        </if>
+        <if test="null != startTime and null != endTime">
+            and travelTime between #{startTime} and #{endTime}
+        </if>
+        <if test="null != startMoney and null != endMoney">
+            and payMoney between #{startMoney} and #{endMoney}
+        </if>
+        <if test="null !=uid">
+            and userId = #{uid}
+        </if>
+    </select>
+
+
+
+    <select id="queryOrderInfo" resultType="map">
+        select
+        a.id as orderId,
+        a.type as type,
+        a.state as state,
+        DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime,
+        DATE_FORMAT(a.travelTime, '%m月%d日 %H:%i') as travelTime,
+        DATE_FORMAT(a.arriveTime, '%Y-%m-%d %H:%i:%s') as arriveTime,
+        a.startLon as startLon,
+        a.startLat as startLat,
+        a.startAddress as startAddress,
+        a.endLon as endLon,
+        a.endLat as endLat,
+        a.endAddress as endAddress,
+		a.driverId as driverId,
+		a.orderMoney as orderMoney,
+		a.travelMoney as travelMoney,
+		a.parkMoney as parkMoney,
+		a.roadTollMoney as roadTollMoney,
+		a.redPacketMoney as redPacketMoney,
+		a.couponMoney as couponMoney,
+		a.discountMoney as discountMoney,
+		a.tipMoney as tipMoney,
+		a.payMoney as payMoney,
+		a.reassignNotice as reassignNotice,
+		a.oldState as oldState,
+		b.headImgUrl as driverAvatar,
+		b.`name` as driverName,
+		c.carLicensePlate as licensePlate,
+		c.carColor as carColor,
+		CONCAT(f.`name`, d.`name`) as brand,
+		((select sum(fraction) from t_order_evaluate where driverId = a.driverId) / (select count(id) from t_order_evaluate where driverId = a.driverId)) as score,
+		(
+		(select count(id) from t_order_private_car where driverId = a.driverId and state in (7, 8, 9)) +
+		(select count(id) from t_order_taxi where driverId = a.driverId and state in (7, 8, 9)) +
+		(select count(id) from t_order_cross_city where driverId = a.driverId and state in (6, 8, 9))
+		) as orderNum,
+		b.phone as driverPhone,
+		if(a.state = 12, (select money from t_order_cancel where orderId = a.id and orderType = 2 and state = 1 order by insertTime desc limit 0, 1), if(a.state = 10, (select money from t_order_cancel where orderId = a.id and orderType = 2 and state = 2 order by insertTime desc limit 0, 1), 0)) as cancelPayMoney,
+		if(a.state = 12, (select id from t_order_cancel where orderId = a.id and orderType = 2 and state = 1 order by insertTime desc limit 0, 1), 0) as cancelId,
+		g.fraction as orderScore,
+		g.content as evaluate,
+		a.telX as telX,
+		h.userType as cancelUserType,
+		h.money as cancelMoney,
+		h.reason as cancelReason,
+		h.remark as cancelRemark
+        from t_order_taxi a
+		left join t_driver b on (a.driverId = b.id)
+		left join t_car c on (a.carId = c.id)
+		left join t_car_model d on (c.carModelId = d.id)
+		left join t_car_brand f on (d.brandId = f.id)
+		left join t_order_evaluate g on (a.id = g.orderId and g.orderType = 2)
+		left join t_order_cancel h on (a.id = h.orderId and h.orderType = 2 and h.state = 2)
+		where a.id = #{orderId}
+    </select>
+
+
+
+    <select id="queryByState" resultType="OrderTaxi">
+        select
+        id as id,
+        userId as userId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        travelMoney as travelMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        tipMoney as tipMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId
+        from t_order_taxi where userId = #{uid}
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+
+
+
+    <select id="queryByState_" resultType="OrderTaxi">
+        select
+        id as id,
+        `type` as `type`,
+        userId as userId,
+        driverId as driverId,
+        carId as carId,
+        orderNum as orderNum,
+        placementLon as placementLon,
+        placementLat as placementLat,
+        placementAddress as placementAddress,
+        startLon as startLon,
+        startLat as startLat,
+        startAddress as startAddress,
+        endLon as endLon,
+        endLat as endLat,
+        endAddress as endAddress,
+        boardingLon as boardingLon,
+        boardingLat as boardingLat,
+        boardingAddress as boardingAddress,
+        boardingTime as boardingTime,
+        getoffLon as getoffLon,
+        getoffLat as getoffLat,
+        getoffAddress as getoffAddress,
+        getoffTime as getoffTime,
+        mileage as mileage,
+        payManner as payManner,
+        payType as payType,
+        orderMoney as orderMoney,
+        travelMoney as travelMoney,
+        parkMoney as parkMoney,
+        roadTollMoney as roadTollMoney,
+        tipMoney as tipMoney,
+        redPacketMoney as redPacketMoney,
+        couponMoney as couponMoney,
+        redPacketId as redPacketId,
+        couponId as couponId,
+        discount as discount,
+        discountMoney as discountMoney,
+        activityId as activityId,
+        companyId as companyId,
+        payMoney as payMoney,
+        substitute as substitute,
+        passengers as passengers,
+        passengersPhone as passengersPhone,
+        state as state,
+        insertTime as insertTime,
+        travelTime as travelTime,
+        snatchOrderTime as snatchOrderTime,
+        setOutTime as setOutTime,
+        arriveTime as arriveTime,
+        startServiceTime as startServiceTime,
+        endServiceTime as endServiceTime,
+        orderType as orderType,
+        orderSource as orderSource,
+        invoiceId as invoiceId
+        from t_order_taxi where userId = #{uid}
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != state">
+            and state in
+            <foreach collection="state" item="item" index="index" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="null != type">
+            and `type` = #{type}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/PaymentRecordMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/PaymentRecordMapper.xml
new file mode 100644
index 0000000..320253e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/PaymentRecordMapper.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.taxi.dao.PaymentRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.taxi.model.PaymentRecord">
+        <id column="id" property="id"/>
+        <result column="category" property="category"/>
+        <result column="userId" property="userId"/>
+        <result column="type" property="type"/>
+        <result column="orderId" property="orderId"/>
+        <result column="orderType" property="orderType"/>
+        <result column="payType" property="payType"/>
+        <result column="amount" property="amount"/>
+        <result column="code" property="code"/>
+        <result column="state" property="state"/>
+        <result column="refundState" property="refundState"/>
+        <result column="refundCode" property="refundCode"/>
+        <result column="insertTime" property="insertTime"/>
+    </resultMap>
+
+
+    <select id="query" resultType="PaymentRecord">
+        select
+        id as id,
+        category as category,
+        userId as userId,
+        `type` as `type`,
+        orderId as orderId,
+        orderType as orderType,
+        payType as payType,
+        amount as amount,
+        code as code,
+        state as state,
+        insertTime as insertTime
+        from t_payment_record where category = #{category}
+        <if test="null != userId">
+            and userId = #{userId}
+        </if>
+        <if test="null != type">
+            and type = #{type}
+        </if>
+        <if test="null != orderId">
+            and orderId = #{orderId}
+        </if>
+        <if test="null != orderType">
+            and orderType = #{orderType}
+        </if>
+        <if test="null != payType">
+            and payType = #{payType}
+        </if>
+        <if test="null != state">
+            and state = #{state}
+        </if>
+        order by insertTime desc limit 0,1
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/TransactionDetailsMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/TransactionDetailsMapper.xml
new file mode 100644
index 0000000..dc37967
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/dao/mapping/TransactionDetailsMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.stylefeng.guns.modular.taxi.dao.TransactionDetailsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.taxi.model.TransactionDetails">
+        <id column="id" property="id"/>
+        <result column="userId" property="userId"/>
+        <result column="insertTime" property="insertTime"/>
+        <result column="remark" property="remark"/>
+        <result column="money" property="money"/>
+        <result column="state" property="state"/>
+        <result column="type" property="type"/>
+        <result column="userType" property="userType"/>
+        <result column="orderType" property="orderType"/>
+        <result column="orderId" property="orderId"/>
+    </resultMap>
+</mapper>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
new file mode 100644
index 0000000..8bedbe6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/OrderTaxi.java
@@ -0,0 +1,924 @@
+package com.stylefeng.guns.modular.taxi.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+import com.stylefeng.guns.modular.system.model.BaseBean;
+
+import java.util.Date;
+
+/**
+ * 出租车订单
+ */
+@TableName("t_order_taxi")
+public class OrderTaxi {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 订单类型(1=普通订单,2=摆渡订单)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 跨城订单id(摆渡车专用)
+     */
+    @TableField("crossCityOrderId")
+    private Integer crossCityOrderId;
+    /**
+     * 摆渡方位(1=跨城起点,2=跨城终点)
+     */
+    @TableField("place")
+    private Integer place;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 司机id
+     */
+    @TableField("driverId")
+    private Integer driverId;
+    /**
+     * 车辆id
+     */
+    @TableField("carId")
+    private Integer carId;
+    /**
+     * 订单号
+     */
+    @TableField("orderNum")
+    private String orderNum;
+    /**
+     * 下单地点经度
+     */
+    @TableField("placementLon")
+    private Double placementLon;
+    /**
+     * 下单地点纬度
+     */
+    @TableField("placementLat")
+    private Double placementLat;
+    /**
+     * 下单地点
+     */
+    @TableField("placementAddress")
+    private String placementAddress;
+    /**
+     * 起点经度
+     */
+    @TableField("startLon")
+    private Double startLon;
+    /**
+     * 起点纬度
+     */
+    @TableField("startLat")
+    private Double startLat;
+    /**
+     * 起点
+     */
+    @TableField("startAddress")
+    private String startAddress;
+    /**
+     * 目的地经度
+     */
+    @TableField("endLon")
+    private Double endLon;
+    /**
+     * 目的地纬度
+     */
+    @TableField("endLat")
+    private Double endLat;
+    /**
+     * 目的地
+     */
+    @TableField("endAddress")
+    private String endAddress;
+    /**
+     * 上车点经度
+     */
+    @TableField("boardingLon")
+    private Double boardingLon;
+    /**
+     * 上车点纬度
+     */
+    @TableField("boardingLat")
+    private Double boardingLat;
+    /**
+     * 上车地点
+     */
+    @TableField("boardingAddress")
+    private String boardingAddress;
+    /**
+     * 上车时间
+     */
+    @TableField("boardingTime")
+    private Date boardingTime;
+    /**
+     * 下车点经度
+     */
+    @TableField("getoffLon")
+    private Double getoffLon;
+    /**
+     * 下车点纬度
+     */
+    @TableField("getoffLat")
+    private Double getoffLat;
+    /**
+     * 下车点
+     */
+    @TableField("getoffAddress")
+    private String getoffAddress;
+    /**
+     * 下车时间
+     */
+    @TableField("getoffTime")
+    private Date getoffTime;
+    /**
+     * 行驶里程数(米)
+     */
+    @TableField("mileage")
+    private Double mileage;
+    /**
+     * 支付方式(1=OK平台支付,2=其他方式支付)
+     */
+    @TableField("payManner")
+    private Integer payManner;
+    /**
+     * 支付方式(1=微信,2=支付宝,3=余额)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 订单金额
+     */
+    @TableField("orderMoney")
+    private Double orderMoney;
+    /**
+     * 行程费
+     */
+    @TableField("travelMoney")
+    private Double travelMoney;
+    /**
+     * 停车费
+     */
+    @TableField("parkMoney")
+    private Double parkMoney;
+    /**
+     * 过路费
+     */
+    @TableField("roadTollMoney")
+    private Double roadTollMoney;
+    /**
+     * 小费
+     */
+    @TableField("tipMoney")
+    private Double tipMoney;
+    /**
+     * 红包抵扣金额
+     */
+    @TableField("redPacketMoney")
+    private Double redPacketMoney;
+    /**
+     * 优惠券抵扣金额
+     */
+    @TableField("couponMoney")
+    private Double couponMoney;
+    /**
+     * 红包id
+     */
+    @TableField("redPacketId")
+    private Integer redPacketId;
+    /**
+     * 优惠券id
+     */
+    @TableField("couponId")
+    private Integer couponId;
+    /**
+     * 折扣
+     */
+    @TableField("discount")
+    private Double discount;
+    /**
+     * 折扣优惠金额
+     */
+    @TableField("discountMoney")
+    private Double discountMoney;
+    /**
+     * 折扣活动id
+     */
+    @TableField("activityId")
+    private Integer activityId;
+    /**
+     * 公司id
+     */
+    @TableField("companyId")
+    private Integer companyId;
+    /**
+     * 支付金额
+     */
+    @TableField("payMoney")
+    private Double payMoney;
+    /**
+     * 是否是代下单(0:否,1:是)
+     */
+    @TableField("substitute")
+    private Integer substitute;
+    /**
+     * 乘车人姓名
+     */
+    @TableField("passengers")
+    private String passengers;
+    /**
+     * 乘车人电话
+     */
+    @TableField("passengersPhone")
+    private String passengersPhone;
+    /**
+     * 订单状态(1=待接单,2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,8=待评价,9=已完成,10=已取消,11=改派中,12=取消待支付)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 下单时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 出行时间
+     */
+    @TableField("travelTime")
+    private Date travelTime;
+    /**
+     * 抢单时间
+     */
+    @TableField("snatchOrderTime")
+    private Date snatchOrderTime;
+    /**
+     * 司机点出发时间
+     */
+    @TableField("setOutTime")
+    private Date setOutTime;
+    /**
+     * 司机到达预约地点时间
+     */
+    @TableField("arriveTime")
+    private Date arriveTime;
+    /**
+     * 开始服务时间
+     */
+    @TableField("startServiceTime")
+    private Date startServiceTime;
+    /**
+     * 结束服务时间
+     */
+    @TableField("endServiceTime")
+    private Date endServiceTime;
+    /**
+     * 订单类型(1=普通,2=预约)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单,6:道行龙城下单)
+     */
+    @TableField("orderSource")
+    private Integer orderSource;
+    /**
+     * 发票id
+     */
+    @TableField("invoiceId")
+    private Integer invoiceId;
+    /**
+     * 是否是改派单(1=否,=是)
+     * @return
+     */
+    @TableField("isReassign")
+    private Integer isReassign;
+    /**
+     * 改派通知标识(0=没有改派,1=改派中,2=已改派)用于通知前端获取新司机数据
+     */
+    @TableField("reassignNotice")
+    private Integer reassignNotice;
+    /**
+     * 高德猎鹰轨迹id
+     * @return
+     */
+    @TableField("trackId")
+    private String trackId;
+    /**
+     * 设备号
+     */
+    @TableField("deviceCode")
+    private String deviceCode;
+    /**
+     * 是否删除(1=否,2=是)
+     */
+    @TableField("isDelete")
+    private Integer isDelete;
+    /**
+     * 该派前的订单状态
+     * @return
+     */
+    @TableField("oldState")
+    private Integer oldState;
+    /**
+     * 移动小号
+     * @return
+     */
+    @TableField("telX")
+    private String telX;
+    /**
+     * 绑定小号关系id
+     * @return
+     */
+    @TableField("bindId")
+    private String bindId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getCrossCityOrderId() {
+        return crossCityOrderId;
+    }
+
+    public void setCrossCityOrderId(Integer crossCityOrderId) {
+        this.crossCityOrderId = crossCityOrderId;
+    }
+
+    public Integer getPlace() {
+        return place;
+    }
+
+    public void setPlace(Integer place) {
+        this.place = place;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getCarId() {
+        return carId;
+    }
+
+    public void setCarId(Integer carId) {
+        this.carId = carId;
+    }
+
+    public String getOrderNum() {
+        return orderNum;
+    }
+
+    public void setOrderNum(String orderNum) {
+        this.orderNum = orderNum;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public String getPlacementAddress() {
+        return placementAddress;
+    }
+
+    public void setPlacementAddress(String placementAddress) {
+        this.placementAddress = placementAddress;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    public Double getBoardingLon() {
+        return boardingLon;
+    }
+
+    public void setBoardingLon(Double boardingLon) {
+        this.boardingLon = boardingLon;
+    }
+
+    public Double getBoardingLat() {
+        return boardingLat;
+    }
+
+    public void setBoardingLat(Double boardingLat) {
+        this.boardingLat = boardingLat;
+    }
+
+    public String getBoardingAddress() {
+        return boardingAddress;
+    }
+
+    public void setBoardingAddress(String boardingAddress) {
+        this.boardingAddress = boardingAddress;
+    }
+
+    public Date getBoardingTime() {
+        return boardingTime;
+    }
+
+    public void setBoardingTime(Date boardingTime) {
+        this.boardingTime = boardingTime;
+    }
+
+    public Double getGetoffLon() {
+        return getoffLon;
+    }
+
+    public void setGetoffLon(Double getoffLon) {
+        this.getoffLon = getoffLon;
+    }
+
+    public Double getGetoffLat() {
+        return getoffLat;
+    }
+
+    public void setGetoffLat(Double getoffLat) {
+        this.getoffLat = getoffLat;
+    }
+
+    public String getGetoffAddress() {
+        return getoffAddress;
+    }
+
+    public void setGetoffAddress(String getoffAddress) {
+        this.getoffAddress = getoffAddress;
+    }
+
+    public Date getGetoffTime() {
+        return getoffTime;
+    }
+
+    public void setGetoffTime(Date getoffTime) {
+        this.getoffTime = getoffTime;
+    }
+
+    public Double getMileage() {
+        return mileage;
+    }
+
+    public void setMileage(Double mileage) {
+        this.mileage = mileage;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getOrderMoney() {
+        return orderMoney;
+    }
+
+    public void setOrderMoney(Double orderMoney) {
+        this.orderMoney = orderMoney;
+    }
+
+    public Double getTravelMoney() {
+        return travelMoney;
+    }
+
+    public void setTravelMoney(Double travelMoney) {
+        this.travelMoney = travelMoney;
+    }
+
+    public Double getParkMoney() {
+        return parkMoney;
+    }
+
+    public void setParkMoney(Double parkMoney) {
+        this.parkMoney = parkMoney;
+    }
+
+    public Double getRoadTollMoney() {
+        return roadTollMoney;
+    }
+
+    public void setRoadTollMoney(Double roadTollMoney) {
+        this.roadTollMoney = roadTollMoney;
+    }
+
+    public Double getTipMoney() {
+        return tipMoney;
+    }
+
+    public void setTipMoney(Double tipMoney) {
+        this.tipMoney = tipMoney;
+    }
+
+    public Double getRedPacketMoney() {
+        return redPacketMoney;
+    }
+
+    public void setRedPacketMoney(Double redPacketMoney) {
+        this.redPacketMoney = redPacketMoney;
+    }
+
+    public Double getCouponMoney() {
+        return couponMoney;
+    }
+
+    public void setCouponMoney(Double couponMoney) {
+        this.couponMoney = couponMoney;
+    }
+
+    public Integer getRedPacketId() {
+        return redPacketId;
+    }
+
+    public void setRedPacketId(Integer redPacketId) {
+        this.redPacketId = redPacketId;
+    }
+
+    public Integer getCouponId() {
+        return couponId;
+    }
+
+    public void setCouponId(Integer couponId) {
+        this.couponId = couponId;
+    }
+
+    public Integer getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(Integer companyId) {
+        this.companyId = companyId;
+    }
+
+    public Double getPayMoney() {
+        return payMoney;
+    }
+
+    public void setPayMoney(Double payMoney) {
+        this.payMoney = payMoney;
+    }
+
+    public Integer getSubstitute() {
+        return substitute;
+    }
+
+    public void setSubstitute(Integer substitute) {
+        this.substitute = substitute;
+    }
+
+    public String getPassengers() {
+        return passengers;
+    }
+
+    public void setPassengers(String passengers) {
+        this.passengers = passengers;
+    }
+
+    public String getPassengersPhone() {
+        return passengersPhone;
+    }
+
+    public void setPassengersPhone(String passengersPhone) {
+        this.passengersPhone = passengersPhone;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public Date getSnatchOrderTime() {
+        return snatchOrderTime;
+    }
+
+    public void setSnatchOrderTime(Date snatchOrderTime) {
+        this.snatchOrderTime = snatchOrderTime;
+    }
+
+    public Date getSetOutTime() {
+        return setOutTime;
+    }
+
+    public void setSetOutTime(Date setOutTime) {
+        this.setOutTime = setOutTime;
+    }
+
+    public Date getArriveTime() {
+        return arriveTime;
+    }
+
+    public void setArriveTime(Date arriveTime) {
+        this.arriveTime = arriveTime;
+    }
+
+    public Date getStartServiceTime() {
+        return startServiceTime;
+    }
+
+    public void setStartServiceTime(Date startServiceTime) {
+        this.startServiceTime = startServiceTime;
+    }
+
+    public Date getEndServiceTime() {
+        return endServiceTime;
+    }
+
+    public void setEndServiceTime(Date endServiceTime) {
+        this.endServiceTime = endServiceTime;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+
+    public Integer getInvoiceId() {
+        return invoiceId;
+    }
+
+    public void setInvoiceId(Integer invoiceId) {
+        this.invoiceId = invoiceId;
+    }
+
+    public Integer getPayManner() {
+        return payManner;
+    }
+
+    public void setPayManner(Integer payManner) {
+        this.payManner = payManner;
+    }
+
+    public Integer getIsReassign() {
+        return isReassign;
+    }
+
+    public void setIsReassign(Integer isReassign) {
+        this.isReassign = isReassign;
+    }
+
+    public Integer getReassignNotice() {
+        return reassignNotice;
+    }
+
+    public void setReassignNotice(Integer reassignNotice) {
+        this.reassignNotice = reassignNotice;
+    }
+
+    public String getTrackId() {
+        return trackId;
+    }
+
+    public void setTrackId(String trackId) {
+        this.trackId = trackId;
+    }
+
+    public Double getDiscount() {
+        return discount;
+    }
+
+    public void setDiscount(Double discount) {
+        this.discount = discount;
+    }
+
+    public Double getDiscountMoney() {
+        return discountMoney;
+    }
+
+    public void setDiscountMoney(Double discountMoney) {
+        this.discountMoney = discountMoney;
+    }
+
+    public Integer getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Integer activityId) {
+        this.activityId = activityId;
+    }
+
+    public Integer getIsDelete() {
+        return isDelete;
+    }
+
+    public void setIsDelete(Integer isDelete) {
+        this.isDelete = isDelete;
+    }
+
+    public Integer getOldState() {
+        return oldState;
+    }
+
+    public void setOldState(Integer oldState) {
+        this.oldState = oldState;
+    }
+
+    public String getTelX() {
+        return telX;
+    }
+
+    public void setTelX(String telX) {
+        this.telX = telX;
+    }
+
+    public String getBindId() {
+        return bindId;
+    }
+
+    public void setBindId(String bindId) {
+        this.bindId = bindId;
+    }
+
+    public String getDeviceCode() {
+        return deviceCode;
+    }
+
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderTaxi{" +
+                "id=" + id +
+                ", type=" + type +
+                ", crossCityOrderId=" + crossCityOrderId +
+                ", place=" + place +
+                ", userId=" + userId +
+                ", driverId=" + driverId +
+                ", carId=" + carId +
+                ", orderNum='" + orderNum + '\'' +
+                ", placementLon=" + placementLon +
+                ", placementLat=" + placementLat +
+                ", placementAddress='" + placementAddress + '\'' +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", boardingLon=" + boardingLon +
+                ", boardingLat=" + boardingLat +
+                ", boardingAddress='" + boardingAddress + '\'' +
+                ", boardingTime=" + boardingTime +
+                ", getoffLon=" + getoffLon +
+                ", getoffLat=" + getoffLat +
+                ", getoffAddress='" + getoffAddress + '\'' +
+                ", getoffTime=" + getoffTime +
+                ", mileage=" + mileage +
+                ", payManner=" + payManner +
+                ", payType=" + payType +
+                ", orderMoney=" + orderMoney +
+                ", travelMoney=" + travelMoney +
+                ", parkMoney=" + parkMoney +
+                ", roadTollMoney=" + roadTollMoney +
+                ", tipMoney=" + tipMoney +
+                ", redPacketMoney=" + redPacketMoney +
+                ", couponMoney=" + couponMoney +
+                ", redPacketId=" + redPacketId +
+                ", couponId=" + couponId +
+                ", discount=" + discount +
+                ", discountMoney=" + discountMoney +
+                ", activityId=" + activityId +
+                ", companyId=" + companyId +
+                ", payMoney=" + payMoney +
+                ", substitute=" + substitute +
+                ", passengers='" + passengers + '\'' +
+                ", passengersPhone='" + passengersPhone + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                ", travelTime=" + travelTime +
+                ", snatchOrderTime=" + snatchOrderTime +
+                ", setOutTime=" + setOutTime +
+                ", arriveTime=" + arriveTime +
+                ", startServiceTime=" + startServiceTime +
+                ", endServiceTime=" + endServiceTime +
+                ", orderType=" + orderType +
+                ", orderSource=" + orderSource +
+                ", invoiceId=" + invoiceId +
+                ", isReassign=" + isReassign +
+                ", reassignNotice=" + reassignNotice +
+                ", trackId='" + trackId + '\'' +
+                ", isDelete=" + isDelete +
+                ", oldState=" + oldState +
+                ", telX='" + telX + '\'' +
+                ", bindId='" + bindId + '\'' +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/PaymentRecord.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/PaymentRecord.java
new file mode 100644
index 0000000..d1dbfd3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/PaymentRecord.java
@@ -0,0 +1,202 @@
+package com.stylefeng.guns.modular.taxi.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 第三方支付记录
+ */
+@TableName("t_payment_record")
+public class PaymentRecord {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 支付类别(1=订单相关支付,2=其他支付)
+     */
+    @TableField("category")
+    private Integer category;
+    /**
+     * 用户id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 用户类型(1=用户,2=司机)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 订单id
+     */
+    @TableField("orderId")
+    private Integer orderId;
+    /**
+     * 订单类型
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 支付方式(1=微信,2=支付宝)
+     */
+    @TableField("payType")
+    private Integer payType;
+    /**
+     * 支付金额
+     */
+    @TableField("amount")
+    private Double amount;
+    /**
+     * 第三方支付订单号
+     */
+    @TableField("code")
+    private String code;
+    /**
+     * 支付状态(1=未支付,2=已支付)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 退款状态(1=退款中,2=已退款)
+     */
+    @TableField("refundState")
+    private Integer refundState;
+    /**
+     * 退款单号
+     */
+    @TableField("refundCode")
+    private String refundCode;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getCategory() {
+        return category;
+    }
+
+    public void setCategory(Integer category) {
+        this.category = category;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getPayType() {
+        return payType;
+    }
+
+    public void setPayType(Integer payType) {
+        this.payType = payType;
+    }
+
+    public Double getAmount() {
+        return amount;
+    }
+
+    public void setAmount(Double amount) {
+        this.amount = amount;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getRefundState() {
+        return refundState;
+    }
+
+    public void setRefundState(Integer refundState) {
+        this.refundState = refundState;
+    }
+
+    public String getRefundCode() {
+        return refundCode;
+    }
+
+    public void setRefundCode(String refundCode) {
+        this.refundCode = refundCode;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    @Override
+    public String toString() {
+        return "PaymentRecord{" +
+                "id=" + id +
+                ", category=" + category +
+                ", userId=" + userId +
+                ", type=" + type +
+                ", orderId=" + orderId +
+                ", orderType=" + orderType +
+                ", payType=" + payType +
+                ", amount=" + amount +
+                ", code='" + code + '\'' +
+                ", state=" + state +
+                ", insertTime=" + insertTime +
+                '}';
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java
new file mode 100644
index 0000000..d7c2ce7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/model/TransactionDetails.java
@@ -0,0 +1,164 @@
+package com.stylefeng.guns.modular.taxi.model;
+
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableName;
+import com.baomidou.mybatisplus.enums.IdType;
+
+import java.util.Date;
+
+/**
+ * 交易明细
+ */
+@TableName("t_pub_transaction_details")
+public class TransactionDetails {
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @TableField("id")
+    private Integer id;
+    /**
+     * 对象id
+     */
+    @TableField("userId")
+    private Integer userId;
+    /**
+     * 添加时间
+     */
+    @TableField("insertTime")
+    private Date insertTime;
+    /**
+     * 备注
+     */
+    @TableField("remark")
+    private String remark;
+    /**
+     * 金额/积分
+     */
+    @TableField("money")
+    private Double money;
+    /**
+     * 状态(1=增加,2=减少)
+     */
+    @TableField("state")
+    private Integer state;
+    /**
+     * 类型(1=金额,2:积分)
+     */
+    @TableField("type")
+    private Integer type;
+    /**
+     * 类型(1=用户,2=司机)
+     */
+    @TableField("userType")
+    private Integer userType;
+    /**
+     * 订单类型(1=专车,2=出租车,3=城际,4=小件物流)
+     */
+    @TableField("orderType")
+    private Integer orderType;
+    /**
+     * 订单id
+     */
+    @TableField("orderId")
+    private Integer orderId;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Date getInsertTime() {
+        return insertTime;
+    }
+
+    public void setInsertTime(Date insertTime) {
+        this.insertTime = insertTime;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Double getMoney() {
+        return money;
+    }
+
+    public void setMoney(Double money) {
+        this.money = money;
+    }
+
+    public Integer getState() {
+        return state;
+    }
+
+    public void setState(Integer state) {
+        this.state = state;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Integer getUserType() {
+        return userType;
+    }
+
+    public void setUserType(Integer userType) {
+        this.userType = userType;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getOrderId() {
+        return orderId;
+    }
+
+    public void setOrderId(Integer orderId) {
+        this.orderId = orderId;
+    }
+
+    @Override
+    public String toString() {
+        return "TransactionDetails{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", insertTime=" + insertTime +
+                ", remark='" + remark + '\'' +
+                ", money=" + money +
+                ", state=" + state +
+                ", type=" + type +
+                ", userType=" + userType +
+                ", orderType=" + orderType +
+                ", orderId=" + orderId +
+                '}';
+    }
+
+
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
new file mode 100644
index 0000000..482b534
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IOrderTaxiService.java
@@ -0,0 +1,239 @@
+package com.stylefeng.guns.modular.taxi.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderStatusWarpper;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+public interface IOrderTaxiService extends IService<OrderTaxi> {
+
+
+
+
+
+    /**
+     * 出租车下单操作
+     * @param orderTaxi
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception;
+
+
+    /**
+     * 继续推送操作
+     * @param id
+     * @throws Exception
+     */
+    ResultUtil pushOrderTaxi(Integer id) throws Exception;
+
+
+    /**
+     * 获取取消订单需要支付的金额
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception;
+
+
+    /**
+     * 添加取消
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @throws Exception
+     */
+    ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception;
+
+
+    /**
+     * 取消订单操作
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    ResultUtil cancleOrderTaxi(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception;
+
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     */
+    void deleteTask(Integer orderId);
+
+
+    /**
+     * 获取用户余额和可用优惠券数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception;
+
+
+    /**
+     * 获取优惠券列表
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+    /**
+     * 订单完成支付订单操作
+     * @param payType
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer couponId, Integer type)throws Exception;
+
+
+    /**
+     * 完成订单操作
+     * @param orderId
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    ResultUtil completeOrder(Integer orderId, Integer orderType) throws Exception;
+
+
+    /**
+     * 获取员工的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception;
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception;
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception;
+
+
+    /**
+     * 获取用户端发票页面中的订单列表数据
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+                                                Double endMoney, Integer uid) throws Exception;
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    Map<String, Object> queryOrderInfo(Integer orderId) throws Exception;
+
+
+    /**
+     * 获取下单推送完后没有司机下单的提醒
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    EndPushWarpper queryEndPush(Integer uid) throws Exception;
+
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception;
+
+
+    /**
+     * 评论成功后获取红包金额
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil<BaseWarpper> queryRedMoney(Integer orderId) throws Exception;
+
+
+    /**
+     * 分享成功后添加红包
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    ResultUtil shareRedEnvelope(Integer orderId) throws Exception;
+
+
+    /**
+     * 获取订单数据
+     * @param uid
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    List<OrderTaxi> queryOrder(Integer uid, Integer...state) throws Exception;
+
+
+    /**
+     * 支付完成后的订单处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payOrderTaxiCallback(Integer id, String order_id, Integer type) throws Exception;
+
+
+    /**
+     * 取消订单支付后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    void payCancelOrderTaxi(Integer id, String order_id, Integer type) throws Exception;
+
+
+    /**
+     * 获取订单编号
+     * @return
+     * @throws Exception
+     */
+    String getOrderNum() throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IPaymentRecordService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IPaymentRecordService.java
new file mode 100644
index 0000000..edca3ff
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/IPaymentRecordService.java
@@ -0,0 +1,35 @@
+package com.stylefeng.guns.modular.taxi.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+
+import java.util.List;
+
+public interface IPaymentRecordService extends IService<PaymentRecord> {
+
+
+    /**
+     * 添加数据
+     * @param orderId       订单id
+     * @param orderType     订单类型
+     * @param payType       支付方式(1=微信,2=支付宝)
+     * @param amount        支付金额
+     * @param code          第三方支付单号
+     * @param state         支付状态(1=待支付,2=已支付)
+     * @throws Exception
+     */
+    Integer saveData(Integer category, Integer userId, Integer type, Integer orderId, Integer orderType, Integer payType,
+                  Double amount, String code, Integer state) throws Exception;
+
+
+    /**
+     * 获取数据
+     * @param orderId
+     * @param payType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    PaymentRecord query(Integer category, Integer userId, Integer type, Integer orderId, Integer orderType,
+               Integer payType, Integer state) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java
new file mode 100644
index 0000000..81ca3ba
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/ITransactionDetailsService.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.taxi.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
+
+public interface ITransactionDetailsService extends IService<TransactionDetails> {
+
+
+    /**
+     * 添加数据
+     * @param userId    对象id
+     * @param remark    备注
+     * @param money     金额
+     * @param state     状态(1=添加,2=减少)
+     * @param type      类型(1=金额,2=积分)
+     * @param userType  用户类型(1=用户,2=司机)
+     * @param orderType 订单类型(1=专车,2=出租车,3=城际,4=小件物流,5=余额充值,6=余额提现,7=积分兑换)
+     * @param orderId
+     * @throws Exception
+     */
+    void saveData(Integer userId, String remark, Double money, Integer state,
+                  Integer type, Integer userType, Integer orderType, Integer orderId) throws Exception;
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
new file mode 100644
index 0000000..ac91de1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -0,0 +1,1354 @@
+package com.stylefeng.guns.modular.taxi.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.util.ToolUtil;
+import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.crossCity.server.impl.OrderCrossCityServiceImpl;
+import com.stylefeng.guns.modular.specialTrain.dao.OrderPrivateCarMapper;
+import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar;
+import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService;
+import com.stylefeng.guns.modular.system.dao.*;
+import com.stylefeng.guns.modular.system.model.*;
+import com.stylefeng.guns.modular.system.service.*;
+import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.warpper.BaseWarpper;
+import com.stylefeng.guns.modular.system.warpper.EndPushWarpper;
+import com.stylefeng.guns.modular.system.warpper.OrderServerWarpper;
+import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper;
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.bouncycastle.crypto.tls.MACAlgorithm;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.MathContext;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Service
+@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+public class OrderTaxiServiceImpl extends ServiceImpl<OrderTaxiMapper, OrderTaxi> implements IOrderTaxiService {
+
+    @Resource
+    private OrderTaxiMapper orderTaxiMapper;
+
+    @Resource
+    private SensitiveWordsMapper sensitiveWordsMapper;
+
+    @Resource
+    private SysIntegralMapper sysIntegralMapper;
+
+    @Resource
+    private UserActivityDiscount1Mapper userActivityDiscount1Mapper;
+
+    @Resource
+    private OrderPrivateCarMapper orderPrivateCarMapper;
+
+    @Resource
+    private RegionMapper regionMapper;
+
+    @Autowired
+    private IOrderCancelService orderCancelService;
+
+    @Autowired
+    private GDMapElectricFenceUtil gdMapElectricFenceUtil;
+
+    @Autowired
+    private IDriverService driverService;
+
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Autowired
+    private IUserInfoService userInfoService;
+
+    @Autowired
+    private IPushOrderService pushOrderService;
+
+    @Autowired
+    private ICancleOrderService cancleOrderService;
+
+    @Autowired
+    private PayMoneyUtil payMoneyUtil;
+
+    @Autowired
+    private ITransactionDetailsService transactionDetailsService;
+
+    @Autowired
+    private IPaymentRecordService paymentRecordService;
+
+    @Autowired
+    private IUserCouponRecordService userCouponRecordService;
+
+    @Autowired
+    private IUserRedPacketRecordService userRedPacketRecordService;
+
+    @Autowired
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
+    @Autowired
+    private ICompanyCityService companyCityService;
+
+    @Autowired
+    private PushUtil pushUtil;
+
+    @Autowired
+    private RedisUtil redisUtil;
+
+    @Autowired
+    private RestTemplate internalRestTemplate;
+
+    @Autowired
+    private IUserActivityRedenvelopeService userActivityRedenvelopeService;
+
+    @Autowired
+    private IDriverOrdersService driverOrdersService;
+
+    @Autowired
+    private IIncomeService incomeService;
+
+    @Autowired
+    private ICompanyService companyService;
+
+    @Autowired
+    private ICBCPayUtil icbcPayUtil;
+
+    @Autowired
+    private ISystemNoticeService systemNoticeService;
+
+    @Autowired
+    private IOrderPositionService orderPositionService;
+
+    @Autowired
+    private ChinaMobileUtil chinaMobileUtil;
+
+    @Autowired
+    private IDriverServiceService driverServiceService;
+
+    @Autowired
+    private GDFalconUtil gdFalconUtil;
+
+    @Autowired
+    private IOrderPrivateCarService orderPrivateCarService;
+
+    @Autowired
+    private IOrderCrossCityService orderCrossCityService;
+
+    public static List<Integer> orderIds = new ArrayList<>();
+
+
+    @Value("${callbackPath}")
+    private String callbackPath;
+
+
+
+
+
+
+
+    /**
+     * 出租车下单操作
+     * @param orderTaxi
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil<BaseWarpper> taxiOrder(OrderTaxi orderTaxi, Integer uid) throws Exception {
+        //定义用户所属公司
+        UserInfo userInfo1 = userInfoService.selectById(uid);
+        Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));
+        if(null == query){
+            return ResultUtil.error("出发点暂未开通");
+        }
+        if(null != userInfo1.getCompanyId() && 0 != userInfo1.getCompanyId()){
+            userInfo1.setCompanyId(query.getId());
+            userInfoService.updateById(userInfo1);
+        }
+
+        if(orderTaxi.getTravelTime().getTime() > (System.currentTimeMillis() + 600000)){
+            orderTaxi.setOrderType(2);
+        }
+
+
+        /**
+         * 1.下了即时单就不能下预约单和即时单
+         * 2.下了预约单和再下一张即时单不能再下预约单
+         */
+        List<OrderTaxi> list = orderTaxiMapper.queryByState_(uid, 1, 1, 1, 2, 3, 4, 5, 6, 11);
+        if(list.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+        List<OrderPrivateCar> orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 1, 1, 1, 2, 3, 4, 5, 6, 7, 11);
+        if(orderPrivateCars.size() > 0){
+            return ResultUtil.error("有未完成的订单");
+        }
+
+        list = orderTaxiMapper.queryByState_(uid, 2, 1, 1, 2, 3, 4, 5, 6, 11);
+        if(list.size() > 0 && orderTaxi.getOrderType() == 2){
+            return ResultUtil.error("有未完成的订单");
+        }
+        orderPrivateCars = orderPrivateCarMapper.queryByState(uid, 2, 1, 1, 2, 3, 4, 5, 6, 7, 11);
+        if(orderPrivateCars.size() > 0 && orderTaxi.getOrderType() == 2){
+            return ResultUtil.error("有未完成的订单");
+        }
+
+
+        orderTaxi.setOrderNum(this.getOrderNum());
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(String.valueOf(orderTaxi.getPlacementLon()), String.valueOf(orderTaxi.getPlacementLat()));
+        orderTaxi.setPlacementAddress(geocode.get("address"));
+        orderTaxi.setStartAddress(orderTaxi.getStartAddress().replaceAll("& #40;", "\\("));//特殊字符转义
+        orderTaxi.setStartAddress(orderTaxi.getStartAddress().replaceAll("& #41;", "\\)"));
+        if(ToolUtil.isNotEmpty(orderTaxi.getEndAddress())){
+            orderTaxi.setEndAddress(orderTaxi.getEndAddress().replaceAll("& #40;", "\\("));
+            orderTaxi.setEndAddress(orderTaxi.getEndAddress().replaceAll("& #41;", "\\)"));
+        }
+        orderTaxi.setUserId(uid);
+        orderTaxi.setMileage(0D);
+        orderTaxi.setOrderMoney(0D);
+        orderTaxi.setTravelMoney(0D);
+        orderTaxi.setParkMoney(0D);
+        orderTaxi.setRoadTollMoney(0D);
+        orderTaxi.setRedPacketMoney(0D);
+        orderTaxi.setCouponMoney(0D);
+        orderTaxi.setInsertTime(new Date());
+        orderTaxi.setIsReassign(1);
+        if(orderTaxi.getSubstitute() == 0){//不是代下单
+            UserInfo userInfo = userInfoService.selectById(uid);
+            if(ToolUtil.isEmpty(userInfo.getPhone())){
+                return ResultUtil.error("请先绑定手机号码");
+            }
+            orderTaxi.setPassengers(userInfo.getName());
+            orderTaxi.setPassengersPhone(userInfo.getPhone());
+        }
+        orderTaxi.setState(1);//待接单
+        if(orderTaxi.getOrderSource() == 2 && null != orderTaxi.getDriverId()){//扫码下单,
+            Driver driver = driverService.selectById(orderTaxi.getDriverId());
+            if(null == driver){
+                return ResultUtil.error("扫码下单失败,司机信息有误");
+            }
+            if(driver.getAuthState() == 1){
+                return ResultUtil.error("司机信息还未完成审核,无法完成下单");
+            }
+            if(driver.getAuthState() == 3){
+                return ResultUtil.error("司机账户已被冻结,无法提供服务");
+            }
+            if(driver.getAuthState() == 4){
+                return ResultUtil.error("司机信息未通过审核,无法提供服务");
+            }
+            if(driver.getState() == 1){
+                return ResultUtil.error("司机还未上线,无法提供服务");
+            }
+            if(driver.getState() == 3){
+                return ResultUtil.error("司机正在服务中,无法提供服务");
+            }
+            List<DriverService> driverServices = driverServiceService.query(orderTaxi.getDriverId(), 2);
+            if(driverServices.size() == 0){
+                return ResultUtil.error("该司机不能服务此业务");
+            }
+
+            orderTaxi.setCompanyId(driver.getFranchiseeId() != null && driver.getFranchiseeId() != 0 ? driver.getFranchiseeId() : (
+                    driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1));
+            orderTaxi.setCarId(driver.getCarId());
+            orderTaxi.setState(2);//待出发
+            orderTaxi.setSnatchOrderTime(new Date());
+            //调用高德创建轨迹
+            String s = gdFalconUtil.selectTerminal(driver.getPhone());
+            String track = gdFalconUtil.createTrack(s);
+            orderTaxi.setTrackId(track);
+
+            //调用移动的小号接口
+            Map<String, String> geocode1 = gdMapGeocodingUtil.geocode(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
+            Region region = regionMapper.query(geocode1.get("districtCode"));
+            Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), Integer.valueOf(region.getCitycode().substring(1)));
+            if(String.valueOf(map.get("code")).equals("200")){
+                orderTaxi.setTelX(map.get("telX"));
+                orderTaxi.setBindId(map.get("bindId"));
+            }
+
+            driver.setState(3);
+            driverService.updateById(driver);
+        }
+
+        this.insert(orderTaxi);
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                if(orderTaxi.getState() == 2){
+                    //推送司机订单状态
+                    pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+
+                    pushUtil.pushDriverPosition(orderTaxi.getId(), 2);
+                }
+            }
+        }).start();
+
+        if(orderTaxi.getState() == 1){
+            //推送司机抢单
+            this.pushOrder(orderTaxi);
+        }
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您的出租车订单已下单成功,我们正在为您指派司机,请稍后!", orderTaxi.getUserId(), 1);
+
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setId(orderTaxi.getId());
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 继续执行推动等待操作
+     * @param id
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil pushOrderTaxi(Integer id) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(id);
+        if(null == orderTaxi){
+            return ResultUtil.error("推送订单失败,订单信息有误");
+        }
+        if(orderTaxi.getState() != 1){
+            return ResultUtil.error("订单已被司机接单,不能重复推送");
+        }
+
+        //处理摆渡订单的继续推单操作
+        if(orderTaxi.getType() == 2){
+            OrderCrossCityServiceImpl.pushEndMap.put(orderTaxi.getCrossCityOrderId(), false);//还原标识数据
+            List<OrderPrivateCar> list = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace()));
+            List<Map<String, Integer>> orders = new ArrayList<>();
+            for(OrderPrivateCar orderPrivateCar1 : list){
+                if(orderPrivateCar1.getState() != 1){
+                    return ResultUtil.error("订单已被司机接单,推单取消");
+                }
+                Map<String, Integer> map = new HashMap<>();
+                map.put("orderType", 1);
+                map.put("orderId", orderPrivateCar1.getId());
+                orders.add(map);
+            }
+            List<OrderTaxi> list1 = this.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace()));
+            for(OrderTaxi orderTaxi1 : list1){
+                if(orderTaxi1.getState() != 1){
+                    return ResultUtil.error("订单已被司机接单,推单取消");
+                }
+                Map<String, Integer> map = new HashMap<>();
+                map.put("orderType", 2);
+                map.put("orderId", orderTaxi1.getId());
+                orders.add(map);
+            }
+            //开始重新推单
+            orderCrossCityService.pushOrder(orders);
+
+        }else{
+            this.pushOrder(orderTaxi);
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取取消订单需要支付的金额(包含小费)
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil<BaseWarpper> queryCancleAmount(Integer id) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(id);
+        if(null == orderTaxi){
+            return ResultUtil.error("获取数据失败,订单信息有误");
+        }
+        double amount = 0;
+        CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId());
+        if(null != orderTaxi.getDriverId() &&
+                (orderTaxi.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < new Date().getTime()){//收费的情况
+            if(null != query){
+                amount += query.getMoney();
+            }
+        }
+        BaseWarpper baseWarpper = new BaseWarpper();
+        baseWarpper.setAmount(amount);
+        return ResultUtil.success(baseWarpper);
+    }
+
+
+    /**
+     * 添加订单取消
+     * @param id
+     * @param reason
+     * @param remark
+     * @param uid
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid) throws Exception {
+        if(ToolUtil.isNotEmpty(remark)){
+            if(ToolUtil.isNotEmpty(remark)){
+                List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
+                for(SensitiveWords s : sensitiveWords){
+                    remark = remark.replaceAll(s.getContent(), "***");
+                }
+            }
+        }
+
+        OrderTaxi orderTaxi = this.selectById(id);
+        if(null == uid){
+            uid = orderTaxi.getUserId();
+        }
+        Integer integer = null;
+        if(null == orderTaxi){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderTaxi.getState() > 5 && orderTaxi.getState() != 11){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+        if(null == orderTaxi.getDriverId()){//没有接单的情况
+            if(orderTaxi.getType() == 2){//摆渡车
+                OrderCrossCityServiceImpl.pushEndMap.remove(orderTaxi.getCrossCityOrderId());//删除标识数据
+                List<OrderPrivateCar> list = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace()));
+                for(OrderPrivateCar orderPrivateCar1 : list){
+                    orderCancelService.saveData(orderPrivateCar1.getId(), 1, "无司机接单", "无司机接单", null, null, 2, 1, uid);
+                    orderPrivateCar1.setState(10);
+                    orderPrivateCarService.updateById(orderPrivateCar1);
+                }
+                List<OrderTaxi> list1 = this.selectList(new EntityWrapper<OrderTaxi>().eq("type", 2).eq("crossCityOrderId", orderTaxi.getCrossCityOrderId()).eq("place", orderTaxi.getPlace()));
+                for(OrderTaxi orderTaxi1 : list1){
+                    orderCancelService.saveData(orderTaxi1.getId(), 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
+                    orderTaxi1.setState(10);
+                    this.updateById(orderTaxi1);
+                }
+            }else{
+                integer = orderCancelService.saveData(id, 2, "无司机接单", "无司机接单", null, null, 2, 1, uid);
+                orderTaxi.setState(10);
+                this.updateById(orderTaxi);
+            }
+        }else {
+            CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId());
+            if (null != query) {
+                if ((orderTaxi.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < System.currentTimeMillis() && query.getMoney().compareTo(0D) > 0) {//收费的情况
+                    orderTaxi.setState(12);
+                    this.updateById(orderTaxi);
+                    integer = orderCancelService.saveData(id, 2, reason, remark, null, query.getMoney(), 1, 1, uid);
+                } else {
+                    integer = orderCancelService.saveData(id, 2, reason, remark, null, null, 2, 1, uid);
+
+                    orderTaxi.setState(10);
+                    this.updateById(orderTaxi);
+                }
+                this.deleteTask(id);//删除定时任务
+
+                new Thread(new Runnable() {
+                    @Override
+                    public void run() {
+                        pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+                        System.err.println("推送取消操作---------------------");
+                    }
+                }).start();
+
+                //修改司机为空闲
+                Driver driver = driverService.selectById(orderTaxi.getDriverId());
+                driver.setState(2);
+                driverService.updateById(driver);
+            }else{
+                return ResultUtil.error("请完善后台取消规则设置");
+            }
+
+        }
+
+        //添加消息
+        systemNoticeService.addSystemNotice(1, "您已成功取消出行订单,谢谢使用!", orderTaxi.getUserId(), 1);
+        Map<String, Object> map = new HashMap<>();
+        map.put("id", integer);
+        return ResultUtil.success(map);
+    }
+
+
+    /**
+     * 取消订单操作
+     * @param id
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil cancleOrderTaxi(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(id);
+        Integer uid = orderTaxi.getUserId();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+
+        if(null == orderTaxi){
+            return ResultUtil.error("取消订单失败,订单信息有误");
+        }
+        if(orderTaxi.getState() != 12){
+            return ResultUtil.error("取消订单失败,不合法的操作");
+        }
+        OrderCancel orderCancel = null;
+        if(null == cancleId){
+            orderCancel = orderCancelService.query(id, 2, null, null, 1);
+        }else{
+            orderCancel = orderCancelService.selectById(cancleId);
+        }
+
+        CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId());
+        if(null != query){
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            String out_trade_no = sdf.format(new Date()) + 2 + id;
+            if(payType == 1){//微信支付
+                String appletsOpenId = "";
+                String tradeType = "APP";
+                if(type == 3){
+                    appletsOpenId = userInfo.getAppletsOpenId();
+                    tradeType = "JSAPI";
+                    if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                        return ResultUtil.error("支付异常,请重新授权登录小程序");
+                    }
+                }
+                resultUtil = payMoneyUtil.weixinpay("订单取消", "", out_trade_no,  query.getMoney().toString(), callbackPath + "/base/wxCancelOrderTaxi", tradeType, appletsOpenId);
+                if(resultUtil.getCode() == 200){
+                    paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, id, 2, 1, query.getMoney(), "", 1);//添加预支付数据
+                }
+            }
+            if(payType == 2){//支付宝支付
+                resultUtil = payMoneyUtil.alipay("取消订单支付", "取消订单", out_trade_no, query.getMoney().toString(), callbackPath + "/base/aliCancelOrderTaxi");
+                if(resultUtil.getCode() == 200){
+                    paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, id, 2, 2, query.getMoney(), "", 1);//添加预支付数据
+                }
+            }
+            if(payType == 3){//余额支付
+                if(userInfo.getBalance() != null && userInfo.getBalance() < query.getMoney()){
+                    return ResultUtil.error("余额不足,无法完成支付");
+                }
+
+                userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                //添加交易明细
+                transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id);
+                userInfoService.updateById(userInfo);
+
+                //解除小号绑定
+                if(orderTaxi.getBindId() != null){
+                    chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId());
+                }
+
+                orderTaxi.setState(10);
+                orderTaxi.setTelX("");
+                orderTaxi.setBindId("");
+                this.updateById(orderTaxi);
+
+                orderCancel.setState(2);
+                orderCancel.setPayType(3);
+                orderCancelService.updateById(orderCancel);
+
+                //添加已收入明细
+                incomeService.saveData(1, orderTaxi.getCompanyId(), 3, orderTaxi.getId(), 2, query.getMoney());
+
+                this.deleteTask(id);//删除定时任务
+
+//                new Thread(new Runnable() {
+//                    @Override
+//                    public void run() {
+//                        pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+//                    }
+//                }).start();
+
+                //添加消息
+                systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderTaxi.getUserId(), 1);
+            }
+        }
+        return resultUtil;
+    }
+
+
+    /**
+     * 删除定时任务
+     * @param orderId
+     */
+    @Override
+    public void deleteTask(Integer orderId){
+        //发送验证码短信
+        HttpHeaders headers = new HttpHeaders();
+        // 以表单的方式提交
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
+        //将请求头部和参数合成一个请求
+        MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
+        params.add("orderId", orderId + "");
+        params.add("orderType", "2");
+        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
+        String s = internalRestTemplate.postForObject("http://driver-server/base/netty/deleteTask", requestEntity, String.class);
+        JSONObject jsonObject = JSON.parseObject(s, JSONObject.class);
+        if(jsonObject.getIntValue("code") != 200){
+            System.err.println("调用driver-server出错了");
+        }
+    }
+
+
+    /**
+     * 获取用户余额和可用优惠券数量
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public Map<String, Object> queryBalance(Integer orderId, Integer uid) throws Exception {
+        Map<String, Object> map = new HashMap<>();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        map.put("balance", userInfo.getBalance());
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        int i = userCouponRecordService.queryAvailable(uid, orderTaxi.getCompanyId(), 1, 2, orderTaxi.getOrderMoney());
+        i = i + userCouponRecordService.queryAvailable(uid, orderTaxi.getCompanyId(), 1, 0, orderTaxi.getOrderMoney());
+        map.put("coupon", i);
+        return map;
+    }
+
+
+    /**
+     * 获取优惠券列表
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryCoupon(Integer orderId, Integer uid, Integer pageNum, Integer size) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        List<Map<String, Object>> list = userCouponRecordService.queryCoupon(uid, orderTaxi.getCompanyId(), 1, 2, orderTaxi.getOrderMoney(), pageNum, size);
+        List<Map<String, Object>> list1 = userCouponRecordService.queryCoupon(uid, orderTaxi.getCompanyId(), 1, 0, orderTaxi.getOrderMoney(), pageNum, size);
+        list.addAll(list1);
+        return list;
+    }
+
+
+    /**
+     * 订单完成支付订单操作
+     * @param payType   1=微信,2=支付宝,3=余额
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil payTaxiOrder(Integer payType, Integer orderId, Integer couponId, Integer type) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        if(orderTaxi.getState() == 8 || orderTaxi.getState() == 9){
+            return ResultUtil.error("订单已完成支付,不允许重复支付");
+        }
+        if(orderTaxi.getState() != 7){
+            return ResultUtil.error("订单不在待支付状态,不允许支付");
+        }
+        Integer uid = orderTaxi.getUserId();
+        Double orderMoney = orderTaxi.getOrderMoney();
+        UserInfo userInfo = userInfoService.selectById(uid);
+        ResultUtil resultUtil = ResultUtil.success();
+        orderTaxi.setCouponMoney(0D);//初始化历史数据
+        orderTaxi.setCouponId(null);
+
+        //计算优惠券
+        UserCouponRecord userCouponRecord = null;
+        if(null != couponId){
+            userCouponRecord = userCouponRecordService.selectById(couponId);
+            if(userCouponRecord.getCompanyId() != orderTaxi.getCompanyId()){
+                return ResultUtil.error("优惠券不能用于此订单");
+            }
+            if(userCouponRecord.getState() == 2){
+                return ResultUtil.error("优惠券已使用");
+            }
+            if(userCouponRecord.getState() == 3){
+                return ResultUtil.error("优惠券已过期");
+            }
+            if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 2){
+                return ResultUtil.error("优惠券不能用于此类型订单");
+            }
+            if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){
+                return ResultUtil.error("优惠券不能用于此订单");
+            }
+            orderMoney = orderMoney - userCouponRecord.getMoney();
+            orderTaxi.setCouponMoney(userCouponRecord.getMoney());
+            orderTaxi.setCouponId(couponId);
+        }
+
+        //计算红包
+        UserRedPacketRecord query = userRedPacketRecordService.query(uid, orderTaxi.getCompanyId(), 1, 2, orderMoney);
+        if(null != query && orderMoney.compareTo(query.getMoney()) > 0){
+            orderMoney = orderMoney - query.getMoney();
+            orderTaxi.setRedPacketMoney(query.getMoney());
+            orderTaxi.setRedPacketId(query.getId());
+        }
+
+        //计算折扣
+        UserActivityDiscount1 query2 = userActivityDiscount1Mapper.query(orderTaxi.getCompanyId());
+        if(null != query2){
+            Double taxi = query2.getTaxi();
+            orderTaxi.setDiscount(taxi);
+            double v = new BigDecimal(orderMoney).multiply(new BigDecimal(taxi / 10)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            if(orderMoney.compareTo(v) > 0){
+                orderTaxi.setDiscountMoney(orderMoney - v);
+                orderTaxi.setActivityId(query2.getId());
+                orderMoney = v;
+            }
+        }
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String out_trade_no = sdf.format(new Date()) + 2 + orderTaxi.getId();
+
+        if(payType == 1){//微信支付
+            String appletsOpenId = "";
+            String tradeType = "APP";
+            if(type == 3){
+                appletsOpenId = userInfo.getAppletsOpenId();
+                tradeType = "JSAPI";
+                if(ToolUtil.isEmpty(userInfo.getAppletsOpenId())){
+                    return ResultUtil.error("支付异常,请重新授权登录小程序");
+                }
+            }
+            resultUtil = payMoneyUtil.weixinpay("完成订单", "", out_trade_no, orderMoney.toString(), callbackPath + "/base/wxPayOrderTaxi", tradeType, appletsOpenId);
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 1, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 2){//支付宝支付
+            resultUtil = payMoneyUtil.alipay("订单完成支付", "支付订单", out_trade_no, orderMoney.toString(), callbackPath + "/base/aliPayOrderTaxi");
+            if(resultUtil.getCode() == 200){
+                paymentRecordService.saveData(1, orderTaxi.getUserId(), 1, orderId, 2, 2, orderMoney, "", 1);//添加预支付数据
+            }
+        }
+        if(payType == 3){//余额支付
+            if(userInfo.getBalance() == null || userInfo.getBalance() < orderMoney){
+                return ResultUtil.error("余额不足,无法完成支付");
+            }
+
+            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+
+            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
+
+            //添加交易明细
+            transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId);
+            userInfoService.updateById(userInfo);
+
+            orderTaxi.setState(8);
+            orderTaxi.setPayType(3);
+            orderTaxi.setPayMoney(orderMoney);
+
+            //处理优惠券和红包
+            if(null != userCouponRecord){
+                userCouponRecord.setState(2);
+                userCouponRecord.setEndTime(new Date());
+                userCouponRecordService.updateById(userCouponRecord);
+            }
+            if(null != query){
+                query.setState(2);
+                query.setEndTime(new Date());
+                userRedPacketRecordService.updateById(query);
+            }
+
+            //添加已收入明细
+            Company company = companyService.selectById(orderTaxi.getCompanyId());
+            Double taxi = company.getTaxiMoney();
+            BigDecimal d = null;//企业收入
+            BigDecimal c = null;//司机收入
+            if(company.getIsTaxiFixedOrProportional() == 2){//固定
+                d = new BigDecimal(taxi);
+                c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d);//只有出行金额参与抽成,其余归属司机
+            }
+            if(company.getIsTaxiFixedOrProportional() == 1){//比例
+                d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+                c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+            }
+            incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue());
+            incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue());
+            Driver driver = driverService.selectById(orderTaxi.getDriverId());
+            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driverService.updateById(driver);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+                    pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+                }
+            }).start();
+
+            //用户付款后,删除限制司机6分钟不能接单的标识
+            String vehicle = redisUtil.getValue("VEHICLE");
+            if(ToolUtil.isNotEmpty(vehicle)){
+                JSONArray jsonArray = JSON.parseArray(vehicle);
+                for(int i = 0; i < jsonArray.size(); i++){
+                    if(jsonArray.getInteger(i).compareTo(orderTaxi.getDriverId()) == 0){
+                        jsonArray.remove(i);
+                        break;
+                    }
+                }
+                redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+            }
+            systemNoticeService.addSystemNotice(1, "您已使用余额成功完成出行订单支付,谢谢使用!", uid, 1);
+        }
+
+        this.updateAllColumnById(orderTaxi);
+        return resultUtil;
+    }
+
+
+    /**
+     * 手动完成订单操作
+     * @param orderId
+     * @param orderType
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public ResultUtil completeOrder(Integer orderId, Integer orderType) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        if(orderTaxi.getState() != 7){
+            return ResultUtil.error("订单不在待支付,无法完成订单");
+        }
+        orderTaxi.setPayManner(2);//其他方式支付
+//        orderTaxi.setOrderMoney(0D);
+//        orderTaxi.setTravelMoney(0D);
+//        orderTaxi.setParkMoney(0D);
+//        orderTaxi.setRoadTollMoney(0D);
+        orderTaxi.setRedPacketMoney(0D);
+        orderTaxi.setCouponMoney(0D);
+        orderTaxi.setDiscount(0D);
+        orderTaxi.setDiscountMoney(0D);
+        orderTaxi.setPayMoney(orderTaxi.getOrderMoney());
+        orderTaxi.setState(8);
+        this.updateById(orderTaxi);
+
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                pushUtil.pushOrderState(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+                pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+            }
+        }).start();
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取用户的订单列表
+     * @param uid
+     * @param pageNum
+     * @param size
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyOrderList(Integer uid, Integer pageNum, Integer size) throws Exception {
+        pageNum = (pageNum - 1) * size;
+        List<Map<String, Object>> maps = orderTaxiMapper.queryMyOrderList(uid, pageNum, size);
+        for(Map<String, Object> map : maps){
+            if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+                map.put("state", map.get("oldState"));
+            }
+        }
+        return maps;
+    }
+
+
+    /**
+     * 获取历史消费记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception {
+        return orderTaxiMapper.queryMyTravelRecord(uid);
+    }
+
+
+    /**
+     * 获取红包使用记录
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryRedEnvelope(Integer uid) throws Exception {
+        return orderTaxiMapper.queryRedEnvelope(uid);
+    }
+
+
+    /**
+     * 获取用户单发票页面的订单列表
+     * @param type          开票状态(1=未开票,2=已开票)
+     * @param startTime     订单开始时间
+     * @param endTime       订单结束时间
+     * @param startMoney    订单金额范围
+     * @param endMoney
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<Map<String, Object>> queryInvoiceOrder(Integer type, Date startTime, Date endTime, Double startMoney,
+                                                       Double endMoney, Integer uid) throws Exception {
+        startTime = dateUtil.getStartOrEndDate(startTime, "start");
+        endTime = dateUtil.getStartOrEndDate(endTime, "end");
+        return orderTaxiMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
+    }
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    @Override
+    public Map<String, Object> queryOrderInfo(Integer orderId) throws Exception{
+        Map<String, Object> map = orderTaxiMapper.queryOrderInfo(orderId);
+        if(null != map && null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用
+            OrderTaxi orderTaxi = this.selectById(orderId);
+            orderTaxi.setReassignNotice(0);
+            this.updateById(orderTaxi);
+        }
+        if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){
+            map.put("state", map.get("oldState"));
+        }
+        String driverId = redisUtil.getValue("DEVICE_" + map.get("driverId"));
+        map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
+        map.put("orderType", 2);
+        return map;
+    }
+
+
+    /**
+     * 获取下单推送完后没有司机下单的提醒
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public EndPushWarpper queryEndPush(Integer uid) throws Exception {
+        List<OrderTaxi> list = orderTaxiMapper.queryByState(uid, 1);
+        EndPushWarpper endPushWarpper = new EndPushWarpper();
+        if(list.size() > 0){
+            OrderTaxi orderTaxi = list.get(0);
+            if(!orderIds.contains(orderTaxi.getId())){
+                endPushWarpper.setOrderId(orderTaxi.getId());
+                endPushWarpper.setOrderType(2);
+                endPushWarpper.setState(1);
+                List<PushOrder> querys = pushOrderService.querys(null, 2, orderTaxi.getCompanyId());//获取需要推送的次数
+                int time = 0;
+                for(int i = 1; i <= querys.size(); i++){
+                    PushOrder pushOrder = pushOrderService.querys(i, 2, orderTaxi.getCompanyId()).get(0);
+                    time += pushOrder.getPushTime() * 1000;
+                }
+                //当前时间减去推单总时间大于下单时间
+                if((System.currentTimeMillis() - time) > orderTaxi.getInsertTime().getTime()){
+                    endPushWarpper.setState(2);
+                }
+            }
+
+        }
+        return endPushWarpper;
+    }
+
+
+
+
+    /**
+     * 获取服务中的订单数据
+     * @param uid
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        //计算预计距离和剩余时间
+        String value = redisUtil.getValue("DRIVER" + String.valueOf(orderTaxi.getDriverId()));
+        if(null == value || "".equals(value)){
+            System.err.println("司机没有上传位置信息");
+
+            //调用获取轨迹中的数据
+            List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2);
+            if(list.size() > 0){
+                Map<String, Object> map = list.get(list.size() - 1);
+                value = map.get("lon") + "," + map.get("lat");
+            }
+        }
+        Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderTaxi.getStartLon() + "," + orderTaxi.getStartLat(), 1);
+        String d = "0";
+        String t = "0";
+        if(null == distance){
+            System.err.println("查询距离出错了");
+        }else{
+            d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+            t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+        }
+        OrderServerWarpper orderServerWarpper = new OrderServerWarpper();
+        orderServerWarpper.setOrderId(orderTaxi.getId());
+        orderServerWarpper.setOrderType(2);
+        orderServerWarpper.setState(orderTaxi.getState());
+        orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0");
+        orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0");
+        orderServerWarpper.setReassignNotice(orderTaxi.getReassignNotice());
+        if(orderTaxi.getState() == 2 || orderTaxi.getState() == 3){//前往预约地
+            orderServerWarpper.setReservationMileage(d);
+            orderServerWarpper.setReservationTime(t);
+            orderServerWarpper.setServedMileage("0");
+            orderServerWarpper.setServedTime("0");
+            orderServerWarpper.setLaveMileage("0");
+            orderServerWarpper.setLaveTime("0");
+        }
+        if(orderTaxi.getState() == 5 || orderTaxi.getState() == 6){//服务中
+            distance = gdMapElectricFenceUtil.getDistance(value, orderTaxi.getEndLon() + "," + orderTaxi.getEndLat(), 1);
+            if(null == distance){
+                System.err.println("查询距离出错了");
+            }else{
+                d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
+                t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).setScale(2, BigDecimal.ROUND_HALF_EVEN).intValue() + "";
+            }
+            orderServerWarpper.setReservationMileage("0");
+            orderServerWarpper.setReservationTime("0");
+            orderServerWarpper.setServedMileage(String.valueOf(orderTaxi.getMileage() / 1000));
+            orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderTaxi.getStartServiceTime().getTime()) / 60000).intValue() + "");
+            orderServerWarpper.setLaveMileage(d);
+            orderServerWarpper.setLaveTime(t);
+        }
+
+        return orderServerWarpper;
+    }
+
+
+    /**
+     * 评论成功后获取红包金额
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil<BaseWarpper> queryRedMoney(Integer orderId) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        Integer companyId = orderTaxi.getCompanyId();
+
+        Map<String, Object> query = userActivityRedenvelopeService.query(companyId, orderTaxi.getTravelTime());
+        Double money = 0D;
+        BaseWarpper baseWarpper = new BaseWarpper();
+        if(null != query){
+            Integer type = Integer.valueOf(String.valueOf(query.get("type")));
+            if(type == 1){//固定金额
+                money = Double.valueOf(String.valueOf(query.get("money")));
+            }else{//随机金额
+                Double startMoney = Double.valueOf(String.valueOf(query.get("startMoney")));
+                Double endMoney = Double.valueOf(String.valueOf(query.get("endMoney")));
+                int i = new BigDecimal(endMoney).subtract(new BigDecimal(startMoney)).intValue();
+                Random random = new Random();
+                int num = random.nextInt(i);
+                money = new BigDecimal(startMoney).add(new BigDecimal(num)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue();
+            }
+
+            //判断当前红包是否大于剩余可领取总金额
+            if(money.compareTo(Double.valueOf(query.get("lavePrice").toString())) > 0){
+                baseWarpper.setAmount(0D);
+                return ResultUtil.success(baseWarpper);
+            }
+        }
+        baseWarpper.setAmount(money);
+
+        if(money > 0){
+            //添加临时红包数据
+            UserRedPacketRecord userRedPacketRecord = new UserRedPacketRecord();
+            userRedPacketRecord.setMoney(money);
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(new Date());
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + Integer.valueOf(String.valueOf(query.get("effective"))));
+            userRedPacketRecord.setExpirationTime(calendar.getTime());
+            userRedPacketRecord.setInsertTime(new Date());
+            userRedPacketRecord.setCompanyId(Integer.valueOf(String.valueOf(query.get("companyId"))));
+            userRedPacketRecord.setState(0);
+            userRedPacketRecord.setOrderId(orderTaxi.getId());
+            userRedPacketRecord.setOrderType(2);
+            userRedPacketRecord.setUserId(orderTaxi.getUserId());
+            userRedPacketRecordService.insert(userRedPacketRecord);
+        }
+
+        return ResultUtil.success(baseWarpper);
+    }
+
+    /**
+     * 分享成功后添加红包
+     * @param orderId
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public synchronized ResultUtil shareRedEnvelope(Integer orderId) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(orderId);
+        UserRedPacketRecord query = userRedPacketRecordService.query_(orderTaxi.getUserId(), orderTaxi.getCompanyId(), 0, 2, null);
+        if(null != query){
+            Double money = query.getMoney();
+            Map<String, Object> map = userActivityRedenvelopeService.query(orderTaxi.getCompanyId(), orderTaxi.getTravelTime());
+            Double laveMoney = Double.valueOf(String.valueOf(map.get("laveMoney")));
+            if(money.compareTo(laveMoney) > 0){
+                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+            }
+            //判断当前红包是否大于剩余可领取总金额
+            if(money.compareTo(Double.valueOf(map.get("lavePrice").toString())) > 0){
+                return ResultUtil.error("手速太慢了,红包已派发完啦!");
+            }
+            double v = new BigDecimal(laveMoney).subtract(new BigDecimal(money)).doubleValue();
+
+            UserActivityRedenvelope id = userActivityRedenvelopeService.selectById(String.valueOf(map.get("id")));
+            id.setLaveMoney(v);
+            id.setLavePrice(new BigDecimal(id.getLavePrice() - money).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            userActivityRedenvelopeService.updateById(id);
+
+            query.setState(1);
+            query.setRedPacketActivityId(id.getId());
+            userRedPacketRecordService.updateById(query);
+        }
+        return ResultUtil.success();
+    }
+
+
+    /**
+     * 获取订单数据
+     * @param uid
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public List<OrderTaxi> queryOrder(Integer uid, Integer... state) throws Exception {
+        List<OrderTaxi> list = orderTaxiMapper.queryByState(uid, state);
+        return list;
+    }
+
+
+    /**
+     * 订单支付完成后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    @Override
+    public void payOrderTaxiCallback(Integer id, String order_id, Integer type) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderTaxi.getUserId(), 1, Integer.valueOf(id), 2, type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId());
+            orderTaxi.setState(8);
+            orderTaxi.setPayType(type);
+            orderTaxi.setPayMoney(query.getAmount());
+            this.updateById(orderTaxi);
+
+            UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
+            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
+            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
+            userInfoService.updateById(userInfo);
+
+            //处理优惠券和红包
+            if(null != orderTaxi.getCouponId()){
+                UserCouponRecord userCouponRecord = userCouponRecordService.selectById(orderTaxi.getCouponId());
+                userCouponRecord.setState(2);
+                userCouponRecord.setEndTime(new Date());
+                userCouponRecordService.updateById(userCouponRecord);
+            }
+            if(null != orderTaxi.getRedPacketId()){
+                UserRedPacketRecord userRedPacketRecord = userRedPacketRecordService.selectById(orderTaxi.getRedPacketId());
+                userRedPacketRecord.setState(2);
+                userRedPacketRecord.setEndTime(new Date());
+                userRedPacketRecordService.updateById(userRedPacketRecord);
+            }
+
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            //添加已收入明细
+            Company company = companyService.selectById(orderTaxi.getCompanyId());
+            Double taxi = company.getTaxiMoney();
+            BigDecimal d = null;//企业收入
+            BigDecimal c = null;//司机收入
+            if(company.getIsTaxiFixedOrProportional() == 2){//固定
+                d = new BigDecimal(taxi);
+                c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+            }
+            if(company.getIsTaxiFixedOrProportional() == 1){//比例
+                d = new BigDecimal(orderTaxi.getTravelMoney()).multiply(new BigDecimal(taxi).divide(new BigDecimal(100))).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+                c = new BigDecimal(orderTaxi.getOrderMoney()).subtract(d).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+            }
+            incomeService.saveData(1, orderTaxi.getCompanyId(), 2, orderTaxi.getId(), 2, d.doubleValue());
+            incomeService.saveData(2, orderTaxi.getDriverId(), 2, orderTaxi.getId(), 2, c.doubleValue());
+            Driver driver = driverService.selectById(orderTaxi.getDriverId());
+            driver.setBusinessMoney(new BigDecimal(null != driver.getBusinessMoney() ? driver.getBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setLaveBusinessMoney(new BigDecimal(null != driver.getLaveBusinessMoney() ? driver.getLaveBusinessMoney() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driver.setBalance(new BigDecimal(null != driver.getBalance() ? driver.getBalance() : 0).add(c).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+            driverService.updateById(driver);
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+            new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    pushUtil.pushOrderState(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+                    pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+                }
+            }).start();
+
+            //用户付款后,删除限制司机6分钟不能接单的标识
+            String vehicle = redisUtil.getValue("VEHICLE");
+            if(ToolUtil.isNotEmpty(vehicle)){
+                JSONArray jsonArray = JSON.parseArray(vehicle);
+                for(int i = 0; i < jsonArray.size(); i++){
+                    if(jsonArray.getInteger(i).compareTo(orderTaxi.getDriverId()) == 0){
+                        jsonArray.remove(i);
+                        break;
+                    }
+                }
+                redisUtil.setStrValue("VEHICLE", jsonArray.toJSONString());
+            }
+
+
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功完成出行订单支付,谢谢使用!", orderTaxi.getUserId(), 1);
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+
+    /**
+     * 取消订单支付后的处理
+     * @param id            订单=id
+     * @param order_id      工行支付单号
+     * @param type          1=微信,2=支付宝
+     * @throws Exception
+     */
+    @Override
+    public void payCancelOrderTaxi(Integer id, String order_id, Integer type) throws Exception {
+        OrderTaxi orderTaxi = this.selectById(id);
+        PaymentRecord query = paymentRecordService.query(1, orderTaxi.getUserId(), 1, Integer.valueOf(id), 2, type, 1);
+        if(null != query){
+            //添加交易明细
+            transactionDetailsService.saveData(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId());
+            orderTaxi.setState(10);
+            //解除小号绑定
+            if(orderTaxi.getBindId() != null){
+                chinaMobileUtil.midAxbUnBindSend(orderTaxi.getBindId());
+            }
+            orderTaxi.setBindId("");
+            orderTaxi.setTelX("");
+            this.updateById(orderTaxi);
+
+            query.setState(2);
+            query.setCode(order_id);
+            paymentRecordService.updateById(query);
+
+            OrderCancel query1 = orderCancelService.query(query.getOrderId(), query.getOrderType(), query.getAmount(), query.getPayType(), 1);
+            if (null != query1){
+                query1.setState(2);
+                orderCancelService.updateById(query1);
+            }
+
+            //添加已收入明细
+            incomeService.saveData(1, orderTaxi.getCompanyId(), 3, orderTaxi.getId(), 2, query.getAmount());
+
+            this.deleteTask(orderTaxi.getId());//删除定时任务
+
+            // TODO: 2020/5/24 这里需要给司机和用户推送订单状态
+//            new Thread(new Runnable() {
+//                @Override
+//                public void run() {
+//                    pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, orderTaxi.getState(), 0);
+//                }
+//            }).start();
+
+            //添加消息
+            systemNoticeService.addSystemNotice(1, "您已使用" + (type == 1 ? "微信" : "支付宝") + "成功支付取消订单费用,谢谢使用!", orderTaxi.getUserId(), 1);
+        }else{
+            System.err.println("预支付数据异常(orderId = "  + id + ")");
+        }
+    }
+
+
+    /**
+     * 推送订单给司机抢单
+     * @param orderTaxi
+     * @throws Exception
+     */
+    public void pushOrder(OrderTaxi orderTaxi) throws Exception{
+        new Thread(new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
+                    String vehicle = redisUtil.getValue("VEHICLE");
+                    List<Integer> integers = new ArrayList<>();
+                    if(ToolUtil.isNotEmpty(vehicle)){
+                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+                    }
+                    Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
+                    List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
+                    for(int i = 1; i <= querys.size(); i++){
+                        PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);
+                        //获取空闲司机
+                        List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
+                        if(list.size() > 0){
+                            double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数
+                            int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取)
+                            list = list.subList(0, lastIndex);//获取空闲司机中占比数据
+                            for(Driver driver : list){//开始进行推送
+                                //查询是否在限制推单范围内
+                                boolean bo = false;
+                                for(Integer integer : integers){
+                                    if(integer.compareTo(driver.getId()) == 0){
+                                        bo = true;
+                                        break;
+                                    }
+                                }
+                                if(bo){
+                                    continue;
+                                }
+                                pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
+                            }
+                        }
+                        Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间
+                        Integer state = orderTaxiMapper.selectById(orderTaxi.getId()).getState();
+                        if(state > 1){
+                            break;
+                        }
+                        if(i == querys.size() && state == 1){
+                            pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
+                            orderIds.remove(orderTaxi.getId());
+                        }
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }).start();
+    }
+
+
+
+    @Override
+    public synchronized String getOrderNum() throws Exception{
+        int size = this.selectCount(null);
+        return "TAXI" + String.valueOf(1000000 + size + 1).substring(1);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/PaymentRecordServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/PaymentRecordServiceImpl.java
new file mode 100644
index 0000000..4d6da69
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/PaymentRecordServiceImpl.java
@@ -0,0 +1,69 @@
+package com.stylefeng.guns.modular.taxi.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.taxi.dao.PaymentRecordMapper;
+import com.stylefeng.guns.modular.taxi.model.PaymentRecord;
+import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+
+@Service
+public class PaymentRecordServiceImpl extends ServiceImpl<PaymentRecordMapper, PaymentRecord> implements IPaymentRecordService {
+
+    @Resource
+    private PaymentRecordMapper paymentRecordMapper;
+
+
+
+
+    /**
+     * 添加数据
+     * @param orderId       订单id
+     * @param payType       支付方式(1=微信,2=支付宝)
+     * @param amount        支付金额
+     * @param code          第三方支付单号
+     * @param state         支付状态(1=待支付,2=已支付)
+     * @throws Exception
+     */
+    @Override
+    public Integer saveData(Integer category, Integer userId, Integer type, Integer orderId, Integer orderType, Integer payType,
+                         Double amount, String code, Integer state) throws Exception {
+        //先删除现有数据避免重复
+        PaymentRecord query = paymentRecordMapper.query(category, userId, type, orderId, orderType, payType, state);
+        if(null != query){
+            this.deleteById(query.getId());
+        }
+        PaymentRecord paymentRecord = new PaymentRecord();
+        paymentRecord.setCategory(category);
+        paymentRecord.setUserId(userId);
+        paymentRecord.setType(type);
+        paymentRecord.setOrderId(orderId);
+        paymentRecord.setOrderType(orderType);
+        paymentRecord.setPayType(payType);
+        paymentRecord.setAmount(amount);
+        paymentRecord.setCode(code);
+        paymentRecord.setState(state);
+        paymentRecord.setInsertTime(new Date());
+        this.insert(paymentRecord);
+        return paymentRecord.getId();
+    }
+
+
+    /**
+     * 获取数据
+     * @param orderId
+     * @param payType
+     * @param state
+     * @return
+     * @throws Exception
+     */
+    @Override
+    public PaymentRecord query(Integer category, Integer userId, Integer type, Integer orderId, Integer orderType,
+                                     Integer payType, Integer state) throws Exception {
+        return paymentRecordMapper.query(category, userId, type, orderId, orderType, payType, state);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java
new file mode 100644
index 0000000..c6c02c1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/TransactionDetailsServiceImpl.java
@@ -0,0 +1,48 @@
+package com.stylefeng.guns.modular.taxi.service.impl;
+
+import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.modular.taxi.dao.TransactionDetailsMapper;
+import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
+import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Isolation;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+
+
+@Service
+@Transactional(isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+public class TransactionDetailsServiceImpl extends ServiceImpl<TransactionDetailsMapper, TransactionDetails> implements ITransactionDetailsService {
+
+
+    /**
+     * 添加数据
+     * @param userId    对象id
+     * @param remark    备注
+     * @param money     金额
+     * @param state     状态(1=添加,2=减少)
+     * @param type      类型(1=金额,2=积分)
+     * @param userType  用户类型(1=用户,2=司机)
+     * @param orderType 订单类型(1=专车,2=出租车,3=城际,4=小件物流)
+     * @param orderId
+     * @throws Exception
+     */
+    @Override
+    public void saveData(Integer userId, String remark, Double money, Integer state, Integer type, Integer userType,
+                         Integer orderType, Integer orderId) throws Exception {
+
+        TransactionDetails transactionDetails = new TransactionDetails();
+        transactionDetails.setInsertTime(new Date());
+        transactionDetails.setMoney(money);
+        transactionDetails.setOrderId(orderId);
+        transactionDetails.setOrderType(orderType);
+        transactionDetails.setRemark(remark);
+        transactionDetails.setState(state);
+        transactionDetails.setType(type);
+        transactionDetails.setUserId(userId);
+        transactionDetails.setUserType(userType);
+        this.insert(transactionDetails);
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java
new file mode 100644
index 0000000..727b9cf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/warpper/OrderTaxiWarpper.java
@@ -0,0 +1,226 @@
+package com.stylefeng.guns.modular.taxi.warpper;
+
+import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+
+@ApiModel("出租车订单")
+public class OrderTaxiWarpper {
+    @ApiModelProperty(dataType = "int", required = false, value = "扫码下单时传此参数")
+    private Integer driverId;
+    @ApiModelProperty(dataType = "int", required = true, value = "订单类型(1=普通订单,2=摆渡订单)")
+    private Integer type;
+    @ApiModelProperty(dataType = "double", required = true, value = "下单地点经度")
+    private Double placementLon;
+    @ApiModelProperty(dataType = "double", required = true, value = "下单地点纬度")
+    private Double placementLat;
+    @ApiModelProperty(dataType = "double", required = true, value = "起点经度")
+    private Double startLon;
+    @ApiModelProperty(dataType = "double", required = true, value = "起点纬度")
+    private Double startLat;
+    @ApiModelProperty(dataType = "double", required = true, value = "起点详情地址")
+    private String startAddress;
+    @ApiModelProperty(dataType = "double", required = false, value = "终点经度")
+    private Double endLon;
+    @ApiModelProperty(dataType = "double", required = false, value = "终点纬度")
+    private Double endLat;
+    @ApiModelProperty(dataType = "double", required = false, value = "终点详细地址")
+    private String endAddress;
+    @ApiModelProperty(dataType = "double", required = true, value = "小费金额,没有小费传0")
+    private Double tipMoney;
+    @ApiModelProperty(dataType = "int", required = true, value = "是否是代下单(0:否,1:是)")
+    private Integer substitute;
+    @ApiModelProperty(dataType = "String", required = false, value = "乘车人姓名,substitute=0,不传")
+    private String passengers;
+    @ApiModelProperty(dataType = "String", required = false, value = "乘车人电话,substitute=0,不传")
+    private String passengersPhone;
+    @ApiModelProperty(dataType = "int", required = true, value = "订单类型(1=普通,2=预约)")
+    private Integer orderType;
+    @ApiModelProperty(dataType = "int", required = true, value = "订单来源(1:APP下单,2:扫码下单,3:小程序下单,4:司机下单,5:调度下单)")
+    private Integer orderSource;
+    @ApiModelProperty(dataType = "string", required = true, value = "出行时间(2020-06-06 08:47)")
+    private Date travelTime;
+
+    public Integer getDriverId() {
+        return driverId;
+    }
+
+    public void setDriverId(Integer driverId) {
+        this.driverId = driverId;
+    }
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public Double getPlacementLon() {
+        return placementLon;
+    }
+
+    public void setPlacementLon(Double placementLon) {
+        this.placementLon = placementLon;
+    }
+
+    public Double getPlacementLat() {
+        return placementLat;
+    }
+
+    public void setPlacementLat(Double placementLat) {
+        this.placementLat = placementLat;
+    }
+
+    public Double getStartLon() {
+        return startLon;
+    }
+
+    public void setStartLon(Double startLon) {
+        this.startLon = startLon;
+    }
+
+    public Double getStartLat() {
+        return startLat;
+    }
+
+    public void setStartLat(Double startLat) {
+        this.startLat = startLat;
+    }
+
+    public Double getEndLon() {
+        return endLon;
+    }
+
+    public void setEndLon(Double endLon) {
+        this.endLon = endLon;
+    }
+
+    public Double getEndLat() {
+        return endLat;
+    }
+
+    public void setEndLat(Double endLat) {
+        this.endLat = endLat;
+    }
+
+    public Double getTipMoney() {
+        return tipMoney;
+    }
+
+    public void setTipMoney(Double tipMoney) {
+        this.tipMoney = tipMoney;
+    }
+
+    public Integer getSubstitute() {
+        return substitute;
+    }
+
+    public void setSubstitute(Integer substitute) {
+        this.substitute = substitute;
+    }
+
+    public String getPassengers() {
+        return passengers;
+    }
+
+    public void setPassengers(String passengers) {
+        this.passengers = passengers;
+    }
+
+    public String getPassengersPhone() {
+        return passengersPhone;
+    }
+
+    public void setPassengersPhone(String passengersPhone) {
+        this.passengersPhone = passengersPhone;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public Integer getOrderSource() {
+        return orderSource;
+    }
+
+    public void setOrderSource(Integer orderSource) {
+        this.orderSource = orderSource;
+    }
+
+    public Date getTravelTime() {
+        return travelTime;
+    }
+
+    public void setTravelTime(Date travelTime) {
+        this.travelTime = travelTime;
+    }
+
+    public String getStartAddress() {
+        return startAddress;
+    }
+
+    public void setStartAddress(String startAddress) {
+        this.startAddress = startAddress;
+    }
+
+    public String getEndAddress() {
+        return endAddress;
+    }
+
+    public void setEndAddress(String endAddress) {
+        this.endAddress = endAddress;
+    }
+
+    @Override
+    public String toString() {
+        return "OrderTaxiWarpper{" +
+                "driverId=" + driverId +
+                ", placementLon=" + placementLon +
+                ", placementLat=" + placementLat +
+                ", startLon=" + startLon +
+                ", startLat=" + startLat +
+                ", startAddress='" + startAddress + '\'' +
+                ", endLon=" + endLon +
+                ", endLat=" + endLat +
+                ", endAddress='" + endAddress + '\'' +
+                ", tipMoney=" + tipMoney +
+                ", substitute=" + substitute +
+                ", passengers='" + passengers + '\'' +
+                ", passengersPhone='" + passengersPhone + '\'' +
+                ", orderType=" + orderType +
+                ", orderSource=" + orderSource +
+                ", travelTime='" + travelTime + '\'' +
+                '}';
+    }
+
+    public static OrderTaxi getOrderTaxi(OrderTaxiWarpper orderTaxiWarpper){
+        OrderTaxi orderTaxi = new OrderTaxi();
+        orderTaxi.setDriverId(orderTaxiWarpper.getDriverId());
+        orderTaxi.setType(orderTaxiWarpper.getType());
+        orderTaxi.setPlacementLon(orderTaxiWarpper.getPlacementLon());
+        orderTaxi.setPlacementLat(orderTaxiWarpper.getPlacementLat());
+        orderTaxi.setStartLon(orderTaxiWarpper.getStartLon());
+        orderTaxi.setStartLat(orderTaxiWarpper.getStartLat());
+        orderTaxi.setEndLon(orderTaxiWarpper.getEndLon());
+        orderTaxi.setEndLat(orderTaxiWarpper.getEndLat());
+        orderTaxi.setTipMoney(orderTaxiWarpper.getTipMoney());
+        orderTaxi.setSubstitute(orderTaxiWarpper.getSubstitute());
+        orderTaxi.setPassengers(orderTaxiWarpper.getPassengers());
+        orderTaxi.setPassengersPhone(orderTaxiWarpper.getPassengersPhone());
+        orderTaxi.setOrderType(orderTaxiWarpper.getOrderType());
+        orderTaxi.setOrderSource(orderTaxiWarpper.getOrderSource());
+        orderTaxi.setTravelTime(orderTaxiWarpper.getTravelTime());
+        orderTaxi.setStartAddress(orderTaxiWarpper.getStartAddress());
+        orderTaxi.setEndAddress(orderTaxiWarpper.getEndAddress());
+        return orderTaxi;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/resources/META-INF/spring-devtools.properties b/UserOKTravel/guns-admin/src/main/resources/META-INF/spring-devtools.properties
new file mode 100644
index 0000000..3e72835
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/resources/META-INF/spring-devtools.properties
@@ -0,0 +1 @@
+restart.include.beetl=/beetl-2.8.5.jar
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/resources/application.yml b/UserOKTravel/guns-admin/src/main/resources/application.yml
new file mode 100644
index 0000000..829cd84
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/resources/application.yml
@@ -0,0 +1,147 @@
+server:
+  port: 8006
+
+guns:
+  swagger-open: true              #是否开启swagger (true/false)
+  kaptcha-open: false             #是否开启登录时验证码 (true/false)
+#  file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+  spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
+  session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
+  session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+
+spring:
+  application:
+    name: user-server
+  profiles:
+#    active: dev
+    active: produce
+  mvc:
+    static-path-pattern: /static/**
+    view:
+      prefix: /WEB-INF/view
+  devtools:
+    restart:
+      enabled: false
+      additional-paths: src/main/java
+      exclude: static/**,WEB-INF/view/**
+  servlet:
+    multipart:
+      max-request-size: 100MB
+      max-file-size: 100MB
+
+mybatis-plus:
+  typeAliasesPackage: com.stylefeng.guns.modular
+  configuration:
+    log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
+
+
+logging:
+  level.root: error
+
+
+eureka:
+  client:
+    service-url: #注册中心地址
+      defaultZone: http://sinata:sinata@127.0.0.1:8000/eureka #启用身份验证的方式连接
+    register-with-eureka: true #在注册中心进行注册
+    fetch-registry: true #从Eureka中获取注册信息。
+
+---
+
+
+#配置Swagger接口扫描范围
+swagger:
+  base-package: com.stylefeng.guns.modular
+
+
+mysql_ssl:
+  useSSL: true
+  requireSSL: true
+  verifyServerCertificate: true
+  clientCertificateKeyStoreUrl: file:/usr/local/server/cer/ApsaraDB-CA-Chain.jks
+  clientCertificateKeyStorePassword: apsaradb
+  clientCertificateKeyStoreType: JKS
+  trustCertificateKeyStoreUrl: file:/usr/local/server/cer/ApsaraDB-CA-Chain.jks
+  trustCertificateKeyStorePassword: apsaradb
+  trustCertificateKeyStoreType: JKS
+
+#spring:
+#  datasource:
+#    url: jdbc:mysql://rm-wz9rpe0t74ys3b1h8go.mysql.rds.aliyuncs.com:3306/oktravel?useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=${mysql_ssl.useSSL}&requireSSL=${mysql_ssl.requireSSL}&verifyServerCertificate=${mysql_ssl.verifyServerCertificate}&clientCertificateKeyStoreUrl=${mysql_ssl.clientCertificateKeyStoreUrl}&clientCertificateKeyStoreType=${mysql_ssl.clientCertificateKeyStoreType}&clientCertificateKeyStorePassword=${mysql_ssl.clientCertificateKeyStorePassword}&trustCertificateKeyStoreUrl=${mysql_ssl.trustCertificateKeyStoreUrl}&trustCertificateKeyStoreType=${mysql_ssl.trustCertificateKeyStoreType}&trustCertificateKeyStorePassword=${mysql_ssl.trustCertificateKeyStorePassword}&serverTimezone=Asia/Shanghai
+#    username: root
+#    password: Root2020!
+#    db-name: guns #用来搜集数据库的所有表
+#    filters: wall,mergeStat
+
+spring:
+  datasource:
+    url: jdbc:mysql://127.0.0.1:3306/oktravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: Root2020!
+    db-name: guns #用来搜集数据库的所有表
+    filters: wall,mergeStat
+
+#spring:
+#  datasource:
+#    url: jdbc:mysql://127.0.0.1:3306/oktravel-test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+#    username: root
+#    password: 123456
+#    db-name: guns #用来搜集数据库的所有表
+#    filters: wall,mergeStat
+
+#多数据源情况的配置
+guns:
+  muti-datasource:
+    open: false
+    url: jdbc:mysql://127.0.0.1:3306/guns_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+    username: root
+    password: root
+    dataSourceNames:
+      - dataSourceGuns
+      - dataSourceBiz
+
+---
+
+
+
+wx:
+  grantType: authorization_code #填authorization_code
+  appid: wx0071ebcb539570f8 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+  appSecret: d88141e2ca669828c9bc2ab63ba1b7d8 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+  appletsAppid: wx7608ef3dae49b691 #小程序APPid
+  appletsAppSecret: 8ea5529ad9bc9703557ebfd6a95299f6 #
+  mchId: 1415940702 #微信支付分配的商户号
+  key: OKCHUXING20221226gxyskjYXGSwengk #key为商户平台设置的密钥key:
+  certPath: /usr/local/server/cer/weixin/apiclient_cert.p12
+#  certPath: C:/cert/1415940702_20221226_cert/apiclient_cert.p12
+
+---
+
+alipay:
+  appid: 2021001165630930  #应用程序唯一标识
+  appPrivateKey: MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCiXQjIX4nt/RklD4lnzEPHZ/rem3t1+Ukx7BdR3dUGdgLxhjb3QxyHTGPlx8UggovLd/exmhd+myBbuxqh1EkOXXpXfr35vAsAaa30ZLOTCK/gmalXXka85AaqgJVDWMSlh2bKTlCUbK6vVNXl664pEUwvRoCTgUigqJPxKeLIcQ4i5edLzT+GbHa522o1FCCfrmtr18q2jLJDIwWgm2adkzo0ym69q3WqbFXwQb4AKzf/ne+hkdKP+rGdK2ntoN+mKI8wO7PrtDXfWpnwohIDzFS0+KHiVeikxA9FvWlR6T8PmnScqZ5JaEINFTxDjij5lt0O/MKDW0N7+A8+bq6zAgMBAAECggEBAJ3504/SlYvAFXUf1tvtvY0JuOhbdBbnhLZUNqRrKNhufpKtulF/NQTX6OMsKrtlCcvhYFmnynBfU26tcE5BFQwrG9yB7ypMMpAmQyFl0eugKjBokoH1svIbE/lVvuWWO0+rnPH+nRytWpIyAyUA2aYPtIbTHEtpIVdgbwHZdVT8ThcSb4FJj7bypuUtIkPv3HDShZqLL6bPT3rWoVL+m8Q43aQv+3oOT2/GRSZ5Xcy4ceUjN8VY5ry4MGNkPuzPJqukTGvLBvwko6bm26QMQXPvHWwrMriMFyrmk+FsrjXo+zrmyhArX62i46E6a4D03pKTpurwPVJpJw2xGY36DFECgYEA1+e/C7X3OamWh67/LqvECv3QZsl/zRSYGHwfeRWutw7aHWljGp2O6FDhNqDOtnuRIn3+jrphUTykJBUsEHvVAgPktoF3Ng5T+PAtN4sksjKBPduobhDkuSmRkrcTPjNPIfmxuPCArYE6Z1UWO8eE5f8iNE0OyJZ+8THNtlaG2OcCgYEAwIPhLTqaKPcGpgQfoA016EOAnGJ9uEyVXxDuguzNfRkCmxFpwTx42gWS18QKo3rYYZ5IbMrTu9AaQYbrQjgpTCWQsfTsGOxJt2yJn5nA1LdZIptS/CrtElKaD+dtUL4j+yuIN2KOm+Ae0X4WkrnHysoDgOW+cQGK13giBA4qxlUCgYEAmJLbrkHsMKKIjt/60xdtFbthz5FrsBhylzL35tCMxC5JsukrsL5RJBkr3jfrfId7+9z/zAsoBImPETSpDAkGcUMhGFwLS3b6nnvT6GF7EDaioH0e3JExoSwgBIc9oQIPVNooXqIOvQ4KoMU/TgVkBEi0+jLOVLANixL/5W/mIVcCgYB8IIw/rVlYsG4I/P+nIt1vNJboPljxS+/DrBcdM7IKxuV3NnMJtQP3D0Du/egeIEcEKhpoix6aKkPDnEp0F+IIxu/Uziasqy2cps7VqT076jv+pEeNb+ALwFa1inJhbTel6xuZGmL4/jjgunuzfzXi+v3nTjrMgkITS9Ii6z+JQQKBgQC9dAxSNNOImuWG3svQffyGS9xImIH/zwOmXqBgD4cQ8H19DVBE8RDL6qVAry1mA02USSVLNUIofJKZpunEi/zk7VMTOB4U0ggqQcJHoORjuXU0uYzwpeg5hV8PddN8p/HDIiCoFTAjBNYXGUQcLXMuXWtNjV78LPngGmAN7/ubgw== #开发者应用私钥
+  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAol0IyF+J7f0ZJQ+JZ8xDx2f63pt7dflJMewXUd3VBnYC8YY290Mch0xj5cfFIIKLy3f3sZoXfpsgW7saodRJDl16V369+bwLAGmt9GSzkwiv4JmpV15GvOQGqoCVQ1jEpYdmyk5QlGyur1TV5euuKRFML0aAk4FIoKiT8SniyHEOIuXnS80/hmx2udtqNRQgn65ra9fKtoyyQyMFoJtmnZM6NMpuvat1qmxV8EG+ACs3/53voZHSj/qxnStp7aDfpiiPMDuz67Q131qZ8KISA8xUtPih4lXopMQPRb1pUek/D5p0nKmeSWhCDRU8Q44o+ZbdDvzCg1tDe/gPPm6uswIDAQAB #应用公钥
+  alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjD0KOXx7r+2up36WFe+W7JwsP56FK7lfoat6cn0JGgtNkQPhyRz+9fu9jvf36TZzBCiNqjomCGBr2Dyi355p1O+e+ct515bqr+NktG+K0prd0kAM4vODZrZM6bt3IdajhCCf3xZZe04Xe0kQ9qst8McjWusRoy+L3DEpTpr0wPfGs9rZpaHE/AVT8WQ39EHBWMNjMIwhU1sxna5MHwUlJ/zRgx9vF9v+CQymDHBVPC09UkEMYm4dfV2sT85eVtsCj7mfeWPhFiI5AAkDqpRNtIoucrOZYbjF+ZkdYzBVInU9LapfsXhTYyRYLqasjgqdnRIPej1tECIy0VBESVRWYwIDAQAB #支付宝公钥
+
+---
+
+juhe: #聚合数据
+  appKey: 0d3fd83eddaa33e5563f548257648577 #
+
+
+---
+
+filePath: /usr/local/server/orderPostionFile/ #存储订单轨迹文件路径
+#filePath: C:/orderPostionFile/  #存储订单轨迹文件路径
+
+#支付回调地址
+#正式环境
+callbackPath: https://okyueche.com:443/user
+#测试环境
+#callbackPath: http://39.108.148.228:80/user
+
+
+---
+
+#交通部推送数据功能开关
+pushMinistryOfTransport: true
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/resources/ehcache.xml b/UserOKTravel/guns-admin/src/main/resources/ehcache.xml
new file mode 100644
index 0000000..1e47379
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/resources/ehcache.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:noNamespaceSchemaLocation="ehcache.xsd"
+         updateCheck="false" monitoring="autodetect"
+         dynamicConfig="true" >
+         
+    <diskStore path="java.io.tmpdir/ehcache"/>
+
+    <defaultCache
+            maxElementsInMemory="50000"
+            eternal="false"
+            timeToIdleSeconds="3600"
+            timeToLiveSeconds="3600"
+            overflowToDisk="true"
+            diskPersistent="false"
+            diskExpiryThreadIntervalSeconds="120"
+    />
+
+    <!-- 全局变量:永不过期-->
+    <cache name="CONSTANT"
+    	   maxElementsInMemory="50000"
+           eternal="true"
+    	   clearOnFlush="false"
+           overflowToDisk="true"
+           diskSpoolBufferSizeMB="1024"
+           maxElementsOnDisk="100000"
+           diskPersistent="false"
+           diskExpiryThreadIntervalSeconds="120"
+           memoryStoreEvictionPolicy="LFU"
+           transactionalMode="off">
+    </cache>
+
+</ehcache>
+
+    <!--
+	    maxElementsInMemory="10000" 	//Cache中最多允许保存的数据对象的数量
+		external="false" 				//缓存中对象是否为永久的,如果是,超时设置将被忽略,对象从不过期 	
+		timeToLiveSeconds="3600"  		//缓存的存活时间,从开始创建的时间算起
+		timeToIdleSeconds="3600"  		//多长时间不访问该缓存,那么ehcache 就会清除该缓存  
+		
+		这两个参数很容易误解,看文档根本没用,我仔细分析了ehcache的代码。结论如下:
+		1、timeToLiveSeconds的定义是:以创建时间为基准开始计算的超时时长;
+		2、timeToIdleSeconds的定义是:在创建时间和最近访问时间中取出离现在最近的时间作为基准计算的超时时长;
+		3、如果仅设置了timeToLiveSeconds,则该对象的超时时间=创建时间+timeToLiveSeconds,假设为A;
+		4、如果没设置timeToLiveSeconds,则该对象的超时时间=min(创建时间,最近访问时间)+timeToIdleSeconds,假设为B;
+		5、如果两者都设置了,则取出A、B最少的值,即min(A,B),表示只要有一个超时成立即算超时。
+		
+		overflowToDisk="true"    		//内存不足时,是否启用磁盘缓存  	
+		diskSpoolBufferSizeMB	//设置DiskStore(磁盘缓存)的缓存区大小。默认是30MB。每个Cache都应该有自己的一个缓冲区
+		maxElementsOnDisk		//硬盘最大缓存个数
+		diskPersistent			//是否缓存虚拟机重启期数据The default value is false	
+		diskExpiryThreadIntervalSeconds	//磁盘失效线程运行时间间隔,默认是120秒。
+		memoryStoreEvictionPolicy="LRU" //当达到maxElementsInMemory限制时,Ehcache将会根据指定的策略去清理内存。默认策略是LRU(最近最少使用)。你可以设置为FIFO(先进先出)或是LFU(较少使用)。
+        clearOnFlush	//内存数量最大时是否清除
+        maxEntriesLocalHeap="0"  //堆内存中最大缓存对象数,0没有限制
+        maxEntriesLocalDisk="1000" //硬盘最大缓存个数。
+    -->
diff --git a/UserOKTravel/guns-admin/src/main/resources/logback-spring.xml b/UserOKTravel/guns-admin/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..ddd0dcf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/resources/logback-spring.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,比如: 如果设置为WARN,则低于WARN的信息都不会输出 -->
+<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
+<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
+<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
+<configuration  scan="true" scanPeriod="10 seconds">
+    <contextName>logback</contextName>
+
+    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
+    <property name="log.path" value="/usr/local/server/logs/user"/>
+
+    <!--0. 日志格式和颜色渲染 -->
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+
+    <!--1. 输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>debug</level>
+        </filter>
+        <encoder>
+            <Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
+            <!-- 设置字符集 -->
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--2. 输出到文档-->
+    <!-- 2.1 level为 DEBUG 日志,时间滚动输出  -->
+    <appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/debug.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 日志归档 -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录debug级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>debug</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.2 level为 INFO 日志,时间滚动输出  -->
+    <appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/info.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!-- 每天日志归档路径以及格式 -->
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录info级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>info</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.3 level为 WARN 日志,时间滚动输出  -->
+    <appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/warn.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录warn级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>warn</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.4 level为 ERROR 日志,时间滚动输出  -->
+    <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/error.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档只记录ERROR级别的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+    </appender>
+
+    <!-- 2.5 所有 除了DEBUG级别的其它高于DEBUG的 日志,记录到一个文件  -->
+    <appender name="ALL_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <!-- 正在记录的日志文档的路径及文档名 -->
+        <file>${log.path}/all.log</file>
+        <!--日志文档输出格式-->
+        <encoder>
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+            <charset>UTF-8</charset> <!-- 此处设置字符集 -->
+        </encoder>
+        <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}/%d{yyyy-MM-dd}/all-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>100MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+            <!--日志文档保留天数-->
+            <maxHistory>15</maxHistory>
+        </rollingPolicy>
+        <!-- 此日志文档记录除了DEBUG级别的其它高于DEBUG的 -->
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>DENY</onMatch>
+            <onMismatch>ACCEPT</onMismatch>
+        </filter>
+    </appender>
+
+    <!--
+        <logger>用来设置某一个包或者具体的某一个类的日志打印级别、
+        以及指定<appender>。<logger>仅有一个name属性,
+        一个可选的level和一个可选的addtivity属性。
+        name:用来指定受此logger约束的某一个包或者具体的某一个类。
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+              还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。
+              如果未设置此属性,那么当前logger将会继承上级的级别。
+        addtivity:是否向上级logger传递打印信息。默认是true。
+        <logger name="org.springframework.web" level="info"/>
+        <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
+    -->
+
+    <!--
+        root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性
+        level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,
+        不能设置为INHERITED或者同义词NULL。默认是DEBUG
+        可以包含零个或多个元素,标识这个appender将会添加到这个logger。
+    -->
+
+    <!-- 4  最终的策略:
+                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
+    <springProfile name="dev">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="WARN_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="ALL_FILE" />
+        </root>
+    </springProfile>
+
+    <springProfile name="fat">
+        <root level="info">
+            <appender-ref ref="CONSOLE" />
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="WARN_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="ALL_FILE" />
+        </root>
+    </springProfile>
+
+    <springProfile name="produce">
+        <root level="warn">
+            <!-- 生产环境最好不配置console写文件 -->
+            <appender-ref ref="DEBUG_FILE" />
+            <appender-ref ref="INFO_FILE" />
+            <appender-ref ref="WARN_FILE" />
+            <appender-ref ref="ERROR_FILE" />
+            <appender-ref ref="ALL_FILE" />
+        </root>
+    </springProfile>
+
+</configuration>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/resources/redis.properties b/UserOKTravel/guns-admin/src/main/resources/redis.properties
new file mode 100644
index 0000000..bc6b0e9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/resources/redis.properties
@@ -0,0 +1,22 @@
+#redis���ÿ�ʼ
+# Redis���ݿ�������Ĭ��Ϊ0��
+spring.redis.database=0
+# Redis��������ַ
+spring.redis.host=127.0.0.1
+# Redis���������Ӷ˿�
+spring.redis.port=6379
+# Redis�������������루Ĭ��Ϊ�գ�
+spring.redis.password=123456
+#spring.redis.password=
+# ���ӳ������������ʹ�ø�ֵ��ʾû�����ƣ�
+spring.redis.jedis.pool.max-active=1024
+# ���ӳ���������ȴ�ʱ�䣨ʹ�ø�ֵ��ʾû�����ƣ�
+spring.redis.jedis.pool.max-wait=10000
+# ���ӳ��е�����������
+spring.redis.jedis.pool.max-idle=200
+# ���ӳ��е���С��������
+spring.redis.jedis.pool.min-idle=0
+# ���ӳ�ʱʱ�䣨���룩
+spring.redis.timeout=10000
+#redis���ý���
+spring.redis.block-when-exhausted=true
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/404.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/404.html
new file mode 100644
index 0000000..98446b5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/404.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+
+<head>
+
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+
+    <title>Guns - 404 页面</title>
+    <link rel="shortcut icon" href="${ctxPath}/static/favicon.ico"> <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="${ctxPath}/static/css/font-awesome.css?v=4.4.0" rel="stylesheet">
+    <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
+
+</head>
+
+<body class="gray-bg">
+
+
+    <div class="middle-box text-center">
+        <h1>404</h1>
+        <h3 class="font-bold">页面未找到!</h3>
+
+        <div class="error-desc">
+            抱歉,页面好像去火星了~
+            <form class="form-inline m-t" role="form">
+                <div class="form-group">
+                    <input type="email" class="form-control" placeholder="请输入您需要查找的内容 …">
+                </div>
+                <button type="submit" class="btn btn-primary">搜索</button>
+            </form>
+        </div>
+    </div>
+
+    <!-- 全局js -->
+    <script src="${ctxPath}/static/js/jquery.min.js?v=2.1.4"></script>
+    <script src="${ctxPath}/static/js/bootstrap.min.js?v=3.3.6"></script>
+
+</body>
+
+</html>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/blackboard.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/blackboard.html
new file mode 100644
index 0000000..605b205
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/blackboard.html
@@ -0,0 +1,14 @@
+@layout("/common/_container.html"){
+<div class="container-fluid" style="padding: 0 !important;">
+	<div class="row">
+		<div class="col-sm-12">
+			@for(notice in noticeList){
+				<div class="alert alert-success alert-dismissable">
+					<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
+					${notice.content}
+				</div>
+			@}
+		</div>
+	</div>
+</div>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/code/code.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/code/code.html
new file mode 100644
index 0000000..6cececb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/code/code.html
@@ -0,0 +1,101 @@
+@layout("/common/_container.html"){
+<div class="row" xmlns="">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>代码生成</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="form-horizontal" id="generate">
+                            <div class="row">
+                                <div class="col-sm-4">
+                                    <#input id="projectPath" name="项目路径" value="${params.projectPath}"/>
+                                </div>
+                                <div class="col-sm-4">
+                                    <#input id="projectPackage" name="项目的包" value="${params.projectPackage}"/>
+                                </div>
+                                <div class="col-sm-4">
+                                    <#input id="corePackage" name="核心包" value="${params.corePackage}"/>
+                                </div>
+                            </div>
+
+                            <div class="row">
+                                <div class="col-sm-3">
+                                    <#input id="author" name="作者" value="${params.author!}"/>
+                                </div>
+                                <div class="col-sm-3">
+                                    <#input id="bizName" name="业务名称" />
+                                </div>
+                                <div class="col-sm-3">
+                                    <#input id="moduleName" name="模块名称" value="${params.moduleName}"/>
+                                </div>
+                                <div class="col-sm-3">
+                                    <#input id="parentMenuName" name="父级菜单名称" underline="false" value="${params.parentMenuName}"
+                                            hidden="pid" readonly="readonly"
+                                            clickFun="Code.showMenuSelectTree(); return false;"
+                                            style="background-color: #ffffff !important;"
+                                            selectFlag="true" selectId="pcodeTreeDiv" selectTreeId="pcodeTree" selectStyle=""/>
+                                </div>
+                            </div>
+
+                            <div class="row">
+                                <div class="col-sm-3">
+                                    <#input id="tableName" name="表名称" disabled="disabled"/>
+                                </div>
+                                <div class="col-sm-3">
+                                    <#input id="ignoreTabelPrefix" name="表前缀" value="${params.ignoreTabelPrefix}"/>
+                                </div>
+                                <div class="col-sm-3">
+                                    <#input id="className" name="类名" disabled="disabled"/>
+                                </div>
+                            </div>
+                            <div class="row">
+                                <div class="col-sm-6">
+                                    <button id="genBtn" type="button" class="btn btn-primary mr10"
+                                            onclick="Code.generate()">
+                                        <span style="padding: 5px 20px;">生成</span>
+                                    </button>
+                                </div>
+                            </div>
+                        </div>
+                        <div style="padding-top: 10px; overflow: hidden"
+                             class="container-fluid">
+                            <div class="col-md-12">
+                                <div class="row admin-form">
+                                    <div class="col-md-3 col-md-offset-3">
+                                        <h2>数据表</h2>
+                                        <div class="list-group" id="tableList"
+                                             data-bind="foreach: tables"
+                                             style="height: 500px; overflow-y: scroll">
+                                            @for(table in tables!){
+                                                <a href="javascript:void(0)" class="list-group-item" tableName="${table.tableName}" onclick="Code.selectTable('${table.tableName}')">${table.tableName}-${table.tableComment}</a>
+                                            @}
+                                        </div>
+                                    </div>
+                                    <div class="col-md-3">
+                                        <span><h2>模板</h2></span>
+                                        <div class="list-group" id="templateList"
+                                             style="height: 500px; overflow-y: scroll">
+                                            @for(template in templates!){
+                                                <a href="javascript:void(0)" class="list-group-item" key="${template.key}" onclick="Code.selectTemplate('${template.key}')">${template.desc}</a>
+                                            @}
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                        <ul class="nav nav-list">
+                            <li class="divider"></li>
+                        </ul>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/js/common/select-list-object.js"></script>
+<script src="${ctxPath}/static/modular/code/gen.js"></script>
+@}
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html
new file mode 100644
index 0000000..02663d1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_container.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="renderer" content="webkit"/><!-- 让360浏览器默认选择webkit内核 -->
+
+    <!-- 全局css -->
+    <link rel="shortcut icon" href="${ctxPath}/static/favicon.ico">
+    <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="${ctxPath}/static/css/font-awesome.css?v=4.4.0" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/chosen/chosen.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/validate/bootstrapValidator.min.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
+    <link href="${ctxPath}/static/css/_fstyle.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/iCheck/custom.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/webuploader/webuploader.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/ztree/zTreeStyle.css" rel="stylesheet">
+    <link href="${ctxPath}/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css" rel="stylesheet"/>
+    <!-- <link href="${ctxPath}/static/css/plugins/ztree/demo.css" rel="stylesheet"> -->
+
+    <!-- 全局js -->
+    <script src="${ctxPath}/static/js/jquery.min.js?v=2.1.4"></script>
+    <script src="${ctxPath}/static/js/bootstrap.min.js?v=3.3.6"></script>
+    <script src="${ctxPath}/static/js/plugins/ztree/jquery.ztree.all.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/validate/bootstrapValidator.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/validate/zh_CN.js"></script>
+    <script src="${ctxPath}/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js"></script>
+    <script src="${ctxPath}/static/js/plugins/layer/layer.js"></script>
+    <script src="${ctxPath}/static/js/plugins/chosen/chosen.jquery.js"></script>
+    <script src="${ctxPath}/static/js/plugins/iCheck/icheck.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/laydate/laydate.js"></script>
+    <script src="${ctxPath}/static/js/plugins/webuploader/webuploader.min.js"></script>
+    <script src="${ctxPath}/static/js/common/ajax-object.js"></script>
+    <script src="${ctxPath}/static/js/common/bootstrap-table-object.js"></script>
+    <script src="${ctxPath}/static/js/common/tree-table-object.js"></script>
+    <script src="${ctxPath}/static/js/common/web-upload-object.js"></script>
+    <script src="${ctxPath}/static/js/common/ztree-object.js"></script>
+    <script src="${ctxPath}/static/js/common/Feng.js"></script>
+
+    <style type="text/css">
+        table{  
+            width:100px;  
+            table-layout:fixed;/* 只有定义了表格的布局算法为fixed,下面td的定义才能起作用。 */  
+        }
+        td{  
+            width:100%;  
+            word-break:keep-all;/* 不换行 */  
+            white-space:nowrap;/* 不换行 */  
+            overflow:hidden;/* 内容超出宽度时隐藏超出部分的内容 */  
+            text-overflow:ellipsis;/* 当对象内文本溢出时显示省略标记(...) ;需与overflow:hidden;一起使用*/  
+        }
+    </style>
+
+    <script type="text/javascript">
+        Feng.addCtx("${ctxPath}");
+        Feng.sessionTimeoutRegistry();
+    </script>
+</head>
+
+<body class="gray-bg">
+<div class="wrapper wrapper-content">
+    ${layoutContent}
+</div>
+<script src="${ctxPath}/static/js/content.js?v=1.0.0"></script>
+</body>
+</html>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html
new file mode 100644
index 0000000..0dbebf7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_right.html
@@ -0,0 +1,53 @@
+<div id="page-wrapper" class="gray-bg dashbard-1">
+            <div class="row border-bottom">
+                <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
+            <div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a>
+                <form role="search" class="navbar-form-custom" method="post" action="search_results.html">
+                    <div class="form-group">
+                        <input type="text" placeholder="请输入您需要查找的内容 …" class="form-control" name="top-search" id="top-search">
+                    </div>
+                </form>
+            </div>
+            <ul class="nav navbar-top-links navbar-right">
+                <li class="dropdown hidden-xs">
+                    <a class="right-sidebar-toggle" aria-expanded="false">
+                        <i class="fa fa-tasks"></i> 主题
+                    </a>
+                </li>
+            </ul>
+        </nav>
+    </div>
+    <div class="row content-tabs">
+        <button class="roll-nav roll-left J_tabLeft"><i class="fa fa-backward"></i>
+        </button>
+        <nav class="page-tabs J_menuTabs">
+            <div class="page-tabs-content">
+                <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}/blackboard">首页</a>
+            </div>
+        </nav>
+        <button class="roll-nav roll-right J_tabRight"><i class="fa fa-forward"></i>
+        </button>
+        <div class="btn-group roll-nav roll-right">
+            <button class="dropdown J_tabClose" data-toggle="dropdown">关闭操作<span class="caret"></span>
+
+            </button>
+            <ul role="menu" class="dropdown-menu dropdown-menu-right">
+                <li class="J_tabShowActive"><a>定位当前选项卡</a>
+                </li>
+                <li class="divider"></li>
+                <li class="J_tabCloseAll"><a>关闭全部选项卡</a>
+                </li>
+                <li class="J_tabCloseOther"><a>关闭其他选项卡</a>
+                </li>
+            </ul>
+        </div>
+        <a href="logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
+    </div>
+    <div class="row J_mainContent" id="content-main">
+        <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}/blackboard" frameborder="0" data-id="${ctxPath}/blackboard" seamless></iframe>
+    </div>
+    <div class="footer">
+        <div class="pull-right">&copy; 2016-2017 <a href="http://git.oschina.net/naan1993/guns" target="_blank">guns</a>
+        </div>
+    </div>
+</div>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_tab.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_tab.html
new file mode 100644
index 0000000..e572b3d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_tab.html
@@ -0,0 +1,74 @@
+<nav class="navbar-default navbar-static-side" role="navigation">
+    <div class="nav-close"><i class="fa fa-times-circle"></i>
+    </div>
+    <div class="sidebar-collapse">
+        <ul class="nav" id="side-menu">
+            <li class="nav-header">
+                <div class="dropdown profile-element">
+                    <span><img alt="image" class="img-circle"
+                               @if(isEmpty(avatar)){
+                                    src="${ctxPath}/static/img/girl.gif"
+                               @}else{
+                                    src="${ctxPath}/kaptcha/${avatar}"
+                               @}
+                               width="64px" height="64px"/></span>
+                    <a data-toggle="dropdown" class="dropdown-toggle" href="#">
+                        <span class="clear">
+                       <span class="block m-t-xs"><strong class="font-bold">${shiro.getUser().name}</strong></span>
+                        <span class="text-muted text-xs block">${shiro.getUser().roleNames[0]}<b class="caret"></b></span>
+                        </span>
+                    </a>
+                    <ul class="dropdown-menu m-t-xs">
+                        <li><a class="J_menuItem" href="${ctxPath}/mgr/user_info">个人资料</a></li>
+                        <li><a class="J_menuItem" href="${ctxPath}/mgr/user_chpwd">修改密码</a></li>
+                        <li class="divider"></li>
+                        <li><a href="${ctxPath}/logout">安全退出</a>
+                        </li>
+                    </ul>
+                </div>
+                <div class="logo-element">GS
+                </div>
+            </li>
+            
+            @for(title in titles){
+                @if(tool.isEmpty(title.children)){
+                    <li>
+                        <a class="J_menuItem" href="${ctxPath}${title.url}" name="tabMenuItem">
+                            <i class="fa ${title.icon}"></i>
+                            <span class="nav-label">${title.name}</span>
+                        </a>
+                    </li>
+                @}else{
+                    <li>
+                        <a href="#">
+                            <i class="fa ${title.icon}"></i>
+                            <span class="nav-label">${title.name}</span>
+                            <span class="fa arrow"></span>
+                        </a>
+                        <ul class="nav nav-second-level">
+                            @for(subTitle in title.children){
+                                @if(tool.isEmpty(subTitle.children)){
+                                    <li>
+                                        <a class="J_menuItem" href="${ctxPath}${subTitle.url}" name="tabMenuItem">${subTitle.name}</a>
+                                    </li>
+                                @}else{
+                                    <li>
+                                        <a href="#">${subTitle.name} <span class="fa arrow"></span></a>
+                                        <ul class="nav nav-third-level">
+                                            @for(thirdTitle in subTitle.children){
+                                            <li>
+                                                <a class="J_menuItem" href="${ctxPath}${thirdTitle.url}" name="tabMenuItem">${thirdTitle.name}</a>
+                                            </li>
+                                            @}
+                                        </ul>
+                                    </li>
+                                @}
+                            @}
+                        </ul>
+                    </li>
+                @}
+            @}
+
+        </ul>
+    </div>
+</nav>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_theme.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_theme.html
new file mode 100644
index 0000000..4c093d8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/_theme.html
@@ -0,0 +1,84 @@
+<div id="right-sidebar">
+	<div class="sidebar-container">
+
+		<ul class="nav nav-tabs navs-3">
+			<li class="active"><a data-toggle="tab" href="#tab-1"> <i
+					class="fa fa-gear"></i> 主题
+			</a></li>
+		</ul>
+
+		<div class="tab-content">
+			<div id="tab-1" class="tab-pane active">
+				<div class="sidebar-title">
+					<h3>
+						<i class="fa fa-comments-o"></i> 主题设置
+					</h3>
+					<small><i class="fa fa-tim"></i>
+						你可以从这里选择和预览主题的布局和样式,这些设置会被保存在本地,下次打开的时候会直接应用这些设置。</small>
+				</div>
+				<div class="skin-setttings">
+					<div class="title">主题设置</div>
+					<div class="setings-item">
+						<span>收起左侧菜单</span>
+						<div class="switch">
+							<div class="onoffswitch">
+								<input type="checkbox" name="collapsemenu"
+									class="onoffswitch-checkbox" id="collapsemenu"> <label
+									class="onoffswitch-label" for="collapsemenu"> <span
+									class="onoffswitch-inner"></span> <span
+									class="onoffswitch-switch"></span>
+								</label>
+							</div>
+						</div>
+					</div>
+					<div class="setings-item">
+						<span>固定顶部</span>
+
+						<div class="switch">
+							<div class="onoffswitch">
+								<input type="checkbox" name="fixednavbar"
+									class="onoffswitch-checkbox" id="fixednavbar"> <label
+									class="onoffswitch-label" for="fixednavbar"> <span
+									class="onoffswitch-inner"></span> <span
+									class="onoffswitch-switch"></span>
+								</label>
+							</div>
+						</div>
+					</div>
+					<div class="setings-item">
+						<span> 固定宽度 </span>
+
+						<div class="switch">
+							<div class="onoffswitch">
+								<input type="checkbox" name="boxedlayout"
+									class="onoffswitch-checkbox" id="boxedlayout"> <label
+									class="onoffswitch-label" for="boxedlayout"> <span
+									class="onoffswitch-inner"></span> <span
+									class="onoffswitch-switch"></span>
+								</label>
+							</div>
+						</div>
+					</div>
+					<div class="title">皮肤选择</div>
+					<div class="setings-item default-skin nb">
+						<span class="skin-name "> <a href="#" class="s-skin-0">
+								默认皮肤 </a>
+						</span>
+					</div>
+					<div class="setings-item blue-skin nb">
+						<span class="skin-name "> <a href="#" class="s-skin-1">
+								蓝色主题 </a>
+						</span>
+					</div>
+					<div class="setings-item yellow-skin nb">
+						<span class="skin-name "> <a href="#" class="s-skin-3">
+								黄色/紫色主题 </a>
+						</span>
+					</div>
+				</div>
+			</div>
+
+		</div>
+
+	</div>
+</div>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/NameCon.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/NameCon.tag
new file mode 100644
index 0000000..37cbe1d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/NameCon.tag
@@ -0,0 +1,14 @@
+@/*
+    名称查询条件标签的参数说明:
+
+    name : 查询条件的名称
+    id : 查询内容的input框id
+@*/
+<div class="input-group">
+    <div class="input-group-btn">
+        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle"
+                type="button">${name}
+        </button>
+    </div>
+    <input type="text" class="form-control" id="${id}" placeholder="${placeholder!}" />
+</div>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/SelectCon.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/SelectCon.tag
new file mode 100644
index 0000000..a350fc9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/SelectCon.tag
@@ -0,0 +1,16 @@
+@/*
+    选择查询条件标签的参数说明:
+
+    name : 查询条件的名称
+    id : 查询内容的input框id
+@*/
+<div class="input-group">
+    <div class="input-group-btn">
+        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button">
+            ${name}
+        </button>
+    </div>
+    <select class="form-control" id="${id}">
+        ${tagBody!}
+    </select>
+</div>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/TimeCon.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/TimeCon.tag
new file mode 100644
index 0000000..a1fb8a3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/TimeCon.tag
@@ -0,0 +1,15 @@
+@/*
+    时间查询条件标签的参数说明:
+
+    name : 查询条件的名称
+    id : 查询内容的input框id
+    isTime : 日期是否带有小时和分钟(true/false)
+@*/
+<div class="input-group">
+    <div class="input-group-btn">
+        <button data-toggle="dropdown" class="btn btn-white dropdown-toggle"
+                type="button">${name}
+        </button>
+    </div>
+    <input type="text" class="form-control layer-date" id="${id}"/>
+</div>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/avatar.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/avatar.tag
new file mode 100644
index 0000000..ce6f2f6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/avatar.tag
@@ -0,0 +1,29 @@
+@/*
+    头像参数的说明:
+    name : 名称
+    id : 头像的id
+@*/
+<div class="form-group">
+    <label class="col-sm-3 control-label head-scu-label">${name}</label>
+    <div class="col-sm-4">
+        <div id="${id}PreId">
+            <div><img width="100px" height="100px"
+                @if(isEmpty(avatarImg)){
+                      src="${ctxPath}/static/img/girl.gif"></div>
+                @}else{
+                      src="${ctxPath}/kaptcha/${avatarImg}"></div>
+                @}
+        </div>
+    </div>
+    <div class="col-sm-2">
+        <div class="head-scu-btn upload-btn" id="${id}BtnId">
+            <i class="fa fa-upload"></i>&nbsp;上传
+        </div>
+    </div>
+    <input type="hidden" id="${id}" value="${avatarImg!}"/>
+</div>
+@if(isNotEmpty(underline) && underline == 'true'){
+    <div class="hr-line-dashed"></div>
+@}
+
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/button.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/button.tag
new file mode 100644
index 0000000..86bb011
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/button.tag
@@ -0,0 +1,26 @@
+@/*
+    按钮标签中各个参数的说明:
+
+    btnType : 按钮的类型决定了颜色(default-灰色,primary-绿色,success-蓝色,info-淡蓝色,warning-黄色,danger-红色,white-白色)
+    space : 按钮左侧是否有间隔(true/false)
+    clickFun : 点击按钮所执行的方法
+    icon : 按钮上的图标的样式
+    name : 按钮名称
+@*/
+
+@var spaceCss = "";
+@var btnType = "";
+@if(isEmpty(space) || space == "false"){
+@   spaceCss = "";
+@}else{
+@   spaceCss = "button-margin";
+@}
+@if(isEmpty(btnCss)){
+@   btnType = "primary";
+@}else{
+@   btnType = btnCss;
+@}
+<button type="button" class="btn btn-${btnType} ${spaceCss}" onclick="${clickFun!}" id="${id!}">
+    <i class="fa ${icon}"></i>&nbsp;${name}
+</button>
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/input.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/input.tag
new file mode 100644
index 0000000..bb19b00
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/input.tag
@@ -0,0 +1,51 @@
+@/*
+    表单中input框标签中各个参数的说明:
+
+    hidden : input hidden框的id
+    id : input框id
+    name : input框名称
+    readonly : readonly属性
+    clickFun : 点击事件的方法名
+    style : 附加的css属性
+@*/
+<div class="form-group">
+    <label class="col-sm-3 control-label">${name}</label>
+    <div class="col-sm-9">
+        <input class="form-control" id="${id}" name="${id}"
+               @if(isNotEmpty(value)){
+                    value="${tool.dateType(value)}"
+               @}
+               @if(isNotEmpty(type)){
+                    type="${type}"
+               @}else{
+                    type="text"
+               @}
+               @if(isNotEmpty(readonly)){
+                    readonly="${readonly}"
+               @}
+               @if(isNotEmpty(clickFun)){
+                    onclick="${clickFun}"
+               @}
+               @if(isNotEmpty(style)){
+                    style="${style}"
+               @}
+               @if(isNotEmpty(disabled)){
+                    disabled="${disabled}"
+               @}
+        >
+        @if(isNotEmpty(hidden)){
+            <input class="form-control" type="hidden" id="${hidden}" value="${hiddenValue!}">
+        @}
+
+        @if(isNotEmpty(selectFlag)){
+            <div id="${selectId}" style="display: none; position: absolute; z-index: 200;">
+                <ul id="${selectTreeId}" class="ztree tree-box" style="${selectStyle!}"></ul>
+            </div>
+        @}
+    </div>
+</div>
+@if(isNotEmpty(underline) && underline == 'true'){
+    <div class="hr-line-dashed"></div>
+@}
+
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/select.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/select.tag
new file mode 100644
index 0000000..15e6def
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/select.tag
@@ -0,0 +1,22 @@
+@/*
+    select标签中各个参数的说明:
+    name : select的名称
+    id : select的id
+    underline : 是否带分割线
+@*/
+<div class="form-group">
+    <label class="col-sm-3 control-label">${name}</label>
+    <div class="col-sm-9">
+        <select class="form-control" id="${id}" name="${id}">
+            ${tagBody!}
+        </select>
+        @if(isNotEmpty(hidden)){
+            <input class="form-control" type="hidden" id="${hidden}" value="${hiddenValue!}">
+        @}
+    </div>
+</div>
+@if(isNotEmpty(underline) && underline == 'true'){
+    <div class="hr-line-dashed"></div>
+@}
+
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/table.tag b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/table.tag
new file mode 100644
index 0000000..3760417
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/table.tag
@@ -0,0 +1,12 @@
+@/*
+    表格标签的参数说明:
+
+    id : table表格的id
+@*/
+<table id="${id}" data-mobile-responsive="true" data-click-to-select="true">
+    <thead>
+        <tr>
+            <th data-field="selectItem" data-checkbox="true"></th>
+        </tr>
+    </thead>
+</table>
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/tag_tips b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/tag_tips
new file mode 100644
index 0000000..3a5d5d4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/common/tags/tag_tips
@@ -0,0 +1,22 @@
+1 dictSelector(字典选择器)
+    此标签是为了方便在前台form表单中使用系统中维护的字典而开发的,具体说明如下:
+1.1 标签样例
+    <#dictSelector id="sex" name ="sex" code="sys_sex" readonly="readonly" label="性别"  underline="true"  value="${user.sex}" />
+1.2 属性说明
+    id: (非必须) 控件的id
+    name: (非必须) 控件的name
+    code:(必须) 字典类型编码,根据code的值去后台查询该类型的字典。
+    type:(非必须) 控件类型,可选项为[select,radio,checkbox],标签会根据填写的类型,生成不同的控件。
+    searchnum:(非必须)下拉框达到多少个,开启搜索框,默认10个,type为select起效。
+    label:(非必须) 字典属性名称
+    width:(非必须) 控件的宽度单位为px,type为select起效。
+    value: (非必须) 控件默认值,多选时值要用,分隔。
+    placeholder:(非必须) 控件提示信息,type为select起效。
+    multiple:(非必须) 是否开启多选,可选值[true,false],默认为false,type为select起效。
+    underline:(非必须) 是否显示分割线,可选值[true,false],默认为false。
+    onchange:(非必须) onchange事件方法名称,会传入更改后的值作为参数,例:onchange="myOnChange" function myOnChange(newVal){}。
+    readonly:(非必须)只读控件,可选值[true,false],默认false
+    disabled:(非必须) 禁用控件,可选值[true,false],默认false
+
+
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
new file mode 100644
index 0000000..c04cf7e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/index.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta name="renderer" content="webkit">
+    <title>Guns - 主页</title>
+    <link rel="shortcut icon" href="${ctxPath}/static/favicon.ico">
+    <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="${ctxPath}/static/css/font-awesome.min.css?v=4.4.0" rel="stylesheet">
+    <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
+</head>
+
+<body class="fixed-sidebar full-height-layout gray-bg" style="overflow:hidden">
+    <div id="wrapper">
+    
+        <!--左侧导航开始-->
+        	@include("/common/_tab.html"){}
+        <!--左侧导航结束-->
+        
+        <!--右侧部分开始-->
+        	@include("/common/_right.html"){}
+        <!--右侧部分结束-->
+        
+        <!--右侧边栏开始-->
+        	@include("/common/_theme.html"){}
+        <!--右侧边栏结束-->
+       
+    </div>
+
+    <!-- 全局js -->
+    <script src="${ctxPath}/static/js/jquery.min.js?v=2.1.4"></script>
+    <script src="${ctxPath}/static/js/bootstrap.min.js?v=3.3.6"></script>
+    <script src="${ctxPath}/static/js/plugins/metisMenu/jquery.metisMenu.js"></script>
+    <script src="${ctxPath}/static/js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
+    <script src="${ctxPath}/static/js/plugins/layer/layer.js"></script>
+
+    <!-- 自定义js -->
+    <script src="${ctxPath}/static/js/hplus.js?v=4.1.0"></script>
+    <script type="text/javascript" src="${ctxPath}/static/js/contabs.js"></script>
+
+    <!-- 第三方插件 -->
+    <script src="${ctxPath}/static/js/plugins/pace/pace.min.js"></script>
+
+</body>
+
+</html>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/login.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/login.html
new file mode 100644
index 0000000..b3c93bf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/login.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+    <title>Guns - 登录</title>
+
+    <link rel="shortcut icon" href="${ctxPath}/static/favicon.ico">
+    <link href="${ctxPath}/static/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="${ctxPath}/static/css/font-awesome.css?v=4.4.0" rel="stylesheet">
+    <link href="${ctxPath}/static/css/style.css?v=4.1.0" rel="stylesheet">
+    <script>if (window.top !== window.self) {
+        window.top.location = window.location;
+    }</script>
+    <script src="${ctxPath}/static/js/jquery.min.js?v=2.1.4"></script>
+    <script src="${ctxPath}/static/js/bootstrap.min.js?v=3.3.6"></script>
+</head>
+
+<body class="gray-bg">
+
+<div class="middle-box text-center loginscreen">
+    <div style="padding: 100px 0px;">
+        <div>
+            <h1 class="logo-name">GS</h1>
+        </div>
+        <h3>欢迎使用 Guns</h3>
+        <br/>
+        <h4 style="color: red;">${tips!}</h4>
+        <form class="m-t" role="form" action="${ctxPath}/login" method="post">
+            <div class="form-group">
+                <input type="text" name="username" class="form-control" placeholder="用户名" required="">
+            </div>
+            <div class="form-group">
+                <input type="password" name="password" class="form-control" placeholder="密码" required="">
+            </div>
+            @if(kaptcha.getKaptchaOnOff() == true){
+            <div class="form-group" style="float: left;">
+                <div class="col-sm-8" style="padding-left: 0px; padding-right: 0px;">
+                    <input class="form-control" type="text" name="kaptcha" placeholder="验证码" required="">
+                </div>
+                <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;">
+                    <img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/>
+                </div>
+            </div>
+            @}
+            <button type="submit" class="btn btn-primary block full-width m-b">登 录</button>
+            </p>
+        </form>
+    </div>
+</div>
+
+<script>
+    $(function () {
+        $("#kaptcha").on('click', function () {
+            $("#kaptcha").attr('src', '${ctxPath}/kaptcha?' + Math.floor(Math.random() * 100)).fadeIn();
+        });
+    });
+</script>
+
+</body>
+
+</html>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/code/code.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/code/code.html
new file mode 100644
index 0000000..cacd239
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/code/code.html
@@ -0,0 +1,47 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-6  col-sm-offset-3">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>代码生成</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="form-horizontal">
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">模块英文名称</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="moduleName"> <span class="help-block m-b-none">例如:system</span>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">业务名称</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="bizChName"> <span class="help-block m-b-none">例如:测试</span>
+                        </div>
+                    </div>
+                    <div class="hr-line-dashed"></div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">业务英文名称</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="bizEnName"> <span class="help-block m-b-none">例如:test</span>
+                        </div>
+                    </div>
+                    <div class="hr-line-dashed"></div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">输出路径</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="path"> <span class="help-block m-b-none">默认路径为D:\ideaSpace\guns,可修改为您的项目的路径</span>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <div class="col-sm-4 col-sm-offset-2">
+                            <button class="btn btn-primary" onclick="Code.generate()">代码生成</button>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/code/code.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept.html
new file mode 100644
index 0000000..a0570a2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept.html
@@ -0,0 +1,38 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>部门管理</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="condition" name="名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="Dept.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="DeptTableToolbar" role="group">
+                            @if(shiro.hasPermission("/dept/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="Dept.openAddDept()"/>
+                            @}
+                            @if(shiro.hasPermission("/dept/update")){
+                                <#button name="修改" icon="fa-plus" clickFun="Dept.openDeptDetail()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/dept/delete")){
+                                <#button name="删除" icon="fa-plus" clickFun="Dept.delete()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="DeptTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/dept/dept.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_add.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_add.html
new file mode 100644
index 0000000..6dfc704
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_add.html
@@ -0,0 +1,42 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="deptInfoForm">
+
+            <input type="hidden" id="id" value="">
+
+            <div class="row">
+                <div class="col-sm-6 b-r">
+                    <#input id="simplename" name="部门名称" underline="true"/>
+
+                    <#input id="fullname" name="部门全称" underline="true"/>
+
+                    <#input id="tips" name="备注" underline="true"/>
+                </div>
+                <div class="col-sm-6">
+                    <#input id="num" name="排序" underline="true"/>
+
+                    <#input id="pName" name="上级部门" readonly="readonly" hidden="pid"
+                            clickFun="DeptInfoDlg.showDeptSelectTree(); return false;"
+                            style="background-color: #ffffff !important;"/>
+                </div>
+            </div>
+
+            <!-- 父级部门的选择框 -->
+            <div id="parentDeptMenu" class="menuContent"
+                 style="display: none; position: absolute; z-index: 200;">
+                <ul id="parentDeptMenuTree" class="ztree tree-box" style="width: 245px !important;"></ul>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="DeptInfoDlg.addSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="DeptInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/dept/dept_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_edit.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_edit.html
new file mode 100644
index 0000000..15c82f8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dept/dept_edit.html
@@ -0,0 +1,43 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="deptInfoForm">
+
+            <input type="hidden" id="id" value="${dept.id}">
+
+            <div class="row">
+                <div class="col-sm-6 b-r">
+                    <#input id="simplename" name="部门名称" underline="true" value="${dept.simplename}"/>
+
+                    <#input id="fullname" name="部门全称" underline="true" value="${dept.fullname}"/>
+
+                    <#input id="tips" name="备注" underline="true" value="${dept.tips}"/>
+                </div>
+                <div class="col-sm-6">
+                    <#input id="num" name="排序" underline="true" value="${dept.num}"/>
+
+                    <#input id="pName" name="上级部门" readonly="readonly" hidden="pid"
+                            hiddenValue="${dept.pid}" value="${pName}"
+                            clickFun="DeptInfoDlg.showDeptSelectTree(); return false;"
+                            style="background-color: #ffffff !important;"/>
+                </div>
+            </div>
+
+            <!-- 父级部门的选择框 -->
+            <div id="parentDeptMenu" class="menuContent"
+                 style="display: none; position: absolute; z-index: 200;">
+                <ul id="parentDeptMenuTree" class="ztree tree-box" style="width: 245px !important;"></ul>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="DeptInfoDlg.editSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="DeptInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/dept/dept_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict.html
new file mode 100644
index 0000000..2bf81ee
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict.html
@@ -0,0 +1,38 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>字典管理</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="condition" name="名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="Dict.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="DictTableToolbar" role="group">
+                            @if(shiro.hasPermission("/dict/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="Dict.openAddDict()"/>
+                            @}
+                            @if(shiro.hasPermission("/dict/update")){
+                                <#button name="修改" icon="fa-plus" clickFun="Dict.openDictDetail()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/dict/delete")){
+                                <#button name="删除" icon="fa-plus" clickFun="Dict.delete()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="DictTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/dict/dict.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_add.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_add.html
new file mode 100644
index 0000000..47352a5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_add.html
@@ -0,0 +1,64 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal">
+
+            <input type="hidden" id="id" value="">
+
+            <div class="row">
+                <div class="col-sm-12" id="itemsArea">
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">类型编码</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" id="dictCode" type="text">
+                        </div>
+                        <label class="col-sm-2 control-label">类型名称</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" id="dictName" type="text">
+                        </div>
+
+                        <div class="col-sm-2">
+                            <#button btnCss="info" name="增加" icon="fa-plus" clickFun="DictInfoDlg.addItem()"/>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">备注</label>
+                        <div class="col-sm-8">
+                            <input class="form-control" id="dictTips" type="text">
+                        </div>
+                    </div>
+                    <div class="hr-line-dashed"></div>
+
+                </div>
+            </div>
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="DictInfoDlg.addSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="DictInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <script type="text/template" id="itemTemplate">
+        <div class="form-group" name="dictItem" id="dictItem">
+            <label class="col-sm-1 control-label">值</label>
+            <div class="col-sm-2">
+                <input class="form-control" type="text" name="itemCode">
+            </div>
+            <label class="col-sm-1 control-label" >名称</label>
+            <div class="col-sm-2">
+                <input class="form-control" type="text" name="itemName">
+            </div>
+            <label class="col-sm-1 control-label" >序号</label>
+            <div class="col-sm-2">
+                <input class="form-control" type="text" name="itemNum">
+            </div>
+            <div class="col-sm-2">
+                <#button btnCss="danger" name="删除" id="cancel" icon="fa-remove" clickFun="DictInfoDlg.deleteItem(event)"/>
+            </div>
+        </div>
+    </script>
+
+    <script src="${ctxPath}/static/modular/system/dict/dict_info.js"></script>
+    @}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_edit.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_edit.html
new file mode 100644
index 0000000..aca3d70
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/dict/dict_edit.html
@@ -0,0 +1,86 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal">
+
+            <input type="hidden" id="id" value="">
+
+            <div class="row">
+                <div class="col-sm-12" id="itemsArea">
+                    <input type="hidden" id="itemSize" value="${subDicts.~size!0}" />
+                    <div class="form-group">
+
+                        <label class="col-sm-2 control-label">类型编码</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" id="dictCode" type="text" value="${dict.code}">
+                        </div>
+
+                        <label class="col-sm-2 control-label">类型名称</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" id="dictName" type="text" value="${dict.name}">
+                            <input type="hidden" id="dictId" value="${dict.id}">
+                        </div>
+
+                        <div class="col-sm-2">
+                            <#button btnCss="info" name="增加" icon="fa-plus" clickFun="DictInfoDlg.addItem()"/>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label">备注</label>
+                        <div class="col-sm-8">
+                            <input class="form-control" id="dictTips" type="text" value="${dict.tips}">
+                        </div>
+                    </div>
+                    <div class="hr-line-dashed"></div>
+                    @for(item in subDicts){
+                    <div class="form-group" name="dictItem" id="dictItem${itemLP.index}">
+                        <label class="col-sm-1 control-label">值</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" type="text" name="itemCode" value="${item.code}">
+                        </div>
+                        <label class="col-sm-1 control-label" >名称</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" type="text" name="itemName" value="${item.name}">
+                        </div>
+                        <label class="col-sm-1 control-label" >序号</label>
+                        <div class="col-sm-2">
+                            <input class="form-control" type="text" name="itemNum" value="${item.num}">
+                        </div>
+                        <div class="col-sm-2">
+                            <#button btnCss="danger" name="删除" id="cancel" icon="fa-remove" clickFun="DictInfoDlg.deleteItem(event)"/>
+                        </div>
+                    </div>
+                    @}
+                    </input>
+                </div>
+                <div class="row btn-group-m-t">
+                    <div class="col-sm-10">
+                        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="DictInfoDlg.editSubmit()"/>
+                        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="DictInfoDlg.close()"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <script type="text/template" id="itemTemplate">
+            <div class="form-group" name="dictItem" id="dictItem">
+                <label class="col-sm-1 control-label">值</label>
+                <div class="col-sm-2">
+                    <input class="form-control" type="text" name="itemCode">
+                </div>
+                <label class="col-sm-1 control-label" >名称</label>
+                <div class="col-sm-2">
+                    <input class="form-control" type="text" name="itemName">
+                </div>
+                <label class="col-sm-1 control-label" >序号</label>
+                <div class="col-sm-2">
+                    <input class="form-control" type="text" name="itemNum">
+                </div>
+                <div class="col-sm-2">
+                    <#button btnCss="danger" name="删除" id="cancel" icon="fa-remove" clickFun="DictInfoDlg.deleteItem(event)"/>
+                </div>
+            </div>
+        </script>
+
+        <script src="${ctxPath}/static/modular/system/dict/dict_info.js"></script>
+        @}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/log.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/log.html
new file mode 100644
index 0000000..9b396c2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/log.html
@@ -0,0 +1,46 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>业务日志</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-2">
+                                <#TimeCon id="beginTime" name="开始时间" isTime="false" pattern="YYYY-MM-DD" />
+                            </div>
+                            <div class="col-sm-2">
+                                <#TimeCon id="endTime" name="结束时间" isTime="false" pattern="YYYY-MM-DD" />
+                            </div>
+                            <div class="col-sm-2">
+                                <#NameCon id="logName" name="日志名称" />
+                            </div>
+                            <div class="col-sm-2">
+                                <#SelectCon id="logType" name="日志类型" >
+                                    <option value="0">全部</option>
+                                    <option value="1">业务日志</option>
+                                    <option value="2">异常日志</option>
+                                </#SelectCon>
+                            </div>
+                            <div class="col-sm-2">
+                                <#button name="搜索" icon="fa-search" clickFun="OptLog.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="OptLogTableToolbar" role="group">
+                            <#button name="查看详情" icon="fa-plus" clickFun="OptLog.detail()"/>
+                            @if(shiro.hasPermission("/log/delLog")){
+                                <#button name="清空日志" icon="fa-plus" clickFun="OptLog.delLog()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="OptLogTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/log/log.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/login_log.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/login_log.html
new file mode 100644
index 0000000..bbf0bd1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/log/login_log.html
@@ -0,0 +1,36 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>登录日志</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#TimeCon id="beginTime" name="开始时间" isTime="false" pattern="YYYY-MM-DD" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#TimeCon id="endTime" name="结束时间" isTime="false" pattern="YYYY-MM-DD" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="logName" name="日志名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="LoginLog.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="LoginLogTableToolbar" role="group">
+                            <#button name="清空日志" icon="fa-plus" clickFun="LoginLog.delLog()"/>
+                        </div>
+                        <#table id="LoginLogTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/log/login_log.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu.html
new file mode 100644
index 0000000..b0e89a7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu.html
@@ -0,0 +1,41 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>菜单管理</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="menuName" name="菜单名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#NameCon id="level" name="层级" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="Menu.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="menuTableToolbar" role="group">
+                            @if(shiro.hasPermission("/menu/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="Menu.openAddMenu()"/>
+                            @}
+                            @if(shiro.hasPermission("/menu/edit")){
+                                <#button name="修改" icon="fa-edit" clickFun="Menu.openChangeMenu()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/menu/remove")){
+                                <#button name="删除" icon="fa-remove" clickFun="Menu.delMenu()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="menuTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/menu/menu.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_add.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_add.html
new file mode 100644
index 0000000..7eae700
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_add.html
@@ -0,0 +1,40 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+	<div class="ibox-content">
+		<div class="form-horizontal" id="menuInfoForm">
+		
+			<input type="hidden" id="id" value="">
+
+			<div class="row">
+				<div class="col-sm-6 b-r">
+					<#input id="name" name="名称" underline="true" />
+					<#input id="code" name="菜单编号" underline="true" />
+					<#input id="pcodeName" name="父级编号" underline="true"
+							hidden="pcode" readonly="readonly"
+							clickFun="MenuInfoDlg.showMenuSelectTree(); return false;"
+							style="background-color: #ffffff !important;"
+							selectFlag="true" selectId="pcodeTreeDiv" selectTreeId="pcodeTree" selectStyle="width:244px !important;"/>
+					<#select id="ismenu" name="是否是菜单">
+						<option value="1">是</option>
+						<option value="0">不是</option>
+					</#select>
+				</div>
+				<div class="col-sm-6">
+					<#input id="url" name="请求地址" underline="true" />
+					<#input id="num" name="排序" underline="true" />
+					<#input id="icon" name="图标" underline="false" />
+				</div>
+			</div>
+
+			<div class="row btn-group-m-t">
+				<div class="col-sm-10">
+					<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="MenuInfoDlg.addSubmit()"/>
+					<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="MenuInfoDlg.close()"/>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</div>
+<script src="${ctxPath}/static/modular/system/menu/menu_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_edit.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_edit.html
new file mode 100644
index 0000000..5942194
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/menu/menu_edit.html
@@ -0,0 +1,42 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="menuInfoForm">
+
+            <input type="hidden" id="id" value="${menu.id}">
+            <input type="hidden" id="ismenuValue" value="${menu.ismenu}">
+
+            <div class="row">
+                <div class="col-sm-6 b-r">
+                    <#input id="name" name="名称" value="${menu.name}" underline="true" />
+                    <#input id="code" name="菜单编号" value="${menu.code}" underline="true" />
+                    <#input id="pcodeName" name="父级编号" value="${menu.pcodeName}" underline="true"
+                            hidden="pcode" readonly="readonly" hiddenValue="${menu.pcode}"
+                            clickFun="MenuInfoDlg.showMenuSelectTree(); return false;"
+                            style="background-color: #ffffff !important;"
+                            selectFlag="true" selectId="pcodeTreeDiv" selectTreeId="pcodeTree" selectStyle="width:244px !important;"/>
+                    <#select id="ismenu" name="是否是菜单">
+                        <option value="1">是</option>
+                        <option value="0">不是</option>
+                    </#select>
+
+                </div>
+                <div class="col-sm-6">
+                    <#input id="url" name="请求地址" value="${menu.url}" underline="true" />
+                    <#input id="num" name="排序" value="${menu.num}" underline="true" />
+                    <#input id="icon" name="图标" underline="false" value="${menu.icon}"/>
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="MenuInfoDlg.editSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="MenuInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/menu/menu_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice.html
new file mode 100644
index 0000000..f373984
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice.html
@@ -0,0 +1,38 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>通知管理</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="condition" name="名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="Notice.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="NoticeTableToolbar" role="group">
+                            @if(shiro.hasPermission("/notice/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="Notice.openAddNotice()"/>
+                            @}
+                            @if(shiro.hasPermission("/notice/update")){
+                                <#button name="修改" icon="fa-plus" clickFun="Notice.openNoticeDetail()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/notice/delete")){
+                                <#button name="删除" icon="fa-plus" clickFun="Notice.delete()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="NoticeTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/notice/notice.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_add.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_add.html
new file mode 100644
index 0000000..81787e7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_add.html
@@ -0,0 +1,39 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="noticeInfoForm">
+
+            <input type="hidden" id="id" value="">
+
+            <div class="row">
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">标题</label>
+                        <div class="col-sm-11">
+                            <input class="form-control" id="title" name="title" type="text">
+
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">内容</label>
+                        <div class="col-sm-11">
+                            <div id="editor" class="editorHeight">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="NoticeInfoDlg.addSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="NoticeInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+
+    </div>
+</div>
+<script type="text/javascript" src="//unpkg.com/wangeditor/release/wangEditor.min.js"></script>
+<script src="${ctxPath}/static/modular/system/notice/notice_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_edit.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_edit.html
new file mode 100644
index 0000000..051600c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/notice/notice_edit.html
@@ -0,0 +1,39 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+    <div class="ibox-content">
+        <div class="form-horizontal" id="noticeInfoForm">
+
+            <input type="hidden" id="id" value="${notice.id}">
+            <input type="hidden" id="contentVal" value='${notice.content}'>
+
+            <div class="row">
+                <div class="col-sm-12">
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">标题</label>
+                        <div class="col-sm-11">
+                            <input class="form-control" id="title" name="title" type="text" value="${notice.title}">
+
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-1 control-label">内容</label>
+                        <div class="col-sm-11">
+                            <div id="editor" class="editorHeight">
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="row btn-group-m-t">
+                <div class="col-sm-10">
+                    <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="NoticeInfoDlg.editSubmit()"/>
+                    <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="NoticeInfoDlg.close()"/>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script type="text/javascript" src="${ctxPath}/static/js/plugins/wangEditor/wangEditor.js"></script>
+<script src="${ctxPath}/static/modular/system/notice/notice_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role.html
new file mode 100644
index 0000000..316cf85
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role.html
@@ -0,0 +1,41 @@
+@layout("/common/_container.html"){
+<div class="row">
+    <div class="col-sm-12">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>角色管理</h5>
+            </div>
+            <div class="ibox-content">
+                <div class="row row-lg">
+                    <div class="col-sm-12">
+                        <div class="row">
+                            <div class="col-sm-3">
+                                <#NameCon id="roleName" name="角色名称" />
+                            </div>
+                            <div class="col-sm-3">
+                                <#button name="搜索" icon="fa-search" clickFun="Role.search()"/>
+                            </div>
+                        </div>
+                        <div class="hidden-xs" id="roleTableToolbar" role="group">
+                            @if(shiro.hasPermission("/role/add")){
+                                <#button name="添加" icon="fa-plus" clickFun="Role.openAddRole()" />
+                            @}
+                            @if(shiro.hasPermission("/role/edit")){
+                                <#button name="修改" icon="fa-edit" clickFun="Role.openChangeRole()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/role/remove")){
+                                <#button name="删除" icon="fa-remove" clickFun="Role.delRole()" space="true"/>
+                            @}
+                            @if(shiro.hasPermission("/role/setAuthority")){
+                                <#button name="权限配置" icon="fa-user-secret" clickFun="Role.assign()" space="true"/>
+                            @}
+                        </div>
+                        <#table id="roleTable"/>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/role/role.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_add.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_add.html
new file mode 100644
index 0000000..3ebc8c7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_add.html
@@ -0,0 +1,47 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+	<div class="ibox-content">
+		<div class="form-horizontal" id="roleInfoForm">
+		
+			<input type="hidden" id="id" value="">
+
+			<div class="row">
+				<div class="col-sm-6 b-r">
+					<#input id="name" name="角色名称" underline="true"/>
+					<#input id="pName" name="上级名称" underline="true" hidden="pid" readonly="readonly"
+							clickFun="RolInfoDlg.showPNameSelectTree(); return false;"
+							style="background-color: #ffffff !important;"/>
+					<#input id="deptName" name="部门名称" hidden="deptid" readonly="readonly"
+							clickFun="RolInfoDlg.showDeptSelectTree(); return false;"
+							style="background-color: #ffffff !important;"/>
+				</div>
+				<div class="col-sm-6">
+					<#input id="tips" name="别名" underline="true"/>
+					<#input id="num" name="排序"/>
+				</div>
+			</div>
+
+			<!-- 这是部门下拉框 -->
+			<div id="deptContent" class="menuContent"
+				style="display: none; position: absolute; z-index: 200;">
+				<ul id="deptTree" class="ztree tree-box" style="width: 250px !important;"></ul>
+			</div>
+			
+			<!-- 这是父级菜单下拉框 -->
+			<div id="pNameContent" class="menuContent"
+				style="display: none; position: absolute; z-index: 200;">
+				<ul id="pNameTree" class="ztree tree-box" style="width: 250px !important;"></ul>
+			</div>
+
+			<div class="row btn-group-m-t">
+				<div class="col-sm-10">
+					<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="RolInfoDlg.addSubmit()"/>
+					<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="RolInfoDlg.close()"/>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</div>
+<script src="${ctxPath}/static/modular/system/role/role_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_assign.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_assign.html
new file mode 100644
index 0000000..628a27b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_assign.html
@@ -0,0 +1,75 @@
+@layout("/common/_container.html"){
+
+
+<script type="text/javascript">
+    $(function () {
+        var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
+
+        $("#btn_close").bind("click", function () {
+            parent.layer.close(index);
+        });
+
+        $("#btn_save").bind("click", function () {
+            var ids = Feng.zTreeCheckedNodes("zTree");
+            var ajax = new $ax(Feng.ctxPath + "/role/setAuthority", function (data) {
+                Feng.success("分配角色成功!");
+                window.parent.Role.table.refresh();
+                parent.layer.close(index);
+            }, function (data) {
+                Feng.error("分配角色失败!"
+                    + data.responseJSON.message + "!");
+            });
+            ajax.set("roleId", "${roleId}");
+            ajax.set("ids", ids);
+            ajax.start();
+        });
+
+        initZtree();
+    });
+
+    function initZtree() {
+        var setting = {
+            check: {
+                enable: true,
+                chkboxType: { "Y": "ps", "N": "ps" }
+            },
+            data: {
+                simpleData: {
+                    enable: true
+                }
+            }
+        };
+
+        var ztree = new $ZTree("zTree", "/menu/menuTreeListByRoleId/"
+            + "${roleId}");
+        ztree.setSettings(setting);
+        ztree.init();
+    }
+</script>
+
+
+<!-- 配置grid -->
+<div class="container" style="padding:  0px 10px !important;margin-top: -10px;text-align: center !important;">
+    <div class="row">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>${roleName!}</h5>
+            </div>
+            <div class="ibox-content">
+                <ul id="zTree" class="ztree"></ul>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <button class="btn btn-sm btn-info" type="button" id="btn_save">
+                <i class="ace-icon fa fa-check bigger-110"></i>保存
+            </button>
+            &nbsp;
+            <button class="btn btn-sm btn-danger" type="button" id="btn_close">
+                <i class="ace-icon fa fa-close bigger-110"></i>关闭
+            </button>
+        </div>
+    </div>
+</div>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_edit.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_edit.html
new file mode 100644
index 0000000..4bb543d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/role/role_edit.html
@@ -0,0 +1,47 @@
+ @layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+	<div class="ibox-content">
+		<div class="form-horizontal" id="roleInfoForm">
+		
+			<input type="hidden" id="id" value="${role.id}">
+
+			<div class="row">
+				<div class="col-sm-6 b-r">
+					<#input id="name" name="角色名称" underline="true" value="${role.name}"/>
+					<#input id="pName" name="上级名称" underline="true" hidden="pid" hiddenValue="${role.pid}" readonly="readonly" value="${pName}"
+							clickFun="RolInfoDlg.showPNameSelectTree(); return false;"
+							style="background-color: #ffffff !important;"/>
+					<#input id="deptName" name="部门名称" hidden="deptid" hiddenValue="${role.deptid}" readonly="readonly" value="${deptName}"
+							clickFun="RolInfoDlg.showDeptSelectTree(); return false;"
+							style="background-color: #ffffff !important;"/>
+				</div>
+				<div class="col-sm-6">
+					<#input id="tips" name="别名" underline="true" value="${role.tips}"/>
+					<#input id="num" name="排序" value="${role.num}"/>
+				</div>
+			</div>
+
+			<!-- 这是部门下拉框 -->
+			<div id="deptContent" class="menuContent"
+				style="display: none; position: absolute; z-index: 200;">
+				<ul id="deptTree" class="ztree tree-box" style="width: 250px !important;"></ul>
+			</div>
+			
+			<!-- 这是父级菜单下拉框 -->
+			<div id="pNameContent" class="menuContent"
+				style="display: none; position: absolute; z-index: 200;">
+				<ul id="pNameTree" class="ztree tree-box" style="width: 250px !important;"></ul>
+			</div>
+
+			<div class="row btn-group-m-t">
+				<div class="col-sm-10">
+					<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="RolInfoDlg.editSubmit()"/>
+					<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="RolInfoDlg.close()"/>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</div>
+<script src="${ctxPath}/static/modular/system/role/role_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user.html
new file mode 100644
index 0000000..f823853
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user.html
@@ -0,0 +1,85 @@
+@layout("/common/_container.html"){
+<div class="row">
+	<div class="col-sm-12">
+		<div class="ibox float-e-margins">
+			<div class="ibox-title">
+				<h5>用户管理</h5>
+			</div>
+			<div class="ibox-content">
+				<div class="row row-lg">
+					<div class="col-sm-12">
+						<div class="row">
+							<div class="col-lg-2 col-sm-3">
+								<div class="panel panel-default">
+									<div class="panel-heading">组织机构</div>
+									<div class="panel-body dept-tree">
+										<ul id="deptTree" class="ztree"></ul>
+									</div>
+								</div>
+							</div>
+							<div class="col-lg-10 col-sm-9">
+								<div class="row">
+									<div class="col-lg-10 col-sm-9">
+										<div class="row">
+											<div class="col-lg-4 col-sm-12">
+												<#NameCon id="name" name="用户名称" placeholder="帐号/姓名/手机号"/>
+											</div>
+											<div class="col-lg-4 col-sm-6">
+												<#TimeCon id="beginTime" name="注册开始日期" isTime="false"/>
+											</div>
+											<div class="col-lg-4 col-sm-6">
+												<#TimeCon id="endTime" name="注册结束日期" isTime="false"/>
+											</div>
+										</div>
+									</div>
+									<div class="col-lg-2 col-sm-3">
+										<div class="row">
+											<div class="col-lg-12 col-sm-12">
+												<#button name="搜索" icon="fa-search" clickFun="MgrUser.search()"/>
+												<#button name="重置" icon="fa-trash" clickFun="MgrUser.resetSearch()" space="true"/>
+											</div>
+										</div>
+									</div>
+								</div>
+								<div class="hidden-xs" id="managerTableToolbar" role="group">
+									@if(shiro.hasPermission("/mgr/add")){
+									<#button name="添加" icon="fa-plus" clickFun="MgrUser.openAddMgr()"/>
+									@}
+									@if(shiro.hasPermission("/mgr/edit")){
+									<#button name="修改" icon="fa-edit" clickFun="MgrUser.openChangeUser()" space="true"/>
+									@}
+									@if(shiro.hasPermission("/mgr/delete")){
+									<#button name="删除" icon="fa-remove" clickFun="MgrUser.delMgrUser()" space="true"/>
+									@}
+									@if(shiro.hasPermission("/mgr/reset")){
+									<#button name="重置密码" icon="fa-refresh" clickFun="MgrUser.resetPwd()" space="true"/>
+									@}
+									@if(shiro.hasPermission("/mgr/freeze")){
+									<#button name="冻结" icon="fa-warning" clickFun="MgrUser.freezeAccount()" space="true"/>
+									@}
+									@if(shiro.hasPermission("/mgr/unfreeze")){
+									<#button name="解除冻结" icon="fa-check-circle" clickFun="MgrUser.unfreeze()" space="true"/>
+									@}
+									@if(shiro.hasPermission("/mgr/setRole")){
+									<#button name="角色分配" icon="fa-user-secret" clickFun="MgrUser.roleAssign()" space="true"/>
+									@}
+								</div>
+								<#table id="managerTable"/>
+							</div>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<script src="${ctxPath}/static/modular/system/user/user.js"></script>
+<script>
+    laydate.render({
+        elem: '#beginTime'
+    });
+    laydate.render({
+        elem: '#endTime'
+    });
+</script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_add.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_add.html
new file mode 100644
index 0000000..a5a76cb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_add.html
@@ -0,0 +1,63 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+	<div class="ibox-content">
+		<div class="form-horizontal" id="userInfoForm">
+
+			<input type="hidden" id="id" value="">
+
+			<div class="row">
+				<div class="col-sm-6 b-r">
+					<#input id="account" name="账户" underline="true"/>
+
+					<#select id="sex" name="性别" underline="true">
+						<option value="1">男</option>
+						<option value="2">女</option>
+					</#select>
+
+					<#input id="password" name="密码" underline="true" type="password"/>
+
+					<#input id="roleid" name="角色" underline="true" disabled="disabled"/>
+
+					<#input id="email" name="邮箱" type="email"/>
+
+				</div>
+				<div class="col-sm-6">
+					<div id="driverInfoContent">
+						<#input id="name" name="姓名" underline="true"/>
+
+						<#input id="birthday" name="出生日期" underline="true" type="text"/>
+
+						<#input id="rePassword" name="确认密码" type="password" underline="true"/>
+
+						<#input id="citySel" name="部门" underline="true" readonly="readonly" hidden="deptid"
+						clickFun="UserInfoDlg.showDeptSelectTree(); return false;"
+						style="background-color: #ffffff !important;"/>
+
+						<#input id="phone" name="电话"/>
+					</div>
+				</div>
+			</div>
+
+			<!-- 这是部门选择的下拉框 -->
+			<div id="menuContent" class="menuContent"
+				 style="display: none; position: absolute; z-index: 200;">
+				<ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
+			</div>
+
+			<div class="row btn-group-m-t">
+				<div class="col-sm-10">
+					<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.addSubmit()"/>
+					<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</div>
+<script src="${ctxPath}/static/modular/system/user/user_info.js"></script>
+<script>
+    laydate.render({
+        elem: '#birthday'
+    });
+</script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_chpwd.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_chpwd.html
new file mode 100644
index 0000000..a376cc2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_chpwd.html
@@ -0,0 +1,34 @@
+@layout("/common/_container.html"){
+<div class="col-sm-4  col-sm-offset-4">
+    <div class="ibox float-e-margins">
+        <div class="ibox-title">
+            <h5>修改密码</h5>
+        </div>
+        <div class="ibox-content">
+            <div class="row row-lg">
+                <div class="col-sm-12">
+                    <div class="ibox float-e-margins">
+                        <div class="ibox-content" style="border:none !important; ">
+                            <div class="form-horizontal">
+                                <div class="row">
+                                    <div class="col-sm-12">
+                                        <#input id="oldPwd" name="原密码" underline="true" type="password"/>
+                                        <#input id="newPwd" name="新密码" underline="true" type="password"/>
+                                        <#input id="rePwd" name="新密码验证" type="password"/>
+                                    </div>
+                                </div>
+                                <div class="row btn-group-m-t">
+                                    <div class="col-sm-10">
+                                        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.chPwd()"/>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/user/user_info.js"></script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_edit.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_edit.html
new file mode 100644
index 0000000..437a9d3
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_edit.html
@@ -0,0 +1,60 @@
+@layout("/common/_container.html"){
+<div class="ibox float-e-margins">
+	<div class="ibox-content">
+		<div class="form-horizontal" id="userInfoForm">
+
+			<input type="hidden" id="id" value="${user.id}">
+			<input type="hidden" id="sexValue" value="${user.sex}">
+
+			<div class="row">
+				<div class="col-sm-6 b-r">
+					<#input id="account" name="账户" underline="true" value="${user.account}"/>
+
+					<#select id="sex" name="性别" underline="true">
+						<option value="1">男</option>
+						<option value="2">女</option>
+					</#select>
+
+					<#input id="roleid" name="角色" underline="true" value="${roleName}" disabled="disabled"/>
+
+					<#input id="email" name="邮箱" type="email" value="${user.email}"/>
+				</div>
+				<div class="col-sm-6">
+					<div id="driverInfoContent">
+						<#input id="name" name="姓名" underline="true" value="${user.name}"/>
+
+						<#input id="birthday" name="出生日期" underline="true" type="text"
+						value="${user.birthday}"/>
+
+						<#input id="citySel" name="部门" underline="true" readonly="readonly" hidden="deptid" hiddenValue="${user.deptid}" value="${deptName}"
+						clickFun="UserInfoDlg.showDeptSelectTree(); return false;"
+						style="background-color: #ffffff !important;"/>
+
+						<#input id="phone" name="电话" value="${user.phone}"/>
+					</div>
+				</div>
+			</div>
+
+			<!-- 这是部门选择的下拉框 -->
+			<div id="menuContent" class="menuContent"
+				 style="display: none; position: absolute; z-index: 200;">
+				<ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
+			</div>
+
+			<div class="row btn-group-m-t">
+				<div class="col-sm-10">
+					<#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
+					<#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
+				</div>
+			</div>
+		</div>
+
+	</div>
+</div>
+<script src="${ctxPath}/static/modular/system/user/user_info.js"></script>
+<script>
+    laydate.render({
+        elem: '#birthday'
+    });
+</script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_roleassign.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_roleassign.html
new file mode 100644
index 0000000..8131bc8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_roleassign.html
@@ -0,0 +1,79 @@
+@layout("/common/_container.html"){
+
+
+<script type="text/javascript">
+    $(function () {
+
+        var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
+
+        $("#btn_close").bind("click", function () {
+            parent.layer.close(index);
+        });
+
+        $("#btn_save").bind("click", function () {
+            var ids = Feng.zTreeCheckedNodes("zTree");
+            var ajax = new $ax(Feng.ctxPath + "/mgr/setRole", function (data) {
+                Feng.success("分配角色成功!");
+                window.parent.MgrUser.table.refresh();
+                parent.layer.close(index);
+            }, function (data) {
+                Feng.error("分配角色失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("roleIds", ids);
+            ajax.set("userId", "${userId}");
+            ajax.start();
+        });
+
+        initZtree();
+    });
+
+    function initZtree() {
+        var setting = {
+            check: {
+                enable: true,
+                chkboxType: {
+                    "Y": "",
+                    "N": ""
+                }
+            },
+            data: {
+                simpleData: {
+                    enable: true
+                }
+            }
+        };
+
+        var ztree = new $ZTree("zTree", "/role/roleTreeListByUserId/${userId}");
+        ztree.setSettings(setting);
+        ztree.init();
+    }
+</script>
+
+
+<!-- 配置grid -->
+<div class="container"
+     style="padding:  0px 10px !important; margin-top: -10px; text-align: center !important;">
+    <div class="row">
+        <div class="ibox float-e-margins">
+            <div class="ibox-title">
+                <h5>${userAccount!}</h5>
+            </div>
+            <div class="ibox-content">
+                <ul id="zTree" class="ztree"></ul>
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <button class="btn btn-sm btn-info" type="button" id="btn_save">
+                <i class="ace-icon fa fa-check bigger-110"></i> 保存
+            </button>
+            &nbsp;
+            <button class="btn btn-sm btn-danger" type="button" id="btn_close">
+                <i class="ace-icon fa fa-close bigger-110"></i> 关闭
+            </button>
+        </div>
+    </div>
+</div>
+
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_view.html b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_view.html
new file mode 100644
index 0000000..fcbe512
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/user/user_view.html
@@ -0,0 +1,75 @@
+@layout("/common/_container.html"){
+<div class="col-sm-6  col-sm-offset-3">
+    <div class="ibox float-e-margins">
+        <div class="ibox-title">
+            <h5>用户管理</h5>
+        </div>
+        <div class="ibox-content">
+            <div class="row row-lg">
+                <div class="col-sm-12">
+                    <div class="ibox float-e-margins">
+                        <div class="ibox-content" style="border:none !important; ">
+                            <div class="form-horizontal" id="userInfoForm">
+
+                                <input type="hidden" id="id" value="${user.id}">
+                                <input type="hidden" id="sexValue" value="${user.sex}">
+
+                                <div class="row">
+                                    <div class="col-sm-6 b-r">
+                                        <#avatar id="avatar" name="头像" underline="true" avatarImg="${user.avatar}"/>
+
+                                        <#input id="account" name="账户" underline="true" value="${user.account}" disabled="disabled" />
+
+                                        <#select id="sex" name="性别" underline="true" value="${user.sex}">
+                                            <option value="1">男</option>
+                                            <option value="2">女</option>
+                                        </#select>
+
+                                        <#input id="roleid" name="角色" underline="true" value="${roleName}" disabled="disabled"/>
+
+                                        <#input id="email" name="邮箱" type="email" value="${user.email}"/>
+                                    </div>
+
+                                    <div class="col-sm-6">
+                                        <div id="driverInfoContent">
+                                            <#input id="name" name="姓名" underline="true" value="${user.name}"/>
+
+                                            <#input id="birthday" name="出生日期" underline="true" type="text"
+                                                    value="${user.birthday}"/>
+
+                                            <#input id="citySel" name="部门" underline="true" readonly="readonly" value="${deptName}"
+                                                    hidden="deptid" hiddenValue="${user.deptid}"
+                                                    clickFun="UserInfoDlg.showInfoDeptSelectTree(); return false;"
+                                                    style="background-color: #ffffff !important;"
+                                                    selectFlag="true" selectId="menuContent" selectTreeId="treeDemo" selectStyle="width:250px !important;"/>
+
+                                            <#input id="phone" name="电话" value="${user.phone}"/>
+                                        </div>
+                                    </div>
+                                </div>
+
+                                <div class="progress progress-striped" id="progressTipArea" style="margin-top: 20px;">
+                                    <div id="progressBar" style="width: 0%" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" role="progressbar" class="progress-bar progress-bar-info">
+                                    </div>
+                                </div>
+
+                                <div class="row btn-group-m-t">
+                                    <div class="col-sm-10">
+                                        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
+                                    </div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="${ctxPath}/static/modular/system/user/user_info.js"></script>
+<script>
+    laydate.render({
+        elem: '#birthday'
+    });
+</script>
+@}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/_fstyle.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/_fstyle.css
new file mode 100644
index 0000000..3b2ded1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/_fstyle.css
@@ -0,0 +1,65 @@
+.button-margin {
+	margin-left: 15px !important;
+}
+
+.input-none-margin {
+	margin: 0px !important;
+}
+
+.btn-margin-left {
+	margin-left: 15px !important;
+}
+
+.table-head {
+	float: left;
+	width: 100%;
+	height: auto;
+}
+
+.head-scu-label {
+	margin-top: 35px;
+}
+
+.head-scu-btn {
+	margin-top: 68px;
+}
+
+.line-margin {
+	margin: 8px 0 !important;
+}
+
+.be-driver-checkbox {
+	margin-top: 7px;
+}
+
+.btn-group-m-t {
+	margin-top: 20px;
+}
+
+.upload-btn {
+	white-space: nowrap;
+}
+
+.tree-box {
+	border-radius: 0px !important;
+	box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2) !important;
+	background: rgb(250, 250, 250) none repeat scroll 0% 0% !important;
+	border: 1px solid rgb(204, 204, 204) !important;
+	overflow-y: scroll !important;
+	overflow-x: auto !important;
+	margin-top: 0px !important;
+	width: 224px !important;
+	max-height: 160px !important;
+	-moz-user-select: none !important;
+}
+.dept-tree {
+	padding:10px
+}
+
+.w-e-text-container{
+	height: 150px !important;
+}
+
+.editorHeight{
+	height: 170px;
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap-rtl.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap-rtl.css
new file mode 100644
index 0000000..30014e6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap-rtl.css
@@ -0,0 +1,1468 @@
+/*******************************************************************************
+ *              bootstrap-rtl (version 3.3.1)
+ *      Author: Morteza Ansarinia (http://github.com/morteza)
+ *  Created on: January 21,2015
+ *     Project: bootstrap-rtl
+ *   Copyright: Unlicensed Public Domain
+ *******************************************************************************/
+
+html {
+  direction: rtl;
+}
+body {
+  direction: rtl;
+}
+.list-unstyled {
+  padding-right: 0;
+  padding-left: initial;
+}
+.list-inline {
+  padding-right: 0;
+  padding-left: initial;
+  margin-right: -5px;
+  margin-left: 0;
+}
+dd {
+  margin-right: 0;
+  margin-left: initial;
+}
+@media (min-width: 768px) {
+  .dl-horizontal dt {
+    float: right;
+    clear: right;
+    text-align: left;
+  }
+  .dl-horizontal dd {
+    margin-right: 180px;
+    margin-left: 0;
+  }
+}
+blockquote {
+  border-right: 5px solid #eeeeee;
+  border-left: 0;
+}
+.blockquote-reverse,
+blockquote.pull-left {
+  padding-left: 15px;
+  padding-right: 0;
+  border-left: 5px solid #eeeeee;
+  border-right: 0;
+  text-align: left;
+}
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+  position: relative;
+  min-height: 1px;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+  float: right;
+}
+.col-xs-12 {
+  width: 100%;
+}
+.col-xs-11 {
+  width: 91.66666667%;
+}
+.col-xs-10 {
+  width: 83.33333333%;
+}
+.col-xs-9 {
+  width: 75%;
+}
+.col-xs-8 {
+  width: 66.66666667%;
+}
+.col-xs-7 {
+  width: 58.33333333%;
+}
+.col-xs-6 {
+  width: 50%;
+}
+.col-xs-5 {
+  width: 41.66666667%;
+}
+.col-xs-4 {
+  width: 33.33333333%;
+}
+.col-xs-3 {
+  width: 25%;
+}
+.col-xs-2 {
+  width: 16.66666667%;
+}
+.col-xs-1 {
+  width: 8.33333333%;
+}
+.col-xs-pull-12 {
+  left: 100%;
+  right: auto;
+}
+.col-xs-pull-11 {
+  left: 91.66666667%;
+  right: auto;
+}
+.col-xs-pull-10 {
+  left: 83.33333333%;
+  right: auto;
+}
+.col-xs-pull-9 {
+  left: 75%;
+  right: auto;
+}
+.col-xs-pull-8 {
+  left: 66.66666667%;
+  right: auto;
+}
+.col-xs-pull-7 {
+  left: 58.33333333%;
+  right: auto;
+}
+.col-xs-pull-6 {
+  left: 50%;
+  right: auto;
+}
+.col-xs-pull-5 {
+  left: 41.66666667%;
+  right: auto;
+}
+.col-xs-pull-4 {
+  left: 33.33333333%;
+  right: auto;
+}
+.col-xs-pull-3 {
+  left: 25%;
+  right: auto;
+}
+.col-xs-pull-2 {
+  left: 16.66666667%;
+  right: auto;
+}
+.col-xs-pull-1 {
+  left: 8.33333333%;
+  right: auto;
+}
+.col-xs-pull-0 {
+  left: auto;
+  right: auto;
+}
+.col-xs-push-12 {
+  right: 100%;
+  left: 0;
+}
+.col-xs-push-11 {
+  right: 91.66666667%;
+  left: 0;
+}
+.col-xs-push-10 {
+  right: 83.33333333%;
+  left: 0;
+}
+.col-xs-push-9 {
+  right: 75%;
+  left: 0;
+}
+.col-xs-push-8 {
+  right: 66.66666667%;
+  left: 0;
+}
+.col-xs-push-7 {
+  right: 58.33333333%;
+  left: 0;
+}
+.col-xs-push-6 {
+  right: 50%;
+  left: 0;
+}
+.col-xs-push-5 {
+  right: 41.66666667%;
+  left: 0;
+}
+.col-xs-push-4 {
+  right: 33.33333333%;
+  left: 0;
+}
+.col-xs-push-3 {
+  right: 25%;
+  left: 0;
+}
+.col-xs-push-2 {
+  right: 16.66666667%;
+  left: 0;
+}
+.col-xs-push-1 {
+  right: 8.33333333%;
+  left: 0;
+}
+.col-xs-push-0 {
+  right: auto;
+  left: 0;
+}
+.col-xs-offset-12 {
+  margin-right: 100%;
+  margin-left: 0;
+}
+.col-xs-offset-11 {
+  margin-right: 91.66666667%;
+  margin-left: 0;
+}
+.col-xs-offset-10 {
+  margin-right: 83.33333333%;
+  margin-left: 0;
+}
+.col-xs-offset-9 {
+  margin-right: 75%;
+  margin-left: 0;
+}
+.col-xs-offset-8 {
+  margin-right: 66.66666667%;
+  margin-left: 0;
+}
+.col-xs-offset-7 {
+  margin-right: 58.33333333%;
+  margin-left: 0;
+}
+.col-xs-offset-6 {
+  margin-right: 50%;
+  margin-left: 0;
+}
+.col-xs-offset-5 {
+  margin-right: 41.66666667%;
+  margin-left: 0;
+}
+.col-xs-offset-4 {
+  margin-right: 33.33333333%;
+  margin-left: 0;
+}
+.col-xs-offset-3 {
+  margin-right: 25%;
+  margin-left: 0;
+}
+.col-xs-offset-2 {
+  margin-right: 16.66666667%;
+  margin-left: 0;
+}
+.col-xs-offset-1 {
+  margin-right: 8.33333333%;
+  margin-left: 0;
+}
+.col-xs-offset-0 {
+  margin-right: 0%;
+  margin-left: 0;
+}
+@media (min-width: 768px) {
+  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+    float: right;
+  }
+  .col-sm-12 {
+    width: 100%;
+  }
+  .col-sm-11 {
+    width: 91.66666667%;
+  }
+  .col-sm-10 {
+    width: 83.33333333%;
+  }
+  .col-sm-9 {
+    width: 75%;
+  }
+  .col-sm-8 {
+    width: 66.66666667%;
+  }
+  .col-sm-7 {
+    width: 58.33333333%;
+  }
+  .col-sm-6 {
+    width: 50%;
+  }
+  .col-sm-5 {
+    width: 41.66666667%;
+  }
+  .col-sm-4 {
+    width: 33.33333333%;
+  }
+  .col-sm-3 {
+    width: 25%;
+  }
+  .col-sm-2 {
+    width: 16.66666667%;
+  }
+  .col-sm-1 {
+    width: 8.33333333%;
+  }
+  .col-sm-pull-12 {
+    left: 100%;
+    right: auto;
+  }
+  .col-sm-pull-11 {
+    left: 91.66666667%;
+    right: auto;
+  }
+  .col-sm-pull-10 {
+    left: 83.33333333%;
+    right: auto;
+  }
+  .col-sm-pull-9 {
+    left: 75%;
+    right: auto;
+  }
+  .col-sm-pull-8 {
+    left: 66.66666667%;
+    right: auto;
+  }
+  .col-sm-pull-7 {
+    left: 58.33333333%;
+    right: auto;
+  }
+  .col-sm-pull-6 {
+    left: 50%;
+    right: auto;
+  }
+  .col-sm-pull-5 {
+    left: 41.66666667%;
+    right: auto;
+  }
+  .col-sm-pull-4 {
+    left: 33.33333333%;
+    right: auto;
+  }
+  .col-sm-pull-3 {
+    left: 25%;
+    right: auto;
+  }
+  .col-sm-pull-2 {
+    left: 16.66666667%;
+    right: auto;
+  }
+  .col-sm-pull-1 {
+    left: 8.33333333%;
+    right: auto;
+  }
+  .col-sm-pull-0 {
+    left: auto;
+    right: auto;
+  }
+  .col-sm-push-12 {
+    right: 100%;
+    left: 0;
+  }
+  .col-sm-push-11 {
+    right: 91.66666667%;
+    left: 0;
+  }
+  .col-sm-push-10 {
+    right: 83.33333333%;
+    left: 0;
+  }
+  .col-sm-push-9 {
+    right: 75%;
+    left: 0;
+  }
+  .col-sm-push-8 {
+    right: 66.66666667%;
+    left: 0;
+  }
+  .col-sm-push-7 {
+    right: 58.33333333%;
+    left: 0;
+  }
+  .col-sm-push-6 {
+    right: 50%;
+    left: 0;
+  }
+  .col-sm-push-5 {
+    right: 41.66666667%;
+    left: 0;
+  }
+  .col-sm-push-4 {
+    right: 33.33333333%;
+    left: 0;
+  }
+  .col-sm-push-3 {
+    right: 25%;
+    left: 0;
+  }
+  .col-sm-push-2 {
+    right: 16.66666667%;
+    left: 0;
+  }
+  .col-sm-push-1 {
+    right: 8.33333333%;
+    left: 0;
+  }
+  .col-sm-push-0 {
+    right: auto;
+    left: 0;
+  }
+  .col-sm-offset-12 {
+    margin-right: 100%;
+    margin-left: 0;
+  }
+  .col-sm-offset-11 {
+    margin-right: 91.66666667%;
+    margin-left: 0;
+  }
+  .col-sm-offset-10 {
+    margin-right: 83.33333333%;
+    margin-left: 0;
+  }
+  .col-sm-offset-9 {
+    margin-right: 75%;
+    margin-left: 0;
+  }
+  .col-sm-offset-8 {
+    margin-right: 66.66666667%;
+    margin-left: 0;
+  }
+  .col-sm-offset-7 {
+    margin-right: 58.33333333%;
+    margin-left: 0;
+  }
+  .col-sm-offset-6 {
+    margin-right: 50%;
+    margin-left: 0;
+  }
+  .col-sm-offset-5 {
+    margin-right: 41.66666667%;
+    margin-left: 0;
+  }
+  .col-sm-offset-4 {
+    margin-right: 33.33333333%;
+    margin-left: 0;
+  }
+  .col-sm-offset-3 {
+    margin-right: 25%;
+    margin-left: 0;
+  }
+  .col-sm-offset-2 {
+    margin-right: 16.66666667%;
+    margin-left: 0;
+  }
+  .col-sm-offset-1 {
+    margin-right: 8.33333333%;
+    margin-left: 0;
+  }
+  .col-sm-offset-0 {
+    margin-right: 0%;
+    margin-left: 0;
+  }
+}
+@media (min-width: 992px) {
+  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+    float: right;
+  }
+  .col-md-12 {
+    width: 100%;
+  }
+  .col-md-11 {
+    width: 91.66666667%;
+  }
+  .col-md-10 {
+    width: 83.33333333%;
+  }
+  .col-md-9 {
+    width: 75%;
+  }
+  .col-md-8 {
+    width: 66.66666667%;
+  }
+  .col-md-7 {
+    width: 58.33333333%;
+  }
+  .col-md-6 {
+    width: 50%;
+  }
+  .col-md-5 {
+    width: 41.66666667%;
+  }
+  .col-md-4 {
+    width: 33.33333333%;
+  }
+  .col-md-3 {
+    width: 25%;
+  }
+  .col-md-2 {
+    width: 16.66666667%;
+  }
+  .col-md-1 {
+    width: 8.33333333%;
+  }
+  .col-md-pull-12 {
+    left: 100%;
+    right: auto;
+  }
+  .col-md-pull-11 {
+    left: 91.66666667%;
+    right: auto;
+  }
+  .col-md-pull-10 {
+    left: 83.33333333%;
+    right: auto;
+  }
+  .col-md-pull-9 {
+    left: 75%;
+    right: auto;
+  }
+  .col-md-pull-8 {
+    left: 66.66666667%;
+    right: auto;
+  }
+  .col-md-pull-7 {
+    left: 58.33333333%;
+    right: auto;
+  }
+  .col-md-pull-6 {
+    left: 50%;
+    right: auto;
+  }
+  .col-md-pull-5 {
+    left: 41.66666667%;
+    right: auto;
+  }
+  .col-md-pull-4 {
+    left: 33.33333333%;
+    right: auto;
+  }
+  .col-md-pull-3 {
+    left: 25%;
+    right: auto;
+  }
+  .col-md-pull-2 {
+    left: 16.66666667%;
+    right: auto;
+  }
+  .col-md-pull-1 {
+    left: 8.33333333%;
+    right: auto;
+  }
+  .col-md-pull-0 {
+    left: auto;
+    right: auto;
+  }
+  .col-md-push-12 {
+    right: 100%;
+    left: 0;
+  }
+  .col-md-push-11 {
+    right: 91.66666667%;
+    left: 0;
+  }
+  .col-md-push-10 {
+    right: 83.33333333%;
+    left: 0;
+  }
+  .col-md-push-9 {
+    right: 75%;
+    left: 0;
+  }
+  .col-md-push-8 {
+    right: 66.66666667%;
+    left: 0;
+  }
+  .col-md-push-7 {
+    right: 58.33333333%;
+    left: 0;
+  }
+  .col-md-push-6 {
+    right: 50%;
+    left: 0;
+  }
+  .col-md-push-5 {
+    right: 41.66666667%;
+    left: 0;
+  }
+  .col-md-push-4 {
+    right: 33.33333333%;
+    left: 0;
+  }
+  .col-md-push-3 {
+    right: 25%;
+    left: 0;
+  }
+  .col-md-push-2 {
+    right: 16.66666667%;
+    left: 0;
+  }
+  .col-md-push-1 {
+    right: 8.33333333%;
+    left: 0;
+  }
+  .col-md-push-0 {
+    right: auto;
+    left: 0;
+  }
+  .col-md-offset-12 {
+    margin-right: 100%;
+    margin-left: 0;
+  }
+  .col-md-offset-11 {
+    margin-right: 91.66666667%;
+    margin-left: 0;
+  }
+  .col-md-offset-10 {
+    margin-right: 83.33333333%;
+    margin-left: 0;
+  }
+  .col-md-offset-9 {
+    margin-right: 75%;
+    margin-left: 0;
+  }
+  .col-md-offset-8 {
+    margin-right: 66.66666667%;
+    margin-left: 0;
+  }
+  .col-md-offset-7 {
+    margin-right: 58.33333333%;
+    margin-left: 0;
+  }
+  .col-md-offset-6 {
+    margin-right: 50%;
+    margin-left: 0;
+  }
+  .col-md-offset-5 {
+    margin-right: 41.66666667%;
+    margin-left: 0;
+  }
+  .col-md-offset-4 {
+    margin-right: 33.33333333%;
+    margin-left: 0;
+  }
+  .col-md-offset-3 {
+    margin-right: 25%;
+    margin-left: 0;
+  }
+  .col-md-offset-2 {
+    margin-right: 16.66666667%;
+    margin-left: 0;
+  }
+  .col-md-offset-1 {
+    margin-right: 8.33333333%;
+    margin-left: 0;
+  }
+  .col-md-offset-0 {
+    margin-right: 0%;
+    margin-left: 0;
+  }
+}
+@media (min-width: 1200px) {
+  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+    float: right;
+  }
+  .col-lg-12 {
+    width: 100%;
+  }
+  .col-lg-11 {
+    width: 91.66666667%;
+  }
+  .col-lg-10 {
+    width: 83.33333333%;
+  }
+  .col-lg-9 {
+    width: 75%;
+  }
+  .col-lg-8 {
+    width: 66.66666667%;
+  }
+  .col-lg-7 {
+    width: 58.33333333%;
+  }
+  .col-lg-6 {
+    width: 50%;
+  }
+  .col-lg-5 {
+    width: 41.66666667%;
+  }
+  .col-lg-4 {
+    width: 33.33333333%;
+  }
+  .col-lg-3 {
+    width: 25%;
+  }
+  .col-lg-2 {
+    width: 16.66666667%;
+  }
+  .col-lg-1 {
+    width: 8.33333333%;
+  }
+  .col-lg-pull-12 {
+    left: 100%;
+    right: auto;
+  }
+  .col-lg-pull-11 {
+    left: 91.66666667%;
+    right: auto;
+  }
+  .col-lg-pull-10 {
+    left: 83.33333333%;
+    right: auto;
+  }
+  .col-lg-pull-9 {
+    left: 75%;
+    right: auto;
+  }
+  .col-lg-pull-8 {
+    left: 66.66666667%;
+    right: auto;
+  }
+  .col-lg-pull-7 {
+    left: 58.33333333%;
+    right: auto;
+  }
+  .col-lg-pull-6 {
+    left: 50%;
+    right: auto;
+  }
+  .col-lg-pull-5 {
+    left: 41.66666667%;
+    right: auto;
+  }
+  .col-lg-pull-4 {
+    left: 33.33333333%;
+    right: auto;
+  }
+  .col-lg-pull-3 {
+    left: 25%;
+    right: auto;
+  }
+  .col-lg-pull-2 {
+    left: 16.66666667%;
+    right: auto;
+  }
+  .col-lg-pull-1 {
+    left: 8.33333333%;
+    right: auto;
+  }
+  .col-lg-pull-0 {
+    left: auto;
+    right: auto;
+  }
+  .col-lg-push-12 {
+    right: 100%;
+    left: 0;
+  }
+  .col-lg-push-11 {
+    right: 91.66666667%;
+    left: 0;
+  }
+  .col-lg-push-10 {
+    right: 83.33333333%;
+    left: 0;
+  }
+  .col-lg-push-9 {
+    right: 75%;
+    left: 0;
+  }
+  .col-lg-push-8 {
+    right: 66.66666667%;
+    left: 0;
+  }
+  .col-lg-push-7 {
+    right: 58.33333333%;
+    left: 0;
+  }
+  .col-lg-push-6 {
+    right: 50%;
+    left: 0;
+  }
+  .col-lg-push-5 {
+    right: 41.66666667%;
+    left: 0;
+  }
+  .col-lg-push-4 {
+    right: 33.33333333%;
+    left: 0;
+  }
+  .col-lg-push-3 {
+    right: 25%;
+    left: 0;
+  }
+  .col-lg-push-2 {
+    right: 16.66666667%;
+    left: 0;
+  }
+  .col-lg-push-1 {
+    right: 8.33333333%;
+    left: 0;
+  }
+  .col-lg-push-0 {
+    right: auto;
+    left: 0;
+  }
+  .col-lg-offset-12 {
+    margin-right: 100%;
+    margin-left: 0;
+  }
+  .col-lg-offset-11 {
+    margin-right: 91.66666667%;
+    margin-left: 0;
+  }
+  .col-lg-offset-10 {
+    margin-right: 83.33333333%;
+    margin-left: 0;
+  }
+  .col-lg-offset-9 {
+    margin-right: 75%;
+    margin-left: 0;
+  }
+  .col-lg-offset-8 {
+    margin-right: 66.66666667%;
+    margin-left: 0;
+  }
+  .col-lg-offset-7 {
+    margin-right: 58.33333333%;
+    margin-left: 0;
+  }
+  .col-lg-offset-6 {
+    margin-right: 50%;
+    margin-left: 0;
+  }
+  .col-lg-offset-5 {
+    margin-right: 41.66666667%;
+    margin-left: 0;
+  }
+  .col-lg-offset-4 {
+    margin-right: 33.33333333%;
+    margin-left: 0;
+  }
+  .col-lg-offset-3 {
+    margin-right: 25%;
+    margin-left: 0;
+  }
+  .col-lg-offset-2 {
+    margin-right: 16.66666667%;
+    margin-left: 0;
+  }
+  .col-lg-offset-1 {
+    margin-right: 8.33333333%;
+    margin-left: 0;
+  }
+  .col-lg-offset-0 {
+    margin-right: 0%;
+    margin-left: 0;
+  }
+}
+caption {
+  text-align: right;
+}
+th {
+  text-align: right;
+}
+@media screen and (max-width: 767px) {
+  .table-responsive > .table-bordered {
+    border: 0;
+  }
+  .table-responsive > .table-bordered > thead > tr > th:first-child,
+  .table-responsive > .table-bordered > tbody > tr > th:first-child,
+  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+  .table-responsive > .table-bordered > thead > tr > td:first-child,
+  .table-responsive > .table-bordered > tbody > tr > td:first-child,
+  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+    border-right: 0;
+    border-left: initial;
+  }
+  .table-responsive > .table-bordered > thead > tr > th:last-child,
+  .table-responsive > .table-bordered > tbody > tr > th:last-child,
+  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+  .table-responsive > .table-bordered > thead > tr > td:last-child,
+  .table-responsive > .table-bordered > tbody > tr > td:last-child,
+  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+    border-left: 0;
+    border-right: initial;
+  }
+}
+.radio label,
+.checkbox label {
+  padding-right: 20px;
+  padding-left: initial;
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+  margin-right: -20px;
+  margin-left: auto;
+}
+.radio-inline,
+.checkbox-inline {
+  padding-right: 20px;
+  padding-left: 0;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+  margin-right: 10px;
+  margin-left: 0;
+}
+.has-feedback .form-control {
+  padding-left: 42.5px;
+  padding-right: 12px;
+}
+.form-control-feedback {
+  left: 0;
+  right: auto;
+}
+@media (min-width: 768px) {
+  .form-inline label {
+    padding-right: 0;
+    padding-left: initial;
+  }
+  .form-inline .radio input[type="radio"],
+  .form-inline .checkbox input[type="checkbox"] {
+    margin-right: 0;
+    margin-left: auto;
+  }
+}
+@media (min-width: 768px) {
+  .form-horizontal .control-label {
+    text-align: left;
+  }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+  left: 15px;
+  right: auto;
+}
+.caret {
+  margin-right: 2px;
+  margin-left: 0;
+}
+.dropdown-menu {
+  right: 0;
+  left: auto;
+  float: left;
+  text-align: right;
+}
+.dropdown-menu.pull-right {
+  left: 0;
+  right: auto;
+  float: right;
+}
+.dropdown-menu-right {
+  left: auto;
+  right: 0;
+}
+.dropdown-menu-left {
+  left: 0;
+  right: auto;
+}
+@media (min-width: 768px) {
+  .navbar-right .dropdown-menu {
+    left: auto;
+    right: 0;
+  }
+  .navbar-right .dropdown-menu-left {
+    left: 0;
+    right: auto;
+  }
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+  float: right;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+  margin-right: -1px;
+  margin-left: 0px;
+}
+.btn-toolbar {
+  margin-right: -5px;
+  margin-left: 0px;
+}
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+  float: right;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+  margin-right: 5px;
+  margin-left: 0px;
+}
+.btn-group > .btn:first-child {
+  margin-right: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.btn-group > .btn-group {
+  float: right;
+}
+.btn-group.btn-group-justified > .btn,
+.btn-group.btn-group-justified > .btn-group {
+  float: none;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
+}
+.btn-group > .btn-group:first-child > .btn:last-child,
+.btn-group > .btn-group:first-child > .dropdown-toggle {
+  border-top-right-radius: 4px;
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group > .btn-group:last-child > .btn:first-child {
+  border-top-left-radius: 4px;
+  border-bottom-left-radius: 4px;
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.btn .caret {
+  margin-right: 0;
+}
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+  margin-top: -1px;
+  margin-right: 0;
+}
+.input-group .form-control {
+  float: right;
+}
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+  border-bottom-right-radius: 4px;
+  border-top-right-radius: 4px;
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.input-group-addon:first-child {
+  border-right-width: 1px;
+  border-right-style: solid;
+  border-left: 0px;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+  border-bottom-left-radius: 4px;
+  border-top-left-radius: 4px;
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.input-group-addon:last-child {
+  border-left-width: 1px;
+  border-left-style: solid;
+  border-right: 0px;
+}
+.input-group-btn > .btn + .btn {
+  margin-right: -1px;
+  margin-left: auto;
+}
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+  margin-left: -1px;
+  margin-right: auto;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+  margin-right: -1px;
+  margin-left: auto;
+}
+.nav {
+  padding-right: 0;
+  padding-left: initial;
+}
+.nav-tabs > li {
+  float: right;
+}
+.nav-tabs > li > a {
+  margin-left: auto;
+  margin-right: -2px;
+  border-radius: 4px 4px 0 0;
+}
+.nav-pills > li {
+  float: right;
+}
+.nav-pills > li > a {
+  border-radius: 4px;
+}
+.nav-pills > li + li {
+  margin-right: 2px;
+  margin-left: auto;
+}
+.nav-stacked > li {
+  float: none;
+}
+.nav-stacked > li + li {
+  margin-right: 0;
+  margin-left: auto;
+}
+.nav-justified > .dropdown .dropdown-menu {
+  right: auto;
+}
+.nav-tabs-justified > li > a {
+  margin-left: 0;
+  margin-right: auto;
+}
+@media (min-width: 768px) {
+  .nav-tabs-justified > li > a {
+    border-radius: 4px 4px 0 0;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-header {
+    float: right;
+  }
+}
+.navbar-collapse {
+  padding-right: 15px;
+  padding-left: 15px;
+}
+.navbar-brand {
+  float: right;
+}
+@media (min-width: 768px) {
+  .navbar > .container .navbar-brand,
+  .navbar > .container-fluid .navbar-brand {
+    margin-right: -15px;
+    margin-left: auto;
+  }
+}
+.navbar-toggle {
+  float: left;
+  margin-left: 15px;
+  margin-right: auto;
+}
+@media (max-width: 767px) {
+  .navbar-nav .open .dropdown-menu > li > a,
+  .navbar-nav .open .dropdown-menu .dropdown-header {
+    padding: 5px 25px 5px 15px;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-nav {
+    float: right;
+  }
+  .navbar-nav > li {
+    float: right;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-left.flip {
+    float: right !important;
+  }
+  .navbar-right:last-child {
+    margin-left: -15px;
+    margin-right: auto;
+  }
+  .navbar-right.flip {
+    float: left !important;
+    margin-left: -15px;
+    margin-right: auto;
+  }
+  .navbar-right .dropdown-menu {
+    left: 0;
+    right: auto;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-text {
+    float: right;
+  }
+  .navbar-text.navbar-right:last-child {
+    margin-left: 0;
+    margin-right: auto;
+  }
+}
+.pagination {
+  padding-right: 0;
+}
+.pagination > li > a,
+.pagination > li > span {
+  float: right;
+  margin-right: -1px;
+  margin-left: 0px;
+}
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+  margin-left: 0;
+  border-bottom-right-radius: 4px;
+  border-top-right-radius: 4px;
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+  margin-right: -1px;
+  border-bottom-left-radius: 4px;
+  border-top-left-radius: 4px;
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.pager {
+  padding-right: 0;
+  padding-left: initial;
+}
+.pager .next > a,
+.pager .next > span {
+  float: left;
+}
+.pager .previous > a,
+.pager .previous > span {
+  float: right;
+}
+.nav-pills > li > a > .badge {
+  margin-left: 0px;
+  margin-right: 3px;
+}
+.list-group-item > .badge {
+  float: left;
+}
+.list-group-item > .badge + .badge {
+  margin-left: 5px;
+  margin-right: auto;
+}
+.alert-dismissable,
+.alert-dismissible {
+  padding-left: 35px;
+  padding-right: 15px;
+}
+.alert-dismissable .close,
+.alert-dismissible .close {
+  right: auto;
+  left: -21px;
+}
+.progress-bar {
+  float: right;
+}
+.media > .pull-left {
+  margin-right: 10px;
+}
+.media > .pull-left.flip {
+  margin-right: 0;
+  margin-left: 10px;
+}
+.media > .pull-right {
+  margin-left: 10px;
+}
+.media > .pull-right.flip {
+  margin-left: 0;
+  margin-right: 10px;
+}
+.media-right,
+.media > .pull-right {
+  padding-right: 10px;
+  padding-left: initial;
+}
+.media-left,
+.media > .pull-left {
+  padding-left: 10px;
+  padding-right: initial;
+}
+.media-list {
+  padding-right: 0;
+  padding-left: initial;
+  list-style: none;
+}
+.list-group {
+  padding-right: 0;
+  padding-left: initial;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+  border-top-right-radius: 3px;
+  border-top-left-radius: 0;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+  border-top-left-radius: 3px;
+  border-top-right-radius: 0;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+  border-bottom-left-radius: 3px;
+  border-top-right-radius: 0;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+  border-bottom-right-radius: 3px;
+  border-top-left-radius: 0;
+}
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+  border-right: 0;
+  border-left: none;
+}
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+  border-right: none;
+  border-left: 0;
+}
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object {
+  right: 0;
+  left: auto;
+}
+.close {
+  float: left;
+}
+.modal-footer {
+  text-align: left;
+}
+.modal-footer .btn + .btn {
+  margin-left: auto;
+  margin-right: 5px;
+}
+.modal-footer .btn-group .btn + .btn {
+  margin-right: -1px;
+  margin-left: auto;
+}
+.modal-footer .btn-block + .btn-block {
+  margin-right: 0;
+  margin-left: auto;
+}
+.popover {
+  left: auto;
+  text-align: right;
+}
+.popover.top > .arrow {
+  right: 50%;
+  left: auto;
+  margin-right: -11px;
+  margin-left: auto;
+}
+.popover.top > .arrow:after {
+  margin-right: -10px;
+  margin-left: auto;
+}
+.popover.bottom > .arrow {
+  right: 50%;
+  left: auto;
+  margin-right: -11px;
+  margin-left: auto;
+}
+.popover.bottom > .arrow:after {
+  margin-right: -10px;
+  margin-left: auto;
+}
+.carousel-control {
+  right: 0;
+  bottom: 0;
+}
+.carousel-control.left {
+  right: auto;
+  left: 0;
+  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));
+  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.carousel-control.right {
+  left: auto;
+  right: 0;
+  background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));
+  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+  left: 50%;
+  right: auto;
+  margin-right: -10px;
+}
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+  right: 50%;
+  left: auto;
+  margin-left: -10px;
+}
+.carousel-indicators {
+  right: 50%;
+  left: 0;
+  margin-right: -30%;
+  margin-left: 0;
+  padding-left: 0;
+}
+@media screen and (min-width: 768px) {
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .icon-prev {
+    margin-left: 0;
+    margin-right: -15px;
+  }
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-next {
+    margin-left: 0;
+    margin-right: -15px;
+  }
+  .carousel-caption {
+    left: 20%;
+    right: 20%;
+    padding-bottom: 30px;
+  }
+}
+.pull-right.flip {
+  float: left !important;
+}
+.pull-left.flip {
+  float: right !important;
+}
+/*# sourceMappingURL=bootstrap-rtl.css.map */
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap.min.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap.min.css
new file mode 100644
index 0000000..f7bca0a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/bootstrap.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.css
new file mode 100644
index 0000000..880eb82
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.css
@@ -0,0 +1,2026 @@
+/*!
+ *  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 PATH
+ * -------------------------- */
+@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;
+}
+/* makes the font 33% larger relative to the icon container */
+.fa-lg {
+  font-size: 1.33333333em;
+  line-height: 0.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: 0.14285714em;
+  text-align: center;
+}
+.fa-li.fa-lg {
+  left: -1.85714286em;
+}
+.fa-border {
+  padding: .2em .25em .15em;
+  border: solid 0.08em #eeeeee;
+  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;
+}
+/* Deprecated as of 4.4.0 */
+.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: #ffffff;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+   readers do not read off random characters that represent icons */
+.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/UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.min.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/font-awesome.min.css
new file mode 100644
index 0000000..ee4e978
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/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/UserOKTravel/guns-admin/src/main/webapp/static/css/login.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/login.css
new file mode 100644
index 0000000..bfe8cb6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/login.css
@@ -0,0 +1,93 @@
+html{height: 100%;}
+body.signin {
+    background: #18c8f6;
+    height: auto;
+    background:url("../img/login-background.jpg") no-repeat center fixed;
+    -webkit-background-size: cover;
+    -moz-background-size: cover;
+    -o-background-size: cover;
+    background-size: cover;
+    color: rgba(255,255,255,.95);
+}
+
+.signinpanel {
+    width: 750px;
+    margin: 10% auto 0 auto;
+}
+
+.signinpanel .logopanel {
+    float: none;
+    width: auto;
+    padding: 0;
+    background: none;
+}
+
+.signinpanel .signin-info ul {
+    list-style: none;
+    padding: 0;
+    margin: 20px 0;
+}
+
+.signinpanel .form-control {
+    display: block;
+    margin-top: 15px;
+}
+
+.signinpanel .uname {
+    background: #fff url(../img/user.png) no-repeat 95% center;color:#333;
+}
+
+.signinpanel .pword {
+    background: #fff url(../img/locked.png) no-repeat 95% center;color:#333;
+}
+
+.signinpanel .btn {
+    margin-top: 15px;
+}
+
+.signinpanel form {
+    background: rgba(255, 255, 255, 0.2);
+    border: 1px solid rgba(255,255,255,.3);
+    -moz-box-shadow: 0 3px 0 rgba(12, 12, 12, 0.03);
+    -webkit-box-shadow: 0 3px 0 rgba(12, 12, 12, 0.03);
+    box-shadow: 0 3px 0 rgba(12, 12, 12, 0.03);
+    -moz-border-radius: 3px;
+    -webkit-border-radius: 3px;
+    border-radius: 3px;
+    padding: 30px;
+}
+
+.signup-footer{border-top: solid 1px rgba(255,255,255,.3);margin:20px 0;padding-top: 15px;}
+
+@media screen and (max-width: 768px) {
+    .signinpanel,
+    .signuppanel {
+        margin: 0 auto;
+        width: 420px!important;
+        padding: 20px;
+    }
+    .signinpanel form {
+        margin-top: 20px;
+    }
+    .signup-footer {
+        margin-bottom: 10px;
+    }
+    .signuppanel .form-control {
+        margin-bottom: 10px;
+    }
+    .signup-footer .pull-left,
+    .signup-footer .pull-right {
+        float: none !important;
+        text-align: center;
+    }
+    .signinpanel .signin-info ul {
+        display: none;
+    }
+}
+@media screen and (max-width: 320px) {
+    .signinpanel,
+    .signuppanel {
+        margin:0 20px;
+        width:auto;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-1.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-1.png
new file mode 100644
index 0000000..41c5c08
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-1.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-3.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-3.png
new file mode 100644
index 0000000..7a80132
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile-skin-3.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile.png
new file mode 100644
index 0000000..7dea7f2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/header-profile.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/shattered.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/shattered.png
new file mode 100644
index 0000000..90ed42b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/patterns/shattered.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-table/bootstrap-table.min.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-table/bootstrap-table.min.css
new file mode 100644
index 0000000..f65b308
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-table/bootstrap-table.min.css
@@ -0,0 +1 @@
+.fixed-table-container .bs-checkbox,.fixed-table-container .no-records-found{text-align:center}.fixed-table-body thead th .th-inner,.table td,.table th{box-sizing:border-box}.bootstrap-table .table{margin-bottom:0!important;border-bottom:1px solid #ddd;border-collapse:collapse!important;border-radius:1px}.bootstrap-table .table:not(.table-condensed),.bootstrap-table .table:not(.table-condensed)>tbody>tr>td,.bootstrap-table .table:not(.table-condensed)>tbody>tr>th,.bootstrap-table .table:not(.table-condensed)>tfoot>tr>td,.bootstrap-table .table:not(.table-condensed)>tfoot>tr>th,.bootstrap-table .table:not(.table-condensed)>thead>tr>td{padding:8px}.bootstrap-table .table.table-no-bordered>tbody>tr>td,.bootstrap-table .table.table-no-bordered>thead>tr>th{border-right:2px solid transparent}.bootstrap-table .table.table-no-bordered>tbody>tr>td:last-child{border-right:none}.fixed-table-container{position:relative;clear:both;border:1px solid #ddd;border-radius:4px;-webkit-border-radius:4px;-moz-border-radius:4px}.fixed-table-container.table-no-bordered{border:1px solid transparent}.fixed-table-footer,.fixed-table-header{overflow:hidden}.fixed-table-footer{border-top:1px solid #ddd}.fixed-table-body{overflow-x:auto;overflow-y:auto;height:100%}.fixed-table-container table{width:100%}.fixed-table-container thead th{height:0;padding:0;margin:0;border-left:1px solid #ddd}.fixed-table-container thead th:focus{outline:transparent solid 0}.fixed-table-container thead th:first-child{border-left:none;border-top-left-radius:4px;-webkit-border-top-left-radius:4px;-moz-border-radius-topleft:4px}.fixed-table-container tbody td .th-inner,.fixed-table-container thead th .th-inner{padding:8px;line-height:24px;vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-table-container thead th .sortable{cursor:pointer;background-position:right;background-repeat:no-repeat;padding-right:30px}.fixed-table-container thead th .both{background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAQAAADYWf5HAAAAkElEQVQoz7X QMQ5AQBCF4dWQSJxC5wwax1Cq1e7BAdxD5SL+Tq/QCM1oNiJidwox0355mXnG/DrEtIQ6azioNZQxI0ykPhTQIwhCR+BmBYtlK7kLJYwWCcJA9M4qdrZrd8pPjZWPtOqdRQy320YSV17OatFC4euts6z39GYMKRPCTKY9UnPQ6P+GtMRfGtPnBCiqhAeJPmkqAAAAAElFTkSuQmCC')}.fixed-table-container thead th .asc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZ0lEQVQ4y2NgGLKgquEuFxBPAGI2ahhWCsS/gDibUoO0gPgxEP8H4ttArEyuQYxAPBdqEAxPBImTY5gjEL9DM+wTENuQahAvEO9DMwiGdwAxOymGJQLxTyD+jgWDxCMZRsEoGAVoAADeemwtPcZI2wAAAABJRU5ErkJggg==)}.fixed-table-container thead th .desc{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAZUlEQVQ4y2NgGAWjYBSggaqGu5FA/BOIv2PBIPFEUgxjB+IdQPwfC94HxLykus4GiD+hGfQOiB3J8SojEE9EM2wuSJzcsFMG4ttQgx4DsRalkZENxL+AuJQaMcsGxBOAmGvopk8AVz1sLZgg0bsAAAAASUVORK5CYII=)}.fixed-table-container th.detail{width:30px}.fixed-table-container tbody td{border-left:1px solid #ddd}.fixed-table-container tbody tr:first-child td{border-top:none}.fixed-table-container tbody td:first-child{border-left:none}.fixed-table-container tbody .selected td{background-color:#f5f5f5}.fixed-table-container .bs-checkbox .th-inner{padding:8px 0}.fixed-table-container input[type=radio],.fixed-table-container input[type=checkbox]{margin:0 auto!important}.fixed-table-pagination .pagination-detail,.fixed-table-pagination div.pagination{margin-top:10px;margin-bottom:10px}.fixed-table-pagination div.pagination .pagination{margin:0}.fixed-table-pagination .pagination a{padding:6px 12px;line-height:1.428571429}.fixed-table-pagination .pagination-info{line-height:34px;margin-right:5px}.fixed-table-pagination .btn-group{position:relative;display:inline-block;vertical-align:middle}.fixed-table-pagination .dropup .dropdown-menu{margin-bottom:0}.fixed-table-pagination .page-list{display:inline-block}.fixed-table-toolbar .columns-left{margin-right:5px}.fixed-table-toolbar .columns-right{margin-left:5px}.fixed-table-toolbar .columns label{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.428571429}.fixed-table-toolbar .bs-bars,.fixed-table-toolbar .columns,.fixed-table-toolbar .search{position:relative;margin-top:10px;margin-bottom:10px;line-height:34px}.fixed-table-pagination li.disabled a{pointer-events:none;cursor:default}.fixed-table-loading{display:none;position:absolute;top:42px;right:0;bottom:0;left:0;z-index:99;background-color:#fff;text-align:center}.fixed-table-body .card-view .title{font-weight:700;display:inline-block;min-width:30%;text-align:left!important}.table td,.table th{vertical-align:middle}.fixed-table-toolbar .dropdown-menu{text-align:left;max-height:300px;overflow:auto}.fixed-table-toolbar .btn-group>.btn-group{display:inline-block;margin-left:-1px!important}.fixed-table-toolbar .btn-group>.btn-group>.btn{border-radius:0}.fixed-table-toolbar .btn-group>.btn-group:first-child>.btn{border-top-left-radius:4px;border-bottom-left-radius:4px}.fixed-table-toolbar .btn-group>.btn-group:last-child>.btn{border-top-right-radius:4px;border-bottom-right-radius:4px}.bootstrap-table .table>thead>tr>th{vertical-align:bottom;border-bottom:1px solid #ddd}.bootstrap-table .table thead>tr>th{padding:0;margin:0}.bootstrap-table .fixed-table-footer tbody>tr>td{padding:0!important}.bootstrap-table .fixed-table-footer .table{border-bottom:none;border-radius:0;padding:0!important}.bootstrap-table .pull-right .dropdown-menu{right:0;left:auto}p.fixed-table-scroll-inner{width:100%;height:200px}div.fixed-table-scroll-outer{top:0;left:0;visibility:hidden;width:200px;height:150px;overflow:hidden}.fixed-table-pagination:after,.fixed-table-toolbar:after{content:"";display:block;clear:both}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css
new file mode 100644
index 0000000..ab08de5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/bootstrap-treetable/bootstrap-treetable.css
@@ -0,0 +1,10 @@
+.treetable-indent {width:16px; height: 16px; display: inline-block; position: relative;}
+.treetable-expander {width:16px; height: 16px; display: inline-block; position: relative; cursor: pointer;}
+.treetable-selected{background: #f5f5f5 !important;}
+.treetable-table{border:0 !important;margin-bottom:0}
+.treetable-table tbody {display:block;height:auto;overflow-y:auto;}
+.treetable-table thead, .treetable-table tbody tr {display:table;width:100%;table-layout:fixed;}
+.treetable-thead th{line-height:40px;border: 0 !important;background:#fff !important;border-radius: 4px;border-left:1px solid #e7eaec !important;border-bottom:2px solid #e7eaec !important;text-align: center;}
+.treetable-thead tr :first-child{border-left:0 !important}
+.treetable-tbody td{border: 0 !important;border-left:1px solid #e7eaec !important;border-bottom:1px solid #e7eaec !important;}
+.treetable-tbody tr :first-child{border-left:0 !important}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite.png
new file mode 100644
index 0000000..3611ae4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite@2x.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite@2x.png
new file mode 100644
index 0000000..ffe4d7d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen-sprite@2x.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen.css
new file mode 100644
index 0000000..edd6767
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/chosen/chosen.css
@@ -0,0 +1,423 @@
+/*!
+Chosen, a Select Box Enhancer for jQuery and Prototype
+by Patrick Filler for Harvest, http://getharvest.com
+
+Version 1.1.0
+Full source at https://github.com/harvesthq/chosen
+Copyright (c) 2011 Harvest http://getharvest.com
+
+MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
+This file is generated by `grunt build`, do not edit it by hand.
+*/
+
+/* @group Base */
+.chosen-container {
+    position: relative;
+    display: inline-block;
+    vertical-align: middle;
+    font-size: 13px;
+    zoom: 1;
+    *display: inline;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    user-select: none;
+}
+.chosen-container .chosen-drop {
+    position: absolute;
+    top: 100%;
+    left: -9999px;
+    z-index: 1010;
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    width: 100%;
+    border: 1px solid #aaa;
+    border-top: 0;
+    background: #fff;
+    box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
+}
+.chosen-container.chosen-with-drop .chosen-drop {
+    left: 0;
+}
+.chosen-container a {
+    cursor: pointer;
+}
+
+/* @end */
+/* @group Single Chosen */
+.chosen-container-single .chosen-single {
+    position: relative;
+    display: block;
+    overflow: hidden;
+    padding: 0 0 0 8px;
+    height: 23px;
+    border: 1px solid #aaa;
+    border-radius: 5px;
+    background-color: #fff;
+    background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
+    background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
+    background-clip: padding-box;
+    box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
+    color: #444;
+    text-decoration: none;
+    white-space: nowrap;
+    line-height: 24px;
+}
+.chosen-container-single .chosen-default {
+    color: #999;
+}
+.chosen-container-single .chosen-single span {
+    display: block;
+    overflow: hidden;
+    margin-right: 26px;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+}
+.chosen-container-single .chosen-single-with-deselect span {
+    margin-right: 38px;
+}
+.chosen-container-single .chosen-single abbr {
+    position: absolute;
+    top: 6px;
+    right: 26px;
+    display: block;
+    width: 12px;
+    height: 12px;
+    background: url('chosen-sprite.png') -42px 1px no-repeat;
+    font-size: 1px;
+}
+.chosen-container-single .chosen-single abbr:hover {
+    background-position: -42px -10px;
+}
+.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
+    background-position: -42px -10px;
+}
+.chosen-container-single .chosen-single div {
+    position: absolute;
+    top: 0;
+    right: 0;
+    display: block;
+    width: 18px;
+    height: 100%;
+}
+.chosen-container-single .chosen-single div b {
+    display: block;
+    width: 100%;
+    height: 100%;
+    background: url('chosen-sprite.png') no-repeat 0px 7px;
+}
+.chosen-container-single .chosen-search {
+    position: relative;
+    z-index: 1010;
+    margin: 0;
+    padding: 3px 4px;
+    white-space: nowrap;
+}
+.chosen-container-single .chosen-search input[type="text"] {
+    -webkit-box-sizing: border-box;
+    -moz-box-sizing: border-box;
+    box-sizing: border-box;
+    margin: 1px 0;
+    padding: 4px 20px 4px 5px;
+    width: 100%;
+    height: auto;
+    outline: 0;
+    border: 1px solid #aaa;
+    background: white url('chosen-sprite.png') no-repeat 100% -20px;
+    background: url('chosen-sprite.png') no-repeat 100% -20px;
+    font-size: 1em;
+    font-family: sans-serif;
+    line-height: normal;
+    border-radius: 0;
+}
+.chosen-container-single .chosen-drop {
+    margin-top: -1px;
+    border-radius: 0 0 4px 4px;
+    background-clip: padding-box;
+}
+.chosen-container-single.chosen-container-single-nosearch .chosen-search {
+    position: absolute;
+    left: -9999px;
+}
+
+/* @end */
+/* @group Results */
+.chosen-container .chosen-results {
+    position: relative;
+    overflow-x: hidden;
+    overflow-y: auto;
+    margin: 0 4px 4px 0;
+    padding: 0 0 0 4px;
+    max-height: 240px;
+    -webkit-overflow-scrolling: touch;
+}
+.chosen-container .chosen-results li {
+    display: none;
+    margin: 0;
+    padding: 5px 6px;
+    list-style: none;
+    line-height: 15px;
+    -webkit-touch-callout: none;
+}
+.chosen-container .chosen-results li.active-result {
+    display: list-item;
+    cursor: pointer;
+}
+.chosen-container .chosen-results li.disabled-result {
+    display: list-item;
+    color: #ccc;
+    cursor: default;
+}
+.chosen-container .chosen-results li.highlighted {
+    background-color: #3875d7;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
+    background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
+    background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
+    background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
+    background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
+    color: #fff;
+}
+.chosen-container .chosen-results li.no-results {
+    display: list-item;
+    background: #f4f4f4;
+}
+.chosen-container .chosen-results li.group-result {
+    display: list-item;
+    font-weight: bold;
+    cursor: default;
+}
+.chosen-container .chosen-results li.group-option {
+    padding-left: 15px;
+}
+.chosen-container .chosen-results li em {
+    font-style: normal;
+    text-decoration: underline;
+}
+
+/* @end */
+/* @group Multi Chosen */
+.chosen-container-multi .chosen-choices {
+    -moz-box-sizing: border-box;
+    background-color: #FFFFFF;
+    border: 1px solid #CBD5DD;
+    border-radius: 2px;
+    cursor: text;
+    height: auto !important;
+    margin: 0;
+    min-height: 30px;
+    overflow: hidden;
+    padding: 2px;
+    position: relative;
+    width: 100%;
+}
+.chosen-container-multi .chosen-choices li {
+    float: left;
+    list-style: none;
+}
+.chosen-container-multi .chosen-choices li.search-field {
+    margin: 0;
+    padding: 0;
+    white-space: nowrap;
+}
+.chosen-container-multi .chosen-choices li.search-field input[type="text"] {
+    margin: 1px 0;
+    padding: 5px;
+    height: 25px;
+    outline: 0;
+    border: 0 !important;
+    background: transparent !important;
+    box-shadow: none;
+    color: #666;
+    font-size: 100%;
+    font-family: sans-serif;
+    line-height: normal;
+    border-radius: 0;
+}
+.chosen-container-multi .chosen-choices li.search-field .default {
+    color: #999;
+}
+.chosen-container-multi .chosen-choices li.search-choice {
+    position: relative;
+    margin: 3px 0 3px 5px;
+    padding: 3px 20px 3px 5px;
+    border: 1px solid #aaa;
+    border-radius: 3px;
+    background-color: #e4e4e4;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+    background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-clip: padding-box;
+    box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
+    color: #333;
+    line-height: 13px;
+    cursor: default;
+}
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
+    position: absolute;
+    top: 4px;
+    right: 3px;
+    display: block;
+    width: 12px;
+    height: 12px;
+    background: url('chosen-sprite.png') -42px 1px no-repeat;
+    font-size: 1px;
+}
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
+    background-position: -42px -10px;
+}
+.chosen-container-multi .chosen-choices li.search-choice-disabled {
+    padding-right: 5px;
+    border: 1px solid #ccc;
+    background-color: #e4e4e4;
+    background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
+    background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
+    color: #666;
+}
+.chosen-container-multi .chosen-choices li.search-choice-focus {
+    background: #d4d4d4;
+}
+.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
+    background-position: -42px -10px;
+}
+.chosen-container-multi .chosen-results {
+    margin: 0;
+    padding: 0;
+}
+.chosen-container-multi .chosen-drop .result-selected {
+    display: list-item;
+    color: #ccc;
+    cursor: default;
+}
+
+/* @end */
+/* @group Active  */
+.chosen-container-active .chosen-single {
+    border: 1px solid #5897fb;
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+}
+.chosen-container-active.chosen-with-drop .chosen-single {
+    border: 1px solid #aaa;
+    -moz-border-radius-bottomright: 0;
+    border-bottom-right-radius: 0;
+    -moz-border-radius-bottomleft: 0;
+    border-bottom-left-radius: 0;
+}
+.chosen-container-active.chosen-with-drop .chosen-single div {
+    border-left: none;
+    background: transparent;
+}
+.chosen-container-active.chosen-with-drop .chosen-single div b {
+    background-position: -18px 7px;
+}
+.chosen-container-active .chosen-choices {
+    border: 1px solid #5897fb;
+    box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+}
+.chosen-container-active .chosen-choices li.search-field input[type="text"] {
+    color: #111 !important;
+}
+
+/* @end */
+/* @group Disabled Support */
+.chosen-disabled {
+    opacity: 0.5 !important;
+    cursor: default;
+}
+.chosen-disabled .chosen-single {
+    cursor: default;
+}
+.chosen-disabled .chosen-choices .search-choice .search-choice-close {
+    cursor: default;
+}
+
+/* @end */
+/* @group Right to Left */
+.chosen-rtl {
+    text-align: right;
+}
+.chosen-rtl .chosen-single {
+    overflow: visible;
+    padding: 0 8px 0 0;
+}
+.chosen-rtl .chosen-single span {
+    margin-right: 0;
+    margin-left: 26px;
+    direction: rtl;
+}
+.chosen-rtl .chosen-single-with-deselect span {
+    margin-left: 38px;
+}
+.chosen-rtl .chosen-single div {
+    right: auto;
+    left: 3px;
+}
+.chosen-rtl .chosen-single abbr {
+    right: auto;
+    left: 26px;
+}
+.chosen-rtl .chosen-choices li {
+    float: right;
+}
+.chosen-rtl .chosen-choices li.search-field input[type="text"] {
+    direction: rtl;
+}
+.chosen-rtl .chosen-choices li.search-choice {
+    margin: 3px 5px 3px 0;
+    padding: 3px 5px 3px 19px;
+}
+.chosen-rtl .chosen-choices li.search-choice .search-choice-close {
+    right: auto;
+    left: 4px;
+}
+.chosen-rtl.chosen-container-single-nosearch .chosen-search,
+.chosen-rtl .chosen-drop {
+    left: 9999px;
+}
+.chosen-rtl.chosen-container-single .chosen-results {
+    margin: 0 0 4px 4px;
+    padding: 0 4px 0 0;
+}
+.chosen-rtl .chosen-results li.group-option {
+    padding-right: 15px;
+    padding-left: 0;
+}
+.chosen-rtl.chosen-container-active.chosen-with-drop .chosen-single div {
+    border-right: none;
+}
+.chosen-rtl .chosen-search input[type="text"] {
+    padding: 4px 5px 4px 20px;
+    background: white url('chosen-sprite.png') no-repeat -30px -20px;
+    background: url('chosen-sprite.png') no-repeat -30px -20px;
+    direction: rtl;
+}
+.chosen-rtl.chosen-container-single .chosen-single div b {
+    background-position: 6px 2px;
+}
+.chosen-rtl.chosen-container-single.chosen-with-drop .chosen-single div b {
+    background-position: -12px 2px;
+}
+
+/* @end */
+/* @group Retina compatibility */
+@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
+    .chosen-rtl .chosen-search input[type="text"],
+    .chosen-container-single .chosen-single abbr,
+    .chosen-container-single .chosen-single div b,
+    .chosen-container-single .chosen-search input[type="text"],
+    .chosen-container-multi .chosen-choices .search-choice .search-choice-close,
+    .chosen-container .chosen-results-scroll-down span,
+    .chosen-container .chosen-results-scroll-up span {
+        background-image: url('chosen-sprite@2x.png') !important;
+        background-size: 52px 37px !important;
+        background-repeat: no-repeat !important;
+    }
+}
+/* @end */
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/custom.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/custom.css
new file mode 100644
index 0000000..84e950b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/custom.css
@@ -0,0 +1,59 @@
+/* iCheck plugin Square skin, green
+----------------------------------- */
+.icheckbox_square-green,
+.iradio_square-green {
+    display: inline-block;
+    *display: inline;
+    vertical-align: middle;
+    margin: 0;
+    padding: 0;
+    width: 22px;
+    height: 22px;
+    background: url(green.png) no-repeat;
+    border: none;
+    cursor: pointer;
+}
+
+.icheckbox_square-green {
+    background-position: 0 0;
+}
+.icheckbox_square-green.hover {
+    background-position: -24px 0;
+}
+.icheckbox_square-green.checked {
+    background-position: -48px 0;
+}
+.icheckbox_square-green.disabled {
+    background-position: -72px 0;
+    cursor: default;
+}
+.icheckbox_square-green.checked.disabled {
+    background-position: -96px 0;
+}
+
+.iradio_square-green {
+    background-position: -120px 0;
+}
+.iradio_square-green.hover {
+    background-position: -144px 0;
+}
+.iradio_square-green.checked {
+    background-position: -168px 0;
+}
+.iradio_square-green.disabled {
+    background-position: -192px 0;
+    cursor: default;
+}
+.iradio_square-green.checked.disabled {
+    background-position: -216px 0;
+}
+
+/* HiDPI support */
+@media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {
+    .icheckbox_square-green,
+    .iradio_square-green {
+        background-image: url(green@2x.png);
+        -webkit-background-size: 240px 24px;
+        background-size: 240px 24px;
+    }
+}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green.png
new file mode 100644
index 0000000..cf62300
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green@2x.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green@2x.png
new file mode 100644
index 0000000..3bda5be
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/iCheck/green@2x.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/images/sprite-skin-flat.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/images/sprite-skin-flat.png
new file mode 100644
index 0000000..8356fc5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/images/sprite-skin-flat.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/validate/bootstrapValidator.min.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/validate/bootstrapValidator.min.css
new file mode 100644
index 0000000..62d7b59
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/validate/bootstrapValidator.min.css
@@ -0,0 +1,12 @@
+/*!
+ * BootstrapValidator (http://bootstrapvalidator.com)
+ * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
+ *
+ * @version     v0.5.3, built on 2014-11-05 9:14:18 PM
+ * @author      https://twitter.com/nghuuphuoc
+ * @copyright   (c) 2013 - 2014 Nguyen Huu Phuoc
+ * @license     Commercial: http://bootstrapvalidator.com/license/
+ *              Non-commercial: http://creativecommons.org/licenses/by-nc-nd/3.0/
+ */
+
+.bv-form .help-block{margin-bottom:0}.bv-form .tooltip-inner{text-align:left}.nav-tabs li.bv-tab-success>a{color:#3c763d}.nav-tabs li.bv-tab-error>a{color:#a94442}.bv-form .bv-icon-no-label{top:0}.bv-form .bv-icon-input-group{top:0;z-index:100}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/webuploader/webuploader.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/webuploader/webuploader.css
new file mode 100644
index 0000000..f445e0d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/webuploader/webuploader.css
@@ -0,0 +1,30 @@
+.webuploader-container {
+	position: relative;
+}
+.webuploader-element-invisible {
+	position: absolute !important;
+	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+    clip: rect(1px,1px,1px,1px);
+}
+.webuploader-pick {
+	position: relative;
+	display: inline-block;
+	cursor: pointer;
+	background: #1ab394;
+	padding: 6px 12px;
+	color: #fff;
+	text-align: center;
+	border-radius: 3px;
+	overflow: hidden;
+	font-size: 14px;
+    font-weight: 400;
+}
+.webuploader-pick-hover {
+	background: #18ab8d;
+}
+
+.webuploader-pick-disable {
+	opacity: 0.6;
+	pointer-events:none;
+}
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/demo.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/demo.css
new file mode 100644
index 0000000..f6dba0d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/demo.css
@@ -0,0 +1,33 @@
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td {
+	margin: 0;padding: 0;border: 0;outline: 0;font-weight: inherit;font-style: inherit;font-size: 100%;font-family: inherit;vertical-align: baseline;}
+body {color: #2f332a;font: 15px/21px Arial, Helvetica, simsun, sans-serif;background: #f0f6e4 \9;}
+h1, h2, h3, h4, h5, h6 {color: #2f332a;font-weight: bold;font-family: Helvetica, Arial, sans-serif;padding-bottom: 5px;}
+h1 {font-size: 24px;line-height: 34px;text-align: center;}
+h2 {font-size: 14px;line-height: 24px;padding-top: 5px;}
+h6 {font-weight: normal;font-size: 12px;letter-spacing: 1px;line-height: 24px;text-align: center;}
+a {color:#3C6E31;text-decoration: underline;}
+a:hover {background-color:#3C6E31;color:white;}
+input.radio {margin: 0 2px 0 8px;}
+input.radio.first {margin-left:0;}
+input.empty {color: lightgray;}
+code {color: #2f332a;}
+.highlight_red {color:#A60000;}
+.highlight_green {color:#A7F43D;}
+li {list-style: circle;font-size: 12px;}
+li.title {list-style: none;}
+ul.list {margin-left: 17px;}
+
+div.content_wrap {width: 600px;height:380px;}
+div.content_wrap div.left{float: left;width: 250px;}
+div.content_wrap div.right{float: right;width: 340px;}
+div.zTreeDemoBackground {width:250px;height:362px;text-align:left;}
+
+ul.ztree {margin-top: 10px;border: 1px solid #617775;background: #f0f6e4;width:220px;height:360px;overflow-y:scroll;overflow-x:auto;}
+ul.log {border: 1px solid #617775;background: #f0f6e4;width:300px;height:170px;overflow: hidden;}
+ul.log.small {height:45px;}
+ul.log li {color: #666666;list-style: none;padding-left: 10px;}
+ul.log li.dark {background-color: #E3E3E3;}
+
+/* ruler */
+div.ruler {height:20px; width:220px; background-color:#f0f6e4;border: 1px solid #333; margin-bottom: 5px; cursor: pointer}
+div.ruler div.cursor {height:20px; width:30px; background-color:#3C6E31; color:white; text-align: right; padding-right: 5px; cursor: pointer}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png
new file mode 100644
index 0000000..68ccb3c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_close.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png
new file mode 100644
index 0000000..d6ff36d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/1_open.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/2.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/2.png
new file mode 100644
index 0000000..9eff506
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/2.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/3.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/3.png
new file mode 100644
index 0000000..d7ba6d0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/3.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/4.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/4.png
new file mode 100644
index 0000000..753e2bf
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/4.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/5.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/5.png
new file mode 100644
index 0000000..0c5eccd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/5.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/6.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/6.png
new file mode 100644
index 0000000..070b835
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/6.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/7.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/7.png
new file mode 100644
index 0000000..532b037
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/7.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/8.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/8.png
new file mode 100644
index 0000000..a8f3a86
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/8.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/9.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/9.png
new file mode 100644
index 0000000..4db73cd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/diy/9.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif
new file mode 100644
index 0000000..d561d36
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/line_conn.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/loading.gif b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/loading.gif
new file mode 100644
index 0000000..e8c2892
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/loading.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif
new file mode 100644
index 0000000..50c94fd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png
new file mode 100644
index 0000000..ffda01e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/img/zTreeStandard.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/zTreeStyle.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/zTreeStyle.css
new file mode 100644
index 0000000..4a1705b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/plugins/ztree/zTreeStyle.css
@@ -0,0 +1,97 @@
+/*-------------------------------------
+zTree Style
+
+version:	3.5.19
+author:		Hunter.z
+email:		hunter.z@263.net
+website:	http://code.google.com/p/jquerytree/
+
+-------------------------------------*/
+
+.ztree * {padding:0; margin:0; font-size:12px; font-family: Verdana, Arial, Helvetica, AppleGothic, sans-serif}
+.ztree {margin:0; padding:5px; color:#333}
+.ztree li{padding:0; margin:0; list-style:none; line-height:14px; text-align:left; white-space:nowrap; outline:0}
+.ztree li ul{ margin:0; padding:0 0 0 18px}
+.ztree li ul.line{ background:url(./img/line_conn.gif) 0 0 repeat-y;}
+
+.ztree li a {padding:1px 3px 0 0; margin:0; cursor:pointer; height:17px; color:#333; background-color: transparent;
+	text-decoration:none; vertical-align:top; display: inline-block}
+.ztree li a:hover {text-decoration:underline}
+.ztree li a.curSelectedNode {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
+.ztree li a.curSelectedNode_Edit {padding-top:0px; background-color:#FFE6B0; color:black; height:16px; border:1px #FFB951 solid; opacity:0.8;}
+.ztree li a.tmpTargetNode_inner {padding-top:0px; background-color:#316AC5; color:white; height:16px; border:1px #316AC5 solid;
+	opacity:0.8; filter:alpha(opacity=80)}
+.ztree li a.tmpTargetNode_prev {}
+.ztree li a.tmpTargetNode_next {}
+.ztree li a input.rename {height:14px; width:80px; padding:0; margin:0;
+	font-size:12px; border:1px #7EC4CC solid; *border:0px}
+.ztree li span {line-height:16px; margin-right:2px}
+.ztree li span.button {line-height:0; margin:0; width:16px; height:16px; display: inline-block; vertical-align:middle;
+	border:0 none; cursor: pointer;outline:none;
+	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
+	background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
+
+.ztree li span.button.chk {width:13px; height:13px; margin:0 3px 0 0; cursor: auto}
+.ztree li span.button.chk.checkbox_false_full {background-position:0 0}
+.ztree li span.button.chk.checkbox_false_full_focus {background-position:0 -14px}
+.ztree li span.button.chk.checkbox_false_part {background-position:0 -28px}
+.ztree li span.button.chk.checkbox_false_part_focus {background-position:0 -42px}
+.ztree li span.button.chk.checkbox_false_disable {background-position:0 -56px}
+.ztree li span.button.chk.checkbox_true_full {background-position:-14px 0}
+.ztree li span.button.chk.checkbox_true_full_focus {background-position:-14px -14px}
+.ztree li span.button.chk.checkbox_true_part {background-position:-14px -28px}
+.ztree li span.button.chk.checkbox_true_part_focus {background-position:-14px -42px}
+.ztree li span.button.chk.checkbox_true_disable {background-position:-14px -56px}
+.ztree li span.button.chk.radio_false_full {background-position:-28px 0}
+.ztree li span.button.chk.radio_false_full_focus {background-position:-28px -14px}
+.ztree li span.button.chk.radio_false_part {background-position:-28px -28px}
+.ztree li span.button.chk.radio_false_part_focus {background-position:-28px -42px}
+.ztree li span.button.chk.radio_false_disable {background-position:-28px -56px}
+.ztree li span.button.chk.radio_true_full {background-position:-42px 0}
+.ztree li span.button.chk.radio_true_full_focus {background-position:-42px -14px}
+.ztree li span.button.chk.radio_true_part {background-position:-42px -28px}
+.ztree li span.button.chk.radio_true_part_focus {background-position:-42px -42px}
+.ztree li span.button.chk.radio_true_disable {background-position:-42px -56px}
+
+.ztree li span.button.switch {width:18px; height:18px}
+.ztree li span.button.root_open{background-position:-92px -54px}
+.ztree li span.button.root_close{background-position:-74px -54px}
+.ztree li span.button.roots_open{background-position:-92px 0}
+.ztree li span.button.roots_close{background-position:-74px 0}
+.ztree li span.button.center_open{background-position:-92px -18px}
+.ztree li span.button.center_close{background-position:-74px -18px}
+.ztree li span.button.bottom_open{background-position:-92px -36px}
+.ztree li span.button.bottom_close{background-position:-74px -36px}
+.ztree li span.button.noline_open{background-position:-92px -72px}
+.ztree li span.button.noline_close{background-position:-74px -72px}
+.ztree li span.button.root_docu{ background:none;}
+.ztree li span.button.roots_docu{background-position:-56px 0}
+.ztree li span.button.center_docu{background-position:-56px -18px}
+.ztree li span.button.bottom_docu{background-position:-56px -36px}
+.ztree li span.button.noline_docu{ background:none;}
+
+.ztree li span.button.ico_open{margin-right:2px; background-position:-110px -16px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.ico_close{margin-right:2px; background-position:-110px 0; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.ico_docu{margin-right:2px; background-position:-110px -32px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.edit {margin-right:2px; background-position:-110px -48px; vertical-align:top; *vertical-align:middle}
+.ztree li span.button.remove {margin-right:2px; background-position:-110px -64px; vertical-align:top; *vertical-align:middle}
+
+.ztree li span.button.ico_loading{margin-right:2px; background:url(./img/loading.gif) no-repeat scroll 0 0 transparent; vertical-align:top; *vertical-align:middle}
+
+ul.tmpTargetzTree {background-color:#FFE6B0; opacity:0.8; filter:alpha(opacity=80)}
+
+span.tmpzTreeMove_arrow {width:16px; height:16px; display: inline-block; padding:0; margin:2px 0 0 1px; border:0 none; position:absolute;
+	background-color:transparent; background-repeat:no-repeat; background-attachment: scroll;
+	background-position:-110px -80px; background-image:url("./img/zTreeStandard.png"); *background-image:url("./img/zTreeStandard.gif")}
+
+ul.ztree.zTreeDragUL {margin:0; padding:0; position:absolute; width:auto; height:auto;overflow:hidden; background-color:#cfcfcf; border:1px #00B83F dotted; opacity:0.8; filter:alpha(opacity=80)}
+.zTreeMask {z-index:10000; background-color:#cfcfcf; opacity:0.0; filter:alpha(opacity=0); position:absolute}
+
+/* level style*/
+/*.ztree li span.button.level0 {
+	display:none;
+}
+.ztree li ul.level0 {
+	padding:0;
+	background:none;
+}*/
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/css/style.css b/UserOKTravel/guns-admin/src/main/webapp/static/css/style.css
new file mode 100644
index 0000000..198d105
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/css/style.css
@@ -0,0 +1,7897 @@
+/*
+ *
+ *   H+ - 后台主题UI框架
+ *   version 4.0
+ *
+*/
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    font-weight: 100;
+}
+
+h1 {
+    font-size: 30px;
+}
+
+h2 {
+    font-size: 24px;
+}
+
+h3 {
+    font-size: 16px;
+}
+
+h4 {
+    font-size: 14px;
+}
+
+h5 {
+    font-size: 12px;
+}
+
+h6 {
+    font-size: 10px;
+}
+
+h3,
+h4,
+h5 {
+    margin-top: 5px;
+    font-weight: 600;
+}
+
+a:focus {
+    outline: none;
+}
+
+.nav > li > a {
+    color: #a7b1c2;
+    font-weight: 600;
+    padding: 14px 20px 14px 25px;
+}
+
+.nav li>a {
+    display: block;
+    /*white-space: nowrap;*/
+}
+
+.nav.navbar-right > li > a {
+    color: #999c9e;
+}
+
+.nav > li.active > a {
+    color: #ffffff;
+}
+
+.navbar-default .nav > li > a:hover,
+.navbar-default .nav > li > a:focus {
+    background-color: #293846;
+    color: white;
+}
+
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+    background: #fff;
+}
+
+.nav > li > a i {
+    margin-right: 6px;
+}
+
+.navbar {
+    border: 0;
+}
+
+.navbar-default {
+    background-color: transparent;
+    border-color: #2f4050;
+    position: relative;
+}
+
+.navbar-top-links li {
+    display: inline-block;
+}
+
+.navbar-top-links li:last-child {
+    margin-right: 30px;
+}
+
+body.body-small .navbar-top-links li:last-child {
+    margin-right: 10px;
+}
+
+.navbar-top-links li a {
+    padding: 20px 10px;
+    min-height: 50px;
+}
+
+.dropdown-menu {
+    border: medium none;
+    display: none;
+    float: left;
+    font-size: 12px;
+    left: 0;
+    list-style: none outside none;
+    padding: 0;
+    position: absolute;
+    text-shadow: none;
+    top: 100%;
+    z-index: 1000;
+    border-radius: 0;
+    box-shadow: 0 0 3px rgba(86, 96, 117, 0.3);
+}
+
+.dropdown-menu > li > a {
+    border-radius: 3px;
+    color: inherit;
+    line-height: 25px;
+    margin: 4px;
+    text-align: left;
+    font-weight: normal;
+}
+
+.dropdown-menu > li > a.font-bold {
+    font-weight: 600;
+}
+
+.navbar-top-links .dropdown-menu li {
+    display: block;
+}
+
+.navbar-top-links .dropdown-menu li:last-child {
+    margin-right: 0;
+}
+
+.navbar-top-links .dropdown-menu li a {
+    padding: 3px 20px;
+    min-height: 0;
+}
+
+.navbar-top-links .dropdown-menu li a div {
+    white-space: normal;
+}
+
+.navbar-top-links .dropdown-messages,
+.navbar-top-links .dropdown-tasks,
+.navbar-top-links .dropdown-alerts {
+    width: 310px;
+    min-width: 0;
+}
+
+.navbar-top-links .dropdown-messages {
+    margin-left: 5px;
+}
+
+.navbar-top-links .dropdown-tasks {
+    margin-left: -59px;
+}
+
+.navbar-top-links .dropdown-alerts {
+    margin-left: -123px;
+}
+
+.navbar-top-links .dropdown-user {
+    right: 0;
+    left: auto;
+}
+
+.dropdown-messages,
+.dropdown-alerts {
+    padding: 10px 10px 10px 10px;
+}
+
+.dropdown-messages li a,
+.dropdown-alerts li a {
+    font-size: 12px;
+}
+
+.dropdown-messages li em,
+.dropdown-alerts li em {
+    font-size: 10px;
+}
+
+.nav.navbar-top-links .dropdown-alerts a {
+    font-size: 12px;
+}
+
+.nav-header {
+    padding: 33px 25px;
+    background: url("patterns/header-profile.png") no-repeat;
+}
+
+.pace-done .nav-header {
+    -webkit-transition: all 0.5s;
+    transition: all 0.5s;
+}
+
+.nav > li.active {
+    border-left: 4px solid #19aa8d;
+    background: #293846;
+}
+
+.nav.nav-second-level > li.active {
+    border: none;
+}
+
+.nav.nav-second-level.collapse[style] {
+    height: auto !important;
+}
+
+.nav-header a {
+    color: #DFE4ED;
+}
+
+.nav-header .text-muted {
+    color: #8095a8;
+}
+
+.minimalize-styl-2 {
+    padding: 4px 12px;
+    margin: 14px 5px 5px 20px;
+    font-size: 14px;
+    float: left;
+}
+
+.navbar-form-custom {
+    float: left;
+    height: 50px;
+    padding: 0;
+    width: 200px;
+    display: inline-table;
+}
+
+.navbar-form-custom .form-group {
+    margin-bottom: 0;
+}
+
+.nav.navbar-top-links a {
+    font-size: 14px;
+}
+
+.navbar-form-custom .form-control {
+    background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
+    border: medium none;
+    font-size: 14px;
+    height: 60px;
+    margin: 0;
+    z-index: 2000;
+}
+
+.count-info .label {
+    line-height: 12px;
+    padding: 1px 5px;
+    position: absolute;
+    right: 6px;
+    top: 12px;
+}
+
+.arrow {
+    float: right;
+    margin-top: 2px;
+}
+
+.fa.arrow:before {
+    content: "\f104";
+}
+
+.active > a > .fa.arrow:before {
+    content: "\f107";
+}
+
+.nav-second-level li,
+.nav-third-level li {
+    border-bottom: none !important;
+}
+
+.nav-second-level li a {
+    padding: 7px 15px 7px 10px;
+    padding-left: 52px;
+}
+
+.nav-third-level li a {
+    padding-left: 62px;
+}
+
+.nav-second-level li:last-child {
+    margin-bottom: 10px;
+}
+
+body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav li:hover > .nav-second-level,
+.mini-navbar .nav li:focus > .nav-second-level {
+    display: block;
+    border-radius: 0 2px 2px 0;
+    min-width: 140px;
+    height: auto;
+}
+
+body.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
+    font-size: 12px;
+    border-radius: 0 2px 2px 0;
+}
+
+.fixed-nav .slimScrollDiv #side-menu {
+    padding-bottom: 60px;
+    position: relative;
+}
+
+.slimScrollDiv >* {
+    overflow: hidden;
+}
+
+.mini-navbar .nav-second-level li a {
+    padding: 10px 10px 10px 15px;
+}
+
+.canvas-menu.mini-navbar .nav-second-level {
+    background: #293846;
+}
+
+.mini-navbar li.active .nav-second-level {
+    left: 65px;
+}
+
+.navbar-default .special_link a {
+    background: #1ab394;
+    color: white;
+}
+
+.navbar-default .special_link a:hover {
+    background: #17987e !important;
+    color: white;
+}
+
+.navbar-default .special_link a span.label {
+    background: #fff;
+    color: #1ab394;
+}
+
+.navbar-default .landing_link a {
+    background: #1cc09f;
+    color: white;
+}
+
+.navbar-default .landing_link a:hover {
+    background: #1ab394 !important;
+    color: white;
+}
+
+.navbar-default .landing_link a span.label {
+    background: #fff;
+    color: #1cc09f;
+}
+
+.logo-element {
+    text-align: center;
+    font-size: 18px;
+    font-weight: 600;
+    color: white;
+    display: none;
+    padding: 18px 0;
+}
+
+.pace-done .navbar-static-side,
+.pace-done .nav-header,
+.pace-done li.active,
+.pace-done #page-wrapper,
+.pace-done .footer {
+    -webkit-transition: all 0.5s;
+    transition: all 0.5s;
+}
+
+.navbar-fixed-top {
+    background: #fff;
+    -webkit-transition-duration: 0.5s;
+    transition-duration: 0.5s;
+    z-index: 2030;
+}
+
+.navbar-fixed-top,
+.navbar-static-top {
+    background: #f3f3f4;
+}
+
+.fixed-nav #wrapper {
+    padding-top: 60px;
+    box-sizing: border-box;
+}
+
+.fixed-nav .minimalize-styl-2 {
+    margin: 14px 5px 5px 15px;
+}
+
+.body-small .navbar-fixed-top {
+    margin-left: 0px;
+}
+
+body.mini-navbar .navbar-static-side {
+    width: 70px;
+}
+
+body.mini-navbar .profile-element,
+body.mini-navbar .nav-label,
+body.mini-navbar .navbar-default .nav li a span {
+    display: none;
+}
+
+body.canvas-menu .profile-element {
+    display: block;
+}
+
+body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav-second-level {
+    display: none;
+}
+
+body.mini-navbar .navbar-default .nav > li > a {
+    font-size: 16px;
+}
+
+body.mini-navbar .logo-element {
+    display: block;
+}
+
+body.canvas-menu .logo-element {
+    display: none;
+}
+
+body.mini-navbar .nav-header {
+    padding: 0;
+    background-color: #1ab394;
+}
+
+body.canvas-menu .nav-header {
+    padding: 33px 25px;
+}
+
+body.mini-navbar #page-wrapper {
+    margin: 0 0 0 70px;
+}
+
+body.canvas-menu.mini-navbar #page-wrapper,
+body.canvas-menu.mini-navbar .footer {
+    margin: 0 0 0 0;
+}
+
+body.fixed-sidebar .navbar-static-side,
+body.canvas-menu .navbar-static-side {
+    position: fixed;
+    width: 220px;
+    z-index: 2001;
+    height: 100%;
+}
+
+body.fixed-sidebar.mini-navbar .navbar-static-side {
+    width: 70px;
+}
+
+body.fixed-sidebar.mini-navbar #page-wrapper {
+    margin: 0 0 0 70px;
+}
+
+body.body-small.fixed-sidebar.mini-navbar #page-wrapper {
+    margin: 0 0 0 70px;
+}
+
+body.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
+    width: 70px;
+}
+
+.fixed-sidebar.mini-navbar .nav li> .nav-second-level {
+    display: none;
+}
+
+.fixed-sidebar.mini-navbar .nav li.active {
+    border-left-width: 0;
+}
+
+.fixed-sidebar.mini-navbar .nav li:hover > .nav-second-level,
+.canvas-menu.mini-navbar .nav li:hover > .nav-second-level {
+    position: absolute;
+    left: 70px;
+    top: 0px;
+    background-color: #2f4050;
+    padding: 10px 10px 0 10px;
+    font-size: 12px;
+    display: block;
+    min-width: 140px;
+    border-radius: 2px;
+}
+
+body.fixed-sidebar.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
+    font-size: 12px;
+    border-radius: 3px;
+}
+
+body.canvas-menu.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
+    font-size: 13px;
+    border-radius: 3px;
+}
+
+.fixed-sidebar.mini-navbar .nav-second-level li a,
+.canvas-menu.mini-navbar .nav-second-level li a {
+    padding: 10px 10px 10px 15px;
+}
+
+.fixed-sidebar.mini-navbar .nav-second-level,
+.canvas-menu.mini-navbar .nav-second-level {
+    position: relative;
+    padding: 0;
+    font-size: 13px;
+}
+
+.fixed-sidebar.mini-navbar li.active .nav-second-level,
+.canvas-menu.mini-navbar li.active .nav-second-level {
+    left: 0px;
+}
+
+body.canvas-menu nav.navbar-static-side {
+    z-index: 2001;
+    background: #2f4050;
+    height: 100%;
+    position: fixed;
+    display: none;
+}
+
+body.canvas-menu.mini-navbar nav.navbar-static-side {
+    display: block;
+    width: 70px;
+}
+
+.top-navigation #page-wrapper {
+    margin-left: 0;
+}
+
+.top-navigation .navbar-nav .dropdown-menu > .active > a {
+    background: white;
+    color: #1ab394;
+    font-weight: bold;
+}
+
+.white-bg .navbar-fixed-top,
+.white-bg .navbar-static-top {
+    background: #fff;
+}
+
+.top-navigation .navbar {
+    margin-bottom: 0;
+}
+
+.top-navigation .nav > li > a {
+    padding: 15px 20px;
+    color: #676a6c;
+}
+
+.top-navigation .nav > li a:hover,
+.top-navigation .nav > li a:focus {
+    background: #fff;
+    color: #1ab394;
+}
+
+.top-navigation .nav > li.active {
+    background: #fff;
+    border: none;
+}
+
+.top-navigation .nav > li.active > a {
+    color: #1ab394;
+}
+
+.top-navigation .navbar-right {
+    padding-right: 10px;
+}
+
+.top-navigation .navbar-nav .dropdown-menu {
+    box-shadow: none;
+    border: 1px solid #e7eaec;
+}
+
+.top-navigation .dropdown-menu > li > a {
+    margin: 0;
+    padding: 7px 20px;
+}
+
+.navbar .dropdown-menu {
+    margin-top: 0px;
+}
+
+.top-navigation .navbar-brand {
+    background: #1ab394;
+    color: #fff;
+    padding: 15px 25px;
+}
+
+.top-navigation .navbar-top-links li:last-child {
+    margin-right: 0;
+}
+
+.top-navigation.mini-navbar #page-wrapper,
+.top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper,
+.mini-navbar .top-navigation #page-wrapper,
+.body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper,
+.canvas-menu #page-wrapper {
+    margin: 0;
+}
+
+.top-navigation.fixed-nav #wrapper,
+.fixed-nav #wrapper.top-navigation {
+    margin-top: 50px;
+}
+
+.top-navigation .footer.fixed {
+    margin-left: 0 !important;
+}
+
+.top-navigation .wrapper.wrapper-content {
+    padding: 40px;
+}
+
+.top-navigation.body-small .wrapper.wrapper-content,
+.body-small .top-navigation .wrapper.wrapper-content {
+    padding: 40px 0px 40px 0px;
+}
+
+.navbar-toggle {
+    background-color: #1ab394;
+    color: #fff;
+    padding: 6px 12px;
+    font-size: 14px;
+}
+
+.top-navigation .navbar-nav .open .dropdown-menu > li > a,
+.top-navigation .navbar-nav .open .dropdown-menu .dropdown-header {
+    padding: 10px 15px 10px 20px;
+}
+
+@media (max-width: 768px) {
+    .top-navigation .navbar-header {
+        display: block;
+        float: none;
+    }
+}
+
+.menu-visible-lg,
+.menu-visible-md {
+    display: none !important;
+}
+
+@media (min-width: 1200px) {
+    .menu-visible-lg {
+        display: block !important;
+    }
+}
+
+@media (min-width: 992px) {
+    .menu-visible-md {
+        display: block !important;
+    }
+}
+
+@media (max-width: 767px) {
+    .menu-visible-md {
+        display: block !important;
+    }
+    .menu-visible-lg {
+        display: block !important;
+    }
+}
+
+.btn {
+    border-radius: 3px;
+}
+
+.float-e-margins .btn {
+    margin-bottom: 5px;
+}
+
+.btn-w-m {
+    min-width: 120px;
+}
+
+.btn-primary.btn-outline {
+    color: #1ab394;
+}
+
+.btn-success.btn-outline {
+    color: #1c84c6;
+}
+
+.btn-info.btn-outline {
+    color: #23c6c8;
+}
+
+.btn-warning.btn-outline {
+    color: #f8ac59;
+}
+
+.btn-danger.btn-outline {
+    color: #ed5565;
+}
+
+.btn-primary.btn-outline:hover,
+.btn-success.btn-outline:hover,
+.btn-info.btn-outline:hover,
+.btn-warning.btn-outline:hover,
+.btn-danger.btn-outline:hover {
+    color: #fff;
+}
+
+.btn-primary {
+    background-color: #1ab394;
+    border-color: #1ab394;
+    color: #FFFFFF;
+}
+
+.btn-primary:hover,
+.btn-primary:focus,
+.btn-primary:active,
+.btn-primary.active,
+.open .dropdown-toggle.btn-primary {
+    background-color: #18a689;
+    border-color: #18a689;
+    color: #FFFFFF;
+}
+
+.btn-primary:active,
+.btn-primary.active,
+.open .dropdown-toggle.btn-primary {
+    background-image: none;
+}
+
+.btn-primary.disabled,
+.btn-primary.disabled:hover,
+.btn-primary.disabled:focus,
+.btn-primary.disabled:active,
+.btn-primary.disabled.active,
+.btn-primary[disabled],
+.btn-primary[disabled]:hover,
+.btn-primary[disabled]:focus,
+.btn-primary[disabled]:active,
+.btn-primary.active[disabled],
+fieldset[disabled] .btn-primary,
+fieldset[disabled] .btn-primary:hover,
+fieldset[disabled] .btn-primary:focus,
+fieldset[disabled] .btn-primary:active,
+fieldset[disabled] .btn-primary.active {
+    background-color: #1dc5a3;
+    border-color: #1dc5a3;
+}
+
+.btn-success {
+    background-color: #1c84c6;
+    border-color: #1c84c6;
+    color: #FFFFFF;
+}
+
+.btn-success:hover,
+.btn-success:focus,
+.btn-success:active,
+.btn-success.active,
+.open .dropdown-toggle.btn-success {
+    background-color: #1a7bb9;
+    border-color: #1a7bb9;
+    color: #FFFFFF;
+}
+
+.btn-success:active,
+.btn-success.active,
+.open .dropdown-toggle.btn-success {
+    background-image: none;
+}
+
+.btn-success.disabled,
+.btn-success.disabled:hover,
+.btn-success.disabled:focus,
+.btn-success.disabled:active,
+.btn-success.disabled.active,
+.btn-success[disabled],
+.btn-success[disabled]:hover,
+.btn-success[disabled]:focus,
+.btn-success[disabled]:active,
+.btn-success.active[disabled],
+fieldset[disabled] .btn-success,
+fieldset[disabled] .btn-success:hover,
+fieldset[disabled] .btn-success:focus,
+fieldset[disabled] .btn-success:active,
+fieldset[disabled] .btn-success.active {
+    background-color: #1f90d8;
+    border-color: #1f90d8;
+}
+
+.btn-info {
+    background-color: #23c6c8;
+    border-color: #23c6c8;
+    color: #FFFFFF;
+}
+
+.btn-info:hover,
+.btn-info:focus,
+.btn-info:active,
+.btn-info.active,
+.open .dropdown-toggle.btn-info {
+    background-color: #21b9bb;
+    border-color: #21b9bb;
+    color: #FFFFFF;
+}
+
+.btn-info:active,
+.btn-info.active,
+.open .dropdown-toggle.btn-info {
+    background-image: none;
+}
+
+.btn-info.disabled,
+.btn-info.disabled:hover,
+.btn-info.disabled:focus,
+.btn-info.disabled:active,
+.btn-info.disabled.active,
+.btn-info[disabled],
+.btn-info[disabled]:hover,
+.btn-info[disabled]:focus,
+.btn-info[disabled]:active,
+.btn-info.active[disabled],
+fieldset[disabled] .btn-info,
+fieldset[disabled] .btn-info:hover,
+fieldset[disabled] .btn-info:focus,
+fieldset[disabled] .btn-info:active,
+fieldset[disabled] .btn-info.active {
+    background-color: #26d7d9;
+    border-color: #26d7d9;
+}
+
+.btn-default {
+    background-color: #c2c2c2;
+    border-color: #c2c2c2;
+    color: #FFFFFF;
+}
+
+.btn-default:hover,
+.btn-default:focus,
+.btn-default:active,
+.btn-default.active,
+.open .dropdown-toggle.btn-default {
+    background-color: #bababa;
+    border-color: #bababa;
+    color: #FFFFFF;
+}
+
+.btn-default:active,
+.btn-default.active,
+.open .dropdown-toggle.btn-default {
+    background-image: none;
+}
+
+.btn-default.disabled,
+.btn-default.disabled:hover,
+.btn-default.disabled:focus,
+.btn-default.disabled:active,
+.btn-default.disabled.active,
+.btn-default[disabled],
+.btn-default[disabled]:hover,
+.btn-default[disabled]:focus,
+.btn-default[disabled]:active,
+.btn-default.active[disabled],
+fieldset[disabled] .btn-default,
+fieldset[disabled] .btn-default:hover,
+fieldset[disabled] .btn-default:focus,
+fieldset[disabled] .btn-default:active,
+fieldset[disabled] .btn-default.active {
+    background-color: #cccccc;
+    border-color: #cccccc;
+}
+
+.btn-warning {
+    background-color: #f8ac59;
+    border-color: #f8ac59;
+    color: #FFFFFF;
+}
+
+.btn-warning:hover,
+.btn-warning:focus,
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+    background-color: #f7a54a;
+    border-color: #f7a54a;
+    color: #FFFFFF;
+}
+
+.btn-warning:active,
+.btn-warning.active,
+.open .dropdown-toggle.btn-warning {
+    background-image: none;
+}
+
+.btn-warning.disabled,
+.btn-warning.disabled:hover,
+.btn-warning.disabled:focus,
+.btn-warning.disabled:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled],
+.btn-warning[disabled]:hover,
+.btn-warning[disabled]:focus,
+.btn-warning[disabled]:active,
+.btn-warning.active[disabled],
+fieldset[disabled] .btn-warning,
+fieldset[disabled] .btn-warning:hover,
+fieldset[disabled] .btn-warning:focus,
+fieldset[disabled] .btn-warning:active,
+fieldset[disabled] .btn-warning.active {
+    background-color: #f9b66d;
+    border-color: #f9b66d;
+}
+
+.btn-danger {
+    background-color: #ed5565;
+    border-color: #ed5565;
+    color: #FFFFFF;
+}
+
+.btn-danger:hover,
+.btn-danger:focus,
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+    background-color: #ec4758;
+    border-color: #ec4758;
+    color: #FFFFFF;
+}
+
+.btn-danger:active,
+.btn-danger.active,
+.open .dropdown-toggle.btn-danger {
+    background-image: none;
+}
+
+.btn-danger.disabled,
+.btn-danger.disabled:hover,
+.btn-danger.disabled:focus,
+.btn-danger.disabled:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled],
+.btn-danger[disabled]:hover,
+.btn-danger[disabled]:focus,
+.btn-danger[disabled]:active,
+.btn-danger.active[disabled],
+fieldset[disabled] .btn-danger,
+fieldset[disabled] .btn-danger:hover,
+fieldset[disabled] .btn-danger:focus,
+fieldset[disabled] .btn-danger:active,
+fieldset[disabled] .btn-danger.active {
+    background-color: #ef6776;
+    border-color: #ef6776;
+}
+
+.btn-link {
+    color: inherit;
+}
+
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active,
+.btn-link.active,
+.open .dropdown-toggle.btn-link {
+    color: #1ab394;
+    text-decoration: none;
+}
+
+.btn-link:active,
+.btn-link.active,
+.open .dropdown-toggle.btn-link {
+    background-image: none;
+}
+
+.btn-link.disabled,
+.btn-link.disabled:hover,
+.btn-link.disabled:focus,
+.btn-link.disabled:active,
+.btn-link.disabled.active,
+.btn-link[disabled],
+.btn-link[disabled]:hover,
+.btn-link[disabled]:focus,
+.btn-link[disabled]:active,
+.btn-link.active[disabled],
+fieldset[disabled] .btn-link,
+fieldset[disabled] .btn-link:hover,
+fieldset[disabled] .btn-link:focus,
+fieldset[disabled] .btn-link:active,
+fieldset[disabled] .btn-link.active {
+    color: #cacaca;
+}
+
+.btn-white {
+    color: inherit;
+    background: white;
+    border: 1px solid #e7eaec;
+}
+
+.btn-white:hover,
+.btn-white:focus,
+.btn-white:active,
+.btn-white.active,
+.open .dropdown-toggle.btn-white {
+    color: inherit;
+    border: 1px solid #d2d2d2;
+}
+
+.btn-white:active,
+.btn-white.active {
+    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.15) inset;
+}
+
+.btn-white:active,
+.btn-white.active,
+.open .dropdown-toggle.btn-white {
+    background-image: none;
+}
+
+.btn-white.disabled,
+.btn-white.disabled:hover,
+.btn-white.disabled:focus,
+.btn-white.disabled:active,
+.btn-white.disabled.active,
+.btn-white[disabled],
+.btn-white[disabled]:hover,
+.btn-white[disabled]:focus,
+.btn-white[disabled]:active,
+.btn-white.active[disabled],
+fieldset[disabled] .btn-white,
+fieldset[disabled] .btn-white:hover,
+fieldset[disabled] .btn-white:focus,
+fieldset[disabled] .btn-white:active,
+fieldset[disabled] .btn-white.active {
+    color: #cacaca;
+}
+
+.form-control,
+.form-control:focus,
+.has-error .form-control:focus,
+.has-success .form-control:focus,
+.has-warning .form-control:focus,
+.navbar-collapse,
+.navbar-form,
+.navbar-form-custom .form-control:focus,
+.navbar-form-custom .form-control:hover,
+.open .btn.dropdown-toggle,
+.panel,
+.popover,
+.progress,
+.progress-bar {
+    box-shadow: none;
+}
+
+.btn-outline {
+    color: inherit;
+    background-color: transparent;
+    -webkit-transition: all .5s;
+    transition: all .5s;
+}
+
+.btn-rounded {
+    border-radius: 50px;
+}
+
+.btn-large-dim {
+    width: 90px;
+    height: 90px;
+    font-size: 42px;
+}
+
+button.dim {
+    display: inline-block;
+    color: #fff;
+    text-decoration: none;
+    text-transform: uppercase;
+    text-align: center;
+    padding-top: 6px;
+    margin-right: 10px;
+    position: relative;
+    cursor: pointer;
+    border-radius: 5px;
+    font-weight: 600;
+    margin-bottom: 20px !important;
+}
+
+button.dim:active {
+    top: 3px;
+}
+
+button.btn-primary.dim {
+    box-shadow: inset 0px 0px 0px #16987e, 0px 5px 0px 0px #16987e, 0px 10px 5px #999999;
+}
+
+button.btn-primary.dim:active {
+    box-shadow: inset 0px 0px 0px #16987e, 0px 2px 0px 0px #16987e, 0px 5px 3px #999999;
+}
+
+button.btn-default.dim {
+    box-shadow: inset 0px 0px 0px #b3b3b3, 0px 5px 0px 0px #b3b3b3, 0px 10px 5px #999999;
+}
+
+button.btn-default.dim:active {
+    box-shadow: inset 0px 0px 0px #b3b3b3, 0px 2px 0px 0px #b3b3b3, 0px 5px 3px #999999;
+}
+
+button.btn-warning.dim {
+    box-shadow: inset 0px 0px 0px #f79d3c, 0px 5px 0px 0px #f79d3c, 0px 10px 5px #999999;
+}
+
+button.btn-warning.dim:active {
+    box-shadow: inset 0px 0px 0px #f79d3c, 0px 2px 0px 0px #f79d3c, 0px 5px 3px #999999;
+}
+
+button.btn-info.dim {
+    box-shadow: inset 0px 0px 0px #1eacae, 0px 5px 0px 0px #1eacae, 0px 10px 5px #999999;
+}
+
+button.btn-info.dim:active {
+    box-shadow: inset 0px 0px 0px #1eacae, 0px 2px 0px 0px #1eacae, 0px 5px 3px #999999;
+}
+
+button.btn-success.dim {
+    box-shadow: inset 0px 0px 0px #1872ab, 0px 5px 0px 0px #1872ab, 0px 10px 5px #999999;
+}
+
+button.btn-success.dim:active {
+    box-shadow: inset 0px 0px 0px #1872ab, 0px 2px 0px 0px #1872ab, 0px 5px 3px #999999;
+}
+
+button.btn-danger.dim {
+    box-shadow: inset 0px 0px 0px #ea394c, 0px 5px 0px 0px #ea394c, 0px 10px 5px #999999;
+}
+
+button.btn-danger.dim:active {
+    box-shadow: inset 0px 0px 0px #ea394c, 0px 2px 0px 0px #ea394c, 0px 5px 3px #999999;
+}
+
+button.dim:before {
+    font-size: 50px;
+    line-height: 1em;
+    font-weight: normal;
+    color: #fff;
+    display: block;
+    padding-top: 10px;
+}
+
+button.dim:active:before {
+    top: 7px;
+    font-size: 50px;
+}
+
+.label {
+    background-color: #d1dade;
+    color: #5e5e5e;
+    font-size: 10px;
+    font-weight: 600;
+    padding: 3px 8px;
+    text-shadow: none;
+}
+
+.badge {
+    background-color: #d1dade;
+    color: #5e5e5e;
+    font-size: 11px;
+    font-weight: 600;
+    padding-bottom: 4px;
+    padding-left: 6px;
+    padding-right: 6px;
+    text-shadow: none;
+}
+
+.label-primary,
+.badge-primary {
+    background-color: #1ab394;
+    color: #FFFFFF;
+}
+
+.label-success,
+.badge-success {
+    background-color: #1c84c6;
+    color: #FFFFFF;
+}
+
+.label-warning,
+.badge-warning {
+    background-color: #f8ac59;
+    color: #FFFFFF;
+}
+
+.label-warning-light,
+.badge-warning-light {
+    background-color: #f8ac59;
+    color: #ffffff;
+}
+
+.label-danger,
+.badge-danger {
+    background-color: #ed5565;
+    color: #FFFFFF;
+}
+
+.label-info,
+.badge-info {
+    background-color: #23c6c8;
+    color: #FFFFFF;
+}
+
+.label-inverse,
+.badge-inverse {
+    background-color: #262626;
+    color: #FFFFFF;
+}
+
+.label-white,
+.badge-white {
+    background-color: #FFFFFF;
+    color: #5E5E5E;
+}
+
+.label-white,
+.badge-disable {
+    background-color: #2A2E36;
+    color: #8B91A0;
+}
+
+
+/* TOOGLE SWICH */
+
+.onoffswitch {
+    position: relative;
+    width: 64px;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+}
+
+.onoffswitch-checkbox {
+    display: none;
+}
+
+.onoffswitch-label {
+    display: block;
+    overflow: hidden;
+    cursor: pointer;
+    border: 2px solid #1ab394;
+    border-radius: 2px;
+}
+
+.onoffswitch-inner {
+    width: 200%;
+    margin-left: -100%;
+    -webkit-transition: margin 0.3s ease-in 0s;
+    transition: margin 0.3s ease-in 0s;
+}
+
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+    float: left;
+    width: 50%;
+    height: 20px;
+    padding: 0;
+    line-height: 20px;
+    font-size: 12px;
+    color: white;
+    font-family: Trebuchet, Arial, sans-serif;
+    font-weight: bold;
+    box-sizing: border-box;
+}
+
+.onoffswitch-inner:before {
+    content: "ON";
+    padding-left: 10px;
+    background-color: #1ab394;
+    color: #FFFFFF;
+}
+
+.onoffswitch-inner:after {
+    content: "OFF";
+    padding-right: 10px;
+    background-color: #FFFFFF;
+    color: #999999;
+    text-align: right;
+}
+
+.onoffswitch-switch {
+    width: 20px;
+    margin: 0px;
+    background: #FFFFFF;
+    border: 2px solid #1ab394;
+    border-radius: 2px;
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    right: 44px;
+    -webkit-transition: all 0.3s ease-in 0s;
+    transition: all 0.3s ease-in 0s;
+}
+
+.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
+    margin-left: 0;
+}
+
+.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
+    right: 0px;
+}
+
+
+/* CHOSEN PLUGIN */
+
+.chosen-container-single .chosen-single {
+    background: #ffffff;
+    box-shadow: none;
+    -moz-box-sizing: border-box;
+    background-color: #FFFFFF;
+    border: 1px solid #CBD5DD;
+    border-radius: 2px;
+    cursor: text;
+    height: auto !important;
+    margin: 0;
+    min-height: 30px;
+    overflow: hidden;
+    padding: 4px 12px;
+    position: relative;
+    width: 100%;
+}
+
+.chosen-container-multi .chosen-choices li.search-choice {
+    background: #f1f1f1;
+    border: 1px solid #ededed;
+    border-radius: 2px;
+    box-shadow: none;
+    color: #333333;
+    cursor: default;
+    line-height: 13px;
+    margin: 3px 0 3px 5px;
+    padding: 3px 20px 3px 5px;
+    position: relative;
+}
+
+
+/* PAGINATIN */
+
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+    background-color: #f4f4f4;
+    border-color: #DDDDDD;
+    color: inherit;
+    cursor: default;
+    z-index: 2;
+}
+
+.pagination > li > a,
+.pagination > li > span {
+    background-color: #FFFFFF;
+    border: 1px solid #DDDDDD;
+    color: inherit;
+    float: left;
+    line-height: 1.42857;
+    margin-left: -1px;
+    padding: 4px 10px;
+    position: relative;
+    text-decoration: none;
+}
+
+
+/* TOOLTIPS */
+
+.tooltip-inner {
+    background-color: #2F4050;
+}
+
+.tooltip.top .tooltip-arrow {
+    border-top-color: #2F4050;
+}
+
+.tooltip.right .tooltip-arrow {
+    border-right-color: #2F4050;
+}
+
+.tooltip.bottom .tooltip-arrow {
+    border-bottom-color: #2F4050;
+}
+
+.tooltip.left .tooltip-arrow {
+    border-left-color: #2F4050;
+}
+
+
+/* EASY PIE CHART*/
+
+.easypiechart {
+    position: relative;
+    text-align: center;
+}
+
+.easypiechart .h2 {
+    margin-left: 10px;
+    margin-top: 10px;
+    display: inline-block;
+}
+
+.easypiechart canvas {
+    top: 0;
+    left: 0;
+}
+
+.easypiechart .easypie-text {
+    line-height: 1;
+    position: absolute;
+    top: 33px;
+    width: 100%;
+    z-index: 1;
+}
+
+.easypiechart img {
+    margin-top: -4px;
+}
+
+.jqstooltip {
+    box-sizing: content-box;
+}
+
+
+/* FULLCALENDAR */
+
+.fc-state-default {
+    background-color: #ffffff;
+    background-image: none;
+    background-repeat: repeat-x;
+    box-shadow: none;
+    color: #333333;
+    text-shadow: none;
+}
+
+.fc-state-default {
+    border: 1px solid;
+}
+
+.fc-button {
+    color: inherit;
+    border: 1px solid #e7eaec;
+    cursor: pointer;
+    display: inline-block;
+    height: 1.9em;
+    line-height: 1.9em;
+    overflow: hidden;
+    padding: 0 0.6em;
+    position: relative;
+    white-space: nowrap;
+}
+
+.fc-state-active {
+    background-color: #1ab394;
+    border-color: #1ab394;
+    color: #ffffff;
+}
+
+.fc-header-title h2 {
+    font-size: 16px;
+    font-weight: 600;
+    color: inherit;
+}
+
+.fc-content .fc-widget-header,
+.fc-content .fc-widget-content {
+    border-color: #e7eaec;
+    font-weight: normal;
+}
+
+.fc-border-separate tbody {
+    background-color: #F8F8F8;
+}
+
+.fc-state-highlight {
+    background: none repeat scroll 0 0 #FCF8E3;
+}
+
+.external-event {
+    padding: 5px 10px;
+    border-radius: 2px;
+    cursor: pointer;
+    margin-bottom: 5px;
+}
+
+.fc-ltr .fc-event-hori.fc-event-end,
+.fc-rtl .fc-event-hori.fc-event-start {
+    border-radius: 2px;
+}
+
+.fc-event,
+.fc-agenda .fc-event-time,
+.fc-event a {
+    padding: 4px 6px;
+    background-color: #1ab394;
+    /* background color */
+    border-color: #1ab394;
+    /* border color */
+}
+
+.fc-event-time,
+.fc-event-title {
+    color: #717171;
+    padding: 0 1px;
+}
+
+.ui-calendar .fc-event-time,
+.ui-calendar .fc-event-title {
+    color: #fff;
+}
+
+
+/* Chat */
+
+.chat-activity-list .chat-element {
+    border-bottom: 1px solid #e7eaec;
+}
+
+.chat-element:first-child {
+    margin-top: 0;
+}
+
+.chat-element {
+    padding-bottom: 15px;
+}
+
+.chat-element,
+.chat-element .media {
+    margin-top: 15px;
+}
+
+.chat-element,
+.media-body {
+    overflow: hidden;
+}
+
+.media-body {
+    display: block;
+    width: auto;
+}
+
+.chat-element > .pull-left {
+    margin-right: 10px;
+}
+
+.chat-element img.img-circle,
+.dropdown-messages-box img.img-circle {
+    width: 38px;
+    height: 38px;
+}
+
+.chat-element .well {
+    border: 1px solid #e7eaec;
+    box-shadow: none;
+    margin-top: 10px;
+    margin-bottom: 5px;
+    padding: 10px 20px;
+    font-size: 11px;
+    line-height: 16px;
+}
+
+.chat-element .actions {
+    margin-top: 10px;
+}
+
+.chat-element .photos {
+    margin: 10px 0;
+}
+
+.right.chat-element > .pull-right {
+    margin-left: 10px;
+}
+
+.chat-photo {
+    max-height: 180px;
+    border-radius: 4px;
+    overflow: hidden;
+    margin-right: 10px;
+    margin-bottom: 10px;
+}
+
+.chat {
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+
+.chat li {
+    margin-bottom: 10px;
+    padding-bottom: 5px;
+    border-bottom: 1px dotted #B3A9A9;
+}
+
+.chat li.left .chat-body {
+    margin-left: 60px;
+}
+
+.chat li.right .chat-body {
+    margin-right: 60px;
+}
+
+.chat li .chat-body p {
+    margin: 0;
+    color: #777777;
+}
+
+.panel .slidedown .glyphicon,
+.chat .glyphicon {
+    margin-right: 5px;
+}
+
+.chat-panel .panel-body {
+    height: 350px;
+    overflow-y: scroll;
+}
+
+
+/* LIST GROUP */
+
+a.list-group-item.active,
+a.list-group-item.active:hover,
+a.list-group-item.active:focus {
+    background-color: #1ab394;
+    border-color: #1ab394;
+    color: #FFFFFF;
+    z-index: 2;
+}
+
+.list-group-item-heading {
+    margin-top: 10px;
+}
+
+.list-group-item-text {
+    margin: 0 0 10px;
+    color: inherit;
+    font-size: 12px;
+    line-height: inherit;
+}
+
+.no-padding .list-group-item {
+    border-left: none;
+    border-right: none;
+    border-bottom: none;
+}
+
+.no-padding .list-group-item:first-child {
+    border-left: none;
+    border-right: none;
+    border-bottom: none;
+    border-top: none;
+}
+
+.no-padding .list-group {
+    margin-bottom: 0;
+}
+
+.list-group-item {
+    background-color: inherit;
+    border: 1px solid #e7eaec;
+    display: block;
+    margin-bottom: -1px;
+    padding: 10px 15px;
+    position: relative;
+}
+
+.elements-list .list-group-item {
+    border-left: none;
+    border-right: none;
+    /*border-top: none;*/
+    padding: 15px 25px;
+}
+
+.elements-list .list-group-item:first-child {
+    border-left: none;
+    border-right: none;
+    border-top: none !important;
+}
+
+.elements-list .list-group {
+    margin-bottom: 0;
+}
+
+.elements-list a {
+    color: inherit;
+}
+
+.elements-list .list-group-item.active,
+.elements-list .list-group-item:hover {
+    background: #f3f3f4;
+    color: inherit;
+    border-color: #e7eaec;
+    /*border-bottom: 1px solid #e7eaec;*/
+    /*border-top: 1px solid #e7eaec;*/
+    border-radius: 0;
+}
+
+.elements-list li.active {
+    -webkit-transition: none;
+    transition: none;
+}
+
+.element-detail-box {
+    padding: 25px;
+}
+
+
+/* FLOT CHART  */
+
+.flot-chart {
+    display: block;
+    height: 200px;
+}
+
+.widget .flot-chart.dashboard-chart {
+    display: block;
+    height: 120px;
+    margin-top: 40px;
+}
+
+.flot-chart.dashboard-chart {
+    display: block;
+    height: 180px;
+    margin-top: 40px;
+}
+
+.flot-chart-content {
+    width: 100%;
+    height: 100%;
+}
+
+.flot-chart-pie-content {
+    width: 200px;
+    height: 200px;
+    margin: auto;
+}
+
+.jqstooltip {
+    position: absolute;
+    display: block;
+    left: 0px;
+    top: 0px;
+    visibility: hidden;
+    background: #2b303a;
+    background-color: rgba(43, 48, 58, 0.8);
+    color: white;
+    text-align: left;
+    white-space: nowrap;
+    z-index: 10000;
+    padding: 5px 5px 5px 5px;
+    min-height: 22px;
+    border-radius: 3px;
+}
+
+.jqsfield {
+    color: white;
+    text-align: left;
+}
+
+.h-200 {
+    min-height: 200px;
+}
+
+.legendLabel {
+    padding-left: 5px;
+}
+
+.stat-list li:first-child {
+    margin-top: 0;
+}
+
+.stat-list {
+    list-style: none;
+    padding: 0;
+    margin: 0;
+}
+
+.stat-percent {
+    float: right;
+}
+
+.stat-list li {
+    margin-top: 15px;
+    position: relative;
+}
+
+
+/* DATATABLES */
+
+table.dataTable thead .sorting,
+table.dataTable thead .sorting_asc:after,
+table.dataTable thead .sorting_desc,
+table.dataTable thead .sorting_asc_disabled,
+table.dataTable thead .sorting_desc_disabled {
+    background: transparent;
+}
+
+table.dataTable thead .sorting_asc:after {
+    float: right;
+    font-family: fontawesome;
+}
+
+table.dataTable thead .sorting_desc:after {
+    content: "\f0dd";
+    float: right;
+    font-family: fontawesome;
+}
+
+table.dataTable thead .sorting:after {
+    content: "\f0dc";
+    float: right;
+    font-family: fontawesome;
+    color: rgba(50, 50, 50, 0.5);
+}
+
+.dataTables_wrapper {
+    padding-bottom: 30px;
+}
+
+
+/* CIRCLE */
+
+.img-circle {
+    border-radius: 50%;
+}
+
+.btn-circle {
+    width: 30px;
+    height: 30px;
+    padding: 6px 0;
+    border-radius: 15px;
+    text-align: center;
+    font-size: 12px;
+    line-height: 1.428571429;
+}
+
+.btn-circle.btn-lg {
+    width: 50px;
+    height: 50px;
+    padding: 10px 16px;
+    border-radius: 25px;
+    font-size: 18px;
+    line-height: 1.33;
+}
+
+.btn-circle.btn-xl {
+    width: 70px;
+    height: 70px;
+    padding: 10px 16px;
+    border-radius: 35px;
+    font-size: 24px;
+    line-height: 1.33;
+}
+
+.show-grid [class^="col-"] {
+    padding-top: 10px;
+    padding-bottom: 10px;
+    border: 1px solid #ddd;
+    background-color: #eee !important;
+}
+
+.show-grid {
+    margin: 15px 0;
+}
+
+
+/* ANIMATION */
+
+.css-animation-box h1 {
+    font-size: 44px;
+}
+
+.animation-efect-links a {
+    padding: 4px 6px;
+    font-size: 12px;
+}
+
+#animation_box {
+    background-color: #f9f8f8;
+    border-radius: 16px;
+    width: 80%;
+    margin: 0 auto;
+    padding-top: 80px;
+}
+
+.animation-text-box {
+    position: absolute;
+    margin-top: 40px;
+    left: 50%;
+    margin-left: -100px;
+    width: 200px;
+}
+
+.animation-text-info {
+    position: absolute;
+    margin-top: -60px;
+    left: 50%;
+    margin-left: -100px;
+    width: 200px;
+    font-size: 10px;
+}
+
+.animation-text-box h2 {
+    font-size: 54px;
+    font-weight: 600;
+    margin-bottom: 5px;
+}
+
+.animation-text-box p {
+    font-size: 12px;
+    text-transform: uppercase;
+}
+
+
+/* PEACE */
+
+.pace {
+    -webkit-pointer-events: none;
+    pointer-events: none;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+.pace-inactive {
+    display: none;
+}
+
+.pace .pace-progress {
+    background: #1ab394;
+    position: fixed;
+    z-index: 2000;
+    top: 0;
+    width: 100%;
+    height: 2px;
+}
+
+.pace-inactive {
+    display: none;
+}
+
+
+/* WIDGETS */
+
+.widget {
+    border-radius: 5px;
+    padding: 15px 20px;
+    margin-bottom: 10px;
+    margin-top: 10px;
+}
+
+.widget.style1 h2 {
+    font-size: 30px;
+}
+
+.widget h2,
+.widget h3 {
+    margin-top: 5px;
+    margin-bottom: 0;
+}
+
+.widget-text-box {
+    padding: 20px;
+    border: 1px solid #e7eaec;
+    background: #ffffff;
+}
+
+.widget-head-color-box {
+    border-radius: 5px 5px 0px 0px;
+    margin-top: 10px;
+}
+
+.widget .flot-chart {
+    height: 100px;
+}
+
+.vertical-align div {
+    display: inline-block;
+    vertical-align: middle;
+}
+
+.vertical-align h2,
+.vertical-align h3 {
+    margin: 0;
+}
+
+.todo-list {
+    list-style: none outside none;
+    margin: 0;
+    padding: 0;
+    font-size: 14px;
+}
+
+.todo-list.small-list {
+    font-size: 12px;
+}
+
+.todo-list.small-list > li {
+    background: #f3f3f4;
+    border-left: none;
+    border-right: none;
+    border-radius: 4px;
+    color: inherit;
+    margin-bottom: 2px;
+    padding: 6px 6px 6px 12px;
+}
+
+.todo-list.small-list .btn-xs,
+.todo-list.small-list .btn-group-xs > .btn {
+    border-radius: 5px;
+    font-size: 10px;
+    line-height: 1.5;
+    padding: 1px 2px 1px 5px;
+}
+
+.todo-list > li {
+    background: #f3f3f4;
+    border-left: 6px solid #e7eaec;
+    border-right: 6px solid #e7eaec;
+    border-radius: 4px;
+    color: inherit;
+    margin-bottom: 2px;
+    padding: 10px;
+}
+
+.todo-list .handle {
+    cursor: move;
+    display: inline-block;
+    font-size: 16px;
+    margin: 0 5px;
+}
+
+.todo-list > li .label {
+    font-size: 9px;
+    margin-left: 10px;
+}
+
+.check-link {
+    font-size: 16px;
+}
+
+.todo-completed {
+    text-decoration: line-through;
+}
+
+.geo-statistic h1 {
+    font-size: 36px;
+    margin-bottom: 0;
+}
+
+.glyphicon.fa {
+    font-family: "FontAwesome";
+}
+
+
+/* INPUTS */
+
+.inline {
+    display: inline-block !important;
+}
+
+.input-s-sm {
+    width: 120px;
+}
+
+.input-s {
+    width: 200px;
+}
+
+.input-s-lg {
+    width: 250px;
+}
+
+.i-checks {
+    padding-left: 0;
+}
+
+.form-control,
+.single-line {
+    background-color: #FFFFFF;
+    background-image: none;
+    border: 1px solid #e5e6e7;
+    border-radius: 1px;
+    color: inherit;
+    display: block;
+    padding: 6px 12px;
+    -webkit-transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
+    transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
+    width: 100%;
+    font-size: 14px;
+}
+
+.form-control:focus,
+.single-line:focus {
+    border-color: #1ab394 !important;
+}
+
+.has-success .form-control {
+    border-color: #1ab394;
+}
+
+.has-warning .form-control {
+    border-color: #f8ac59;
+}
+
+.has-error .form-control {
+    border-color: #ed5565;
+}
+
+.has-success .control-label {
+    color: #1ab394;
+}
+
+.has-warning .control-label {
+    color: #f8ac59;
+}
+
+.has-error .control-label {
+    color: #ed5565;
+}
+
+.input-group-addon {
+    background-color: #fff;
+    border: 1px solid #E5E6E7;
+    border-radius: 1px;
+    color: inherit;
+    font-size: 14px;
+    font-weight: 400;
+    line-height: 1;
+    padding: 6px 12px;
+    text-align: center;
+}
+
+.spinner-buttons.input-group-btn .btn-xs {
+    line-height: 1.13;
+}
+
+.spinner-buttons.input-group-btn {
+    width: 20%;
+}
+
+.noUi-connect {
+    background: none repeat scroll 0 0 #1ab394;
+    box-shadow: none;
+}
+
+.slider_red .noUi-connect {
+    background: none repeat scroll 0 0 #ed5565;
+    box-shadow: none;
+}
+
+
+/* UI Sortable */
+
+.ui-sortable .ibox-title {
+    cursor: move;
+}
+
+.ui-sortable-placeholder {
+    border: 1px dashed #cecece !important;
+    visibility: visible !important;
+    background: #e7eaec;
+}
+
+.ibox.ui-sortable-placeholder {
+    margin: 0px 0px 23px !important;
+}
+
+
+/* Tabs */
+
+.tabs-container .panel-body {
+    background: #fff;
+    border: 1px solid #e7eaec;
+    border-radius: 2px;
+    padding: 20px;
+    position: relative;
+}
+
+.tabs-container .nav-tabs > li.active > a,
+.tabs-container .nav-tabs > li.active > a:hover,
+.tabs-container .nav-tabs > li.active > a:focus {
+    border: 1px solid #e7eaec;
+    border-bottom-color: transparent;
+    background-color: #fff;
+}
+
+.tabs-container .nav-tabs > li {
+    float: left;
+    margin-bottom: -1px;
+}
+
+.tabs-container .tab-pane .panel-body {
+    border-top: none;
+}
+
+.tabs-container .nav-tabs > li.active > a,
+.tabs-container .nav-tabs > li.active > a:hover,
+.tabs-container .nav-tabs > li.active > a:focus {
+    border: 1px solid #e7eaec;
+    border-bottom-color: transparent;
+}
+
+.tabs-container .nav-tabs {
+    border-bottom: 1px solid #e7eaec;
+}
+
+.tabs-container .tab-pane .panel-body {
+    border-top: none;
+}
+
+.tabs-container .tabs-left .tab-pane .panel-body,
+.tabs-container .tabs-right .tab-pane .panel-body {
+    border-top: 1px solid #e7eaec;
+}
+
+.tabs-container .nav-tabs > li a:hover {
+    background: transparent;
+    border-color: transparent;
+}
+
+.tabs-container .tabs-below > .nav-tabs,
+.tabs-container .tabs-right > .nav-tabs,
+.tabs-container .tabs-left > .nav-tabs {
+    border-bottom: 0;
+}
+
+.tabs-container .tabs-left .panel-body {
+    position: static;
+}
+
+.tabs-container .tabs-left > .nav-tabs,
+.tabs-container .tabs-right > .nav-tabs {
+    width: 20%;
+}
+
+.tabs-container .tabs-left .panel-body {
+    width: 80%;
+    margin-left: 20%;
+}
+
+.tabs-container .tabs-right .panel-body {
+    width: 80%;
+    margin-right: 20%;
+}
+
+.tabs-container .tab-content > .tab-pane,
+.tabs-container .pill-content > .pill-pane {
+    display: none;
+}
+
+.tabs-container .tab-content > .active,
+.tabs-container .pill-content > .active {
+    display: block;
+}
+
+.tabs-container .tabs-below > .nav-tabs {
+    border-top: 1px solid #e7eaec;
+}
+
+.tabs-container .tabs-below > .nav-tabs > li {
+    margin-top: -1px;
+    margin-bottom: 0;
+}
+
+.tabs-container .tabs-below > .nav-tabs > li > a {
+    border-radius: 0 0 4px 4px;
+}
+
+.tabs-container .tabs-below > .nav-tabs > li > a:hover,
+.tabs-container .tabs-below > .nav-tabs > li > a:focus {
+    border-top-color: #e7eaec;
+    border-bottom-color: transparent;
+}
+
+.tabs-container .tabs-left > .nav-tabs > li,
+.tabs-container .tabs-right > .nav-tabs > li {
+    float: none;
+}
+
+.tabs-container .tabs-left > .nav-tabs > li > a,
+.tabs-container .tabs-right > .nav-tabs > li > a {
+    min-width: 74px;
+    margin-right: 0;
+    margin-bottom: 3px;
+}
+
+.tabs-container .tabs-left > .nav-tabs {
+    float: left;
+    margin-right: 19px;
+}
+
+.tabs-container .tabs-left > .nav-tabs > li > a {
+    margin-right: -1px;
+    border-radius: 4px 0 0 4px;
+}
+
+.tabs-container .tabs-left > .nav-tabs .active > a,
+.tabs-container .tabs-left > .nav-tabs .active > a:hover,
+.tabs-container .tabs-left > .nav-tabs .active > a:focus {
+    border-color: #e7eaec transparent #e7eaec #e7eaec;
+    *border-right-color: #ffffff;
+}
+
+.tabs-container .tabs-right > .nav-tabs {
+    float: right;
+    margin-left: 19px;
+}
+
+.tabs-container .tabs-right > .nav-tabs > li > a {
+    margin-left: -1px;
+    border-radius: 0 4px 4px 0;
+}
+
+.tabs-container .tabs-right > .nav-tabs .active > a,
+.tabs-container .tabs-right > .nav-tabs .active > a:hover,
+.tabs-container .tabs-right > .nav-tabs .active > a:focus {
+    border-color: #e7eaec #e7eaec #e7eaec transparent;
+    *border-left-color: #ffffff;
+    z-index: 1;
+}
+
+
+/* SWITCHES */
+
+.onoffswitch {
+    position: relative;
+    width: 54px;
+    -webkit-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+}
+
+.onoffswitch-checkbox {
+    display: none;
+}
+
+.onoffswitch-label {
+    display: block;
+    overflow: hidden;
+    cursor: pointer;
+    border: 2px solid #1AB394;
+    border-radius: 3px;
+}
+
+.onoffswitch-inner {
+    display: block;
+    width: 200%;
+    margin-left: -100%;
+    -webkit-transition: margin 0.3s ease-in 0s;
+    transition: margin 0.3s ease-in 0s;
+}
+
+.onoffswitch-inner:before,
+.onoffswitch-inner:after {
+    display: block;
+    float: left;
+    width: 50%;
+    height: 16px;
+    padding: 0;
+    line-height: 16px;
+    font-size: 10px;
+    color: white;
+    font-family: Trebuchet, Arial, sans-serif;
+    font-weight: bold;
+    box-sizing: border-box;
+}
+
+.onoffswitch-inner:before {
+    content: "ON";
+    padding-left: 7px;
+    background-color: #1AB394;
+    color: #FFFFFF;
+}
+
+.onoffswitch-inner:after {
+    content: "OFF";
+    padding-right: 7px;
+    background-color: #FFFFFF;
+    color: #919191;
+    text-align: right;
+}
+
+.onoffswitch-switch {
+    display: block;
+    width: 18px;
+    margin: 0px;
+    background: #FFFFFF;
+    border: 2px solid #1AB394;
+    border-radius: 3px;
+    position: absolute;
+    top: 0;
+    bottom: 0;
+    right: 36px;
+    -webkit-transition: all 0.3s ease-in 0s;
+    transition: all 0.3s ease-in 0s;
+}
+
+.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
+    margin-left: 0;
+}
+
+.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
+    right: 0px;
+}
+
+
+/* Nestable list */
+
+.dd {
+    position: relative;
+    display: block;
+    margin: 0;
+    padding: 0;
+    list-style: none;
+    font-size: 13px;
+    line-height: 20px;
+}
+
+.dd-list {
+    display: block;
+    position: relative;
+    margin: 0;
+    padding: 0;
+    list-style: none;
+}
+
+.dd-list .dd-list {
+    padding-left: 30px;
+}
+
+.dd-collapsed .dd-list {
+    display: none;
+}
+
+.dd-item,
+.dd-empty,
+.dd-placeholder {
+    display: block;
+    position: relative;
+    margin: 0;
+    padding: 0;
+    min-height: 20px;
+    font-size: 13px;
+    line-height: 20px;
+}
+
+.dd-handle {
+    display: block;
+    margin: 5px 0;
+    padding: 5px 10px;
+    color: #333;
+    text-decoration: none;
+    border: 1px solid #e7eaec;
+    background: #f5f5f5;
+    border-radius: 3px;
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+}
+
+.dd-handle span {
+    font-weight: bold;
+}
+
+.dd-handle:hover {
+    background: #f0f0f0;
+    cursor: pointer;
+    font-weight: bold;
+}
+
+.dd-item > button {
+    display: block;
+    position: relative;
+    cursor: pointer;
+    float: left;
+    width: 25px;
+    height: 20px;
+    margin: 5px 0;
+    padding: 0;
+    text-indent: 100%;
+    white-space: nowrap;
+    overflow: hidden;
+    border: 0;
+    background: transparent;
+    font-size: 12px;
+    line-height: 1;
+    text-align: center;
+    font-weight: bold;
+}
+
+.dd-item > button:before {
+    content: '+';
+    display: block;
+    position: absolute;
+    width: 100%;
+    text-align: center;
+    text-indent: 0;
+}
+
+.dd-item > button[data-action="collapse"]:before {
+    content: '-';
+}
+
+#nestable2 .dd-item > button {
+    font-family: FontAwesome;
+    height: 34px;
+    width: 33px;
+    color: #c1c1c1;
+}
+
+#nestable2 .dd-item > button:before {
+    content: "\f067";
+}
+
+#nestable2 .dd-item > button[data-action="collapse"]:before {
+    content: "\f068";
+}
+
+.dd-placeholder,
+.dd-empty {
+    margin: 5px 0;
+    padding: 0;
+    min-height: 30px;
+    background: #f2fbff;
+    border: 1px dashed #b6bcbf;
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+}
+
+.dd-empty {
+    border: 1px dashed #bbb;
+    min-height: 100px;
+    background-color: #e5e5e5;
+    background-image: -webkit-linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff), -webkit-linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff);
+    background-image: linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff), linear-gradient(45deg, #ffffff 25%, transparent 25%, transparent 75%, #ffffff 75%, #ffffff);
+    background-size: 60px 60px;
+    background-position: 0 0, 30px 30px;
+}
+
+.dd-dragel {
+    position: absolute;
+    z-index: 9999;
+    pointer-events: none;
+}
+
+.dd-dragel > .dd-item .dd-handle {
+    margin-top: 0;
+}
+
+.dd-dragel .dd-handle {
+    box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, 0.1);
+}
+
+
+/**
+* Nestable Extras
+*/
+
+.nestable-lists {
+    display: block;
+    clear: both;
+    padding: 30px 0;
+    width: 100%;
+    border: 0;
+    border-top: 2px solid #ddd;
+    border-bottom: 2px solid #ddd;
+}
+
+#nestable-menu {
+    padding: 0;
+    margin: 10px 0 20px 0;
+}
+
+#nestable-output,
+#nestable2-output {
+    width: 100%;
+    font-size: 0.75em;
+    line-height: 1.333333em;
+    font-family: lucida grande, lucida sans unicode, helvetica, arial, sans-serif;
+    padding: 5px;
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+}
+
+#nestable2 .dd-handle {
+    color: inherit;
+    border: 1px dashed #e7eaec;
+    background: #f3f3f4;
+    padding: 10px;
+}
+
+#nestable2 .dd-handle:hover {
+    /*background: #bbb;*/
+}
+
+#nestable2 span.label {
+    margin-right: 10px;
+}
+
+#nestable-output,
+#nestable2-output {
+    font-size: 12px;
+    padding: 25px;
+    box-sizing: border-box;
+    -moz-box-sizing: border-box;
+}
+
+
+/* CodeMirror */
+
+.CodeMirror {
+    border: 1px solid #eee;
+    height: auto;
+}
+
+.CodeMirror-scroll {
+    overflow-y: hidden;
+    overflow-x: auto;
+}
+
+
+/* Google Maps */
+
+.google-map {
+    height: 300px;
+}
+
+
+/* Validation */
+
+label.error {
+    color: #cc5965;
+    display: inline-block;
+    margin-left: 5px;
+}
+
+.form-control.error {
+    border: 1px dotted #cc5965;
+}
+
+
+/* ngGrid */
+
+.gridStyle {
+    border: 1px solid #d4d4d4;
+    width: 100%;
+    height: 400px;
+}
+
+.gridStyle2 {
+    border: 1px solid #d4d4d4;
+    width: 500px;
+    height: 300px;
+}
+
+.ngH eaderCell {
+    border-right: none;
+    border-bottom: 1px solid #e7eaec;
+}
+
+.ngCell {
+    border-right: none;
+}
+
+.ngTopPanel {
+    background: #F5F5F6;
+}
+
+.ngRow.even {
+    background: #f9f9f9;
+}
+
+.ngRow.selected {
+    background: #EBF2F1;
+}
+
+.ngRow {
+    border-bottom: 1px solid #e7eaec;
+}
+
+.ngCell {
+    background-color: transparent;
+}
+
+.ngHeaderCell {
+    border-right: none;
+}
+
+
+/* Toastr custom style */
+
+#toast-container > .toast {
+    background-image: none !important;
+}
+
+#toast-container > .toast:before {
+    position: fixed;
+    font-family: FontAwesome;
+    font-size: 24px;
+    line-height: 24px;
+    float: left;
+    color: #FFF;
+    padding-right: 0.5em;
+    margin: auto 0.5em auto -1.5em;
+}
+
+#toast-container > div {
+    box-shadow: 0 0 3px #999;
+    opacity: .9;
+    -ms-filter: alpha(opacity=90);
+    filter: alpha(opacity=90);
+}
+
+#toast-container >:hover {
+    box-shadow: 0 0 4px #999;
+    opacity: 1;
+    -ms-filter: alpha(opacity=100);
+    filter: alpha(opacity=100);
+    cursor: pointer;
+}
+
+.toast {
+    background-color: #1ab394;
+}
+
+.toast-success {
+    background-color: #1ab394;
+}
+
+.toast-error {
+    background-color: #ed5565;
+}
+
+.toast-info {
+    background-color: #23c6c8;
+}
+
+.toast-warning {
+    background-color: #f8ac59;
+}
+
+.toast-top-full-width {
+    margin-top: 20px;
+}
+
+.toast-bottom-full-width {
+    margin-bottom: 20px;
+}
+
+
+/* Image cropper style */
+
+.img-container,
+.img-preview {
+    overflow: hidden;
+    text-align: center;
+    width: 100%;
+}
+
+.img-preview-sm {
+    height: 130px;
+    width: 200px;
+}
+
+
+/* Forum styles  */
+
+.forum-post-container .media {
+    margin: 10px 10px 10px 10px;
+    padding: 20px 10px 20px 10px;
+    border-bottom: 1px solid #f1f1f1;
+}
+
+.forum-avatar {
+    float: left;
+    margin-right: 20px;
+    text-align: center;
+    width: 110px;
+}
+
+.forum-avatar .img-circle {
+    height: 48px;
+    width: 48px;
+}
+
+.author-info {
+    color: #676a6c;
+    font-size: 11px;
+    margin-top: 5px;
+    text-align: center;
+}
+
+.forum-post-info {
+    padding: 9px 12px 6px 12px;
+    background: #f9f9f9;
+    border: 1px solid #f1f1f1;
+}
+
+.media-body > .media {
+    background: #f9f9f9;
+    border-radius: 3px;
+    border: 1px solid #f1f1f1;
+}
+
+.forum-post-container .media-body .photos {
+    margin: 10px 0;
+}
+
+.forum-photo {
+    max-width: 140px;
+    border-radius: 3px;
+}
+
+.media-body > .media .forum-avatar {
+    width: 70px;
+    margin-right: 10px;
+}
+
+.media-body > .media .forum-avatar .img-circle {
+    height: 38px;
+    width: 38px;
+}
+
+.mid-icon {
+    font-size: 66px;
+}
+
+.forum-item {
+    margin: 10px 0;
+    padding: 10px 0 20px;
+    border-bottom: 1px solid #f1f1f1;
+}
+
+.views-number {
+    font-size: 24px;
+    line-height: 18px;
+    font-weight: 400;
+}
+
+.forum-container,
+.forum-post-container {
+    padding: 30px !important;
+}
+
+.forum-item small {
+    color: #999;
+}
+
+.forum-item .forum-sub-title {
+    color: #999;
+    margin-left: 50px;
+}
+
+.forum-title {
+    margin: 15px 0 15px 0;
+}
+
+.forum-info {
+    text-align: center;
+}
+
+.forum-desc {
+    color: #999;
+}
+
+.forum-icon {
+    float: left;
+    width: 30px;
+    margin-right: 20px;
+    text-align: center;
+}
+
+a.forum-item-title {
+    color: inherit;
+    display: block;
+    font-size: 18px;
+    font-weight: 600;
+}
+
+a.forum-item-title:hover {
+    color: inherit;
+}
+
+.forum-icon .fa {
+    font-size: 30px;
+    margin-top: 8px;
+    color: #9b9b9b;
+}
+
+.forum-item.active .fa {
+    color: #1ab394;
+}
+
+.forum-item.active a.forum-item-title {
+    color: #1ab394;
+}
+
+@media (max-width: 992px) {
+    .forum-info {
+        margin: 15px 0 10px 0px;
+        /* Comment this is you want to show forum info in small devices */
+        display: none;
+    }
+    .forum-desc {
+        float: none !important;
+    }
+}
+
+
+/* New Timeline style */
+
+.vertical-container {
+    /* this class is used to give a max-width to the element it is applied to, and center it horizontally when it reaches that max-width */
+    width: 90%;
+    max-width: 1170px;
+    margin: 0 auto;
+}
+
+.vertical-container::after {
+    /* clearfix */
+    content: '';
+    display: table;
+    clear: both;
+}
+
+#vertical-timeline {
+    position: relative;
+    padding: 0;
+    margin-top: 2em;
+    margin-bottom: 2em;
+}
+
+#vertical-timeline::before {
+    content: '';
+    position: absolute;
+    top: 0;
+    left: 18px;
+    height: 100%;
+    width: 4px;
+    background: #f1f1f1;
+}
+
+.vertical-timeline-content .btn {
+    float: right;
+}
+
+#vertical-timeline.light-timeline:before {
+    background: #e7eaec;
+}
+
+.dark-timeline .vertical-timeline-content:before {
+    border-color: transparent #f5f5f5 transparent transparent;
+}
+
+.dark-timeline.center-orientation .vertical-timeline-content:before {
+    border-color: transparent transparent transparent #f5f5f5;
+}
+
+.dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before,
+.dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before {
+    border-color: transparent #f5f5f5 transparent transparent;
+}
+
+.dark-timeline .vertical-timeline-content,
+.dark-timeline.center-orientation .vertical-timeline-content {
+    background: #f5f5f5;
+}
+
+@media only screen and (min-width: 1170px) {
+    #vertical-timeline.center-orientation {
+        margin-top: 3em;
+        margin-bottom: 3em;
+    }
+    #vertical-timeline.center-orientation:before {
+        left: 50%;
+        margin-left: -2px;
+    }
+}
+
+@media only screen and (max-width: 1170px) {
+    .center-orientation.dark-timeline .vertical-timeline-content:before {
+        border-color: transparent #f5f5f5 transparent transparent;
+    }
+}
+
+.vertical-timeline-block {
+    position: relative;
+    margin: 2em 0;
+}
+
+.vertical-timeline-block:after {
+    content: "";
+    display: table;
+    clear: both;
+}
+
+.vertical-timeline-block:first-child {
+    margin-top: 0;
+}
+
+.vertical-timeline-block:last-child {
+    margin-bottom: 0;
+}
+
+@media only screen and (min-width: 1170px) {
+    .center-orientation .vertical-timeline-block {
+        margin: 4em 0;
+    }
+    .center-orientation .vertical-timeline-block:first-child {
+        margin-top: 0;
+    }
+    .center-orientation .vertical-timeline-block:last-child {
+        margin-bottom: 0;
+    }
+}
+
+.vertical-timeline-icon {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 40px;
+    height: 40px;
+    border-radius: 50%;
+    font-size: 16px;
+    border: 3px solid #f1f1f1;
+    text-align: center;
+}
+
+.vertical-timeline-icon i {
+    display: block;
+    width: 24px;
+    height: 24px;
+    position: relative;
+    left: 50%;
+    top: 50%;
+    margin-left: -12px;
+    margin-top: -9px;
+}
+
+@media only screen and (min-width: 1170px) {
+    .center-orientation .vertical-timeline-icon {
+        width: 50px;
+        height: 50px;
+        left: 50%;
+        margin-left: -25px;
+        -webkit-transform: translateZ(0);
+        -webkit-backface-visibility: hidden;
+        font-size: 19px;
+    }
+    .center-orientation .vertical-timeline-icon i {
+        margin-left: -12px;
+        margin-top: -10px;
+    }
+    .center-orientation .cssanimations .vertical-timeline-icon.is-hidden {
+        visibility: hidden;
+    }
+}
+
+.vertical-timeline-content {
+    position: relative;
+    margin-left: 60px;
+    background: white;
+    border-radius: 0.25em;
+    padding: 1em;
+}
+
+.vertical-timeline-content:after {
+    content: "";
+    display: table;
+    clear: both;
+}
+
+.vertical-timeline-content h2 {
+    font-weight: 400;
+    margin-top: 4px;
+}
+
+.vertical-timeline-content p {
+    margin: 1em 0;
+    line-height: 1.6;
+}
+
+.vertical-timeline-content .vertical-date {
+    float: left;
+    font-weight: 500;
+}
+
+.vertical-date small {
+    color: #1ab394;
+    font-weight: 400;
+}
+
+.vertical-timeline-content::before {
+    content: '';
+    position: absolute;
+    top: 16px;
+    right: 100%;
+    height: 0;
+    width: 0;
+    border: 7px solid transparent;
+    border-right: 7px solid white;
+}
+
+@media only screen and (min-width: 768px) {
+    .vertical-timeline-content h2 {
+        font-size: 18px;
+    }
+    .vertical-timeline-content p {
+        font-size: 13px;
+    }
+}
+
+@media only screen and (min-width: 1170px) {
+    .center-orientation .vertical-timeline-content {
+        margin-left: 0;
+        padding: 1.6em;
+        width: 45%;
+    }
+    .center-orientation .vertical-timeline-content::before {
+        top: 24px;
+        left: 100%;
+        border-color: transparent;
+        border-left-color: white;
+    }
+    .center-orientation .vertical-timeline-content .btn {
+        float: left;
+    }
+    .center-orientation .vertical-timeline-content .vertical-date {
+        position: absolute;
+        width: 100%;
+        left: 122%;
+        top: 2px;
+        font-size: 14px;
+    }
+    .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content {
+        float: right;
+    }
+    .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before {
+        top: 24px;
+        left: auto;
+        right: 100%;
+        border-color: transparent;
+        border-right-color: white;
+    }
+    .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn {
+        float: right;
+    }
+    .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date {
+        left: auto;
+        right: 122%;
+        text-align: right;
+    }
+    .center-orientation .cssanimations .vertical-timeline-content.is-hidden {
+        visibility: hidden;
+    }
+}
+
+.sidebard-panel {
+    width: 220px;
+    background: #ebebed;
+    padding: 10px 20px;
+    position: absolute;
+    right: 0;
+}
+
+.sidebard-panel .feed-element img.img-circle {
+    width: 32px;
+    height: 32px;
+}
+
+.sidebard-panel .feed-element,
+.media-body,
+.sidebard-panel p {
+    font-size: 12px;
+}
+
+.sidebard-panel .feed-element {
+    margin-top: 20px;
+    padding-bottom: 0;
+}
+
+.sidebard-panel .list-group {
+    margin-bottom: 10px;
+}
+
+.sidebard-panel .list-group .list-group-item {
+    padding: 5px 0;
+    font-size: 12px;
+    border: 0;
+}
+
+.sidebar-content .wrapper,
+.wrapper.sidebar-content {
+    padding-right: 240px !important;
+}
+
+#right-sidebar {
+    background-color: #fff;
+    border-left: 1px solid #e7eaec;
+    border-top: 1px solid #e7eaec;
+    overflow: hidden;
+    position: fixed;
+    top: 60px;
+    width: 260px !important;
+    z-index: 1009;
+    bottom: 0;
+    right: -260px;
+}
+
+#right-sidebar.sidebar-open {
+    right: 0;
+}
+
+#right-sidebar.sidebar-open.sidebar-top {
+    top: 0;
+    border-top: none;
+}
+
+.sidebar-container ul.nav-tabs {
+    border: none;
+}
+
+.sidebar-container ul.nav-tabs.navs-4 li {
+    width: 25%;
+}
+
+.sidebar-container ul.nav-tabs.navs-3 li {
+    width: 33.3333%;
+}
+
+.sidebar-container ul.nav-tabs.navs-2 li {
+    width: 50%;
+}
+
+.sidebar-container ul.nav-tabs li {
+    border: none;
+}
+
+.sidebar-container ul.nav-tabs li a {
+    border: none;
+    padding: 12px 10px;
+    margin: 0;
+    border-radius: 0;
+    background: #2f4050;
+    color: #fff;
+    text-align: center;
+    border-right: 1px solid #334556;
+}
+
+.sidebar-container ul.nav-tabs li.active a {
+    border: none;
+    background: #f9f9f9;
+    color: #676a6c;
+    font-weight: bold;
+}
+
+.sidebar-container .nav-tabs > li.active > a:hover,
+.sidebar-container .nav-tabs > li.active > a:focus {
+    border: none;
+}
+
+.sidebar-container ul.sidebar-list {
+    margin: 0;
+    padding: 0;
+}
+
+.sidebar-container ul.sidebar-list li {
+    border-bottom: 1px solid #e7eaec;
+    padding: 15px 20px;
+    list-style: none;
+    font-size: 12px;
+}
+
+.sidebar-container .sidebar-message:nth-child(2n+2) {
+    background: #f9f9f9;
+}
+
+.sidebar-container ul.sidebar-list li a {
+    text-decoration: none;
+    color: inherit;
+}
+
+.sidebar-container .sidebar-content {
+    padding: 15px 20px;
+    font-size: 12px;
+}
+
+.sidebar-container .sidebar-title {
+    background: #f9f9f9;
+    padding: 20px;
+    border-bottom: 1px solid #e7eaec;
+}
+
+.sidebar-container .sidebar-title h3 {
+    margin-bottom: 3px;
+    padding-left: 2px;
+}
+
+.sidebar-container .tab-content h4 {
+    margin-bottom: 5px;
+}
+
+.sidebar-container .sidebar-message > a > .pull-left {
+    margin-right: 10px;
+}
+
+.sidebar-container .sidebar-message > a {
+    text-decoration: none;
+    color: inherit;
+}
+
+.sidebar-container .sidebar-message {
+    padding: 15px 20px;
+}
+
+.sidebar-container .sidebar-message .message-avatar {
+    height: 38px;
+    width: 38px;
+    border-radius: 50%;
+}
+
+.sidebar-container .setings-item {
+    padding: 15px 20px;
+    border-bottom: 1px solid #e7eaec;
+}
+
+body {
+    font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
+    font-size: 13px;
+    color: #676a6c;
+    overflow-x: hidden;
+}
+
+html,
+body {
+    height: 100%;
+}
+
+body.full-height-layout #wrapper,
+body.full-height-layout #page-wrapper {
+    height: 100%;
+}
+
+#page-wrapper {
+    min-height: auto;
+}
+
+body.boxed-layout {
+    background: url('patterns/shattered.png');
+}
+
+body.boxed-layout #wrapper {
+    background-color: #2f4050;
+    max-width: 1200px;
+    margin: 0 auto;
+}
+
+.top-navigation.boxed-layout #wrapper,
+.boxed-layout #wrapper.top-navigation {
+    max-width: 1300px !important;
+}
+
+.block {
+    display: block;
+}
+
+.clear {
+    display: block;
+    overflow: hidden;
+}
+
+a {
+    cursor: pointer;
+}
+
+a:hover,
+a:focus {
+    text-decoration: none;
+}
+
+.border-bottom {
+    border-bottom: 1px solid #e7eaec !important;
+}
+
+.font-bold {
+    font-weight: 600;
+}
+
+.font-noraml {
+    font-weight: 400;
+}
+
+.text-uppercase {
+    text-transform: uppercase;
+}
+
+.b-r {
+    border-right: 1px solid #e7eaec;
+}
+
+.hr-line-dashed {
+    border-top: 1px dashed #e7eaec;
+    color: #ffffff;
+    background-color: #ffffff;
+    height: 1px;
+    margin: 20px 0;
+}
+
+.hr-line-solid {
+    border-bottom: 1px solid #e7eaec;
+    background-color: rgba(0, 0, 0, 0);
+    border-style: solid !important;
+    margin-top: 15px;
+    margin-bottom: 15px;
+}
+
+video {
+    width: 100% !important;
+    height: auto !important;
+}
+
+
+/* GALLERY */
+
+.gallery > .row > div {
+    margin-bottom: 15px;
+}
+
+.fancybox img {
+    margin-bottom: 5px;
+    /* Only for demo */
+    width: 24%;
+}
+
+
+/* Summernote text editor  */
+
+.note-editor {
+    height: auto!important;
+    min-height: 100px;
+    border: solid 1px #e5e6e7;
+}
+
+
+/* MODAL */
+
+.modal-content {
+    background-clip: padding-box;
+    background-color: #FFFFFF;
+    border: 1px solid rgba(0, 0, 0, 0);
+    border-radius: 4px;
+    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
+    outline: 0 none;
+}
+
+.modal-dialog {
+    z-index: 1200;
+}
+
+.modal-body {
+    padding: 20px 30px 30px 30px;
+}
+
+.inmodal .modal-body {
+    background: #f8fafb;
+}
+
+.inmodal .modal-header {
+    padding: 30px 15px;
+    text-align: center;
+}
+
+.animated.modal.fade .modal-dialog {
+    -webkit-transform: none;
+    -ms-transform: none;
+    transform: none;
+}
+
+.inmodal .modal-title {
+    font-size: 26px;
+}
+
+.inmodal .modal-icon {
+    font-size: 84px;
+    color: #e2e3e3;
+}
+
+.modal-footer {
+    margin-top: 0;
+}
+
+
+/* WRAPPERS */
+
+#wrapper {
+    width: 100%;
+    overflow-x: hidden;
+    background-color: #2f4050;
+}
+
+.wrapper {
+    padding: 0 20px;
+}
+
+.wrapper-content {
+    padding: 20px;
+}
+
+#page-wrapper {
+    padding: 0 15px;
+    position: inherit;
+    margin: 0 0 0 220px;
+}
+
+.title-action {
+    text-align: right;
+    padding-top: 30px;
+}
+
+.ibox-content h1,
+.ibox-content h2,
+.ibox-content h3,
+.ibox-content h4,
+.ibox-content h5,
+.ibox-title h1,
+.ibox-title h2,
+.ibox-title h3,
+.ibox-title h4,
+.ibox-title h5 {
+    margin-top: 5px;
+}
+
+ul.unstyled,
+ol.unstyled {
+    list-style: none outside none;
+    margin-left: 0;
+}
+
+.big-icon {
+    font-size: 160px;
+    color: #e5e6e7;
+}
+
+
+/* FOOTER */
+
+.footer {
+    background: none repeat scroll 0 0 white;
+    border-top: 1px solid #e7eaec;
+    overflow: hidden;
+    padding: 10px 20px;
+    margin: 0 -15px;
+    height: 36px;
+}
+
+.footer.fixed_full {
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    z-index: 1000;
+    padding: 10px 20px;
+    background: white;
+    border-top: 1px solid #e7eaec;
+}
+
+.footer.fixed {
+    position: fixed;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    z-index: 1000;
+    padding: 10px 20px;
+    background: white;
+    border-top: 1px solid #e7eaec;
+    margin-left: 220px;
+}
+
+body.mini-navbar .footer.fixed,
+body.body-small.mini-navbar .footer.fixed {
+    margin: 0 0 0 70px;
+}
+
+body.mini-navbar.canvas-menu .footer.fixed,
+body.canvas-menu .footer.fixed {
+    margin: 0 !important;
+}
+
+body.fixed-sidebar.body-small.mini-navbar .footer.fixed {
+    margin: 0 0 0 220px;
+}
+
+body.body-small .footer.fixed {
+    margin-left: 0px;
+}
+
+
+/* PANELS */
+
+.page-heading {
+    border-top: 0;
+    padding: 0px 20px 20px;
+}
+
+.panel-heading h1,
+.panel-heading h2 {
+    margin-bottom: 5px;
+}
+
+
+/*CONTENTTABS*/
+
+.content-tabs {
+    position: relative;
+    height: 42px;
+    background: #fafafa;
+    line-height: 40px;
+}
+
+.content-tabs .roll-nav,
+.page-tabs-list {
+    position: absolute;
+    width: 40px;
+    height: 40px;
+    text-align: center;
+    color: #999;
+    z-index: 2;
+    top: 0;
+}
+
+.content-tabs .roll-left {
+    left: 0;
+    border-right: solid 1px #eee;
+}
+
+.content-tabs .roll-right {
+    right: 0;
+    border-left: solid 1px #eee;
+}
+
+.content-tabs button {
+    background: #fff;
+    border: 0;
+    height: 40px;
+    width: 40px;
+    outline: none;
+}
+
+.content-tabs button:hover {
+    background: #fafafa;
+}
+
+nav.page-tabs {
+    margin-left: 40px;
+    width: 100000px;
+    height: 40px;
+    overflow: hidden;
+}
+
+nav.page-tabs .page-tabs-content {
+    float: left;
+}
+
+.page-tabs a {
+    display: block;
+    float: left;
+    border-right: solid 1px #eee;
+    padding: 0 15px;
+}
+
+.page-tabs a i:hover {
+    color: #c00;
+}
+
+.page-tabs a:hover,
+.content-tabs .roll-nav:hover {
+    color: #777;
+    background: #f2f2f2;
+    cursor: pointer;
+}
+
+.roll-right.J_tabRight {
+    right: 140px;
+}
+
+.roll-right.btn-group {
+    right: 60px;
+    width: 80px;
+    padding: 0;
+}
+
+.roll-right.btn-group button {
+    width: 80px;
+}
+
+.roll-right.J_tabExit {
+    background: #fff;
+    height: 40px;
+    width: 60px;
+    outline: none;
+}
+
+.dropdown-menu-right {
+    left: auto;
+}
+
+#content-main {
+    height: calc(100% - 140px);
+    overflow: hidden;
+}
+
+.fixed-nav #content-main {
+    height: calc(100% - 80px);
+    overflow: hidden;
+}
+
+
+/* TABLES */
+
+.table-bordered {
+    border: 1px solid #EBEBEB;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+    background-color: #F5F5F6;
+    border-bottom-width: 1px;
+}
+
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+    border: 1px solid #e7e7e7;
+}
+
+.table > thead > tr > th {
+    border-bottom: 1px solid #DDDDDD;
+    vertical-align: bottom;
+}
+
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+    border-top: 1px solid #e7eaec;
+    line-height: 1.42857;
+    padding: 8px;
+    vertical-align: middle;
+}
+
+
+/* PANELS */
+
+.panel.blank-panel {
+    background: none;
+    margin: 0;
+}
+
+.blank-panel .panel-heading {
+    padding-bottom: 0;
+}
+
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+    -moz-border-bottom-colors: none;
+    -moz-border-left-colors: none;
+    -moz-border-right-colors: none;
+    -moz-border-top-colors: none;
+    background: none;
+    border-color: #dddddd #dddddd rgba(0, 0, 0, 0);
+    border-bottom: #f3f3f4;
+    -webkit-border-image: none;
+    -o-border-image: none;
+    border-image: none;
+    border-style: solid;
+    border-width: 1px;
+    color: #555555;
+    cursor: default;
+}
+
+.nav.nav-tabs li {
+    background: none;
+    border: none;
+}
+
+.nav-tabs > li > a {
+    color: #A7B1C2;
+    font-weight: 600;
+    padding: 10px 20px 10px 25px;
+}
+
+.nav-tabs > li > a:hover,
+.nav-tabs > li > a:focus {
+    background-color: #e6e6e6;
+    color: #676a6c;
+}
+
+.ui-tab .tab-content {
+    padding: 20px 0px;
+}
+
+
+/* GLOBAL  */
+
+.no-padding {
+    padding: 0 !important;
+}
+
+.no-borders {
+    border: none !important;
+}
+
+.no-margins {
+    margin: 0 !important;
+}
+
+.no-top-border {
+    border-top: 0 !important;
+}
+
+.ibox-content.text-box {
+    padding-bottom: 0px;
+    padding-top: 15px;
+}
+
+.border-left-right {
+    border-left: 1px solid #e7eaec;
+    border-right: 1px solid #e7eaec;
+    border-top: none;
+    border-bottom: none;
+}
+
+.border-left {
+    border-left: 1px solid #e7eaec;
+    border-right: none;
+    border-top: none;
+    border-bottom: none;
+}
+
+.border-right {
+    border-left: none;
+    border-right: 1px solid #e7eaec;
+    border-top: none;
+    border-bottom: none;
+}
+
+.full-width {
+    width: 100% !important;
+}
+
+.link-block {
+    font-size: 12px;
+    padding: 10px;
+}
+
+.nav.navbar-top-links .link-block a {
+    font-size: 12px;
+}
+
+.link-block a {
+    font-size: 10px;
+    color: inherit;
+}
+
+body.mini-navbar .branding {
+    display: none;
+}
+
+img.circle-border {
+    border: 6px solid #FFFFFF;
+    border-radius: 50%;
+}
+
+.branding {
+    float: left;
+    color: #FFFFFF;
+    font-size: 18px;
+    font-weight: 600;
+    padding: 17px 20px;
+    text-align: center;
+    background-color: #1ab394;
+}
+
+.login-panel {
+    margin-top: 25%;
+}
+
+.page-header {
+    padding: 20px 0 9px;
+    margin: 0 0 20px;
+    border-bottom: 1px solid #eeeeee;
+}
+
+.fontawesome-icon-list {
+    margin-top: 22px;
+}
+
+.fontawesome-icon-list .fa-hover a {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    display: block;
+    color: #222222;
+    line-height: 32px;
+    height: 32px;
+    padding-left: 10px;
+    border-radius: 4px;
+}
+
+.fontawesome-icon-list .fa-hover a .fa {
+    width: 32px;
+    font-size: 14px;
+    display: inline-block;
+    text-align: right;
+    margin-right: 10px;
+}
+
+.fontawesome-icon-list .fa-hover a:hover {
+    background-color: #1d9d74;
+    color: #ffffff;
+    text-decoration: none;
+}
+
+.fontawesome-icon-list .fa-hover a:hover .fa {
+    font-size: 30px;
+    vertical-align: -6px;
+}
+
+.fontawesome-icon-list .fa-hover a:hover .text-muted {
+    color: #bbe2d5;
+}
+
+.feature-list .col-md-4 {
+    margin-bottom: 22px;
+}
+
+.feature-list h4 .fa:before {
+    vertical-align: -10%;
+    font-size: 28px;
+    display: inline-block;
+    width: 1.07142857em;
+    text-align: center;
+    margin-right: 5px;
+}
+
+.ui-draggable .ibox-title {
+    cursor: move;
+}
+
+.breadcrumb {
+    background-color: #ffffff;
+    padding: 0;
+    margin-bottom: 0;
+}
+
+.breadcrumb > li a {
+    color: inherit;
+}
+
+.breadcrumb > .active {
+    color: inherit;
+}
+
+code {
+    background-color: #F9F2F4;
+    border-radius: 4px;
+    color: #ca4440;
+    font-size: 90%;
+    padding: 2px 4px;
+    white-space: nowrap;
+}
+
+.ibox {
+    clear: both;
+    margin-bottom: 25px;
+    margin-top: 0;
+    padding: 0;
+}
+
+.ibox.collapsed .ibox-content {
+    display: none;
+}
+
+.ibox.collapsed .fa.fa-chevron-up:before {
+    content: "\f078";
+}
+
+.ibox.collapsed .fa.fa-chevron-down:before {
+    content: "\f077";
+}
+
+.ibox:after,
+.ibox:before {
+    display: table;
+}
+
+.ibox-title {
+    -moz-border-bottom-colors: none;
+    -moz-border-left-colors: none;
+    -moz-border-right-colors: none;
+    -moz-border-top-colors: none;
+    background-color: #ffffff;
+    border-color: #e7eaec;
+    -webkit-border-image: none;
+    -o-border-image: none;
+    border-image: none;
+    border-style: solid solid none;
+    border-width: 4px 0px 0;
+    color: inherit;
+    margin-bottom: 0;
+    padding: 14px 15px 7px;
+    min-height: 48px;
+}
+
+.ibox-content {
+    background-color: #ffffff;
+    color: inherit;
+    padding: 15px 20px 20px 20px;
+    border-color: #e7eaec;
+    -webkit-border-image: none;
+    -o-border-image: none;
+    border-image: none;
+    border-style: solid solid none;
+    border-width: 1px 0px;
+}
+
+table.table-mail tr td {
+    padding: 12px;
+}
+
+.table-mail .check-mail {
+    padding-left: 20px;
+}
+
+.table-mail .mail-date {
+    padding-right: 20px;
+}
+
+.star-mail,
+.check-mail {
+    width: 40px;
+}
+
+.unread td a,
+.unread td {
+    font-weight: 600;
+    color: inherit;
+}
+
+.read td a,
+.read td {
+    font-weight: normal;
+    color: inherit;
+}
+
+.unread td {
+    background-color: #f9f8f8;
+}
+
+.ibox-content {
+    clear: both;
+}
+
+.ibox-heading {
+    background-color: #f3f6fb;
+    border-bottom: none;
+}
+
+.ibox-heading h3 {
+    font-weight: 200;
+    font-size: 24px;
+}
+
+.ibox-title h5 {
+    display: inline-block;
+    font-size: 14px;
+    margin: 0 0 7px;
+    padding: 0;
+    text-overflow: ellipsis;
+    float: left;
+}
+
+.ibox-title .label {
+    float: left;
+    margin-left: 4px;
+}
+
+.ibox-tools {
+    display: inline-block;
+    float: right;
+    margin-top: 0;
+    position: relative;
+    padding: 0;
+}
+
+.ibox-tools a {
+    cursor: pointer;
+    margin-left: 5px;
+    color: #c4c4c4;
+}
+
+.ibox-tools a.btn-primary {
+    color: #fff;
+}
+
+.ibox-tools .dropdown-menu > li > a {
+    padding: 4px 10px;
+    font-size: 12px;
+}
+
+.ibox .open > .dropdown-menu {
+    left: auto;
+    right: 0;
+}
+
+
+/* BACKGROUNDS */
+
+.gray-bg {
+    background-color: #f3f3f4;
+}
+
+.white-bg {
+    background-color: #ffffff;
+}
+
+.navy-bg {
+    background-color: #1ab394;
+    color: #ffffff;
+}
+
+.blue-bg {
+    background-color: #1c84c6;
+    color: #ffffff;
+}
+
+.lazur-bg {
+    background-color: #23c6c8;
+    color: #ffffff;
+}
+
+.yellow-bg {
+    background-color: #f8ac59;
+    color: #ffffff;
+}
+
+.red-bg {
+    background-color: #ed5565;
+    color: #ffffff;
+}
+
+.black-bg {
+    background-color: #262626;
+}
+
+.panel-primary {
+    border-color: #1ab394;
+}
+
+.panel-primary > .panel-heading {
+    background-color: #1ab394;
+    border-color: #1ab394;
+}
+
+.panel-success {
+    border-color: #1c84c6;
+}
+
+.panel-success > .panel-heading {
+    background-color: #1c84c6;
+    border-color: #1c84c6;
+    color: #ffffff;
+}
+
+.panel-info {
+    border-color: #23c6c8;
+}
+
+.panel-info > .panel-heading {
+    background-color: #23c6c8;
+    border-color: #23c6c8;
+    color: #ffffff;
+}
+
+.panel-warning {
+    border-color: #f8ac59;
+}
+
+.panel-warning > .panel-heading {
+    background-color: #f8ac59;
+    border-color: #f8ac59;
+    color: #ffffff;
+}
+
+.panel-danger {
+    border-color: #ed5565;
+}
+
+.panel-danger > .panel-heading {
+    background-color: #ed5565;
+    border-color: #ed5565;
+    color: #ffffff;
+}
+
+.progress-bar {
+    background-color: #1ab394;
+}
+
+.progress-small,
+.progress-small .progress-bar {
+    height: 10px;
+}
+
+.progress-small,
+.progress-mini {
+    margin-top: 5px;
+}
+
+.progress-mini,
+.progress-mini .progress-bar {
+    height: 5px;
+    margin-bottom: 0px;
+}
+
+.progress-bar-navy-light {
+    background-color: #3dc7ab;
+}
+
+.progress-bar-success {
+    background-color: #1c84c6;
+}
+
+.progress-bar-info {
+    background-color: #23c6c8;
+}
+
+.progress-bar-warning {
+    background-color: #f8ac59;
+}
+
+.progress-bar-danger {
+    background-color: #ed5565;
+}
+
+.panel-title {
+    font-size: inherit;
+}
+
+.jumbotron {
+    border-radius: 6px;
+    padding: 40px;
+}
+
+.jumbotron h1 {
+    margin-top: 0;
+}
+
+
+/* COLORS */
+
+.text-navy {
+    color: #1ab394;
+}
+
+.text-primary {
+    color: inherit;
+}
+
+.text-success {
+    color: #1c84c6;
+}
+
+.text-info {
+    color: #23c6c8;
+}
+
+.text-warning {
+    color: #f8ac59;
+}
+
+.text-danger {
+    color: #ed5565;
+}
+
+.text-muted {
+    color: #888888;
+}
+
+.simple_tag {
+    background-color: #f3f3f4;
+    border: 1px solid #e7eaec;
+    border-radius: 2px;
+    color: inherit;
+    font-size: 10px;
+    margin-right: 5px;
+    margin-top: 5px;
+    padding: 5px 12px;
+    display: inline-block;
+}
+
+.img-shadow {
+    box-shadow: 0px 0px 3px 0px #919191;
+}
+
+
+/* For handle diferent bg color in AngularJS version */
+
+.dashboards\.dashboard_2 nav.navbar,
+.dashboards\.dashboard_3 nav.navbar,
+.mailbox\.inbox nav.navbar,
+.mailbox\.email_view nav.navbar,
+.mailbox\.email_compose nav.navbar,
+.dashboards\.dashboard_4_1 nav.navbar {
+    background: #fff;
+}
+
+
+/* For handle diferent bg color in MVC version */
+
+.Dashboard_2 .navbar.navbar-static-top,
+.Dashboard_3 .navbar.navbar-static-top,
+.Dashboard_4_1 .navbar.navbar-static-top,
+.ComposeEmail .navbar.navbar-static-top,
+.EmailView .navbar.navbar-static-top,
+.Inbox .navbar.navbar-static-top {
+    background: #fff;
+}
+
+a.close-canvas-menu {
+    position: absolute;
+    top: 10px;
+    right: 15px;
+    z-index: 1011;
+    color: #a7b1c2;
+}
+
+a.close-canvas-menu:hover {
+    color: #fff;
+}
+
+
+/* FULL HEIGHT */
+
+.full-height {
+    height: 100%;
+}
+
+.fh-breadcrumb {
+    height: calc(100% - 196px);
+    margin: 0 -15px;
+    position: relative;
+}
+
+.fh-no-breadcrumb {
+    height: calc(100% - 99px);
+    margin: 0 -15px;
+    position: relative;
+}
+
+.fh-column {
+    background: #fff;
+    height: 100%;
+    width: 240px;
+    float: left;
+}
+
+.modal-backdrop {
+    z-index: 2040 !important;
+}
+
+.modal {
+    z-index: 2050 !important;
+}
+
+.spiner-example {
+    height: 200px;
+    padding-top: 70px;
+}
+
+
+/* MARGINS & PADDINGS */
+
+.p-xxs {
+    padding: 5px;
+}
+
+.p-xs {
+    padding: 10px;
+}
+
+.p-sm {
+    padding: 15px;
+}
+
+.p-m {
+    padding: 20px;
+}
+
+.p-md {
+    padding: 25px;
+}
+
+.p-lg {
+    padding: 30px;
+}
+
+.p-xl {
+    padding: 40px;
+}
+
+.m-xxs {
+    margin: 2px 4px;
+}
+
+.m-xs {
+    margin: 5px;
+}
+
+.m-sm {
+    margin: 10px;
+}
+
+.m {
+    margin: 15px;
+}
+
+.m-md {
+    margin: 20px;
+}
+
+.m-lg {
+    margin: 30px;
+}
+
+.m-xl {
+    margin: 50px;
+}
+
+.m-n {
+    margin: 0 !important;
+}
+
+.m-l-none {
+    margin-left: 0;
+}
+
+.m-l-xs {
+    margin-left: 5px;
+}
+
+.m-l-sm {
+    margin-left: 10px;
+}
+
+.m-l {
+    margin-left: 15px;
+}
+
+.m-l-md {
+    margin-left: 20px;
+}
+
+.m-l-lg {
+    margin-left: 30px;
+}
+
+.m-l-xl {
+    margin-left: 40px;
+}
+
+.m-l-n-xxs {
+    margin-left: -1px;
+}
+
+.m-l-n-xs {
+    margin-left: -5px;
+}
+
+.m-l-n-sm {
+    margin-left: -10px;
+}
+
+.m-l-n {
+    margin-left: -15px;
+}
+
+.m-l-n-md {
+    margin-left: -20px;
+}
+
+.m-l-n-lg {
+    margin-left: -30px;
+}
+
+.m-l-n-xl {
+    margin-left: -40px;
+}
+
+.m-t-none {
+    margin-top: 0;
+}
+
+.m-t-xxs {
+    margin-top: 1px;
+}
+
+.m-t-xs {
+    margin-top: 5px;
+}
+
+.m-t-sm {
+    margin-top: 10px;
+}
+
+.m-t {
+    margin-top: 15px;
+}
+
+.m-t-md {
+    margin-top: 20px;
+}
+
+.m-t-lg {
+    margin-top: 30px;
+}
+
+.m-t-xl {
+    margin-top: 40px;
+}
+
+.m-t-n-xxs {
+    margin-top: -1px;
+}
+
+.m-t-n-xs {
+    margin-top: -5px;
+}
+
+.m-t-n-sm {
+    margin-top: -10px;
+}
+
+.m-t-n {
+    margin-top: -15px;
+}
+
+.m-t-n-md {
+    margin-top: -20px;
+}
+
+.m-t-n-lg {
+    margin-top: -30px;
+}
+
+.m-t-n-xl {
+    margin-top: -40px;
+}
+
+.m-r-none {
+    margin-right: 0;
+}
+
+.m-r-xxs {
+    margin-right: 1px;
+}
+
+.m-r-xs {
+    margin-right: 5px;
+}
+
+.m-r-sm {
+    margin-right: 10px;
+}
+
+.m-r {
+    margin-right: 15px;
+}
+
+.m-r-md {
+    margin-right: 20px;
+}
+
+.m-r-lg {
+    margin-right: 30px;
+}
+
+.m-r-xl {
+    margin-right: 40px;
+}
+
+.m-r-n-xxs {
+    margin-right: -1px;
+}
+
+.m-r-n-xs {
+    margin-right: -5px;
+}
+
+.m-r-n-sm {
+    margin-right: -10px;
+}
+
+.m-r-n {
+    margin-right: -15px;
+}
+
+.m-r-n-md {
+    margin-right: -20px;
+}
+
+.m-r-n-lg {
+    margin-right: -30px;
+}
+
+.m-r-n-xl {
+    margin-right: -40px;
+}
+
+.m-b-none {
+    margin-bottom: 0;
+}
+
+.m-b-xxs {
+    margin-bottom: 1px;
+}
+
+.m-b-xs {
+    margin-bottom: 5px;
+}
+
+.m-b-sm {
+    margin-bottom: 10px;
+}
+
+.m-b {
+    margin-bottom: 15px;
+}
+
+.m-b-md {
+    margin-bottom: 20px;
+}
+
+.m-b-lg {
+    margin-bottom: 30px;
+}
+
+.m-b-xl {
+    margin-bottom: 40px;
+}
+
+.m-b-n-xxs {
+    margin-bottom: -1px;
+}
+
+.m-b-n-xs {
+    margin-bottom: -5px;
+}
+
+.m-b-n-sm {
+    margin-bottom: -10px;
+}
+
+.m-b-n {
+    margin-bottom: -15px;
+}
+
+.m-b-n-md {
+    margin-bottom: -20px;
+}
+
+.m-b-n-lg {
+    margin-bottom: -30px;
+}
+
+.m-b-n-xl {
+    margin-bottom: -40px;
+}
+
+.space-15 {
+    margin: 15px 0;
+}
+
+.space-20 {
+    margin: 20px 0;
+}
+
+.space-25 {
+    margin: 25px 0;
+}
+
+.space-30 {
+    margin: 30px 0;
+}
+
+body.modal-open {
+    padding-right: inherit !important;
+}
+
+
+/* SEARCH PAGE */
+
+.search-form {
+    margin-top: 10px;
+}
+
+.search-result h3 {
+    margin-bottom: 0;
+    color: #1E0FBE;
+}
+
+.search-result .search-link {
+    color: #006621;
+}
+
+.search-result p {
+    font-size: 12px;
+    margin-top: 5px;
+}
+
+
+/* CONTACTS */
+
+.contact-box {
+    background-color: #ffffff;
+    border: 1px solid #e7eaec;
+    padding: 20px;
+    margin-bottom: 20px;
+}
+
+.contact-box a {
+    color: inherit;
+}
+
+
+/* INVOICE */
+
+.invoice-table tbody > tr > td:last-child,
+.invoice-table tbody > tr > td:nth-child(4),
+.invoice-table tbody > tr > td:nth-child(3),
+.invoice-table tbody > tr > td:nth-child(2) {
+    text-align: right;
+}
+
+.invoice-table thead > tr > th:last-child,
+.invoice-table thead > tr > th:nth-child(4),
+.invoice-table thead > tr > th:nth-child(3),
+.invoice-table thead > tr > th:nth-child(2) {
+    text-align: right;
+}
+
+.invoice-total > tbody > tr > td:first-child {
+    text-align: right;
+}
+
+.invoice-total > tbody > tr > td {
+    border: 0 none;
+}
+
+.invoice-total > tbody > tr > td:last-child {
+    border-bottom: 1px solid #DDDDDD;
+    text-align: right;
+    width: 15%;
+}
+
+
+/* ERROR & LOGIN & LOCKSCREEN*/
+
+.middle-box {
+    max-width: 400px;
+    z-index: 100;
+    margin: 0 auto;
+    padding-top: 40px;
+}
+
+.lockscreen.middle-box {
+    width: 200px;
+    padding-top: 110px;
+}
+
+.loginscreen.middle-box {
+    width: 300px;
+}
+
+.loginColumns {
+    max-width: 800px;
+    margin: 0 auto;
+    padding: 100px 20px 20px 20px;
+}
+
+.passwordBox {
+    max-width: 460px;
+    margin: 0 auto;
+    padding: 100px 20px 20px 20px;
+}
+
+.logo-name {
+    color: #e6e6e6;
+    font-size: 180px;
+    font-weight: 800;
+    letter-spacing: -10px;
+    margin-bottom: 0px;
+}
+
+.middle-box h1 {
+    font-size: 170px;
+}
+
+.wrapper .middle-box {
+    margin-top: 140px;
+}
+
+.lock-word {
+    z-index: 10;
+    position: absolute;
+    top: 110px;
+    left: 50%;
+    margin-left: -470px;
+}
+
+.lock-word span {
+    font-size: 100px;
+    font-weight: 600;
+    color: #e9e9e9;
+    display: inline-block;
+}
+
+.lock-word .first-word {
+    margin-right: 160px;
+}
+
+
+/* DASBOARD */
+
+.dashboard-header {
+    border-top: 0;
+    padding: 20px 20px 20px 20px;
+}
+
+.dashboard-header h2 {
+    margin-top: 10px;
+    font-size: 26px;
+}
+
+.fist-item {
+    border-top: none !important;
+}
+
+.statistic-box {
+    margin-top: 40px;
+}
+
+.dashboard-header .list-group-item span.label {
+    margin-right: 10px;
+}
+
+.list-group.clear-list .list-group-item {
+    border-top: 1px solid #e7eaec;
+    border-bottom: 0;
+    border-right: 0;
+    border-left: 0;
+    padding: 10px 0;
+}
+
+ul.clear-list:first-child {
+    border-top: none !important;
+}
+
+
+/* Intimeline */
+
+.timeline-item .date i {
+    position: absolute;
+    top: 0;
+    right: 0;
+    padding: 5px;
+    width: 30px;
+    text-align: center;
+    border-top: 1px solid #e7eaec;
+    border-bottom: 1px solid #e7eaec;
+    border-left: 1px solid #e7eaec;
+    background: #f8f8f8;
+}
+
+.timeline-item .date {
+    text-align: right;
+    width: 110px;
+    position: relative;
+    padding-top: 30px;
+}
+
+.timeline-item .content {
+    border-left: 1px solid #e7eaec;
+    border-top: 1px solid #e7eaec;
+    padding-top: 10px;
+    min-height: 100px;
+}
+
+.timeline-item .content:hover {
+    background: #f6f6f6;
+}
+
+
+/* PIN BOARD */
+
+ul.notes li,
+ul.tag-list li {
+    list-style: none;
+}
+
+ul.notes li h4 {
+    margin-top: 20px;
+    font-size: 16px;
+}
+
+ul.notes li div {
+    text-decoration: none;
+    color: #000;
+    background: #ffc;
+    display: block;
+    height: 140px;
+    width: 140px;
+    padding: 1em;
+    position: relative;
+}
+
+ul.notes li div small {
+    position: absolute;
+    top: 5px;
+    right: 5px;
+    font-size: 10px;
+}
+
+ul.notes li div a {
+    position: absolute;
+    right: 10px;
+    bottom: 10px;
+    color: inherit;
+}
+
+ul.notes li {
+    margin: 10px 40px 50px 0px;
+    float: left;
+}
+
+ul.notes li div p {
+    font-size: 12px;
+}
+
+ul.notes li div {
+    text-decoration: none;
+    color: #000;
+    background: #ffc;
+    display: block;
+    height: 140px;
+    width: 140px;
+    padding: 1em;
+    /* Firefox */
+    /* Safari+Chrome */
+    /* Opera */
+    box-shadow: 5px 5px 2px rgba(33, 33, 33, 0.7);
+}
+
+ul.notes li div {
+    -webkit-transform: rotate(-6deg);
+    -o-transform: rotate(-6deg);
+    -moz-transform: rotate(-6deg);
+}
+
+ul.notes li:nth-child(even) div {
+    -o-transform: rotate(4deg);
+    -webkit-transform: rotate(4deg);
+    -moz-transform: rotate(4deg);
+    position: relative;
+    top: 5px;
+}
+
+ul.notes li:nth-child(3n) div {
+    -o-transform: rotate(-3deg);
+    -webkit-transform: rotate(-3deg);
+    -moz-transform: rotate(-3deg);
+    position: relative;
+    top: -5px;
+}
+
+ul.notes li:nth-child(5n) div {
+    -o-transform: rotate(5deg);
+    -webkit-transform: rotate(5deg);
+    -moz-transform: rotate(5deg);
+    position: relative;
+    top: -10px;
+}
+
+ul.notes li div:hover,
+ul.notes li div:focus {
+    -webkit-transform: scale(1.1);
+    -moz-transform: scale(1.1);
+    -o-transform: scale(1.1);
+    position: relative;
+    z-index: 5;
+}
+
+ul.notes li div {
+    text-decoration: none;
+    color: #000;
+    background: #ffc;
+    display: block;
+    height: 210px;
+    width: 210px;
+    padding: 1em;
+    box-shadow: 5px 5px 7px rgba(33, 33, 33, 0.7);
+    -webkit-transition: -webkit-transform 0.15s linear;
+}
+
+
+/* FILE MANAGER */
+
+.file-box {
+    float: left;
+    width: 220px;
+}
+
+.file-manager h5 {
+    text-transform: uppercase;
+}
+
+.file-manager {
+    list-style: none outside none;
+    margin: 0;
+    padding: 0;
+}
+
+.folder-list li a {
+    color: #666666;
+    display: block;
+    padding: 5px 0;
+}
+
+.folder-list li {
+    border-bottom: 1px solid #e7eaec;
+    display: block;
+}
+
+.folder-list li i {
+    margin-right: 8px;
+    color: #3d4d5d;
+}
+
+.category-list li a {
+    color: #666666;
+    display: block;
+    padding: 5px 0;
+}
+
+.category-list li {
+    display: block;
+}
+
+.category-list li i {
+    margin-right: 8px;
+    color: #3d4d5d;
+}
+
+.category-list li a .text-navy {
+    color: #1ab394;
+}
+
+.category-list li a .text-primary {
+    color: #1c84c6;
+}
+
+.category-list li a .text-info {
+    color: #23c6c8;
+}
+
+.category-list li a .text-danger {
+    color: #EF5352;
+}
+
+.category-list li a .text-warning {
+    color: #F8AC59;
+}
+
+.file-manager h5.tag-title {
+    margin-top: 20px;
+}
+
+.tag-list li {
+    float: left;
+}
+
+.tag-list li a {
+    font-size: 10px;
+    background-color: #f3f3f4;
+    padding: 5px 12px;
+    color: inherit;
+    border-radius: 2px;
+    border: 1px solid #e7eaec;
+    margin-right: 5px;
+    margin-top: 5px;
+    display: block;
+}
+
+.file {
+    border: 1px solid #e7eaec;
+    padding: 0;
+    background-color: #ffffff;
+    position: relative;
+    margin-bottom: 20px;
+    margin-right: 20px;
+}
+
+.file-manager .hr-line-dashed {
+    margin: 15px 0;
+}
+
+.file .icon,
+.file .image {
+    height: 100px;
+    overflow: hidden;
+}
+
+.file .icon {
+    padding: 15px 10px;
+    text-align: center;
+}
+
+.file-control {
+    color: inherit;
+    font-size: 11px;
+    margin-right: 10px;
+}
+
+.file-control.active {
+    text-decoration: underline;
+}
+
+.file .icon i {
+    font-size: 70px;
+    color: #dadada;
+}
+
+.file .file-name {
+    padding: 10px;
+    background-color: #f8f8f8;
+    border-top: 1px solid #e7eaec;
+}
+
+.file-name small {
+    color: #676a6c;
+}
+
+.corner {
+    position: absolute;
+    display: inline-block;
+    width: 0;
+    height: 0;
+    line-height: 0;
+    border: 0.6em solid transparent;
+    border-right: 0.6em solid #f1f1f1;
+    border-bottom: 0.6em solid #f1f1f1;
+    right: 0em;
+    bottom: 0em;
+}
+
+a.compose-mail {
+    padding: 8px 10px;
+}
+
+.mail-search {
+    max-width: 300px;
+}
+
+
+/* PROFILE */
+
+.profile-content {
+    border-top: none !important;
+}
+
+.feed-activity-list .feed-element {
+    border-bottom: 1px solid #e7eaec;
+}
+
+.feed-element:first-child {
+    margin-top: 0;
+}
+
+.feed-element {
+    padding-bottom: 15px;
+}
+
+.feed-element,
+.feed-element .media {
+    margin-top: 15px;
+}
+
+.feed-element,
+.media-body {
+    overflow: hidden;
+}
+
+.feed-element > .pull-left {
+    margin-right: 10px;
+}
+
+.feed-element img.img-circle,
+.dropdown-messages-box img.img-circle {
+    width: 38px;
+    height: 38px;
+}
+
+.feed-element .well {
+    border: 1px solid #e7eaec;
+    box-shadow: none;
+    margin-top: 10px;
+    margin-bottom: 5px;
+    padding: 10px 20px;
+    font-size: 11px;
+    line-height: 16px;
+}
+
+.feed-element .actions {
+    margin-top: 10px;
+}
+
+.feed-element .photos {
+    margin: 10px 0;
+}
+
+.feed-photo {
+    max-height: 180px;
+    border-radius: 4px;
+    overflow: hidden;
+    margin-right: 10px;
+    margin-bottom: 10px;
+}
+
+
+/* MAILBOX */
+
+.mail-box {
+    background-color: #ffffff;
+    border: 1px solid #e7eaec;
+    border-top: 0;
+    padding: 0px;
+    margin-bottom: 20px;
+}
+
+.mail-box-header {
+    background-color: #ffffff;
+    border: 1px solid #e7eaec;
+    border-bottom: 0;
+    padding: 30px 20px 20px 20px;
+}
+
+.mail-box-header h2 {
+    margin-top: 0px;
+}
+
+.mailbox-content .tag-list li a {
+    background: #ffffff;
+}
+
+.mail-body {
+    border-top: 1px solid #e7eaec;
+    padding: 20px;
+}
+
+.mail-text {
+    border-top: 1px solid #e7eaec;
+}
+
+.mail-text .note-toolbar {
+    padding: 10px 15px;
+}
+
+.mail-body .form-group {
+    margin-bottom: 5px;
+}
+
+.mail-text .note-editor .note-toolbar {
+    background-color: #F9F8F8;
+}
+
+.mail-attachment {
+    border-top: 1px solid #e7eaec;
+    padding: 20px;
+    font-size: 12px;
+}
+
+.mailbox-content {
+    background: none;
+    border: none;
+    padding: 10px;
+}
+
+.mail-ontact {
+    width: 23%;
+}
+
+
+/* PROJECTS */
+
+.project-people,
+.project-actions {
+    text-align: right;
+    vertical-align: middle;
+}
+
+dd.project-people {
+    text-align: left;
+    margin-top: 5px;
+}
+
+.project-people img {
+    width: 32px;
+    height: 32px;
+}
+
+.project-title a {
+    font-size: 14px;
+    color: #676a6c;
+    font-weight: 600;
+}
+
+.project-list table tr td {
+    border-top: none;
+    border-bottom: 1px solid #e7eaec;
+    padding: 15px 10px;
+    vertical-align: middle;
+}
+
+.project-manager .tag-list li a {
+    font-size: 10px;
+    background-color: white;
+    padding: 5px 12px;
+    color: inherit;
+    border-radius: 2px;
+    border: 1px solid #e7eaec;
+    margin-right: 5px;
+    margin-top: 5px;
+    display: block;
+}
+
+.project-files li a {
+    font-size: 11px;
+    color: #676a6c;
+    margin-left: 10px;
+    line-height: 22px;
+}
+
+
+/* FAQ */
+
+.faq-item {
+    padding: 20px;
+    margin-bottom: 2px;
+    background: #fff;
+}
+
+.faq-question {
+    font-size: 18px;
+    font-weight: 600;
+    color: #1ab394;
+    display: block;
+}
+
+.faq-question:hover {
+    color: #179d82;
+}
+
+.faq-answer {
+    margin-top: 10px;
+    background: #f3f3f4;
+    border: 1px solid #e7eaec;
+    border-radius: 3px;
+    padding: 15px;
+}
+
+.faq-item .tag-item {
+    background: #f3f3f4;
+    padding: 2px 6px;
+    font-size: 10px;
+    text-transform: uppercase;
+}
+
+
+/* Chat view */
+
+.message-input {
+    height: 90px !important;
+}
+
+.chat-avatar {
+    white: 36px;
+    height: 36px;
+    float: left;
+    margin-right: 10px;
+}
+
+.chat-user-name {
+    padding: 10px;
+}
+
+.chat-user {
+    padding: 8px 10px;
+    border-bottom: 1px solid #e7eaec;
+}
+
+.chat-user a {
+    color: inherit;
+}
+
+.chat-view {
+    z-index: 20012;
+}
+
+.chat-users,
+.chat-statistic {
+    margin-left: -30px;
+}
+
+@media (max-width: 992px) {
+    .chat-users,
+    .chat-statistic {
+        margin-left: 0px;
+    }
+}
+
+.chat-view .ibox-content {
+    padding: 0;
+}
+
+.chat-message {
+    padding: 10px 20px;
+}
+
+.message-avatar {
+    height: 48px;
+    width: 48px;
+    border: 1px solid #e7eaec;
+    border-radius: 4px;
+    margin-top: 1px;
+}
+
+.chat-discussion .chat-message:nth-child(2n+1) .message-avatar {
+    float: left;
+    margin-right: 10px;
+}
+
+.chat-discussion .chat-message:nth-child(2n) .message-avatar {
+    float: right;
+    margin-left: 10px;
+}
+
+.message {
+    background-color: #fff;
+    border: 1px solid #e7eaec;
+    text-align: left;
+    display: block;
+    padding: 10px 20px;
+    position: relative;
+    border-radius: 4px;
+}
+
+.chat-discussion .chat-message:nth-child(2n+1) .message-date {
+    float: right;
+}
+
+.chat-discussion .chat-message:nth-child(2n) .message-date {
+    float: left;
+}
+
+.chat-discussion .chat-message:nth-child(2n+1) .message {
+    text-align: left;
+    margin-left: 55px;
+}
+
+.chat-discussion .chat-message:nth-child(2n) .message {
+    text-align: right;
+    margin-right: 55px;
+}
+
+.message-date {
+    font-size: 10px;
+    color: #888888;
+}
+
+.message-content {
+    display: block;
+}
+
+.chat-discussion {
+    background: #eee;
+    padding: 15px;
+    height: 400px;
+    overflow-y: auto;
+}
+
+.chat-users {
+    overflow-y: auto;
+    height: 400px;
+}
+
+.chat-message-form .form-group {
+    margin-bottom: 0;
+}
+
+
+/* jsTree */
+
+.jstree-open > .jstree-anchor > .fa-folder:before {
+    content: "\f07c";
+}
+
+.jstree-default .jstree-icon.none {
+    width: 0;
+}
+
+
+/* CLIENTS */
+
+.clients-list {
+    margin-top: 20px;
+}
+
+.clients-list .tab-pane {
+    position: relative;
+    height: 600px;
+}
+
+.client-detail {
+    position: relative;
+    height: 620px;
+}
+
+.clients-list table tr td {
+    height: 46px;
+    vertical-align: middle;
+    border: none;
+}
+
+.client-link {
+    font-weight: 600;
+    color: inherit;
+}
+
+.client-link:hover {
+    color: inherit;
+}
+
+.client-avatar {
+    width: 42px;
+}
+
+.client-avatar img {
+    width: 28px;
+    height: 28px;
+    border-radius: 50%;
+}
+
+.contact-type {
+    width: 20px;
+    color: #c1c3c4;
+}
+
+.client-status {
+    text-align: left;
+}
+
+.client-detail .vertical-timeline-content p {
+    margin: 0;
+}
+
+.client-detail .vertical-timeline-icon.gray-bg {
+    color: #a7aaab;
+}
+
+.clients-list .nav-tabs > li.active > a,
+.clients-list .nav-tabs > li.active > a:hover,
+.clients-list .nav-tabs > li.active > a:focus {
+    border-bottom: 1px solid #fff;
+}
+
+
+/* BLOG ARTICLE */
+
+.blog h2 {
+    font-weight: 700;
+}
+
+.blog h5 {
+    margin: 0 0 5px 0;
+}
+
+.blog .btn {
+    margin: 0 0 5px 0;
+}
+
+.article h1 {
+    font-size: 48px;
+    font-weight: 700;
+    color: #2F4050;
+}
+
+.article p {
+    font-size: 15px;
+    line-height: 26px;
+}
+
+.article-title {
+    text-align: center;
+    margin: 60px 0 40px 0;
+}
+
+.article .ibox-content {
+    padding: 40px;
+}
+
+
+/* ISSUE TRACKER */
+
+.issue-tracker .btn-link {
+    color: #1ab394;
+}
+
+table.issue-tracker tbody tr td {
+    vertical-align: middle;
+    height: 50px;
+}
+
+.issue-info {
+    width: 50%;
+}
+
+.issue-info a {
+    font-weight: 600;
+    color: #676a6c;
+}
+
+.issue-info small {
+    display: block;
+}
+
+
+/* TEAMS */
+
+.team-members {
+    margin: 10px 0;
+}
+
+.team-members img.img-circle {
+    width: 42px;
+    height: 42px;
+    margin-bottom: 5px;
+}
+
+
+/* AGILE BOARD */
+
+.sortable-list {
+    padding: 10px 0;
+}
+
+.agile-list {
+    list-style: none;
+    margin: 0;
+}
+
+.agile-list li {
+    background: #FAFAFB;
+    border: 1px solid #e7eaec;
+    margin: 0px 0 10px 0;
+    padding: 10px;
+    border-radius: 2px;
+}
+
+.agile-list li:hover {
+    cursor: pointer;
+    background: #fff;
+}
+
+.agile-list li.warning-element {
+    border-left: 3px solid #f8ac59;
+}
+
+.agile-list li.danger-element {
+    border-left: 3px solid #ed5565;
+}
+
+.agile-list li.info-element {
+    border-left: 3px solid #1c84c6;
+}
+
+.agile-list li.success-element {
+    border-left: 3px solid #1ab394;
+}
+
+.agile-detail {
+    margin-top: 5px;
+    font-size: 12px;
+}
+
+
+/* DIFF */
+
+ins {
+    background-color: #c6ffc6;
+    text-decoration: none;
+}
+
+del {
+    background-color: #ffc6c6;
+}
+
+#small-chat {
+    position: fixed;
+    bottom: 50px;
+    right: 26px;
+    z-index: 100;
+}
+
+#small-chat .badge {
+    position: absolute;
+    top: -3px;
+    right: -4px;
+}
+
+.open-small-chat {
+    height: 38px;
+    width: 38px;
+    display: block;
+    background: #1ab394;
+    padding: 9px 8px;
+    text-align: center;
+    color: #fff;
+    border-radius: 50%;
+}
+
+.open-small-chat:hover {
+    color: white;
+    background: #1ab394;
+}
+
+.small-chat-box {
+    display: none;
+    position: fixed;
+    bottom: 50px;
+    right: 80px;
+    background: #fff;
+    border: 1px solid #e7eaec;
+    width: 230px;
+    height: 320px;
+    border-radius: 4px;
+}
+
+.small-chat-box.ng-small-chat {
+    display: block;
+}
+
+.body-small .small-chat-box {
+    bottom: 70px;
+    right: 20px;
+}
+
+.small-chat-box.active {
+    display: block;
+}
+
+.small-chat-box .heading {
+    background: #2f4050;
+    padding: 8px 15px;
+    font-weight: bold;
+    color: #fff;
+}
+
+.small-chat-box .chat-date {
+    opacity: 0.6;
+    font-size: 10px;
+    font-weight: normal;
+}
+
+.small-chat-box .content {
+    padding: 15px 15px;
+}
+
+.small-chat-box .content .author-name {
+    font-weight: bold;
+    margin-bottom: 3px;
+    font-size: 11px;
+}
+
+.small-chat-box .content > div {
+    padding-bottom: 20px;
+}
+
+.small-chat-box .content .chat-message {
+    padding: 5px 10px;
+    border-radius: 6px;
+    font-size: 11px;
+    line-height: 14px;
+    max-width: 80%;
+    background: #f3f3f4;
+    margin-bottom: 10px;
+}
+
+.small-chat-box .content .chat-message.active {
+    background: #1ab394;
+    color: #fff;
+}
+
+.small-chat-box .content .left {
+    text-align: left;
+    clear: both;
+}
+
+.small-chat-box .content .left .chat-message {
+    float: left;
+}
+
+.small-chat-box .content .right {
+    text-align: right;
+    clear: both;
+}
+
+.small-chat-box .content .right .chat-message {
+    float: right;
+}
+
+.small-chat-box .form-chat {
+    padding: 10px 10px;
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-rotating-plane"></div>
+ *
+ */
+
+.sk-spinner-rotating-plane.sk-spinner {
+    width: 30px;
+    height: 30px;
+    background-color: #1ab394;
+    margin: 0 auto;
+    -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
+    animation: sk-rotatePlane 1.2s infinite ease-in-out;
+}
+
+@-webkit-keyframes sk-rotatePlane {
+    0% {
+        -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+        transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+    }
+    50% {
+        -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+        transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+    }
+    100% {
+        -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+        transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+    }
+}
+
+@keyframes sk-rotatePlane {
+    0% {
+        -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+        transform: perspective(120px) rotateX(0deg) rotateY(0deg);
+    }
+    50% {
+        -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+        transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
+    }
+    100% {
+        -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+        transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-double-bounce">
+ *      <div class="sk-double-bounce1"></div>
+ *      <div class="sk-double-bounce2"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-double-bounce.sk-spinner {
+    width: 40px;
+    height: 40px;
+    position: relative;
+    margin: 0 auto;
+}
+
+.sk-spinner-double-bounce .sk-double-bounce1,
+.sk-spinner-double-bounce .sk-double-bounce2 {
+    width: 100%;
+    height: 100%;
+    border-radius: 50%;
+    background-color: #1ab394;
+    opacity: 0.6;
+    position: absolute;
+    top: 0;
+    left: 0;
+    -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
+    animation: sk-doubleBounce 2s infinite ease-in-out;
+}
+
+.sk-spinner-double-bounce .sk-double-bounce2 {
+    -webkit-animation-delay: -1s;
+    animation-delay: -1s;
+}
+
+@-webkit-keyframes sk-doubleBounce {
+    0%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    50% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+@keyframes sk-doubleBounce {
+    0%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    50% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-wave">
+ *      <div class="sk-rect1"></div>
+ *      <div class="sk-rect2"></div>
+ *      <div class="sk-rect3"></div>
+ *      <div class="sk-rect4"></div>
+ *      <div class="sk-rect5"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-wave.sk-spinner {
+    margin: 0 auto;
+    width: 50px;
+    height: 30px;
+    text-align: center;
+    font-size: 10px;
+}
+
+.sk-spinner-wave div {
+    background-color: #1ab394;
+    height: 100%;
+    width: 6px;
+    display: inline-block;
+    -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
+    animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
+}
+
+.sk-spinner-wave .sk-rect2 {
+    -webkit-animation-delay: -1.1s;
+    animation-delay: -1.1s;
+}
+
+.sk-spinner-wave .sk-rect3 {
+    -webkit-animation-delay: -1s;
+    animation-delay: -1s;
+}
+
+.sk-spinner-wave .sk-rect4 {
+    -webkit-animation-delay: -0.9s;
+    animation-delay: -0.9s;
+}
+
+.sk-spinner-wave .sk-rect5 {
+    -webkit-animation-delay: -0.8s;
+    animation-delay: -0.8s;
+}
+
+@-webkit-keyframes sk-waveStretchDelay {
+    0%,
+    40%,
+    100% {
+        -webkit-transform: scaleY(0.4);
+        transform: scaleY(0.4);
+    }
+    20% {
+        -webkit-transform: scaleY(1);
+        transform: scaleY(1);
+    }
+}
+
+@keyframes sk-waveStretchDelay {
+    0%,
+    40%,
+    100% {
+        -webkit-transform: scaleY(0.4);
+        transform: scaleY(0.4);
+    }
+    20% {
+        -webkit-transform: scaleY(1);
+        transform: scaleY(1);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-wandering-cubes">
+ *      <div class="sk-cube1"></div>
+ *      <div class="sk-cube2"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-wandering-cubes.sk-spinner {
+    margin: 0 auto;
+    width: 32px;
+    height: 32px;
+    position: relative;
+}
+
+.sk-spinner-wandering-cubes .sk-cube1,
+.sk-spinner-wandering-cubes .sk-cube2 {
+    background-color: #1ab394;
+    width: 10px;
+    height: 10px;
+    position: absolute;
+    top: 0;
+    left: 0;
+    -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
+    animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
+}
+
+.sk-spinner-wandering-cubes .sk-cube2 {
+    -webkit-animation-delay: -0.9s;
+    animation-delay: -0.9s;
+}
+
+@-webkit-keyframes sk-wanderingCubeMove {
+    25% {
+        -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
+        transform: translateX(42px) rotate(-90deg) scale(0.5);
+    }
+    50% {
+        /* Hack to make FF rotate in the right direction */
+        -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
+        transform: translateX(42px) translateY(42px) rotate(-179deg);
+    }
+    50.1% {
+        -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
+        transform: translateX(42px) translateY(42px) rotate(-180deg);
+    }
+    75% {
+        -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+        transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+    }
+    100% {
+        -webkit-transform: rotate(-360deg);
+        transform: rotate(-360deg);
+    }
+}
+
+@keyframes sk-wanderingCubeMove {
+    25% {
+        -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
+        transform: translateX(42px) rotate(-90deg) scale(0.5);
+    }
+    50% {
+        /* Hack to make FF rotate in the right direction */
+        -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
+        transform: translateX(42px) translateY(42px) rotate(-179deg);
+    }
+    50.1% {
+        -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
+        transform: translateX(42px) translateY(42px) rotate(-180deg);
+    }
+    75% {
+        -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+        transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
+    }
+    100% {
+        -webkit-transform: rotate(-360deg);
+        transform: rotate(-360deg);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-pulse"></div>
+ *
+ */
+
+.sk-spinner-pulse.sk-spinner {
+    width: 40px;
+    height: 40px;
+    margin: 0 auto;
+    background-color: #1ab394;
+    border-radius: 100%;
+    -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
+    animation: sk-pulseScaleOut 1s infinite ease-in-out;
+}
+
+@-webkit-keyframes sk-pulseScaleOut {
+    0% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    100% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+        opacity: 0;
+    }
+}
+
+@keyframes sk-pulseScaleOut {
+    0% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    100% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+        opacity: 0;
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-chasing-dots">
+ *      <div class="sk-dot1"></div>
+ *      <div class="sk-dot2"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-chasing-dots.sk-spinner {
+    margin: 0 auto;
+    width: 40px;
+    height: 40px;
+    position: relative;
+    text-align: center;
+    -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
+    animation: sk-chasingDotsRotate 2s infinite linear;
+}
+
+.sk-spinner-chasing-dots .sk-dot1,
+.sk-spinner-chasing-dots .sk-dot2 {
+    width: 60%;
+    height: 60%;
+    display: inline-block;
+    position: absolute;
+    top: 0;
+    background-color: #1ab394;
+    border-radius: 100%;
+    -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
+    animation: sk-chasingDotsBounce 2s infinite ease-in-out;
+}
+
+.sk-spinner-chasing-dots .sk-dot2 {
+    top: auto;
+    bottom: 0px;
+    -webkit-animation-delay: -1s;
+    animation-delay: -1s;
+}
+
+@-webkit-keyframes sk-chasingDotsRotate {
+    100% {
+        -webkit-transform: rotate(360deg);
+        transform: rotate(360deg);
+    }
+}
+
+@keyframes sk-chasingDotsRotate {
+    100% {
+        -webkit-transform: rotate(360deg);
+        transform: rotate(360deg);
+    }
+}
+
+@-webkit-keyframes sk-chasingDotsBounce {
+    0%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    50% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+@keyframes sk-chasingDotsBounce {
+    0%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    50% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-three-bounce">
+ *      <div class="sk-bounce1"></div>
+ *      <div class="sk-bounce2"></div>
+ *      <div class="sk-bounce3"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-three-bounce.sk-spinner {
+    margin: 0 auto;
+    width: 70px;
+    text-align: center;
+}
+
+.sk-spinner-three-bounce div {
+    width: 18px;
+    height: 18px;
+    background-color: #1ab394;
+    border-radius: 100%;
+    display: inline-block;
+    -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+    animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
+    /* Prevent first frame from flickering when animation starts */
+    -webkit-animation-fill-mode: both;
+    animation-fill-mode: both;
+}
+
+.sk-spinner-three-bounce .sk-bounce1 {
+    -webkit-animation-delay: -0.32s;
+    animation-delay: -0.32s;
+}
+
+.sk-spinner-three-bounce .sk-bounce2 {
+    -webkit-animation-delay: -0.16s;
+    animation-delay: -0.16s;
+}
+
+@-webkit-keyframes sk-threeBounceDelay {
+    0%,
+    80%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    40% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+@keyframes sk-threeBounceDelay {
+    0%,
+    80%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    40% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-circle">
+ *      <div class="sk-circle1 sk-circle"></div>
+ *      <div class="sk-circle2 sk-circle"></div>
+ *      <div class="sk-circle3 sk-circle"></div>
+ *      <div class="sk-circle4 sk-circle"></div>
+ *      <div class="sk-circle5 sk-circle"></div>
+ *      <div class="sk-circle6 sk-circle"></div>
+ *      <div class="sk-circle7 sk-circle"></div>
+ *      <div class="sk-circle8 sk-circle"></div>
+ *      <div class="sk-circle9 sk-circle"></div>
+ *      <div class="sk-circle10 sk-circle"></div>
+ *      <div class="sk-circle11 sk-circle"></div>
+ *      <div class="sk-circle12 sk-circle"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-circle.sk-spinner {
+    margin: 0 auto;
+    width: 22px;
+    height: 22px;
+    position: relative;
+}
+
+.sk-spinner-circle .sk-circle {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    left: 0;
+    top: 0;
+}
+
+.sk-spinner-circle .sk-circle:before {
+    content: '';
+    display: block;
+    margin: 0 auto;
+    width: 20%;
+    height: 20%;
+    background-color: #1ab394;
+    border-radius: 100%;
+    -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+    animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
+    /* Prevent first frame from flickering when animation starts */
+    -webkit-animation-fill-mode: both;
+    animation-fill-mode: both;
+}
+
+.sk-spinner-circle .sk-circle2 {
+    -webkit-transform: rotate(30deg);
+    -ms-transform: rotate(30deg);
+    transform: rotate(30deg);
+}
+
+.sk-spinner-circle .sk-circle3 {
+    -webkit-transform: rotate(60deg);
+    -ms-transform: rotate(60deg);
+    transform: rotate(60deg);
+}
+
+.sk-spinner-circle .sk-circle4 {
+    -webkit-transform: rotate(90deg);
+    -ms-transform: rotate(90deg);
+    transform: rotate(90deg);
+}
+
+.sk-spinner-circle .sk-circle5 {
+    -webkit-transform: rotate(120deg);
+    -ms-transform: rotate(120deg);
+    transform: rotate(120deg);
+}
+
+.sk-spinner-circle .sk-circle6 {
+    -webkit-transform: rotate(150deg);
+    -ms-transform: rotate(150deg);
+    transform: rotate(150deg);
+}
+
+.sk-spinner-circle .sk-circle7 {
+    -webkit-transform: rotate(180deg);
+    -ms-transform: rotate(180deg);
+    transform: rotate(180deg);
+}
+
+.sk-spinner-circle .sk-circle8 {
+    -webkit-transform: rotate(210deg);
+    -ms-transform: rotate(210deg);
+    transform: rotate(210deg);
+}
+
+.sk-spinner-circle .sk-circle9 {
+    -webkit-transform: rotate(240deg);
+    -ms-transform: rotate(240deg);
+    transform: rotate(240deg);
+}
+
+.sk-spinner-circle .sk-circle10 {
+    -webkit-transform: rotate(270deg);
+    -ms-transform: rotate(270deg);
+    transform: rotate(270deg);
+}
+
+.sk-spinner-circle .sk-circle11 {
+    -webkit-transform: rotate(300deg);
+    -ms-transform: rotate(300deg);
+    transform: rotate(300deg);
+}
+
+.sk-spinner-circle .sk-circle12 {
+    -webkit-transform: rotate(330deg);
+    -ms-transform: rotate(330deg);
+    transform: rotate(330deg);
+}
+
+.sk-spinner-circle .sk-circle2:before {
+    -webkit-animation-delay: -1.1s;
+    animation-delay: -1.1s;
+}
+
+.sk-spinner-circle .sk-circle3:before {
+    -webkit-animation-delay: -1s;
+    animation-delay: -1s;
+}
+
+.sk-spinner-circle .sk-circle4:before {
+    -webkit-animation-delay: -0.9s;
+    animation-delay: -0.9s;
+}
+
+.sk-spinner-circle .sk-circle5:before {
+    -webkit-animation-delay: -0.8s;
+    animation-delay: -0.8s;
+}
+
+.sk-spinner-circle .sk-circle6:before {
+    -webkit-animation-delay: -0.7s;
+    animation-delay: -0.7s;
+}
+
+.sk-spinner-circle .sk-circle7:before {
+    -webkit-animation-delay: -0.6s;
+    animation-delay: -0.6s;
+}
+
+.sk-spinner-circle .sk-circle8:before {
+    -webkit-animation-delay: -0.5s;
+    animation-delay: -0.5s;
+}
+
+.sk-spinner-circle .sk-circle9:before {
+    -webkit-animation-delay: -0.4s;
+    animation-delay: -0.4s;
+}
+
+.sk-spinner-circle .sk-circle10:before {
+    -webkit-animation-delay: -0.3s;
+    animation-delay: -0.3s;
+}
+
+.sk-spinner-circle .sk-circle11:before {
+    -webkit-animation-delay: -0.2s;
+    animation-delay: -0.2s;
+}
+
+.sk-spinner-circle .sk-circle12:before {
+    -webkit-animation-delay: -0.1s;
+    animation-delay: -0.1s;
+}
+
+@-webkit-keyframes sk-circleBounceDelay {
+    0%,
+    80%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    40% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+@keyframes sk-circleBounceDelay {
+    0%,
+    80%,
+    100% {
+        -webkit-transform: scale(0);
+        transform: scale(0);
+    }
+    40% {
+        -webkit-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-cube-grid">
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *      <div class="sk-cube"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-cube-grid {
+    /*
+   * Spinner positions
+   * 1 2 3
+   * 4 5 6
+   * 7 8 9
+   */
+}
+
+.sk-spinner-cube-grid.sk-spinner {
+    width: 30px;
+    height: 30px;
+    margin: 0 auto;
+}
+
+.sk-spinner-cube-grid .sk-cube {
+    width: 33%;
+    height: 33%;
+    background-color: #1ab394;
+    float: left;
+    -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
+    animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(1) {
+    -webkit-animation-delay: 0.2s;
+    animation-delay: 0.2s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(2) {
+    -webkit-animation-delay: 0.3s;
+    animation-delay: 0.3s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(3) {
+    -webkit-animation-delay: 0.4s;
+    animation-delay: 0.4s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(4) {
+    -webkit-animation-delay: 0.1s;
+    animation-delay: 0.1s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(5) {
+    -webkit-animation-delay: 0.2s;
+    animation-delay: 0.2s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(6) {
+    -webkit-animation-delay: 0.3s;
+    animation-delay: 0.3s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(7) {
+    -webkit-animation-delay: 0s;
+    animation-delay: 0s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(8) {
+    -webkit-animation-delay: 0.1s;
+    animation-delay: 0.1s;
+}
+
+.sk-spinner-cube-grid .sk-cube:nth-child(9) {
+    -webkit-animation-delay: 0.2s;
+    animation-delay: 0.2s;
+}
+
+@-webkit-keyframes sk-cubeGridScaleDelay {
+    0%,
+    70%,
+    100% {
+        -webkit-transform: scale3D(1, 1, 1);
+        transform: scale3D(1, 1, 1);
+    }
+    35% {
+        -webkit-transform: scale3D(0, 0, 1);
+        transform: scale3D(0, 0, 1);
+    }
+}
+
+@keyframes sk-cubeGridScaleDelay {
+    0%,
+    70%,
+    100% {
+        -webkit-transform: scale3D(1, 1, 1);
+        transform: scale3D(1, 1, 1);
+    }
+    35% {
+        -webkit-transform: scale3D(0, 0, 1);
+        transform: scale3D(0, 0, 1);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-wordpress">
+ *      <span class="sk-inner-circle"></span>
+ *    </div>
+ *
+ */
+
+.sk-spinner-wordpress.sk-spinner {
+    background-color: #1ab394;
+    width: 30px;
+    height: 30px;
+    border-radius: 30px;
+    position: relative;
+    margin: 0 auto;
+    -webkit-animation: sk-innerCircle 1s linear infinite;
+    animation: sk-innerCircle 1s linear infinite;
+}
+
+.sk-spinner-wordpress .sk-inner-circle {
+    display: block;
+    background-color: #fff;
+    width: 8px;
+    height: 8px;
+    position: absolute;
+    border-radius: 8px;
+    top: 5px;
+    left: 5px;
+}
+
+@-webkit-keyframes sk-innerCircle {
+    0% {
+        -webkit-transform: rotate(0);
+        transform: rotate(0);
+    }
+    100% {
+        -webkit-transform: rotate(360deg);
+        transform: rotate(360deg);
+    }
+}
+
+@keyframes sk-innerCircle {
+    0% {
+        -webkit-transform: rotate(0);
+        transform: rotate(0);
+    }
+    100% {
+        -webkit-transform: rotate(360deg);
+        transform: rotate(360deg);
+    }
+}
+
+
+/*
+ *  Usage:
+ *
+ *    <div class="sk-spinner sk-spinner-fading-circle">
+ *      <div class="sk-circle1 sk-circle"></div>
+ *      <div class="sk-circle2 sk-circle"></div>
+ *      <div class="sk-circle3 sk-circle"></div>
+ *      <div class="sk-circle4 sk-circle"></div>
+ *      <div class="sk-circle5 sk-circle"></div>
+ *      <div class="sk-circle6 sk-circle"></div>
+ *      <div class="sk-circle7 sk-circle"></div>
+ *      <div class="sk-circle8 sk-circle"></div>
+ *      <div class="sk-circle9 sk-circle"></div>
+ *      <div class="sk-circle10 sk-circle"></div>
+ *      <div class="sk-circle11 sk-circle"></div>
+ *      <div class="sk-circle12 sk-circle"></div>
+ *    </div>
+ *
+ */
+
+.sk-spinner-fading-circle.sk-spinner {
+    margin: 0 auto;
+    width: 22px;
+    height: 22px;
+    position: relative;
+}
+
+.sk-spinner-fading-circle .sk-circle {
+    width: 100%;
+    height: 100%;
+    position: absolute;
+    left: 0;
+    top: 0;
+}
+
+.sk-spinner-fading-circle .sk-circle:before {
+    content: '';
+    display: block;
+    margin: 0 auto;
+    width: 18%;
+    height: 18%;
+    background-color: #1ab394;
+    border-radius: 100%;
+    -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+    animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
+    /* Prevent first frame from flickering when animation starts */
+    -webkit-animation-fill-mode: both;
+    animation-fill-mode: both;
+}
+
+.sk-spinner-fading-circle .sk-circle2 {
+    -webkit-transform: rotate(30deg);
+    -ms-transform: rotate(30deg);
+    transform: rotate(30deg);
+}
+
+.sk-spinner-fading-circle .sk-circle3 {
+    -webkit-transform: rotate(60deg);
+    -ms-transform: rotate(60deg);
+    transform: rotate(60deg);
+}
+
+.sk-spinner-fading-circle .sk-circle4 {
+    -webkit-transform: rotate(90deg);
+    -ms-transform: rotate(90deg);
+    transform: rotate(90deg);
+}
+
+.sk-spinner-fading-circle .sk-circle5 {
+    -webkit-transform: rotate(120deg);
+    -ms-transform: rotate(120deg);
+    transform: rotate(120deg);
+}
+
+.sk-spinner-fading-circle .sk-circle6 {
+    -webkit-transform: rotate(150deg);
+    -ms-transform: rotate(150deg);
+    transform: rotate(150deg);
+}
+
+.sk-spinner-fading-circle .sk-circle7 {
+    -webkit-transform: rotate(180deg);
+    -ms-transform: rotate(180deg);
+    transform: rotate(180deg);
+}
+
+.sk-spinner-fading-circle .sk-circle8 {
+    -webkit-transform: rotate(210deg);
+    -ms-transform: rotate(210deg);
+    transform: rotate(210deg);
+}
+
+.sk-spinner-fading-circle .sk-circle9 {
+    -webkit-transform: rotate(240deg);
+    -ms-transform: rotate(240deg);
+    transform: rotate(240deg);
+}
+
+.sk-spinner-fading-circle .sk-circle10 {
+    -webkit-transform: rotate(270deg);
+    -ms-transform: rotate(270deg);
+    transform: rotate(270deg);
+}
+
+.sk-spinner-fading-circle .sk-circle11 {
+    -webkit-transform: rotate(300deg);
+    -ms-transform: rotate(300deg);
+    transform: rotate(300deg);
+}
+
+.sk-spinner-fading-circle .sk-circle12 {
+    -webkit-transform: rotate(330deg);
+    -ms-transform: rotate(330deg);
+    transform: rotate(330deg);
+}
+
+.sk-spinner-fading-circle .sk-circle2:before {
+    -webkit-animation-delay: -1.1s;
+    animation-delay: -1.1s;
+}
+
+.sk-spinner-fading-circle .sk-circle3:before {
+    -webkit-animation-delay: -1s;
+    animation-delay: -1s;
+}
+
+.sk-spinner-fading-circle .sk-circle4:before {
+    -webkit-animation-delay: -0.9s;
+    animation-delay: -0.9s;
+}
+
+.sk-spinner-fading-circle .sk-circle5:before {
+    -webkit-animation-delay: -0.8s;
+    animation-delay: -0.8s;
+}
+
+.sk-spinner-fading-circle .sk-circle6:before {
+    -webkit-animation-delay: -0.7s;
+    animation-delay: -0.7s;
+}
+
+.sk-spinner-fading-circle .sk-circle7:before {
+    -webkit-animation-delay: -0.6s;
+    animation-delay: -0.6s;
+}
+
+.sk-spinner-fading-circle .sk-circle8:before {
+    -webkit-animation-delay: -0.5s;
+    animation-delay: -0.5s;
+}
+
+.sk-spinner-fading-circle .sk-circle9:before {
+    -webkit-animation-delay: -0.4s;
+    animation-delay: -0.4s;
+}
+
+.sk-spinner-fading-circle .sk-circle10:before {
+    -webkit-animation-delay: -0.3s;
+    animation-delay: -0.3s;
+}
+
+.sk-spinner-fading-circle .sk-circle11:before {
+    -webkit-animation-delay: -0.2s;
+    animation-delay: -0.2s;
+}
+
+.sk-spinner-fading-circle .sk-circle12:before {
+    -webkit-animation-delay: -0.1s;
+    animation-delay: -0.1s;
+}
+
+@-webkit-keyframes sk-circleFadeDelay {
+    0%,
+    39%,
+    100% {
+        opacity: 0;
+    }
+    40% {
+        opacity: 1;
+    }
+}
+
+@keyframes sk-circleFadeDelay {
+    0%,
+    39%,
+    100% {
+        opacity: 0;
+    }
+    40% {
+        opacity: 1;
+    }
+}
+
+body.rtls {
+    /* Theme config */
+}
+
+body.rtls #page-wrapper {
+    margin: 0 220px 0 0;
+}
+
+body.rtls .nav-second-level li a {
+    padding: 7px 35px 7px 10px;
+}
+
+body.rtls .ibox-title h5 {
+    float: right;
+}
+
+body.rtls .pull-right {
+    float: left !important;
+}
+
+body.rtls .pull-left {
+    float: right !important;
+}
+
+body.rtls .ibox-tools {
+    float: left;
+}
+
+body.rtls .stat-percent {
+    float: left;
+}
+
+body.rtls .navbar-right {
+    float: left !important;
+}
+
+body.rtls .navbar-top-links li:last-child {
+    margin-left: 40px;
+    margin-right: 0;
+}
+
+body.rtls .minimalize-styl-2 {
+    float: right;
+    margin: 14px 20px 5px 5px;
+}
+
+body.rtls .feed-element > .pull-left {
+    margin-left: 10px;
+    margin-right: 0;
+}
+
+body.rtls .timeline-item .date {
+    text-align: left;
+}
+
+body.rtls .timeline-item .date i {
+    left: 0;
+    right: auto;
+}
+
+body.rtls .timeline-item .content {
+    border-right: 1px solid #e7eaec;
+    border-left: none;
+}
+
+body.rtls .toast-close-button {
+    float: left;
+}
+
+body.rtls #toast-container > .toast:before {
+    margin: auto -1.5em auto 0.5em;
+}
+
+body.rtls #toast-container > div {
+    padding: 15px 50px 15px 15px;
+}
+
+body.rtls .center-orientation .vertical-timeline-icon i {
+    margin-left: 0;
+    margin-right: -12px;
+}
+
+body.rtls .vertical-timeline-icon i {
+    right: 50%;
+    left: auto;
+    margin-left: auto;
+    margin-right: -12px;
+}
+
+body.rtls .file-box {
+    float: right;
+}
+
+body.rtls ul.notes li {
+    float: right;
+}
+
+body.rtls .chat-users,
+body.rtls .chat-statistic {
+    margin-right: -30px;
+    margin-left: auto;
+}
+
+body.rtls .dropdown-menu > li > a {
+    text-align: right;
+}
+
+body.rtls .b-r {
+    border-left: 1px solid #e7eaec;
+    border-right: none;
+}
+
+body.rtls .dd-list .dd-list {
+    padding-right: 30px;
+    padding-left: 0;
+}
+
+body.rtls .dd-item > button {
+    float: right;
+}
+
+body.rtls .skin-setttings {
+    margin-right: 40px;
+    margin-left: 0;
+}
+
+body.rtls .skin-setttings {
+    direction: ltr;
+}
+
+body.rtls .footer.fixed {
+    margin-right: 220px;
+    margin-left: 0;
+}
+
+@media (max-width: 992px) {
+    body.rtls .chat-users,
+    body.rtls .chat-statistic {
+        margin-right: 0px;
+    }
+}
+
+body.rtls.mini-navbar .footer.fixed,
+body.body-small.mini-navbar .footer.fixed {
+    margin: 0 70px 0 0;
+}
+
+body.rtls.mini-navbar.fixed-sidebar .footer.fixed,
+body.body-small.mini-navbar .footer.fixed {
+    margin: 0 0 0 0;
+}
+
+body.rtls.top-navigation .navbar-toggle {
+    float: right;
+    margin-left: 15px;
+    margin-right: 15px;
+}
+
+.body-small.rtls.top-navigation .navbar-header {
+    float: none;
+}
+
+body.rtls.top-navigation #page-wrapper {
+    margin: 0;
+}
+
+body.rtls.mini-navbar #page-wrapper {
+    margin: 0 70px 0 0;
+}
+
+body.rtls.mini-navbar.fixed-sidebar #page-wrapper {
+    margin: 0 0 0 0;
+}
+
+body.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper {
+    margin: 0 220px 0 0;
+}
+
+body.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
+    width: 220px;
+}
+
+.body-small.rtls .navbar-fixed-top {
+    margin-right: 0px;
+}
+
+.body-small.rtls .navbar-header {
+    float: right;
+}
+
+body.rtls .navbar-top-links li:last-child {
+    margin-left: 20px;
+}
+
+body.rtls .top-navigation #page-wrapper,
+body.rtls.mini-navbar .top-navigation #page-wrapper,
+body.rtls.mini-navbar.top-navigation #page-wrapper {
+    margin: 0;
+}
+
+body.rtls .top-navigation .footer.fixed,
+body.rtls.top-navigation .footer.fixed {
+    margin: 0;
+}
+
+@media (max-width: 768px) {
+    body.rtls .navbar-top-links li:last-child {
+        margin-left: 20px;
+    }
+    .body-small.rtls #page-wrapper {
+        position: inherit;
+        margin: 0 0 0 0px;
+        min-height: 1000px;
+    }
+    .body-small.rtls .navbar-static-side {
+        display: none;
+        z-index: 2001;
+        position: absolute;
+        width: 70px;
+    }
+    .body-small.rtls.mini-navbar .navbar-static-side {
+        display: block;
+    }
+    .rtls.fixed-sidebar.body-small .navbar-static-side {
+        display: none;
+        z-index: 2001;
+        position: fixed;
+        width: 220px;
+    }
+    .rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side {
+        display: block;
+    }
+}
+
+.rtls .ltr-support {
+    direction: ltr;
+}
+
+
+/*
+ *
+ *   This is style for skin config
+ *   Use only in demo theme
+ *
+*/
+
+.skin-setttings .title {
+    background: #efefef;
+    text-align: center;
+    text-transform: uppercase;
+    font-weight: 600;
+    display: block;
+    padding: 10px 15px;
+    font-size: 12px;
+}
+
+.setings-item {
+    padding: 10px 30px;
+}
+
+.setings-item.nb {
+    border: none;
+}
+
+.setings-item.skin {
+    text-align: center;
+}
+
+.setings-item .switch {
+    float: right;
+}
+
+.skin-name a {
+    text-transform: uppercase;
+}
+
+.setings-item a {
+    color: #fff;
+}
+
+.default-skin,
+.blue-skin,
+.ultra-skin,
+.yellow-skin {
+    text-align: center;
+}
+
+.default-skin {
+    font-weight: 600;
+    background: #1ab394;
+}
+
+.default-skin:hover {
+    background: #199d82;
+}
+
+.blue-skin {
+    font-weight: 600;
+    background: url("patterns/header-profile-skin-1.png") repeat scroll 0 0;
+}
+
+.blue-skin:hover {
+    background: #0d8ddb;
+}
+
+.yellow-skin {
+    font-weight: 600;
+    background: url("patterns/header-profile-skin-3.png") repeat scroll 0 100%;
+}
+
+.yellow-skin:hover {
+    background: #ce8735;
+}
+
+.content-tabs {
+    border-bottom: solid 2px #2f4050;
+}
+
+.page-tabs a {
+    color: #999;
+}
+
+.page-tabs a i {
+    color: #ccc;
+}
+
+.page-tabs a.active {
+    background: #2f4050;
+    color: #a7b1c2;
+}
+
+.page-tabs a.active:hover,
+.page-tabs a.active i:hover {
+    background: #293846;
+    color: #fff;
+}
+
+
+/*
+ *
+ *   SKIN 1 - H+ - 后台主题UI框架
+ *   NAME - Blue light
+ *
+*/
+
+.skin-1 .minimalize-styl-2 {
+    margin: 14px 5px 5px 30px;
+}
+
+.skin-1 .navbar-top-links li:last-child {
+    margin-right: 30px;
+}
+
+.skin-1.fixed-nav .minimalize-styl-2 {
+    margin: 14px 5px 5px 15px;
+}
+
+.skin-1 .spin-icon {
+    background: #0e9aef !important;
+}
+
+.skin-1 .nav-header {
+    background: #0e9aef;
+    background: url('patterns/header-profile-skin-1.png');
+}
+
+.skin-1.mini-navbar .nav-second-level {
+    background: #3e495f;
+}
+
+.skin-1 .breadcrumb {
+    background: transparent;
+}
+
+.skin-1 .page-heading {
+    border: none;
+}
+
+.skin-1 .nav > li.active {
+    background: #3a4459;
+}
+
+.skin-1 .nav > li > a {
+    color: #9ea6b9;
+}
+
+.skin-1 .nav > li.active > a {
+    color: #fff;
+}
+
+.skin-1 .navbar-minimalize {
+    background: #0e9aef;
+    border-color: #0e9aef;
+}
+
+body.skin-1 {
+    background: #3e495f;
+}
+
+.skin-1 .navbar-static-top {
+    background: #ffffff;
+}
+
+.skin-1 .dashboard-header {
+    background: transparent;
+    border-bottom: none !important;
+    border-top: none;
+    padding: 20px 30px 10px 30px;
+}
+
+.fixed-nav.skin-1 .navbar-fixed-top {
+    background: #fff;
+}
+
+.skin-1 .wrapper-content {
+    padding: 30px 15px;
+}
+
+.skin-1 #page-wrapper {
+    background: #f4f6fa;
+}
+
+.skin-1 .ibox-title,
+.skin-1 .ibox-content {
+    border-width: 1px;
+}
+
+.skin-1 .ibox-content:last-child {
+    border-style: solid solid solid solid;
+}
+
+.skin-1 .nav > li.active {
+    border: none;
+}
+
+.skin-1 .nav-header {
+    padding: 35px 25px 25px 25px;
+}
+
+.skin-1 .nav-header a.dropdown-toggle {
+    color: #fff;
+    margin-top: 10px;
+}
+
+.skin-1 .nav-header a.dropdown-toggle .text-muted {
+    color: #fff;
+    opacity: 0.8;
+}
+
+.skin-1 .profile-element {
+    text-align: center;
+}
+
+.skin-1 .img-circle {
+    border-radius: 5px;
+}
+
+.skin-1 .navbar-default .nav > li > a:hover,
+.skin-1 .navbar-default .nav > li > a:focus {
+    background: #39aef5;
+    color: #fff;
+}
+
+.skin-1 .nav.nav-tabs > li.active > a {
+    color: #555;
+}
+
+.skin-1 .content-tabs {
+    border-bottom: solid 2px #39aef5;
+}
+
+.skin-1 .nav.nav-tabs > li.active {
+    background: transparent;
+}
+
+.skin-1 .page-tabs a.active {
+    background: #39aef5;
+    color: #fff;
+}
+
+.skin-1 .page-tabs a.active:hover,
+.skin-1 .page-tabs a.active i:hover {
+    background: #0e9aef;
+    color: #fff;
+}
+
+
+/*
+ *
+ *   SKIN 3 - H+ - 后台主题UI框架
+ *   NAME - Yellow/purple
+ *
+*/
+
+.skin-3 .minimalize-styl-2 {
+    margin: 14px 5px 5px 30px;
+}
+
+.skin-3 .navbar-top-links li:last-child {
+    margin-right: 30px;
+}
+
+.skin-3.fixed-nav .minimalize-styl-2 {
+    margin: 14px 5px 5px 15px;
+}
+
+.skin-3 .spin-icon {
+    background: #ecba52 !important;
+}
+
+body.boxed-layout.skin-3 #wrapper {
+    background: #3e2c42;
+}
+
+.skin-3 .nav-header {
+    background: #ecba52;
+    background: url('patterns/header-profile-skin-3.png');
+}
+
+.skin-3.mini-navbar .nav-second-level {
+    background: #3e2c42;
+}
+
+.skin-3 .breadcrumb {
+    background: transparent;
+}
+
+.skin-3 .page-heading {
+    border: none;
+}
+
+.skin-3 .nav > li.active {
+    background: #38283c;
+}
+
+.fixed-nav.skin-3 .navbar-fixed-top {
+    background: #fff;
+}
+
+.skin-3 .nav > li > a {
+    color: #948b96;
+}
+
+.skin-3 .nav > li.active > a {
+    color: #fff;
+}
+
+.skin-3 .navbar-minimalize {
+    background: #ecba52;
+    border-color: #ecba52;
+}
+
+body.skin-3 {
+    background: #3e2c42;
+}
+
+.skin-3 .navbar-static-top {
+    background: #ffffff;
+}
+
+.skin-3 .dashboard-header {
+    background: transparent;
+    border-bottom: none !important;
+    border-top: none;
+    padding: 20px 30px 10px 30px;
+}
+
+.skin-3 .wrapper-content {
+    padding: 30px 15px;
+}
+
+.skin-3 #page-wrapper {
+    background: #f4f6fa;
+}
+
+.skin-3 .ibox-title,
+.skin-3 .ibox-content {
+    border-width: 1px;
+}
+
+.skin-3 .ibox-content:last-child {
+    border-style: solid solid solid solid;
+}
+
+.skin-3 .nav > li.active {
+    border: none;
+}
+
+.skin-3 .nav-header {
+    padding: 35px 25px 25px 25px;
+}
+
+.skin-3 .nav-header a.dropdown-toggle {
+    color: #fff;
+    margin-top: 10px;
+}
+
+.skin-3 .nav-header a.dropdown-toggle .text-muted {
+    color: #fff;
+    opacity: 0.8;
+}
+
+.skin-3 .profile-element {
+    text-align: center;
+}
+
+.skin-3 .img-circle {
+    border-radius: 5px;
+}
+
+.skin-3 .navbar-default .nav > li > a:hover,
+.skin-3 .navbar-default .nav > li > a:focus {
+    background: #38283c;
+    color: #fff;
+}
+
+.skin-3 .nav.nav-tabs > li.active > a {
+    color: #555;
+}
+
+.skin-3 .nav.nav-tabs > li.active {
+    background: transparent;
+}
+
+.skin-3 .content-tabs {
+    border-bottom: solid 2px #3e2c42;
+}
+
+.skin-3 .nav.nav-tabs > li.active {
+    background: transparent;
+}
+
+.skin-3 .page-tabs a.active {
+    background: #3e2c42;
+    color: #fff;
+}
+
+.skin-3 .page-tabs a.active:hover,
+.skin-3 .page-tabs a.active i:hover {
+    background: #38283c;
+    color: #fff;
+}
+
+@media (min-width: 768px) {
+    .navbar-top-links .dropdown-messages,
+    .navbar-top-links .dropdown-tasks,
+    .navbar-top-links .dropdown-alerts {
+        margin-left: auto;
+    }
+}
+
+@media (max-width: 768px) {
+    body.fixed-sidebar .navbar-static-side {
+        display: none;
+    }
+    body.fixed-sidebar.mini-navbar .navbar-static-side {
+        width: 70px;
+    }
+    .lock-word {
+        display: none;
+    }
+    .navbar-form-custom {
+        display: none;
+    }
+    .navbar-header {
+        display: inline;
+        float: left;
+    }
+    .sidebard-panel {
+        z-index: 2;
+        position: relative;
+        width: auto;
+        min-height: 100% !important;
+    }
+    .sidebar-content .wrapper {
+        padding-right: 0px;
+        z-index: 1;
+    }
+    .fixed-sidebar.body-small .navbar-static-side {
+        display: none;
+        z-index: 2001;
+        position: fixed;
+        width: 220px;
+    }
+    .fixed-sidebar.body-small.mini-navbar .navbar-static-side {
+        display: block;
+    }
+    .ibox-tools {
+        float: none;
+        text-align: right;
+        display: block;
+    }
+    .content-tabs {
+        display: none;
+    }
+    #content-main {
+        height: calc(100% - 100px);
+    }
+    .fixed-nav #content-main {
+        height: calc(100% - 38px);
+    }
+}
+
+.navbar-static-side {
+    background: #2f4050;
+}
+
+.nav-close {
+    padding: 10px;
+    display: block;
+    position: absolute;
+    right: 5px;
+    top: 5px;
+    font-size: 1.4em;
+    cursor: pointer;
+    z-index: 10;
+    display: none;
+    color: rgba(255, 255, 255, .3);
+}
+
+@media (max-width: 350px) {
+    body.fixed-sidebar.mini-navbar .navbar-static-side {
+        width: 0;
+    }
+    .nav-close {
+        display: block;
+    }
+    #page-wrapper {
+        margin-left: 0!important;
+    }
+    .timeline-item .date {
+        text-align: left;
+        width: 110px;
+        position: relative;
+        padding-top: 30px;
+    }
+    .timeline-item .date i {
+        position: absolute;
+        top: 0;
+        left: 15px;
+        padding: 5px;
+        width: 30px;
+        text-align: center;
+        border: 1px solid #e7eaec;
+        background: #f8f8f8;
+    }
+    .timeline-item .content {
+        border-left: none;
+        border-top: 1px solid #e7eaec;
+        padding-top: 10px;
+        min-height: 100px;
+    }
+    .nav.navbar-top-links li.dropdown {
+        display: none;
+    }
+    .ibox-tools {
+        float: none;
+        text-align: left;
+        display: inline-block;
+    }
+}
+
+
+/*JQGRID*/
+
+.ui-jqgrid-titlebar {
+    height: 40px;
+    line-height: 24px;
+    color: #676a6c;
+    background-color: #F9F9F9;
+    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
+}
+
+.ui-jqgrid .ui-jqgrid-title {
+    float: left;
+    margin-left: 5px;
+    font-weight: 700;
+}
+
+.ui-jqgrid .ui-jqgrid-titlebar {
+    position: relative;
+    border-left: 0px solid;
+    border-right: 0px solid;
+    border-top: 0px solid;
+}
+
+
+/* Social feed */
+
+.social-feed-separated .social-feed-box {
+    margin-left: 62px;
+}
+
+.social-feed-separated .social-avatar {
+    float: left;
+    padding: 0;
+}
+
+.social-feed-separated .social-avatar img {
+    width: 52px;
+    height: 52px;
+    border: 1px solid #e7eaec;
+}
+
+.social-feed-separated .social-feed-box .social-avatar {
+    padding: 15px 15px 0 15px;
+    float: none;
+}
+
+.social-feed-box {
+    /*padding: 15px;*/
+    border: 1px solid #e7eaec;
+    background: #fff;
+    margin-bottom: 15px;
+}
+
+.article .social-feed-box {
+    margin-bottom: 0;
+    border-bottom: none;
+}
+
+.article .social-feed-box:last-child {
+    margin-bottom: 0;
+    border-bottom: 1px solid #e7eaec;
+}
+
+.article .social-feed-box p {
+    font-size: 13px;
+    line-height: 18px;
+}
+
+.social-action {
+    margin: 15px;
+}
+
+.social-avatar {
+    padding: 15px 15px 0 15px;
+}
+
+.social-comment .social-comment {
+    margin-left: 45px;
+}
+
+.social-avatar img {
+    height: 40px;
+    width: 40px;
+    margin-right: 10px;
+}
+
+.social-avatar .media-body a {
+    font-size: 14px;
+    display: block;
+}
+
+.social-body {
+    padding: 15px;
+}
+
+.social-body img {
+    margin-bottom: 10px;
+}
+
+.social-footer {
+    border-top: 1px solid #e7eaec;
+    padding: 10px 15px;
+    background: #f9f9f9;
+}
+
+.social-footer .social-comment img {
+    width: 32px;
+    margin-right: 10px;
+}
+
+.social-comment:first-child {
+    margin-top: 0;
+}
+
+.social-comment {
+    margin-top: 15px;
+}
+
+.social-comment textarea {
+    font-size: 12px;
+}
+
+.checkbox input[type=checkbox],
+.checkbox-inline input[type=checkbox],
+.radio input[type=radio],
+.radio-inline input[type=radio] {
+    margin-top: -4px;
+}
+
+
+/* Only demo */
+
+@media (max-width: 1000px) {
+    .welcome-message {
+        display: none;
+    }
+}
+
+
+/* ECHARTS  */
+
+.echarts {
+    height: 240px;
+}
+
+.checkbox-inline,
+.radio-inline,
+.checkbox-inline+.checkbox-inline,
+.radio-inline+.radio-inline {
+    margin: 0 15px 0 0;
+}
+
+.navbar-toggle {
+    background-color: #fff;
+}
+
+.J_menuTab {
+    -webkit-transition: all .3s ease-out 0s;
+    transition: all .3s ease-out 0s;
+}
+
+::-webkit-scrollbar-track {
+    background-color: #F5F5F5;
+}
+
+::-webkit-scrollbar {
+    width: 6px;
+    background-color: #F5F5F5;
+}
+
+::-webkit-scrollbar-thumb {
+    background-color: #999;
+}
+
+
+/*GO HOME*/
+
+.gohome {
+    position: fixed;
+    top: 20px;
+    right: 20px;
+    z-index: 100;
+}
+
+.gohome a {
+    height: 38px;
+    width: 38px;
+    display: block;
+    background: #2f4050;
+    padding: 9px 8px;
+    text-align: center;
+    color: #fff;
+    border-radius: 50%;
+    opacity: .5;
+}
+
+.gohome a:hover {
+    opacity: 1;
+}
+
+@media only screen and (-webkit-min-device-pixel-ratio : 2){
+    #content-main {
+        -webkit-overflow-scrolling: touch;
+    }
+}
+
+.navbar-header {
+    width: 60%;
+}
+
+.bs-glyphicons {
+    margin: 0 -10px 20px;
+    overflow: hidden
+}
+
+.bs-glyphicons-list {
+    padding-left: 0;
+    list-style: none
+}
+
+.bs-glyphicons li {
+    float: left;
+    width: 25%;
+    height: 115px;
+    padding: 10px;
+    font-size: 10px;
+    line-height: 1.4;
+    text-align: center;
+    background-color: #f9f9f9;
+    border: 1px solid #fff
+}
+
+.bs-glyphicons .glyphicon {
+    margin-top: 5px;
+    margin-bottom: 10px;
+    font-size: 24px
+}
+
+.bs-glyphicons .glyphicon-class {
+    display: block;
+    text-align: center;
+    word-wrap: break-word
+}
+
+.bs-glyphicons li:hover {
+    color: #fff;
+    background-color: #1ab394;
+}
+
+@media (min-width: 768px) {
+    .bs-glyphicons {
+        margin-right: 0;
+        margin-left: 0
+    }
+    .bs-glyphicons li {
+        width: 12.5%;
+        font-size: 12px
+    }
+}
+
+.tab-menu-selected {
+    background-color: #293846 !important;
+    color: white !important;
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/favicon.ico b/UserOKTravel/guns-admin/src/main/webapp/static/favicon.ico
new file mode 100644
index 0000000..fe6cf7a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/favicon.ico
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/FontAwesome.otf b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/FontAwesome.otf
new file mode 100644
index 0000000..681bdd4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/FontAwesome.otf
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.eot b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..a30335d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.eot
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.svg b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..6c5bb76
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.svg
@@ -0,0 +1,640 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
+<metadata></metadata>
+<defs>
+<font id="fontawesomeregular" horiz-adv-x="1536" >
+<font-face units-per-em="1792" ascent="1536" descent="-256" />
+<missing-glyph horiz-adv-x="448" />
+<glyph unicode=" "  horiz-adv-x="448" />
+<glyph unicode="&#x09;" horiz-adv-x="448" />
+<glyph unicode="&#xa0;" horiz-adv-x="448" />
+<glyph unicode="&#xa8;" horiz-adv-x="1792" />
+<glyph unicode="&#xa9;" horiz-adv-x="1792" />
+<glyph unicode="&#xae;" horiz-adv-x="1792" />
+<glyph unicode="&#xb4;" horiz-adv-x="1792" />
+<glyph unicode="&#xc6;" horiz-adv-x="1792" />
+<glyph unicode="&#xd8;" horiz-adv-x="1792" />
+<glyph unicode="&#x2000;" horiz-adv-x="768" />
+<glyph unicode="&#x2001;" horiz-adv-x="1537" />
+<glyph unicode="&#x2002;" horiz-adv-x="768" />
+<glyph unicode="&#x2003;" horiz-adv-x="1537" />
+<glyph unicode="&#x2004;" horiz-adv-x="512" />
+<glyph unicode="&#x2005;" horiz-adv-x="384" />
+<glyph unicode="&#x2006;" horiz-adv-x="256" />
+<glyph unicode="&#x2007;" horiz-adv-x="256" />
+<glyph unicode="&#x2008;" horiz-adv-x="192" />
+<glyph unicode="&#x2009;" horiz-adv-x="307" />
+<glyph unicode="&#x200a;" horiz-adv-x="85" />
+<glyph unicode="&#x202f;" horiz-adv-x="307" />
+<glyph unicode="&#x205f;" horiz-adv-x="384" />
+<glyph unicode="&#x2122;" horiz-adv-x="1792" />
+<glyph unicode="&#x221e;" horiz-adv-x="1792" />
+<glyph unicode="&#x2260;" horiz-adv-x="1792" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" />
+<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " />
+<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " />
+<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" />
+<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" />
+<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" />
+<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" />
+<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" />
+<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" />
+<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" />
+<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" />
+<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" />
+<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" />
+<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" />
+<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" />
+<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" />
+<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " />
+<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " />
+<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" />
+<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" />
+<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf092;" d="M394 184q-8 -9 -20 3q-13 11 -4 19q8 9 20 -3q12 -11 4 -19zM352 245q9 -12 0 -19q-8 -6 -17 7t0 18q9 7 17 -6zM291 305q-5 -7 -13 -2q-10 5 -7 12q3 5 13 2q10 -5 7 -12zM322 271q-6 -7 -16 3q-9 11 -2 16q6 6 16 -3q9 -11 2 -16zM451 159q-4 -12 -19 -6q-17 4 -13 15 t19 7q16 -5 13 -16zM514 154q0 -11 -16 -11q-17 -2 -17 11q0 11 16 11q17 2 17 -11zM572 164q2 -10 -14 -14t-18 8t14 15q16 2 18 -9zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39 t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103 q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5 h-224q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" />
+<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+<glyph unicode="&#xf09b;" d="M1536 640q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5 q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23 q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" />
+<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " />
+<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " />
+<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" />
+<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" />
+<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+<glyph unicode="&#xf0d4;" d="M829 318q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5zM755 863q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5 t-57.5 96.5t-17.5 106q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107zM861 1120l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95 q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83zM1152 672h128v64h-128v128h-64v-128 h-128v-64h128v-160h64v160zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0d5;" horiz-adv-x="1664" d="M735 740q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4 q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65t-59.5 -61.5t-24.5 -66zM589 836q38 0 78 16.5t66 43.5q53 57 53 159q0 58 -17 125t-48.5 129.5 t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26zM591 -37q58 0 111.5 13t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2 q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5zM1401 839h213v-108h-213v-219h-105v219h-212v108h212v217h105v-217z" />
+<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" />
+<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" />
+<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
+<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" />
+<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" />
+<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " />
+<glyph unicode="&#xf116;" horiz-adv-x="1792" />
+<glyph unicode="&#xf117;" horiz-adv-x="1792" />
+<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" />
+<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" />
+<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" />
+<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" />
+<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" />
+<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" />
+<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" />
+<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" />
+<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" />
+<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+<glyph unicode="&#xf16c;" horiz-adv-x="1408" d="M928 135v-151l-707 -1v151zM1169 481v-701l-1 -35v-1h-1132l-35 1h-1v736h121v-618h928v618h120zM241 393l704 -65l-13 -150l-705 65zM309 709l683 -183l-39 -146l-683 183zM472 1058l609 -360l-77 -130l-609 360zM832 1389l398 -585l-124 -85l-399 584zM1285 1536 l121 -697l-149 -26l-121 697z" />
+<glyph unicode="&#xf16d;" d="M1362 110v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5zM1078 643q0 124 -90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5 t90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5zM1362 1003v165q0 28 -20 48.5t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165q0 -29 20 -49t49 -20h174q29 0 49 20t20 49zM1536 1211v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139v1142q0 81 58 139 t139 58h1142q81 0 139 -58t58 -139z" />
+<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" />
+<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
+<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" />
+<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " />
+<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+<glyph unicode="&#xf194;" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
+<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
+<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
+<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" />
+<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+<glyph unicode="&#xf1a0;" horiz-adv-x="1280" d="M981 197q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13t99 39t73 73t27.5 109zM864 1055 q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5q53 56 53 159zM752 1536h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5 t-59.5 -93t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5 t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32z" />
+<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf1a2;" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" />
+<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" />
+<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
+<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
+<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" />
+<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" />
+<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
+<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
+<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" />
+<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " />
+<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" />
+<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
+<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
+<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
+<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " />
+<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
+<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
+<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
+<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
+<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
+<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" />
+<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" />
+<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
+<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
+<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
+<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
+<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" />
+<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
+<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5z" />
+<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
+<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
+<glyph unicode="&#xf1d4;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
+<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
+<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
+<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" />
+<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" />
+<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
+<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
+<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
+<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" />
+<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
+<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
+<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
+<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1ed;" d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
+<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M602 949q19 -61 31 -123.5t17 -141.5t-14 -159t-62 -145q-21 81 -67 157t-95.5 127t-99 90.5t-78.5 57.5t-33 19q-62 34 -81.5 100t14.5 128t101 81.5t129 -14.5q138 -83 238 -177zM927 1236q11 -25 20.5 -46t36.5 -100.5t42.5 -150.5t25.5 -179.5t0 -205.5t-47.5 -209.5 t-105.5 -208.5q-51 -72 -138 -72q-54 0 -98 31q-57 40 -69 109t28 127q60 85 81 195t13 199.5t-32 180.5t-39 128t-22 52q-31 63 -8.5 129.5t85.5 97.5q34 17 75 17q47 0 88.5 -25t63.5 -69zM1248 567q-17 -160 -72 -311q-17 131 -63 246q25 174 -5 361q-27 178 -94 342 q114 -90 212 -211q9 -37 15 -80q26 -179 7 -347zM1520 1440q9 -17 23.5 -49.5t43.5 -117.5t50.5 -178t34 -227.5t5 -269t-47 -300t-112.5 -323.5q-22 -48 -66 -75.5t-95 -27.5q-39 0 -74 16q-67 31 -92.5 100t4.5 136q58 126 90 257.5t37.5 239.5t-3.5 213.5t-26.5 180.5 t-38.5 138.5t-32.5 90t-15.5 32.5q-34 65 -11.5 135.5t87.5 104.5q37 20 81 20q49 0 91.5 -25.5t66.5 -70.5z" />
+<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
+<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
+<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" />
+<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
+<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
+<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
+<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" />
+<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
+<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
+<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
+<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
+<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
+<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
+<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
+<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
+<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360q2 0 4.5 -1t5.5 -2.5l5 -2.5l188 199v347l-187 194 q-13 -8 -29 -10zM986 1438h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13 zM552 226h402l64 66l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224 l213 -225zM1023 946l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196 l-48 -227l130 227h-82zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
+<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 q209 0 374 -102q172 107 374 102z" />
+<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
+<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 t-43 -34t-16.5 -53.5z" />
+<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
+<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf218;" horiz-adv-x="1664" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
+<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
+<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
+<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" />
+<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" />
+<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+<glyph unicode="&#xf222;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" />
+<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
+<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
+<glyph unicode="&#xf229;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+<glyph unicode="&#xf22d;" horiz-adv-x="1280" d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
+<glyph unicode="&#xf22e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf22f;" horiz-adv-x="1792" />
+<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
+<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
+<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
+<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
+<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" />
+<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M1792 204v-209h-642v209h134v926h-6l-314 -1135h-243l-310 1135h-8v-926h135v-209h-538v209h69q21 0 43 19.5t22 37.5v881q0 18 -22 40t-43 22h-69v209h672l221 -821h6l223 821h670v-209h-71q-19 0 -41 -22t-22 -40v-881q0 -18 21.5 -37.5t41.5 -19.5h71z" />
+<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
+<glyph unicode="&#xf23c;" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 4 5 8q16 18 60 23h13q5 18 19 30t33 8 t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-106 2 -211 0v1q-1 -27 2.5 -86 t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34l3 9v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4l-10 -2.5t-12 -2 l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-2 0 -3 -0.5t-3 -0.5h-3q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130t-73 70 q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -2 -1 -5t-1 -4q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
+<glyph unicode="&#xf23d;" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
+<glyph unicode="&#xf23e;" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
+<glyph unicode="&#xf240;" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
+<glyph unicode="&#xf241;" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf242;" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf243;" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf244;" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+<glyph unicode="&#xf245;" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
+<glyph unicode="&#xf246;" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
+<glyph unicode="&#xf247;" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
+<glyph unicode="&#xf248;" horiz-adv-x="2304" d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
+<glyph unicode="&#xf249;" d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
+<glyph unicode="&#xf24a;" d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 z" />
+<glyph unicode="&#xf24b;" horiz-adv-x="2304" d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf24c;" horiz-adv-x="2304" d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf24d;" horiz-adv-x="1792" d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf24e;" horiz-adv-x="2304" d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
+<glyph unicode="&#xf250;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+<glyph unicode="&#xf251;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
+<glyph unicode="&#xf252;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
+<glyph unicode="&#xf253;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+<glyph unicode="&#xf254;" d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
+<glyph unicode="&#xf255;" d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 q72 69 174 69z" />
+<glyph unicode="&#xf256;" horiz-adv-x="1792" d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
+<glyph unicode="&#xf257;" horiz-adv-x="1792" d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 q0 -42 -23 -78t-61 -53l-310 -141h91z" />
+<glyph unicode="&#xf258;" horiz-adv-x="2048" d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
+<glyph unicode="&#xf259;" horiz-adv-x="2048" d="M816 1408q-48 0 -79.5 -34t-31.5 -82q0 -14 3 -28l150 -624h-26l-116 482q-9 38 -39.5 62t-69.5 24q-47 0 -79 -34t-32 -81q0 -11 4 -29q3 -13 39 -161t68 -282t32 -138v-227l-307 230q-34 26 -77 26q-52 0 -89.5 -36.5t-37.5 -88.5q0 -67 56 -110l507 -379 q34 -26 76 -26h694q33 0 59 20.5t34 52.5l100 401q8 30 10 88t9 86l116 478q3 12 3 26q0 46 -33 79t-80 33q-38 0 -69 -25.5t-40 -62.5l-99 -408h-26l132 547q3 14 3 28q0 47 -32 80t-80 33q-38 0 -68.5 -24t-39.5 -62l-145 -602h-127l-164 682q-9 38 -39.5 62t-68.5 24z M1461 -256h-694q-85 0 -153 51l-507 380q-50 38 -78.5 94t-28.5 118q0 105 75 179t180 74q25 0 49.5 -5.5t41.5 -11t41 -20.5t35 -23t38.5 -29.5t37.5 -28.5l-123 512q-7 35 -7 59q0 93 60 162t152 79q14 87 80.5 144.5t155.5 57.5q83 0 148 -51.5t85 -132.5l103 -428 l83 348q20 81 85 132.5t148 51.5q87 0 152.5 -54t82.5 -139q93 -10 155 -78t62 -161q0 -30 -7 -57l-116 -477q-5 -22 -5 -67q0 -51 -13 -108l-101 -401q-19 -75 -79.5 -122.5t-137.5 -47.5z" />
+<glyph unicode="&#xf25a;" horiz-adv-x="1792" d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 v-384h32z" />
+<glyph unicode="&#xf25b;" d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 q0 -53 37.5 -90.5t90.5 -37.5h668z" />
+<glyph unicode="&#xf25c;" horiz-adv-x="1973" d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 q13 0 22 -8.5t10 -20.5z" />
+<glyph unicode="&#xf25d;" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf25e;" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5 t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
+<glyph unicode="&#xf260;" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
+<glyph unicode="&#xf261;" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+<glyph unicode="&#xf262;" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
+<glyph unicode="&#xf263;" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
+<glyph unicode="&#xf264;" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+<glyph unicode="&#xf265;" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
+<glyph unicode="&#xf266;" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
+<glyph unicode="&#xf267;" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 t191 -286t71 -348z" />
+<glyph unicode="&#xf268;" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
+<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
+<glyph unicode="&#xf26a;" d="M768 -92q77 0 139.5 63t100.5 166t59 234.5t21 268.5t-21 268.5t-59 234.5t-100.5 166t-139.5 63t-139.5 -63t-100.5 -166t-59 -234.5t-21 -268.5t21 -268.5t59 -234.5t100.5 -166t139.5 -63zM768 -256q-184 0 -333 77t-240 203t-141 287t-50 329t50 329t141 287t240 203 t333 77q148 0 274 -50t214.5 -136t151.5 -201t92.5 -244t29.5 -265t-29.5 -265t-92.5 -244t-151.5 -201t-214.5 -136t-274 -50z" />
+<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M716 -69q-143 35 -261.5 114t-197.5 191q-139 -300 -17 -398q26 -21 85 -24.5t127.5 9.5t141 41.5t122.5 66.5zM693 762h452q0 108 -61.5 169t-168.5 61q-103 0 -162.5 -62.5t-59.5 -167.5zM1724 1137h-34q26 102 22.5 170t-25 110t-63.5 57t-93.5 11t-115 -26.5 t-128.5 -56.5t-134 -79q129 -37 238.5 -113.5t185 -179t110 -231.5t15.5 -262h-1005q0 -60 10 -106t34 -85t69.5 -60t112.5 -21q87 0 142.5 44t72.5 122h540q-71 -230 -281.5 -377t-477.5 -147q-83 0 -159 15q-35 -40 -151 -94t-248 -78t-219 35q-78 60 -100 159t7 214 t88 242t143.5 248t173.5 226.5t177.5 183.5t156.5 112v24q-120 -37 -258.5 -137.5t-240.5 -207t-159 -195.5q4 106 34 201t80 169t118 135.5t147.5 100.5t168 65.5t180.5 29.5t185 -8q310 186 503 189h7q57 0 103 -18q80 -30 98 -132.5t-30 -248.5z" />
+<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" />
+<glyph unicode="&#xf26e;" horiz-adv-x="2304" d="M1391 390v0l-1 1q-15 18 -34.5 37.5t-62.5 57.5t-93.5 62t-95.5 24q-48 0 -83 -21.5t-51 -54t-23 -59t-7 -47.5v0v0q0 -21 7 -48t23 -59t51 -53.5t83 -21.5q45 0 95.5 24t94 62.5t62 57t34.5 37.5zM2103 390q0 21 -7 47.5t-23 59t-51 54t-83 21.5q-45 0 -95.5 -24 t-94 -62.5t-62 -57t-34.5 -37.5l-1 -1v0v0l1 -1q15 -18 34.5 -37.5t62.5 -57.5t93.5 -62t95.5 -24q48 0 83 21.5t51 53.5t23 59t7 48zM2304 393q0 -69 -24 -137.5t-68 -126t-116 -93.5t-159 -36q-68 0 -134 24t-113.5 58.5t-84.5 69.5t-59.5 59t-25.5 24t-22.5 -24 t-54.5 -58.5t-81.5 -69.5t-115 -59t-143.5 -24q-65 0 -123.5 22.5t-96.5 54t-66.5 66.5t-41 59.5t-12.5 32.5q0 -8 -8.5 -26.5t-25 -45.5t-47 -55t-69 -52.5t-96.5 -40t-125 -15.5q-71 0 -130 15.5t-98.5 39.5t-70.5 56.5t-48 63.5t-27.5 63.5t-14 54t-3.5 36.5h217 q0 -55 49 -107.5t126 -52.5q79 0 134.5 67t55.5 148q0 80 -52 136.5t-138 56.5q-5 0 -13 -0.5t-31 -5t-43 -12t-42 -24.5t-34 -40h-195l102 583h602v-174h-445q-27 -159 -41 -248q4 0 16.5 13t31.5 28.5t65 28.5t108 13t114 -20.5t82.5 -49.5t51.5 -58.5t31 -50t11 -20.5 t13 25t36.5 60.5t60.5 71.5t97 61t133 25t140.5 -25t115.5 -60.5t83.5 -71.5t56.5 -61t21 -25q2 0 22 25t56 60.5t83.5 71.5t115.5 61t140 25q92 0 164.5 -35t115.5 -93t65 -125t22 -137z" />
+<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
+<glyph unicode="&#xf271;" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
+<glyph unicode="&#xf272;" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf273;" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf274;" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+<glyph unicode="&#xf275;" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
+<glyph unicode="&#xf276;" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
+<glyph unicode="&#xf277;" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
+<glyph unicode="&#xf278;" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
+<glyph unicode="&#xf279;" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
+<glyph unicode="&#xf27a;" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+<glyph unicode="&#xf27b;" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
+<glyph unicode="&#xf27c;" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
+<glyph unicode="&#xf27d;" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
+<glyph unicode="&#xf27e;" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
+<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
+<glyph unicode="&#xf281;" horiz-adv-x="1792" />
+<glyph unicode="&#xf282;" horiz-adv-x="1792" />
+<glyph unicode="&#xf283;" horiz-adv-x="1792" />
+<glyph unicode="&#xf284;" horiz-adv-x="1792" />
+<glyph unicode="&#xf285;" horiz-adv-x="1792" />
+<glyph unicode="&#xf286;" horiz-adv-x="1792" />
+<glyph unicode="&#xf287;" horiz-adv-x="1792" />
+<glyph unicode="&#xf288;" horiz-adv-x="1792" />
+<glyph unicode="&#xf289;" horiz-adv-x="1792" />
+<glyph unicode="&#xf28a;" horiz-adv-x="1792" />
+<glyph unicode="&#xf28b;" horiz-adv-x="1792" />
+<glyph unicode="&#xf28c;" horiz-adv-x="1792" />
+<glyph unicode="&#xf28d;" horiz-adv-x="1792" />
+<glyph unicode="&#xf28e;" horiz-adv-x="1792" />
+<glyph unicode="&#xf500;" horiz-adv-x="1792" />
+</font>
+</defs></svg>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.ttf b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..d7994e1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.ttf
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..6fd4ede
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff2 b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..5560193
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/fontawesome-webfont.woff2
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..b93a495
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.svg b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..187805a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
+</font>
+</defs></svg>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..1413fc6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..9e61285
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2 b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000..64539b5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/fonts/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/bg.png b/UserOKTravel/guns-admin/src/main/webapp/static/img/bg.png
new file mode 100644
index 0000000..73d102d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/bg.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/boy.gif b/UserOKTravel/guns-admin/src/main/webapp/static/img/boy.gif
new file mode 100644
index 0000000..e1ba77e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/boy.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/girl.gif b/UserOKTravel/guns-admin/src/main/webapp/static/img/girl.gif
new file mode 100644
index 0000000..8ef9a59
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/girl.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/icons.png b/UserOKTravel/guns-admin/src/main/webapp/static/img/icons.png
new file mode 100644
index 0000000..12e4700
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/icons.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/loading-upload.gif b/UserOKTravel/guns-admin/src/main/webapp/static/img/loading-upload.gif
new file mode 100644
index 0000000..6fba776
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/loading-upload.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/locked.png b/UserOKTravel/guns-admin/src/main/webapp/static/img/locked.png
new file mode 100644
index 0000000..c831c1f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/locked.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/img/user.png b/UserOKTravel/guns-admin/src/main/webapp/static/img/user.png
new file mode 100644
index 0000000..7f77fd0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/img/user.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/bootstrap.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/bootstrap.min.js
new file mode 100644
index 0000000..e364a13
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=d?{top:0,left:0}:b.offset(),g={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},h=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,g,h,f)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");
+d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.6",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/DateUtils.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/DateUtils.js
new file mode 100644
index 0000000..c80481c
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/DateUtils.js
@@ -0,0 +1,173 @@
+var DateUtils = {
+	/**
+     * 扩展Date 对象格式化方法
+     */
+    expandDate : function() {
+        Date.prototype.format = function(fmt)   
+        { //author: meizz   
+          var o = {   
+            "M+" : this.getMonth()+1,                 //月份   
+            "d+" : this.getDate(),                    //日   
+            "h+" : this.getHours()%12 == 0 ? 12 : this.getHours()%12, //小时           
+            "H+" : this.getHours(),                   //小时 
+            "m+" : this.getMinutes(),                 //分   
+            "s+" : this.getSeconds(),                 //秒   
+            "q+" : Math.floor((this.getMonth()+3)/3), //季度   
+            "S"  : this.getMilliseconds()             //毫秒   
+          };   
+          if(/(y+)/.test(fmt))   
+            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length));   
+          for(var k in o)   
+            if(new RegExp("("+ k +")").test(fmt))   
+          fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));   
+          return fmt;   
+        }
+    },
+	/**
+	 * 获取具体年龄
+	 * @param {} beginStr
+	 * @param {} endStr
+	 * @return {}
+	 */
+	getAgeInfo: function (beginStr, endStr) {
+        var reg = new RegExp(/^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})(\s)(\d{1,2})(:)(\d{1,2})(:{0,1})(\d{0,2})$/);
+		var beginArr = beginStr.match(reg);
+		var endArr = endStr.match(reg);
+	
+		var days = 0;
+		var month = 0;
+		var year = 0;
+	
+		days = endArr[5] - beginArr[5];
+		if (days < 0) {
+			month = -1;
+			days = 30 + days;
+		}
+	
+		month = month + (endArr[3] - beginArr[3]);
+		if (month < 0) {
+			year = -1;
+			month = 12 + month;
+		}
+	
+		year = year + (endArr[1] - beginArr[1]);
+	
+		var yearString = year > 0 ? year + "岁" : "";
+		var mnthString = month > 0 ? month + "月" : "";
+		var dayString = days > 0 ? days + "天" : "";
+	
+		/*
+		 * 1 如果岁 大于等于1 那么年龄取 几岁 2 如果 岁等于0 但是月大于1 那么如果天等于0天小于3天 取小时 例如出生2天 就取 48小时
+		 */
+		var result = "";
+		if (year >= 1) {
+			result = yearString + mnthString;
+		} else {
+			if (month >= 1) {
+				result = days > 0 ? mnthString + dayString : mnthString;
+			} else {
+				var begDate = new Date(beginArr[1], beginArr[3] - 1, beginArr[5],
+						beginArr[7], beginArr[9], beginArr[11]);
+				var endDate = new Date(endArr[1], endArr[3] - 1, endArr[5],
+						endArr[7], endArr[9], endArr[11]);
+	
+				var between = (endDate.getTime() - begDate.getTime()) / 1000;
+				days = Math.floor(between / (24 * 3600));
+				var hours = Math.floor(between / 3600 - (days * 24));
+				var dayString = days > 0 ? days + "天" : "";
+				result = days >= 3 ? dayString : days * 24 + hours + "小时";
+			}
+		}
+	
+		return result;
+    },
+    /**
+     * 获取年龄,不满一天算天
+     * @param {} birthday
+     * @param {} today
+     * @return {}
+     */
+    getAge :function(birthday,today) {
+    	var reg = new RegExp(/^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/);
+    	var beginArr = birthday.match(reg);
+        var endArr = today.match(reg);
+    
+        var days = 0;
+        var month = 0;
+        var year = 0;
+    
+        days = endArr[5] - beginArr[5];
+        if (days < 0) {
+            month = -1;
+            days = 30 + days;
+        }
+    
+        month = month + (endArr[3] - beginArr[3]);
+        if (month < 0) {
+            year = -1;
+            month = 12 + month;
+        }
+    
+        year = year + (endArr[1] - beginArr[1]);
+    
+        var yearString = year > 0 ? year + "岁" : "";
+        var mnthString = month > 0 ? month + "月" : "";
+        var dayString = days > 0 ? days + "天" : "1天";
+        
+        /*
+         * 1 如果岁 大于等于1 那么年龄取 几岁 2 如果 岁等于0 但是月大于1 name取几月 3 如果不足月, 则取天数 4 不满一天算一天
+         */
+        var result = "";
+        if (year >= 1) {
+            result = yearString + mnthString + dayString;
+        } else {
+            if (month >= 1) {
+                result = days > 0 ? mnthString + dayString : mnthString;
+            } else {
+                result = dayString;
+            }
+        }
+        return result;
+    },
+    /**
+     * 获取月龄
+     * @param {} birthday
+     * @param {} today
+     * @return {}
+     */
+    getMonthage :function(birthday,today) {
+        var reg = new RegExp(/^(\d{1,4})(-|\/)(\d{1,2})(-|\/)(\d{1,2})$/);
+        var beginArr = birthday.match(reg);
+        var endArr = today.match(reg);
+    
+        var days = 0;
+        var month = 0;
+        var year = 0;
+    
+        days = endArr[5] - beginArr[5];
+        if (days < 0) {
+            month = -1;
+            days = 30 + days;
+        }
+    
+        month = month + (endArr[3] - beginArr[3]);
+        if (month < 0) {
+            year = -1;
+            month = 12 + month;
+        }
+    
+        year = year + (endArr[1] - beginArr[1]);
+    
+        var result = "";
+        if (year >= 1) {
+            result = (year * 12 + month + 1) + "个月";
+        } else {
+            if (month >= 1) {
+                result = (month + 1) + "个月";
+            } else {
+                result = "1个月";
+            }
+        }
+        return result;
+    }
+}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/Feng.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/Feng.js
new file mode 100644
index 0000000..9e42fbb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/Feng.js
@@ -0,0 +1,196 @@
+var Feng = {
+    ctxPath: "",
+    addCtx: function (ctx) {
+        if (this.ctxPath == "") {
+            this.ctxPath = ctx;
+        }
+    },
+    confirm: function (tip, ensure) {//询问框
+        parent.layer.confirm(tip, {
+            btn: ['确定', '取消']
+        }, function (index) {
+            ensure();
+            parent.layer.close(index);
+        }, function (index) {
+            parent.layer.close(index);
+        });
+    },
+    log: function (info) {
+        console.log(info);
+    },
+    alert: function (info, iconIndex) {
+        parent.layer.msg(info, {
+            icon: iconIndex
+        });
+    },
+    info: function (info) {
+        Feng.alert(info, 0);
+    },
+    success: function (info) {
+        Feng.alert(info, 1);
+    },
+    error: function (info) {
+        Feng.alert(info, 2);
+    },
+    infoDetail: function (title, info) {
+        var display = "";
+        if (typeof info == "string") {
+            display = info;
+        } else {
+            if (info instanceof Array) {
+                for (var x in info) {
+                    display = display + info[x] + "<br/>";
+                }
+            } else {
+                display = info;
+            }
+        }
+        parent.layer.open({
+            title: title,
+            type: 1,
+            skin: 'layui-layer-rim', //加上边框
+            area: ['950px', '600px'], //宽高
+            content: '<div style="padding: 20px;">' + display + '</div>'
+        });
+    },
+    writeObj: function (obj) {
+        var description = "";
+        for (var i in obj) {
+            var property = obj[i];
+            description += i + " = " + property + ",";
+        }
+        layer.alert(description, {
+            skin: 'layui-layer-molv',
+            closeBtn: 0
+        });
+    },
+    showInputTree: function (inputId, inputTreeContentId, leftOffset, rightOffset) {
+        var onBodyDown = function (event) {
+            if (!(event.target.id == "menuBtn" || event.target.id == inputTreeContentId || $(event.target).parents("#" + inputTreeContentId).length > 0)) {
+                $("#" + inputTreeContentId).fadeOut("fast");
+                $("body").unbind("mousedown", onBodyDown);// mousedown当鼠标按下就可以触发,不用弹起
+            }
+        };
+
+        if (leftOffset == undefined && rightOffset == undefined) {
+            var inputDiv = $("#" + inputId);
+            var inputDivOffset = $("#" + inputId).offset();
+            $("#" + inputTreeContentId).css({
+                left: inputDivOffset.left + "px",
+                top: inputDivOffset.top + inputDiv.outerHeight() + "px"
+            }).slideDown("fast");
+        } else {
+            $("#" + inputTreeContentId).css({
+                left: leftOffset + "px",
+                top: rightOffset + "px"
+            }).slideDown("fast");
+        }
+
+        $("body").bind("mousedown", onBodyDown);
+    },
+    baseAjax: function (url, tip) {
+        var ajax = new $ax(Feng.ctxPath + url, function (data) {
+            Feng.success(tip + "成功!");
+        }, function (data) {
+            Feng.error(tip + "失败!" + data.responseJSON.message + "!");
+        });
+        return ajax;
+    },
+    changeAjax: function (url) {
+        return Feng.baseAjax(url, "修改");
+    },
+    zTreeCheckedNodes: function (zTreeId) {
+        var zTree = $.fn.zTree.getZTreeObj(zTreeId);
+        var nodes = zTree.getCheckedNodes();
+        var ids = "";
+        for (var i = 0, l = nodes.length; i < l; i++) {
+            ids += "," + nodes[i].id;
+        }
+        return ids.substring(1);
+    },
+    eventParseObject: function (event) {//获取点击事件的源对象
+        event = event ? event : window.event;
+        var obj = event.srcElement ? event.srcElement : event.target;
+        return $(obj);
+    },
+    sessionTimeoutRegistry: function () {
+        $.ajaxSetup({
+            contentType: "application/x-www-form-urlencoded;charset=utf-8",
+            complete: function (XMLHttpRequest, textStatus) {
+                //通过XMLHttpRequest取得响应头,sessionstatus,
+                var sessionstatus = XMLHttpRequest.getResponseHeader("sessionstatus");
+                if (sessionstatus == "timeout") {
+                    //如果超时就处理 ,指定要跳转的页面
+                    window.location = Feng.ctxPath + "/global/sessionError";
+                }
+            }
+        });
+    },
+    initValidator: function (formId, fields) {
+        $('#' + formId).bootstrapValidator({
+            feedbackIcons: {
+                valid: 'glyphicon glyphicon-ok',
+                invalid: 'glyphicon glyphicon-remove',
+                validating: 'glyphicon glyphicon-refresh'
+            },
+            fields: fields,
+            live: 'enabled',
+            message: '该字段不能为空'
+        });
+    },
+    underLineToCamel: function (str) {
+        var strArr = str.split('_');
+        for (var i = 1; i < strArr.length; i++) {
+            strArr[i] = strArr[i].charAt(0).toUpperCase() + strArr[i].substring(1);
+        }
+        var result = strArr.join('');
+        return result.charAt(0).toUpperCase() + result.substring(1);
+    },
+    randomNum: function (minNum, maxNum) {
+        switch (arguments.length) {
+            case 1:
+                return parseInt(Math.random() * minNum + 1, 10);
+                break;
+            case 2:
+                return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
+                break;
+            default:
+                return 0;
+                break;
+        }
+    },
+    newCrontab: function (href, menuName) {
+        var dataUrl = href;
+        var needCreateCrontab = true;
+
+        // 轮询已有的标签,判断是否已经存在标签
+        parent.$('.J_menuTab').each(function () {
+            if ($(this).data('id') == dataUrl) {
+                if (!$(this).hasClass('active')) {
+                    $(this).addClass('active').siblings('.J_menuTab').removeClass('active');
+                    parent.MyCrontab.scrollToTab(this);
+                    parent.MyCrontab.$('.J_mainContent .J_iframe').each(function () {
+                        if ($(this).data('id') == dataUrl) {
+                            $(this).show().siblings('.J_iframe').hide();
+                            $(this).attr('src', $(this).attr('src'));
+                            return false;
+                        }
+                    });
+                }
+                needCreateCrontab = false;
+                return false;
+            }
+        });
+
+        //创建标签
+        if (needCreateCrontab) {
+            var tabLink = '<a href="javascript:;" class="active J_menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
+            parent.$('.J_menuTab').removeClass('active');
+            parent.$('.J_menuTabs .page-tabs-content').append(tabLink);
+
+            var iframeContent = '<iframe class="J_iframe" name="iframe' + Feng.randomNum(100,999) + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
+            parent.$('.J_mainContent').find('iframe.J_iframe').hide().parents('.J_mainContent').append(iframeContent);
+            parent.MyCrontab.scrollToTab($('.J_menuTab.active'));
+        }
+    }
+};
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/ajax-object.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/ajax-object.js
new file mode 100644
index 0000000..d3b88c0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/ajax-object.js
@@ -0,0 +1,66 @@
+(function () {
+	var $ax = function (url, success, error) {
+		this.url = url;
+		this.type = "post";
+		this.data = {};
+		this.dataType = "json";
+		this.async = false;
+		this.success = success;
+		this.error = error;
+	};
+	
+	$ax.prototype = {
+		start : function () {	
+			var me = this;
+			
+			if (this.url.indexOf("?") == -1) {
+				this.url = this.url + "?jstime=" + new Date().getTime();
+			} else {
+				this.url = this.url + "&jstime=" + new Date().getTime();
+			}
+			
+			$.ajax({
+		        type: this.type,
+		        url: this.url,
+		        dataType: this.dataType,
+		        async: this.async,
+		        data: this.data,
+				beforeSend: function(data) {
+					
+				},
+		        success: function(data) {
+		        	me.success(data);
+		        },
+		        error: function(data) {
+		        	me.error(data);
+		        }
+		    });
+		}, 
+		
+		set : function (key, value) {
+			if (typeof key == "object") {
+				for (var i in key) {
+					if (typeof i == "function")
+						continue;
+					this.data[i] = key[i];
+				}
+			} else {
+				this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+			}
+			return this;
+		},
+		
+		setData : function(data){
+			this.data = data;
+			return this;
+		},
+		
+		clear : function () {
+			this.data = {};
+			return this;
+		}
+	};
+	
+	window.$ax = $ax;
+	
+} ());
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/bootstrap-table-object.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/bootstrap-table-object.js
new file mode 100644
index 0000000..46a33e8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/bootstrap-table-object.js
@@ -0,0 +1,134 @@
+/**
+ * 初始化 BootStrap Table 的封装
+ *
+ * 约定:toolbar的id为 (bstableId + "Toolbar")
+ *
+ * @author fengshuonan
+ */
+(function () {
+    var BSTable = function (bstableId, url, columns) {
+        this.btInstance = null;					//jquery和BootStrapTable绑定的对象
+        this.bstableId = bstableId;
+        this.url = Feng.ctxPath + url;
+        this.method = "post";
+        this.paginationType = "server";			//默认分页方式是服务器分页,可选项"client"
+        this.toolbarId = bstableId + "Toolbar";
+        this.columns = columns;
+        this.height = 665;						//默认表格高度665
+        this.data = {};
+        this.queryParams = {}; // 向后台传递的自定义参数
+    };
+
+    BSTable.prototype = {
+        /**
+         * 初始化bootstrap table
+         */
+        init: function () {
+            var tableId = this.bstableId;
+            var me = this;
+            this.btInstance =
+                $('#' + tableId).bootstrapTable({
+                    contentType: "application/x-www-form-urlencoded",
+                    url: this.url,				//请求地址
+                    method: this.method,		//ajax方式,post还是get
+                    ajaxOptions: {				//ajax请求的附带参数
+                        data: this.data
+                    },
+                    toolbar: "#" + this.toolbarId,//顶部工具条
+                    striped: true,     			//是否显示行间隔色
+                    cache: false,      			//是否使用缓存,默认为true
+                    pagination: true,     		//是否显示分页(*)
+                    sortable: true,      		//是否启用排序
+                    sortOrder: "desc",     		//排序方式
+                    pageNumber: 1,      			//初始化加载第一页,默认第一页
+                    pageSize: 14,      			//每页的记录行数(*)
+                    pageList: [14, 50, 100],  	//可供选择的每页的行数(*)
+                    queryParamsType: 'limit', 	//默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
+                    queryParams: function (param) {
+                        return $.extend(me.queryParams, param);
+                    }, // 向后台传递的自定义参数
+                    sidePagination: this.paginationType,   //分页方式:client客户端分页,server服务端分页(*)
+                    search: false,      		//是否显示表格搜索,此搜索是客户端搜索,不会进服务端
+                    strictSearch: true,			//设置为 true启用 全匹配搜索,否则为模糊搜索
+                    showColumns: true,     		//是否显示所有的列
+                    showRefresh: true,     		//是否显示刷新按钮
+                    minimumCountColumns: 2,    	//最少允许的列数
+                    clickToSelect: true,    	//是否启用点击选中行
+                    searchOnEnterKey: true,		//设置为 true时,按回车触发搜索方法,否则自动触发搜索方法
+                    columns: this.columns,		//列数组
+                    pagination: true,			//是否显示分页条
+                    height: this.height,
+                    icons: {
+                        refresh: 'glyphicon-repeat',
+                        toggle: 'glyphicon-list-alt',
+                        columns: 'glyphicon-list'
+                    },
+                    iconSize: 'outline'
+                });
+            return this;
+        },
+        /**
+         * 向后台传递的自定义参数
+         * @param param
+         */
+        setQueryParams: function (param) {
+            this.queryParams = param;
+        },
+        /**
+         * 设置分页方式:server 或者 client
+         */
+        setPaginationType: function (type) {
+            this.paginationType = type;
+        },
+
+        /**
+         * 设置ajax post请求时候附带的参数
+         */
+        set: function (key, value) {
+            if (typeof key == "object") {
+                for (var i in key) {
+                    if (typeof i == "function")
+                        continue;
+                    this.data[i] = key[i];
+                }
+            } else {
+                this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+            }
+            return this;
+        },
+
+        /**
+         * 设置ajax post请求时候附带的参数
+         */
+        setData: function (data) {
+            this.data = data;
+            return this;
+        },
+
+        /**
+         * 清空ajax post请求参数
+         */
+        clear: function () {
+            this.data = {};
+            return this;
+        },
+
+        /**
+         * 刷新 bootstrap 表格
+         * Refresh the remote server data,
+         * you can set {silent: true} to refresh the data silently,
+         * and set {url: newUrl} to change the url.
+         * To supply query params specific to this request, set {query: {foo: 'bar'}}
+         */
+        refresh: function (parms) {
+            if (typeof parms != "undefined") {
+                this.btInstance.bootstrapTable('refresh', parms);
+            } else {
+                this.btInstance.bootstrapTable('refresh');
+            }
+        }
+    };
+
+    window.BSTable = BSTable;
+
+}());
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/select-list-object.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/select-list-object.js
new file mode 100644
index 0000000..5ef2df1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/select-list-object.js
@@ -0,0 +1,36 @@
+var SelectList = {};
+SelectList.singelSelect = function (eleName, attr, data) {
+    var result = false;
+    $("#" + eleName).find("a").each(function (i, d) {
+        if ($(this).attr(attr) == data) {
+            if ($(this).hasClass('active')) {
+                $(this).removeClass('active');
+            } else {
+                $(this).addClass('active');
+                result = true;
+            }
+        } else {
+            $(this).removeClass('active');
+        }
+    });
+    return result;
+};
+SelectList.mutiSelect = function (eleName, attr, data) {
+    var result = false;
+    $("#" + eleName).find("a").each(function (i, d) {
+        if ($(this).attr(attr) == data) {
+            if ($(this).hasClass('active')) {
+                $(this).removeClass('active');
+            } else {
+                $(this).addClass('active');
+                result = true;
+            }
+        }
+    });
+    return result;
+};
+SelectList.clearSelect = function (eleName) {
+    $("#" + eleName).find("a").each(function (i, d) {
+        $(this).removeClass('active');
+    });
+};
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/tree-table-object.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/tree-table-object.js
new file mode 100644
index 0000000..a67c6d9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/tree-table-object.js
@@ -0,0 +1,136 @@
+/**
+ * 初始化 Tree Table 的封装
+ *
+ * @author cyf
+ */
+(function () {
+    var BSTreeTable = function (bstableId, url, columns) {
+        this.btInstance = null;					//jquery和bootstrapTreeTable绑定的对象
+        this.bstableId = bstableId;
+        this.url = Feng.ctxPath + url;
+        this.method = "post";
+        this.columns = columns;
+        this.data = {};// ajax的参数
+        this.expandColumn = null;// 展开显示的列 
+        this.id = 'id';// 选取记录返回的值
+        this.code = 'code';// 用于设置父子关系
+        this.parentCode = 'pcode';// 用于设置父子关系
+        this.expandAll = false;// 是否默认全部展开
+        this.toolbarId = bstableId + "Toolbar";
+        this.height = 665;						//默认表格高度665
+    };
+
+    BSTreeTable.prototype = {
+        /**
+         * 初始化bootstrap table
+         */
+        init: function () {
+            var tableId = this.bstableId;
+            this.btInstance =
+                $('#'+tableId).bootstrapTreeTable({
+                    id: this.id,// 选取记录返回的值
+                    code: this.code,// 用于设置父子关系
+                    parentCode: this.parentCode,// 用于设置父子关系
+                    rootCodeValue: this.rootCodeValue,//设置根节点code值----可指定根节点,默认为null,"",0,"0"
+                    type: this.method, //请求数据的ajax类型
+                    url: this.url,   //请求数据的ajax的url
+                    ajaxParams: this.data, //请求数据的ajax的data属性
+                    expandColumn: this.expandColumn,//在哪一列上面显示展开按钮,从0开始
+                    striped: true,   //是否各行渐变色
+                    expandAll: this.expandAll,  //是否全部展开
+                    columns: this.columns,		//列数组
+                    toolbar: "#" + this.toolbarId,//顶部工具条
+                    height: this.height,
+                });
+            return this;
+        },
+
+        /**
+         * 设置在哪一列上面显示展开按钮,从0开始
+         */
+        setExpandColumn: function (expandColumn) {
+            this.expandColumn = expandColumn;
+        },
+        /**
+         * 设置记录返回的id值
+         */
+        setIdField: function (id) {
+            this.id = id;
+        },
+        /**
+         * 设置记录分级的字段
+         */
+        setCodeField: function (code) {
+            this.code = code;
+        },
+        /**
+         * 设置记录分级的父级字段
+         */
+        setParentCodeField: function (parentCode) {
+            this.parentCode = parentCode;
+        },
+        /**
+         * 设置根节点code值----可指定根节点,默认为null,"",0,"0"
+         */
+        setRootCodeValue: function (rootCodeValue) {
+            this.rootCodeValue = rootCodeValue;
+        },
+        /**
+         * 设置是否默认全部展开
+         */
+        setExpandAll: function (expandAll) {
+        	this.expandAll = expandAll;
+        },
+        /**
+         * 设置表格高度
+         */
+        setHeight: function (height) {
+        	this.height = height;
+        },
+        /**
+         * 设置ajax post请求时候附带的参数
+         */
+        set: function (key, value) {
+            if (typeof key == "object") {
+                for (var i in key) {
+                    if (typeof i == "function")
+                        continue;
+                    this.data[i] = key[i];
+                }
+            } else {
+                this.data[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+            }
+            return this;
+        },
+
+        /**
+         * 设置ajax post请求时候附带的参数
+         */
+        setData: function (data) {
+            this.data = data;
+            return this;
+        },
+
+        /**
+         * 清空ajax post请求参数
+         */
+        clear: function () {
+            this.data = {};
+            return this;
+        },
+
+        /**
+         * 刷新表格
+         */
+        refresh: function (parms) {
+            if (typeof parms != "undefined") {
+                this.btInstance.bootstrapTreeTable('refresh', parms.query);// 为了兼容bootstrap-table的写法
+            } else {
+                this.btInstance.bootstrapTreeTable('refresh');
+            }
+        }
+    };
+
+    window.BSTreeTable = BSTreeTable;
+
+}());
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/web-upload-object.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/web-upload-object.js
new file mode 100644
index 0000000..5ceded7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/web-upload-object.js
@@ -0,0 +1,126 @@
+/**
+ * web-upload 工具类
+ * 
+ * 约定:
+ * 上传按钮的id = 图片隐藏域id + 'BtnId'
+ * 图片预览框的id = 图片隐藏域id + 'PreId'
+ * 
+ * @author fengshuonan
+ */
+(function() {
+	
+	var $WebUpload = function(pictureId) {
+		this.pictureId = pictureId;
+		this.uploadBtnId = pictureId + "BtnId";
+		this.uploadPreId = pictureId + "PreId";
+		this.uploadUrl = Feng.ctxPath + '/mgr/upload';
+		this.fileSizeLimit = 100 * 1024 * 1024;
+		this.picWidth = 800;
+		this.picHeight = 800;
+        this.uploadBarId = null;
+	};
+
+	$WebUpload.prototype = {
+		/**
+		 * 初始化webUploader
+		 */
+		init : function() {
+			var uploader = this.create();
+			this.bindEvent(uploader);
+			return uploader;
+		},
+		
+		/**
+		 * 创建webuploader对象
+		 */
+		create : function() {
+			var webUploader = WebUploader.create({
+				auto : true,
+				pick : {
+					id : '#' + this.uploadBtnId,
+					multiple : false,// 只上传一个
+				},
+				accept : {
+					title : 'Images',
+					extensions : 'gif,jpg,jpeg,bmp,png',
+                    mimeTypes : 'image/gif,image/jpg,image/jpeg,image/bmp,image/png'
+				},
+				swf : Feng.ctxPath
+						+ '/static/js/plugins/webuploader/Uploader.swf',
+				disableGlobalDnd : true,
+				duplicate : true,
+				server : this.uploadUrl,
+				fileSingleSizeLimit : this.fileSizeLimit
+			});
+			
+			return webUploader;
+		},
+
+		/**
+		 * 绑定事件
+		 */
+		bindEvent : function(bindedObj) {
+			var me =  this;
+			bindedObj.on('fileQueued', function(file) {
+				var $li = $('<div><img width="100px" height="100px"></div>');
+				var $img = $li.find('img');
+
+				$("#" + me.uploadPreId).html($li);
+
+				// 生成缩略图
+				bindedObj.makeThumb(file, function(error, src) {
+					if (error) {
+						$img.replaceWith('<span>不能预览</span>');
+						return;
+					}
+					$img.attr('src', src);
+				}, me.picWidth, me.picHeight);
+			});
+
+			// 文件上传过程中创建进度条实时显示。
+			bindedObj.on('uploadProgress', function(file, percentage) {
+                $("#"+me.uploadBarId).css("width",percentage * 100 + "%");
+			});
+
+			// 文件上传成功,给item添加成功class, 用样式标记上传成功。
+			bindedObj.on('uploadSuccess', function(file,response) {
+				Feng.success("上传成功");
+				$("#" + me.pictureId).val(response);
+			});
+
+			// 文件上传失败,显示上传出错。
+			bindedObj.on('uploadError', function(file) {
+				Feng.error("上传失败");
+			});
+
+			// 其他错误
+			bindedObj.on('error', function(type) {
+				if ("Q_EXCEED_SIZE_LIMIT" == type) {
+					Feng.error("文件大小超出了限制");
+				} else if ("Q_TYPE_DENIED" == type) {
+					Feng.error("文件类型不满足");
+				} else if ("Q_EXCEED_NUM_LIMIT" == type) {
+					Feng.error("上传数量超过限制");
+				} else if ("F_DUPLICATE" == type) {
+					Feng.error("图片选择重复");
+				} else {
+					Feng.error("上传过程中出错");
+				}
+			});
+
+			// 完成上传完了,成功或者失败
+			bindedObj.on('uploadComplete', function(file) {
+			});
+		},
+
+        /**
+         * 设置图片上传的进度条的id
+         */
+        setUploadBarId: function (id) {
+            this.uploadBarId = id;
+        }
+	};
+
+	window.$WebUpload = $WebUpload;
+
+}());
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/common/ztree-object.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/ztree-object.js
new file mode 100644
index 0000000..eee6cb2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/common/ztree-object.js
@@ -0,0 +1,94 @@
+/**
+ * ztree插件的封装
+ */
+(function() {
+
+	var $ZTree = function(id, url) {
+		this.id = id;
+		this.url = url;
+		this.onClick = null;
+		this.settings = null;
+		this.ondblclick=null;
+	};
+
+	$ZTree.prototype = {
+		/**
+		 * 初始化ztree的设置
+		 */
+		initSetting : function() {
+			var settings = {
+				view : {
+					dblClickExpand : true,
+					selectedMulti : false
+				},
+				data : {simpleData : {enable : true}},
+				callback : {
+					onClick : this.onClick,
+					onDblClick:this.ondblclick
+				}
+			};
+			return settings;
+		},
+
+		/**
+		 * 手动设置ztree的设置
+		 */
+		setSettings : function(val) {
+			this.settings = val;
+		},
+
+		/**
+		 * 初始化ztree
+		 */
+		init : function() {
+			var zNodeSeting = null;
+			if(this.settings != null){
+				zNodeSeting = this.settings;
+			}else{
+				zNodeSeting = this.initSetting();
+			}
+			var zNodes = this.loadNodes();
+			$.fn.zTree.init($("#" + this.id), zNodeSeting, zNodes);
+		},
+
+		/**
+		 * 绑定onclick事件
+		 */
+		bindOnClick : function(func) {
+			this.onClick = func;
+		},
+		/**
+		 * 绑定双击事件
+		 */
+		bindOnDblClick : function(func) {
+			this.ondblclick=func;
+		},
+
+
+		/**
+		 * 加载节点
+		 */
+		loadNodes : function() {
+			var zNodes = null;
+			var ajax = new $ax(Feng.ctxPath + this.url, function(data) {
+				zNodes = data;
+			}, function(data) {
+				Feng.error("加载ztree信息失败!");
+			});
+			ajax.start();
+			return zNodes;
+		},
+
+		/**
+		 * 获取选中的值
+		 */
+		getSelectedVal : function(){
+			var zTree = $.fn.zTree.getZTreeObj(this.id);
+			var nodes = zTree.getSelectedNodes();
+			return nodes[0].name;
+		}
+	};
+
+	window.$ZTree = $ZTree;
+
+}());
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/contabs.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/contabs.js
new file mode 100644
index 0000000..1d4ebde
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/contabs.js
@@ -0,0 +1,339 @@
+var MyCrontab = {};
+
+
+/**
+ * 滚动到指定选项卡
+ */
+MyCrontab.scrollToTab = function (element) {
+    var marginLeftVal = MyCrontab.calSumWidth($(element).prevAll()),
+        marginRightVal = MyCrontab.calSumWidth($(element).nextAll());
+    // 可视区域非tab宽度
+    var tabOuterWidth = MyCrontab.calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
+    //可视区域tab宽度
+    var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
+    //实际滚动宽度
+    var scrollVal = 0;
+    if ($(".page-tabs-content").outerWidth() < visibleWidth) {
+        scrollVal = 0;
+    } else if (marginRightVal <= (visibleWidth - $(element).outerWidth(true) - $(element).next().outerWidth(true))) {
+        if ((visibleWidth - $(element).next().outerWidth(true)) > marginRightVal) {
+            scrollVal = marginLeftVal;
+            var tabElement = element;
+            while ((scrollVal - $(tabElement).outerWidth()) > ($(".page-tabs-content").outerWidth() - visibleWidth)) {
+                scrollVal -= $(tabElement).prev().outerWidth();
+                tabElement = $(tabElement).prev();
+            }
+        }
+    } else if (marginLeftVal > (visibleWidth - $(element).outerWidth(true) - $(element).prev().outerWidth(true))) {
+        scrollVal = marginLeftVal - $(element).prev().outerWidth(true);
+    }
+    $('.page-tabs-content').animate({
+        marginLeft: 0 - scrollVal + 'px'
+    }, "fast");
+};
+
+
+/**
+ * 计算元素集合的总宽度
+ */
+MyCrontab.calSumWidth = function (elements) {
+    var width = 0;
+    $(elements).each(function () {
+        width += $(this).outerWidth(true);
+    });
+    return width;
+};
+
+
+$(function () {
+
+    //计算元素集合的总宽度
+    function calSumWidth(elements) {
+        MyCrontab.calSumWidth(elements);
+    }
+
+    //滚动到指定选项卡
+    function scrollToTab(element) {
+        MyCrontab.scrollToTab(element);
+    }
+
+    //查看左侧隐藏的选项卡
+    function scrollTabLeft() {
+        var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
+        // 可视区域非tab宽度
+        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
+        //可视区域tab宽度
+        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
+        //实际滚动宽度
+        var scrollVal = 0;
+        if ($(".page-tabs-content").width() < visibleWidth) {
+            return false;
+        } else {
+            var tabElement = $(".J_menuTab:first");
+            var offsetVal = 0;
+            while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) {//找到离当前tab最近的元素
+                offsetVal += $(tabElement).outerWidth(true);
+                tabElement = $(tabElement).next();
+            }
+            offsetVal = 0;
+            if (calSumWidth($(tabElement).prevAll()) > visibleWidth) {
+                while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
+                    offsetVal += $(tabElement).outerWidth(true);
+                    tabElement = $(tabElement).prev();
+                }
+                scrollVal = calSumWidth($(tabElement).prevAll());
+            }
+        }
+        $('.page-tabs-content').animate({
+            marginLeft: 0 - scrollVal + 'px'
+        }, "fast");
+    }
+
+    //查看右侧隐藏的选项卡
+    function scrollTabRight() {
+        var marginLeftVal = Math.abs(parseInt($('.page-tabs-content').css('margin-left')));
+        // 可视区域非tab宽度
+        var tabOuterWidth = calSumWidth($(".content-tabs").children().not(".J_menuTabs"));
+        //可视区域tab宽度
+        var visibleWidth = $(".content-tabs").outerWidth(true) - tabOuterWidth;
+        //实际滚动宽度
+        var scrollVal = 0;
+        if ($(".page-tabs-content").width() < visibleWidth) {
+            return false;
+        } else {
+            var tabElement = $(".J_menuTab:first");
+            var offsetVal = 0;
+            while ((offsetVal + $(tabElement).outerWidth(true)) <= marginLeftVal) {//找到离当前tab最近的元素
+                offsetVal += $(tabElement).outerWidth(true);
+                tabElement = $(tabElement).next();
+            }
+            offsetVal = 0;
+            while ((offsetVal + $(tabElement).outerWidth(true)) < (visibleWidth) && tabElement.length > 0) {
+                offsetVal += $(tabElement).outerWidth(true);
+                tabElement = $(tabElement).next();
+            }
+            scrollVal = calSumWidth($(tabElement).prevAll());
+            if (scrollVal > 0) {
+                $('.page-tabs-content').animate({
+                    marginLeft: 0 - scrollVal + 'px'
+                }, "fast");
+            }
+        }
+    }
+
+    //通过遍历给菜单项加上data-index属性
+    $(".J_menuItem").each(function (index) {
+        if (!$(this).attr('data-index')) {
+            $(this).attr('data-index', index);
+        }
+    });
+
+    function menuItem() {
+        // 获取标识数据
+        var dataUrl = $(this).attr('href'),
+            dataIndex = $(this).data('index'),
+            menuName = $.trim($(this).text()),
+            flag = true;
+        if (dataUrl == undefined || $.trim(dataUrl).length == 0) return false;
+
+        // 选项卡菜单已存在
+        $('.J_menuTab').each(function () {
+            if ($(this).data('id') == dataUrl) {
+                if (!$(this).hasClass('active')) {
+                    $(this).addClass('active').siblings('.J_menuTab').removeClass('active');
+                    scrollToTab(this);
+                    // 显示tab对应的内容区
+                    $('.J_mainContent .J_iframe').each(function () {
+                        if ($(this).data('id') == dataUrl) {
+                            $(this).show().siblings('.J_iframe').hide();
+                            $(this).attr('src', $(this).attr('src'));
+                            return false;
+                        }
+                    });
+                }
+                flag = false;
+                return false;
+            }
+        });
+
+        // 选项卡菜单不存在
+        if (flag) {
+            var str = '<a href="javascript:;" class="active J_menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
+            $('.J_menuTab').removeClass('active');
+
+            // 添加选项卡对应的iframe
+            var str1 = '<iframe class="J_iframe" name="iframe' + dataIndex + '" width="100%" height="100%" src="' + dataUrl + '" frameborder="0" data-id="' + dataUrl + '" seamless></iframe>';
+            $('.J_mainContent').find('iframe.J_iframe').hide().parents('.J_mainContent').append(str1);
+
+            //显示loading提示
+            var loading = layer.load();
+
+            $('.J_mainContent iframe:visible').load(function () {
+                //iframe加载完成后隐藏loading提示
+                layer.close(loading);
+            });
+            // 添加选项卡
+            $('.J_menuTabs .page-tabs-content').append(str);
+            scrollToTab($('.J_menuTab.active'));
+        }
+        return false;
+    }
+
+    $('.J_menuItem').on('click', menuItem);
+
+    // 关闭选项卡菜单
+    function closeTab() {
+        var closeTabId = $(this).parents('.J_menuTab').data('id');
+        var currentWidth = $(this).parents('.J_menuTab').width();
+
+        // 当前元素处于活动状态
+        if ($(this).parents('.J_menuTab').hasClass('active')) {
+
+            // 当前元素后面有同辈元素,使后面的一个元素处于活动状态
+            if ($(this).parents('.J_menuTab').next('.J_menuTab').size()) {
+
+                var activeId = $(this).parents('.J_menuTab').next('.J_menuTab:eq(0)').data('id');
+                highLightMenuItem(activeId);  //高亮对应的tab菜单
+                $(this).parents('.J_menuTab').next('.J_menuTab:eq(0)').addClass('active');
+
+                $('.J_mainContent .J_iframe').each(function () {
+                    if ($(this).data('id') == activeId) {
+                        $(this).show().siblings('.J_iframe').hide();
+                        return false;
+                    }
+                });
+
+                var marginLeftVal = parseInt($('.page-tabs-content').css('margin-left'));
+                if (marginLeftVal < 0) {
+                    $('.page-tabs-content').animate({
+                        marginLeft: (marginLeftVal + currentWidth) + 'px'
+                    }, "fast");
+                }
+
+                //  移除当前选项卡
+                $(this).parents('.J_menuTab').remove();
+
+                // 移除tab对应的内容区
+                $('.J_mainContent .J_iframe').each(function () {
+                    if ($(this).data('id') == closeTabId) {
+                        $(this).remove();
+                        return false;
+                    }
+                });
+            }
+
+            // 当前元素后面没有同辈元素,使当前元素的上一个元素处于活动状态
+            if ($(this).parents('.J_menuTab').prev('.J_menuTab').size()) {
+                var activeId = $(this).parents('.J_menuTab').prev('.J_menuTab:last').data('id');
+                $(this).parents('.J_menuTab').prev('.J_menuTab:last').addClass('active');
+                $('.J_mainContent .J_iframe').each(function () {
+                    if ($(this).data('id') == activeId) {
+                        $(this).show().siblings('.J_iframe').hide();
+                        return false;
+                    }
+                });
+
+                //  移除当前选项卡
+                $(this).parents('.J_menuTab').remove();
+
+                // 移除tab对应的内容区
+                $('.J_mainContent .J_iframe').each(function () {
+                    if ($(this).data('id') == closeTabId) {
+                        $(this).remove();
+                        return false;
+                    }
+                });
+                highLightMenuItem(activeId);//高亮对应的tab菜单
+            }
+        }
+        // 当前元素不处于活动状态
+        else {
+            //  移除当前选项卡
+            $(this).parents('.J_menuTab').remove();
+
+            // 移除相应tab对应的内容区
+            $('.J_mainContent .J_iframe').each(function () {
+                if ($(this).data('id') == closeTabId) {
+                    $(this).remove();
+                    return false;
+                }
+            });
+            scrollToTab($('.J_menuTab.active'));
+        }
+        return false;
+    }
+
+    $('.J_menuTabs').on('click', '.J_menuTab i', closeTab);
+
+    //关闭其他选项卡
+    function closeOtherTabs() {
+        $('.page-tabs-content').children("[data-id]").not(":first").not(".active").each(function () {
+            $('.J_iframe[data-id="' + $(this).data('id') + '"]').remove();
+            $(this).remove();
+        });
+        $('.page-tabs-content').css("margin-left", "0");
+    }
+
+    $('.J_tabCloseOther').on('click', closeOtherTabs);
+
+    //滚动到已激活的选项卡
+    function showActiveTab() {
+        scrollToTab($('.J_menuTab.active'));
+    }
+
+    $('.J_tabShowActive').on('click', showActiveTab);
+
+
+    // 点击选项卡菜单
+    function activeTab() {
+        if (!$(this).hasClass('active')) {
+            var currentId = $(this).data('id');
+            highLightMenuItem(currentId);  //高亮对应的tab菜单
+            // 显示tab对应的内容区
+            $('.J_mainContent .J_iframe').each(function () {
+                if ($(this).data('id') == currentId) {
+                    $(this).show().siblings('.J_iframe').hide();
+                    return false;
+                }
+            });
+            $(this).addClass('active').siblings('.J_menuTab').removeClass('active');
+            scrollToTab(this);
+        }
+    }
+
+    $('.J_menuTabs').on('click', '.J_menuTab', activeTab);
+
+    //刷新iframe
+    function refreshTab() {
+        var target = $('.J_iframe[data-id="' + $(this).data('id') + '"]');
+        var url = target.attr('src');
+        //显示loading提示
+        // var loading = layer.load();
+        // target.attr('src', url).load(function () {
+        //     //关闭loading提示
+        //     layer.close(loading);
+        // });
+    }
+
+    $('.J_menuTabs').on('dblclick', '.J_menuTab', refreshTab);
+
+    // 左移按扭
+    $('.J_tabLeft').on('click', scrollTabLeft);
+
+    // 右移按扭
+    $('.J_tabRight').on('click', scrollTabRight);
+
+    // 关闭全部
+    $('.J_tabCloseAll').on('click', function () {
+        $('.page-tabs-content').children("[data-id]").not(":first").each(function () {
+            $('.J_iframe[data-id="' + $(this).data('id') + '"]').remove();
+            $(this).remove();
+        });
+        $('.page-tabs-content').children("[data-id]:first").each(function () {
+            $('.J_iframe[data-id="' + $(this).data('id') + '"]').show();
+            $(this).addClass("active");
+        });
+        $('.page-tabs-content').css("margin-left", "0");
+    });
+
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/content.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/content.js
new file mode 100644
index 0000000..8252e9f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/content.js
@@ -0,0 +1,98 @@
+var $parentNode = window.parent.document;
+
+function $childNode(name) {
+    return window.frames[name]
+}
+
+// tooltips
+$('.tooltip-demo').tooltip({
+    selector: "[data-toggle=tooltip]",
+    container: "body"
+});
+
+// 使用animation.css修改Bootstrap Modal
+$('.modal').appendTo("body");
+
+$("[data-toggle=popover]").popover();
+
+//折叠ibox
+$('.collapse-link').click(function () {
+    var ibox = $(this).closest('div.ibox');
+    var button = $(this).find('i');
+    var content = ibox.find('div.ibox-content');
+    content.slideToggle(200);
+    button.toggleClass('fa-chevron-up').toggleClass('fa-chevron-down');
+    ibox.toggleClass('').toggleClass('border-bottom');
+    setTimeout(function () {
+        ibox.resize();
+        ibox.find('[id^=map-]').resize();
+    }, 50);
+});
+
+//关闭ibox
+$('.close-link').click(function () {
+    var content = $(this).closest('div.ibox');
+    content.remove();
+});
+
+//判断当前页面是否在iframe中
+if (top == this) {
+    var gohome = '<div class="gohome"><a class="animated bounceInUp" href="' + Feng.ctxPath + '/" title="返回首页"><i class="fa fa-home"></i></a></div>';
+    $('body').append(gohome);
+}
+
+//animation.css
+function animationHover(element, animation) {
+    element = $(element);
+    element.hover(
+        function () {
+            element.addClass('animated ' + animation);
+        },
+        function () {
+            //动画完成之前移除class
+            window.setTimeout(function () {
+                element.removeClass('animated ' + animation);
+            }, 2000);
+        });
+}
+
+//拖动面板
+function WinMove() {
+    var element = "[class*=col]";
+    var handle = ".ibox-title";
+    var connect = "[class*=col]";
+    $(element).sortable({
+            handle: handle,
+            connectWith: connect,
+            tolerance: 'pointer',
+            forcePlaceholderSize: true,
+            opacity: 0.8,
+        })
+        .disableSelection();
+};
+
+$(function () {
+//初始化下拉框
+    var config = {
+        '.chosen-select': {},
+        '.chosen-select-deselect': {
+            allow_single_deselect: true
+        },
+        '.chosen-select-no-single': {
+            disable_search_threshold: 10
+        },
+        '.chosen-select-no-results': {
+            no_results_text: '没有要显示的数据!'
+        },
+        '.chosen-select-width': {
+            width: "95%"
+        }
+    }
+    for (var selector in config) {
+        $(selector).chosen(config[selector]);
+    }
+    $('.i-checks').iCheck({
+        checkboxClass: 'icheckbox_square-green',
+        radioClass: 'iradio_square-green',
+    });
+});
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/hplus.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/hplus.js
new file mode 100644
index 0000000..b639026
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/hplus.js
@@ -0,0 +1,294 @@
+//自定义js
+
+//公共配置
+
+
+$(document).ready(function () {
+
+    // MetsiMenu
+    $('#side-menu').metisMenu();
+    // 打开右侧边栏
+    $('.right-sidebar-toggle').click(function () {
+        $('#right-sidebar').toggleClass('sidebar-open');
+    });
+
+    // 右侧边栏使用slimscroll
+    $('.sidebar-container').slimScroll({
+        height: '100%',
+        railOpacity: 0.4,
+        wheelStep: 10
+    });
+
+    // 打开聊天窗口
+    $('.open-small-chat').click(function () {
+        $(this).children().toggleClass('fa-comments').toggleClass('fa-remove');
+        $('.small-chat-box').toggleClass('active');
+    });
+
+    // 聊天窗口使用slimscroll
+    $('.small-chat-box .content').slimScroll({
+        height: '234px',
+        railOpacity: 0.4
+    });
+
+    // Small todo handler
+    $('.check-link').click(function () {
+        var button = $(this).find('i');
+        var label = $(this).next('span');
+        button.toggleClass('fa-check-square').toggleClass('fa-square-o');
+        label.toggleClass('todo-completed');
+        return false;
+    });
+
+    //固定菜单栏
+    $(function () {
+        $('.sidebar-collapse').slimScroll({
+            height: '100%',
+            railOpacity: 0.9,
+            alwaysVisible: false
+        });
+    });
+
+
+    // 菜单切换
+    $('.navbar-minimalize').click(function () {
+        $("body").toggleClass("mini-navbar");
+        SmoothlyMenu();
+    });
+
+
+    // 侧边栏高度
+    function fix_height() {
+        var heightWithoutNavbar = $("body > #wrapper").height() - 61;
+        $(".sidebard-panel").css("min-height", heightWithoutNavbar + "px");
+    }
+    fix_height();
+
+    $(window).bind("load resize click scroll", function () {
+        if (!$("body").hasClass('body-small')) {
+            fix_height();
+        }
+    });
+
+    //侧边栏滚动
+    $(window).scroll(function () {
+        if ($(window).scrollTop() > 0 && !$('body').hasClass('fixed-nav')) {
+            $('#right-sidebar').addClass('sidebar-top');
+        } else {
+            $('#right-sidebar').removeClass('sidebar-top');
+        }
+    });
+
+    $('.full-height-scroll').slimScroll({
+        height: '100%'
+    });
+
+    $('#side-menu>li').click(function () {
+        if ($('body').hasClass('mini-navbar')) {
+            NavToggle();
+        }
+    });
+    $('#side-menu>li li a').click(function () {
+        if ($(window).width() < 769) {
+            NavToggle();
+        }
+    });
+
+    //点击菜单的时候高亮显示菜单
+    $("a[name='tabMenuItem']").click(function(){
+        clearTabMenuItem();
+        $(this).addClass("tab-menu-selected");
+    });
+
+    $('.nav-close').click(NavToggle);
+
+    //ios浏览器兼容性处理
+    if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
+        $('#content-main').css('overflow-y', 'auto');
+    }
+
+});
+
+$(window).bind("load resize", function () {
+    if ($(this).width() < 769) {
+        $('body').addClass('mini-navbar');
+        $('.navbar-static-side').fadeIn();
+    }
+});
+
+function clearTabMenuItem(){
+    $("a[name='tabMenuItem']").each(function(){
+        $(this).removeClass("tab-menu-selected");
+    });
+}
+
+function highLightMenuItem(hrefVal){
+    clearTabMenuItem();
+    $("a[href='" + hrefVal + "']").addClass("tab-menu-selected");
+}
+
+function NavToggle() {
+    $('.navbar-minimalize').trigger('click');
+}
+
+function SmoothlyMenu() {
+    if (!$('body').hasClass('mini-navbar')) {
+        $('#side-menu').hide();
+        setTimeout(
+            function () {
+                $('#side-menu').fadeIn(500);
+            }, 100);
+    } else if ($('body').hasClass('fixed-sidebar')) {
+        $('#side-menu').hide();
+        setTimeout(
+            function () {
+                $('#side-menu').fadeIn(500);
+            }, 300);
+    } else {
+        $('#side-menu').removeAttr('style');
+    }
+}
+
+
+//主题设置
+$(function () {
+
+    // 顶部菜单固定
+    $('#fixednavbar').click(function () {
+        if ($('#fixednavbar').is(':checked')) {
+            $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top');
+            $("body").removeClass('boxed-layout');
+            $("body").addClass('fixed-nav');
+            $('#boxedlayout').prop('checked', false);
+
+            if (localStorageSupport) {
+                localStorage.setItem("boxedlayout", 'off');
+            }
+
+            if (localStorageSupport) {
+                localStorage.setItem("fixednavbar", 'on');
+            }
+        } else {
+            $(".navbar-fixed-top").removeClass('navbar-fixed-top').addClass('navbar-static-top');
+            $("body").removeClass('fixed-nav');
+
+            if (localStorageSupport) {
+                localStorage.setItem("fixednavbar", 'off');
+            }
+        }
+    });
+
+
+    // 收起左侧菜单
+    $('#collapsemenu').click(function () {
+        if ($('#collapsemenu').is(':checked')) {
+            $("body").addClass('mini-navbar');
+            SmoothlyMenu();
+
+            if (localStorageSupport) {
+                localStorage.setItem("collapse_menu", 'on');
+            }
+
+        } else {
+            $("body").removeClass('mini-navbar');
+            SmoothlyMenu();
+
+            if (localStorageSupport) {
+                localStorage.setItem("collapse_menu", 'off');
+            }
+        }
+    });
+
+    // 固定宽度
+    $('#boxedlayout').click(function () {
+        if ($('#boxedlayout').is(':checked')) {
+            $("body").addClass('boxed-layout');
+            $('#fixednavbar').prop('checked', false);
+            $(".navbar-fixed-top").removeClass('navbar-fixed-top').addClass('navbar-static-top');
+            $("body").removeClass('fixed-nav');
+            if (localStorageSupport) {
+                localStorage.setItem("fixednavbar", 'off');
+            }
+
+
+            if (localStorageSupport) {
+                localStorage.setItem("boxedlayout", 'on');
+            }
+        } else {
+            $("body").removeClass('boxed-layout');
+
+            if (localStorageSupport) {
+                localStorage.setItem("boxedlayout", 'off');
+            }
+        }
+    });
+
+    // 默认主题
+    $('.s-skin-0').click(function () {
+        $("body").removeClass("skin-1");
+        $("body").removeClass("skin-2");
+        $("body").removeClass("skin-3");
+        return false;
+    });
+
+    // 蓝色主题
+    $('.s-skin-1').click(function () {
+        $("body").removeClass("skin-2");
+        $("body").removeClass("skin-3");
+        $("body").addClass("skin-1");
+        return false;
+    });
+
+    // 黄色主题
+    $('.s-skin-3').click(function () {
+        $("body").removeClass("skin-1");
+        $("body").removeClass("skin-2");
+        $("body").addClass("skin-3");
+        return false;
+    });
+
+    if (localStorageSupport) {
+        var collapse = localStorage.getItem("collapse_menu");
+        var fixednavbar = localStorage.getItem("fixednavbar");
+        var boxedlayout = localStorage.getItem("boxedlayout");
+
+        if (collapse == 'on') {
+            $('#collapsemenu').prop('checked', 'checked')
+        }
+        if (fixednavbar == 'on') {
+            $('#fixednavbar').prop('checked', 'checked')
+        }
+        if (boxedlayout == 'on') {
+            $('#boxedlayout').prop('checked', 'checked')
+        }
+    }
+
+    if (localStorageSupport) {
+
+        var collapse = localStorage.getItem("collapse_menu");
+        var fixednavbar = localStorage.getItem("fixednavbar");
+        var boxedlayout = localStorage.getItem("boxedlayout");
+
+        var body = $('body');
+
+        if (collapse == 'on') {
+            if (!body.hasClass('body-small')) {
+                body.addClass('mini-navbar');
+            }
+        }
+
+        if (fixednavbar == 'on') {
+            $(".navbar-static-top").removeClass('navbar-static-top').addClass('navbar-fixed-top');
+            body.addClass('fixed-nav');
+        }
+
+        if (boxedlayout == 'on') {
+            body.addClass('boxed-layout');
+        }
+    }
+});
+
+//判断浏览器是否支持html5本地存储
+function localStorageSupport() {
+    return (('localStorage' in window) && window['localStorage'] !== null)
+}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.js
new file mode 100644
index 0000000..49990d6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v2.1.4 | (c) 2005, 2015 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b="length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,aa=/[+~]/,ba=/'|\\/g,ca=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),da=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ea=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fa){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(ba,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+ra(o[l]);w=aa.test(a)&&pa(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",ea,!1):e.attachEvent&&e.attachEvent("onunload",ea)),p=!f(g),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ca,da);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?la(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ca,da),a[3]=(a[3]||a[4]||a[5]||"").replace(ca,da),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ca,da).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(ca,da),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return W.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(ca,da).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:oa(function(){return[0]}),last:oa(function(a,b){return[b-1]}),eq:oa(function(a,b,c){return[0>c?c+b:c]}),even:oa(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:oa(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:oa(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:oa(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function qa(){}qa.prototype=d.filters=d.pseudos,d.setFilters=new qa,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function ra(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sa(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function ta(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ua(a,b,c){for(var d=0,e=b.length;e>d;d++)ga(a,b[d],c);return c}function va(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wa(a,b,c,d,e,f){return d&&!d[u]&&(d=wa(d)),e&&!e[u]&&(e=wa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ua(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:va(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=va(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=va(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sa(function(a){return a===b},h,!0),l=sa(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sa(ta(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wa(i>1&&ta(m),i>1&&ra(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xa(a.slice(i,e)),f>e&&xa(a=a.slice(e)),f>e&&ra(a))}m.push(c)}return ta(m)}function ya(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=va(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&ga.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,ya(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ca,da),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ca,da),aa.test(j[0].type)&&pa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&ra(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,aa.test(a)&&pa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){
+return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,ba=/<([\w:]+)/,ca=/<|&#?\w+;/,da=/<(?:script|style|link)/i,ea=/checked\s*(?:[^=]|=\s*.checked.)/i,fa=/^$|\/(?:java|ecma)script/i,ga=/^true\/(.*)/,ha=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ia={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ia.optgroup=ia.option,ia.tbody=ia.tfoot=ia.colgroup=ia.caption=ia.thead,ia.th=ia.td;function ja(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function ka(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function la(a){var b=ga.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function ma(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function na(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function oa(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pa(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=oa(h),f=oa(a),d=0,e=f.length;e>d;d++)pa(f[d],g[d]);if(b)if(c)for(f=f||oa(a),g=g||oa(h),d=0,e=f.length;e>d;d++)na(f[d],g[d]);else na(a,h);return g=oa(h,"script"),g.length>0&&ma(g,!i&&oa(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(ca.test(e)){f=f||k.appendChild(b.createElement("div")),g=(ba.exec(e)||["",""])[1].toLowerCase(),h=ia[g]||ia._default,f.innerHTML=h[1]+e.replace(aa,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=oa(k.appendChild(e),"script"),i&&ma(f),c)){j=0;while(e=f[j++])fa.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=ja(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(oa(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&ma(oa(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(oa(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!da.test(a)&&!ia[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(aa,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(oa(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(oa(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&ea.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(oa(c,"script"),ka),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,oa(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,la),j=0;g>j;j++)h=f[j],fa.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(ha,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qa,ra={};function sa(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function ta(a){var b=l,c=ra[a];return c||(c=sa(a,b),"none"!==c&&c||(qa=(qa||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qa[0].contentDocument,b.write(),b.close(),c=sa(a,b),qa.detach()),ra[a]=c),c}var ua=/^margin/,va=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wa=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xa(a,b,c){var d,e,f,g,h=a.style;return c=c||wa(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),va.test(g)&&ua.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function ya(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var za=/^(none|table(?!-c[ea]).+)/,Aa=new RegExp("^("+Q+")(.*)$","i"),Ba=new RegExp("^([+-])=("+Q+")","i"),Ca={position:"absolute",visibility:"hidden",display:"block"},Da={letterSpacing:"0",fontWeight:"400"},Ea=["Webkit","O","Moz","ms"];function Fa(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Ea.length;while(e--)if(b=Ea[e]+c,b in a)return b;return d}function Ga(a,b,c){var d=Aa.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Ha(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ia(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wa(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xa(a,b,f),(0>e||null==e)&&(e=a.style[b]),va.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Ha(a,b,c||(g?"border":"content"),d,f)+"px"}function Ja(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",ta(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xa(a,"opacity");return""===c?"1":c}}}},cssNumber:{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":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fa(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ba.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fa(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xa(a,b,d)),"normal"===e&&b in Da&&(e=Da[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?za.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Ca,function(){return Ia(a,b,d)}):Ia(a,b,d):void 0},set:function(a,c,d){var e=d&&wa(a);return Ga(a,c,d?Ha(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=ya(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xa,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ua.test(a)||(n.cssHooks[a+b].set=Ga)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wa(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Ja(this,!0)},hide:function(){return Ja(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Ka(a,b,c,d,e){return new Ka.prototype.init(a,b,c,d,e)}n.Tween=Ka,Ka.prototype={constructor:Ka,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Ka.propHooks[this.prop];return a&&a.get?a.get(this):Ka.propHooks._default.get(this)},run:function(a){var b,c=Ka.propHooks[this.prop];return this.options.duration?this.pos=b=n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ka.propHooks._default.set(this),this}},Ka.prototype.init.prototype=Ka.prototype,Ka.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Ka.propHooks.scrollTop=Ka.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Ka.prototype.init,n.fx.step={};var La,Ma,Na=/^(?:toggle|show|hide)$/,Oa=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pa=/queueHooks$/,Qa=[Va],Ra={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Oa.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Oa.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sa(){return setTimeout(function(){La=void 0}),La=n.now()}function Ta(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ua(a,b,c){for(var d,e=(Ra[b]||[]).concat(Ra["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Va(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||ta(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Na.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?ta(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ua(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wa(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xa(a,b,c){var d,e,f=0,g=Qa.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=La||Sa(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:La||Sa(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wa(k,j.opts.specialEasing);g>f;f++)if(d=Qa[f].call(j,a,k,j.opts))return d;return n.map(k,Ua,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xa,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Ra[c]=Ra[c]||[],Ra[c].unshift(b)},prefilter:function(a,b){b?Qa.unshift(a):Qa.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xa(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pa.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Ta(b,!0),a,d,e)}}),n.each({slideDown:Ta("show"),slideUp:Ta("hide"),slideToggle:Ta("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(La=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),La=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Ma||(Ma=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Ma),Ma=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Ya,Za,$a=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Za:Ya)),
+void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Za={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$a[b]||n.find.attr;$a[b]=function(a,b,d){var e,f;return d||(f=$a[b],$a[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$a[b]=f),e}});var _a=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_a.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ab=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ab," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ab," ").indexOf(b)>=0)return!0;return!1}});var bb=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bb,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.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(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cb=n.now(),db=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var eb=/#.*$/,fb=/([?&])_=[^&]*/,gb=/^(.*?):[ \t]*([^\r\n]*)$/gm,hb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ib=/^(?:GET|HEAD)$/,jb=/^\/\//,kb=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lb={},mb={},nb="*/".concat("*"),ob=a.location.href,pb=kb.exec(ob.toLowerCase())||[];function qb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rb(a,b,c,d){var e={},f=a===mb;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sb(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function ub(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:ob,type:"GET",isLocal:hb.test(pb[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sb(sb(a,n.ajaxSettings),b):sb(n.ajaxSettings,a)},ajaxPrefilter:qb(lb),ajaxTransport:qb(mb),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gb.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||ob)+"").replace(eb,"").replace(jb,pb[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kb.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pb[1]&&h[2]===pb[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pb[3]||("http:"===pb[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rb(lb,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ib.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(db.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fb.test(d)?d.replace(fb,"$1_="+cb++):d+(db.test(d)?"&":"?")+"_="+cb++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nb+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rb(mb,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tb(k,v,f)),u=ub(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vb=/%20/g,wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&").replace(vb,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bb=0,Cb={},Db={0:200,1223:204},Eb=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cb)Cb[a]()}),k.cors=!!Eb&&"withCredentials"in Eb,k.ajax=Eb=!!Eb,n.ajaxTransport(function(a){var b;return k.cors||Eb&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bb;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cb[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Db[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cb[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fb=[],Gb=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fb.pop()||n.expando+"_"+cb++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gb.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gb,"$1"+e):b.jsonp!==!1&&(b.url+=(db.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fb.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hb=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hb)return Hb.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ib=a.document.documentElement;function Jb(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jb(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ib;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ib})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jb(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=ya(k.pixelPosition,function(a,c){return c?(c=xa(a,b),va.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kb=a.jQuery,Lb=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lb),b&&a.jQuery===n&&(a.jQuery=Kb),n},typeof b===U&&(a.jQuery=a.$=n),n});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.map b/UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.map
new file mode 100644
index 0000000..0056ad2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/jquery.min.map
@@ -0,0 +1 @@
+{"version":3,"file":"jquery-2.1.4.min.js","sources":["jquery-2.1.4.js"],"names":["global","factory","module","exports","document","w","Error","window","this","noGlobal","arr","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","support","version","jQuery","selector","context","fn","init","rtrim","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","prototype","jquery","constructor","length","toArray","call","get","num","pushStack","elems","ret","merge","prevObject","each","callback","args","map","elem","i","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","src","copy","copyIsArray","clone","target","deep","isFunction","isPlainObject","isArray","undefined","expando","Math","random","replace","isReady","error","msg","noop","obj","type","Array","isWindow","isNumeric","parseFloat","nodeType","isEmptyObject","globalEval","code","script","indirect","eval","trim","createElement","text","head","appendChild","parentNode","removeChild","camelCase","string","nodeName","toLowerCase","value","isArraylike","makeArray","results","Object","inArray","second","grep","invert","callbackInverse","matches","callbackExpect","arg","guid","proxy","tmp","now","Date","split","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","MAX_NEGATIVE","pop","push_native","list","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","rwhitespace","RegExp","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","unloadHandler","childNodes","e","els","seed","match","m","groups","old","nid","newContext","newSelector","ownerDocument","exec","getElementById","id","getElementsByTagName","getElementsByClassName","qsa","test","getAttribute","setAttribute","toSelector","testContext","join","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","div","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","documentElement","node","hasCompare","parent","doc","defaultView","top","addEventListener","attachEvent","className","createComment","getById","getElementsByName","find","filter","attrId","getAttributeNode","tag","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","filters","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","multipleContexts","contexts","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","token","compiled","div1","defaultValue","unique","isXMLDoc","rneedsContext","rsingleTag","risSimple","winnow","qualifier","self","is","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","next","prev","until","truncate","sibling","n","targets","l","closest","pos","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","siblings","contentDocument","reverse","rnotwhite","optionsCache","createOptions","object","flag","Callbacks","memory","fired","firing","firingStart","firingLength","firingIndex","stack","once","fire","data","stopOnFalse","disable","remove","lock","locked","fireWith","Deferred","func","tuples","state","promise","always","deferred","fail","then","fns","newDefer","tuple","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","resolveWith","progressContexts","resolveContexts","readyList","readyWait","holdReady","hold","wait","triggerHandler","off","completed","removeEventListener","readyState","setTimeout","access","chainable","emptyGet","raw","bulk","acceptData","owner","Data","defineProperty","uid","accepts","descriptor","unlock","defineProperties","set","prop","stored","camel","hasData","discard","data_priv","data_user","rbrace","rmultiDash","dataAttr","parseJSON","removeData","_data","_removeData","camelKey","queue","dequeue","startLength","hooks","_queueHooks","stop","setter","clearQueue","count","defer","pnum","source","cssExpand","isHidden","el","css","rcheckableType","fragment","createDocumentFragment","checkClone","cloneNode","noCloneChecked","strundefined","focusinBubbles","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","event","types","handleObjIn","eventHandle","events","t","handleObj","special","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","trigger","onlyHandlers","bubbleType","ontype","eventPath","Event","isTrigger","namespace_re","noBubble","parentWindow","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","props","fixHooks","keyHooks","original","which","charCode","keyCode","mouseHooks","eventDoc","body","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","originalEvent","fixHook","load","blur","click","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","timeStamp","stopImmediatePropagation","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","relatedTarget","attaches","on","one","origFn","rxhtmlTag","rtagName","rhtml","rnoInnerhtml","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","option","thead","col","tr","td","optgroup","tbody","tfoot","colgroup","caption","th","manipulationTarget","content","disableScript","restoreScript","setGlobalEval","refElements","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","getAll","fixInput","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","buildFragment","scripts","selection","wrap","nodes","createTextNode","cleanData","append","domManip","prepend","insertBefore","before","after","keepData","html","replaceWith","replaceChild","detach","hasScripts","iNoClone","_evalUrl","appendTo","prependTo","insertAfter","replaceAll","insert","iframe","elemdisplay","actualDisplay","style","display","getDefaultComputedStyle","defaultDisplay","write","close","rmargin","rnumnonpx","getStyles","opener","getComputedStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","addGetHookIf","conditionFn","hookFn","pixelPositionVal","boxSizingReliableVal","container","backgroundClip","clearCloneStyle","cssText","computePixelPositionAndBoxSizingReliable","divStyle","pixelPosition","boxSizingReliable","reliableMarginRight","marginDiv","marginRight","swap","rdisplayswap","rnumsplit","rrelNum","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","vendorPropName","capName","origName","setPositiveNumber","subtract","max","augmentWidthOrHeight","extra","isBorderBox","styles","getWidthOrHeight","valueIsBorderBox","offsetWidth","offsetHeight","showHide","show","hidden","cssHooks","opacity","cssNumber","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","cssProps","float","margin","padding","border","prefix","suffix","expand","expanded","parts","hide","toggle","Tween","easing","unit","propHooks","run","percent","eased","duration","step","tween","fx","linear","p","swing","cos","PI","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","*","createTween","scale","maxIterations","createFxNow","genFx","includeWidth","height","animation","collection","opts","oldfire","checkDisplay","anim","dataShow","unqueued","overflow","overflowX","overflowY","propFilter","specialEasing","Animation","properties","stopped","tick","currentTime","startTime","tweens","originalProperties","originalOptions","gotoEnd","rejectWith","timer","complete","tweener","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","interval","setInterval","clearInterval","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","optDisabled","radioValue","nodeHook","boolHook","removeAttr","nType","attrHooks","propName","attrNames","propFix","getter","rfocusable","removeProp","for","class","notxml","hasAttribute","rclass","addClass","classes","clazz","finalValue","proceed","removeClass","toggleClass","stateVal","classNames","hasClass","rreturn","valHooks","optionSet","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","nonce","rquery","JSON","parse","parseXML","DOMParser","parseFromString","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","prefilters","transports","allTypes","ajaxLocation","ajaxLocParts","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","ajaxHandleResponses","s","responses","ct","finalDataType","firstDataType","mimeType","getResponseHeader","converters","ajaxConvert","response","isSuccess","conv2","current","conv","responseFields","dataFilter","active","lastModified","etag","url","isLocal","processData","async","contentType","json","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","fireGlobals","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","status","abort","statusText","finalText","success","method","crossDomain","param","traditional","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","modified","getJSON","getScript","throws","wrapAll","firstElementChild","wrapInner","unwrap","visible","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","v","encodeURIComponent","serialize","serializeArray","xhr","XMLHttpRequest","xhrId","xhrCallbacks","xhrSuccessStatus",1223,"xhrSupported","cors","open","username","xhrFields","onload","onerror","responseText","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","keepScripts","parsed","_load","params","animated","getWindow","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","calculatePosition","curElem","left","using","win","box","getBoundingClientRect","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","define","amd","_jQuery","_$","$","noConflict"],"mappings":";CAcC,SAAUA,EAAQC,GAEK,gBAAXC,SAAiD,gBAAnBA,QAAOC,QAQhDD,OAAOC,QAAUH,EAAOI,SACvBH,EAASD,GAAQ,GACjB,SAAUK,GACT,IAAMA,EAAED,SACP,KAAM,IAAIE,OAAO,2CAElB,OAAOL,GAASI,IAGlBJ,EAASD,IAIS,mBAAXO,QAAyBA,OAASC,KAAM,SAAUD,EAAQE,GAQnE,GAAIC,MAEAC,EAAQD,EAAIC,MAEZC,EAASF,EAAIE,OAEbC,EAAOH,EAAIG,KAEXC,EAAUJ,EAAII,QAEdC,KAEAC,EAAWD,EAAWC,SAEtBC,EAASF,EAAWG,eAEpBC,KAMHf,EAAWG,EAAOH,SAElBgB,EAAU,QAGVC,EAAS,SAAUC,EAAUC,GAG5B,MAAO,IAAIF,GAAOG,GAAGC,KAAMH,EAAUC,IAKtCG,EAAQ,qCAGRC,EAAY,QACZC,EAAa,eAGbC,EAAa,SAAUC,EAAKC,GAC3B,MAAOA,GAAOC,cAGhBX,GAAOG,GAAKH,EAAOY,WAElBC,OAAQd,EAERe,YAAad,EAGbC,SAAU,GAGVc,OAAQ,EAERC,QAAS,WACR,MAAO1B,GAAM2B,KAAM9B,OAKpB+B,IAAK,SAAUC,GACd,MAAc,OAAPA,EAGE,EAANA,EAAUhC,KAAMgC,EAAMhC,KAAK4B,QAAW5B,KAAMgC,GAG9C7B,EAAM2B,KAAM9B,OAKdiC,UAAW,SAAUC,GAGpB,GAAIC,GAAMtB,EAAOuB,MAAOpC,KAAK2B,cAAeO,EAO5C,OAJAC,GAAIE,WAAarC,KACjBmC,EAAIpB,QAAUf,KAAKe,QAGZoB,GAMRG,KAAM,SAAUC,EAAUC,GACzB,MAAO3B,GAAOyB,KAAMtC,KAAMuC,EAAUC,IAGrCC,IAAK,SAAUF,GACd,MAAOvC,MAAKiC,UAAWpB,EAAO4B,IAAIzC,KAAM,SAAU0C,EAAMC,GACvD,MAAOJ,GAAST,KAAMY,EAAMC,EAAGD,OAIjCvC,MAAO,WACN,MAAOH,MAAKiC,UAAW9B,EAAMyC,MAAO5C,KAAM6C,aAG3CC,MAAO,WACN,MAAO9C,MAAK+C,GAAI,IAGjBC,KAAM,WACL,MAAOhD,MAAK+C,GAAI,KAGjBA,GAAI,SAAUJ,GACb,GAAIM,GAAMjD,KAAK4B,OACdsB,GAAKP,GAAU,EAAJA,EAAQM,EAAM,EAC1B,OAAOjD,MAAKiC,UAAWiB,GAAK,GAASD,EAAJC,GAAYlD,KAAKkD,SAGnDC,IAAK,WACJ,MAAOnD,MAAKqC,YAAcrC,KAAK2B,YAAY,OAK5CtB,KAAMA,EACN+C,KAAMlD,EAAIkD,KACVC,OAAQnD,EAAImD,QAGbxC,EAAOyC,OAASzC,EAAOG,GAAGsC,OAAS,WAClC,GAAIC,GAASC,EAAMC,EAAKC,EAAMC,EAAaC,EAC1CC,EAAShB,UAAU,OACnBF,EAAI,EACJf,EAASiB,UAAUjB,OACnBkC,GAAO,CAsBR,KAnBuB,iBAAXD,KACXC,EAAOD,EAGPA,EAAShB,UAAWF,OACpBA,KAIsB,gBAAXkB,IAAwBhD,EAAOkD,WAAWF,KACrDA,MAIIlB,IAAMf,IACViC,EAAS7D,KACT2C,KAGWf,EAAJe,EAAYA,IAEnB,GAAmC,OAA7BY,EAAUV,UAAWF,IAE1B,IAAMa,IAAQD,GACbE,EAAMI,EAAQL,GACdE,EAAOH,EAASC,GAGXK,IAAWH,IAKXI,GAAQJ,IAAU7C,EAAOmD,cAAcN,KAAUC,EAAc9C,EAAOoD,QAAQP,MAC7EC,GACJA,GAAc,EACdC,EAAQH,GAAO5C,EAAOoD,QAAQR,GAAOA,MAGrCG,EAAQH,GAAO5C,EAAOmD,cAAcP,GAAOA,KAI5CI,EAAQL,GAAS3C,EAAOyC,OAAQQ,EAAMF,EAAOF,IAGzBQ,SAATR,IACXG,EAAQL,GAASE,GAOrB,OAAOG,IAGRhD,EAAOyC,QAENa,QAAS,UAAavD,EAAUwD,KAAKC,UAAWC,QAAS,MAAO,IAGhEC,SAAS,EAETC,MAAO,SAAUC,GAChB,KAAM,IAAI3E,OAAO2E,IAGlBC,KAAM,aAENX,WAAY,SAAUY,GACrB,MAA4B,aAArB9D,EAAO+D,KAAKD,IAGpBV,QAASY,MAAMZ,QAEfa,SAAU,SAAUH,GACnB,MAAc,OAAPA,GAAeA,IAAQA,EAAI5E,QAGnCgF,UAAW,SAAUJ,GAKpB,OAAQ9D,EAAOoD,QAASU,IAAUA,EAAMK,WAAYL,GAAQ,GAAM,GAGnEX,cAAe,SAAUW,GAKxB,MAA4B,WAAvB9D,EAAO+D,KAAMD,IAAsBA,EAAIM,UAAYpE,EAAOiE,SAAUH,IACjE,EAGHA,EAAIhD,cACNlB,EAAOqB,KAAM6C,EAAIhD,YAAYF,UAAW,kBACnC,GAKD,GAGRyD,cAAe,SAAUP,GACxB,GAAInB,EACJ,KAAMA,IAAQmB,GACb,OAAO,CAER,QAAO,GAGRC,KAAM,SAAUD,GACf,MAAY,OAAPA,EACGA,EAAM,GAGQ,gBAARA,IAAmC,kBAARA,GACxCpE,EAAYC,EAASsB,KAAK6C,KAAU,eAC7BA,IAITQ,WAAY,SAAUC,GACrB,GAAIC,GACHC,EAAWC,IAEZH,GAAOvE,EAAO2E,KAAMJ,GAEfA,IAIgC,IAA/BA,EAAK9E,QAAQ,eACjB+E,EAASzF,EAAS6F,cAAc,UAChCJ,EAAOK,KAAON,EACdxF,EAAS+F,KAAKC,YAAaP,GAASQ,WAAWC,YAAaT,IAI5DC,EAAUF,KAQbW,UAAW,SAAUC,GACpB,MAAOA,GAAO1B,QAASnD,EAAW,OAAQmD,QAASlD,EAAYC,IAGhE4E,SAAU,SAAUvD,EAAMc,GACzB,MAAOd,GAAKuD,UAAYvD,EAAKuD,SAASC,gBAAkB1C,EAAK0C,eAI9D5D,KAAM,SAAUqC,EAAKpC,EAAUC,GAC9B,GAAI2D,GACHxD,EAAI,EACJf,EAAS+C,EAAI/C,OACbqC,EAAUmC,EAAazB,EAExB,IAAKnC,GACJ,GAAKyB,GACJ,KAAYrC,EAAJe,EAAYA,IAGnB,GAFAwD,EAAQ5D,EAASK,MAAO+B,EAAKhC,GAAKH,GAE7B2D,KAAU,EACd,UAIF,KAAMxD,IAAKgC,GAGV,GAFAwB,EAAQ5D,EAASK,MAAO+B,EAAKhC,GAAKH,GAE7B2D,KAAU,EACd,UAOH,IAAKlC,GACJ,KAAYrC,EAAJe,EAAYA,IAGnB,GAFAwD,EAAQ5D,EAAST,KAAM6C,EAAKhC,GAAKA,EAAGgC,EAAKhC,IAEpCwD,KAAU,EACd,UAIF,KAAMxD,IAAKgC,GAGV,GAFAwB,EAAQ5D,EAAST,KAAM6C,EAAKhC,GAAKA,EAAGgC,EAAKhC,IAEpCwD,KAAU,EACd,KAMJ,OAAOxB,IAIRa,KAAM,SAAUE,GACf,MAAe,OAARA,EACN,IACEA,EAAO,IAAKpB,QAASpD,EAAO,KAIhCmF,UAAW,SAAUnG,EAAKoG,GACzB,GAAInE,GAAMmE,KAaV,OAXY,OAAPpG,IACCkG,EAAaG,OAAOrG,IACxBW,EAAOuB,MAAOD,EACE,gBAARjC,IACLA,GAAQA,GAGXG,EAAKyB,KAAMK,EAAKjC,IAIXiC,GAGRqE,QAAS,SAAU9D,EAAMxC,EAAKyC,GAC7B,MAAc,OAAPzC,EAAc,GAAKI,EAAQwB,KAAM5B,EAAKwC,EAAMC,IAGpDP,MAAO,SAAUU,EAAO2D,GAKvB,IAJA,GAAIxD,IAAOwD,EAAO7E,OACjBsB,EAAI,EACJP,EAAIG,EAAMlB,OAECqB,EAAJC,EAASA,IAChBJ,EAAOH,KAAQ8D,EAAQvD,EAKxB,OAFAJ,GAAMlB,OAASe,EAERG,GAGR4D,KAAM,SAAUxE,EAAOK,EAAUoE,GAShC,IARA,GAAIC,GACHC,KACAlE,EAAI,EACJf,EAASM,EAAMN,OACfkF,GAAkBH,EAIP/E,EAAJe,EAAYA,IACnBiE,GAAmBrE,EAAUL,EAAOS,GAAKA,GACpCiE,IAAoBE,GACxBD,EAAQxG,KAAM6B,EAAOS,GAIvB,OAAOkE,IAIRpE,IAAK,SAAUP,EAAOK,EAAUwE,GAC/B,GAAIZ,GACHxD,EAAI,EACJf,EAASM,EAAMN,OACfqC,EAAUmC,EAAalE,GACvBC,IAGD,IAAK8B,EACJ,KAAYrC,EAAJe,EAAYA,IACnBwD,EAAQ5D,EAAUL,EAAOS,GAAKA,EAAGoE,GAEnB,MAATZ,GACJhE,EAAI9B,KAAM8F,OAMZ,KAAMxD,IAAKT,GACViE,EAAQ5D,EAAUL,EAAOS,GAAKA,EAAGoE,GAEnB,MAATZ,GACJhE,EAAI9B,KAAM8F,EAMb,OAAO/F,GAAOwC,SAAWT,IAI1B6E,KAAM,EAINC,MAAO,SAAUjG,EAAID,GACpB,GAAImG,GAAK1E,EAAMyE,CAUf,OARwB,gBAAZlG,KACXmG,EAAMlG,EAAID,GACVA,EAAUC,EACVA,EAAKkG,GAKArG,EAAOkD,WAAY/C,IAKzBwB,EAAOrC,EAAM2B,KAAMe,UAAW,GAC9BoE,EAAQ,WACP,MAAOjG,GAAG4B,MAAO7B,GAAWf,KAAMwC,EAAKpC,OAAQD,EAAM2B,KAAMe,cAI5DoE,EAAMD,KAAOhG,EAAGgG,KAAOhG,EAAGgG,MAAQnG,EAAOmG,OAElCC,GAZC/C,QAeTiD,IAAKC,KAAKD,IAIVxG,QAASA,IAIVE,EAAOyB,KAAK,gEAAgE+E,MAAM,KAAM,SAAS1E,EAAGa,GACnGjD,EAAY,WAAaiD,EAAO,KAAQA,EAAK0C,eAG9C,SAASE,GAAazB,GAMrB,GAAI/C,GAAS,UAAY+C,IAAOA,EAAI/C,OACnCgD,EAAO/D,EAAO+D,KAAMD,EAErB,OAAc,aAATC,GAAuB/D,EAAOiE,SAAUH,IACrC,EAGc,IAAjBA,EAAIM,UAAkBrD,GACnB,EAGQ,UAATgD,GAA+B,IAAXhD,GACR,gBAAXA,IAAuBA,EAAS,GAAOA,EAAS,IAAO+C,GAEhE,GAAI2C,GAWJ,SAAWvH,GAEX,GAAI4C,GACHhC,EACA4G,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACApI,EACAqI,EACAC,EACAC,EACAC,EACAvB,EACAwB,EAGAlE,EAAU,SAAW,EAAI,GAAIiD,MAC7BkB,EAAevI,EAAOH,SACtB2I,EAAU,EACVC,EAAO,EACPC,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,EAAY,SAAUC,EAAGC,GAIxB,MAHKD,KAAMC,IACVhB,GAAe,GAET,GAIRiB,EAAe,GAAK,GAGpBvI,KAAcC,eACdR,KACA+I,EAAM/I,EAAI+I,IACVC,EAAchJ,EAAIG,KAClBA,EAAOH,EAAIG,KACXF,EAAQD,EAAIC,MAGZG,EAAU,SAAU6I,EAAMzG,GAGzB,IAFA,GAAIC,GAAI,EACPM,EAAMkG,EAAKvH,OACAqB,EAAJN,EAASA,IAChB,GAAKwG,EAAKxG,KAAOD,EAChB,MAAOC,EAGT,OAAO,IAGRyG,EAAW,6HAKXC,EAAa,sBAEbC,EAAoB,mCAKpBC,EAAaD,EAAkBhF,QAAS,IAAK,MAG7CkF,EAAa,MAAQH,EAAa,KAAOC,EAAoB,OAASD,EAErE,gBAAkBA,EAElB,2DAA6DE,EAAa,OAASF,EACnF,OAEDI,EAAU,KAAOH,EAAoB,wFAKPE,EAAa,eAM3CE,EAAc,GAAIC,QAAQN,EAAa,IAAK,KAC5CnI,EAAQ,GAAIyI,QAAQ,IAAMN,EAAa,8BAAgCA,EAAa,KAAM,KAE1FO,EAAS,GAAID,QAAQ,IAAMN,EAAa,KAAOA,EAAa,KAC5DQ,EAAe,GAAIF,QAAQ,IAAMN,EAAa,WAAaA,EAAa,IAAMA,EAAa,KAE3FS,EAAmB,GAAIH,QAAQ,IAAMN,EAAa,iBAAmBA,EAAa,OAAQ,KAE1FU,EAAU,GAAIJ,QAAQF,GACtBO,EAAc,GAAIL,QAAQ,IAAMJ,EAAa,KAE7CU,GACCC,GAAM,GAAIP,QAAQ,MAAQL,EAAoB,KAC9Ca,MAAS,GAAIR,QAAQ,QAAUL,EAAoB,KACnDc,IAAO,GAAIT,QAAQ,KAAOL,EAAkBhF,QAAS,IAAK,MAAS,KACnE+F,KAAQ,GAAIV,QAAQ,IAAMH,GAC1Bc,OAAU,GAAIX,QAAQ,IAAMF,GAC5Bc,MAAS,GAAIZ,QAAQ,yDAA2DN,EAC/E,+BAAiCA,EAAa,cAAgBA,EAC9D,aAAeA,EAAa,SAAU,KACvCmB,KAAQ,GAAIb,QAAQ,OAASP,EAAW,KAAM,KAG9CqB,aAAgB,GAAId,QAAQ,IAAMN,EAAa,mDAC9CA,EAAa,mBAAqBA,EAAa,mBAAoB,MAGrEqB,EAAU,sCACVC,EAAU,SAEVC,EAAU,yBAGVC,EAAa,mCAEbC,GAAW,OACXC,GAAU,QAGVC,GAAY,GAAIrB,QAAQ,qBAAuBN,EAAa,MAAQA,EAAa,OAAQ,MACzF4B,GAAY,SAAUC,EAAGC,EAASC,GACjC,GAAIC,GAAO,KAAOF,EAAU,KAI5B,OAAOE,KAASA,GAAQD,EACvBD,EACO,EAAPE,EAECC,OAAOC,aAAcF,EAAO,OAE5BC,OAAOC,aAAcF,GAAQ,GAAK,MAAe,KAAPA,EAAe,QAO5DG,GAAgB,WACfxD,IAIF,KACC3H,EAAKuC,MACH1C,EAAMC,EAAM2B,KAAMwG,EAAamD,YAChCnD,EAAamD,YAIdvL,EAAKoI,EAAamD,WAAW7J,QAASqD,SACrC,MAAQyG,IACTrL,GAASuC,MAAO1C,EAAI0B,OAGnB,SAAUiC,EAAQ8H,GACjBzC,EAAYtG,MAAOiB,EAAQ1D,EAAM2B,KAAK6J,KAKvC,SAAU9H,EAAQ8H,GACjB,GAAIzI,GAAIW,EAAOjC,OACde,EAAI,CAEL,OAASkB,EAAOX,KAAOyI,EAAIhJ,MAC3BkB,EAAOjC,OAASsB,EAAI,IAKvB,QAASoE,IAAQxG,EAAUC,EAASuF,EAASsF,GAC5C,GAAIC,GAAOnJ,EAAMoJ,EAAG7G,EAEnBtC,EAAGoJ,EAAQC,EAAKC,EAAKC,EAAYC,CAUlC,KAROpL,EAAUA,EAAQqL,eAAiBrL,EAAUuH,KAAmB1I,GACtEoI,EAAajH,GAGdA,EAAUA,GAAWnB,EACrB0G,EAAUA,MACVrB,EAAWlE,EAAQkE,SAEM,gBAAbnE,KAA0BA,GACxB,IAAbmE,GAA+B,IAAbA,GAA+B,KAAbA,EAEpC,MAAOqB,EAGR,KAAMsF,GAAQ1D,EAAiB,CAG9B,GAAkB,KAAbjD,IAAoB4G,EAAQhB,EAAWwB,KAAMvL,IAEjD,GAAMgL,EAAID,EAAM,IACf,GAAkB,IAAb5G,EAAiB,CAIrB,GAHAvC,EAAO3B,EAAQuL,eAAgBR,IAG1BpJ,IAAQA,EAAKmD,WAQjB,MAAOS,EALP,IAAK5D,EAAK6J,KAAOT,EAEhB,MADAxF,GAAQjG,KAAMqC,GACP4D,MAOT,IAAKvF,EAAQqL,gBAAkB1J,EAAO3B,EAAQqL,cAAcE,eAAgBR,KAC3EzD,EAAUtH,EAAS2B,IAAUA,EAAK6J,KAAOT,EAEzC,MADAxF,GAAQjG,KAAMqC,GACP4D,MAKH,CAAA,GAAKuF,EAAM,GAEjB,MADAxL,GAAKuC,MAAO0D,EAASvF,EAAQyL,qBAAsB1L,IAC5CwF,CAGD,KAAMwF,EAAID,EAAM,KAAOlL,EAAQ8L,uBAErC,MADApM,GAAKuC,MAAO0D,EAASvF,EAAQ0L,uBAAwBX,IAC9CxF,EAKT,GAAK3F,EAAQ+L,OAASvE,IAAcA,EAAUwE,KAAM7L,IAAc,CASjE,GARAmL,EAAMD,EAAM7H,EACZ+H,EAAanL,EACboL,EAA2B,IAAblH,GAAkBnE,EAMd,IAAbmE,GAAqD,WAAnClE,EAAQkF,SAASC,cAA6B,CACpE6F,EAASrE,EAAU5G,IAEbkL,EAAMjL,EAAQ6L,aAAa,OAChCX,EAAMD,EAAI1H,QAASyG,GAAS,QAE5BhK,EAAQ8L,aAAc,KAAMZ,GAE7BA,EAAM,QAAUA,EAAM,MAEtBtJ,EAAIoJ,EAAOnK,MACX,OAAQe,IACPoJ,EAAOpJ,GAAKsJ,EAAMa,GAAYf,EAAOpJ,GAEtCuJ,GAAapB,GAAS6B,KAAM7L,IAAciM,GAAahM,EAAQ8E,aAAgB9E,EAC/EoL,EAAcJ,EAAOiB,KAAK,KAG3B,GAAKb,EACJ,IAIC,MAHA9L,GAAKuC,MAAO0D,EACX4F,EAAWe,iBAAkBd,IAEvB7F,EACN,MAAM4G,IACN,QACKlB,GACLjL,EAAQoM,gBAAgB,QAQ7B,MAAOvF,GAAQ9G,EAASwD,QAASpD,EAAO,MAAQH,EAASuF,EAASsF,GASnE,QAASlD,MACR,GAAI0E,KAEJ,SAASC,GAAOC,EAAKnH,GAMpB,MAJKiH,GAAK/M,KAAMiN,EAAM,KAAQ/F,EAAKgG,mBAE3BF,GAAOD,EAAKI,SAEZH,EAAOC,EAAM,KAAQnH,EAE9B,MAAOkH,GAOR,QAASI,IAAczM,GAEtB,MADAA,GAAImD,IAAY,EACTnD,EAOR,QAAS0M,IAAQ1M,GAChB,GAAI2M,GAAM/N,EAAS6F,cAAc,MAEjC,KACC,QAASzE,EAAI2M,GACZ,MAAOjC,GACR,OAAO,EACN,QAEIiC,EAAI9H,YACR8H,EAAI9H,WAAWC,YAAa6H,GAG7BA,EAAM,MASR,QAASC,IAAWC,EAAOC,GAC1B,GAAI5N,GAAM2N,EAAMxG,MAAM,KACrB1E,EAAIkL,EAAMjM,MAEX,OAAQe,IACP4E,EAAKwG,WAAY7N,EAAIyC,IAAOmL,EAU9B,QAASE,IAAclF,EAAGC,GACzB,GAAIkF,GAAMlF,GAAKD,EACdoF,EAAOD,GAAsB,IAAfnF,EAAE7D,UAAiC,IAAf8D,EAAE9D,YAChC8D,EAAEoF,aAAenF,KACjBF,EAAEqF,aAAenF,EAGtB,IAAKkF,EACJ,MAAOA,EAIR,IAAKD,EACJ,MAASA,EAAMA,EAAIG,YAClB,GAAKH,IAAQlF,EACZ,MAAO,EAKV,OAAOD,GAAI,EAAI,GAOhB,QAASuF,IAAmBzJ,GAC3B,MAAO,UAAUlC,GAChB,GAAIc,GAAOd,EAAKuD,SAASC,aACzB,OAAgB,UAAT1C,GAAoBd,EAAKkC,OAASA,GAQ3C,QAAS0J,IAAoB1J,GAC5B,MAAO,UAAUlC,GAChB,GAAIc,GAAOd,EAAKuD,SAASC,aACzB,QAAiB,UAAT1C,GAA6B,WAATA,IAAsBd,EAAKkC,OAASA,GAQlE,QAAS2J,IAAwBvN,GAChC,MAAOyM,IAAa,SAAUe,GAE7B,MADAA,IAAYA,EACLf,GAAa,SAAU7B,EAAM/E,GACnC,GAAI3D,GACHuL,EAAezN,KAAQ4K,EAAKhK,OAAQ4M,GACpC7L,EAAI8L,EAAa7M,MAGlB,OAAQe,IACFiJ,EAAO1I,EAAIuL,EAAa9L,MAC5BiJ,EAAK1I,KAAO2D,EAAQ3D,GAAK0I,EAAK1I,SAYnC,QAAS6J,IAAahM,GACrB,MAAOA,IAAmD,mBAAjCA,GAAQyL,sBAAwCzL,EAI1EJ,EAAU2G,GAAO3G,WAOjB8G,EAAQH,GAAOG,MAAQ,SAAU/E,GAGhC,GAAIgM,GAAkBhM,IAASA,EAAK0J,eAAiB1J,GAAMgM,eAC3D,OAAOA,GAA+C,SAA7BA,EAAgBzI,UAAsB,GAQhE+B,EAAcV,GAAOU,YAAc,SAAU2G,GAC5C,GAAIC,GAAYC,EACfC,EAAMH,EAAOA,EAAKvC,eAAiBuC,EAAOrG,CAG3C,OAAKwG,KAAQlP,GAA6B,IAAjBkP,EAAI7J,UAAmB6J,EAAIJ,iBAKpD9O,EAAWkP,EACX7G,EAAU6G,EAAIJ,gBACdG,EAASC,EAAIC,YAMRF,GAAUA,IAAWA,EAAOG,MAE3BH,EAAOI,iBACXJ,EAAOI,iBAAkB,SAAUzD,IAAe,GACvCqD,EAAOK,aAClBL,EAAOK,YAAa,WAAY1D,KAMlCtD,GAAkBT,EAAOqH,GAQzBnO,EAAQ6I,WAAakE,GAAO,SAAUC,GAErC,MADAA,GAAIwB,UAAY,KACRxB,EAAIf,aAAa,eAO1BjM,EAAQ6L,qBAAuBkB,GAAO,SAAUC,GAE/C,MADAA,GAAI/H,YAAakJ,EAAIM,cAAc,MAC3BzB,EAAInB,qBAAqB,KAAK5K,SAIvCjB,EAAQ8L,uBAAyB7B,EAAQ+B,KAAMmC,EAAIrC,wBAMnD9L,EAAQ0O,QAAU3B,GAAO,SAAUC,GAElC,MADA1F,GAAQrC,YAAa+H,GAAMpB,GAAKpI,GACxB2K,EAAIQ,oBAAsBR,EAAIQ,kBAAmBnL,GAAUvC,SAI/DjB,EAAQ0O,SACZ9H,EAAKgI,KAAS,GAAI,SAAUhD,EAAIxL,GAC/B,GAAuC,mBAA3BA,GAAQuL,gBAAkCpE,EAAiB,CACtE,GAAI4D,GAAI/K,EAAQuL,eAAgBC,EAGhC,OAAOT,IAAKA,EAAEjG,YAAeiG,QAG/BvE,EAAKiI,OAAW,GAAI,SAAUjD,GAC7B,GAAIkD,GAASlD,EAAGjI,QAAS0G,GAAWC,GACpC,OAAO,UAAUvI,GAChB,MAAOA,GAAKkK,aAAa,QAAU6C,YAM9BlI,GAAKgI,KAAS,GAErBhI,EAAKiI,OAAW,GAAK,SAAUjD,GAC9B,GAAIkD,GAASlD,EAAGjI,QAAS0G,GAAWC,GACpC,OAAO,UAAUvI,GAChB,GAAIiM,GAAwC,mBAA1BjM,GAAKgN,kBAAoChN,EAAKgN,iBAAiB,KACjF,OAAOf,IAAQA,EAAKxI,QAAUsJ,KAMjClI,EAAKgI,KAAU,IAAI5O,EAAQ6L,qBAC1B,SAAUmD,EAAK5O,GACd,MAA6C,mBAAjCA,GAAQyL,qBACZzL,EAAQyL,qBAAsBmD,GAG1BhP,EAAQ+L,IACZ3L,EAAQkM,iBAAkB0C,GAD3B,QAKR,SAAUA,EAAK5O,GACd,GAAI2B,GACHwE,KACAvE,EAAI,EAEJ2D,EAAUvF,EAAQyL,qBAAsBmD,EAGzC,IAAa,MAARA,EAAc,CAClB,MAASjN,EAAO4D,EAAQ3D,KACA,IAAlBD,EAAKuC,UACTiC,EAAI7G,KAAMqC,EAIZ,OAAOwE,GAER,MAAOZ,IAITiB,EAAKgI,KAAY,MAAI5O,EAAQ8L,wBAA0B,SAAU0C,EAAWpO,GAC3E,MAAKmH,GACGnH,EAAQ0L,uBAAwB0C,GADxC,QAWD/G,KAOAD,MAEMxH,EAAQ+L,IAAM9B,EAAQ+B,KAAMmC,EAAI7B,qBAGrCS,GAAO,SAAUC,GAMhB1F,EAAQrC,YAAa+H,GAAMiC,UAAY,UAAYzL,EAAU,qBAC3CA,EAAU,iEAOvBwJ,EAAIV,iBAAiB,wBAAwBrL,QACjDuG,EAAU9H,KAAM,SAAWgJ,EAAa,gBAKnCsE,EAAIV,iBAAiB,cAAcrL,QACxCuG,EAAU9H,KAAM,MAAQgJ,EAAa,aAAeD,EAAW,KAI1DuE,EAAIV,iBAAkB,QAAU9I,EAAU,MAAOvC,QACtDuG,EAAU9H,KAAK,MAMVsN,EAAIV,iBAAiB,YAAYrL,QACtCuG,EAAU9H,KAAK,YAMVsN,EAAIV,iBAAkB,KAAO9I,EAAU,MAAOvC,QACnDuG,EAAU9H,KAAK,cAIjBqN,GAAO,SAAUC,GAGhB,GAAIkC,GAAQf,EAAIrJ,cAAc,QAC9BoK,GAAMhD,aAAc,OAAQ,UAC5Bc,EAAI/H,YAAaiK,GAAQhD,aAAc,OAAQ,KAI1Cc,EAAIV,iBAAiB,YAAYrL,QACrCuG,EAAU9H,KAAM,OAASgJ,EAAa,eAKjCsE,EAAIV,iBAAiB,YAAYrL,QACtCuG,EAAU9H,KAAM,WAAY,aAI7BsN,EAAIV,iBAAiB,QACrB9E,EAAU9H,KAAK,YAIXM,EAAQmP,gBAAkBlF,EAAQ+B,KAAO9F,EAAUoB,EAAQpB,SAChEoB,EAAQ8H,uBACR9H,EAAQ+H,oBACR/H,EAAQgI,kBACRhI,EAAQiI,qBAERxC,GAAO,SAAUC,GAGhBhN,EAAQwP,kBAAoBtJ,EAAQ/E,KAAM6L,EAAK,OAI/C9G,EAAQ/E,KAAM6L,EAAK,aACnBvF,EAAc/H,KAAM,KAAMoJ,KAI5BtB,EAAYA,EAAUvG,QAAU,GAAI+H,QAAQxB,EAAU6E,KAAK,MAC3D5E,EAAgBA,EAAcxG,QAAU,GAAI+H,QAAQvB,EAAc4E,KAAK,MAIvE4B,EAAahE,EAAQ+B,KAAM1E,EAAQmI,yBAKnC/H,EAAWuG,GAAchE,EAAQ+B,KAAM1E,EAAQI,UAC9C,SAAUS,EAAGC,GACZ,GAAIsH,GAAuB,IAAfvH,EAAE7D,SAAiB6D,EAAE4F,gBAAkB5F,EAClDwH,EAAMvH,GAAKA,EAAElD,UACd,OAAOiD,KAAMwH,MAAWA,GAAwB,IAAjBA,EAAIrL,YAClCoL,EAAMhI,SACLgI,EAAMhI,SAAUiI,GAChBxH,EAAEsH,yBAA8D,GAAnCtH,EAAEsH,wBAAyBE,MAG3D,SAAUxH,EAAGC,GACZ,GAAKA,EACJ,MAASA,EAAIA,EAAElD,WACd,GAAKkD,IAAMD,EACV,OAAO,CAIV,QAAO,GAOTD,EAAY+F,EACZ,SAAU9F,EAAGC,GAGZ,GAAKD,IAAMC,EAEV,MADAhB,IAAe,EACR,CAIR,IAAIwI,IAAWzH,EAAEsH,yBAA2BrH,EAAEqH,uBAC9C,OAAKG,GACGA,GAIRA,GAAYzH,EAAEsD,eAAiBtD,MAAUC,EAAEqD,eAAiBrD,GAC3DD,EAAEsH,wBAAyBrH,GAG3B,EAGc,EAAVwH,IACF5P,EAAQ6P,cAAgBzH,EAAEqH,wBAAyBtH,KAAQyH,EAGxDzH,IAAMgG,GAAOhG,EAAEsD,gBAAkB9D,GAAgBD,EAASC,EAAcQ,GACrE,GAEHC,IAAM+F,GAAO/F,EAAEqD,gBAAkB9D,GAAgBD,EAASC,EAAcS,GACrE,EAIDjB,EACJxH,EAASwH,EAAWgB,GAAMxI,EAASwH,EAAWiB,GAChD,EAGe,EAAVwH,EAAc,GAAK,IAE3B,SAAUzH,EAAGC,GAEZ,GAAKD,IAAMC,EAEV,MADAhB,IAAe,EACR,CAGR,IAAIkG,GACHtL,EAAI,EACJ8N,EAAM3H,EAAEjD,WACRyK,EAAMvH,EAAElD,WACR6K,GAAO5H,GACP6H,GAAO5H,EAGR,KAAM0H,IAAQH,EACb,MAAOxH,KAAMgG,EAAM,GAClB/F,IAAM+F,EAAM,EACZ2B,EAAM,GACNH,EAAM,EACNxI,EACExH,EAASwH,EAAWgB,GAAMxI,EAASwH,EAAWiB,GAChD,CAGK,IAAK0H,IAAQH,EACnB,MAAOtC,IAAclF,EAAGC,EAIzBkF,GAAMnF,CACN,OAASmF,EAAMA,EAAIpI,WAClB6K,EAAGE,QAAS3C,EAEbA,GAAMlF,CACN,OAASkF,EAAMA,EAAIpI,WAClB8K,EAAGC,QAAS3C,EAIb,OAAQyC,EAAG/N,KAAOgO,EAAGhO,GACpBA,GAGD,OAAOA,GAENqL,GAAc0C,EAAG/N,GAAIgO,EAAGhO,IAGxB+N,EAAG/N,KAAO2F,EAAe,GACzBqI,EAAGhO,KAAO2F,EAAe,EACzB,GAGKwG,GA1WClP,GA6WT0H,GAAOT,QAAU,SAAUgK,EAAMC,GAChC,MAAOxJ,IAAQuJ,EAAM,KAAM,KAAMC,IAGlCxJ,GAAOwI,gBAAkB,SAAUpN,EAAMmO,GASxC,IAPOnO,EAAK0J,eAAiB1J,KAAW9C,GACvCoI,EAAatF,GAIdmO,EAAOA,EAAKvM,QAASwF,EAAkB,aAElCnJ,EAAQmP,kBAAmB5H,GAC5BE,GAAkBA,EAAcuE,KAAMkE,IACtC1I,GAAkBA,EAAUwE,KAAMkE,IAErC,IACC,GAAI1O,GAAM0E,EAAQ/E,KAAMY,EAAMmO,EAG9B,IAAK1O,GAAOxB,EAAQwP,mBAGlBzN,EAAK9C,UAAuC,KAA3B8C,EAAK9C,SAASqF,SAChC,MAAO9C,GAEP,MAAOuJ,IAGV,MAAOpE,IAAQuJ,EAAMjR,EAAU,MAAQ8C,IAASd,OAAS,GAG1D0F,GAAOe,SAAW,SAAUtH,EAAS2B,GAKpC,OAHO3B,EAAQqL,eAAiBrL,KAAcnB,GAC7CoI,EAAajH,GAEPsH,EAAUtH,EAAS2B,IAG3B4E,GAAOyJ,KAAO,SAAUrO,EAAMc,IAEtBd,EAAK0J,eAAiB1J,KAAW9C,GACvCoI,EAAatF,EAGd,IAAI1B,GAAKuG,EAAKwG,WAAYvK,EAAK0C,eAE9B8K,EAAMhQ,GAAMP,EAAOqB,KAAMyF,EAAKwG,WAAYvK,EAAK0C,eAC9ClF,EAAI0B,EAAMc,GAAO0E,GACjBhE,MAEF,OAAeA,UAAR8M,EACNA,EACArQ,EAAQ6I,aAAetB,EACtBxF,EAAKkK,aAAcpJ,IAClBwN,EAAMtO,EAAKgN,iBAAiBlM,KAAUwN,EAAIC,UAC1CD,EAAI7K,MACJ,MAGJmB,GAAO9C,MAAQ,SAAUC,GACxB,KAAM,IAAI3E,OAAO,0CAA4C2E,IAO9D6C,GAAO4J,WAAa,SAAU5K,GAC7B,GAAI5D,GACHyO,KACAjO,EAAI,EACJP,EAAI,CAOL,IAJAoF,GAAgBpH,EAAQyQ,iBACxBtJ,GAAanH,EAAQ0Q,YAAc/K,EAAQnG,MAAO,GAClDmG,EAAQlD,KAAMyF,GAETd,EAAe,CACnB,MAASrF,EAAO4D,EAAQ3D,KAClBD,IAAS4D,EAAS3D,KACtBO,EAAIiO,EAAW9Q,KAAMsC,GAGvB,OAAQO,IACPoD,EAAQjD,OAAQ8N,EAAYjO,GAAK,GAQnC,MAFA4E,GAAY,KAELxB,GAORkB,EAAUF,GAAOE,QAAU,SAAU9E,GACpC,GAAIiM,GACHxM,EAAM,GACNQ,EAAI,EACJsC,EAAWvC,EAAKuC,QAEjB,IAAMA,GAMC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAGjE,GAAiC,gBAArBvC,GAAK4O,YAChB,MAAO5O,GAAK4O,WAGZ,KAAM5O,EAAOA,EAAK6O,WAAY7O,EAAMA,EAAOA,EAAK0L,YAC/CjM,GAAOqF,EAAS9E,OAGZ,IAAkB,IAAbuC,GAA+B,IAAbA,EAC7B,MAAOvC,GAAK8O,cAhBZ,OAAS7C,EAAOjM,EAAKC,KAEpBR,GAAOqF,EAASmH,EAkBlB,OAAOxM,IAGRoF,EAAOD,GAAOmK,WAGblE,YAAa,GAEbmE,aAAcjE,GAEd5B,MAAO5B,EAEP8D,cAEAwB,QAEAoC,UACCC,KAAOC,IAAK,aAAc/O,OAAO,GACjCgP,KAAOD,IAAK,cACZE,KAAOF,IAAK,kBAAmB/O,OAAO,GACtCkP,KAAOH,IAAK,oBAGbI,WACC5H,KAAQ,SAAUwB,GAUjB,MATAA,GAAM,GAAKA,EAAM,GAAGvH,QAAS0G,GAAWC,IAGxCY,EAAM,IAAOA,EAAM,IAAMA,EAAM,IAAMA,EAAM,IAAM,IAAKvH,QAAS0G,GAAWC,IAExD,OAAbY,EAAM,KACVA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGtBA,EAAM1L,MAAO,EAAG,IAGxBoK,MAAS,SAAUsB,GA6BlB,MAlBAA,GAAM,GAAKA,EAAM,GAAG3F,cAEY,QAA3B2F,EAAM,GAAG1L,MAAO,EAAG,IAEjB0L,EAAM,IACXvE,GAAO9C,MAAOqH,EAAM,IAKrBA,EAAM,KAAQA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAmB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACzFA,EAAM,KAAUA,EAAM,GAAKA,EAAM,IAAqB,QAAbA,EAAM,KAGpCA,EAAM,IACjBvE,GAAO9C,MAAOqH,EAAM,IAGdA,GAGRvB,OAAU,SAAUuB,GACnB,GAAIqG,GACHC,GAAYtG,EAAM,IAAMA,EAAM,EAE/B,OAAK5B,GAAiB,MAAE0C,KAAMd,EAAM,IAC5B,MAIHA,EAAM,GACVA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAGxBsG,GAAYpI,EAAQ4C,KAAMwF,KAEpCD,EAASxK,EAAUyK,GAAU,MAE7BD,EAASC,EAAS7R,QAAS,IAAK6R,EAASvQ,OAASsQ,GAAWC,EAASvQ,UAGvEiK,EAAM,GAAKA,EAAM,GAAG1L,MAAO,EAAG+R,GAC9BrG,EAAM,GAAKsG,EAAShS,MAAO,EAAG+R,IAIxBrG,EAAM1L,MAAO,EAAG,MAIzBqP,QAECpF,IAAO,SAAUgI,GAChB,GAAInM,GAAWmM,EAAiB9N,QAAS0G,GAAWC,IAAY/E,aAChE,OAA4B,MAArBkM,EACN,WAAa,OAAO,GACpB,SAAU1P,GACT,MAAOA,GAAKuD,UAAYvD,EAAKuD,SAASC,gBAAkBD,IAI3DkE,MAAS,SAAUgF,GAClB,GAAIkD,GAAU5J,EAAY0G,EAAY,IAEtC,OAAOkD,KACLA,EAAU,GAAI1I,QAAQ,MAAQN,EAAa,IAAM8F,EAAY,IAAM9F,EAAa,SACjFZ,EAAY0G,EAAW,SAAUzM,GAChC,MAAO2P,GAAQ1F,KAAgC,gBAAnBjK,GAAKyM,WAA0BzM,EAAKyM,WAA0C,mBAAtBzM,GAAKkK,cAAgClK,EAAKkK,aAAa,UAAY,OAI1JvC,KAAQ,SAAU7G,EAAM8O,EAAUC,GACjC,MAAO,UAAU7P,GAChB,GAAI8P,GAASlL,GAAOyJ,KAAMrO,EAAMc,EAEhC,OAAe,OAAVgP,EACgB,OAAbF,EAEFA,GAINE,GAAU,GAEU,MAAbF,EAAmBE,IAAWD,EACvB,OAAbD,EAAoBE,IAAWD,EAClB,OAAbD,EAAoBC,GAAqC,IAA5BC,EAAOlS,QAASiS,GAChC,OAAbD,EAAoBC,GAASC,EAAOlS,QAASiS,GAAU,GAC1C,OAAbD,EAAoBC,GAASC,EAAOrS,OAAQoS,EAAM3Q,UAAa2Q,EAClD,OAAbD,GAAsB,IAAME,EAAOlO,QAASoF,EAAa,KAAQ,KAAMpJ,QAASiS,GAAU,GAC7E,OAAbD,EAAoBE,IAAWD,GAASC,EAAOrS,MAAO,EAAGoS,EAAM3Q,OAAS,KAAQ2Q,EAAQ,KACxF,IAZO,IAgBVhI,MAAS,SAAU3F,EAAM6N,EAAMjE,EAAU1L,EAAOE,GAC/C,GAAI0P,GAAgC,QAAvB9N,EAAKzE,MAAO,EAAG,GAC3BwS,EAA+B,SAArB/N,EAAKzE,MAAO,IACtByS,EAAkB,YAATH,CAEV,OAAiB,KAAV3P,GAAwB,IAATE,EAGrB,SAAUN,GACT,QAASA,EAAKmD,YAGf,SAAUnD,EAAM3B,EAAS8R,GACxB,GAAIxF,GAAOyF,EAAYnE,EAAMT,EAAM6E,EAAWC,EAC7CnB,EAAMa,IAAWC,EAAU,cAAgB,kBAC3C9D,EAASnM,EAAKmD,WACdrC,EAAOoP,GAAUlQ,EAAKuD,SAASC,cAC/B+M,GAAYJ,IAAQD,CAErB,IAAK/D,EAAS,CAGb,GAAK6D,EAAS,CACb,MAAQb,EAAM,CACblD,EAAOjM,CACP,OAASiM,EAAOA,EAAMkD,GACrB,GAAKe,EAASjE,EAAK1I,SAASC,gBAAkB1C,EAAyB,IAAlBmL,EAAK1J,SACzD,OAAO,CAIT+N,GAAQnB,EAAe,SAATjN,IAAoBoO,GAAS,cAE5C,OAAO,EAMR,GAHAA,GAAUL,EAAU9D,EAAO0C,WAAa1C,EAAOqE,WAG1CP,GAAWM,EAAW,CAE1BH,EAAajE,EAAQ1K,KAAc0K,EAAQ1K,OAC3CkJ,EAAQyF,EAAYlO,OACpBmO,EAAY1F,EAAM,KAAO9E,GAAW8E,EAAM,GAC1Ca,EAAOb,EAAM,KAAO9E,GAAW8E,EAAM,GACrCsB,EAAOoE,GAAalE,EAAOpD,WAAYsH,EAEvC,OAASpE,IAASoE,GAAapE,GAAQA,EAAMkD,KAG3C3D,EAAO6E,EAAY,IAAMC,EAAM/J,MAGhC,GAAuB,IAAlB0F,EAAK1J,YAAoBiJ,GAAQS,IAASjM,EAAO,CACrDoQ,EAAYlO,IAAW2D,EAASwK,EAAW7E,EAC3C,YAKI,IAAK+E,IAAa5F,GAAS3K,EAAMyB,KAAczB,EAAMyB,QAAkBS,KAAWyI,EAAM,KAAO9E,EACrG2F,EAAOb,EAAM,OAKb,OAASsB,IAASoE,GAAapE,GAAQA,EAAMkD,KAC3C3D,EAAO6E,EAAY,IAAMC,EAAM/J,MAEhC,IAAO2J,EAASjE,EAAK1I,SAASC,gBAAkB1C,EAAyB,IAAlBmL,EAAK1J,aAAsBiJ,IAE5E+E,KACHtE,EAAMxK,KAAcwK,EAAMxK,QAAkBS,IAAW2D,EAAS2F,IAG7DS,IAASjM,GACb,KAQJ,OADAwL,IAAQlL,EACDkL,IAASpL,GAAWoL,EAAOpL,IAAU,GAAKoL,EAAOpL,GAAS,KAKrEwH,OAAU,SAAU6I,EAAQ3E,GAK3B,GAAIhM,GACHxB,EAAKuG,EAAKkC,QAAS0J,IAAY5L,EAAK6L,WAAYD,EAAOjN,gBACtDoB,GAAO9C,MAAO,uBAAyB2O,EAKzC,OAAKnS,GAAImD,GACDnD,EAAIwN,GAIPxN,EAAGY,OAAS,GAChBY,GAAS2Q,EAAQA,EAAQ,GAAI3E,GACtBjH,EAAK6L,WAAW1S,eAAgByS,EAAOjN,eAC7CuH,GAAa,SAAU7B,EAAM/E,GAC5B,GAAIwM,GACHC,EAAUtS,EAAI4K,EAAM4C,GACpB7L,EAAI2Q,EAAQ1R,MACb,OAAQe,IACP0Q,EAAM/S,EAASsL,EAAM0H,EAAQ3Q,IAC7BiJ,EAAMyH,KAAWxM,EAASwM,GAAQC,EAAQ3Q,MAG5C,SAAUD,GACT,MAAO1B,GAAI0B,EAAM,EAAGF,KAIhBxB,IAITyI,SAEC8J,IAAO9F,GAAa,SAAU3M,GAI7B,GAAI+O,MACHvJ,KACAkN,EAAU7L,EAAS7G,EAASwD,QAASpD,EAAO,MAE7C,OAAOsS,GAASrP,GACfsJ,GAAa,SAAU7B,EAAM/E,EAAS9F,EAAS8R,GAC9C,GAAInQ,GACH+Q,EAAYD,EAAS5H,EAAM,KAAMiH,MACjClQ,EAAIiJ,EAAKhK,MAGV,OAAQe,KACDD,EAAO+Q,EAAU9Q,MACtBiJ,EAAKjJ,KAAOkE,EAAQlE,GAAKD,MAI5B,SAAUA,EAAM3B,EAAS8R,GAKxB,MAJAhD,GAAM,GAAKnN,EACX8Q,EAAS3D,EAAO,KAAMgD,EAAKvM,GAE3BuJ,EAAM,GAAK,MACHvJ,EAAQ2C,SAInByK,IAAOjG,GAAa,SAAU3M,GAC7B,MAAO,UAAU4B,GAChB,MAAO4E,IAAQxG,EAAU4B,GAAOd,OAAS,KAI3CyG,SAAYoF,GAAa,SAAU/H,GAElC,MADAA,GAAOA,EAAKpB,QAAS0G,GAAWC,IACzB,SAAUvI,GAChB,OAASA,EAAK4O,aAAe5O,EAAKiR,WAAanM,EAAS9E,IAASpC,QAASoF,GAAS,MAWrFkO,KAAQnG,GAAc,SAAUmG,GAM/B,MAJM5J,GAAY2C,KAAKiH,GAAQ,KAC9BtM,GAAO9C,MAAO,qBAAuBoP,GAEtCA,EAAOA,EAAKtP,QAAS0G,GAAWC,IAAY/E,cACrC,SAAUxD,GAChB,GAAImR,EACJ,GACC,IAAMA,EAAW3L,EAChBxF,EAAKkR,KACLlR,EAAKkK,aAAa,aAAelK,EAAKkK,aAAa,QAGnD,MADAiH,GAAWA,EAAS3N,cACb2N,IAAaD,GAA2C,IAAnCC,EAASvT,QAASsT,EAAO,YAE5ClR,EAAOA,EAAKmD,aAAiC,IAAlBnD,EAAKuC,SAC3C,QAAO,KAKTpB,OAAU,SAAUnB,GACnB,GAAIoR,GAAO/T,EAAOgU,UAAYhU,EAAOgU,SAASD,IAC9C,OAAOA,IAAQA,EAAK3T,MAAO,KAAQuC,EAAK6J,IAGzCyH,KAAQ,SAAUtR,GACjB,MAAOA,KAASuF,GAGjBgM,MAAS,SAAUvR,GAClB,MAAOA,KAAS9C,EAASsU,iBAAmBtU,EAASuU,UAAYvU,EAASuU,gBAAkBzR,EAAKkC,MAAQlC,EAAK0R,OAAS1R,EAAK2R,WAI7HC,QAAW,SAAU5R,GACpB,MAAOA,GAAK6R,YAAa,GAG1BA,SAAY,SAAU7R,GACrB,MAAOA,GAAK6R,YAAa,GAG1BC,QAAW,SAAU9R,GAGpB,GAAIuD,GAAWvD,EAAKuD,SAASC,aAC7B,OAAqB,UAAbD,KAA0BvD,EAAK8R,SAA0B,WAAbvO,KAA2BvD,EAAK+R,UAGrFA,SAAY,SAAU/R,GAOrB,MAJKA,GAAKmD,YACTnD,EAAKmD,WAAW6O,cAGVhS,EAAK+R,YAAa,GAI1BE,MAAS,SAAUjS,GAKlB,IAAMA,EAAOA,EAAK6O,WAAY7O,EAAMA,EAAOA,EAAK0L,YAC/C,GAAK1L,EAAKuC,SAAW,EACpB,OAAO,CAGT,QAAO,GAGR4J,OAAU,SAAUnM,GACnB,OAAQ6E,EAAKkC,QAAe,MAAG/G,IAIhCkS,OAAU,SAAUlS,GACnB,MAAOiI,GAAQgC,KAAMjK,EAAKuD,WAG3B4J,MAAS,SAAUnN,GAClB,MAAOgI,GAAQiC,KAAMjK,EAAKuD,WAG3B4O,OAAU,SAAUnS,GACnB,GAAIc,GAAOd,EAAKuD,SAASC,aACzB,OAAgB,UAAT1C,GAAkC,WAAdd,EAAKkC,MAA8B,WAATpB,GAGtDkC,KAAQ,SAAUhD,GACjB,GAAIqO,EACJ,OAAuC,UAAhCrO,EAAKuD,SAASC,eACN,SAAdxD,EAAKkC,OAImC,OAArCmM,EAAOrO,EAAKkK,aAAa,UAA2C,SAAvBmE,EAAK7K,gBAIvDpD,MAASyL,GAAuB,WAC/B,OAAS,KAGVvL,KAAQuL,GAAuB,SAAUE,EAAc7M,GACtD,OAASA,EAAS,KAGnBmB,GAAMwL,GAAuB,SAAUE,EAAc7M,EAAQ4M,GAC5D,OAAoB,EAAXA,EAAeA,EAAW5M,EAAS4M,KAG7CsG,KAAQvG,GAAuB,SAAUE,EAAc7M,GAEtD,IADA,GAAIe,GAAI,EACIf,EAAJe,EAAYA,GAAK,EACxB8L,EAAapO,KAAMsC,EAEpB,OAAO8L,KAGRsG,IAAOxG,GAAuB,SAAUE,EAAc7M,GAErD,IADA,GAAIe,GAAI,EACIf,EAAJe,EAAYA,GAAK,EACxB8L,EAAapO,KAAMsC,EAEpB,OAAO8L,KAGRuG,GAAMzG,GAAuB,SAAUE,EAAc7M,EAAQ4M,GAE5D,IADA,GAAI7L,GAAe,EAAX6L,EAAeA,EAAW5M,EAAS4M,IACjC7L,GAAK,GACd8L,EAAapO,KAAMsC,EAEpB,OAAO8L,KAGRwG,GAAM1G,GAAuB,SAAUE,EAAc7M,EAAQ4M,GAE5D,IADA,GAAI7L,GAAe,EAAX6L,EAAeA,EAAW5M,EAAS4M,IACjC7L,EAAIf,GACb6M,EAAapO,KAAMsC,EAEpB,OAAO8L,OAKVlH,EAAKkC,QAAa,IAAIlC,EAAKkC,QAAY,EAGvC,KAAM9G,KAAOuS,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5E/N,EAAKkC,QAAS9G,GAAM0L,GAAmB1L,EAExC,KAAMA,KAAO4S,QAAQ,EAAMC,OAAO,GACjCjO,EAAKkC,QAAS9G,GAAM2L,GAAoB3L,EAIzC,SAASyQ,OACTA,GAAW3R,UAAY8F,EAAKkO,QAAUlO,EAAKkC,QAC3ClC,EAAK6L,WAAa,GAAIA,IAEtB1L,EAAWJ,GAAOI,SAAW,SAAU5G,EAAU4U,GAChD,GAAIpC,GAASzH,EAAO8J,EAAQ/Q,EAC3BgR,EAAO7J,EAAQ8J,EACfC,EAASnN,EAAY7H,EAAW,IAEjC,IAAKgV,EACJ,MAAOJ,GAAY,EAAII,EAAO3V,MAAO,EAGtCyV,GAAQ9U,EACRiL,KACA8J,EAAatO,EAAK0K,SAElB,OAAQ2D,EAAQ,GAGTtC,IAAYzH,EAAQjC,EAAOyC,KAAMuJ,OACjC/J,IAEJ+J,EAAQA,EAAMzV,MAAO0L,EAAM,GAAGjK,SAAYgU,GAE3C7J,EAAO1L,KAAOsV,OAGfrC,GAAU,GAGJzH,EAAQhC,EAAawC,KAAMuJ,MAChCtC,EAAUzH,EAAM2B,QAChBmI,EAAOtV,MACN8F,MAAOmN,EAEP1O,KAAMiH,EAAM,GAAGvH,QAASpD,EAAO,OAEhC0U,EAAQA,EAAMzV,MAAOmT,EAAQ1R,QAI9B,KAAMgD,IAAQ2C,GAAKiI,SACZ3D,EAAQ5B,EAAWrF,GAAOyH,KAAMuJ,KAAcC,EAAYjR,MAC9DiH,EAAQgK,EAAYjR,GAAQiH,MAC7ByH,EAAUzH,EAAM2B,QAChBmI,EAAOtV,MACN8F,MAAOmN,EACP1O,KAAMA,EACNiC,QAASgF,IAEV+J,EAAQA,EAAMzV,MAAOmT,EAAQ1R,QAI/B,KAAM0R,EACL,MAOF,MAAOoC,GACNE,EAAMhU,OACNgU,EACCtO,GAAO9C,MAAO1D,GAEd6H,EAAY7H,EAAUiL,GAAS5L,MAAO,GAGzC,SAAS2M,IAAY6I,GAIpB,IAHA,GAAIhT,GAAI,EACPM,EAAM0S,EAAO/T,OACbd,EAAW,GACAmC,EAAJN,EAASA,IAChB7B,GAAY6U,EAAOhT,GAAGwD,KAEvB,OAAOrF,GAGR,QAASiV,IAAevC,EAASwC,EAAYC,GAC5C,GAAIpE,GAAMmE,EAAWnE,IACpBqE,EAAmBD,GAAgB,eAARpE,EAC3BsE,EAAW3N,GAEZ,OAAOwN,GAAWlT,MAEjB,SAAUJ,EAAM3B,EAAS8R,GACxB,MAASnQ,EAAOA,EAAMmP,GACrB,GAAuB,IAAlBnP,EAAKuC,UAAkBiR,EAC3B,MAAO1C,GAAS9Q,EAAM3B,EAAS8R,IAMlC,SAAUnQ,EAAM3B,EAAS8R,GACxB,GAAIuD,GAAUtD,EACbuD,GAAa9N,EAAS4N,EAGvB,IAAKtD,GACJ,MAASnQ,EAAOA,EAAMmP,GACrB,IAAuB,IAAlBnP,EAAKuC,UAAkBiR,IACtB1C,EAAS9Q,EAAM3B,EAAS8R,GAC5B,OAAO,MAKV,OAASnQ,EAAOA,EAAMmP,GACrB,GAAuB,IAAlBnP,EAAKuC,UAAkBiR,EAAmB,CAE9C,GADApD,EAAapQ,EAAMyB,KAAczB,EAAMyB,QACjCiS,EAAWtD,EAAYjB,KAC5BuE,EAAU,KAAQ7N,GAAW6N,EAAU,KAAQD,EAG/C,MAAQE,GAAU,GAAMD,EAAU,EAMlC,IAHAtD,EAAYjB,GAAQwE,EAGdA,EAAU,GAAM7C,EAAS9Q,EAAM3B,EAAS8R,GAC7C,OAAO,IASf,QAASyD,IAAgBC,GACxB,MAAOA,GAAS3U,OAAS,EACxB,SAAUc,EAAM3B,EAAS8R,GACxB,GAAIlQ,GAAI4T,EAAS3U,MACjB,OAAQe,IACP,IAAM4T,EAAS5T,GAAID,EAAM3B,EAAS8R,GACjC,OAAO,CAGT,QAAO,GAER0D,EAAS,GAGX,QAASC,IAAkB1V,EAAU2V,EAAUnQ,GAG9C,IAFA,GAAI3D,GAAI,EACPM,EAAMwT,EAAS7U,OACJqB,EAAJN,EAASA,IAChB2E,GAAQxG,EAAU2V,EAAS9T,GAAI2D,EAEhC,OAAOA,GAGR,QAASoQ,IAAUjD,EAAWhR,EAAK+M,EAAQzO,EAAS8R,GAOnD,IANA,GAAInQ,GACHiU,KACAhU,EAAI,EACJM,EAAMwQ,EAAU7R,OAChBgV,EAAgB,MAAPnU,EAEEQ,EAAJN,EAASA,KACVD,EAAO+Q,EAAU9Q,OAChB6M,GAAUA,EAAQ9M,EAAM3B,EAAS8R,MACtC8D,EAAatW,KAAMqC,GACdkU,GACJnU,EAAIpC,KAAMsC,GAMd,OAAOgU,GAGR,QAASE,IAAY5E,EAAWnR,EAAU0S,EAASsD,EAAYC,EAAYC,GAO1E,MANKF,KAAeA,EAAY3S,KAC/B2S,EAAaD,GAAYC,IAErBC,IAAeA,EAAY5S,KAC/B4S,EAAaF,GAAYE,EAAYC,IAE/BvJ,GAAa,SAAU7B,EAAMtF,EAASvF,EAAS8R,GACrD,GAAIoE,GAAMtU,EAAGD,EACZwU,KACAC,KACAC,EAAc9Q,EAAQ1E,OAGtBM,EAAQ0J,GAAQ4K,GAAkB1V,GAAY,IAAKC,EAAQkE,UAAalE,GAAYA,MAGpFsW,GAAYpF,IAAerG,GAAS9K,EAEnCoB,EADAwU,GAAUxU,EAAOgV,EAAQjF,EAAWlR,EAAS8R,GAG9CyE,EAAa9D,EAEZuD,IAAgBnL,EAAOqG,EAAYmF,GAAeN,MAMjDxQ,EACD+Q,CAQF,IALK7D,GACJA,EAAS6D,EAAWC,EAAYvW,EAAS8R,GAIrCiE,EAAa,CACjBG,EAAOP,GAAUY,EAAYH,GAC7BL,EAAYG,KAAUlW,EAAS8R,GAG/BlQ,EAAIsU,EAAKrV,MACT,OAAQe,KACDD,EAAOuU,EAAKtU,MACjB2U,EAAYH,EAAQxU,MAAS0U,EAAWF,EAAQxU,IAAOD,IAK1D,GAAKkJ,GACJ,GAAKmL,GAAc9E,EAAY,CAC9B,GAAK8E,EAAa,CAEjBE,KACAtU,EAAI2U,EAAW1V,MACf,OAAQe,KACDD,EAAO4U,EAAW3U,KAEvBsU,EAAK5W,KAAOgX,EAAU1U,GAAKD,EAG7BqU,GAAY,KAAOO,KAAkBL,EAAMpE,GAI5ClQ,EAAI2U,EAAW1V,MACf,OAAQe,KACDD,EAAO4U,EAAW3U,MACtBsU,EAAOF,EAAazW,EAASsL,EAAMlJ,GAASwU,EAAOvU,IAAM,KAE1DiJ,EAAKqL,KAAU3Q,EAAQ2Q,GAAQvU,SAOlC4U,GAAaZ,GACZY,IAAehR,EACdgR,EAAWjU,OAAQ+T,EAAaE,EAAW1V,QAC3C0V,GAEGP,EACJA,EAAY,KAAMzQ,EAASgR,EAAYzE,GAEvCxS,EAAKuC,MAAO0D,EAASgR,KAMzB,QAASC,IAAmB5B,GAwB3B,IAvBA,GAAI6B,GAAchE,EAAStQ,EAC1BD,EAAM0S,EAAO/T,OACb6V,EAAkBlQ,EAAKoK,SAAUgE,EAAO,GAAG/Q,MAC3C8S,EAAmBD,GAAmBlQ,EAAKoK,SAAS,KACpDhP,EAAI8U,EAAkB,EAAI,EAG1BE,EAAe5B,GAAe,SAAUrT,GACvC,MAAOA,KAAS8U,GACdE,GAAkB,GACrBE,EAAkB7B,GAAe,SAAUrT,GAC1C,MAAOpC,GAASkX,EAAc9U,GAAS,IACrCgV,GAAkB,GACrBnB,GAAa,SAAU7T,EAAM3B,EAAS8R,GACrC,GAAI1Q,IAASsV,IAAqB5E,GAAO9R,IAAY8G,MACnD2P,EAAezW,GAASkE,SACxB0S,EAAcjV,EAAM3B,EAAS8R,GAC7B+E,EAAiBlV,EAAM3B,EAAS8R,GAGlC,OADA2E,GAAe,KACRrV,IAGGc,EAAJN,EAASA,IAChB,GAAM6Q,EAAUjM,EAAKoK,SAAUgE,EAAOhT,GAAGiC,MACxC2R,GAAaR,GAAcO,GAAgBC,GAAY/C,QACjD,CAIN,GAHAA,EAAUjM,EAAKiI,OAAQmG,EAAOhT,GAAGiC,MAAOhC,MAAO,KAAM+S,EAAOhT,GAAGkE,SAG1D2M,EAASrP,GAAY,CAGzB,IADAjB,IAAMP,EACMM,EAAJC,EAASA,IAChB,GAAKqE,EAAKoK,SAAUgE,EAAOzS,GAAG0B,MAC7B,KAGF,OAAOiS,IACNlU,EAAI,GAAK2T,GAAgBC,GACzB5T,EAAI,GAAKmK,GAER6I,EAAOxV,MAAO,EAAGwC,EAAI,GAAIvC,QAAS+F,MAAgC,MAAzBwP,EAAQhT,EAAI,GAAIiC,KAAe,IAAM,MAC7EN,QAASpD,EAAO,MAClBsS,EACItQ,EAAJP,GAAS4U,GAAmB5B,EAAOxV,MAAOwC,EAAGO,IACzCD,EAAJC,GAAWqU,GAAoB5B,EAASA,EAAOxV,MAAO+C,IAClDD,EAAJC,GAAW4J,GAAY6I,IAGzBY,EAASlW,KAAMmT,GAIjB,MAAO8C,IAAgBC,GAGxB,QAASsB,IAA0BC,EAAiBC,GACnD,GAAIC,GAAQD,EAAYnW,OAAS,EAChCqW,EAAYH,EAAgBlW,OAAS,EACrCsW,EAAe,SAAUtM,EAAM7K,EAAS8R,EAAKvM,EAAS6R,GACrD,GAAIzV,GAAMQ,EAAGsQ,EACZ4E,EAAe,EACfzV,EAAI,IACJ8Q,EAAY7H,MACZyM,KACAC,EAAgBzQ,EAEhB3F,EAAQ0J,GAAQqM,GAAa1Q,EAAKgI,KAAU,IAAG,IAAK4I,GAEpDI,EAAiBhQ,GAA4B,MAAjB+P,EAAwB,EAAIlU,KAAKC,UAAY,GACzEpB,EAAMf,EAAMN,MAUb,KARKuW,IACJtQ,EAAmB9G,IAAYnB,GAAYmB,GAOpC4B,IAAMM,GAA4B,OAApBP,EAAOR,EAAMS,IAAaA,IAAM,CACrD,GAAKsV,GAAavV,EAAO,CACxBQ,EAAI,CACJ,OAASsQ,EAAUsE,EAAgB5U,KAClC,GAAKsQ,EAAS9Q,EAAM3B,EAAS8R,GAAQ,CACpCvM,EAAQjG,KAAMqC,EACd,OAGGyV,IACJ5P,EAAUgQ,GAKPP,KAEEtV,GAAQ8Q,GAAW9Q,IACxB0V,IAIIxM,GACJ6H,EAAUpT,KAAMqC,IAOnB,GADA0V,GAAgBzV,EACXqV,GAASrV,IAAMyV,EAAe,CAClClV,EAAI,CACJ,OAASsQ,EAAUuE,EAAY7U,KAC9BsQ,EAASC,EAAW4E,EAAYtX,EAAS8R,EAG1C,IAAKjH,EAAO,CAEX,GAAKwM,EAAe,EACnB,MAAQzV,IACA8Q,EAAU9Q,IAAM0V,EAAW1V,KACjC0V,EAAW1V,GAAKsG,EAAInH,KAAMwE,GAM7B+R,GAAa3B,GAAU2B,GAIxBhY,EAAKuC,MAAO0D,EAAS+R,GAGhBF,IAAcvM,GAAQyM,EAAWzW,OAAS,GAC5CwW,EAAeL,EAAYnW,OAAW,GAExC0F,GAAO4J,WAAY5K,GAUrB,MALK6R,KACJ5P,EAAUgQ,EACV1Q,EAAmByQ,GAGb7E,EAGT,OAAOuE,GACNvK,GAAcyK,GACdA,EA+KF,MA5KAvQ,GAAUL,GAAOK,QAAU,SAAU7G,EAAU+K,GAC9C,GAAIlJ,GACHoV,KACAD,KACAhC,EAASlN,EAAe9H,EAAW,IAEpC,KAAMgV,EAAS,CAERjK,IACLA,EAAQnE,EAAU5G,IAEnB6B,EAAIkJ,EAAMjK,MACV,OAAQe,IACPmT,EAASyB,GAAmB1L,EAAMlJ,IAC7BmT,EAAQ3R,GACZ4T,EAAY1X,KAAMyV,GAElBgC,EAAgBzX,KAAMyV,EAKxBA,GAASlN,EAAe9H,EAAU+W,GAA0BC,EAAiBC,IAG7EjC,EAAOhV,SAAWA,EAEnB,MAAOgV,IAYRlO,EAASN,GAAOM,OAAS,SAAU9G,EAAUC,EAASuF,EAASsF,GAC9D,GAAIjJ,GAAGgT,EAAQ6C,EAAO5T,EAAM2K,EAC3BkJ,EAA+B,kBAAb3X,IAA2BA,EAC7C+K,GAASD,GAAQlE,EAAW5G,EAAW2X,EAAS3X,UAAYA,EAK7D,IAHAwF,EAAUA,MAGY,IAAjBuF,EAAMjK,OAAe,CAIzB,GADA+T,EAAS9J,EAAM,GAAKA,EAAM,GAAG1L,MAAO,GAC/BwV,EAAO/T,OAAS,GAAkC,QAA5B4W,EAAQ7C,EAAO,IAAI/Q,MAC5CjE,EAAQ0O,SAAgC,IAArBtO,EAAQkE,UAAkBiD,GAC7CX,EAAKoK,SAAUgE,EAAO,GAAG/Q,MAAS,CAGnC,GADA7D,GAAYwG,EAAKgI,KAAS,GAAGiJ,EAAM3R,QAAQ,GAAGvC,QAAQ0G,GAAWC,IAAYlK,QAAkB,IACzFA,EACL,MAAOuF,EAGImS,KACX1X,EAAUA,EAAQ8E,YAGnB/E,EAAWA,EAASX,MAAOwV,EAAOnI,QAAQrH,MAAMvE,QAIjDe,EAAIsH,EAAwB,aAAE0C,KAAM7L,GAAa,EAAI6U,EAAO/T,MAC5D,OAAQe,IAAM,CAIb,GAHA6V,EAAQ7C,EAAOhT,GAGV4E,EAAKoK,SAAW/M,EAAO4T,EAAM5T,MACjC,KAED,KAAM2K,EAAOhI,EAAKgI,KAAM3K,MAEjBgH,EAAO2D,EACZiJ,EAAM3R,QAAQ,GAAGvC,QAAS0G,GAAWC,IACrCH,GAAS6B,KAAMgJ,EAAO,GAAG/Q,OAAUmI,GAAahM,EAAQ8E,aAAgB9E,IACpE,CAKJ,GAFA4U,EAAOtS,OAAQV,EAAG,GAClB7B,EAAW8K,EAAKhK,QAAUkL,GAAY6I,IAChC7U,EAEL,MADAT,GAAKuC,MAAO0D,EAASsF,GACdtF,CAGR,SAeJ,OAPEmS,GAAY9Q,EAAS7G,EAAU+K,IAChCD,EACA7K,GACCmH,EACD5B,EACAwE,GAAS6B,KAAM7L,IAAciM,GAAahM,EAAQ8E,aAAgB9E,GAE5DuF,GAMR3F,EAAQ0Q,WAAalN,EAAQkD,MAAM,IAAIjE,KAAMyF,GAAYmE,KAAK,MAAQ7I,EAItExD,EAAQyQ,mBAAqBrJ,EAG7BC,IAIArH,EAAQ6P,aAAe9C,GAAO,SAAUgL,GAEvC,MAAuE,GAAhEA,EAAKtI,wBAAyBxQ,EAAS6F,cAAc,UAMvDiI,GAAO,SAAUC,GAEtB,MADAA,GAAIiC,UAAY,mBAC+B,MAAxCjC,EAAI4D,WAAW3E,aAAa,WAEnCgB,GAAW,yBAA0B,SAAUlL,EAAMc,EAAMiE,GAC1D,MAAMA,GAAN,OACQ/E,EAAKkK,aAAcpJ,EAA6B,SAAvBA,EAAK0C,cAA2B,EAAI,KAOjEvF,EAAQ6I,YAAekE,GAAO,SAAUC,GAG7C,MAFAA,GAAIiC,UAAY,WAChBjC,EAAI4D,WAAW1E,aAAc,QAAS,IACY,KAA3Cc,EAAI4D,WAAW3E,aAAc,YAEpCgB,GAAW,QAAS,SAAUlL,EAAMc,EAAMiE,GACzC,MAAMA,IAAyC,UAAhC/E,EAAKuD,SAASC,cAA7B,OACQxD,EAAKiW,eAOTjL,GAAO,SAAUC,GACtB,MAAuC,OAAhCA,EAAIf,aAAa,eAExBgB,GAAWxE,EAAU,SAAU1G,EAAMc,EAAMiE,GAC1C,GAAIuJ,EACJ,OAAMvJ,GAAN,OACQ/E,EAAMc,MAAW,EAAOA,EAAK0C,eACjC8K,EAAMtO,EAAKgN,iBAAkBlM,KAAWwN,EAAIC,UAC7CD,EAAI7K,MACL,OAKGmB,IAEHvH,EAIJc,GAAO0O,KAAOjI,EACdzG,EAAOgQ,KAAOvJ,EAAOmK,UACrB5Q,EAAOgQ,KAAK,KAAOhQ,EAAOgQ,KAAKpH,QAC/B5I,EAAO+X,OAAStR,EAAO4J,WACvBrQ,EAAO6E,KAAO4B,EAAOE,QACrB3G,EAAOgY,SAAWvR,EAAOG,MACzB5G,EAAOwH,SAAWf,EAAOe,QAIzB,IAAIyQ,GAAgBjY,EAAOgQ,KAAKhF,MAAMpB,aAElCsO,EAAa,6BAIbC,EAAY,gBAGhB,SAASC,GAAQnI,EAAUoI,EAAW3F,GACrC,GAAK1S,EAAOkD,WAAYmV,GACvB,MAAOrY,GAAO6F,KAAMoK,EAAU,SAAUpO,EAAMC,GAE7C,QAASuW,EAAUpX,KAAMY,EAAMC,EAAGD,KAAW6Q,GAK/C,IAAK2F,EAAUjU,SACd,MAAOpE,GAAO6F,KAAMoK,EAAU,SAAUpO,GACvC,MAASA,KAASwW,IAAgB3F,GAKpC,IAA0B,gBAAd2F,GAAyB,CACpC,GAAKF,EAAUrM,KAAMuM,GACpB,MAAOrY,GAAO2O,OAAQ0J,EAAWpI,EAAUyC,EAG5C2F,GAAYrY,EAAO2O,OAAQ0J,EAAWpI,GAGvC,MAAOjQ,GAAO6F,KAAMoK,EAAU,SAAUpO,GACvC,MAASpC,GAAQwB,KAAMoX,EAAWxW,IAAU,IAAQ6Q,IAItD1S,EAAO2O,OAAS,SAAUqB,EAAM3O,EAAOqR,GACtC,GAAI7Q,GAAOR,EAAO,EAMlB,OAJKqR,KACJ1C,EAAO,QAAUA,EAAO,KAGD,IAAjB3O,EAAMN,QAAkC,IAAlBc,EAAKuC,SACjCpE,EAAO0O,KAAKO,gBAAiBpN,EAAMmO,IAAWnO,MAC9C7B,EAAO0O,KAAK1I,QAASgK,EAAMhQ,EAAO6F,KAAMxE,EAAO,SAAUQ,GACxD,MAAyB,KAAlBA,EAAKuC,aAIfpE,EAAOG,GAAGsC,QACTiM,KAAM,SAAUzO,GACf,GAAI6B,GACHM,EAAMjD,KAAK4B,OACXO,KACAgX,EAAOnZ,IAER,IAAyB,gBAAbc,GACX,MAAOd,MAAKiC,UAAWpB,EAAQC,GAAW0O,OAAO,WAChD,IAAM7M,EAAI,EAAOM,EAAJN,EAASA,IACrB,GAAK9B,EAAOwH,SAAU8Q,EAAMxW,GAAK3C,MAChC,OAAO,IAMX,KAAM2C,EAAI,EAAOM,EAAJN,EAASA,IACrB9B,EAAO0O,KAAMzO,EAAUqY,EAAMxW,GAAKR,EAMnC,OAFAA,GAAMnC,KAAKiC,UAAWgB,EAAM,EAAIpC,EAAO+X,OAAQzW,GAAQA,GACvDA,EAAIrB,SAAWd,KAAKc,SAAWd,KAAKc,SAAW,IAAMA,EAAWA,EACzDqB,GAERqN,OAAQ,SAAU1O,GACjB,MAAOd,MAAKiC,UAAWgX,EAAOjZ,KAAMc,OAAgB,KAErDyS,IAAK,SAAUzS,GACd,MAAOd,MAAKiC,UAAWgX,EAAOjZ,KAAMc,OAAgB,KAErDsY,GAAI,SAAUtY,GACb,QAASmY,EACRjZ,KAIoB,gBAAbc,IAAyBgY,EAAcnM,KAAM7L,GACnDD,EAAQC,GACRA,OACD,GACCc,SASJ,IAAIyX,GAKHxO,EAAa,sCAEb5J,EAAOJ,EAAOG,GAAGC,KAAO,SAAUH,EAAUC,GAC3C,GAAI8K,GAAOnJ,CAGX,KAAM5B,EACL,MAAOd,KAIR,IAAyB,gBAAbc,GAAwB,CAUnC,GAPC+K,EAFoB,MAAhB/K,EAAS,IAAkD,MAApCA,EAAUA,EAASc,OAAS,IAAed,EAASc,QAAU,GAE/E,KAAMd,EAAU,MAGlB+J,EAAWwB,KAAMvL,IAIrB+K,IAAUA,EAAM,IAAO9K,EAgDrB,OAAMA,GAAWA,EAAQW,QACtBX,GAAWsY,GAAa9J,KAAMzO,GAKhCd,KAAK2B,YAAaZ,GAAUwO,KAAMzO,EAnDzC,IAAK+K,EAAM,GAAK,CAYf,GAXA9K,EAAUA,YAAmBF,GAASE,EAAQ,GAAKA,EAInDF,EAAOuB,MAAOpC,KAAMa,EAAOyY,UAC1BzN,EAAM,GACN9K,GAAWA,EAAQkE,SAAWlE,EAAQqL,eAAiBrL,EAAUnB,GACjE,IAIImZ,EAAWpM,KAAMd,EAAM,KAAQhL,EAAOmD,cAAejD,GACzD,IAAM8K,IAAS9K,GAETF,EAAOkD,WAAY/D,KAAM6L,IAC7B7L,KAAM6L,GAAS9K,EAAS8K,IAIxB7L,KAAK+Q,KAAMlF,EAAO9K,EAAS8K,GAK9B,OAAO7L,MAgBP,MAZA0C,GAAO9C,EAAS0M,eAAgBT,EAAM,IAIjCnJ,GAAQA,EAAKmD,aAEjB7F,KAAK4B,OAAS,EACd5B,KAAK,GAAK0C,GAGX1C,KAAKe,QAAUnB,EACfI,KAAKc,SAAWA,EACTd,KAcH,MAAKc,GAASmE,UACpBjF,KAAKe,QAAUf,KAAK,GAAKc,EACzBd,KAAK4B,OAAS,EACP5B,MAIIa,EAAOkD,WAAYjD,GACK,mBAArBuY,GAAWE,MACxBF,EAAWE,MAAOzY,GAElBA,EAAUD,IAGeqD,SAAtBpD,EAASA,WACbd,KAAKc,SAAWA,EAASA,SACzBd,KAAKe,QAAUD,EAASC,SAGlBF,EAAOwF,UAAWvF,EAAUd,OAIrCiB,GAAKQ,UAAYZ,EAAOG,GAGxBqY,EAAaxY,EAAQjB,EAGrB,IAAI4Z,GAAe,iCAElBC,GACCC,UAAU,EACVC,UAAU,EACVC,MAAM,EACNC,MAAM,EAGRhZ,GAAOyC,QACNuO,IAAK,SAAUnP,EAAMmP,EAAKiI,GACzB,GAAIxG,MACHyG,EAAqB7V,SAAV4V,CAEZ,QAASpX,EAAOA,EAAMmP,KAA4B,IAAlBnP,EAAKuC,SACpC,GAAuB,IAAlBvC,EAAKuC,SAAiB,CAC1B,GAAK8U,GAAYlZ,EAAQ6B,GAAO0W,GAAIU,GACnC,KAEDxG,GAAQjT,KAAMqC,GAGhB,MAAO4Q,IAGR0G,QAAS,SAAUC,EAAGvX,GAGrB,IAFA,GAAI4Q,MAEI2G,EAAGA,EAAIA,EAAE7L,YACI,IAAf6L,EAAEhV,UAAkBgV,IAAMvX,GAC9B4Q,EAAQjT,KAAM4Z,EAIhB,OAAO3G,MAITzS,EAAOG,GAAGsC,QACToQ,IAAK,SAAU7P,GACd,GAAIqW,GAAUrZ,EAAQgD,EAAQ7D,MAC7Bma,EAAID,EAAQtY,MAEb,OAAO5B,MAAKwP,OAAO,WAElB,IADA,GAAI7M,GAAI,EACIwX,EAAJxX,EAAOA,IACd,GAAK9B,EAAOwH,SAAUrI,KAAMka,EAAQvX,IACnC,OAAO,KAMXyX,QAAS,SAAU3I,EAAW1Q,GAS7B,IARA,GAAIkN,GACHtL,EAAI,EACJwX,EAAIna,KAAK4B,OACT0R,KACA+G,EAAMvB,EAAcnM,KAAM8E,IAAoC,gBAAdA,GAC/C5Q,EAAQ4Q,EAAW1Q,GAAWf,KAAKe,SACnC,EAEUoZ,EAAJxX,EAAOA,IACd,IAAMsL,EAAMjO,KAAK2C,GAAIsL,GAAOA,IAAQlN,EAASkN,EAAMA,EAAIpI,WAEtD,GAAKoI,EAAIhJ,SAAW,KAAOoV,EAC1BA,EAAIC,MAAMrM,GAAO,GAGA,IAAjBA,EAAIhJ,UACHpE,EAAO0O,KAAKO,gBAAgB7B,EAAKwD,IAAc,CAEhD6B,EAAQjT,KAAM4N,EACd,OAKH,MAAOjO,MAAKiC,UAAWqR,EAAQ1R,OAAS,EAAIf,EAAO+X,OAAQtF,GAAYA,IAIxEgH,MAAO,SAAU5X,GAGhB,MAAMA,GAKe,gBAATA,GACJpC,EAAQwB,KAAMjB,EAAQ6B,GAAQ1C,KAAM,IAIrCM,EAAQwB,KAAM9B,KAGpB0C,EAAKhB,OAASgB,EAAM,GAAMA,GAZjB1C,KAAM,IAAOA,KAAM,GAAI6F,WAAe7F,KAAK8C,QAAQyX,UAAU3Y,OAAS,IAgBjF4Y,IAAK,SAAU1Z,EAAUC,GACxB,MAAOf,MAAKiC,UACXpB,EAAO+X,OACN/X,EAAOuB,MAAOpC,KAAK+B,MAAOlB,EAAQC,EAAUC,OAK/C0Z,QAAS,SAAU3Z,GAClB,MAAOd,MAAKwa,IAAiB,MAAZ1Z,EAChBd,KAAKqC,WAAarC,KAAKqC,WAAWmN,OAAO1O,MAK5C,SAASkZ,GAAS/L,EAAK4D,GACtB,OAAS5D,EAAMA,EAAI4D,KAA0B,IAAjB5D,EAAIhJ,UAChC,MAAOgJ,GAGRpN,EAAOyB,MACNuM,OAAQ,SAAUnM,GACjB,GAAImM,GAASnM,EAAKmD,UAClB,OAAOgJ,IAA8B,KAApBA,EAAO5J,SAAkB4J,EAAS,MAEpD6L,QAAS,SAAUhY,GAClB,MAAO7B,GAAOgR,IAAKnP,EAAM,eAE1BiY,aAAc,SAAUjY,EAAMC,EAAGmX,GAChC,MAAOjZ,GAAOgR,IAAKnP,EAAM,aAAcoX,IAExCF,KAAM,SAAUlX,GACf,MAAOsX,GAAStX,EAAM,gBAEvBmX,KAAM,SAAUnX,GACf,MAAOsX,GAAStX,EAAM,oBAEvBkY,QAAS,SAAUlY,GAClB,MAAO7B,GAAOgR,IAAKnP,EAAM,gBAE1B6X,QAAS,SAAU7X,GAClB,MAAO7B,GAAOgR,IAAKnP,EAAM,oBAE1BmY,UAAW,SAAUnY,EAAMC,EAAGmX,GAC7B,MAAOjZ,GAAOgR,IAAKnP,EAAM,cAAeoX,IAEzCgB,UAAW,SAAUpY,EAAMC,EAAGmX,GAC7B,MAAOjZ,GAAOgR,IAAKnP,EAAM,kBAAmBoX,IAE7CiB,SAAU,SAAUrY,GACnB,MAAO7B,GAAOmZ,SAAWtX,EAAKmD,gBAAmB0L,WAAY7O,IAE9DgX,SAAU,SAAUhX,GACnB,MAAO7B,GAAOmZ,QAAStX,EAAK6O,aAE7BoI,SAAU,SAAUjX,GACnB,MAAOA,GAAKsY,iBAAmBna,EAAOuB,SAAWM,EAAK+I,cAErD,SAAUjI,EAAMxC,GAClBH,EAAOG,GAAIwC,GAAS,SAAUsW,EAAOhZ,GACpC,GAAIwS,GAAUzS,EAAO4B,IAAKzC,KAAMgB,EAAI8Y,EAsBpC,OApB0B,UAArBtW,EAAKrD,MAAO,MAChBW,EAAWgZ,GAGPhZ,GAAgC,gBAAbA,KACvBwS,EAAUzS,EAAO2O,OAAQ1O,EAAUwS,IAG/BtT,KAAK4B,OAAS,IAEZ6X,EAAkBjW,IACvB3C,EAAO+X,OAAQtF,GAIXkG,EAAa7M,KAAMnJ,IACvB8P,EAAQ2H,WAIHjb,KAAKiC,UAAWqR,KAGzB,IAAI4H,GAAY,OAKZC,IAGJ,SAASC,GAAe7X,GACvB,GAAI8X,GAASF,EAAc5X,KAI3B,OAHA1C,GAAOyB,KAAMiB,EAAQsI,MAAOqP,OAAmB,SAAUhQ,EAAGoQ,GAC3DD,EAAQC,IAAS,IAEXD,EAyBRxa,EAAO0a,UAAY,SAAUhY,GAI5BA,EAA6B,gBAAZA,GACd4X,EAAc5X,IAAa6X,EAAe7X,GAC5C1C,EAAOyC,UAAYC,EAEpB,IACCiY,GAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEA1S,KAEA2S,GAASvY,EAAQwY,SAEjBC,EAAO,SAAUC,GAOhB,IANAT,EAASjY,EAAQiY,QAAUS,EAC3BR,GAAQ,EACRI,EAAcF,GAAe,EAC7BA,EAAc,EACdC,EAAezS,EAAKvH,OACpB8Z,GAAS,EACDvS,GAAsByS,EAAdC,EAA4BA,IAC3C,GAAK1S,EAAM0S,GAAcjZ,MAAOqZ,EAAM,GAAKA,EAAM,OAAU,GAAS1Y,EAAQ2Y,YAAc,CACzFV,GAAS,CACT,OAGFE,GAAS,EACJvS,IACC2S,EACCA,EAAMla,QACVoa,EAAMF,EAAMtO,SAEFgO,EACXrS,KAEAgQ,EAAKgD,YAKRhD,GAECqB,IAAK,WACJ,GAAKrR,EAAO,CAEX,GAAI6J,GAAQ7J,EAAKvH,QACjB,QAAU4Y,GAAKhY,GACd3B,EAAOyB,KAAME,EAAM,SAAU0I,EAAGnE,GAC/B,GAAInC,GAAO/D,EAAO+D,KAAMmC,EACV,cAATnC,EACErB,EAAQqV,QAAWO,EAAKzF,IAAK3M,IAClCoC,EAAK9I,KAAM0G,GAEDA,GAAOA,EAAInF,QAAmB,WAATgD,GAEhC4V,EAAKzT,MAGJlE,WAGC6Y,EACJE,EAAezS,EAAKvH,OAGT4Z,IACXG,EAAc3I,EACdgJ,EAAMR,IAGR,MAAOxb,OAGRoc,OAAQ,WAkBP,MAjBKjT,IACJtI,EAAOyB,KAAMO,UAAW,SAAUqI,EAAGnE,GACpC,GAAIuT,EACJ,QAAUA,EAAQzZ,EAAO2F,QAASO,EAAKoC,EAAMmR,IAAY,GACxDnR,EAAK9F,OAAQiX,EAAO,GAEfoB,IACUE,GAATtB,GACJsB,IAEaC,GAATvB,GACJuB,OAME7b,MAIR0T,IAAK,SAAU1S,GACd,MAAOA,GAAKH,EAAO2F,QAASxF,EAAImI,GAAS,MAASA,IAAQA,EAAKvH,SAGhE+S,MAAO,WAGN,MAFAxL,MACAyS,EAAe,EACR5b,MAGRmc,QAAS,WAER,MADAhT,GAAO2S,EAAQN,EAAStX,OACjBlE,MAGRuU,SAAU,WACT,OAAQpL,GAGTkT,KAAM,WAKL,MAJAP,GAAQ5X,OACFsX,GACLrC,EAAKgD,UAECnc,MAGRsc,OAAQ,WACP,OAAQR,GAGTS,SAAU,SAAUxb,EAASyB,GAU5B,OATK2G,GAAWsS,IAASK,IACxBtZ,EAAOA,MACPA,GAASzB,EAASyB,EAAKrC,MAAQqC,EAAKrC,QAAUqC,GACzCkZ,EACJI,EAAMzb,KAAMmC,GAEZwZ,EAAMxZ,IAGDxC,MAGRgc,KAAM,WAEL,MADA7C,GAAKoD,SAAUvc,KAAM6C,WACd7C,MAGRyb,MAAO,WACN,QAASA,GAIZ,OAAOtC,IAIRtY,EAAOyC,QAENkZ,SAAU,SAAUC,GACnB,GAAIC,KAEA,UAAW,OAAQ7b,EAAO0a,UAAU,eAAgB,aACpD,SAAU,OAAQ1a,EAAO0a,UAAU,eAAgB,aACnD,SAAU,WAAY1a,EAAO0a,UAAU,YAE1CoB,EAAQ,UACRC,GACCD,MAAO,WACN,MAAOA,IAERE,OAAQ,WAEP,MADAC,GAAStU,KAAM3F,WAAYka,KAAMla,WAC1B7C,MAERgd,KAAM,WACL,GAAIC,GAAMpa,SACV,OAAOhC,GAAO2b,SAAS,SAAUU,GAChCrc,EAAOyB,KAAMoa,EAAQ,SAAU/Z,EAAGwa,GACjC,GAAInc,GAAKH,EAAOkD,WAAYkZ,EAAKta,KAASsa,EAAKta,EAE/Cma,GAAUK,EAAM,IAAK,WACpB,GAAIC,GAAWpc,GAAMA,EAAG4B,MAAO5C,KAAM6C,UAChCua,IAAYvc,EAAOkD,WAAYqZ,EAASR,SAC5CQ,EAASR,UACPpU,KAAM0U,EAASG,SACfN,KAAMG,EAASI,QACfC,SAAUL,EAASM,QAErBN,EAAUC,EAAO,GAAM,QAAUnd,OAAS4c,EAAUM,EAASN,UAAY5c,KAAMgB,GAAOoc,GAAava,eAItGoa,EAAM,OACJL,WAIJA,QAAS,SAAUjY,GAClB,MAAc,OAAPA,EAAc9D,EAAOyC,OAAQqB,EAAKiY,GAAYA,IAGvDE,IAwCD,OArCAF,GAAQa,KAAOb,EAAQI,KAGvBnc,EAAOyB,KAAMoa,EAAQ,SAAU/Z,EAAGwa,GACjC,GAAIhU,GAAOgU,EAAO,GACjBO,EAAcP,EAAO,EAGtBP,GAASO,EAAM,IAAOhU,EAAKqR,IAGtBkD,GACJvU,EAAKqR,IAAI,WAERmC,EAAQe,GAGNhB,EAAY,EAAJ/Z,GAAS,GAAIwZ,QAASO,EAAQ,GAAK,GAAIL,MAInDS,EAAUK,EAAM,IAAO,WAEtB,MADAL,GAAUK,EAAM,GAAK,QAAUnd,OAAS8c,EAAWF,EAAU5c,KAAM6C,WAC5D7C,MAER8c,EAAUK,EAAM,GAAK,QAAWhU,EAAKoT,WAItCK,EAAQA,QAASE,GAGZL,GACJA,EAAK3a,KAAMgb,EAAUA,GAIfA,GAIRa,KAAM,SAAUC,GACf,GAAIjb,GAAI,EACPkb,EAAgB1d,EAAM2B,KAAMe,WAC5BjB,EAASic,EAAcjc,OAGvBkc,EAAuB,IAAXlc,GAAkBgc,GAAe/c,EAAOkD,WAAY6Z,EAAYhB,SAAchb,EAAS,EAGnGkb,EAAyB,IAAdgB,EAAkBF,EAAc/c,EAAO2b,WAGlDuB,EAAa,SAAUpb,EAAG8T,EAAUuH,GACnC,MAAO,UAAU7X,GAChBsQ,EAAU9T,GAAM3C,KAChBge,EAAQrb,GAAME,UAAUjB,OAAS,EAAIzB,EAAM2B,KAAMe,WAAcsD,EAC1D6X,IAAWC,EACfnB,EAASoB,WAAYzH,EAAUuH,KACfF,GAChBhB,EAASqB,YAAa1H,EAAUuH,KAKnCC,EAAgBG,EAAkBC,CAGnC,IAAKzc,EAAS,EAIb,IAHAqc,EAAiB,GAAIpZ,OAAOjD,GAC5Bwc,EAAmB,GAAIvZ,OAAOjD,GAC9Byc,EAAkB,GAAIxZ,OAAOjD,GACjBA,EAAJe,EAAYA,IACdkb,EAAelb,IAAO9B,EAAOkD,WAAY8Z,EAAelb,GAAIia,SAChEiB,EAAelb,GAAIia,UACjBpU,KAAMuV,EAAYpb,EAAG0b,EAAiBR,IACtCd,KAAMD,EAASQ,QACfC,SAAUQ,EAAYpb,EAAGyb,EAAkBH,MAE3CH,CAUL,OAJMA,IACLhB,EAASqB,YAAaE,EAAiBR,GAGjCf,EAASF,YAMlB,IAAI0B,EAEJzd,GAAOG,GAAGuY,MAAQ,SAAUvY,GAI3B,MAFAH,GAAO0Y,MAAMqD,UAAUpU,KAAMxH,GAEtBhB,MAGRa,EAAOyC,QAENiB,SAAS,EAITga,UAAW,EAGXC,UAAW,SAAUC,GACfA,EACJ5d,EAAO0d,YAEP1d,EAAO0Y,OAAO,IAKhBA,MAAO,SAAUmF,IAGXA,KAAS,IAAS7d,EAAO0d,UAAY1d,EAAO0D,WAKjD1D,EAAO0D,SAAU,EAGZma,KAAS,KAAU7d,EAAO0d,UAAY,IAK3CD,EAAUH,YAAave,GAAYiB,IAG9BA,EAAOG,GAAG2d,iBACd9d,EAAQjB,GAAW+e,eAAgB,SACnC9d,EAAQjB,GAAWgf,IAAK,cAQ3B,SAASC,KACRjf,EAASkf,oBAAqB,mBAAoBD,GAAW,GAC7D9e,EAAO+e,oBAAqB,OAAQD,GAAW,GAC/Che,EAAO0Y,QAGR1Y,EAAO0Y,MAAMqD,QAAU,SAAUjY,GAqBhC,MApBM2Z,KAELA,EAAYzd,EAAO2b,WAKU,aAAxB5c,EAASmf,WAEbC,WAAYne,EAAO0Y,QAKnB3Z,EAASqP,iBAAkB,mBAAoB4P,GAAW,GAG1D9e,EAAOkP,iBAAkB,OAAQ4P,GAAW,KAGvCP,EAAU1B,QAASjY,IAI3B9D,EAAO0Y,MAAMqD,SAOb,IAAIqC,GAASpe,EAAOoe,OAAS,SAAU/c,EAAOlB,EAAIsM,EAAKnH,EAAO+Y,EAAWC,EAAUC,GAClF,GAAIzc,GAAI,EACPM,EAAMf,EAAMN,OACZyd,EAAc,MAAP/R,CAGR,IAA4B,WAAvBzM,EAAO+D,KAAM0I,GAAqB,CACtC4R,GAAY,CACZ,KAAMvc,IAAK2K,GACVzM,EAAOoe,OAAQ/c,EAAOlB,EAAI2B,EAAG2K,EAAI3K,IAAI,EAAMwc,EAAUC,OAIhD,IAAelb,SAAViC,IACX+Y,GAAY,EAENre,EAAOkD,WAAYoC,KACxBiZ,GAAM,GAGFC,IAECD,GACJpe,EAAGc,KAAMI,EAAOiE,GAChBnF,EAAK,OAILqe,EAAOre,EACPA,EAAK,SAAU0B,EAAM4K,EAAKnH,GACzB,MAAOkZ,GAAKvd,KAAMjB,EAAQ6B,GAAQyD,MAKhCnF,GACJ,KAAYiC,EAAJN,EAASA,IAChB3B,EAAIkB,EAAMS,GAAI2K,EAAK8R,EAAMjZ,EAAQA,EAAMrE,KAAMI,EAAMS,GAAIA,EAAG3B,EAAIkB,EAAMS,GAAI2K,IAK3E,OAAO4R,GACNhd,EAGAmd,EACCre,EAAGc,KAAMI,GACTe,EAAMjC,EAAIkB,EAAM,GAAIoL,GAAQ6R,EAO/Bte,GAAOye,WAAa,SAAUC,GAQ7B,MAA0B,KAAnBA,EAAMta,UAAqC,IAAnBsa,EAAMta,YAAsBsa,EAAMta,SAIlE,SAASua,KAIRjZ,OAAOkZ,eAAgBzf,KAAKqN,SAAY,GACvCtL,IAAK,WACJ,YAIF/B,KAAKmE,QAAUtD,EAAOsD,QAAUqb,EAAKE,MAGtCF,EAAKE,IAAM,EACXF,EAAKG,QAAU9e,EAAOye,WAEtBE,EAAK/d,WACJ6L,IAAK,SAAUiS,GAId,IAAMC,EAAKG,QAASJ,GACnB,MAAO,EAGR,IAAIK,MAEHC,EAASN,EAAOvf,KAAKmE,QAGtB,KAAM0b,EAAS,CACdA,EAASL,EAAKE,KAGd,KACCE,EAAY5f,KAAKmE,UAAcgC,MAAO0Z,GACtCtZ,OAAOuZ,iBAAkBP,EAAOK,GAI/B,MAAQlU,GACTkU,EAAY5f,KAAKmE,SAAY0b,EAC7Bhf,EAAOyC,OAAQic,EAAOK,IASxB,MAJM5f,MAAKqN,MAAOwS,KACjB7f,KAAKqN,MAAOwS,OAGNA,GAERE,IAAK,SAAUR,EAAOtD,EAAM9V,GAC3B,GAAI6Z,GAIHH,EAAS7f,KAAKsN,IAAKiS,GACnBlS,EAAQrN,KAAKqN,MAAOwS,EAGrB,IAAqB,gBAAT5D,GACX5O,EAAO4O,GAAS9V,MAKhB,IAAKtF,EAAOqE,cAAemI,GAC1BxM,EAAOyC,OAAQtD,KAAKqN,MAAOwS,GAAU5D,OAGrC,KAAM+D,IAAQ/D,GACb5O,EAAO2S,GAAS/D,EAAM+D,EAIzB,OAAO3S,IAERtL,IAAK,SAAUwd,EAAOjS,GAKrB,GAAID,GAAQrN,KAAKqN,MAAOrN,KAAKsN,IAAKiS,GAElC,OAAerb,UAARoJ,EACND,EAAQA,EAAOC,IAEjB2R,OAAQ,SAAUM,EAAOjS,EAAKnH,GAC7B,GAAI8Z,EAYJ,OAAa/b,UAARoJ,GACDA,GAAsB,gBAARA,IAA+BpJ,SAAViC,GAEtC8Z,EAASjgB,KAAK+B,IAAKwd,EAAOjS,GAERpJ,SAAX+b,EACNA,EAASjgB,KAAK+B,IAAKwd,EAAO1e,EAAOkF,UAAUuH,MAS7CtN,KAAK+f,IAAKR,EAAOjS,EAAKnH,GAILjC,SAAViC,EAAsBA,EAAQmH,IAEtC8O,OAAQ,SAAUmD,EAAOjS,GACxB,GAAI3K,GAAGa,EAAM0c,EACZL,EAAS7f,KAAKsN,IAAKiS,GACnBlS,EAAQrN,KAAKqN,MAAOwS,EAErB,IAAa3b,SAARoJ,EACJtN,KAAKqN,MAAOwS,UAEN,CAEDhf,EAAOoD,QAASqJ,GAOpB9J,EAAO8J,EAAIlN,OAAQkN,EAAI7K,IAAK5B,EAAOkF,aAEnCma,EAAQrf,EAAOkF,UAAWuH,GAErBA,IAAOD,GACX7J,GAAS8J,EAAK4S,IAId1c,EAAO0c,EACP1c,EAAOA,IAAQ6J,IACZ7J,GAAWA,EAAKqI,MAAOqP,SAI5BvY,EAAIa,EAAK5B,MACT,OAAQe,UACA0K,GAAO7J,EAAMb,MAIvBwd,QAAS,SAAUZ,GAClB,OAAQ1e,EAAOqE,cACdlF,KAAKqN,MAAOkS,EAAOvf,KAAKmE,gBAG1Bic,QAAS,SAAUb,GACbA,EAAOvf,KAAKmE,gBACTnE,MAAKqN,MAAOkS,EAAOvf,KAAKmE,WAIlC,IAAIkc,GAAY,GAAIb,GAEhBc,EAAY,GAAId,GAchBe,EAAS,gCACZC,EAAa,UAEd,SAASC,GAAU/d,EAAM4K,EAAK2O,GAC7B,GAAIzY,EAIJ,IAAcU,SAAT+X,GAAwC,IAAlBvZ,EAAKuC,SAI/B,GAHAzB,EAAO,QAAU8J,EAAIhJ,QAASkc,EAAY,OAAQta,cAClD+V,EAAOvZ,EAAKkK,aAAcpJ,GAEL,gBAATyY,GAAoB,CAC/B,IACCA,EAAgB,SAATA,GAAkB,EACf,UAATA,GAAmB,EACV,SAATA,EAAkB,MAEjBA,EAAO,KAAOA,GAAQA,EACvBsE,EAAO5T,KAAMsP,GAASpb,EAAO6f,UAAWzE,GACxCA,EACA,MAAOvQ,IAGT4U,EAAUP,IAAKrd,EAAM4K,EAAK2O,OAE1BA,GAAO/X,MAGT,OAAO+X,GAGRpb,EAAOyC,QACN6c,QAAS,SAAUzd,GAClB,MAAO4d,GAAUH,QAASzd,IAAU2d,EAAUF,QAASzd,IAGxDuZ,KAAM,SAAUvZ,EAAMc,EAAMyY;AAC3B,MAAOqE,GAAUrB,OAAQvc,EAAMc,EAAMyY,IAGtC0E,WAAY,SAAUje,EAAMc,GAC3B8c,EAAUlE,OAAQ1Z,EAAMc,IAKzBod,MAAO,SAAUle,EAAMc,EAAMyY,GAC5B,MAAOoE,GAAUpB,OAAQvc,EAAMc,EAAMyY,IAGtC4E,YAAa,SAAUne,EAAMc,GAC5B6c,EAAUjE,OAAQ1Z,EAAMc,MAI1B3C,EAAOG,GAAGsC,QACT2Y,KAAM,SAAU3O,EAAKnH,GACpB,GAAIxD,GAAGa,EAAMyY,EACZvZ,EAAO1C,KAAM,GACb6N,EAAQnL,GAAQA,EAAK8G,UAGtB,IAAatF,SAARoJ,EAAoB,CACxB,GAAKtN,KAAK4B,SACTqa,EAAOqE,EAAUve,IAAKW,GAEC,IAAlBA,EAAKuC,WAAmBob,EAAUte,IAAKW,EAAM,iBAAmB,CACpEC,EAAIkL,EAAMjM,MACV,OAAQe,IAIFkL,EAAOlL,KACXa,EAAOqK,EAAOlL,GAAIa,KACe,IAA5BA,EAAKlD,QAAS,WAClBkD,EAAO3C,EAAOkF,UAAWvC,EAAKrD,MAAM,IACpCsgB,EAAU/d,EAAMc,EAAMyY,EAAMzY,KAI/B6c,GAAUN,IAAKrd,EAAM,gBAAgB,GAIvC,MAAOuZ,GAIR,MAAoB,gBAAR3O,GACJtN,KAAKsC,KAAK,WAChBge,EAAUP,IAAK/f,KAAMsN,KAIhB2R,EAAQjf,KAAM,SAAUmG,GAC9B,GAAI8V,GACH6E,EAAWjgB,EAAOkF,UAAWuH,EAO9B,IAAK5K,GAAkBwB,SAAViC,EAAb,CAIC,GADA8V,EAAOqE,EAAUve,IAAKW,EAAM4K,GACdpJ,SAAT+X,EACJ,MAAOA,EAMR,IADAA,EAAOqE,EAAUve,IAAKW,EAAMoe,GACd5c,SAAT+X,EACJ,MAAOA,EAMR,IADAA,EAAOwE,EAAU/d,EAAMoe,EAAU5c,QACnBA,SAAT+X,EACJ,MAAOA,OAQTjc,MAAKsC,KAAK,WAGT,GAAI2Z,GAAOqE,EAAUve,IAAK/B,KAAM8gB,EAKhCR,GAAUP,IAAK/f,KAAM8gB,EAAU3a,GAKL,KAArBmH,EAAIhN,QAAQ,MAAwB4D,SAAT+X,GAC/BqE,EAAUP,IAAK/f,KAAMsN,EAAKnH,MAG1B,KAAMA,EAAOtD,UAAUjB,OAAS,EAAG,MAAM,IAG7C+e,WAAY,SAAUrT,GACrB,MAAOtN,MAAKsC,KAAK,WAChBge,EAAUlE,OAAQpc,KAAMsN,QAM3BzM,EAAOyC,QACNyd,MAAO,SAAUre,EAAMkC,EAAMqX,GAC5B,GAAI8E,EAEJ,OAAKre,IACJkC,GAASA,GAAQ,MAAS,QAC1Bmc,EAAQV,EAAUte,IAAKW,EAAMkC,GAGxBqX,KACE8E,GAASlgB,EAAOoD,QAASgY,GAC9B8E,EAAQV,EAAUpB,OAAQvc,EAAMkC,EAAM/D,EAAOwF,UAAU4V,IAEvD8E,EAAM1gB,KAAM4b,IAGP8E,OAZR,QAgBDC,QAAS,SAAUte,EAAMkC,GACxBA,EAAOA,GAAQ,IAEf,IAAImc,GAAQlgB,EAAOkgB,MAAOre,EAAMkC,GAC/Bqc,EAAcF,EAAMnf,OACpBZ,EAAK+f,EAAMvT,QACX0T,EAAQrgB,EAAOsgB,YAAaze,EAAMkC,GAClCgV,EAAO,WACN/Y,EAAOmgB,QAASte,EAAMkC,GAIZ,gBAAP5D,IACJA,EAAK+f,EAAMvT,QACXyT,KAGIjgB,IAIU,OAAT4D,GACJmc,EAAMnQ,QAAS,oBAITsQ,GAAME,KACbpgB,EAAGc,KAAMY,EAAMkX,EAAMsH,KAGhBD,GAAeC,GACpBA,EAAMvM,MAAMqH,QAKdmF,YAAa,SAAUze,EAAMkC,GAC5B,GAAI0I,GAAM1I,EAAO,YACjB,OAAOyb,GAAUte,IAAKW,EAAM4K,IAAS+S,EAAUpB,OAAQvc,EAAM4K,GAC5DqH,MAAO9T,EAAO0a,UAAU,eAAef,IAAI,WAC1C6F,EAAUjE,OAAQ1Z,GAAQkC,EAAO,QAAS0I,WAM9CzM,EAAOG,GAAGsC,QACTyd,MAAO,SAAUnc,EAAMqX,GACtB,GAAIoF,GAAS,CAQb,OANqB,gBAATzc,KACXqX,EAAOrX,EACPA,EAAO,KACPyc,KAGIxe,UAAUjB,OAASyf,EAChBxgB,EAAOkgB,MAAO/gB,KAAK,GAAI4E,GAGfV,SAAT+X,EACNjc,KACAA,KAAKsC,KAAK,WACT,GAAIye,GAAQlgB,EAAOkgB,MAAO/gB,KAAM4E,EAAMqX,EAGtCpb,GAAOsgB,YAAanhB,KAAM4E,GAEZ,OAATA,GAA8B,eAAbmc,EAAM,IAC3BlgB,EAAOmgB,QAAShhB,KAAM4E,MAI1Boc,QAAS,SAAUpc,GAClB,MAAO5E,MAAKsC,KAAK,WAChBzB,EAAOmgB,QAAShhB,KAAM4E,MAGxB0c,WAAY,SAAU1c,GACrB,MAAO5E,MAAK+gB,MAAOnc,GAAQ,UAI5BgY,QAAS,SAAUhY,EAAMD,GACxB,GAAIuC,GACHqa,EAAQ,EACRC,EAAQ3gB,EAAO2b,WACf1L,EAAW9Q,KACX2C,EAAI3C,KAAK4B,OACTyb,EAAU,aACCkE,GACTC,EAAMrD,YAAarN,GAAYA,IAIb,iBAATlM,KACXD,EAAMC,EACNA,EAAOV,QAERU,EAAOA,GAAQ,IAEf,OAAQjC,IACPuE,EAAMmZ,EAAUte,IAAK+O,EAAUnO,GAAKiC,EAAO,cACtCsC,GAAOA,EAAIyN,QACf4M,IACAra,EAAIyN,MAAM6F,IAAK6C,GAIjB,OADAA,KACOmE,EAAM5E,QAASjY,KAGxB,IAAI8c,GAAO,sCAAwCC,OAE/CC,GAAc,MAAO,QAAS,SAAU,QAExCC,EAAW,SAAUlf,EAAMmf,GAI7B,MADAnf,GAAOmf,GAAMnf,EAC4B,SAAlC7B,EAAOihB,IAAKpf,EAAM,aAA2B7B,EAAOwH,SAAU3F,EAAK0J,cAAe1J,IAGvFqf,EAAiB,yBAIrB,WACC,GAAIC,GAAWpiB,EAASqiB,yBACvBtU,EAAMqU,EAASpc,YAAahG,EAAS6F,cAAe,QACpDoK,EAAQjQ,EAAS6F,cAAe,QAMjCoK,GAAMhD,aAAc,OAAQ,SAC5BgD,EAAMhD,aAAc,UAAW,WAC/BgD,EAAMhD,aAAc,OAAQ,KAE5Bc,EAAI/H,YAAaiK,GAIjBlP,EAAQuhB,WAAavU,EAAIwU,WAAW,GAAOA,WAAW,GAAOjP,UAAUsB,QAIvE7G,EAAIiC,UAAY,yBAChBjP,EAAQyhB,iBAAmBzU,EAAIwU,WAAW,GAAOjP,UAAUyF,eAE5D,IAAI0J,GAAe,WAInB1hB,GAAQ2hB,eAAiB,aAAeviB,EAGxC,IACCwiB,GAAY,OACZC,EAAc,uCACdC,EAAc,kCACdC,EAAiB,sBAElB,SAASC,KACR,OAAO,EAGR,QAASC,KACR,OAAO,EAGR,QAASC,KACR,IACC,MAAOjjB,GAASsU,cACf,MAAQ4O,KAOXjiB,EAAOkiB,OAENvjB,UAEAgb,IAAK,SAAU9X,EAAMsgB,EAAOlV,EAASmO,EAAMnb,GAE1C,GAAImiB,GAAaC,EAAahc,EAC7Bic,EAAQC,EAAGC,EACXC,EAASC,EAAU3e,EAAM4e,EAAYC,EACrCC,EAAWrD,EAAUte,IAAKW,EAG3B,IAAMghB,EAAN,CAKK5V,EAAQA,UACZmV,EAAcnV,EACdA,EAAUmV,EAAYnV,QACtBhN,EAAWmiB,EAAYniB,UAIlBgN,EAAQ9G,OACb8G,EAAQ9G,KAAOnG,EAAOmG,SAIhBmc,EAASO,EAASP,UACxBA,EAASO,EAASP,YAEZD,EAAcQ,EAASC,UAC7BT,EAAcQ,EAASC,OAAS,SAAUjY,GAGzC,aAAc7K,KAAWwhB,GAAgBxhB,EAAOkiB,MAAMa,YAAclY,EAAE9G,KACrE/D,EAAOkiB,MAAMc,SAASjhB,MAAOF,EAAMG,WAAcqB,SAKpD8e,GAAUA,GAAS,IAAKnX,MAAOqP,KAAiB,IAChDkI,EAAIJ,EAAMphB,MACV,OAAQwhB,IACPlc,EAAMwb,EAAerW,KAAM2W,EAAMI,QACjCxe,EAAO6e,EAAWvc,EAAI,GACtBsc,GAAetc,EAAI,IAAM,IAAKG,MAAO,KAAMjE,OAGrCwB,IAKN0e,EAAUziB,EAAOkiB,MAAMO,QAAS1e,OAGhCA,GAAS9D,EAAWwiB,EAAQQ,aAAeR,EAAQS,WAAcnf,EAGjE0e,EAAUziB,EAAOkiB,MAAMO,QAAS1e,OAGhCye,EAAYxiB,EAAOyC,QAClBsB,KAAMA,EACN6e,SAAUA,EACVxH,KAAMA,EACNnO,QAASA,EACT9G,KAAM8G,EAAQ9G,KACdlG,SAAUA,EACV2J,aAAc3J,GAAYD,EAAOgQ,KAAKhF,MAAMpB,aAAakC,KAAM7L,GAC/DkjB,UAAWR,EAAWxW,KAAK,MACzBiW,IAGIM,EAAWJ,EAAQve,MACzB2e,EAAWJ,EAAQve,MACnB2e,EAASU,cAAgB,EAGnBX,EAAQY,OAASZ,EAAQY,MAAMpiB,KAAMY,EAAMuZ,EAAMuH,EAAYN,MAAkB,GAC/ExgB,EAAKuM,kBACTvM,EAAKuM,iBAAkBrK,EAAMse,GAAa,IAKxCI,EAAQ9I,MACZ8I,EAAQ9I,IAAI1Y,KAAMY,EAAM2gB,GAElBA,EAAUvV,QAAQ9G,OACvBqc,EAAUvV,QAAQ9G,KAAO8G,EAAQ9G,OAK9BlG,EACJyiB,EAASlgB,OAAQkgB,EAASU,gBAAiB,EAAGZ,GAE9CE,EAASljB,KAAMgjB,GAIhBxiB,EAAOkiB,MAAMvjB,OAAQoF,IAAS,KAMhCwX,OAAQ,SAAU1Z,EAAMsgB,EAAOlV,EAAShN,EAAUqjB,GAEjD,GAAIjhB,GAAGkhB,EAAWld,EACjBic,EAAQC,EAAGC,EACXC,EAASC,EAAU3e,EAAM4e,EAAYC,EACrCC,EAAWrD,EAAUF,QAASzd,IAAU2d,EAAUte,IAAKW,EAExD,IAAMghB,IAAcP,EAASO,EAASP,QAAtC,CAKAH,GAAUA,GAAS,IAAKnX,MAAOqP,KAAiB,IAChDkI,EAAIJ,EAAMphB,MACV,OAAQwhB,IAMP,GALAlc,EAAMwb,EAAerW,KAAM2W,EAAMI,QACjCxe,EAAO6e,EAAWvc,EAAI,GACtBsc,GAAetc,EAAI,IAAM,IAAKG,MAAO,KAAMjE,OAGrCwB,EAAN,CAOA0e,EAAUziB,EAAOkiB,MAAMO,QAAS1e,OAChCA,GAAS9D,EAAWwiB,EAAQQ,aAAeR,EAAQS,WAAcnf,EACjE2e,EAAWJ,EAAQve,OACnBsC,EAAMA,EAAI,IAAM,GAAIyC,QAAQ,UAAY6Z,EAAWxW,KAAK,iBAAmB,WAG3EoX,EAAYlhB,EAAIqgB,EAAS3hB,MACzB,OAAQsB,IACPmgB,EAAYE,EAAUrgB,IAEfihB,GAAeV,IAAaJ,EAAUI,UACzC3V,GAAWA,EAAQ9G,OAASqc,EAAUrc,MACtCE,IAAOA,EAAIyF,KAAM0W,EAAUW,YAC3BljB,GAAYA,IAAauiB,EAAUviB,WAAyB,OAAbA,IAAqBuiB,EAAUviB,YACjFyiB,EAASlgB,OAAQH,EAAG,GAEfmgB,EAAUviB,UACdyiB,EAASU,gBAELX,EAAQlH,QACZkH,EAAQlH,OAAOta,KAAMY,EAAM2gB,GAOzBe,KAAcb,EAAS3hB,SACrB0hB,EAAQe,UAAYf,EAAQe,SAASviB,KAAMY,EAAM8gB,EAAYE,EAASC,WAAa,GACxF9iB,EAAOyjB,YAAa5hB,EAAMkC,EAAM8e,EAASC,cAGnCR,GAAQve,QAtCf,KAAMA,IAAQue,GACbtiB,EAAOkiB,MAAM3G,OAAQ1Z,EAAMkC,EAAOoe,EAAOI,GAAKtV,EAAShN,GAAU,EA0C/DD,GAAOqE,cAAeie,WACnBO,GAASC,OAChBtD,EAAUjE,OAAQ1Z,EAAM,aAI1B6hB,QAAS,SAAUxB,EAAO9G,EAAMvZ,EAAM8hB,GAErC,GAAI7hB,GAAGsL,EAAK/G,EAAKud,EAAYC,EAAQf,EAAQL,EAC5CqB,GAAcjiB,GAAQ9C,GACtBgF,EAAOnE,EAAOqB,KAAMihB,EAAO,QAAWA,EAAMne,KAAOme,EACnDS,EAAa/iB,EAAOqB,KAAMihB,EAAO,aAAgBA,EAAMiB,UAAU3c,MAAM,OAKxE,IAHA4G,EAAM/G,EAAMxE,EAAOA,GAAQ9C,EAGJ,IAAlB8C,EAAKuC,UAAoC,IAAlBvC,EAAKuC,WAK5Bwd,EAAY9V,KAAM/H,EAAO/D,EAAOkiB,MAAMa,aAItChf,EAAKtE,QAAQ,MAAQ,IAEzBkjB,EAAa5e,EAAKyC,MAAM,KACxBzC,EAAO4e,EAAWhW,QAClBgW,EAAWpgB,QAEZshB,EAAS9f,EAAKtE,QAAQ,KAAO,GAAK,KAAOsE,EAGzCme,EAAQA,EAAOliB,EAAOsD,SACrB4e,EACA,GAAIliB,GAAO+jB,MAAOhgB,EAAuB,gBAAVme,IAAsBA,GAGtDA,EAAM8B,UAAYL,EAAe,EAAI,EACrCzB,EAAMiB,UAAYR,EAAWxW,KAAK,KAClC+V,EAAM+B,aAAe/B,EAAMiB,UAC1B,GAAIra,QAAQ,UAAY6Z,EAAWxW,KAAK,iBAAmB,WAC3D,KAGD+V,EAAMvQ,OAAStO,OACT6e,EAAMlf,SACXkf,EAAMlf,OAASnB,GAIhBuZ,EAAe,MAARA,GACJ8G,GACFliB,EAAOwF,UAAW4V,GAAQ8G,IAG3BO,EAAUziB,EAAOkiB,MAAMO,QAAS1e,OAC1B4f,IAAgBlB,EAAQiB,SAAWjB,EAAQiB,QAAQ3hB,MAAOF,EAAMuZ,MAAW,GAAjF,CAMA,IAAMuI,IAAiBlB,EAAQyB,WAAalkB,EAAOiE,SAAUpC,GAAS,CAMrE,IAJA+hB,EAAanB,EAAQQ,cAAgBlf,EAC/B6d,EAAY9V,KAAM8X,EAAa7f,KACpCqJ,EAAMA,EAAIpI,YAEHoI,EAAKA,EAAMA,EAAIpI,WACtB8e,EAAUtkB,KAAM4N,GAChB/G,EAAM+G,CAIF/G,MAASxE,EAAK0J,eAAiBxM,IACnC+kB,EAAUtkB,KAAM6G,EAAI6H,aAAe7H,EAAI8d,cAAgBjlB,GAKzD4C,EAAI,CACJ,QAASsL,EAAM0W,EAAUhiB,QAAUogB,EAAMkC,uBAExClC,EAAMne,KAAOjC,EAAI,EAChB8hB,EACAnB,EAAQS,UAAYnf,EAGrB+e,GAAWtD,EAAUte,IAAKkM,EAAK,eAAoB8U,EAAMne,OAAUyb,EAAUte,IAAKkM,EAAK,UAClF0V,GACJA,EAAO/gB,MAAOqL,EAAKgO,GAIpB0H,EAASe,GAAUzW,EAAKyW,GACnBf,GAAUA,EAAO/gB,OAAS/B,EAAOye,WAAYrR,KACjD8U,EAAMvQ,OAASmR,EAAO/gB,MAAOqL,EAAKgO,GAC7B8G,EAAMvQ,UAAW,GACrBuQ,EAAMmC,iBAmCT,OA/BAnC,GAAMne,KAAOA,EAGP4f,GAAiBzB,EAAMoC,sBAErB7B,EAAQ8B,UAAY9B,EAAQ8B,SAASxiB,MAAO+hB,EAAU1b,MAAOgT,MAAW,IAC9Epb,EAAOye,WAAY5c,IAIdgiB,GAAU7jB,EAAOkD,WAAYrB,EAAMkC,MAAa/D,EAAOiE,SAAUpC,KAGrEwE,EAAMxE,EAAMgiB,GAEPxd,IACJxE,EAAMgiB,GAAW,MAIlB7jB,EAAOkiB,MAAMa,UAAYhf,EACzBlC,EAAMkC,KACN/D,EAAOkiB,MAAMa,UAAY1f,OAEpBgD,IACJxE,EAAMgiB,GAAWxd,IAMd6b,EAAMvQ,SAGdqR,SAAU,SAAUd,GAGnBA,EAAQliB,EAAOkiB,MAAMsC,IAAKtC,EAE1B,IAAIpgB,GAAGO,EAAGf,EAAKmR,EAAS+P,EACvBiC,KACA9iB,EAAOrC,EAAM2B,KAAMe,WACnB0gB,GAAalD,EAAUte,IAAK/B,KAAM,eAAoB+iB,EAAMne,UAC5D0e,EAAUziB,EAAOkiB,MAAMO,QAASP,EAAMne,SAOvC,IAJApC,EAAK,GAAKugB,EACVA,EAAMwC,eAAiBvlB,MAGlBsjB,EAAQkC,aAAelC,EAAQkC,YAAY1jB,KAAM9B,KAAM+iB,MAAY,EAAxE,CAKAuC,EAAezkB,EAAOkiB,MAAMQ,SAASzhB,KAAM9B,KAAM+iB,EAAOQ,GAGxD5gB,EAAI,CACJ,QAAS2Q,EAAUgS,EAAc3iB,QAAWogB,EAAMkC,uBAAyB,CAC1ElC,EAAM0C,cAAgBnS,EAAQ5Q,KAE9BQ,EAAI,CACJ,QAASmgB,EAAY/P,EAAQiQ,SAAUrgB,QAAW6f,EAAM2C,kCAIjD3C,EAAM+B,cAAgB/B,EAAM+B,aAAanY,KAAM0W,EAAUW,cAE9DjB,EAAMM,UAAYA,EAClBN,EAAM9G,KAAOoH,EAAUpH,KAEvB9Z,IAAStB,EAAOkiB,MAAMO,QAASD,EAAUI,eAAkBE,QAAUN,EAAUvV,SAC5ElL,MAAO0Q,EAAQ5Q,KAAMF,GAEX0B,SAAR/B,IACE4gB,EAAMvQ,OAASrQ,MAAS,IAC7B4gB,EAAMmC,iBACNnC,EAAM4C,oBAYX,MAJKrC,GAAQsC,cACZtC,EAAQsC,aAAa9jB,KAAM9B,KAAM+iB,GAG3BA,EAAMvQ,SAGd+Q,SAAU,SAAUR,EAAOQ,GAC1B,GAAI5gB,GAAGkE,EAASgf,EAAKxC,EACpBiC,KACArB,EAAgBV,EAASU,cACzBhW,EAAM8U,EAAMlf,MAKb,IAAKogB,GAAiBhW,EAAIhJ,YAAc8d,EAAMlO,QAAyB,UAAfkO,EAAMne,MAE7D,KAAQqJ,IAAQjO,KAAMiO,EAAMA,EAAIpI,YAAc7F,KAG7C,GAAKiO,EAAIsG,YAAa,GAAuB,UAAfwO,EAAMne,KAAmB,CAEtD,IADAiC,KACMlE,EAAI,EAAOshB,EAAJthB,EAAmBA,IAC/B0gB,EAAYE,EAAU5gB,GAGtBkjB,EAAMxC,EAAUviB,SAAW,IAEHoD,SAAnB2C,EAASgf,KACbhf,EAASgf,GAAQxC,EAAU5Y,aAC1B5J,EAAQglB,EAAK7lB,MAAOsa,MAAOrM,IAAS,EACpCpN,EAAO0O,KAAMsW,EAAK7lB,KAAM,MAAQiO,IAAQrM,QAErCiF,EAASgf,IACbhf,EAAQxG,KAAMgjB,EAGXxc,GAAQjF,QACZ0jB,EAAajlB,MAAOqC,KAAMuL,EAAKsV,SAAU1c,IAW7C,MAJKod,GAAgBV,EAAS3hB,QAC7B0jB,EAAajlB,MAAOqC,KAAM1C,KAAMujB,SAAUA,EAASpjB,MAAO8jB,KAGpDqB,GAIRQ,MAAO,wHAAwHze,MAAM,KAErI0e,YAEAC,UACCF,MAAO,4BAA4Bze,MAAM,KACzCmI,OAAQ,SAAUuT,EAAOkD,GAOxB,MAJoB,OAAflD,EAAMmD,QACVnD,EAAMmD,MAA6B,MAArBD,EAASE,SAAmBF,EAASE,SAAWF,EAASG,SAGjErD,IAITsD,YACCP,MAAO,uFAAuFze,MAAM,KACpGmI,OAAQ,SAAUuT,EAAOkD,GACxB,GAAIK,GAAUxX,EAAKyX,EAClB1R,EAASoR,EAASpR,MAkBnB,OAfoB,OAAfkO,EAAMyD,OAAqC,MAApBP,EAASQ,UACpCH,EAAWvD,EAAMlf,OAAOuI,eAAiBxM,EACzCkP,EAAMwX,EAAS5X,gBACf6X,EAAOD,EAASC,KAEhBxD,EAAMyD,MAAQP,EAASQ,SAAY3X,GAAOA,EAAI4X,YAAcH,GAAQA,EAAKG,YAAc,IAAQ5X,GAAOA,EAAI6X,YAAcJ,GAAQA,EAAKI,YAAc,GACnJ5D,EAAM6D,MAAQX,EAASY,SAAY/X,GAAOA,EAAIgY,WAAcP,GAAQA,EAAKO,WAAc,IAAQhY,GAAOA,EAAIiY,WAAcR,GAAQA,EAAKQ,WAAc,IAK9IhE,EAAMmD,OAAoBhiB,SAAX2Q,IACpBkO,EAAMmD,MAAmB,EAATrR,EAAa,EAAe,EAATA,EAAa,EAAe,EAATA,EAAa,EAAI,GAGjEkO,IAITsC,IAAK,SAAUtC,GACd,GAAKA,EAAOliB,EAAOsD,SAClB,MAAO4e,EAIR,IAAIpgB,GAAGqd,EAAMtc,EACZkB,EAAOme,EAAMne,KACboiB,EAAgBjE,EAChBkE,EAAUjnB,KAAK+lB,SAAUnhB,EAEpBqiB,KACLjnB,KAAK+lB,SAAUnhB,GAASqiB,EACvBzE,EAAY7V,KAAM/H,GAAS5E,KAAKqmB,WAChC9D,EAAU5V,KAAM/H,GAAS5E,KAAKgmB,aAGhCtiB,EAAOujB,EAAQnB,MAAQ9lB,KAAK8lB,MAAM1lB,OAAQ6mB,EAAQnB,OAAU9lB,KAAK8lB,MAEjE/C,EAAQ,GAAIliB,GAAO+jB,MAAOoC,GAE1BrkB,EAAIe,EAAK9B,MACT,OAAQe,IACPqd,EAAOtc,EAAMf,GACbogB,EAAO/C,GAASgH,EAAehH,EAehC,OAVM+C,GAAMlf,SACXkf,EAAMlf,OAASjE,GAKe,IAA1BmjB,EAAMlf,OAAOoB,WACjB8d,EAAMlf,OAASkf,EAAMlf,OAAOgC,YAGtBohB,EAAQzX,OAASyX,EAAQzX,OAAQuT,EAAOiE,GAAkBjE,GAGlEO,SACC4D,MAECnC,UAAU,GAEX9Q,OAECsQ,QAAS,WACR,MAAKvkB,QAAS6iB,KAAuB7iB,KAAKiU,OACzCjU,KAAKiU,SACE,GAFR,QAKD6P,aAAc,WAEfqD,MACC5C,QAAS,WACR,MAAKvkB,QAAS6iB,KAAuB7iB,KAAKmnB,MACzCnnB,KAAKmnB,QACE,GAFR,QAKDrD,aAAc,YAEfsD,OAEC7C,QAAS,WACR,MAAmB,aAAdvkB,KAAK4E,MAAuB5E,KAAKonB,OAASvmB,EAAOoF,SAAUjG,KAAM,UACrEA,KAAKonB,SACE,GAFR,QAODhC,SAAU,SAAUrC,GACnB,MAAOliB,GAAOoF,SAAU8c,EAAMlf,OAAQ,OAIxCwjB,cACCzB,aAAc,SAAU7C,GAID7e,SAAjB6e,EAAMvQ,QAAwBuQ,EAAMiE,gBACxCjE,EAAMiE,cAAcM,YAAcvE,EAAMvQ,WAM5C+U,SAAU,SAAU3iB,EAAMlC,EAAMqgB,EAAOyE,GAItC,GAAI9b,GAAI7K,EAAOyC,OACd,GAAIzC,GAAO+jB,MACX7B,GAECne,KAAMA,EACN6iB,aAAa,EACbT,kBAGGQ,GACJ3mB,EAAOkiB,MAAMwB,QAAS7Y,EAAG,KAAMhJ,GAE/B7B,EAAOkiB,MAAMc,SAAS/hB,KAAMY,EAAMgJ,GAE9BA,EAAEyZ,sBACNpC,EAAMmC,mBAKTrkB,EAAOyjB,YAAc,SAAU5hB,EAAMkC,EAAM+e,GACrCjhB,EAAKoc,qBACTpc,EAAKoc,oBAAqBla,EAAM+e,GAAQ,IAI1C9iB,EAAO+jB,MAAQ,SAAUnhB,EAAKqiB,GAE7B,MAAO9lB,gBAAgBa,GAAO+jB,OAKzBnhB,GAAOA,EAAImB,MACf5E,KAAKgnB,cAAgBvjB,EACrBzD,KAAK4E,KAAOnB,EAAImB,KAIhB5E,KAAKmlB,mBAAqB1hB,EAAIikB,kBACHxjB,SAAzBT,EAAIikB,kBAEJjkB,EAAI6jB,eAAgB,EACrB3E,EACAC,GAID5iB,KAAK4E,KAAOnB,EAIRqiB,GACJjlB,EAAOyC,OAAQtD,KAAM8lB,GAItB9lB,KAAK2nB,UAAYlkB,GAAOA,EAAIkkB,WAAa9mB,EAAOsG,WAGhDnH,KAAMa,EAAOsD,UAAY,IA/BjB,GAAItD,GAAO+jB,MAAOnhB,EAAKqiB,IAoChCjlB,EAAO+jB,MAAMnjB,WACZ0jB,mBAAoBvC,EACpBqC,qBAAsBrC,EACtB8C,8BAA+B9C,EAE/BsC,eAAgB,WACf,GAAIxZ,GAAI1L,KAAKgnB,aAEbhnB,MAAKmlB,mBAAqBxC,EAErBjX,GAAKA,EAAEwZ,gBACXxZ,EAAEwZ,kBAGJS,gBAAiB,WAChB,GAAIja,GAAI1L,KAAKgnB,aAEbhnB,MAAKilB,qBAAuBtC,EAEvBjX,GAAKA,EAAEia,iBACXja,EAAEia,mBAGJiC,yBAA0B,WACzB,GAAIlc,GAAI1L,KAAKgnB,aAEbhnB,MAAK0lB,8BAAgC/C,EAEhCjX,GAAKA,EAAEkc,0BACXlc,EAAEkc,2BAGH5nB,KAAK2lB,oBAMP9kB,EAAOyB,MACNulB,WAAY,YACZC,WAAY,WACZC,aAAc,cACdC,aAAc,cACZ,SAAUC,EAAM5C,GAClBxkB,EAAOkiB,MAAMO,QAAS2E,IACrBnE,aAAcuB,EACdtB,SAAUsB,EAEV1B,OAAQ,SAAUZ,GACjB,GAAI5gB,GACH0B,EAAS7D,KACTkoB,EAAUnF,EAAMoF,cAChB9E,EAAYN,EAAMM,SASnB,SALM6E,GAAYA,IAAYrkB,IAAWhD,EAAOwH,SAAUxE,EAAQqkB,MACjEnF,EAAMne,KAAOye,EAAUI,SACvBthB,EAAMkhB,EAAUvV,QAAQlL,MAAO5C,KAAM6C,WACrCkgB,EAAMne,KAAOygB,GAEPljB,MAOJxB,EAAQ2hB,gBACbzhB,EAAOyB,MAAO2R,MAAO,UAAWkT,KAAM,YAAc,SAAUc,EAAM5C,GAGnE,GAAIvX,GAAU,SAAUiV,GACtBliB,EAAOkiB,MAAMwE,SAAUlC,EAAKtC,EAAMlf,OAAQhD,EAAOkiB,MAAMsC,IAAKtC,IAAS,GAGvEliB,GAAOkiB,MAAMO,QAAS+B,IACrBnB,MAAO,WACN,GAAIpV,GAAM9O,KAAKoM,eAAiBpM,KAC/BooB,EAAW/H,EAAUpB,OAAQnQ,EAAKuW,EAE7B+C,IACLtZ,EAAIG,iBAAkBgZ,EAAMna,GAAS,GAEtCuS,EAAUpB,OAAQnQ,EAAKuW,GAAO+C,GAAY,GAAM,IAEjD/D,SAAU,WACT,GAAIvV,GAAM9O,KAAKoM,eAAiBpM,KAC/BooB,EAAW/H,EAAUpB,OAAQnQ,EAAKuW,GAAQ,CAErC+C,GAKL/H,EAAUpB,OAAQnQ,EAAKuW,EAAK+C,IAJ5BtZ,EAAIgQ,oBAAqBmJ,EAAMna,GAAS,GACxCuS,EAAUjE,OAAQtN,EAAKuW,QAU5BxkB,EAAOG,GAAGsC,QAET+kB,GAAI,SAAUrF,EAAOliB,EAAUmb,EAAMjb,EAAiBsnB,GACrD,GAAIC,GAAQ3jB,CAGZ,IAAsB,gBAAVoe,GAAqB,CAEP,gBAAbliB,KAEXmb,EAAOA,GAAQnb,EACfA,EAAWoD,OAEZ,KAAMU,IAAQoe,GACbhjB,KAAKqoB,GAAIzjB,EAAM9D,EAAUmb,EAAM+G,EAAOpe,GAAQ0jB,EAE/C,OAAOtoB,MAmBR,GAhBa,MAARic,GAAsB,MAANjb,GAEpBA,EAAKF,EACLmb,EAAOnb,EAAWoD,QACD,MAANlD,IACc,gBAAbF,IAEXE,EAAKib,EACLA,EAAO/X,SAGPlD,EAAKib,EACLA,EAAOnb,EACPA,EAAWoD,SAGRlD,KAAO,EACXA,EAAK4hB,MACC,KAAM5hB,EACZ,MAAOhB,KAaR,OAVa,KAARsoB,IACJC,EAASvnB,EACTA,EAAK,SAAU+hB,GAGd,MADAliB,KAAS+d,IAAKmE,GACPwF,EAAO3lB,MAAO5C,KAAM6C,YAG5B7B,EAAGgG,KAAOuhB,EAAOvhB,OAAUuhB,EAAOvhB,KAAOnG,EAAOmG,SAE1ChH,KAAKsC,KAAM,WACjBzB,EAAOkiB,MAAMvI,IAAKxa,KAAMgjB,EAAOhiB,EAAIib,EAAMnb,MAG3CwnB,IAAK,SAAUtF,EAAOliB,EAAUmb,EAAMjb,GACrC,MAAOhB,MAAKqoB,GAAIrF,EAAOliB,EAAUmb,EAAMjb,EAAI,IAE5C4d,IAAK,SAAUoE,EAAOliB,EAAUE,GAC/B,GAAIqiB,GAAWze,CACf,IAAKoe,GAASA,EAAMkC,gBAAkBlC,EAAMK,UAQ3C,MANAA,GAAYL,EAAMK,UAClBxiB,EAAQmiB,EAAMuC,gBAAiB3G,IAC9ByE,EAAUW,UAAYX,EAAUI,SAAW,IAAMJ,EAAUW,UAAYX,EAAUI,SACjFJ,EAAUviB,SACVuiB,EAAUvV,SAEJ9N,IAER,IAAsB,gBAAVgjB,GAAqB,CAEhC,IAAMpe,IAAQoe,GACbhjB,KAAK4e,IAAKha,EAAM9D,EAAUkiB,EAAOpe,GAElC,OAAO5E,MAUR,OARKc,KAAa,GAA6B,kBAAbA,MAEjCE,EAAKF,EACLA,EAAWoD,QAEPlD,KAAO,IACXA,EAAK4hB,GAEC5iB,KAAKsC,KAAK,WAChBzB,EAAOkiB,MAAM3G,OAAQpc,KAAMgjB,EAAOhiB,EAAIF,MAIxCyjB,QAAS,SAAU3f,EAAMqX,GACxB,MAAOjc,MAAKsC,KAAK,WAChBzB,EAAOkiB,MAAMwB,QAAS3f,EAAMqX,EAAMjc,SAGpC2e,eAAgB,SAAU/Z,EAAMqX,GAC/B,GAAIvZ,GAAO1C,KAAK,EAChB,OAAK0C,GACG7B,EAAOkiB,MAAMwB,QAAS3f,EAAMqX,EAAMvZ,GAAM,GADhD,SAOF,IACC8lB,IAAY,0EACZC,GAAW,YACXC,GAAQ,YACRC,GAAe,0BAEfC,GAAW,oCACXC,GAAc,4BACdC,GAAoB,cACpBC,GAAe,2CAGfC,IAGCC,QAAU,EAAG,+BAAgC,aAE7CC,OAAS,EAAG,UAAW,YACvBC,KAAO,EAAG,oBAAqB,uBAC/BC,IAAM,EAAG,iBAAkB,oBAC3BC,IAAM,EAAG,qBAAsB,yBAE/BjE,UAAY,EAAG,GAAI,IAIrB4D,IAAQM,SAAWN,GAAQC,OAE3BD,GAAQO,MAAQP,GAAQQ,MAAQR,GAAQS,SAAWT,GAAQU,QAAUV,GAAQE,MAC7EF,GAAQW,GAAKX,GAAQK,EAIrB,SAASO,IAAoBlnB,EAAMmnB,GAClC,MAAOhpB,GAAOoF,SAAUvD,EAAM,UAC7B7B,EAAOoF,SAA+B,KAArB4jB,EAAQ5kB,SAAkB4kB,EAAUA,EAAQtY,WAAY,MAEzE7O,EAAK8J,qBAAqB,SAAS,IAClC9J,EAAKkD,YAAalD,EAAK0J,cAAc3G,cAAc,UACpD/C,EAIF,QAASonB,IAAepnB,GAEvB,MADAA,GAAKkC,MAAsC,OAA9BlC,EAAKkK,aAAa,SAAoB,IAAMlK,EAAKkC,KACvDlC,EAER,QAASqnB,IAAernB,GACvB,GAAImJ,GAAQid,GAAkBzc,KAAM3J,EAAKkC,KAQzC,OANKiH,GACJnJ,EAAKkC,KAAOiH,EAAO,GAEnBnJ,EAAKyK,gBAAgB,QAGfzK,EAIR,QAASsnB,IAAe9nB,EAAO+nB,GAI9B,IAHA,GAAItnB,GAAI,EACPwX,EAAIjY,EAAMN,OAECuY,EAAJxX,EAAOA,IACd0d,EAAUN,IACT7d,EAAOS,GAAK,cAAesnB,GAAe5J,EAAUte,IAAKkoB,EAAatnB,GAAK,eAK9E,QAASunB,IAAgBzmB,EAAK0mB,GAC7B,GAAIxnB,GAAGwX,EAAGvV,EAAMwlB,EAAUC,EAAUC,EAAUC,EAAUpH,CAExD,IAAuB,IAAlBgH,EAAKllB,SAAV,CAKA,GAAKob,EAAUF,QAAS1c,KACvB2mB,EAAW/J,EAAUpB,OAAQxb,GAC7B4mB,EAAWhK,EAAUN,IAAKoK,EAAMC,GAChCjH,EAASiH,EAASjH,QAEJ,OACNkH,GAAS1G,OAChB0G,EAASlH,SAET,KAAMve,IAAQue,GACb,IAAMxgB,EAAI,EAAGwX,EAAIgJ,EAAQve,GAAOhD,OAAYuY,EAAJxX,EAAOA,IAC9C9B,EAAOkiB,MAAMvI,IAAK2P,EAAMvlB,EAAMue,EAAQve,GAAQjC,IAO7C2d,EAAUH,QAAS1c,KACvB6mB,EAAWhK,EAAUrB,OAAQxb,GAC7B8mB,EAAW1pB,EAAOyC,UAAYgnB,GAE9BhK,EAAUP,IAAKoK,EAAMI,KAIvB,QAASC,IAAQzpB,EAAS4O,GACzB,GAAIxN,GAAMpB,EAAQyL,qBAAuBzL,EAAQyL,qBAAsBmD,GAAO,KAC5E5O,EAAQkM,iBAAmBlM,EAAQkM,iBAAkB0C,GAAO,OAG9D,OAAezL,UAARyL,GAAqBA,GAAO9O,EAAOoF,SAAUlF,EAAS4O,GAC5D9O,EAAOuB,OAASrB,GAAWoB,GAC3BA,EAIF,QAASsoB,IAAUhnB,EAAK0mB,GACvB,GAAIlkB,GAAWkkB,EAAKlkB,SAASC,aAGX,WAAbD,GAAwB8b,EAAepV,KAAMlJ,EAAImB,MACrDulB,EAAK3V,QAAU/Q,EAAI+Q,SAGK,UAAbvO,GAAqC,aAAbA,KACnCkkB,EAAKxR,aAAelV,EAAIkV,cAI1B9X,EAAOyC,QACNM,MAAO,SAAUlB,EAAMgoB,EAAeC,GACrC,GAAIhoB,GAAGwX,EAAGyQ,EAAaC,EACtBjnB,EAAQlB,EAAKyf,WAAW,GACxB2I,EAASjqB,EAAOwH,SAAU3F,EAAK0J,cAAe1J,EAG/C,MAAM/B,EAAQyhB,gBAAsC,IAAlB1f,EAAKuC,UAAoC,KAAlBvC,EAAKuC,UAC3DpE,EAAOgY,SAAUnW,IAMnB,IAHAmoB,EAAeL,GAAQ5mB,GACvBgnB,EAAcJ,GAAQ9nB,GAEhBC,EAAI,EAAGwX,EAAIyQ,EAAYhpB,OAAYuY,EAAJxX,EAAOA,IAC3C8nB,GAAUG,EAAajoB,GAAKkoB,EAAcloB,GAK5C,IAAK+nB,EACJ,GAAKC,EAIJ,IAHAC,EAAcA,GAAeJ,GAAQ9nB,GACrCmoB,EAAeA,GAAgBL,GAAQ5mB,GAEjCjB,EAAI,EAAGwX,EAAIyQ,EAAYhpB,OAAYuY,EAAJxX,EAAOA,IAC3CunB,GAAgBU,EAAajoB,GAAKkoB,EAAcloB,QAGjDunB,IAAgBxnB,EAAMkB,EAWxB,OANAinB,GAAeL,GAAQ5mB,EAAO,UACzBinB,EAAajpB,OAAS,GAC1BooB,GAAea,GAAeC,GAAUN,GAAQ9nB,EAAM,WAIhDkB,GAGRmnB,cAAe,SAAU7oB,EAAOnB,EAASiqB,EAASC,GAOjD,IANA,GAAIvoB,GAAMwE,EAAKyI,EAAKub,EAAM7iB,EAAUnF,EACnC8e,EAAWjhB,EAAQkhB,yBACnBkJ,KACAxoB,EAAI,EACJwX,EAAIjY,EAAMN,OAECuY,EAAJxX,EAAOA,IAGd,GAFAD,EAAOR,EAAOS,GAETD,GAAiB,IAATA,EAGZ,GAA6B,WAAxB7B,EAAO+D,KAAMlC,GAGjB7B,EAAOuB,MAAO+oB,EAAOzoB,EAAKuC,UAAavC,GAASA,OAG1C,IAAMgmB,GAAM/b,KAAMjK,GAIlB,CACNwE,EAAMA,GAAO8a,EAASpc,YAAa7E,EAAQ0E,cAAc,QAGzDkK,GAAQ8Y,GAASpc,KAAM3J,KAAY,GAAI,KAAQ,GAAIwD,cACnDglB,EAAOlC,GAASrZ,IAASqZ,GAAQ5D,SACjCle,EAAI0I,UAAYsb,EAAM,GAAMxoB,EAAK4B,QAASkkB,GAAW,aAAgB0C,EAAM,GAG3EhoB,EAAIgoB,EAAM,EACV,OAAQhoB,IACPgE,EAAMA,EAAIgM,SAKXrS,GAAOuB,MAAO+oB,EAAOjkB,EAAIuE,YAGzBvE,EAAM8a,EAASzQ,WAGfrK,EAAIoK,YAAc,OAzBlB6Z,GAAM9qB,KAAMU,EAAQqqB,eAAgB1oB,GA+BvCsf,GAAS1Q,YAAc,GAEvB3O,EAAI,CACJ,OAASD,EAAOyoB,EAAOxoB,KAItB,KAAKsoB,GAAmD,KAAtCpqB,EAAO2F,QAAS9D,EAAMuoB,MAIxC5iB,EAAWxH,EAAOwH,SAAU3F,EAAK0J,cAAe1J,GAGhDwE,EAAMsjB,GAAQxI,EAASpc,YAAalD,GAAQ,UAGvC2F,GACJ2hB,GAAe9iB,GAIX8jB,GAAU,CACd9nB,EAAI,CACJ,OAASR,EAAOwE,EAAKhE,KACf2lB,GAAYlc,KAAMjK,EAAKkC,MAAQ,KACnComB,EAAQ3qB,KAAMqC,GAMlB,MAAOsf,IAGRqJ,UAAW,SAAUnpB,GAKpB,IAJA,GAAI+Z,GAAMvZ,EAAMkC,EAAM0I,EACrBgW,EAAUziB,EAAOkiB,MAAMO,QACvB3gB,EAAI,EAE2BuB,UAAvBxB,EAAOR,EAAOS,IAAoBA,IAAM,CAChD,GAAK9B,EAAOye,WAAY5c,KACvB4K,EAAM5K,EAAM2d,EAAUlc,SAEjBmJ,IAAQ2O,EAAOoE,EAAUhT,MAAOC,KAAS,CAC7C,GAAK2O,EAAKkH,OACT,IAAMve,IAAQqX,GAAKkH,OACbG,EAAS1e,GACb/D,EAAOkiB,MAAM3G,OAAQ1Z,EAAMkC,GAI3B/D,EAAOyjB,YAAa5hB,EAAMkC,EAAMqX,EAAK0H,OAInCtD,GAAUhT,MAAOC,UAEd+S,GAAUhT,MAAOC,SAKpBgT,GAAUjT,MAAO3K,EAAM4d,EAAUnc,cAK3CtD,EAAOG,GAAGsC,QACToC,KAAM,SAAUS,GACf,MAAO8Y,GAAQjf,KAAM,SAAUmG,GAC9B,MAAiBjC,UAAViC,EACNtF,EAAO6E,KAAM1F,MACbA,KAAK2U,QAAQrS,KAAK,YACM,IAAlBtC,KAAKiF,UAAoC,KAAlBjF,KAAKiF,UAAqC,IAAlBjF,KAAKiF,YACxDjF,KAAKsR,YAAcnL,MAGpB,KAAMA,EAAOtD,UAAUjB,SAG3B0pB,OAAQ,WACP,MAAOtrB,MAAKurB,SAAU1oB,UAAW,SAAUH,GAC1C,GAAuB,IAAlB1C,KAAKiF,UAAoC,KAAlBjF,KAAKiF,UAAqC,IAAlBjF,KAAKiF,SAAiB,CACzE,GAAIpB,GAAS+lB,GAAoB5pB,KAAM0C,EACvCmB,GAAO+B,YAAalD,OAKvB8oB,QAAS,WACR,MAAOxrB,MAAKurB,SAAU1oB,UAAW,SAAUH,GAC1C,GAAuB,IAAlB1C,KAAKiF,UAAoC,KAAlBjF,KAAKiF,UAAqC,IAAlBjF,KAAKiF,SAAiB,CACzE,GAAIpB,GAAS+lB,GAAoB5pB,KAAM0C,EACvCmB,GAAO4nB,aAAc/oB,EAAMmB,EAAO0N,gBAKrCma,OAAQ,WACP,MAAO1rB,MAAKurB,SAAU1oB,UAAW,SAAUH,GACrC1C,KAAK6F,YACT7F,KAAK6F,WAAW4lB,aAAc/oB,EAAM1C,SAKvC2rB,MAAO,WACN,MAAO3rB,MAAKurB,SAAU1oB,UAAW,SAAUH,GACrC1C,KAAK6F,YACT7F,KAAK6F,WAAW4lB,aAAc/oB,EAAM1C,KAAKoO,gBAK5CgO,OAAQ,SAAUtb,EAAU8qB,GAK3B,IAJA,GAAIlpB,GACHR,EAAQpB,EAAWD,EAAO2O,OAAQ1O,EAAUd,MAASA,KACrD2C,EAAI,EAEwB,OAApBD,EAAOR,EAAMS,IAAaA,IAC5BipB,GAA8B,IAAlBlpB,EAAKuC,UACtBpE,EAAOwqB,UAAWb,GAAQ9nB,IAGtBA,EAAKmD,aACJ+lB,GAAY/qB,EAAOwH,SAAU3F,EAAK0J,cAAe1J,IACrDsnB,GAAeQ,GAAQ9nB,EAAM,WAE9BA,EAAKmD,WAAWC,YAAapD,GAI/B,OAAO1C,OAGR2U,MAAO,WAIN,IAHA,GAAIjS,GACHC,EAAI,EAEuB,OAAnBD,EAAO1C,KAAK2C,IAAaA,IACV,IAAlBD,EAAKuC,WAGTpE,EAAOwqB,UAAWb,GAAQ9nB,GAAM,IAGhCA,EAAK4O,YAAc,GAIrB,OAAOtR,OAGR4D,MAAO,SAAU8mB,EAAeC,GAI/B,MAHAD,GAAiC,MAAjBA,GAAwB,EAAQA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzD3qB,KAAKyC,IAAI,WACf,MAAO5B,GAAO+C,MAAO5D,KAAM0qB,EAAeC,MAI5CkB,KAAM,SAAU1lB,GACf,MAAO8Y,GAAQjf,KAAM,SAAUmG,GAC9B,GAAIzD,GAAO1C,KAAM,OAChB2C,EAAI,EACJwX,EAAIna,KAAK4B,MAEV,IAAesC,SAAViC,GAAyC,IAAlBzD,EAAKuC,SAChC,MAAOvC,GAAKkN,SAIb,IAAsB,gBAAVzJ,KAAuBwiB,GAAahc,KAAMxG,KACpD6iB,IAAWP,GAASpc,KAAMlG,KAAa,GAAI,KAAQ,GAAID,eAAkB,CAE1EC,EAAQA,EAAM7B,QAASkkB,GAAW,YAElC,KACC,KAAYrO,EAAJxX,EAAOA,IACdD,EAAO1C,KAAM2C,OAGU,IAAlBD,EAAKuC,WACTpE,EAAOwqB,UAAWb,GAAQ9nB,GAAM,IAChCA,EAAKkN,UAAYzJ,EAInBzD,GAAO,EAGN,MAAOgJ,KAGLhJ,GACJ1C,KAAK2U,QAAQ2W,OAAQnlB,IAEpB,KAAMA,EAAOtD,UAAUjB,SAG3BkqB,YAAa,WACZ,GAAI/kB,GAAMlE,UAAW,EAcrB,OAXA7C,MAAKurB,SAAU1oB,UAAW,SAAUH,GACnCqE,EAAM/G,KAAK6F,WAEXhF,EAAOwqB,UAAWb,GAAQxqB,OAErB+G,GACJA,EAAIglB,aAAcrpB,EAAM1C,QAKnB+G,IAAQA,EAAInF,QAAUmF,EAAI9B,UAAYjF,KAAOA,KAAKoc,UAG1D4P,OAAQ,SAAUlrB,GACjB,MAAOd,MAAKoc,OAAQtb,GAAU,IAG/ByqB,SAAU,SAAU/oB,EAAMD,GAGzBC,EAAOpC,EAAOwC,SAAWJ,EAEzB,IAAIwf,GAAUlf,EAAOkoB,EAASiB,EAAYtd,EAAMG,EAC/CnM,EAAI,EACJwX,EAAIna,KAAK4B,OACTme,EAAM/f,KACNksB,EAAW/R,EAAI,EACfhU,EAAQ3D,EAAM,GACduB,EAAalD,EAAOkD,WAAYoC,EAGjC,IAAKpC,GACDoW,EAAI,GAAsB,gBAAVhU,KAChBxF,EAAQuhB,YAAc0G,GAASjc,KAAMxG,GACxC,MAAOnG,MAAKsC,KAAK,SAAUgY,GAC1B,GAAInB,GAAO4G,EAAIhd,GAAIuX,EACdvW,KACJvB,EAAM,GAAM2D,EAAMrE,KAAM9B,KAAMsa,EAAOnB,EAAK0S,SAE3C1S,EAAKoS,SAAU/oB,EAAMD,IAIvB,IAAK4X,IACJ6H,EAAWnhB,EAAOkqB,cAAevoB,EAAMxC,KAAM,GAAIoM,eAAe,EAAOpM,MACvE8C,EAAQkf,EAASzQ,WAEmB,IAA/ByQ,EAASvW,WAAW7J,SACxBogB,EAAWlf,GAGPA,GAAQ,CAMZ,IALAkoB,EAAUnqB,EAAO4B,IAAK+nB,GAAQxI,EAAU,UAAY8H,IACpDmC,EAAajB,EAAQppB,OAITuY,EAAJxX,EAAOA,IACdgM,EAAOqT,EAEFrf,IAAMupB,IACVvd,EAAO9N,EAAO+C,MAAO+K,GAAM,GAAM,GAG5Bsd,GAGJprB,EAAOuB,MAAO4oB,EAASR,GAAQ7b,EAAM,YAIvCpM,EAAST,KAAM9B,KAAM2C,GAAKgM,EAAMhM,EAGjC,IAAKspB,EAOJ,IANAnd,EAAMkc,EAASA,EAAQppB,OAAS,GAAIwK,cAGpCvL,EAAO4B,IAAKuoB,EAASjB,IAGfpnB,EAAI,EAAOspB,EAAJtpB,EAAgBA,IAC5BgM,EAAOqc,EAASroB,GACXkmB,GAAYlc,KAAMgC,EAAK/J,MAAQ,MAClCyb,EAAUpB,OAAQtQ,EAAM,eAAkB9N,EAAOwH,SAAUyG,EAAKH,KAE5DA,EAAKlL,IAEJ5C,EAAOsrB,UACXtrB,EAAOsrB,SAAUxd,EAAKlL,KAGvB5C,EAAOsE,WAAYwJ,EAAK2C,YAAYhN,QAASykB,GAAc,MAQjE,MAAO/oB,SAITa,EAAOyB,MACN8pB,SAAU,SACVC,UAAW,UACXZ,aAAc,SACda,YAAa,QACbC,WAAY,eACV,SAAU/oB,EAAMyiB,GAClBplB,EAAOG,GAAIwC,GAAS,SAAU1C,GAO7B,IANA,GAAIoB,GACHC,KACAqqB,EAAS3rB,EAAQC,GACjBkC,EAAOwpB,EAAO5qB,OAAS,EACvBe,EAAI,EAEQK,GAALL,EAAWA,IAClBT,EAAQS,IAAMK,EAAOhD,KAAOA,KAAK4D,OAAO,GACxC/C,EAAQ2rB,EAAQ7pB,IAAOsjB,GAAY/jB,GAInC7B,EAAKuC,MAAOT,EAAKD,EAAMH,MAGxB,OAAO/B,MAAKiC,UAAWE,KAKzB,IAAIsqB,IACHC,KAQD,SAASC,IAAenpB,EAAMsL,GAC7B,GAAI8d,GACHlqB,EAAO7B,EAAQiO,EAAIrJ,cAAejC,IAAS4oB,SAAUtd,EAAIyX,MAGzDsG,EAAU9sB,EAAO+sB,0BAA6BF,EAAQ7sB,EAAO+sB,wBAAyBpqB,EAAM,KAI3FkqB,EAAMC,QAAUhsB,EAAOihB,IAAKpf,EAAM,GAAK,UAMzC,OAFAA,GAAKspB,SAEEa,EAOR,QAASE,IAAgB9mB,GACxB,GAAI6I,GAAMlP,EACTitB,EAAUH,GAAazmB,EA0BxB,OAxBM4mB,KACLA,EAAUF,GAAe1mB,EAAU6I,GAGlB,SAAZ+d,GAAuBA,IAG3BJ,IAAUA,IAAU5rB,EAAQ,mDAAoDurB,SAAUtd,EAAIJ,iBAG9FI,EAAM2d,GAAQ,GAAIzR,gBAGlBlM,EAAIke,QACJle,EAAIme,QAEJJ,EAAUF,GAAe1mB,EAAU6I,GACnC2d,GAAOT,UAIRU,GAAazmB,GAAa4mB,GAGpBA,EAER,GAAIK,IAAU,UAEVC,GAAY,GAAIxjB,QAAQ,KAAO8X,EAAO,kBAAmB,KAEzD2L,GAAY,SAAU1qB,GAIxB,MAAKA,GAAK0J,cAAc2C,YAAYse,OAC5B3qB,EAAK0J,cAAc2C,YAAYue,iBAAkB5qB,EAAM,MAGxD3C,EAAOutB,iBAAkB5qB,EAAM,MAKxC,SAAS6qB,IAAQ7qB,EAAMc,EAAMgqB,GAC5B,GAAIC,GAAOC,EAAUC,EAAUxrB,EAC9ByqB,EAAQlqB,EAAKkqB,KAsCd,OApCAY,GAAWA,GAAYJ,GAAW1qB,GAI7B8qB,IACJrrB,EAAMqrB,EAASI,iBAAkBpqB,IAAUgqB,EAAUhqB,IAGjDgqB,IAES,KAARrrB,GAAetB,EAAOwH,SAAU3F,EAAK0J,cAAe1J,KACxDP,EAAMtB,EAAO+rB,MAAOlqB,EAAMc,IAOtB2pB,GAAUxgB,KAAMxK,IAAS+qB,GAAQvgB,KAAMnJ,KAG3CiqB,EAAQb,EAAMa,MACdC,EAAWd,EAAMc,SACjBC,EAAWf,EAAMe,SAGjBf,EAAMc,SAAWd,EAAMe,SAAWf,EAAMa,MAAQtrB,EAChDA,EAAMqrB,EAASC,MAGfb,EAAMa,MAAQA,EACdb,EAAMc,SAAWA,EACjBd,EAAMe,SAAWA,IAIJzpB,SAAR/B,EAGNA,EAAM,GACNA,EAIF,QAAS0rB,IAAcC,EAAaC,GAEnC,OACChsB,IAAK,WACJ,MAAK+rB,gBAGG9tB,MAAK+B,KAKL/B,KAAK+B,IAAMgsB,GAAQnrB,MAAO5C,KAAM6C,cAM3C,WACC,GAAImrB,GAAkBC,EACrBhmB,EAAUrI,EAAS8O,gBACnBwf,EAAYtuB,EAAS6F,cAAe,OACpCkI,EAAM/N,EAAS6F,cAAe,MAE/B,IAAMkI,EAAIif,MAAV,CAMAjf,EAAIif,MAAMuB,eAAiB,cAC3BxgB,EAAIwU,WAAW,GAAOyK,MAAMuB,eAAiB,GAC7CxtB,EAAQytB,gBAA+C,gBAA7BzgB,EAAIif,MAAMuB,eAEpCD,EAAUtB,MAAMyB,QAAU,gFAE1BH,EAAUtoB,YAAa+H,EAIvB,SAAS2gB,KACR3gB,EAAIif,MAAMyB,QAGT,uKAGD1gB,EAAIiC,UAAY,GAChB3H,EAAQrC,YAAasoB,EAErB,IAAIK,GAAWxuB,EAAOutB,iBAAkB3f,EAAK,KAC7CqgB,GAAoC,OAAjBO,EAASvf,IAC5Bif,EAA0C,QAAnBM,EAASd,MAEhCxlB,EAAQnC,YAAaooB,GAKjBnuB,EAAOutB,kBACXzsB,EAAOyC,OAAQ3C,GACd6tB,cAAe,WAMd,MADAF,KACON,GAERS,kBAAmB,WAIlB,MAH6B,OAAxBR,GACJK,IAEML,GAERS,oBAAqB,WAOpB,GAAIvsB,GACHwsB,EAAYhhB,EAAI/H,YAAahG,EAAS6F,cAAe,OAiBtD,OAdAkpB,GAAU/B,MAAMyB,QAAU1gB,EAAIif,MAAMyB,QAGnC,8HAEDM,EAAU/B,MAAMgC,YAAcD,EAAU/B,MAAMa,MAAQ,IACtD9f,EAAIif,MAAMa,MAAQ,MAClBxlB,EAAQrC,YAAasoB,GAErB/rB,GAAO6C,WAAYjF,EAAOutB,iBAAkBqB,EAAW,MAAOC,aAE9D3mB,EAAQnC,YAAaooB,GACrBvgB,EAAI7H,YAAa6oB,GAEVxsB,SAQXtB,EAAOguB,KAAO,SAAUnsB,EAAMa,EAAShB,EAAUC,GAChD,GAAIL,GAAKqB,EACRwI,IAGD,KAAMxI,IAAQD,GACbyI,EAAKxI,GAASd,EAAKkqB,MAAOppB,GAC1Bd,EAAKkqB,MAAOppB,GAASD,EAASC,EAG/BrB,GAAMI,EAASK,MAAOF,EAAMF,MAG5B,KAAMgB,IAAQD,GACbb,EAAKkqB,MAAOppB,GAASwI,EAAKxI,EAG3B,OAAOrB,GAIR,IAGC2sB,IAAe,4BACfC,GAAY,GAAIplB,QAAQ,KAAO8X,EAAO,SAAU,KAChDuN,GAAU,GAAIrlB,QAAQ,YAAc8X,EAAO,IAAK,KAEhDwN,IAAYC,SAAU,WAAYC,WAAY,SAAUtC,QAAS,SACjEuC,IACCC,cAAe,IACfC,WAAY,OAGbC,IAAgB,SAAU,IAAK,MAAO,KAGvC,SAASC,IAAgB5C,EAAOppB,GAG/B,GAAKA,IAAQopB,GACZ,MAAOppB,EAIR,IAAIisB,GAAUjsB,EAAK,GAAGhC,cAAgBgC,EAAKrD,MAAM,GAChDuvB,EAAWlsB,EACXb,EAAI4sB,GAAY3tB,MAEjB,OAAQe,IAEP,GADAa,EAAO+rB,GAAa5sB,GAAM8sB,EACrBjsB,IAAQopB,GACZ,MAAOppB,EAIT,OAAOksB,GAGR,QAASC,IAAmBjtB,EAAMyD,EAAOypB,GACxC,GAAI/oB,GAAUkoB,GAAU1iB,KAAMlG,EAC9B,OAAOU,GAENzC,KAAKyrB,IAAK,EAAGhpB,EAAS,IAAQ+oB,GAAY,KAAU/oB,EAAS,IAAO,MACpEV,EAGF,QAAS2pB,IAAsBptB,EAAMc,EAAMusB,EAAOC,EAAaC,GAS9D,IARA,GAAIttB,GAAIotB,KAAYC,EAAc,SAAW,WAE5C,EAES,UAATxsB,EAAmB,EAAI,EAEvBwN,EAAM,EAEK,EAAJrO,EAAOA,GAAK,EAEJ,WAAVotB,IACJ/e,GAAOnQ,EAAOihB,IAAKpf,EAAMqtB,EAAQpO,EAAWhf,IAAK,EAAMstB,IAGnDD,GAEW,YAAVD,IACJ/e,GAAOnQ,EAAOihB,IAAKpf,EAAM,UAAYif,EAAWhf,IAAK,EAAMstB,IAI7C,WAAVF,IACJ/e,GAAOnQ,EAAOihB,IAAKpf,EAAM,SAAWif,EAAWhf,GAAM,SAAS,EAAMstB,MAIrEjf,GAAOnQ,EAAOihB,IAAKpf,EAAM,UAAYif,EAAWhf,IAAK,EAAMstB,GAG5C,YAAVF,IACJ/e,GAAOnQ,EAAOihB,IAAKpf,EAAM,SAAWif,EAAWhf,GAAM,SAAS,EAAMstB,IAKvE,OAAOjf,GAGR,QAASkf,IAAkBxtB,EAAMc,EAAMusB,GAGtC,GAAII,IAAmB,EACtBnf,EAAe,UAATxN,EAAmBd,EAAK0tB,YAAc1tB,EAAK2tB,aACjDJ,EAAS7C,GAAW1qB,GACpBstB,EAAiE,eAAnDnvB,EAAOihB,IAAKpf,EAAM,aAAa,EAAOutB,EAKrD,IAAY,GAAPjf,GAAmB,MAAPA,EAAc,CAQ9B,GANAA,EAAMuc,GAAQ7qB,EAAMc,EAAMysB,IACf,EAANjf,GAAkB,MAAPA,KACfA,EAAMtO,EAAKkqB,MAAOppB,IAId2pB,GAAUxgB,KAAKqE,GACnB,MAAOA,EAKRmf,GAAmBH,IAChBrvB,EAAQ8tB,qBAAuBzd,IAAQtO,EAAKkqB,MAAOppB,IAGtDwN,EAAMhM,WAAYgM,IAAS,EAI5B,MAASA,GACR8e,GACCptB,EACAc,EACAusB,IAAWC,EAAc,SAAW,WACpCG,EACAF,GAEE,KAGL,QAASK,IAAUxf,EAAUyf,GAM5B,IALA,GAAI1D,GAASnqB,EAAM8tB,EAClBxS,KACA1D,EAAQ,EACR1Y,EAASkP,EAASlP,OAEHA,EAAR0Y,EAAgBA,IACvB5X,EAAOoO,EAAUwJ,GACX5X,EAAKkqB,QAIX5O,EAAQ1D,GAAU+F,EAAUte,IAAKW,EAAM,cACvCmqB,EAAUnqB,EAAKkqB,MAAMC,QAChB0D,GAGEvS,EAAQ1D,IAAuB,SAAZuS,IACxBnqB,EAAKkqB,MAAMC,QAAU,IAMM,KAAvBnqB,EAAKkqB,MAAMC,SAAkBjL,EAAUlf,KAC3Csb,EAAQ1D,GAAU+F,EAAUpB,OAAQvc,EAAM,aAAcqqB,GAAerqB,EAAKuD,cAG7EuqB,EAAS5O,EAAUlf,GAEF,SAAZmqB,GAAuB2D,GAC3BnQ,EAAUN,IAAKrd,EAAM,aAAc8tB,EAAS3D,EAAUhsB,EAAOihB,IAAKpf,EAAM,aAO3E,KAAM4X,EAAQ,EAAW1Y,EAAR0Y,EAAgBA,IAChC5X,EAAOoO,EAAUwJ,GACX5X,EAAKkqB,QAGL2D,GAA+B,SAAvB7tB,EAAKkqB,MAAMC,SAA6C,KAAvBnqB,EAAKkqB,MAAMC,UACzDnqB,EAAKkqB,MAAMC,QAAU0D,EAAOvS,EAAQ1D,IAAW,GAAK,QAItD,OAAOxJ,GAGRjQ,EAAOyC,QAINmtB,UACCC,SACC3uB,IAAK,SAAUW,EAAM8qB,GACpB,GAAKA,EAAW,CAGf,GAAIrrB,GAAMorB,GAAQ7qB,EAAM,UACxB,OAAe,KAARP,EAAa,IAAMA,MAO9BwuB,WACCC,aAAe,EACfC,aAAe,EACfC,UAAY,EACZC,YAAc,EACdzB,YAAc,EACd0B,YAAc,EACdN,SAAW,EACXO,OAAS,EACTC,SAAW,EACXC,QAAU,EACVC,QAAU,EACVC,MAAQ,GAKTC,UACCC,QAAS,YAIV3E,MAAO,SAAUlqB,EAAMc,EAAM2C,EAAO4pB,GAGnC,GAAMrtB,GAA0B,IAAlBA,EAAKuC,UAAoC,IAAlBvC,EAAKuC,UAAmBvC,EAAKkqB,MAAlE,CAKA,GAAIzqB,GAAKyC,EAAMsc,EACdwO,EAAW7uB,EAAOkF,UAAWvC,GAC7BopB,EAAQlqB,EAAKkqB,KAQd,OANAppB,GAAO3C,EAAOywB,SAAU5B,KAAgB7uB,EAAOywB,SAAU5B,GAAaF,GAAgB5C,EAAO8C,IAG7FxO,EAAQrgB,EAAO4vB,SAAUjtB,IAAU3C,EAAO4vB,SAAUf,GAGrCxrB,SAAViC,EAiCC+a,GAAS,OAASA,IAAqDhd,UAA3C/B,EAAM+e,EAAMnf,IAAKW,GAAM,EAAOqtB,IACvD5tB,EAIDyqB,EAAOppB,IArCdoB,QAAcuB,GAGA,WAATvB,IAAsBzC,EAAM6sB,GAAQ3iB,KAAMlG,MAC9CA,GAAUhE,EAAI,GAAK,GAAMA,EAAI,GAAK6C,WAAYnE,EAAOihB,IAAKpf,EAAMc,IAEhEoB,EAAO,UAIM,MAATuB,GAAiBA,IAAUA,IAKlB,WAATvB,GAAsB/D,EAAO8vB,UAAWjB,KAC5CvpB,GAAS,MAKJxF,EAAQytB,iBAA6B,KAAVjoB,GAAiD,IAAjC3C,EAAKlD,QAAS,gBAC9DssB,EAAOppB,GAAS,WAIX0d,GAAW,OAASA,IAAwDhd,UAA7CiC,EAAQ+a,EAAMnB,IAAKrd,EAAMyD,EAAO4pB,MACpEnD,EAAOppB,GAAS2C,IAjBjB,UA+BF2b,IAAK,SAAUpf,EAAMc,EAAMusB,EAAOE,GACjC,GAAIjf,GAAKhP,EAAKkf,EACbwO,EAAW7uB,EAAOkF,UAAWvC,EAwB9B,OArBAA,GAAO3C,EAAOywB,SAAU5B,KAAgB7uB,EAAOywB,SAAU5B,GAAaF,GAAgB9sB,EAAKkqB,MAAO8C,IAGlGxO,EAAQrgB,EAAO4vB,SAAUjtB,IAAU3C,EAAO4vB,SAAUf,GAG/CxO,GAAS,OAASA,KACtBlQ,EAAMkQ,EAAMnf,IAAKW,GAAM,EAAMqtB,IAIjB7rB,SAAR8M,IACJA,EAAMuc,GAAQ7qB,EAAMc,EAAMysB,IAId,WAARjf,GAAoBxN,IAAQ4rB,MAChCpe,EAAMoe,GAAoB5rB,IAIZ,KAAVusB,GAAgBA,GACpB/tB,EAAMgD,WAAYgM,GACX+e,KAAU,GAAQlvB,EAAOkE,UAAW/C,GAAQA,GAAO,EAAIgP,GAExDA,KAITnQ,EAAOyB,MAAO,SAAU,SAAW,SAAUK,EAAGa,GAC/C3C,EAAO4vB,SAAUjtB,IAChBzB,IAAK,SAAUW,EAAM8qB,EAAUuC,GAC9B,MAAKvC,GAIGsB,GAAaniB,KAAM9L,EAAOihB,IAAKpf,EAAM,aAAsC,IAArBA,EAAK0tB,YACjEvvB,EAAOguB,KAAMnsB,EAAMusB,GAAS,WAC3B,MAAOiB,IAAkBxtB,EAAMc,EAAMusB,KAEtCG,GAAkBxtB,EAAMc,EAAMusB,GARhC,QAYDhQ,IAAK,SAAUrd,EAAMyD,EAAO4pB,GAC3B,GAAIE,GAASF,GAAS3C,GAAW1qB,EACjC,OAAOitB,IAAmBjtB,EAAMyD,EAAO4pB,EACtCD,GACCptB,EACAc,EACAusB,EACmD,eAAnDlvB,EAAOihB,IAAKpf,EAAM,aAAa,EAAOutB,GACtCA,GACG,OAORpvB,EAAO4vB,SAAS7B,YAAcf,GAAcltB,EAAQ+tB,oBACnD,SAAUhsB,EAAM8qB,GACf,MAAKA,GACG3sB,EAAOguB,KAAMnsB,GAAQmqB,QAAW,gBACtCU,IAAU7qB,EAAM,gBAFlB,SAQF7B,EAAOyB,MACNkvB,OAAQ,GACRC,QAAS,GACTC,OAAQ,SACN,SAAUC,EAAQC,GACpB/wB,EAAO4vB,SAAUkB,EAASC,IACzBC,OAAQ,SAAU1rB,GAOjB,IANA,GAAIxD,GAAI,EACPmvB,KAGAC,EAAyB,gBAAV5rB,GAAqBA,EAAMkB,MAAM,MAASlB,GAE9C,EAAJxD,EAAOA,IACdmvB,EAAUH,EAAShQ,EAAWhf,GAAMivB,GACnCG,EAAOpvB,IAAOovB,EAAOpvB,EAAI,IAAOovB,EAAO,EAGzC,OAAOD,KAIH5E,GAAQvgB,KAAMglB,KACnB9wB,EAAO4vB,SAAUkB,EAASC,GAAS7R,IAAM4P,MAI3C9uB,EAAOG,GAAGsC,QACTwe,IAAK,SAAUte,EAAM2C,GACpB,MAAO8Y,GAAQjf,KAAM,SAAU0C,EAAMc,EAAM2C,GAC1C,GAAI8pB,GAAQhtB,EACXR,KACAE,EAAI,CAEL,IAAK9B,EAAOoD,QAAST,GAAS,CAI7B,IAHAysB,EAAS7C,GAAW1qB,GACpBO,EAAMO,EAAK5B,OAECqB,EAAJN,EAASA,IAChBF,EAAKe,EAAMb,IAAQ9B,EAAOihB,IAAKpf,EAAMc,EAAMb,IAAK,EAAOstB,EAGxD,OAAOxtB,GAGR,MAAiByB,UAAViC,EACNtF,EAAO+rB,MAAOlqB,EAAMc,EAAM2C,GAC1BtF,EAAOihB,IAAKpf,EAAMc,IACjBA,EAAM2C,EAAOtD,UAAUjB,OAAS,IAEpC2uB,KAAM,WACL,MAAOD,IAAUtwB,MAAM,IAExBgyB,KAAM,WACL,MAAO1B,IAAUtwB,OAElBiyB,OAAQ,SAAUtV,GACjB,MAAsB,iBAAVA,GACJA,EAAQ3c,KAAKuwB,OAASvwB,KAAKgyB,OAG5BhyB,KAAKsC,KAAK,WACXsf,EAAU5hB,MACda,EAAQb,MAAOuwB,OAEf1vB,EAAQb,MAAOgyB,WAOnB,SAASE,IAAOxvB,EAAMa,EAASyc,EAAM7c,EAAKgvB,GACzC,MAAO,IAAID,IAAMzwB,UAAUR,KAAMyB,EAAMa,EAASyc,EAAM7c,EAAKgvB,GAE5DtxB,EAAOqxB,MAAQA,GAEfA,GAAMzwB,WACLE,YAAauwB,GACbjxB,KAAM,SAAUyB,EAAMa,EAASyc,EAAM7c,EAAKgvB,EAAQC,GACjDpyB,KAAK0C,KAAOA,EACZ1C,KAAKggB,KAAOA,EACZhgB,KAAKmyB,OAASA,GAAU,QACxBnyB,KAAKuD,QAAUA,EACfvD,KAAKgT,MAAQhT,KAAKmH,IAAMnH,KAAKiO,MAC7BjO,KAAKmD,IAAMA,EACXnD,KAAKoyB,KAAOA,IAAUvxB,EAAO8vB,UAAW3Q,GAAS,GAAK,OAEvD/R,IAAK,WACJ,GAAIiT,GAAQgR,GAAMG,UAAWryB,KAAKggB,KAElC,OAAOkB,IAASA,EAAMnf,IACrBmf,EAAMnf,IAAK/B,MACXkyB,GAAMG,UAAUjN,SAASrjB,IAAK/B,OAEhCsyB,IAAK,SAAUC,GACd,GAAIC,GACHtR,EAAQgR,GAAMG,UAAWryB,KAAKggB,KAoB/B,OAlBKhgB,MAAKuD,QAAQkvB,SACjBzyB,KAAKqa,IAAMmY,EAAQ3xB,EAAOsxB,OAAQnyB,KAAKmyB,QACtCI,EAASvyB,KAAKuD,QAAQkvB,SAAWF,EAAS,EAAG,EAAGvyB,KAAKuD,QAAQkvB,UAG9DzyB,KAAKqa,IAAMmY,EAAQD,EAEpBvyB,KAAKmH,KAAQnH,KAAKmD,IAAMnD,KAAKgT,OAAUwf,EAAQxyB,KAAKgT,MAE/ChT,KAAKuD,QAAQmvB,MACjB1yB,KAAKuD,QAAQmvB,KAAK5wB,KAAM9B,KAAK0C,KAAM1C,KAAKmH,IAAKnH,MAGzCkhB,GAASA,EAAMnB,IACnBmB,EAAMnB,IAAK/f,MAEXkyB,GAAMG,UAAUjN,SAASrF,IAAK/f,MAExBA,OAITkyB,GAAMzwB,UAAUR,KAAKQ,UAAYywB,GAAMzwB,UAEvCywB,GAAMG,WACLjN,UACCrjB,IAAK,SAAU4wB,GACd,GAAIngB,EAEJ,OAAiC,OAA5BmgB,EAAMjwB,KAAMiwB,EAAM3S,OACpB2S,EAAMjwB,KAAKkqB,OAA2C,MAAlC+F,EAAMjwB,KAAKkqB,MAAO+F,EAAM3S,OAQ/CxN,EAAS3R,EAAOihB,IAAK6Q,EAAMjwB,KAAMiwB,EAAM3S,KAAM,IAErCxN,GAAqB,SAAXA,EAAwBA,EAAJ,GAT9BmgB,EAAMjwB,KAAMiwB,EAAM3S,OAW3BD,IAAK,SAAU4S,GAIT9xB,EAAO+xB,GAAGF,KAAMC,EAAM3S,MAC1Bnf,EAAO+xB,GAAGF,KAAMC,EAAM3S,MAAQ2S,GACnBA,EAAMjwB,KAAKkqB,QAAgE,MAArD+F,EAAMjwB,KAAKkqB,MAAO/rB,EAAOywB,SAAUqB,EAAM3S,QAAoBnf,EAAO4vB,SAAUkC,EAAM3S,OACrHnf,EAAO+rB,MAAO+F,EAAMjwB,KAAMiwB,EAAM3S,KAAM2S,EAAMxrB,IAAMwrB,EAAMP,MAExDO,EAAMjwB,KAAMiwB,EAAM3S,MAAS2S,EAAMxrB,OAQrC+qB,GAAMG,UAAUvL,UAAYoL,GAAMG,UAAU3L,YAC3C3G,IAAK,SAAU4S,GACTA,EAAMjwB,KAAKuC,UAAY0tB,EAAMjwB,KAAKmD,aACtC8sB,EAAMjwB,KAAMiwB,EAAM3S,MAAS2S,EAAMxrB,OAKpCtG,EAAOsxB,QACNU,OAAQ,SAAUC,GACjB,MAAOA,IAERC,MAAO,SAAUD,GAChB,MAAO,GAAM1uB,KAAK4uB,IAAKF,EAAI1uB,KAAK6uB,IAAO,IAIzCpyB,EAAO+xB,GAAKV,GAAMzwB,UAAUR,KAG5BJ,EAAO+xB,GAAGF,OAKV,IACCQ,IAAOC,GACPC,GAAW,yBACXC,GAAS,GAAI1pB,QAAQ,iBAAmB8X,EAAO,cAAe,KAC9D6R,GAAO,cACPC,IAAwBC,IACxBC,IACCC,KAAO,SAAU1T,EAAM7Z,GACtB,GAAIwsB,GAAQ3yB,KAAK2zB,YAAa3T,EAAM7Z,GACnCtC,EAAS8uB,EAAM1kB,MACf8jB,EAAQsB,GAAOhnB,KAAMlG,GACrBisB,EAAOL,GAASA,EAAO,KAASlxB,EAAO8vB,UAAW3Q,GAAS,GAAK,MAGhEhN,GAAUnS,EAAO8vB,UAAW3Q,IAAmB,OAAToS,IAAkBvuB,IACvDwvB,GAAOhnB,KAAMxL,EAAOihB,IAAK6Q,EAAMjwB,KAAMsd,IACtC4T,EAAQ,EACRC,EAAgB,EAEjB,IAAK7gB,GAASA,EAAO,KAAQof,EAAO,CAEnCA,EAAOA,GAAQpf,EAAO,GAGtB+e,EAAQA,MAGR/e,GAASnP,GAAU,CAEnB,GAGC+vB,GAAQA,GAAS,KAGjB5gB,GAAgB4gB,EAChB/yB,EAAO+rB,MAAO+F,EAAMjwB,KAAMsd,EAAMhN,EAAQof,SAI/BwB,KAAWA,EAAQjB,EAAM1kB,MAAQpK,IAAqB,IAAV+vB,KAAiBC,GAaxE,MATK9B,KACJ/e,EAAQ2f,EAAM3f,OAASA,IAAUnP,GAAU,EAC3C8uB,EAAMP,KAAOA,EAEbO,EAAMxvB,IAAM4uB,EAAO,GAClB/e,GAAU+e,EAAO,GAAM,GAAMA,EAAO,IACnCA,EAAO,IAGHY,IAKV,SAASmB,MAIR,MAHA9U,YAAW,WACVkU,GAAQhvB,SAEAgvB,GAAQryB,EAAOsG,MAIzB,QAAS4sB,IAAOnvB,EAAMovB,GACrB,GAAI9N,GACHvjB,EAAI,EACJkL,GAAUomB,OAAQrvB,EAKnB,KADAovB,EAAeA,EAAe,EAAI,EACtB,EAAJrxB,EAAQA,GAAK,EAAIqxB,EACxB9N,EAAQvE,EAAWhf,GACnBkL,EAAO,SAAWqY,GAAUrY,EAAO,UAAYqY,GAAUthB,CAO1D,OAJKovB,KACJnmB,EAAM6iB,QAAU7iB,EAAM4f,MAAQ7oB,GAGxBiJ,EAGR,QAAS8lB,IAAaxtB,EAAO6Z,EAAMkU,GAKlC,IAJA,GAAIvB,GACHwB,GAAeV,GAAUzT,QAAe5f,OAAQqzB,GAAU,MAC1DnZ,EAAQ,EACR1Y,EAASuyB,EAAWvyB,OACLA,EAAR0Y,EAAgBA,IACvB,GAAMqY,EAAQwB,EAAY7Z,GAAQxY,KAAMoyB,EAAWlU,EAAM7Z,GAGxD,MAAOwsB,GAKV,QAASa,IAAkB9wB,EAAMojB,EAAOsO,GAEvC,GAAIpU,GAAM7Z,EAAO8rB,EAAQU,EAAOzR,EAAOmT,EAASxH,EAASyH,EACxDC,EAAOv0B,KACPioB,KACA2E,EAAQlqB,EAAKkqB,MACb4D,EAAS9tB,EAAKuC,UAAY2c,EAAUlf,GACpC8xB,EAAWnU,EAAUte,IAAKW,EAAM,SAG3B0xB,GAAKrT,QACVG,EAAQrgB,EAAOsgB,YAAaze,EAAM,MACX,MAAlBwe,EAAMuT,WACVvT,EAAMuT,SAAW,EACjBJ,EAAUnT,EAAMvM,MAAMqH,KACtBkF,EAAMvM,MAAMqH,KAAO,WACZkF,EAAMuT,UACXJ,MAIHnT,EAAMuT,WAENF,EAAK1X,OAAO,WAEX0X,EAAK1X,OAAO,WACXqE,EAAMuT,WACA5zB,EAAOkgB,MAAOre,EAAM,MAAOd,QAChCsf,EAAMvM,MAAMqH,YAOO,IAAlBtZ,EAAKuC,WAAoB,UAAY6gB,IAAS,SAAWA,MAK7DsO,EAAKM,UAAa9H,EAAM8H,SAAU9H,EAAM+H,UAAW/H,EAAMgI,WAIzD/H,EAAUhsB,EAAOihB,IAAKpf,EAAM,WAG5B4xB,EAA2B,SAAZzH,EACdxM,EAAUte,IAAKW,EAAM,eAAkBqqB,GAAgBrqB,EAAKuD,UAAa4mB,EAEpD,WAAjByH,GAA6D,SAAhCzzB,EAAOihB,IAAKpf,EAAM,WACnDkqB,EAAMC,QAAU,iBAIbuH,EAAKM,WACT9H,EAAM8H,SAAW,SACjBH,EAAK1X,OAAO,WACX+P,EAAM8H,SAAWN,EAAKM,SAAU,GAChC9H,EAAM+H,UAAYP,EAAKM,SAAU,GACjC9H,EAAMgI,UAAYR,EAAKM,SAAU,KAKnC,KAAM1U,IAAQ8F,GAEb,GADA3f,EAAQ2f,EAAO9F,GACVoT,GAAS/mB,KAAMlG,GAAU,CAG7B,SAFO2f,GAAO9F,GACdiS,EAASA,GAAoB,WAAV9rB,EACdA,KAAYqqB,EAAS,OAAS,QAAW,CAG7C,GAAe,SAAVrqB,IAAoBquB,GAAiCtwB,SAArBswB,EAAUxU,GAG9C,QAFAwQ,IAAS,EAKXvI,EAAMjI,GAASwU,GAAYA,EAAUxU,IAAUnf,EAAO+rB,MAAOlqB,EAAMsd,OAInE6M,GAAU3oB,MAIZ,IAAMrD,EAAOqE,cAAe+iB,GAyCqD,YAAxD,SAAZ4E,EAAqBE,GAAgBrqB,EAAKuD,UAAa4mB,KACnED,EAAMC,QAAUA,OA1CoB,CAC/B2H,EACC,UAAYA,KAChBhE,EAASgE,EAAShE,QAGnBgE,EAAWnU,EAAUpB,OAAQvc,EAAM,aAI/BuvB,IACJuC,EAAShE,QAAUA,GAEfA,EACJ3vB,EAAQ6B,GAAO6tB,OAEfgE,EAAK/rB,KAAK,WACT3H,EAAQ6B,GAAOsvB,SAGjBuC,EAAK/rB,KAAK,WACT,GAAIwX,EAEJK,GAAUjE,OAAQ1Z,EAAM,SACxB,KAAMsd,IAAQiI,GACbpnB,EAAO+rB,MAAOlqB,EAAMsd,EAAMiI,EAAMjI,KAGlC,KAAMA,IAAQiI,GACb0K,EAAQgB,GAAanD,EAASgE,EAAUxU,GAAS,EAAGA,EAAMuU,GAElDvU,IAAQwU,KACfA,EAAUxU,GAAS2S,EAAM3f,MACpBwd,IACJmC,EAAMxvB,IAAMwvB,EAAM3f,MAClB2f,EAAM3f,MAAiB,UAATgN,GAA6B,WAATA,EAAoB,EAAI,KAW/D,QAAS6U,IAAY/O,EAAOgP,GAC3B,GAAIxa,GAAO9W,EAAM2uB,EAAQhsB,EAAO+a,CAGhC,KAAM5G,IAASwL,GAed,GAdAtiB,EAAO3C,EAAOkF,UAAWuU,GACzB6X,EAAS2C,EAAetxB,GACxB2C,EAAQ2f,EAAOxL,GACVzZ,EAAOoD,QAASkC,KACpBgsB,EAAShsB,EAAO,GAChBA,EAAQ2f,EAAOxL,GAAUnU,EAAO,IAG5BmU,IAAU9W,IACdsiB,EAAOtiB,GAAS2C,QACT2f,GAAOxL,IAGf4G,EAAQrgB,EAAO4vB,SAAUjtB,GACpB0d,GAAS,UAAYA,GAAQ,CACjC/a,EAAQ+a,EAAM2Q,OAAQ1rB,SACf2f,GAAOtiB,EAId,KAAM8W,IAASnU,GACNmU,IAASwL,KAChBA,EAAOxL,GAAUnU,EAAOmU,GACxBwa,EAAexa,GAAU6X,OAI3B2C,GAAetxB,GAAS2uB,EAK3B,QAAS4C,IAAWryB,EAAMsyB,EAAYzxB,GACrC,GAAIiP,GACHyiB,EACA3a,EAAQ,EACR1Y,EAAS2xB,GAAoB3xB,OAC7Bkb,EAAWjc,EAAO2b,WAAWK,OAAQ,iBAE7BqY,GAAKxyB,OAEbwyB,EAAO,WACN,GAAKD,EACJ,OAAO,CAWR,KATA,GAAIE,GAAcjC,IAASY,KAC1BhW,EAAY1Z,KAAKyrB,IAAK,EAAGqE,EAAUkB,UAAYlB,EAAUzB,SAAW0C,GAGpEle,EAAO6G,EAAYoW,EAAUzB,UAAY,EACzCF,EAAU,EAAItb,EACdqD,EAAQ,EACR1Y,EAASsyB,EAAUmB,OAAOzzB,OAEXA,EAAR0Y,EAAiBA,IACxB4Z,EAAUmB,OAAQ/a,GAAQgY,IAAKC,EAKhC,OAFAzV,GAASoB,WAAYxb,GAAQwxB,EAAW3B,EAASzU,IAElC,EAAVyU,GAAe3wB,EACZkc,GAEPhB,EAASqB,YAAazb,GAAQwxB,KACvB,IAGTA,EAAYpX,EAASF,SACpBla,KAAMA,EACNojB,MAAOjlB,EAAOyC,UAAY0xB,GAC1BZ,KAAMvzB,EAAOyC,QAAQ,GAAQwxB,kBAAqBvxB,GAClD+xB,mBAAoBN,EACpBO,gBAAiBhyB,EACjB6xB,UAAWlC,IAASY,KACpBrB,SAAUlvB,EAAQkvB,SAClB4C,UACA1B,YAAa,SAAU3T,EAAM7c,GAC5B,GAAIwvB,GAAQ9xB,EAAOqxB,MAAOxvB,EAAMwxB,EAAUE,KAAMpU,EAAM7c,EACpD+wB,EAAUE,KAAKU,cAAe9U,IAAUkU,EAAUE,KAAKjC,OAEzD,OADA+B,GAAUmB,OAAOh1B,KAAMsyB,GAChBA,GAERvR,KAAM,SAAUoU,GACf,GAAIlb,GAAQ,EAGX1Y,EAAS4zB,EAAUtB,EAAUmB,OAAOzzB,OAAS,CAC9C,IAAKqzB,EACJ,MAAOj1B,KAGR,KADAi1B,GAAU,EACMrzB,EAAR0Y,EAAiBA,IACxB4Z,EAAUmB,OAAQ/a,GAAQgY,IAAK,EAShC,OALKkD,GACJ1Y,EAASqB,YAAazb,GAAQwxB,EAAWsB,IAEzC1Y,EAAS2Y,WAAY/yB,GAAQwxB,EAAWsB,IAElCx1B,QAGT8lB,EAAQoO,EAAUpO,KAInB,KAFA+O,GAAY/O,EAAOoO,EAAUE,KAAKU,eAElBlzB,EAAR0Y,EAAiBA,IAExB,GADA9H,EAAS+gB,GAAqBjZ,GAAQxY,KAAMoyB,EAAWxxB,EAAMojB,EAAOoO,EAAUE,MAE7E,MAAO5hB,EAmBT,OAfA3R,GAAO4B,IAAKqjB,EAAO6N,GAAaO,GAE3BrzB,EAAOkD,WAAYmwB,EAAUE,KAAKphB,QACtCkhB,EAAUE,KAAKphB,MAAMlR,KAAMY,EAAMwxB,GAGlCrzB,EAAO+xB,GAAG8C,MACT70B,EAAOyC,OAAQ4xB,GACdxyB,KAAMA,EACN6xB,KAAML,EACNnT,MAAOmT,EAAUE,KAAKrT,SAKjBmT,EAAU3W,SAAU2W,EAAUE,KAAK7W,UACxC/U,KAAM0rB,EAAUE,KAAK5rB,KAAM0rB,EAAUE,KAAKuB,UAC1C5Y,KAAMmX,EAAUE,KAAKrX,MACrBF,OAAQqX,EAAUE,KAAKvX,QAG1Bhc,EAAOk0B,UAAYl0B,EAAOyC,OAAQyxB,IAEjCa,QAAS,SAAU9P,EAAOvjB,GACpB1B,EAAOkD,WAAY+hB,IACvBvjB,EAAWujB,EACXA,GAAU,MAEVA,EAAQA,EAAMze,MAAM,IAOrB,KAJA,GAAI2Y,GACH1F,EAAQ,EACR1Y,EAASkkB,EAAMlkB,OAEAA,EAAR0Y,EAAiBA,IACxB0F,EAAO8F,EAAOxL,GACdmZ,GAAUzT,GAASyT,GAAUzT,OAC7ByT,GAAUzT,GAAOpP,QAASrO,IAI5BszB,UAAW,SAAUtzB,EAAUipB,GACzBA,EACJ+H,GAAoB3iB,QAASrO,GAE7BgxB,GAAoBlzB,KAAMkC,MAK7B1B,EAAOi1B,MAAQ,SAAUA,EAAO3D,EAAQnxB,GACvC,GAAI+0B,GAAMD,GAA0B,gBAAVA,GAAqBj1B,EAAOyC,UAAYwyB,IACjEH,SAAU30B,IAAOA,GAAMmxB,GACtBtxB,EAAOkD,WAAY+xB,IAAWA,EAC/BrD,SAAUqD,EACV3D,OAAQnxB,GAAMmxB,GAAUA,IAAWtxB,EAAOkD,WAAYouB,IAAYA,EAwBnE,OArBA4D,GAAItD,SAAW5xB,EAAO+xB,GAAGhU,IAAM,EAA4B,gBAAjBmX,GAAItD,SAAwBsD,EAAItD,SACzEsD,EAAItD,WAAY5xB,GAAO+xB,GAAGoD,OAASn1B,EAAO+xB,GAAGoD,OAAQD,EAAItD,UAAa5xB,EAAO+xB,GAAGoD,OAAO5Q,UAGtE,MAAb2Q,EAAIhV,OAAiBgV,EAAIhV,SAAU,KACvCgV,EAAIhV,MAAQ,MAIbgV,EAAI/pB,IAAM+pB,EAAIJ,SAEdI,EAAIJ,SAAW,WACT90B,EAAOkD,WAAYgyB,EAAI/pB,MAC3B+pB,EAAI/pB,IAAIlK,KAAM9B,MAGV+1B,EAAIhV,OACRlgB,EAAOmgB,QAAShhB,KAAM+1B,EAAIhV,QAIrBgV,GAGRl1B,EAAOG,GAAGsC,QACT2yB,OAAQ,SAAUH,EAAOI,EAAI/D,EAAQ5vB,GAGpC,MAAOvC,MAAKwP,OAAQoS,GAAWE,IAAK,UAAW,GAAIyO,OAGjDptB,MAAMgzB,SAAUzF,QAASwF,GAAMJ,EAAO3D,EAAQ5vB,IAEjD4zB,QAAS,SAAUnW,EAAM8V,EAAO3D,EAAQ5vB,GACvC,GAAIoS,GAAQ9T,EAAOqE,cAAe8a,GACjCoW,EAASv1B,EAAOi1B,MAAOA,EAAO3D,EAAQ5vB,GACtC8zB,EAAc,WAEb,GAAI9B,GAAOQ,GAAW/0B,KAAMa,EAAOyC,UAAY0c,GAAQoW,IAGlDzhB,GAAS0L,EAAUte,IAAK/B,KAAM,YAClCu0B,EAAKnT,MAAM,GAKd,OAFCiV,GAAYC,OAASD,EAEf1hB,GAASyhB,EAAOrV,SAAU,EAChC/gB,KAAKsC,KAAM+zB,GACXr2B,KAAK+gB,MAAOqV,EAAOrV,MAAOsV,IAE5BjV,KAAM,SAAUxc,EAAM0c,EAAYkU,GACjC,GAAIe,GAAY,SAAUrV,GACzB,GAAIE,GAAOF,EAAME,WACVF,GAAME,KACbA,EAAMoU,GAYP,OATqB,gBAAT5wB,KACX4wB,EAAUlU,EACVA,EAAa1c,EACbA,EAAOV,QAEHod,GAAc1c,KAAS,GAC3B5E,KAAK+gB,MAAOnc,GAAQ,SAGd5E,KAAKsC,KAAK,WAChB,GAAI0e,IAAU,EACb1G,EAAgB,MAAR1V,GAAgBA,EAAO,aAC/B4xB,EAAS31B,EAAO21B,OAChBva,EAAOoE,EAAUte,IAAK/B,KAEvB,IAAKsa,EACC2B,EAAM3B,IAAW2B,EAAM3B,GAAQ8G,MACnCmV,EAAWta,EAAM3B,QAGlB,KAAMA,IAAS2B,GACTA,EAAM3B,IAAW2B,EAAM3B,GAAQ8G,MAAQkS,GAAK3mB,KAAM2N,IACtDic,EAAWta,EAAM3B,GAKpB,KAAMA,EAAQkc,EAAO50B,OAAQ0Y,KACvBkc,EAAQlc,GAAQ5X,OAAS1C,MAAiB,MAAR4E,GAAgB4xB,EAAQlc,GAAQyG,QAAUnc,IAChF4xB,EAAQlc,GAAQia,KAAKnT,KAAMoU,GAC3BxU,GAAU,EACVwV,EAAOnzB,OAAQiX,EAAO,KAOnB0G,IAAYwU,IAChB30B,EAAOmgB,QAAShhB,KAAM4E,MAIzB0xB,OAAQ,SAAU1xB,GAIjB,MAHKA,MAAS,IACbA,EAAOA,GAAQ,MAET5E,KAAKsC,KAAK,WAChB,GAAIgY,GACH2B,EAAOoE,EAAUte,IAAK/B,MACtB+gB,EAAQ9E,EAAMrX,EAAO,SACrBsc,EAAQjF,EAAMrX,EAAO,cACrB4xB,EAAS31B,EAAO21B,OAChB50B,EAASmf,EAAQA,EAAMnf,OAAS,CAajC,KAVAqa,EAAKqa,QAAS,EAGdz1B,EAAOkgB,MAAO/gB,KAAM4E,MAEfsc,GAASA,EAAME,MACnBF,EAAME,KAAKtf,KAAM9B,MAAM,GAIlBsa,EAAQkc,EAAO50B,OAAQ0Y,KACvBkc,EAAQlc,GAAQ5X,OAAS1C,MAAQw2B,EAAQlc,GAAQyG,QAAUnc,IAC/D4xB,EAAQlc,GAAQia,KAAKnT,MAAM,GAC3BoV,EAAOnzB,OAAQiX,EAAO,GAKxB,KAAMA,EAAQ,EAAW1Y,EAAR0Y,EAAgBA,IAC3ByG,EAAOzG,IAAWyG,EAAOzG,GAAQgc,QACrCvV,EAAOzG,GAAQgc,OAAOx0B,KAAM9B,YAKvBic,GAAKqa,YAKfz1B,EAAOyB,MAAO,SAAU,OAAQ,QAAU,SAAUK,EAAGa,GACtD,GAAIizB,GAAQ51B,EAAOG,GAAIwC,EACvB3C,GAAOG,GAAIwC,GAAS,SAAUsyB,EAAO3D,EAAQ5vB,GAC5C,MAAgB,OAATuzB,GAAkC,iBAAVA,GAC9BW,EAAM7zB,MAAO5C,KAAM6C,WACnB7C,KAAKm2B,QAASpC,GAAOvwB,GAAM,GAAQsyB,EAAO3D,EAAQ5vB,MAKrD1B,EAAOyB,MACNo0B,UAAW3C,GAAM,QACjB4C,QAAS5C,GAAM,QACf6C,YAAa7C,GAAM,UACnB8C,QAAUnG,QAAS,QACnBoG,SAAWpG,QAAS,QACpBqG,YAAcrG,QAAS,WACrB,SAAUltB,EAAMsiB,GAClBjlB,EAAOG,GAAIwC,GAAS,SAAUsyB,EAAO3D,EAAQ5vB,GAC5C,MAAOvC,MAAKm2B,QAASrQ,EAAOgQ,EAAO3D,EAAQ5vB,MAI7C1B,EAAO21B,UACP31B,EAAO+xB,GAAGsC,KAAO,WAChB,GAAIQ,GACH/yB,EAAI,EACJ6zB,EAAS31B,EAAO21B,MAIjB,KAFAtD,GAAQryB,EAAOsG,MAEPxE,EAAI6zB,EAAO50B,OAAQe,IAC1B+yB,EAAQc,EAAQ7zB,GAEV+yB,KAAWc,EAAQ7zB,KAAQ+yB,GAChCc,EAAOnzB,OAAQV,IAAK,EAIhB6zB,GAAO50B,QACZf,EAAO+xB,GAAGxR,OAEX8R,GAAQhvB,QAGTrD,EAAO+xB,GAAG8C,MAAQ,SAAUA,GAC3B70B,EAAO21B,OAAOn2B,KAAMq1B,GACfA,IACJ70B,EAAO+xB,GAAG5f,QAEVnS,EAAO21B,OAAOvtB,OAIhBpI,EAAO+xB,GAAGoE,SAAW,GAErBn2B,EAAO+xB,GAAG5f,MAAQ,WACXmgB,KACLA,GAAU8D,YAAap2B,EAAO+xB,GAAGsC,KAAMr0B,EAAO+xB,GAAGoE,YAInDn2B,EAAO+xB,GAAGxR,KAAO,WAChB8V,cAAe/D,IACfA,GAAU,MAGXtyB,EAAO+xB,GAAGoD,QACTmB,KAAM,IACNC,KAAM,IAENhS,SAAU,KAMXvkB,EAAOG,GAAGq2B,MAAQ,SAAUC,EAAM1yB,GAIjC,MAHA0yB,GAAOz2B,EAAO+xB,GAAK/xB,EAAO+xB,GAAGoD,OAAQsB,IAAUA,EAAOA,EACtD1yB,EAAOA,GAAQ,KAER5E,KAAK+gB,MAAOnc,EAAM,SAAUgV,EAAMsH,GACxC,GAAIqW,GAAUvY,WAAYpF,EAAM0d,EAChCpW,GAAME,KAAO,WACZoW,aAAcD,OAMjB,WACC,GAAI1nB,GAAQjQ,EAAS6F,cAAe,SACnCmC,EAAShI,EAAS6F,cAAe,UACjCswB,EAAMnuB,EAAOhC,YAAahG,EAAS6F,cAAe,UAEnDoK,GAAMjL,KAAO,WAIbjE,EAAQ82B,QAA0B,KAAhB5nB,EAAM1J,MAIxBxF,EAAQ+2B,YAAc3B,EAAIthB,SAI1B7M,EAAO2M,UAAW,EAClB5T,EAAQg3B,aAAe5B,EAAIxhB,SAI3B1E,EAAQjQ,EAAS6F,cAAe,SAChCoK,EAAM1J,MAAQ,IACd0J,EAAMjL,KAAO,QACbjE,EAAQi3B,WAA6B,MAAhB/nB,EAAM1J,QAI5B,IAAI0xB,IAAUC,GACb/pB,GAAalN,EAAOgQ,KAAK9C,UAE1BlN,GAAOG,GAAGsC,QACTyN,KAAM,SAAUvN,EAAM2C,GACrB,MAAO8Y,GAAQjf,KAAMa,EAAOkQ,KAAMvN,EAAM2C,EAAOtD,UAAUjB,OAAS,IAGnEm2B,WAAY,SAAUv0B,GACrB,MAAOxD,MAAKsC,KAAK,WAChBzB,EAAOk3B,WAAY/3B,KAAMwD,QAK5B3C,EAAOyC,QACNyN,KAAM,SAAUrO,EAAMc,EAAM2C,GAC3B,GAAI+a,GAAO/e,EACV61B,EAAQt1B,EAAKuC,QAGd,IAAMvC,GAAkB,IAAVs1B,GAAyB,IAAVA,GAAyB,IAAVA,EAK5C,aAAYt1B,GAAKkK,eAAiByV,EAC1BxhB,EAAOmf,KAAMtd,EAAMc,EAAM2C,IAKlB,IAAV6xB,GAAgBn3B,EAAOgY,SAAUnW,KACrCc,EAAOA,EAAK0C,cACZgb,EAAQrgB,EAAOo3B,UAAWz0B,KACvB3C,EAAOgQ,KAAKhF,MAAMrB,KAAKmC,KAAMnJ,GAASs0B,GAAWD;AAGtC3zB,SAAViC,EAaO+a,GAAS,OAASA,IAA6C,QAAnC/e,EAAM+e,EAAMnf,IAAKW,EAAMc,IACvDrB,GAGPA,EAAMtB,EAAO0O,KAAKwB,KAAMrO,EAAMc,GAGhB,MAAPrB,EACN+B,OACA/B,GApBc,OAAVgE,EAGO+a,GAAS,OAASA,IAAoDhd,UAA1C/B,EAAM+e,EAAMnB,IAAKrd,EAAMyD,EAAO3C,IAC9DrB,GAGPO,EAAKmK,aAAcrJ,EAAM2C,EAAQ,IAC1BA,OAPPtF,GAAOk3B,WAAYr1B,EAAMc,KAuB5Bu0B,WAAY,SAAUr1B,EAAMyD,GAC3B,GAAI3C,GAAM00B,EACTv1B,EAAI,EACJw1B,EAAYhyB,GAASA,EAAM0F,MAAOqP,EAEnC,IAAKid,GAA+B,IAAlBz1B,EAAKuC,SACtB,MAASzB,EAAO20B,EAAUx1B,KACzBu1B,EAAWr3B,EAAOu3B,QAAS50B,IAAUA,EAGhC3C,EAAOgQ,KAAKhF,MAAMrB,KAAKmC,KAAMnJ,KAEjCd,EAAMw1B,IAAa,GAGpBx1B,EAAKyK,gBAAiB3J,IAKzBy0B,WACCrzB,MACCmb,IAAK,SAAUrd,EAAMyD,GACpB,IAAMxF,EAAQi3B,YAAwB,UAAVzxB,GAC3BtF,EAAOoF,SAAUvD,EAAM,SAAY,CACnC,GAAIsO,GAAMtO,EAAKyD,KAKf,OAJAzD,GAAKmK,aAAc,OAAQ1G,GACtB6K,IACJtO,EAAKyD,MAAQ6K,GAEP7K,QAQZ2xB,IACC/X,IAAK,SAAUrd,EAAMyD,EAAO3C,GAO3B,MANK2C,MAAU,EAEdtF,EAAOk3B,WAAYr1B,EAAMc,GAEzBd,EAAKmK,aAAcrJ,EAAMA,GAEnBA,IAGT3C,EAAOyB,KAAMzB,EAAOgQ,KAAKhF,MAAMrB,KAAKkX,OAAO7V,MAAO,QAAU,SAAUlJ,EAAGa,GACxE,GAAI60B,GAAStqB,GAAYvK,IAAU3C,EAAO0O,KAAKwB,IAE/ChD,IAAYvK,GAAS,SAAUd,EAAMc,EAAMiE,GAC1C,GAAItF,GAAKwhB,CAUT,OATMlc,KAELkc,EAAS5V,GAAYvK,GACrBuK,GAAYvK,GAASrB,EACrBA,EAAqC,MAA/Bk2B,EAAQ31B,EAAMc,EAAMiE,GACzBjE,EAAK0C,cACL,KACD6H,GAAYvK,GAASmgB,GAEfxhB,IAOT,IAAIm2B,IAAa,qCAEjBz3B,GAAOG,GAAGsC,QACT0c,KAAM,SAAUxc,EAAM2C,GACrB,MAAO8Y,GAAQjf,KAAMa,EAAOmf,KAAMxc,EAAM2C,EAAOtD,UAAUjB,OAAS,IAGnE22B,WAAY,SAAU/0B,GACrB,MAAOxD,MAAKsC,KAAK,iBACTtC,MAAMa,EAAOu3B,QAAS50B,IAAUA,QAK1C3C,EAAOyC,QACN80B,SACCI,MAAO,UACPC,QAAS,aAGVzY,KAAM,SAAUtd,EAAMc,EAAM2C,GAC3B,GAAIhE,GAAK+e,EAAOwX,EACfV,EAAQt1B,EAAKuC,QAGd,IAAMvC,GAAkB,IAAVs1B,GAAyB,IAAVA,GAAyB,IAAVA,EAY5C,MARAU,GAAmB,IAAVV,IAAgBn3B,EAAOgY,SAAUnW,GAErCg2B,IAEJl1B,EAAO3C,EAAOu3B,QAAS50B,IAAUA,EACjC0d,EAAQrgB,EAAOwxB,UAAW7uB,IAGZU,SAAViC,EACG+a,GAAS,OAASA,IAAoDhd,UAA1C/B,EAAM+e,EAAMnB,IAAKrd,EAAMyD,EAAO3C,IAChErB,EACEO,EAAMc,GAAS2C,EAGX+a,GAAS,OAASA,IAA6C,QAAnC/e,EAAM+e,EAAMnf,IAAKW,EAAMc,IACzDrB,EACAO,EAAMc,IAIT6uB,WACChe,UACCtS,IAAK,SAAUW,GACd,MAAOA,GAAKi2B,aAAc,aAAgBL,GAAW3rB,KAAMjK,EAAKuD,WAAcvD,EAAK0R,KAClF1R,EAAK2R,SACL,QAMC1T,EAAQ+2B,cACb72B,EAAOwxB,UAAU5d,UAChB1S,IAAK,SAAUW,GACd,GAAImM,GAASnM,EAAKmD,UAIlB,OAHKgJ,IAAUA,EAAOhJ,YACrBgJ,EAAOhJ,WAAW6O,cAEZ,QAKV7T,EAAOyB,MACN,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACFzB,EAAOu3B,QAASp4B,KAAKkG,eAAkBlG,MAMxC,IAAI44B,IAAS,aAEb/3B,GAAOG,GAAGsC,QACTu1B,SAAU,SAAU1yB,GACnB,GAAI2yB,GAASp2B,EAAMuL,EAAK8qB,EAAO71B,EAAG81B,EACjCC,EAA2B,gBAAV9yB,IAAsBA,EACvCxD,EAAI,EACJM,EAAMjD,KAAK4B,MAEZ,IAAKf,EAAOkD,WAAYoC,GACvB,MAAOnG,MAAKsC,KAAK,SAAUY,GAC1BrC,EAAQb,MAAO64B,SAAU1yB,EAAMrE,KAAM9B,KAAMkD,EAAGlD,KAAKmP,aAIrD,IAAK8pB,EAIJ,IAFAH,GAAY3yB,GAAS,IAAK0F,MAAOqP,OAErBjY,EAAJN,EAASA,IAOhB,GANAD,EAAO1C,KAAM2C,GACbsL,EAAwB,IAAlBvL,EAAKuC,WAAoBvC,EAAKyM,WACjC,IAAMzM,EAAKyM,UAAY,KAAM7K,QAASs0B,GAAQ,KAChD,KAGU,CACV11B,EAAI,CACJ,OAAS61B,EAAQD,EAAQ51B,KACnB+K,EAAI3N,QAAS,IAAMy4B,EAAQ,KAAQ,IACvC9qB,GAAO8qB,EAAQ,IAKjBC,GAAan4B,EAAO2E,KAAMyI,GACrBvL,EAAKyM,YAAc6pB,IACvBt2B,EAAKyM,UAAY6pB,GAMrB,MAAOh5B,OAGRk5B,YAAa,SAAU/yB,GACtB,GAAI2yB,GAASp2B,EAAMuL,EAAK8qB,EAAO71B,EAAG81B,EACjCC,EAA+B,IAArBp2B,UAAUjB,QAAiC,gBAAVuE,IAAsBA,EACjExD,EAAI,EACJM,EAAMjD,KAAK4B,MAEZ,IAAKf,EAAOkD,WAAYoC,GACvB,MAAOnG,MAAKsC,KAAK,SAAUY,GAC1BrC,EAAQb,MAAOk5B,YAAa/yB,EAAMrE,KAAM9B,KAAMkD,EAAGlD,KAAKmP,aAGxD,IAAK8pB,EAGJ,IAFAH,GAAY3yB,GAAS,IAAK0F,MAAOqP,OAErBjY,EAAJN,EAASA,IAQhB,GAPAD,EAAO1C,KAAM2C,GAEbsL,EAAwB,IAAlBvL,EAAKuC,WAAoBvC,EAAKyM,WACjC,IAAMzM,EAAKyM,UAAY,KAAM7K,QAASs0B,GAAQ,KAChD,IAGU,CACV11B,EAAI,CACJ,OAAS61B,EAAQD,EAAQ51B,KAExB,MAAQ+K,EAAI3N,QAAS,IAAMy4B,EAAQ,MAAS,EAC3C9qB,EAAMA,EAAI3J,QAAS,IAAMy0B,EAAQ,IAAK,IAKxCC,GAAa7yB,EAAQtF,EAAO2E,KAAMyI,GAAQ,GACrCvL,EAAKyM,YAAc6pB,IACvBt2B,EAAKyM,UAAY6pB,GAMrB,MAAOh5B,OAGRm5B,YAAa,SAAUhzB,EAAOizB,GAC7B,GAAIx0B,SAAcuB,EAElB,OAAyB,iBAAbizB,IAAmC,WAATx0B,EAC9Bw0B,EAAWp5B,KAAK64B,SAAU1yB,GAAUnG,KAAKk5B,YAAa/yB,GAItDnG,KAAKsC,KADRzB,EAAOkD,WAAYoC,GACN,SAAUxD,GAC1B9B,EAAQb,MAAOm5B,YAAahzB,EAAMrE,KAAK9B,KAAM2C,EAAG3C,KAAKmP,UAAWiqB,GAAWA,IAI5D,WAChB,GAAc,WAATx0B,EAAoB,CAExB,GAAIuK,GACHxM,EAAI,EACJwW,EAAOtY,EAAQb,MACfq5B,EAAalzB,EAAM0F,MAAOqP,MAE3B,OAAS/L,EAAYkqB,EAAY12B,KAE3BwW,EAAKmgB,SAAUnqB,GACnBgK,EAAK+f,YAAa/pB,GAElBgK,EAAK0f,SAAU1pB,QAKNvK,IAASyd,GAAyB,YAATzd,KAC/B5E,KAAKmP,WAETkR,EAAUN,IAAK/f,KAAM,gBAAiBA,KAAKmP,WAO5CnP,KAAKmP,UAAYnP,KAAKmP,WAAahJ,KAAU,EAAQ,GAAKka,EAAUte,IAAK/B,KAAM,kBAAqB,OAKvGs5B,SAAU,SAAUx4B,GAInB,IAHA,GAAIqO,GAAY,IAAMrO,EAAW,IAChC6B,EAAI,EACJwX,EAAIna,KAAK4B,OACEuY,EAAJxX,EAAOA,IACd,GAA0B,IAArB3C,KAAK2C,GAAGsC,WAAmB,IAAMjF,KAAK2C,GAAGwM,UAAY,KAAK7K,QAAQs0B,GAAQ,KAAKt4B,QAAS6O,IAAe,EAC3G,OAAO,CAIT,QAAO,IAOT,IAAIoqB,IAAU,KAEd14B,GAAOG,GAAGsC,QACT0N,IAAK,SAAU7K,GACd,GAAI+a,GAAO/e,EAAK4B,EACfrB,EAAO1C,KAAK,EAEb,EAAA,GAAM6C,UAAUjB,OAsBhB,MAFAmC,GAAalD,EAAOkD,WAAYoC,GAEzBnG,KAAKsC,KAAK,SAAUK,GAC1B,GAAIqO,EAEmB,KAAlBhR,KAAKiF,WAKT+L,EADIjN,EACEoC,EAAMrE,KAAM9B,KAAM2C,EAAG9B,EAAQb,MAAOgR,OAEpC7K,EAIK,MAAP6K,EACJA,EAAM,GAEoB,gBAARA,GAClBA,GAAO,GAEInQ,EAAOoD,QAAS+M,KAC3BA,EAAMnQ,EAAO4B,IAAKuO,EAAK,SAAU7K,GAChC,MAAgB,OAATA,EAAgB,GAAKA,EAAQ,MAItC+a,EAAQrgB,EAAO24B,SAAUx5B,KAAK4E,OAAU/D,EAAO24B,SAAUx5B,KAAKiG,SAASC,eAGjEgb,GAAW,OAASA,IAA8Chd,SAApCgd,EAAMnB,IAAK/f,KAAMgR,EAAK,WACzDhR,KAAKmG,MAAQ6K,KAnDd,IAAKtO,EAGJ,MAFAwe,GAAQrgB,EAAO24B,SAAU92B,EAAKkC,OAAU/D,EAAO24B,SAAU92B,EAAKuD,SAASC,eAElEgb,GAAS,OAASA,IAAgDhd,UAAtC/B,EAAM+e,EAAMnf,IAAKW,EAAM,UAChDP,GAGRA,EAAMO,EAAKyD,MAEW,gBAARhE,GAEbA,EAAImC,QAAQi1B,GAAS,IAEd,MAAPp3B,EAAc,GAAKA,OA4CxBtB,EAAOyC,QACNk2B,UACCvQ,QACClnB,IAAK,SAAUW,GACd,GAAIsO,GAAMnQ,EAAO0O,KAAKwB,KAAMrO,EAAM,QAClC,OAAc,OAAPsO,EACNA,EAGAnQ,EAAO2E,KAAM3E,EAAO6E,KAAMhD,MAG7BkF,QACC7F,IAAK,SAAUW,GAYd,IAXA,GAAIyD,GAAO8iB,EACV1lB,EAAUb,EAAKa,QACf+W,EAAQ5X,EAAKgS,cACb4T,EAAoB,eAAd5lB,EAAKkC,MAAiC,EAAR0V,EACpC0D,EAASsK,EAAM,QACfuH,EAAMvH,EAAMhO,EAAQ,EAAI/W,EAAQ3B,OAChCe,EAAY,EAAR2X,EACHuV,EACAvH,EAAMhO,EAAQ,EAGJuV,EAAJltB,EAASA,IAIhB,GAHAsmB,EAAS1lB,EAASZ,MAGXsmB,EAAOxU,UAAY9R,IAAM2X,IAE5B3Z,EAAQg3B,YAAe1O,EAAO1U,SAAiD,OAAtC0U,EAAOrc,aAAc,cAC7Dqc,EAAOpjB,WAAW0O,UAAa1T,EAAOoF,SAAUgjB,EAAOpjB,WAAY,aAAiB,CAMxF,GAHAM,EAAQtF,EAAQooB,GAASjY,MAGpBsX,EACJ,MAAOniB,EAIR6X,GAAO3d,KAAM8F,GAIf,MAAO6X,IAGR+B,IAAK,SAAUrd,EAAMyD,GACpB,GAAIszB,GAAWxQ,EACd1lB,EAAUb,EAAKa,QACfya,EAASnd,EAAOwF,UAAWF,GAC3BxD,EAAIY,EAAQ3B,MAEb,OAAQe,IACPsmB,EAAS1lB,EAASZ,IACZsmB,EAAOxU,SAAW5T,EAAO2F,QAASyiB,EAAO9iB,MAAO6X,IAAY,KACjEyb,GAAY,EAQd,OAHMA,KACL/2B,EAAKgS,cAAgB,IAEfsJ,OAOXnd,EAAOyB,MAAO,QAAS,YAAc,WACpCzB,EAAO24B,SAAUx5B,OAChB+f,IAAK,SAAUrd,EAAMyD,GACpB,MAAKtF,GAAOoD,QAASkC,GACXzD,EAAK8R,QAAU3T,EAAO2F,QAAS3F,EAAO6B,GAAMsO,MAAO7K,IAAW,EADxE,SAKIxF,EAAQ82B,UACb52B,EAAO24B,SAAUx5B,MAAO+B,IAAM,SAAUW,GACvC,MAAsC,QAA/BA,EAAKkK,aAAa,SAAoB,KAAOlK,EAAKyD,UAW5DtF,EAAOyB,KAAM,0MAEqD+E,MAAM,KAAM,SAAU1E,EAAGa,GAG1F3C,EAAOG,GAAIwC,GAAS,SAAUyY,EAAMjb,GACnC,MAAO6B,WAAUjB,OAAS,EACzB5B,KAAKqoB,GAAI7kB,EAAM,KAAMyY,EAAMjb,GAC3BhB,KAAKukB,QAAS/gB,MAIjB3C,EAAOG,GAAGsC,QACTo2B,MAAO,SAAUC,EAAQC,GACxB,MAAO55B,MAAK6nB,WAAY8R,GAAS7R,WAAY8R,GAASD,IAGvDE,KAAM,SAAU7W,EAAO/G,EAAMjb,GAC5B,MAAOhB,MAAKqoB,GAAIrF,EAAO,KAAM/G,EAAMjb,IAEpC84B,OAAQ,SAAU9W,EAAOhiB,GACxB,MAAOhB,MAAK4e,IAAKoE,EAAO,KAAMhiB,IAG/B+4B,SAAU,SAAUj5B,EAAUkiB,EAAO/G,EAAMjb,GAC1C,MAAOhB,MAAKqoB,GAAIrF,EAAOliB,EAAUmb,EAAMjb,IAExCg5B,WAAY,SAAUl5B,EAAUkiB,EAAOhiB,GAEtC,MAA4B,KAArB6B,UAAUjB,OAAe5B,KAAK4e,IAAK9d,EAAU,MAASd,KAAK4e,IAAKoE,EAAOliB,GAAY,KAAME,KAKlG,IAAIi5B,IAAQp5B,EAAOsG,MAEf+yB,GAAS,IAMbr5B,GAAO6f,UAAY,SAAUzE,GAC5B,MAAOke,MAAKC,MAAOne,EAAO,KAK3Bpb,EAAOw5B,SAAW,SAAUpe,GAC3B,GAAIpJ,GAAK3L,CACT,KAAM+U,GAAwB,gBAATA,GACpB,MAAO,KAIR,KACC/U,EAAM,GAAIozB,WACVznB,EAAM3L,EAAIqzB,gBAAiBte,EAAM,YAChC,MAAQvQ,GACTmH,EAAM3O,OAMP,QAHM2O,GAAOA,EAAIrG,qBAAsB,eAAgB5K,SACtDf,EAAO2D,MAAO,gBAAkByX,GAE1BpJ,EAIR,IACC2nB,IAAQ,OACRC,GAAM,gBACNC,GAAW,6BAEXC,GAAiB,4DACjBC,GAAa,iBACbC,GAAY,QACZC,GAAO,4DAWPC,MAOAC,MAGAC,GAAW,KAAK76B,OAAQ,KAGxB86B,GAAen7B,EAAOgU,SAASK,KAG/B+mB,GAAeL,GAAKzuB,KAAM6uB,GAAah1B,kBAGxC,SAASk1B,IAA6BC,GAGrC,MAAO,UAAUC,EAAoB7e,GAED,gBAAvB6e,KACX7e,EAAO6e,EACPA,EAAqB,IAGtB,IAAIC,GACH54B,EAAI,EACJ64B,EAAYF,EAAmBp1B,cAAc2F,MAAOqP,MAErD,IAAKra,EAAOkD,WAAY0Y,GAEvB,MAAS8e,EAAWC,EAAU74B,KAER,MAAhB44B,EAAS,IACbA,EAAWA,EAASp7B,MAAO,IAAO,KACjCk7B,EAAWE,GAAaF,EAAWE,QAAkB3qB,QAAS6L,KAI9D4e,EAAWE,GAAaF,EAAWE,QAAkBl7B,KAAMoc,IAQjE,QAASgf,IAA+BJ,EAAW93B,EAASgyB,EAAiBmG,GAE5E,GAAIC,MACHC,EAAqBP,IAAcL,EAEpC,SAASa,GAASN,GACjB,GAAI9mB,EAYJ,OAXAknB,GAAWJ,IAAa,EACxB16B,EAAOyB,KAAM+4B,EAAWE,OAAkB,SAAUrwB,EAAG4wB,GACtD,GAAIC,GAAsBD,EAAoBv4B,EAASgyB,EAAiBmG,EACxE,OAAoC,gBAAxBK,IAAqCH,GAAqBD,EAAWI,GAIrEH,IACDnnB,EAAWsnB,GADf,QAHNx4B,EAAQi4B,UAAU5qB,QAASmrB,GAC3BF,EAASE,IACF,KAKFtnB,EAGR,MAAOonB,GAASt4B,EAAQi4B,UAAW,MAAUG,EAAW,MAASE,EAAS,KAM3E,QAASG,IAAYn4B,EAAQJ,GAC5B,GAAI6J,GAAKxJ,EACRm4B,EAAcp7B,EAAOq7B,aAAaD,eAEnC,KAAM3uB,IAAO7J,GACQS,SAAfT,EAAK6J,MACP2uB,EAAa3uB,GAAQzJ,EAAWC,IAASA,OAAgBwJ,GAAQ7J,EAAK6J,GAO1E,OAJKxJ,IACJjD,EAAOyC,QAAQ,EAAMO,EAAQC,GAGvBD,EAOR,QAASs4B,IAAqBC,EAAGV,EAAOW,GAEvC,GAAIC,GAAI13B,EAAM23B,EAAeC,EAC5B7iB,EAAWyiB,EAAEziB,SACb6hB,EAAYY,EAAEZ,SAGf,OAA2B,MAAnBA,EAAW,GAClBA,EAAUhuB,QACEtJ,SAAPo4B,IACJA,EAAKF,EAAEK,UAAYf,EAAMgB,kBAAkB,gBAK7C,IAAKJ,EACJ,IAAM13B,IAAQ+U,GACb,GAAKA,EAAU/U,IAAU+U,EAAU/U,GAAO+H,KAAM2vB,GAAO,CACtDd,EAAU5qB,QAAShM,EACnB,OAMH,GAAK42B,EAAW,IAAOa,GACtBE,EAAgBf,EAAW,OACrB,CAEN,IAAM52B,IAAQy3B,GAAY,CACzB,IAAMb,EAAW,IAAOY,EAAEO,WAAY/3B,EAAO,IAAM42B,EAAU,IAAO,CACnEe,EAAgB33B,CAChB,OAEK43B,IACLA,EAAgB53B,GAIlB23B,EAAgBA,GAAiBC,EAMlC,MAAKD,IACCA,IAAkBf,EAAW,IACjCA,EAAU5qB,QAAS2rB,GAEbF,EAAWE,IAJnB,OAWD,QAASK,IAAaR,EAAGS,EAAUnB,EAAOoB,GACzC,GAAIC,GAAOC,EAASC,EAAM/1B,EAAK2S,EAC9B8iB,KAEAnB,EAAYY,EAAEZ,UAAUr7B,OAGzB,IAAKq7B,EAAW,GACf,IAAMyB,IAAQb,GAAEO,WACfA,EAAYM,EAAK/2B,eAAkBk2B,EAAEO,WAAYM,EAInDD,GAAUxB,EAAUhuB,OAGpB,OAAQwvB,EAcP,GAZKZ,EAAEc,eAAgBF,KACtBtB,EAAOU,EAAEc,eAAgBF,IAAcH,IAIlChjB,GAAQijB,GAAaV,EAAEe,aAC5BN,EAAWT,EAAEe,WAAYN,EAAUT,EAAEb,WAGtC1hB,EAAOmjB,EACPA,EAAUxB,EAAUhuB,QAKnB,GAAiB,MAAZwvB,EAEJA,EAAUnjB,MAGJ,IAAc,MAATA,GAAgBA,IAASmjB,EAAU,CAM9C,GAHAC,EAAON,EAAY9iB,EAAO,IAAMmjB,IAAaL,EAAY,KAAOK,IAG1DC,EACL,IAAMF,IAASJ,GAId,GADAz1B,EAAM61B,EAAM11B,MAAO,KACdH,EAAK,KAAQ81B,IAGjBC,EAAON,EAAY9iB,EAAO,IAAM3S,EAAK,KACpCy1B,EAAY,KAAOz1B,EAAK,KACb,CAEN+1B,KAAS,EACbA,EAAON,EAAYI,GAGRJ,EAAYI,MAAY,IACnCC,EAAU91B,EAAK,GACfs0B,EAAU5qB,QAAS1J,EAAK,IAEzB,OAOJ,GAAK+1B,KAAS,EAGb,GAAKA,GAAQb,EAAG,UACfS,EAAWI,EAAMJ,OAEjB,KACCA,EAAWI,EAAMJ,GAChB,MAAQnxB,GACT,OAASiR,MAAO,cAAenY,MAAOy4B,EAAOvxB,EAAI,sBAAwBmO,EAAO,OAASmjB,IAQ/F,OAASrgB,MAAO,UAAWV,KAAM4gB,GAGlCh8B,EAAOyC,QAGN85B,OAAQ,EAGRC,gBACAC,QAEApB,cACCqB,IAAKrC,GACLt2B,KAAM,MACN44B,QAAS7C,GAAehuB,KAAMwuB,GAAc,IAC5C37B,QAAQ,EACRi+B,aAAa,EACbC,OAAO,EACPC,YAAa,mDAabhe,SACC+T,IAAKuH,GACLv1B,KAAM,aACNmmB,KAAM,YACNhZ,IAAK,4BACL+qB,KAAM,qCAGPjkB,UACC9G,IAAK,MACLgZ,KAAM,OACN+R,KAAM,QAGPV,gBACCrqB,IAAK,cACLnN,KAAM,eACNk4B,KAAM,gBAKPjB,YAGCkB,SAAUvyB,OAGVwyB,aAAa,EAGbC,YAAal9B,EAAO6f,UAGpBsd,WAAYn9B,EAAOw5B,UAOpB4B,aACCsB,KAAK,EACLx8B,SAAS,IAOXk9B,UAAW,SAAUp6B,EAAQq6B,GAC5B,MAAOA,GAGNlC,GAAYA,GAAYn4B,EAAQhD,EAAOq7B,cAAgBgC,GAGvDlC,GAAYn7B,EAAOq7B,aAAcr4B,IAGnCs6B,cAAe/C,GAA6BL,IAC5CqD,cAAehD,GAA6BJ,IAG5CqD,KAAM,SAAUd,EAAKh6B,GAGA,gBAARg6B,KACXh6B,EAAUg6B,EACVA,EAAMr5B,QAIPX,EAAUA,KAEV,IAAI+6B,GAEHC,EAEAC,EACAC,EAEAC,EAEA3M,EAEA4M,EAEAh8B,EAEAy5B,EAAIv7B,EAAOo9B,aAAe16B,GAE1Bq7B,EAAkBxC,EAAEr7B,SAAWq7B,EAE/ByC,EAAqBzC,EAAEr7B,UAAa69B,EAAgB35B,UAAY25B,EAAgBl9B,QAC/Eb,EAAQ+9B,GACR/9B,EAAOkiB,MAERjG,EAAWjc,EAAO2b,WAClBsiB,EAAmBj+B,EAAO0a,UAAU,eAEpCwjB,EAAa3C,EAAE2C,eAEfC,KACAC,KAEAtiB,EAAQ,EAERuiB,EAAW,WAEXxD,GACC3c,WAAY,EAGZ2d,kBAAmB,SAAUpvB,GAC5B,GAAIzB,EACJ,IAAe,IAAV8Q,EAAc,CAClB,IAAM8hB,EAAkB,CACvBA,IACA,OAAS5yB,EAAQ6uB,GAASruB,KAAMmyB,GAC/BC,EAAiB5yB,EAAM,GAAG3F,eAAkB2F,EAAO,GAGrDA,EAAQ4yB,EAAiBnxB,EAAIpH,eAE9B,MAAgB,OAAT2F,EAAgB,KAAOA,GAI/BszB,sBAAuB,WACtB,MAAiB,KAAVxiB,EAAc6hB,EAAwB,MAI9CY,iBAAkB,SAAU57B,EAAM2C,GACjC,GAAIk5B,GAAQ77B,EAAK0C,aAKjB,OAJMyW,KACLnZ,EAAOy7B,EAAqBI,GAAUJ,EAAqBI,IAAW77B,EACtEw7B,EAAgBx7B,GAAS2C,GAEnBnG,MAIRs/B,iBAAkB,SAAU16B,GAI3B,MAHM+X,KACLyf,EAAEK,SAAW73B,GAEP5E,MAIR++B,WAAY,SAAUt8B,GACrB,GAAI2C,EACJ,IAAK3C,EACJ,GAAa,EAARka,EACJ,IAAMvX,IAAQ3C,GAEbs8B,EAAY35B,IAAW25B,EAAY35B,GAAQ3C,EAAK2C,QAIjDs2B,GAAM7e,OAAQpa,EAAKi5B,EAAM6D,QAG3B,OAAOv/B,OAIRw/B,MAAO,SAAUC,GAChB,GAAIC,GAAYD,GAAcP,CAK9B,OAJKZ,IACJA,EAAUkB,MAAOE,GAElBl3B,EAAM,EAAGk3B,GACF1/B,MAyCV,IApCA8c,EAASF,QAAS8e,GAAQ/F,SAAWmJ,EAAiBtkB,IACtDkhB,EAAMiE,QAAUjE,EAAMlzB,KACtBkzB,EAAMl3B,MAAQk3B,EAAM3e,KAMpBqf,EAAEmB,MAAUA,GAAOnB,EAAEmB,KAAOrC,IAAiB,IAAK52B,QAASk2B,GAAO,IAChEl2B,QAASu2B,GAAWM,GAAc,GAAM,MAG1CiB,EAAEx3B,KAAOrB,EAAQq8B,QAAUr8B,EAAQqB,MAAQw3B,EAAEwD,QAAUxD,EAAEx3B,KAGzDw3B,EAAEZ,UAAY36B,EAAO2E,KAAM42B,EAAEb,UAAY,KAAMr1B,cAAc2F,MAAOqP,KAAiB,IAG/D,MAAjBkhB,EAAEyD,cACN9N,EAAQ+I,GAAKzuB,KAAM+vB,EAAEmB,IAAIr3B,eACzBk2B,EAAEyD,eAAkB9N,GACjBA,EAAO,KAAQoJ,GAAc,IAAOpJ,EAAO,KAAQoJ,GAAc,KAChEpJ,EAAO,KAAwB,UAAfA,EAAO,GAAkB,KAAO,WAC/CoJ,GAAc,KAA+B,UAAtBA,GAAc,GAAkB,KAAO,UAK/DiB,EAAEngB,MAAQmgB,EAAEqB,aAAiC,gBAAXrB,GAAEngB,OACxCmgB,EAAEngB,KAAOpb,EAAOi/B,MAAO1D,EAAEngB,KAAMmgB,EAAE2D,cAIlCtE,GAA+BV,GAAYqB,EAAG74B,EAASm4B,GAGxC,IAAV/e,EACJ,MAAO+e,EAKRiD,GAAc99B,EAAOkiB,OAASqZ,EAAE58B,OAG3Bm/B,GAAmC,IAApB99B,EAAOu8B,UAC1Bv8B,EAAOkiB,MAAMwB,QAAQ,aAItB6X,EAAEx3B,KAAOw3B,EAAEx3B,KAAKpD,cAGhB46B,EAAE4D,YAAcpF,GAAWjuB,KAAMyvB,EAAEx3B,MAInC25B,EAAWnC,EAAEmB,IAGPnB,EAAE4D,aAGF5D,EAAEngB,OACNsiB,EAAanC,EAAEmB,MAASrD,GAAOvtB,KAAM4xB,GAAa,IAAM,KAAQnC,EAAEngB,WAE3DmgB,GAAEngB,MAILmgB,EAAE/uB,SAAU,IAChB+uB,EAAEmB,IAAM9C,GAAI9tB,KAAM4xB,GAGjBA,EAASj6B,QAASm2B,GAAK,OAASR,MAGhCsE,GAAarE,GAAOvtB,KAAM4xB,GAAa,IAAM,KAAQ,KAAOtE,OAK1DmC,EAAE6D,aACDp/B,EAAOw8B,aAAckB,IACzB7C,EAAM0D,iBAAkB,oBAAqBv+B,EAAOw8B,aAAckB,IAE9D19B,EAAOy8B,KAAMiB,IACjB7C,EAAM0D,iBAAkB,gBAAiBv+B,EAAOy8B,KAAMiB,MAKnDnC,EAAEngB,MAAQmgB,EAAE4D,YAAc5D,EAAEuB,eAAgB,GAASp6B,EAAQo6B,cACjEjC,EAAM0D,iBAAkB,eAAgBhD,EAAEuB,aAI3CjC,EAAM0D,iBACL,SACAhD,EAAEZ,UAAW,IAAOY,EAAEzc,QAASyc,EAAEZ,UAAU,IAC1CY,EAAEzc,QAASyc,EAAEZ,UAAU,KAA8B,MAArBY,EAAEZ,UAAW,GAAc,KAAOP,GAAW,WAAa,IAC1FmB,EAAEzc,QAAS,KAIb,KAAMhd,IAAKy5B,GAAE8D,QACZxE,EAAM0D,iBAAkBz8B,EAAGy5B,EAAE8D,QAASv9B,GAIvC,IAAKy5B,EAAE+D,aAAgB/D,EAAE+D,WAAWr+B,KAAM88B,EAAiBlD,EAAOU,MAAQ,GAAmB,IAAVzf,GAElF,MAAO+e,GAAM8D,OAIdN,GAAW,OAGX,KAAMv8B,KAAOg9B,QAAS,EAAGn7B,MAAO,EAAGmxB,SAAU,GAC5C+F,EAAO/4B,GAAKy5B,EAAGz5B,GAOhB,IAHA27B,EAAY7C,GAA+BT,GAAYoB,EAAG74B,EAASm4B,GAK5D,CACNA,EAAM3c,WAAa,EAGd4f,GACJE,EAAmBta,QAAS,YAAcmX,EAAOU,IAG7CA,EAAEsB,OAAStB,EAAE7E,QAAU,IAC3BmH,EAAe1f,WAAW,WACzB0c,EAAM8D,MAAM,YACVpD,EAAE7E,SAGN,KACC5a,EAAQ,EACR2hB,EAAU8B,KAAMpB,EAAgBx2B,GAC/B,MAAQkD,GAET,KAAa,EAARiR,GAIJ,KAAMjR,EAHNlD,GAAM,GAAIkD,QArBZlD,GAAM,GAAI,eA8BX,SAASA,GAAM+2B,EAAQc,EAAkBhE,EAAW6D,GACnD,GAAIpD,GAAW6C,EAASn7B,EAAOq4B,EAAUyD,EACxCb,EAAaY,CAGC,KAAV1jB,IAKLA,EAAQ,EAGH+hB,GACJlH,aAAckH,GAKfJ,EAAYp6B,OAGZs6B,EAAwB0B,GAAW,GAGnCxE,EAAM3c,WAAawgB,EAAS,EAAI,EAAI,EAGpCzC,EAAYyC,GAAU,KAAgB,IAATA,GAA2B,MAAXA,EAGxClD,IACJQ,EAAWV,GAAqBC,EAAGV,EAAOW,IAI3CQ,EAAWD,GAAaR,EAAGS,EAAUnB,EAAOoB,GAGvCA,GAGCV,EAAE6D,aACNK,EAAW5E,EAAMgB,kBAAkB,iBAC9B4D,IACJz/B,EAAOw8B,aAAckB,GAAa+B,GAEnCA,EAAW5E,EAAMgB,kBAAkB,QAC9B4D,IACJz/B,EAAOy8B,KAAMiB,GAAa+B,IAKZ,MAAXf,GAA6B,SAAXnD,EAAEx3B,KACxB66B,EAAa,YAGS,MAAXF,EACXE,EAAa,eAIbA,EAAa5C,EAASlgB,MACtBgjB,EAAU9C,EAAS5gB,KACnBzX,EAAQq4B,EAASr4B,MACjBs4B,GAAat4B,KAIdA,EAAQi7B,GACHF,IAAWE,KACfA,EAAa,QACC,EAATF,IACJA,EAAS,KAMZ7D,EAAM6D,OAASA,EACf7D,EAAM+D,YAAeY,GAAoBZ,GAAe,GAGnD3C,EACJhgB,EAASqB,YAAaygB,GAAmBe,EAASF,EAAY/D,IAE9D5e,EAAS2Y,WAAYmJ,GAAmBlD,EAAO+D,EAAYj7B,IAI5Dk3B,EAAMqD,WAAYA,GAClBA,EAAa76B,OAERy6B,GACJE,EAAmBta,QAASuY,EAAY,cAAgB,aACrDpB,EAAOU,EAAGU,EAAY6C,EAAUn7B,IAIpCs6B,EAAiBviB,SAAUqiB,GAAmBlD,EAAO+D,IAEhDd,IACJE,EAAmBta,QAAS,gBAAkBmX,EAAOU,MAE3Cv7B,EAAOu8B,QAChBv8B,EAAOkiB,MAAMwB,QAAQ,cAKxB,MAAOmX,IAGR6E,QAAS,SAAUhD,EAAKthB,EAAM1Z,GAC7B,MAAO1B,GAAOkB,IAAKw7B,EAAKthB,EAAM1Z,EAAU,SAGzCi+B,UAAW,SAAUjD,EAAKh7B,GACzB,MAAO1B,GAAOkB,IAAKw7B,EAAKr5B,OAAW3B,EAAU,aAI/C1B,EAAOyB,MAAQ,MAAO,QAAU,SAAUK,EAAGi9B,GAC5C/+B,EAAQ++B,GAAW,SAAUrC,EAAKthB,EAAM1Z,EAAUqC,GAQjD,MANK/D,GAAOkD,WAAYkY,KACvBrX,EAAOA,GAAQrC,EACfA,EAAW0Z,EACXA,EAAO/X,QAGDrD,EAAOw9B,MACbd,IAAKA,EACL34B,KAAMg7B,EACNrE,SAAU32B,EACVqX,KAAMA,EACN0jB,QAASp9B,OAMZ1B,EAAOsrB,SAAW,SAAUoR,GAC3B,MAAO18B,GAAOw9B,MACbd,IAAKA,EACL34B,KAAM,MACN22B,SAAU,SACVmC,OAAO,EACPl+B,QAAQ,EACRihC,UAAU,KAKZ5/B,EAAOG,GAAGsC,QACTo9B,QAAS,SAAU7U,GAClB,GAAIX,EAEJ,OAAKrqB,GAAOkD,WAAY8nB,GAChB7rB,KAAKsC,KAAK,SAAUK,GAC1B9B,EAAQb,MAAO0gC,QAAS7U,EAAK/pB,KAAK9B,KAAM2C,OAIrC3C,KAAM,KAGVkrB,EAAOrqB,EAAQgrB,EAAM7rB,KAAM,GAAIoM,eAAgBrJ,GAAI,GAAIa,OAAO,GAEzD5D,KAAM,GAAI6F,YACdqlB,EAAKO,aAAczrB,KAAM,IAG1BkrB,EAAKzoB,IAAI,WACR,GAAIC,GAAO1C,IAEX,OAAQ0C,EAAKi+B,kBACZj+B,EAAOA,EAAKi+B,iBAGb,OAAOj+B,KACL4oB,OAAQtrB,OAGLA,OAGR4gC,UAAW,SAAU/U,GACpB,MACQ7rB,MAAKsC,KADRzB,EAAOkD,WAAY8nB,GACN,SAAUlpB,GAC1B9B,EAAQb,MAAO4gC,UAAW/U,EAAK/pB,KAAK9B,KAAM2C,KAI3B,WAChB,GAAIwW,GAAOtY,EAAQb,MAClB2Z,EAAWR,EAAKQ,UAEZA,GAAS/X,OACb+X,EAAS+mB,QAAS7U,GAGlB1S,EAAKmS,OAAQO,MAKhBX,KAAM,SAAUW,GACf,GAAI9nB,GAAalD,EAAOkD,WAAY8nB,EAEpC,OAAO7rB,MAAKsC,KAAK,SAAUK,GAC1B9B,EAAQb,MAAO0gC,QAAS38B,EAAa8nB,EAAK/pB,KAAK9B,KAAM2C,GAAKkpB,MAI5DgV,OAAQ,WACP,MAAO7gC,MAAK6O,SAASvM,KAAK,WACnBzB,EAAOoF,SAAUjG,KAAM,SAC5Ba,EAAQb,MAAO8rB,YAAa9rB,KAAKyL,cAEhCtI,SAKLtC,EAAOgQ,KAAK4E,QAAQ+a,OAAS,SAAU9tB,GAGtC,MAAOA,GAAK0tB,aAAe,GAAK1tB,EAAK2tB,cAAgB,GAEtDxvB,EAAOgQ,KAAK4E,QAAQqrB,QAAU,SAAUp+B,GACvC,OAAQ7B,EAAOgQ,KAAK4E,QAAQ+a,OAAQ9tB,GAMrC,IAAIq+B,IAAM,OACTC,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,oCAEhB,SAASC,IAAazP,EAAQhtB,EAAKo7B,EAAavlB,GAC/C,GAAIhX,EAEJ,IAAK3C,EAAOoD,QAASU,GAEpB9D,EAAOyB,KAAMqC,EAAK,SAAUhC,EAAG0+B,GACzBtB,GAAeiB,GAASr0B,KAAMglB,GAElCnX,EAAKmX,EAAQ0P,GAIbD,GAAazP,EAAS,KAAqB,gBAAN0P,GAAiB1+B,EAAI,IAAO,IAAK0+B,EAAGtB,EAAavlB,SAIlF,IAAMulB,GAAsC,WAAvBl/B,EAAO+D,KAAMD,GAQxC6V,EAAKmX,EAAQhtB,OANb,KAAMnB,IAAQmB,GACby8B,GAAazP,EAAS,IAAMnuB,EAAO,IAAKmB,EAAKnB,GAAQu8B,EAAavlB,GAWrE3Z,EAAOi/B,MAAQ,SAAUh3B,EAAGi3B,GAC3B,GAAIpO,GACHyK,KACA5hB,EAAM,SAAUlN,EAAKnH,GAEpBA,EAAQtF,EAAOkD,WAAYoC,GAAUA,IAAqB,MAATA,EAAgB,GAAKA,EACtEi2B,EAAGA,EAAEx6B,QAAW0/B,mBAAoBh0B,GAAQ,IAAMg0B,mBAAoBn7B,GASxE,IALqBjC,SAAhB67B,IACJA,EAAcl/B,EAAOq7B,cAAgBr7B,EAAOq7B,aAAa6D,aAIrDl/B,EAAOoD,QAAS6E,IAASA,EAAEpH,SAAWb,EAAOmD,cAAe8E,GAEhEjI,EAAOyB,KAAMwG,EAAG,WACf0R,EAAKxa,KAAKwD,KAAMxD,KAAKmG,aAMtB,KAAMwrB,IAAU7oB,GACfs4B,GAAazP,EAAQ7oB,EAAG6oB,GAAUoO,EAAavlB,EAKjD,OAAO4hB,GAAEpvB,KAAM,KAAM1I,QAASy8B,GAAK,MAGpClgC,EAAOG,GAAGsC,QACTi+B,UAAW,WACV,MAAO1gC,GAAOi/B,MAAO9/B,KAAKwhC,mBAE3BA,eAAgB,WACf,MAAOxhC,MAAKyC,IAAI,WAEf,GAAIqO,GAAWjQ,EAAOmf,KAAMhgB,KAAM,WAClC,OAAO8Q,GAAWjQ,EAAOwF,UAAWyK,GAAa9Q,OAEjDwP,OAAO,WACP,GAAI5K,GAAO5E,KAAK4E,IAGhB,OAAO5E,MAAKwD,OAAS3C,EAAQb,MAAOoZ,GAAI,cACvC+nB,GAAax0B,KAAM3M,KAAKiG,YAAei7B,GAAgBv0B,KAAM/H,KAC3D5E,KAAKwU,UAAYuN,EAAepV,KAAM/H,MAEzCnC,IAAI,SAAUE,EAAGD,GACjB,GAAIsO,GAAMnQ,EAAQb,MAAOgR,KAEzB,OAAc,OAAPA,EACN,KACAnQ,EAAOoD,QAAS+M,GACfnQ,EAAO4B,IAAKuO,EAAK,SAAUA,GAC1B,OAASxN,KAAMd,EAAKc,KAAM2C,MAAO6K,EAAI1M,QAAS28B,GAAO,YAEpDz9B,KAAMd,EAAKc,KAAM2C,MAAO6K,EAAI1M,QAAS28B,GAAO,WAC9Cl/B,SAKLlB,EAAOq7B,aAAauF,IAAM,WACzB,IACC,MAAO,IAAIC,gBACV,MAAOh2B,KAGV,IAAIi2B,IAAQ,EACXC,MACAC,IAEC,EAAG,IAGHC,KAAM,KAEPC,GAAelhC,EAAOq7B,aAAauF,KAK/B1hC,GAAOmP,aACXnP,EAAOmP,YAAa,WAAY,WAC/B,IAAM,GAAI5B,KAAOs0B,IAChBA,GAAct0B,OAKjB3M,EAAQqhC,OAASD,IAAkB,mBAAqBA,IACxDphC,EAAQ09B,KAAO0D,KAAiBA,GAEhClhC,EAAOu9B,cAAc,SAAU76B,GAC9B,GAAIhB,EAGJ,OAAK5B,GAAQqhC,MAAQD,KAAiBx+B,EAAQs8B,aAE5CO,KAAM,SAAUF,EAASvK,GACxB,GAAIhzB,GACH8+B,EAAMl+B,EAAQk+B,MACdl1B,IAAOo1B,EAKR,IAHAF,EAAIQ,KAAM1+B,EAAQqB,KAAMrB,EAAQg6B,IAAKh6B,EAAQm6B,MAAOn6B,EAAQ2+B,SAAU3+B,EAAQ8R,UAGzE9R,EAAQ4+B,UACZ,IAAMx/B,IAAKY,GAAQ4+B,UAClBV,EAAK9+B,GAAMY,EAAQ4+B,UAAWx/B,EAK3BY,GAAQk5B,UAAYgF,EAAInC,kBAC5BmC,EAAInC,iBAAkB/7B,EAAQk5B,UAQzBl5B,EAAQs8B,aAAgBK,EAAQ,sBACrCA,EAAQ,oBAAsB,iBAI/B,KAAMv9B,IAAKu9B,GACVuB,EAAIrC,iBAAkBz8B,EAAGu9B,EAASv9B,GAInCJ,GAAW,SAAUqC,GACpB,MAAO,YACDrC,UACGq/B,IAAcr1B,GACrBhK,EAAWk/B,EAAIW,OAASX,EAAIY,QAAU,KAExB,UAATz9B,EACJ68B,EAAIjC,QACgB,UAAT56B,EACX+wB,EAEC8L,EAAIlC,OACJkC,EAAIhC,YAGL9J,EACCkM,GAAkBJ,EAAIlC,SAAYkC,EAAIlC,OACtCkC,EAAIhC,WAIwB,gBAArBgC,GAAIa,cACV58B,KAAM+7B,EAAIa,cACPp+B,OACJu9B,EAAItC,4BAQTsC,EAAIW,OAAS7/B,IACbk/B,EAAIY,QAAU9/B,EAAS,SAGvBA,EAAWq/B,GAAcr1B,GAAOhK,EAAS,QAEzC,KAECk/B,EAAIrB,KAAM78B,EAAQy8B,YAAcz8B,EAAQ0Y,MAAQ,MAC/C,MAAQvQ,GAET,GAAKnJ,EACJ,KAAMmJ,KAKT8zB,MAAO,WACDj9B,GACJA,MAvFJ,SAkGD1B,EAAOo9B,WACNte,SACCta,OAAQ,6FAETsU,UACCtU,OAAQ,uBAETs3B,YACC4F,cAAe,SAAU78B,GAExB,MADA7E,GAAOsE,WAAYO,GACZA,MAMV7E,EAAOs9B,cAAe,SAAU,SAAU/B,GACxBl4B,SAAZk4B,EAAE/uB,QACN+uB,EAAE/uB,OAAQ,GAEN+uB,EAAEyD,cACNzD,EAAEx3B,KAAO,SAKX/D,EAAOu9B,cAAe,SAAU,SAAUhC,GAEzC,GAAKA,EAAEyD,YAAc,CACpB,GAAIx6B,GAAQ9C,CACZ,QACC69B,KAAM,SAAUl1B,EAAGyqB,GAClBtwB,EAASxE,EAAO,YAAYmf,MAC3B0d,OAAO,EACP8E,QAASpG,EAAEqG,cACXh/B,IAAK24B,EAAEmB,MACLlV,GACF,aACA9lB,EAAW,SAAUmgC,GACpBr9B,EAAO+W,SACP7Z,EAAW,KACNmgC,GACJ/M,EAAuB,UAAb+M,EAAI99B,KAAmB,IAAM,IAAK89B,EAAI99B,QAInDhF,EAAS+F,KAAKC,YAAaP,EAAQ,KAEpCm6B,MAAO,WACDj9B,GACJA,QAUL,IAAIogC,OACHC,GAAS,mBAGV/hC,GAAOo9B,WACN4E,MAAO,WACPC,cAAe,WACd,GAAIvgC,GAAWogC,GAAa15B,OAAWpI,EAAOsD,QAAU,IAAQ81B,IAEhE,OADAj6B,MAAMuC,IAAa,EACZA,KAKT1B,EAAOs9B,cAAe,aAAc,SAAU/B,EAAG2G,EAAkBrH,GAElE,GAAIsH,GAAcC,EAAaC,EAC9BC,EAAW/G,EAAEyG,SAAU,IAAWD,GAAOj2B,KAAMyvB,EAAEmB,KAChD,MACkB,gBAAXnB,GAAEngB,QAAwBmgB,EAAEuB,aAAe,IAAKr9B,QAAQ,sCAAwCsiC,GAAOj2B,KAAMyvB,EAAEngB,OAAU,OAIlI,OAAKknB,IAAiC,UAArB/G,EAAEZ,UAAW,IAG7BwH,EAAe5G,EAAE0G,cAAgBjiC,EAAOkD,WAAYq4B,EAAE0G,eACrD1G,EAAE0G,gBACF1G,EAAE0G,cAGEK,EACJ/G,EAAG+G,GAAa/G,EAAG+G,GAAW7+B,QAASs+B,GAAQ,KAAOI,GAC3C5G,EAAEyG,SAAU,IACvBzG,EAAEmB,MAASrD,GAAOvtB,KAAMyvB,EAAEmB,KAAQ,IAAM,KAAQnB,EAAEyG,MAAQ,IAAMG,GAIjE5G,EAAEO,WAAW,eAAiB,WAI7B,MAHMuG,IACLriC,EAAO2D,MAAOw+B,EAAe,mBAEvBE,EAAmB,IAI3B9G,EAAEZ,UAAW,GAAM,OAGnByH,EAAcljC,EAAQijC,GACtBjjC,EAAQijC,GAAiB,WACxBE,EAAoBrgC,WAIrB64B,EAAM7e,OAAO,WAEZ9c,EAAQijC,GAAiBC,EAGpB7G,EAAG4G,KAEP5G,EAAE0G,cAAgBC,EAAiBD,cAGnCH,GAAatiC,KAAM2iC,IAIfE,GAAqBriC,EAAOkD,WAAYk/B,IAC5CA,EAAaC,EAAmB,IAGjCA,EAAoBD,EAAc/+B,SAI5B,UAtDR,SAgEDrD,EAAOyY,UAAY,SAAU2C,EAAMlb,EAASqiC,GAC3C,IAAMnnB,GAAwB,gBAATA,GACpB,MAAO,KAEgB,kBAAZlb,KACXqiC,EAAcriC,EACdA,GAAU,GAEXA,EAAUA,GAAWnB,CAErB,IAAIyjC,GAAStqB,EAAW1M,KAAM4P,GAC7B+O,GAAWoY,KAGZ,OAAKC,IACKtiC,EAAQ0E,cAAe49B,EAAO,MAGxCA,EAASxiC,EAAOkqB,eAAiB9O,GAAQlb,EAASiqB,GAE7CA,GAAWA,EAAQppB,QACvBf,EAAQmqB,GAAU5O,SAGZvb,EAAOuB,SAAWihC,EAAO53B,aAKjC,IAAI63B,IAAQziC,EAAOG,GAAGkmB,IAKtBrmB,GAAOG,GAAGkmB,KAAO,SAAUqW,EAAKgG,EAAQhhC,GACvC,GAAoB,gBAARg7B,IAAoB+F,GAC/B,MAAOA,IAAM1gC,MAAO5C,KAAM6C,UAG3B,IAAI/B,GAAU8D,EAAMi4B,EACnB1jB,EAAOnZ,KACP4e,EAAM2e,EAAIj9B,QAAQ,IA+CnB,OA7CKse,IAAO,IACX9d,EAAWD,EAAO2E,KAAM+3B,EAAIp9B,MAAOye,IACnC2e,EAAMA,EAAIp9B,MAAO,EAAGye,IAIhB/d,EAAOkD,WAAYw/B,IAGvBhhC,EAAWghC,EACXA,EAASr/B,QAGEq/B,GAA4B,gBAAXA,KAC5B3+B,EAAO,QAIHuU,EAAKvX,OAAS,GAClBf,EAAOw9B,MACNd,IAAKA,EAGL34B,KAAMA,EACN22B,SAAU,OACVtf,KAAMsnB,IACJ/6B,KAAK,SAAU85B,GAGjBzF,EAAWh6B,UAEXsW,EAAK0S,KAAM/qB,EAIVD,EAAO,SAASyqB,OAAQzqB,EAAOyY,UAAWgpB,IAAiB/yB,KAAMzO,GAGjEwhC,KAEC3M,SAAUpzB,GAAY,SAAUm5B,EAAO6D,GACzCpmB,EAAK7W,KAAMC,EAAUs6B,IAAcnB,EAAM4G,aAAc/C,EAAQ7D,MAI1D17B,MAORa,EAAOyB,MAAQ,YAAa,WAAY,eAAgB,YAAa,cAAe,YAAc,SAAUK,EAAGiC,GAC9G/D,EAAOG,GAAI4D,GAAS,SAAU5D,GAC7B,MAAOhB,MAAKqoB,GAAIzjB,EAAM5D,MAOxBH,EAAOgQ,KAAK4E,QAAQ+tB,SAAW,SAAU9gC,GACxC,MAAO7B,GAAO6F,KAAK7F,EAAO21B,OAAQ,SAAUx1B,GAC3C,MAAO0B,KAAS1B,EAAG0B,OACjBd,OAMJ,IAAIqG,IAAUlI,EAAOH,SAAS8O,eAK9B,SAAS+0B,IAAW/gC,GACnB,MAAO7B,GAAOiE,SAAUpC,GAASA,EAAyB,IAAlBA,EAAKuC,UAAkBvC,EAAKqM,YAGrElO,EAAO6iC,QACNC,UAAW,SAAUjhC,EAAMa,EAASZ,GACnC,GAAIihC,GAAaC,EAASC,EAAWC,EAAQC,EAAWC,EAAYC,EACnEhV,EAAWruB,EAAOihB,IAAKpf,EAAM,YAC7ByhC,EAAUtjC,EAAQ6B,GAClBojB,IAGiB,YAAboJ,IACJxsB,EAAKkqB,MAAMsC,SAAW,YAGvB8U,EAAYG,EAAQT,SACpBI,EAAYjjC,EAAOihB,IAAKpf,EAAM,OAC9BuhC,EAAapjC,EAAOihB,IAAKpf,EAAM,QAC/BwhC,GAAmC,aAAbhV,GAAwC,UAAbA,KAC9C4U,EAAYG,GAAa3jC,QAAQ,QAAU,GAIzC4jC,GACJN,EAAcO,EAAQjV,WACtB6U,EAASH,EAAY50B,IACrB60B,EAAUD,EAAYQ,OAGtBL,EAAS/+B,WAAY8+B,IAAe,EACpCD,EAAU7+B,WAAYi/B,IAAgB,GAGlCpjC,EAAOkD,WAAYR,KACvBA,EAAUA,EAAQzB,KAAMY,EAAMC,EAAGqhC,IAGd,MAAfzgC,EAAQyL,MACZ8W,EAAM9W,IAAQzL,EAAQyL,IAAMg1B,EAAUh1B,IAAQ+0B,GAE1B,MAAhBxgC,EAAQ6gC,OACZte,EAAMse,KAAS7gC,EAAQ6gC,KAAOJ,EAAUI,KAASP,GAG7C,SAAWtgC,GACfA,EAAQ8gC,MAAMviC,KAAMY,EAAMojB,GAG1Bqe,EAAQriB,IAAKgE,KAKhBjlB,EAAOG,GAAGsC,QACTogC,OAAQ,SAAUngC,GACjB,GAAKV,UAAUjB,OACd,MAAmBsC,UAAZX,EACNvD,KACAA,KAAKsC,KAAK,SAAUK,GACnB9B,EAAO6iC,OAAOC,UAAW3jC,KAAMuD,EAASZ,IAI3C,IAAIsF,GAASq8B,EACZ5hC,EAAO1C,KAAM,GACbukC,GAAQv1B,IAAK,EAAGo1B,KAAM,GACtBt1B,EAAMpM,GAAQA,EAAK0J,aAEpB,IAAM0C,EAON,MAHA7G,GAAU6G,EAAIJ,gBAGR7N,EAAOwH,SAAUJ,EAASvF,UAMpBA,GAAK8hC,wBAA0BniB,IAC1CkiB,EAAM7hC,EAAK8hC,yBAEZF,EAAMb,GAAW30B,IAEhBE,IAAKu1B,EAAIv1B,IAAMs1B,EAAIG,YAAcx8B,EAAQ8e,UACzCqd,KAAMG,EAAIH,KAAOE,EAAII,YAAcz8B,EAAQ0e,aAXpC4d,GAeTrV,SAAU,WACT,GAAMlvB,KAAM,GAAZ,CAIA,GAAI2kC,GAAcjB,EACjBhhC,EAAO1C,KAAM,GACb4kC,GAAiB51B,IAAK,EAAGo1B,KAAM,EAuBhC,OApBwC,UAAnCvjC,EAAOihB,IAAKpf,EAAM,YAEtBghC,EAAShhC,EAAK8hC,yBAIdG,EAAe3kC,KAAK2kC,eAGpBjB,EAAS1jC,KAAK0jC,SACR7iC,EAAOoF,SAAU0+B,EAAc,GAAK,UACzCC,EAAeD,EAAajB,UAI7BkB,EAAa51B,KAAOnO,EAAOihB,IAAK6iB,EAAc,GAAK,kBAAkB,GACrEC,EAAaR,MAAQvjC,EAAOihB,IAAK6iB,EAAc,GAAK,mBAAmB,KAKvE31B,IAAK00B,EAAO10B,IAAM41B,EAAa51B,IAAMnO,EAAOihB,IAAKpf,EAAM,aAAa,GACpE0hC,KAAMV,EAAOU,KAAOQ,EAAaR,KAAOvjC,EAAOihB,IAAKpf,EAAM,cAAc,MAI1EiiC,aAAc,WACb,MAAO3kC,MAAKyC,IAAI,WACf,GAAIkiC,GAAe3kC,KAAK2kC,cAAgB18B,EAExC,OAAQ08B,IAAmB9jC,EAAOoF,SAAU0+B,EAAc,SAAuD,WAA3C9jC,EAAOihB,IAAK6iB,EAAc,YAC/FA,EAAeA,EAAaA,YAG7B,OAAOA,IAAgB18B,QAM1BpH,EAAOyB,MAAQokB,WAAY,cAAeI,UAAW,eAAiB,SAAU8Y,EAAQ5f,GACvF,GAAIhR,GAAM,gBAAkBgR,CAE5Bnf,GAAOG,GAAI4+B,GAAW,SAAU5uB,GAC/B,MAAOiO,GAAQjf,KAAM,SAAU0C,EAAMk9B,EAAQ5uB,GAC5C,GAAIszB,GAAMb,GAAW/gC,EAErB,OAAawB,UAAR8M,EACGszB,EAAMA,EAAKtkB,GAAStd,EAAMk9B,QAG7B0E,EACJA,EAAIO,SACF71B,EAAYjP,EAAO2kC,YAAb1zB,EACPhC,EAAMgC,EAAMjR,EAAO0kC,aAIpB/hC,EAAMk9B,GAAW5uB,IAEhB4uB,EAAQ5uB,EAAKnO,UAAUjB,OAAQ,SAUpCf,EAAOyB,MAAQ,MAAO,QAAU,SAAUK,EAAGqd,GAC5Cnf,EAAO4vB,SAAUzQ,GAAS6N,GAAcltB,EAAQ6tB,cAC/C,SAAU9rB,EAAM8qB,GACf,MAAKA,IACJA,EAAWD,GAAQ7qB,EAAMsd,GAElBmN,GAAUxgB,KAAM6gB,GACtB3sB,EAAQ6B,GAAOwsB,WAAYlP,GAAS,KACpCwN,GALF,WAaH3sB,EAAOyB,MAAQwiC,OAAQ,SAAUC,MAAO,SAAW,SAAUvhC,EAAMoB,GAClE/D,EAAOyB,MAAQmvB,QAAS,QAAUjuB,EAAMqmB,QAASjlB,EAAM,GAAI,QAAUpB,GAAQ,SAAUwhC,EAAcC,GAEpGpkC,EAAOG,GAAIikC,GAAa,SAAUzT,EAAQrrB,GACzC,GAAI+Y,GAAYrc,UAAUjB,SAAYojC,GAAkC,iBAAXxT,IAC5DzB,EAAQiV,IAAkBxT,KAAW,GAAQrrB,KAAU,EAAO,SAAW,SAE1E,OAAO8Y,GAAQjf,KAAM,SAAU0C,EAAMkC,EAAMuB,GAC1C,GAAI2I,EAEJ,OAAKjO,GAAOiE,SAAUpC,GAIdA,EAAK9C,SAAS8O,gBAAiB,SAAWlL,GAI3B,IAAlBd,EAAKuC,UACT6J,EAAMpM,EAAKgM,gBAIJtK,KAAKyrB,IACXntB,EAAK6jB,KAAM,SAAW/iB,GAAQsL,EAAK,SAAWtL,GAC9Cd,EAAK6jB,KAAM,SAAW/iB,GAAQsL,EAAK,SAAWtL,GAC9CsL,EAAK,SAAWtL,KAIDU,SAAViC,EAENtF,EAAOihB,IAAKpf,EAAMkC,EAAMmrB,GAGxBlvB,EAAO+rB,MAAOlqB,EAAMkC,EAAMuB,EAAO4pB,IAChCnrB,EAAMsa,EAAYsS,EAASttB,OAAWgb,EAAW,WAOvDre,EAAOG,GAAGkkC,KAAO,WAChB,MAAOllC,MAAK4B,QAGbf,EAAOG,GAAGmkC,QAAUtkC,EAAOG,GAAGyZ,QAkBP,kBAAX2qB,SAAyBA,OAAOC,KAC3CD,OAAQ,YAAc,WACrB,MAAOvkC,IAOT,IAECykC,IAAUvlC,EAAOc,OAGjB0kC,GAAKxlC,EAAOylC,CAwBb,OAtBA3kC,GAAO4kC,WAAa,SAAU3hC,GAS7B,MARK/D,GAAOylC,IAAM3kC,IACjBd,EAAOylC,EAAID,IAGPzhC,GAAQ/D,EAAOc,SAAWA,IAC9Bd,EAAOc,OAASykC,IAGVzkC,SAMIZ,KAAaoiB,IACxBtiB,EAAOc,OAASd,EAAOylC,EAAI3kC,GAMrBA"}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js
new file mode 100644
index 0000000..606b062
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.11.1 - 2017-02-22
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2017 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=function(b,c){b.options.columnsHidden.length>0&&a.each(b.columns,function(d,e){-1!==b.options.columnsHidden.indexOf(e.field)&&e.visible!==c&&b.toggleColumn(a.fn.bootstrapTable.utils.getFieldIndex(b.columns,e.field),c,!0)})},c=function(a){(a.options.height||a.options.showFooter)&&setTimeout(function(){a.resetView.call(a)},1)},d=function(a,b,d){a.options.minHeight?b<=a.options.minWidth&&d<=a.options.minHeight?e(a):b>a.options.minWidth&&d>a.options.minHeight&&f(a):b<=a.options.minWidth?e(a):b>a.options.minWidth&&f(a),c(a)},e=function(a){g(a,!1),b(a,!1)},f=function(a){g(a,!0),b(a,!0)},g=function(a,b){a.options.cardView=b,a.toggleView()},h=function(a,b){var c;return function(){var d=this,e=arguments,f=function(){c=null,a.apply(d,e)};clearTimeout(c),c=setTimeout(f,b)}};a.extend(a.fn.bootstrapTable.defaults,{mobileResponsive:!1,minWidth:562,minHeight:void 0,heightThreshold:100,checkOnInit:!0,columnsHidden:[]});var i=a.fn.bootstrapTable.Constructor,j=i.prototype.init;i.prototype.init=function(){if(j.apply(this,Array.prototype.slice.apply(arguments)),this.options.mobileResponsive&&this.options.minWidth){this.options.minWidth<100&&this.options.resizable&&(console.log("The minWidth when the resizable extension is active should be greater or equal than 100"),this.options.minWidth=100);var b=this,c={width:a(window).width(),height:a(window).height()};if(a(window).on("resize orientationchange",h(function(){var e=a(this).height(),f=a(this).width();(Math.abs(c.height-e)>b.options.heightThreshold||c.width!=f)&&(d(b,f,e),c={width:f,height:e})},200)),this.options.checkOnInit){var e=a(window).height(),f=a(window).width();d(this,f,e),c={width:f,height:e}}}}}(jQuery);
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table.min.js
new file mode 100644
index 0000000..d15db75
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/bootstrap-table.min.js
@@ -0,0 +1,8 @@
+/*
+* bootstrap-table - v1.11.1 - 2017-02-22
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2017 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";var b=null,c=function(a){var b=arguments,c=!0,d=1;return a=a.replace(/%s/g,function(){var a=b[d++];return"undefined"==typeof a?(c=!1,""):a}),c?a:""},d=function(b,c,d,e){var f="";return a.each(b,function(a,b){return b[c]===e?(f=b[d],!1):!0}),f},e=function(b,c){var d=-1;return a.each(b,function(a,b){return b.field===c?(d=a,!1):!0}),d},f=function(b){var c,d,e,f=0,g=[];for(c=0;c<b[0].length;c++)f+=b[0][c].colspan||1;for(c=0;c<b.length;c++)for(g[c]=[],d=0;f>d;d++)g[c][d]=!1;for(c=0;c<b.length;c++)for(d=0;d<b[c].length;d++){var h=b[c][d],i=h.rowspan||1,j=h.colspan||1,k=a.inArray(!1,g[c]);for(1===j&&(h.fieldIndex=k,"undefined"==typeof h.field&&(h.field=k)),e=0;i>e;e++)g[c+e][k]=!0;for(e=0;j>e;e++)g[c][k+e]=!0}},g=function(){if(null===b){var c,d,e=a("<p/>").addClass("fixed-table-scroll-inner"),f=a("<div/>").addClass("fixed-table-scroll-outer");f.append(e),a("body").append(f),c=e[0].offsetWidth,f.css("overflow","scroll"),d=e[0].offsetWidth,c===d&&(d=f[0].clientWidth),f.remove(),b=c-d}return b},h=function(b,d,e,f){var g=d;if("string"==typeof d){var h=d.split(".");h.length>1?(g=window,a.each(h,function(a,b){g=g[b]})):g=window[d]}return"object"==typeof g?g:"function"==typeof g?g.apply(b,e||[]):!g&&"string"==typeof d&&c.apply(this,[d].concat(e))?c.apply(this,[d].concat(e)):f},i=function(b,c,d){var e=Object.getOwnPropertyNames(b),f=Object.getOwnPropertyNames(c),g="";if(d&&e.length!==f.length)return!1;for(var h=0;h<e.length;h++)if(g=e[h],a.inArray(g,f)>-1&&b[g]!==c[g])return!1;return!0},j=function(a){return"string"==typeof a?a.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;").replace(/`/g,"&#x60;"):a},k=function(a){for(var b in a){var c=b.split(/(?=[A-Z])/).join("-").toLowerCase();c!==b&&(a[c]=a[b],delete a[b])}return a},l=function(a,b,c){var d=a;if("string"!=typeof b||a.hasOwnProperty(b))return c?j(a[b]):a[b];var e=b.split(".");for(var f in e)e.hasOwnProperty(f)&&(d=d&&d[e[f]]);return c?j(d):d},m=function(){return!!(navigator.userAgent.indexOf("MSIE ")>0||navigator.userAgent.match(/Trident.*rv\:11\./))},n=function(){Object.keys||(Object.keys=function(){var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],d=c.length;return function(e){if("object"!=typeof e&&("function"!=typeof e||null===e))throw new TypeError("Object.keys called on non-object");var f,g,h=[];for(f in e)a.call(e,f)&&h.push(f);if(b)for(g=0;d>g;g++)a.call(e,c[g])&&h.push(c[g]);return h}}())},o=function(b,c){this.options=c,this.$el=a(b),this.$el_=this.$el.clone(),this.timeoutId_=0,this.timeoutFooter_=0,this.init()};o.DEFAULTS={classes:"table table-hover",sortClass:void 0,locale:void 0,height:void 0,undefinedText:"-",sortName:void 0,sortOrder:"asc",sortStable:!1,striped:!1,columns:[[]],data:[],totalField:"total",dataField:"rows",method:"get",url:void 0,ajax:void 0,cache:!0,contentType:"application/json",dataType:"json",ajaxOptions:{},queryParams:function(a){return a},queryParamsType:"limit",responseHandler:function(a){return a},pagination:!1,onlyInfoPagination:!1,paginationLoop:!0,sidePagination:"client",totalRows:0,pageNumber:1,pageSize:10,pageList:[10,25,50,100],paginationHAlign:"right",paginationVAlign:"bottom",paginationDetailHAlign:"left",paginationPreText:"&lsaquo;",paginationNextText:"&rsaquo;",search:!1,searchOnEnterKey:!1,strictSearch:!1,searchAlign:"right",selectItemName:"btSelectItem",showHeader:!0,showFooter:!1,showColumns:!1,showPaginationSwitch:!1,showRefresh:!1,showToggle:!1,buttonsAlign:"right",smartDisplay:!0,escape:!1,minimumCountColumns:1,idField:void 0,uniqueId:void 0,cardView:!1,detailView:!1,detailFormatter:function(){return""},trimOnSearch:!0,clickToSelect:!1,singleSelect:!1,toolbar:void 0,toolbarAlign:"left",checkboxHeader:!0,sortable:!0,silentSort:!0,maintainSelected:!1,searchTimeOut:500,searchText:"",iconSize:void 0,buttonsClass:"default",iconsPrefix:"glyphicon",icons:{paginationSwitchDown:"glyphicon-collapse-down icon-chevron-down",paginationSwitchUp:"glyphicon-collapse-up icon-chevron-up",refresh:"glyphicon-refresh icon-refresh",toggle:"glyphicon-list-alt icon-list-alt",columns:"glyphicon-th icon-th",detailOpen:"glyphicon-plus icon-plus",detailClose:"glyphicon-minus icon-minus"},customSearch:a.noop,customSort:a.noop,rowStyle:function(){return{}},rowAttributes:function(){return{}},footerStyle:function(){return{}},onAll:function(){return!1},onClickCell:function(){return!1},onDblClickCell:function(){return!1},onClickRow:function(){return!1},onDblClickRow:function(){return!1},onSort:function(){return!1},onCheck:function(){return!1},onUncheck:function(){return!1},onCheckAll:function(){return!1},onUncheckAll:function(){return!1},onCheckSome:function(){return!1},onUncheckSome:function(){return!1},onLoadSuccess:function(){return!1},onLoadError:function(){return!1},onColumnSwitch:function(){return!1},onPageChange:function(){return!1},onSearch:function(){return!1},onToggle:function(){return!1},onPreBody:function(){return!1},onPostBody:function(){return!1},onPostHeader:function(){return!1},onExpandRow:function(){return!1},onCollapseRow:function(){return!1},onRefreshOptions:function(){return!1},onRefresh:function(){return!1},onResetView:function(){return!1}},o.LOCALES={},o.LOCALES["en-US"]=o.LOCALES.en={formatLoadingMessage:function(){return"Loading, please wait..."},formatRecordsPerPage:function(a){return c("%s rows per page",a)},formatShowingRows:function(a,b,d){return c("Showing %s to %s of %s rows",a,b,d)},formatDetailPagination:function(a){return c("Showing %s rows",a)},formatSearch:function(){return"Search"},formatNoMatches:function(){return"No matching records found"},formatPaginationSwitch:function(){return"Hide/Show pagination"},formatRefresh:function(){return"Refresh"},formatToggle:function(){return"Toggle"},formatColumns:function(){return"Columns"},formatAllRows:function(){return"All"}},a.extend(o.DEFAULTS,o.LOCALES["en-US"]),o.COLUMN_DEFAULTS={radio:!1,checkbox:!1,checkboxEnabled:!0,field:void 0,title:void 0,titleTooltip:void 0,"class":void 0,align:void 0,halign:void 0,falign:void 0,valign:void 0,width:void 0,sortable:!1,order:"asc",visible:!0,switchable:!0,clickToSelect:!0,formatter:void 0,footerFormatter:void 0,events:void 0,sorter:void 0,sortName:void 0,cellStyle:void 0,searchable:!0,searchFormatter:!0,cardVisible:!0,escape:!1},o.EVENTS={"all.bs.table":"onAll","click-cell.bs.table":"onClickCell","dbl-click-cell.bs.table":"onDblClickCell","click-row.bs.table":"onClickRow","dbl-click-row.bs.table":"onDblClickRow","sort.bs.table":"onSort","check.bs.table":"onCheck","uncheck.bs.table":"onUncheck","check-all.bs.table":"onCheckAll","uncheck-all.bs.table":"onUncheckAll","check-some.bs.table":"onCheckSome","uncheck-some.bs.table":"onUncheckSome","load-success.bs.table":"onLoadSuccess","load-error.bs.table":"onLoadError","column-switch.bs.table":"onColumnSwitch","page-change.bs.table":"onPageChange","search.bs.table":"onSearch","toggle.bs.table":"onToggle","pre-body.bs.table":"onPreBody","post-body.bs.table":"onPostBody","post-header.bs.table":"onPostHeader","expand-row.bs.table":"onExpandRow","collapse-row.bs.table":"onCollapseRow","refresh-options.bs.table":"onRefreshOptions","reset-view.bs.table":"onResetView","refresh.bs.table":"onRefresh"},o.prototype.init=function(){this.initLocale(),this.initContainer(),this.initTable(),this.initHeader(),this.initData(),this.initHiddenRows(),this.initFooter(),this.initToolbar(),this.initPagination(),this.initBody(),this.initSearchText(),this.initServer()},o.prototype.initLocale=function(){if(this.options.locale){var b=this.options.locale.split(/-|_/);b[0].toLowerCase(),b[1]&&b[1].toUpperCase(),a.fn.bootstrapTable.locales[this.options.locale]?a.extend(this.options,a.fn.bootstrapTable.locales[this.options.locale]):a.fn.bootstrapTable.locales[b.join("-")]?a.extend(this.options,a.fn.bootstrapTable.locales[b.join("-")]):a.fn.bootstrapTable.locales[b[0]]&&a.extend(this.options,a.fn.bootstrapTable.locales[b[0]])}},o.prototype.initContainer=function(){this.$container=a(['<div class="bootstrap-table">','<div class="fixed-table-toolbar"></div>',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'<div class="fixed-table-pagination" style="clear: both;"></div>':"",'<div class="fixed-table-container">','<div class="fixed-table-header"><table></table></div>','<div class="fixed-table-body">','<div class="fixed-table-loading">',this.options.formatLoadingMessage(),"</div>","</div>",'<div class="fixed-table-footer"><table><tr></tr></table></div>',"bottom"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?'<div class="fixed-table-pagination"></div>':"","</div>","</div>"].join("")),this.$container.insertAfter(this.$el),this.$tableContainer=this.$container.find(".fixed-table-container"),this.$tableHeader=this.$container.find(".fixed-table-header"),this.$tableBody=this.$container.find(".fixed-table-body"),this.$tableLoading=this.$container.find(".fixed-table-loading"),this.$tableFooter=this.$container.find(".fixed-table-footer"),this.$toolbar=this.$container.find(".fixed-table-toolbar"),this.$pagination=this.$container.find(".fixed-table-pagination"),this.$tableBody.append(this.$el),this.$container.after('<div class="clearfix"></div>'),this.$el.addClass(this.options.classes),this.options.striped&&this.$el.addClass("table-striped"),-1!==a.inArray("table-no-bordered",this.options.classes.split(" "))&&this.$tableContainer.addClass("table-no-bordered")},o.prototype.initTable=function(){var b=this,c=[],d=[];if(this.$header=this.$el.find(">thead"),this.$header.length||(this.$header=a("<thead></thead>").appendTo(this.$el)),this.$header.find("tr").each(function(){var b=[];a(this).find("th").each(function(){"undefined"!=typeof a(this).data("field")&&a(this).data("field",a(this).data("field")+""),b.push(a.extend({},{title:a(this).html(),"class":a(this).attr("class"),titleTooltip:a(this).attr("title"),rowspan:a(this).attr("rowspan")?+a(this).attr("rowspan"):void 0,colspan:a(this).attr("colspan")?+a(this).attr("colspan"):void 0},a(this).data()))}),c.push(b)}),a.isArray(this.options.columns[0])||(this.options.columns=[this.options.columns]),this.options.columns=a.extend(!0,[],c,this.options.columns),this.columns=[],f(this.options.columns),a.each(this.options.columns,function(c,d){a.each(d,function(d,e){e=a.extend({},o.COLUMN_DEFAULTS,e),"undefined"!=typeof e.fieldIndex&&(b.columns[e.fieldIndex]=e),b.options.columns[c][d]=e})}),!this.options.data.length){var e=[];this.$el.find(">tbody>tr").each(function(c){var f={};f._id=a(this).attr("id"),f._class=a(this).attr("class"),f._data=k(a(this).data()),a(this).find(">td").each(function(d){for(var g,h,i=a(this),j=+i.attr("colspan")||1,l=+i.attr("rowspan")||1;e[c]&&e[c][d];d++);for(g=d;d+j>g;g++)for(h=c;c+l>h;h++)e[h]||(e[h]=[]),e[h][g]=!0;var m=b.columns[d].field;f[m]=a(this).html(),f["_"+m+"_id"]=a(this).attr("id"),f["_"+m+"_class"]=a(this).attr("class"),f["_"+m+"_rowspan"]=a(this).attr("rowspan"),f["_"+m+"_colspan"]=a(this).attr("colspan"),f["_"+m+"_title"]=a(this).attr("title"),f["_"+m+"_data"]=k(a(this).data())}),d.push(f)}),this.options.data=d,d.length&&(this.fromHtml=!0)}},o.prototype.initHeader=function(){var b=this,d={},e=[];this.header={fields:[],styles:[],classes:[],formatters:[],events:[],sorters:[],sortNames:[],cellStyles:[],searchables:[]},a.each(this.options.columns,function(f,g){e.push("<tr>"),0===f&&!b.options.cardView&&b.options.detailView&&e.push(c('<th class="detail" rowspan="%s"><div class="fht-cell"></div></th>',b.options.columns.length)),a.each(g,function(a,f){var g="",h="",i="",k="",l=c(' class="%s"',f["class"]),m=(b.options.sortOrder||f.order,"px"),n=f.width;if(void 0===f.width||b.options.cardView||"string"==typeof f.width&&-1!==f.width.indexOf("%")&&(m="%"),f.width&&"string"==typeof f.width&&(n=f.width.replace("%","").replace("px","")),h=c("text-align: %s; ",f.halign?f.halign:f.align),i=c("text-align: %s; ",f.align),k=c("vertical-align: %s; ",f.valign),k+=c("width: %s; ",!f.checkbox&&!f.radio||n?n?n+m:void 0:"36px"),"undefined"!=typeof f.fieldIndex){if(b.header.fields[f.fieldIndex]=f.field,b.header.styles[f.fieldIndex]=i+k,b.header.classes[f.fieldIndex]=l,b.header.formatters[f.fieldIndex]=f.formatter,b.header.events[f.fieldIndex]=f.events,b.header.sorters[f.fieldIndex]=f.sorter,b.header.sortNames[f.fieldIndex]=f.sortName,b.header.cellStyles[f.fieldIndex]=f.cellStyle,b.header.searchables[f.fieldIndex]=f.searchable,!f.visible)return;if(b.options.cardView&&!f.cardVisible)return;d[f.field]=f}e.push("<th"+c(' title="%s"',f.titleTooltip),f.checkbox||f.radio?c(' class="bs-checkbox %s"',f["class"]||""):l,c(' style="%s"',h+k),c(' rowspan="%s"',f.rowspan),c(' colspan="%s"',f.colspan),c(' data-field="%s"',f.field),">"),e.push(c('<div class="th-inner %s">',b.options.sortable&&f.sortable?"sortable both":"")),g=b.options.escape?j(f.title):f.title,f.checkbox&&(!b.options.singleSelect&&b.options.checkboxHeader&&(g='<input name="btSelectAll" type="checkbox" />'),b.header.stateField=f.field),f.radio&&(g="",b.header.stateField=f.field,b.options.singleSelect=!0),e.push(g),e.push("</div>"),e.push('<div class="fht-cell"></div>'),e.push("</div>"),e.push("</th>")}),e.push("</tr>")}),this.$header.html(e.join("")),this.$header.find("th[data-field]").each(function(){a(this).data(d[a(this).data("field")])}),this.$container.off("click",".th-inner").on("click",".th-inner",function(c){var d=a(this);return b.options.detailView&&d.closest(".bootstrap-table")[0]!==b.$container[0]?!1:void(b.options.sortable&&d.parent().data().sortable&&b.onSort(c))}),this.$header.children().children().off("keypress").on("keypress",function(c){if(b.options.sortable&&a(this).data().sortable){var d=c.keyCode||c.which;13==d&&b.onSort(c)}}),a(window).off("resize.bootstrap-table"),!this.options.showHeader||this.options.cardView?(this.$header.hide(),this.$tableHeader.hide(),this.$tableLoading.css("top",0)):(this.$header.show(),this.$tableHeader.show(),this.$tableLoading.css("top",this.$header.outerHeight()+1),this.getCaret(),a(window).on("resize.bootstrap-table",a.proxy(this.resetWidth,this))),this.$selectAll=this.$header.find('[name="btSelectAll"]'),this.$selectAll.off("click").on("click",function(){var c=a(this).prop("checked");b[c?"checkAll":"uncheckAll"](),b.updateSelected()})},o.prototype.initFooter=function(){!this.options.showFooter||this.options.cardView?this.$tableFooter.hide():this.$tableFooter.show()},o.prototype.initData=function(a,b){this.data="append"===b?this.data.concat(a):"prepend"===b?[].concat(a).concat(this.data):a||this.options.data,this.options.data="append"===b?this.options.data.concat(a):"prepend"===b?[].concat(a).concat(this.options.data):this.data,"server"!==this.options.sidePagination&&this.initSort()},o.prototype.initSort=function(){var b=this,d=this.options.sortName,e="desc"===this.options.sortOrder?-1:1,f=a.inArray(this.options.sortName,this.header.fields),g=0;return this.options.customSort!==a.noop?void this.options.customSort.apply(this,[this.options.sortName,this.options.sortOrder]):void(-1!==f&&(this.options.sortStable&&a.each(this.data,function(a,b){b.hasOwnProperty("_position")||(b._position=a)}),this.data.sort(function(c,g){b.header.sortNames[f]&&(d=b.header.sortNames[f]);var i=l(c,d,b.options.escape),j=l(g,d,b.options.escape),k=h(b.header,b.header.sorters[f],[i,j]);return void 0!==k?e*k:((void 0===i||null===i)&&(i=""),(void 0===j||null===j)&&(j=""),b.options.sortStable&&i===j&&(i=c._position,j=g._position),a.isNumeric(i)&&a.isNumeric(j)?(i=parseFloat(i),j=parseFloat(j),j>i?-1*e:e):i===j?0:("string"!=typeof i&&(i=i.toString()),-1===i.localeCompare(j)?-1*e:e))}),void 0!==this.options.sortClass&&(clearTimeout(g),g=setTimeout(function(){b.$el.removeClass(b.options.sortClass);var a=b.$header.find(c('[data-field="%s"]',b.options.sortName).index()+1);b.$el.find(c("tr td:nth-child(%s)",a)).addClass(b.options.sortClass)},250))))},o.prototype.onSort=function(b){var c="keypress"===b.type?a(b.currentTarget):a(b.currentTarget).parent(),d=this.$header.find("th").eq(c.index());return this.$header.add(this.$header_).find("span.order").remove(),this.options.sortName===c.data("field")?this.options.sortOrder="asc"===this.options.sortOrder?"desc":"asc":(this.options.sortName=c.data("field"),this.options.sortOrder="asc"===c.data("order")?"desc":"asc"),this.trigger("sort",this.options.sortName,this.options.sortOrder),c.add(d).data("order",this.options.sortOrder),this.getCaret(),"server"===this.options.sidePagination?void this.initServer(this.options.silentSort):(this.initSort(),void this.initBody())},o.prototype.initToolbar=function(){var b,d,e=this,f=[],g=0,i=0;this.$toolbar.find(".bs-bars").children().length&&a("body").append(a(this.options.toolbar)),this.$toolbar.html(""),("string"==typeof this.options.toolbar||"object"==typeof this.options.toolbar)&&a(c('<div class="bs-bars pull-%s"></div>',this.options.toolbarAlign)).appendTo(this.$toolbar).append(a(this.options.toolbar)),f=[c('<div class="columns columns-%s btn-group pull-%s">',this.options.buttonsAlign,this.options.buttonsAlign)],"string"==typeof this.options.icons&&(this.options.icons=h(null,this.options.icons)),this.options.showPaginationSwitch&&f.push(c('<button class="btn'+c(" btn-%s",this.options.buttonsClass)+c(" btn-%s",this.options.iconSize)+'" type="button" name="paginationSwitch" aria-label="pagination Switch" title="%s">',this.options.formatPaginationSwitch()),c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.paginationSwitchDown),"</button>"),this.options.showRefresh&&f.push(c('<button class="btn'+c(" btn-%s",this.options.buttonsClass)+c(" btn-%s",this.options.iconSize)+'" type="button" name="refresh" aria-label="refresh" title="%s">',this.options.formatRefresh()),c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.refresh),"</button>"),this.options.showToggle&&f.push(c('<button class="btn'+c(" btn-%s",this.options.buttonsClass)+c(" btn-%s",this.options.iconSize)+'" type="button" name="toggle" aria-label="toggle" title="%s">',this.options.formatToggle()),c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.toggle),"</button>"),this.options.showColumns&&(f.push(c('<div class="keep-open btn-group" title="%s">',this.options.formatColumns()),'<button type="button" aria-label="columns" class="btn'+c(" btn-%s",this.options.buttonsClass)+c(" btn-%s",this.options.iconSize)+' dropdown-toggle" data-toggle="dropdown">',c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.columns),' <span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">'),a.each(this.columns,function(a,b){if(!(b.radio||b.checkbox||e.options.cardView&&!b.cardVisible)){var d=b.visible?' checked="checked"':"";b.switchable&&(f.push(c('<li role="menuitem"><label><input type="checkbox" data-field="%s" value="%s"%s> %s</label></li>',b.field,a,d,b.title)),i++)}}),f.push("</ul>","</div>")),f.push("</div>"),(this.showToolbar||f.length>2)&&this.$toolbar.append(f.join("")),this.options.showPaginationSwitch&&this.$toolbar.find('button[name="paginationSwitch"]').off("click").on("click",a.proxy(this.togglePagination,this)),this.options.showRefresh&&this.$toolbar.find('button[name="refresh"]').off("click").on("click",a.proxy(this.refresh,this)),this.options.showToggle&&this.$toolbar.find('button[name="toggle"]').off("click").on("click",function(){e.toggleView()}),this.options.showColumns&&(b=this.$toolbar.find(".keep-open"),i<=this.options.minimumCountColumns&&b.find("input").prop("disabled",!0),b.find("li").off("click").on("click",function(a){a.stopImmediatePropagation()}),b.find("input").off("click").on("click",function(){var b=a(this);e.toggleColumn(a(this).val(),b.prop("checked"),!1),e.trigger("column-switch",a(this).data("field"),b.prop("checked"))})),this.options.search&&(f=[],f.push('<div class="pull-'+this.options.searchAlign+' search">',c('<input class="form-control'+c(" input-%s",this.options.iconSize)+'" type="text" placeholder="%s">',this.options.formatSearch()),"</div>"),this.$toolbar.append(f.join("")),d=this.$toolbar.find(".search input"),d.off("keyup drop blur").on("keyup drop blur",function(b){e.options.searchOnEnterKey&&13!==b.keyCode||a.inArray(b.keyCode,[37,38,39,40])>-1||(clearTimeout(g),g=setTimeout(function(){e.onSearch(b)},e.options.searchTimeOut))}),m()&&d.off("mouseup").on("mouseup",function(a){clearTimeout(g),g=setTimeout(function(){e.onSearch(a)},e.options.searchTimeOut)}))},o.prototype.onSearch=function(b){var c=a.trim(a(b.currentTarget).val());this.options.trimOnSearch&&a(b.currentTarget).val()!==c&&a(b.currentTarget).val(c),c!==this.searchText&&(this.searchText=c,this.options.searchText=c,this.options.pageNumber=1,this.initSearch(),this.updatePagination(),this.trigger("search",c))},o.prototype.initSearch=function(){var b=this;if("server"!==this.options.sidePagination){if(this.options.customSearch!==a.noop)return void this.options.customSearch.apply(this,[this.searchText]);var c=this.searchText&&(this.options.escape?j(this.searchText):this.searchText).toLowerCase(),d=a.isEmptyObject(this.filterColumns)?null:this.filterColumns;this.data=d?a.grep(this.options.data,function(b){for(var c in d)if(a.isArray(d[c])&&-1===a.inArray(b[c],d[c])||!a.isArray(d[c])&&b[c]!==d[c])return!1;return!0}):this.options.data,this.data=c?a.grep(this.data,function(d,f){for(var g=0;g<b.header.fields.length;g++)if(b.header.searchables[g]){var i,j=a.isNumeric(b.header.fields[g])?parseInt(b.header.fields[g],10):b.header.fields[g],k=b.columns[e(b.columns,j)];if("string"==typeof j){i=d;for(var l=j.split("."),m=0;m<l.length;m++)i=i[l[m]];k&&k.searchFormatter&&(i=h(k,b.header.formatters[g],[i,d,f],i))}else i=d[j];if("string"==typeof i||"number"==typeof i)if(b.options.strictSearch){if((i+"").toLowerCase()===c)return!0}else if(-1!==(i+"").toLowerCase().indexOf(c))return!0}return!1}):this.data}},o.prototype.initPagination=function(){if(!this.options.pagination)return void this.$pagination.hide();this.$pagination.show();var b,d,e,f,g,h,i,j,k,l=this,m=[],n=!1,o=this.getData(),p=this.options.pageList;if("server"!==this.options.sidePagination&&(this.options.totalRows=o.length),this.totalPages=0,this.options.totalRows){if(this.options.pageSize===this.options.formatAllRows())this.options.pageSize=this.options.totalRows,n=!0;else if(this.options.pageSize===this.options.totalRows){var q="string"==typeof this.options.pageList?this.options.pageList.replace("[","").replace("]","").replace(/ /g,"").toLowerCase().split(","):this.options.pageList;a.inArray(this.options.formatAllRows().toLowerCase(),q)>-1&&(n=!0)}this.totalPages=~~((this.options.totalRows-1)/this.options.pageSize)+1,this.options.totalPages=this.totalPages}if(this.totalPages>0&&this.options.pageNumber>this.totalPages&&(this.options.pageNumber=this.totalPages),this.pageFrom=(this.options.pageNumber-1)*this.options.pageSize+1,this.pageTo=this.options.pageNumber*this.options.pageSize,this.pageTo>this.options.totalRows&&(this.pageTo=this.options.totalRows),m.push('<div class="pull-'+this.options.paginationDetailHAlign+' pagination-detail">','<span class="pagination-info">',this.options.onlyInfoPagination?this.options.formatDetailPagination(this.options.totalRows):this.options.formatShowingRows(this.pageFrom,this.pageTo,this.options.totalRows),"</span>"),!this.options.onlyInfoPagination){m.push('<span class="page-list">');var r=[c('<span class="btn-group %s">',"top"===this.options.paginationVAlign||"both"===this.options.paginationVAlign?"dropdown":"dropup"),'<button type="button" class="btn'+c(" btn-%s",this.options.buttonsClass)+c(" btn-%s",this.options.iconSize)+' dropdown-toggle" data-toggle="dropdown">','<span class="page-size">',n?this.options.formatAllRows():this.options.pageSize,"</span>",' <span class="caret"></span>',"</button>",'<ul class="dropdown-menu" role="menu">'];if("string"==typeof this.options.pageList){var s=this.options.pageList.replace("[","").replace("]","").replace(/ /g,"").split(",");p=[],a.each(s,function(a,b){p.push(b.toUpperCase()===l.options.formatAllRows().toUpperCase()?l.options.formatAllRows():+b)})}for(a.each(p,function(a,b){if(!l.options.smartDisplay||0===a||p[a-1]<l.options.totalRows){var d;d=n?b===l.options.formatAllRows()?' class="active"':"":b===l.options.pageSize?' class="active"':"",r.push(c('<li role="menuitem"%s><a href="#">%s</a></li>',d,b))}}),r.push("</ul></span>"),m.push(this.options.formatRecordsPerPage(r.join(""))),m.push("</span>"),m.push("</div>",'<div class="pull-'+this.options.paginationHAlign+' pagination">','<ul class="pagination'+c(" pagination-%s",this.options.iconSize)+'">','<li class="page-pre"><a href="#">'+this.options.paginationPreText+"</a></li>"),this.totalPages<5?(d=1,e=this.totalPages):(d=this.options.pageNumber-2,e=d+4,1>d&&(d=1,e=5),e>this.totalPages&&(e=this.totalPages,d=e-4)),this.totalPages>=6&&(this.options.pageNumber>=3&&(m.push('<li class="page-first'+(1===this.options.pageNumber?" active":"")+'">','<a href="#">',1,"</a>","</li>"),d++),this.options.pageNumber>=4&&(4==this.options.pageNumber||6==this.totalPages||7==this.totalPages?d--:m.push('<li class="page-first-separator disabled">','<a href="#">...</a>',"</li>"),e--)),this.totalPages>=7&&this.options.pageNumber>=this.totalPages-2&&d--,6==this.totalPages?this.options.pageNumber>=this.totalPages-2&&e++:this.totalPages>=7&&(7==this.totalPages||this.options.pageNumber>=this.totalPages-3)&&e++,b=d;e>=b;b++)m.push('<li class="page-number'+(b===this.options.pageNumber?" active":"")+'">','<a href="#">',b,"</a>","</li>");this.totalPages>=8&&this.options.pageNumber<=this.totalPages-4&&m.push('<li class="page-last-separator disabled">','<a href="#">...</a>',"</li>"),this.totalPages>=6&&this.options.pageNumber<=this.totalPages-3&&m.push('<li class="page-last'+(this.totalPages===this.options.pageNumber?" active":"")+'">','<a href="#">',this.totalPages,"</a>","</li>"),m.push('<li class="page-next"><a href="#">'+this.options.paginationNextText+"</a></li>","</ul>","</div>")}this.$pagination.html(m.join("")),this.options.onlyInfoPagination||(f=this.$pagination.find(".page-list a"),g=this.$pagination.find(".page-first"),h=this.$pagination.find(".page-pre"),i=this.$pagination.find(".page-next"),j=this.$pagination.find(".page-last"),k=this.$pagination.find(".page-number"),this.options.smartDisplay&&(this.totalPages<=1&&this.$pagination.find("div.pagination").hide(),(p.length<2||this.options.totalRows<=p[0])&&this.$pagination.find("span.page-list").hide(),this.$pagination[this.getData().length?"show":"hide"]()),this.options.paginationLoop||(1===this.options.pageNumber&&h.addClass("disabled"),this.options.pageNumber===this.totalPages&&i.addClass("disabled")),n&&(this.options.pageSize=this.options.formatAllRows()),f.off("click").on("click",a.proxy(this.onPageListChange,this)),g.off("click").on("click",a.proxy(this.onPageFirst,this)),h.off("click").on("click",a.proxy(this.onPagePre,this)),i.off("click").on("click",a.proxy(this.onPageNext,this)),j.off("click").on("click",a.proxy(this.onPageLast,this)),k.off("click").on("click",a.proxy(this.onPageNumber,this)))},o.prototype.updatePagination=function(b){b&&a(b.currentTarget).hasClass("disabled")||(this.options.maintainSelected||this.resetRows(),this.initPagination(),"server"===this.options.sidePagination?this.initServer():this.initBody(),this.trigger("page-change",this.options.pageNumber,this.options.pageSize))},o.prototype.onPageListChange=function(b){var c=a(b.currentTarget);return c.parent().addClass("active").siblings().removeClass("active"),this.options.pageSize=c.text().toUpperCase()===this.options.formatAllRows().toUpperCase()?this.options.formatAllRows():+c.text(),this.$toolbar.find(".page-size").text(this.options.pageSize),this.updatePagination(b),!1},o.prototype.onPageFirst=function(a){return this.options.pageNumber=1,this.updatePagination(a),!1},o.prototype.onPagePre=function(a){return this.options.pageNumber-1===0?this.options.pageNumber=this.options.totalPages:this.options.pageNumber--,this.updatePagination(a),!1},o.prototype.onPageNext=function(a){return this.options.pageNumber+1>this.options.totalPages?this.options.pageNumber=1:this.options.pageNumber++,this.updatePagination(a),!1},o.prototype.onPageLast=function(a){return this.options.pageNumber=this.totalPages,this.updatePagination(a),!1},o.prototype.onPageNumber=function(b){return this.options.pageNumber!==+a(b.currentTarget).text()?(this.options.pageNumber=+a(b.currentTarget).text(),this.updatePagination(b),!1):void 0},o.prototype.initRow=function(b,e){var f,g=this,i=[],k={},m=[],n="",o={},p=[];if(!(a.inArray(b,this.hiddenRows)>-1)){if(k=h(this.options,this.options.rowStyle,[b,e],k),k&&k.css)for(f in k.css)m.push(f+": "+k.css[f]);if(o=h(this.options,this.options.rowAttributes,[b,e],o))for(f in o)p.push(c('%s="%s"',f,j(o[f])));return b._data&&!a.isEmptyObject(b._data)&&a.each(b._data,function(a,b){"index"!==a&&(n+=c(' data-%s="%s"',a,b))}),i.push("<tr",c(" %s",p.join(" ")),c(' id="%s"',a.isArray(b)?void 0:b._id),c(' class="%s"',k.classes||(a.isArray(b)?void 0:b._class)),c(' data-index="%s"',e),c(' data-uniqueid="%s"',b[this.options.uniqueId]),c("%s",n),">"),this.options.cardView&&i.push(c('<td colspan="%s"><div class="card-views">',this.header.fields.length)),!this.options.cardView&&this.options.detailView&&i.push("<td>",'<a class="detail-icon" href="#">',c('<i class="%s %s"></i>',this.options.iconsPrefix,this.options.icons.detailOpen),"</a>","</td>"),a.each(this.header.fields,function(f,n){var o="",p=l(b,n,g.options.escape),q="",r="",s={},t="",u=g.header.classes[f],v="",w="",x="",y="",z=g.columns[f];if(!(g.fromHtml&&"undefined"==typeof p||!z.visible||g.options.cardView&&!z.cardVisible)){if(z.escape&&(p=j(p)),k=c('style="%s"',m.concat(g.header.styles[f]).join("; ")),b["_"+n+"_id"]&&(t=c(' id="%s"',b["_"+n+"_id"])),b["_"+n+"_class"]&&(u=c(' class="%s"',b["_"+n+"_class"])),b["_"+n+"_rowspan"]&&(w=c(' rowspan="%s"',b["_"+n+"_rowspan"])),b["_"+n+"_colspan"]&&(x=c(' colspan="%s"',b["_"+n+"_colspan"])),b["_"+n+"_title"]&&(y=c(' title="%s"',b["_"+n+"_title"])),s=h(g.header,g.header.cellStyles[f],[p,b,e,n],s),s.classes&&(u=c(' class="%s"',s.classes)),s.css){var A=[];for(var B in s.css)A.push(B+": "+s.css[B]);k=c('style="%s"',A.concat(g.header.styles[f]).join("; "))}q=h(z,g.header.formatters[f],[p,b,e],p),b["_"+n+"_data"]&&!a.isEmptyObject(b["_"+n+"_data"])&&a.each(b["_"+n+"_data"],function(a,b){"index"!==a&&(v+=c(' data-%s="%s"',a,b))}),z.checkbox||z.radio?(r=z.checkbox?"checkbox":r,r=z.radio?"radio":r,o=[c(g.options.cardView?'<div class="card-view %s">':'<td class="bs-checkbox %s">',z["class"]||""),"<input"+c(' data-index="%s"',e)+c(' name="%s"',g.options.selectItemName)+c(' type="%s"',r)+c(' value="%s"',b[g.options.idField])+c(' checked="%s"',q===!0||p||q&&q.checked?"checked":void 0)+c(' disabled="%s"',!z.checkboxEnabled||q&&q.disabled?"disabled":void 0)+" />",g.header.formatters[f]&&"string"==typeof q?q:"",g.options.cardView?"</div>":"</td>"].join(""),b[g.header.stateField]=q===!0||q&&q.checked):(q="undefined"==typeof q||null===q?g.options.undefinedText:q,o=g.options.cardView?['<div class="card-view">',g.options.showHeader?c('<span class="title" %s>%s</span>',k,d(g.columns,"field","title",n)):"",c('<span class="value">%s</span>',q),"</div>"].join(""):[c("<td%s %s %s %s %s %s %s>",t,u,k,v,w,x,y),q,"</td>"].join(""),g.options.cardView&&g.options.smartDisplay&&""===q&&(o='<div class="card-view"></div>')),i.push(o)}}),this.options.cardView&&i.push("</div></td>"),i.push("</tr>"),i.join(" ")}},o.prototype.initBody=function(b){var d=this,f=this.getData();this.trigger("pre-body",f),this.$body=this.$el.find(">tbody"),this.$body.length||(this.$body=a("<tbody></tbody>").appendTo(this.$el)),this.options.pagination&&"server"!==this.options.sidePagination||(this.pageFrom=1,this.pageTo=f.length);for(var g,i=a(document.createDocumentFragment()),j=this.pageFrom-1;j<this.pageTo;j++){
+var k=f[j],m=this.initRow(k,j,f,i);g=g||!!m,m&&m!==!0&&i.append(m)}g||i.append('<tr class="no-records-found">'+c('<td colspan="%s">%s</td>',this.$header.find("th").length,this.options.formatNoMatches())+"</tr>"),this.$body.html(i),b||this.scrollTo(0),this.$body.find("> tr[data-index] > td").off("click dblclick").on("click dblclick",function(b){var f=a(this),g=f.parent(),h=d.data[g.data("index")],i=f[0].cellIndex,j=d.getVisibleFields(),k=j[d.options.detailView&&!d.options.cardView?i-1:i],m=d.columns[e(d.columns,k)],n=l(h,k,d.options.escape);if(!f.find(".detail-icon").length&&(d.trigger("click"===b.type?"click-cell":"dbl-click-cell",k,n,h,f),d.trigger("click"===b.type?"click-row":"dbl-click-row",h,g,k),"click"===b.type&&d.options.clickToSelect&&m.clickToSelect)){var o=g.find(c('[name="%s"]',d.options.selectItemName));o.length&&o[0].click()}}),this.$body.find("> tr[data-index] > td > .detail-icon").off("click").on("click",function(){var b=a(this),e=b.parent().parent(),g=e.data("index"),i=f[g];if(e.next().is("tr.detail-view"))b.find("i").attr("class",c("%s %s",d.options.iconsPrefix,d.options.icons.detailOpen)),d.trigger("collapse-row",g,i),e.next().remove();else{b.find("i").attr("class",c("%s %s",d.options.iconsPrefix,d.options.icons.detailClose)),e.after(c('<tr class="detail-view"><td colspan="%s"></td></tr>',e.find("td").length));var j=e.next().find("td"),k=h(d.options,d.options.detailFormatter,[g,i,j],"");1===j.length&&j.append(k),d.trigger("expand-row",g,i,j)}return d.resetView(),!1}),this.$selectItem=this.$body.find(c('[name="%s"]',this.options.selectItemName)),this.$selectItem.off("click").on("click",function(b){b.stopImmediatePropagation();var c=a(this),e=c.prop("checked"),f=d.data[c.data("index")];d.options.maintainSelected&&a(this).is(":radio")&&a.each(d.options.data,function(a,b){b[d.header.stateField]=!1}),f[d.header.stateField]=e,d.options.singleSelect&&(d.$selectItem.not(this).each(function(){d.data[a(this).data("index")][d.header.stateField]=!1}),d.$selectItem.filter(":checked").not(this).prop("checked",!1)),d.updateSelected(),d.trigger(e?"check":"uncheck",f,c)}),a.each(this.header.events,function(b,c){if(c){"string"==typeof c&&(c=h(null,c));var e=d.header.fields[b],f=a.inArray(e,d.getVisibleFields());d.options.detailView&&!d.options.cardView&&(f+=1);for(var g in c)d.$body.find(">tr:not(.no-records-found)").each(function(){var b=a(this),h=b.find(d.options.cardView?".card-view":"td").eq(f),i=g.indexOf(" "),j=g.substring(0,i),k=g.substring(i+1),l=c[g];h.find(k).off(j).on(j,function(a){var c=b.data("index"),f=d.data[c],g=f[e];l.apply(this,[a,g,f,c])})})}}),this.updateSelected(),this.resetView(),this.trigger("post-body",f)},o.prototype.initServer=function(b,c,d){var e,f=this,g={},i={searchText:this.searchText,sortName:this.options.sortName,sortOrder:this.options.sortOrder};this.options.pagination&&(i.pageSize=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize,i.pageNumber=this.options.pageNumber),(d||this.options.url||this.options.ajax)&&("limit"===this.options.queryParamsType&&(i={search:i.searchText,sort:i.sortName,order:i.sortOrder},this.options.pagination&&(i.offset=this.options.pageSize===this.options.formatAllRows()?0:this.options.pageSize*(this.options.pageNumber-1),i.limit=this.options.pageSize===this.options.formatAllRows()?this.options.totalRows:this.options.pageSize)),a.isEmptyObject(this.filterColumnsPartial)||(i.filter=JSON.stringify(this.filterColumnsPartial,null)),g=h(this.options,this.options.queryParams,[i],g),a.extend(g,c||{}),g!==!1&&(b||this.$tableLoading.show(),e=a.extend({},h(null,this.options.ajaxOptions),{type:this.options.method,url:d||this.options.url,data:"application/json"===this.options.contentType&&"post"===this.options.method?JSON.stringify(g):g,cache:this.options.cache,contentType:this.options.contentType,dataType:this.options.dataType,success:function(a){a=h(f.options,f.options.responseHandler,[a],a),f.load(a),f.trigger("load-success",a),b||f.$tableLoading.hide()},error:function(a){f.trigger("load-error",a.status,a),b||f.$tableLoading.hide()}}),this.options.ajax?h(this,this.options.ajax,[e],null):(this._xhr&&4!==this._xhr.readyState&&this._xhr.abort(),this._xhr=a.ajax(e))))},o.prototype.initSearchText=function(){if(this.options.search&&""!==this.options.searchText){var a=this.$toolbar.find(".search input");a.val(this.options.searchText),this.onSearch({currentTarget:a})}},o.prototype.getCaret=function(){var b=this;a.each(this.$header.find("th"),function(c,d){a(d).find(".sortable").removeClass("desc asc").addClass(a(d).data("field")===b.options.sortName?b.options.sortOrder:"both")})},o.prototype.updateSelected=function(){var b=this.$selectItem.filter(":enabled").length&&this.$selectItem.filter(":enabled").length===this.$selectItem.filter(":enabled").filter(":checked").length;this.$selectAll.add(this.$selectAll_).prop("checked",b),this.$selectItem.each(function(){a(this).closest("tr")[a(this).prop("checked")?"addClass":"removeClass"]("selected")})},o.prototype.updateRows=function(){var b=this;this.$selectItem.each(function(){b.data[a(this).data("index")][b.header.stateField]=a(this).prop("checked")})},o.prototype.resetRows=function(){var b=this;a.each(this.data,function(a,c){b.$selectAll.prop("checked",!1),b.$selectItem.prop("checked",!1),b.header.stateField&&(c[b.header.stateField]=!1)}),this.initHiddenRows()},o.prototype.trigger=function(b){var c=Array.prototype.slice.call(arguments,1);b+=".bs.table",this.options[o.EVENTS[b]].apply(this.options,c),this.$el.trigger(a.Event(b),c),this.options.onAll(b,c),this.$el.trigger(a.Event("all.bs.table"),[b,c])},o.prototype.resetHeader=function(){clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(a.proxy(this.fitHeader,this),this.$el.is(":hidden")?100:0)},o.prototype.fitHeader=function(){var b,d,e,f,h=this;if(h.$el.is(":hidden"))return void(h.timeoutId_=setTimeout(a.proxy(h.fitHeader,h),100));if(b=this.$tableBody.get(0),d=b.scrollWidth>b.clientWidth&&b.scrollHeight>b.clientHeight+this.$header.outerHeight()?g():0,this.$el.css("margin-top",-this.$header.outerHeight()),e=a(":focus"),e.length>0){var i=e.parents("th");if(i.length>0){var j=i.attr("data-field");if(void 0!==j){var k=this.$header.find("[data-field='"+j+"']");k.length>0&&k.find(":input").addClass("focus-temp")}}}this.$header_=this.$header.clone(!0,!0),this.$selectAll_=this.$header_.find('[name="btSelectAll"]'),this.$tableHeader.css({"margin-right":d}).find("table").css("width",this.$el.outerWidth()).html("").attr("class",this.$el.attr("class")).append(this.$header_),f=a(".focus-temp:visible:eq(0)"),f.length>0&&(f.focus(),this.$header.find(".focus-temp").removeClass("focus-temp")),this.$header.find("th[data-field]").each(function(){h.$header_.find(c('th[data-field="%s"]',a(this).data("field"))).data(a(this).data())});var l=this.getVisibleFields(),m=this.$header_.find("th");this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(b){var d=a(this),e=b;h.options.detailView&&!h.options.cardView&&(0===b&&h.$header_.find("th.detail").find(".fht-cell").width(d.innerWidth()),e=b-1);var f=h.$header_.find(c('th[data-field="%s"]',l[e]));f.length>1&&(f=a(m[d[0].cellIndex])),f.find(".fht-cell").width(d.innerWidth())}),this.$tableBody.off("scroll").on("scroll",function(){h.$tableHeader.scrollLeft(a(this).scrollLeft()),h.options.showFooter&&!h.options.cardView&&h.$tableFooter.scrollLeft(a(this).scrollLeft())}),h.trigger("post-header")},o.prototype.resetFooter=function(){var b=this,d=b.getData(),e=[];this.options.showFooter&&!this.options.cardView&&(!this.options.cardView&&this.options.detailView&&e.push('<td><div class="th-inner">&nbsp;</div><div class="fht-cell"></div></td>'),a.each(this.columns,function(a,f){var g,i="",j="",k=[],l={},m=c(' class="%s"',f["class"]);if(f.visible&&(!b.options.cardView||f.cardVisible)){if(i=c("text-align: %s; ",f.falign?f.falign:f.align),j=c("vertical-align: %s; ",f.valign),l=h(null,b.options.footerStyle),l&&l.css)for(g in l.css)k.push(g+": "+l.css[g]);e.push("<td",m,c(' style="%s"',i+j+k.concat().join("; ")),">"),e.push('<div class="th-inner">'),e.push(h(f,f.footerFormatter,[d],"&nbsp;")||"&nbsp;"),e.push("</div>"),e.push('<div class="fht-cell"></div>'),e.push("</div>"),e.push("</td>")}}),this.$tableFooter.find("tr").html(e.join("")),this.$tableFooter.show(),clearTimeout(this.timeoutFooter_),this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),this.$el.is(":hidden")?100:0))},o.prototype.fitFooter=function(){var b,c,d;return clearTimeout(this.timeoutFooter_),this.$el.is(":hidden")?void(this.timeoutFooter_=setTimeout(a.proxy(this.fitFooter,this),100)):(c=this.$el.css("width"),d=c>this.$tableBody.width()?g():0,this.$tableFooter.css({"margin-right":d}).find("table").css("width",c).attr("class",this.$el.attr("class")),b=this.$tableFooter.find("td"),void this.$body.find(">tr:first-child:not(.no-records-found) > *").each(function(c){var d=a(this);b.eq(c).find(".fht-cell").width(d.innerWidth())}))},o.prototype.toggleColumn=function(a,b,d){if(-1!==a&&(this.columns[a].visible=b,this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns)){var e=this.$toolbar.find(".keep-open input").prop("disabled",!1);d&&e.filter(c('[value="%s"]',a)).prop("checked",b),e.filter(":checked").length<=this.options.minimumCountColumns&&e.filter(":checked").prop("disabled",!0)}},o.prototype.getVisibleFields=function(){var b=this,c=[];return a.each(this.header.fields,function(a,d){var f=b.columns[e(b.columns,d)];f.visible&&c.push(d)}),c},o.prototype.resetView=function(a){var b=0;if(a&&a.height&&(this.options.height=a.height),this.$selectAll.prop("checked",this.$selectItem.length>0&&this.$selectItem.length===this.$selectItem.filter(":checked").length),this.options.height){var c=this.$toolbar.outerHeight(!0),d=this.$pagination.outerHeight(!0),e=this.options.height-c-d;this.$tableContainer.css("height",e+"px")}return this.options.cardView?(this.$el.css("margin-top","0"),this.$tableContainer.css("padding-bottom","0"),void this.$tableFooter.hide()):(this.options.showHeader&&this.options.height?(this.$tableHeader.show(),this.resetHeader(),b+=this.$header.outerHeight()):(this.$tableHeader.hide(),this.trigger("post-header")),this.options.showFooter&&(this.resetFooter(),this.options.height&&(b+=this.$tableFooter.outerHeight()+1)),this.getCaret(),this.$tableContainer.css("padding-bottom",b+"px"),void this.trigger("reset-view"))},o.prototype.getData=function(b){return!this.searchText&&a.isEmptyObject(this.filterColumns)&&a.isEmptyObject(this.filterColumnsPartial)?b?this.options.data.slice(this.pageFrom-1,this.pageTo):this.options.data:b?this.data.slice(this.pageFrom-1,this.pageTo):this.data},o.prototype.load=function(b){var c=!1;"server"===this.options.sidePagination?(this.options.totalRows=b[this.options.totalField],c=b.fixedScroll,b=b[this.options.dataField]):a.isArray(b)||(c=b.fixedScroll,b=b.data),this.initData(b),this.initSearch(),this.initPagination(),this.initBody(c)},o.prototype.append=function(a){this.initData(a,"append"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},o.prototype.prepend=function(a){this.initData(a,"prepend"),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},o.prototype.remove=function(b){var c,d,e=this.options.data.length;if(b.hasOwnProperty("field")&&b.hasOwnProperty("values")){for(c=e-1;c>=0;c--)d=this.options.data[c],d.hasOwnProperty(b.field)&&-1!==a.inArray(d[b.field],b.values)&&(this.options.data.splice(c,1),"server"===this.options.sidePagination&&(this.options.totalRows-=1));e!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))}},o.prototype.removeAll=function(){this.options.data.length>0&&(this.options.data.splice(0,this.options.data.length),this.initSearch(),this.initPagination(),this.initBody(!0))},o.prototype.getRowByUniqueId=function(a){var b,c,d,e=this.options.uniqueId,f=this.options.data.length,g=null;for(b=f-1;b>=0;b--){if(c=this.options.data[b],c.hasOwnProperty(e))d=c[e];else{if(!c._data.hasOwnProperty(e))continue;d=c._data[e]}if("string"==typeof d?a=a.toString():"number"==typeof d&&(Number(d)===d&&d%1===0?a=parseInt(a):d===Number(d)&&0!==d&&(a=parseFloat(a))),d===a){g=c;break}}return g},o.prototype.removeByUniqueId=function(a){var b=this.options.data.length,c=this.getRowByUniqueId(a);c&&this.options.data.splice(this.options.data.indexOf(c),1),b!==this.options.data.length&&(this.initSearch(),this.initPagination(),this.initBody(!0))},o.prototype.updateByUniqueId=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){var e;d.hasOwnProperty("id")&&d.hasOwnProperty("row")&&(e=a.inArray(c.getRowByUniqueId(d.id),c.options.data),-1!==e&&a.extend(c.options.data[e],d.row))}),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},o.prototype.insertRow=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("row")&&(this.data.splice(a.index,0,a.row),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0))},o.prototype.updateRow=function(b){var c=this,d=a.isArray(b)?b:[b];a.each(d,function(b,d){d.hasOwnProperty("index")&&d.hasOwnProperty("row")&&a.extend(c.options.data[d.index],d.row)}),this.initSearch(),this.initPagination(),this.initSort(),this.initBody(!0)},o.prototype.initHiddenRows=function(){this.hiddenRows=[]},o.prototype.showRow=function(a){this.toggleRow(a,!0)},o.prototype.hideRow=function(a){this.toggleRow(a,!1)},o.prototype.toggleRow=function(b,c){var d,e;b.hasOwnProperty("index")?d=this.getData()[b.index]:b.hasOwnProperty("uniqueId")&&(d=this.getRowByUniqueId(b.uniqueId)),d&&(e=a.inArray(d,this.hiddenRows),c||-1!==e?c&&e>-1&&this.hiddenRows.splice(e,1):this.hiddenRows.push(d),this.initBody(!0))},o.prototype.getHiddenRows=function(){var b=this,c=this.getData(),d=[];return a.each(c,function(c,e){a.inArray(e,b.hiddenRows)>-1&&d.push(e)}),this.hiddenRows=d,d},o.prototype.mergeCells=function(b){var c,d,e,f=b.index,g=a.inArray(b.field,this.getVisibleFields()),h=b.rowspan||1,i=b.colspan||1,j=this.$body.find(">tr");if(this.options.detailView&&!this.options.cardView&&(g+=1),e=j.eq(f).find(">td").eq(g),!(0>f||0>g||f>=this.data.length)){for(c=f;f+h>c;c++)for(d=g;g+i>d;d++)j.eq(c).find(">td").eq(d).hide();e.attr("rowspan",h).attr("colspan",i).show()}},o.prototype.updateCell=function(a){a.hasOwnProperty("index")&&a.hasOwnProperty("field")&&a.hasOwnProperty("value")&&(this.data[a.index][a.field]=a.value,a.reinit!==!1&&(this.initSort(),this.initBody(!0)))},o.prototype.getOptions=function(){return this.options},o.prototype.getSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]===!0})},o.prototype.getAllSelections=function(){var b=this;return a.grep(this.options.data,function(a){return a[b.header.stateField]})},o.prototype.checkAll=function(){this.checkAll_(!0)},o.prototype.uncheckAll=function(){this.checkAll_(!1)},o.prototype.checkInvert=function(){var b=this,c=b.$selectItem.filter(":enabled"),d=c.filter(":checked");c.each(function(){a(this).prop("checked",!a(this).prop("checked"))}),b.updateRows(),b.updateSelected(),b.trigger("uncheck-some",d),d=b.getSelections(),b.trigger("check-some",d)},o.prototype.checkAll_=function(a){var b;a||(b=this.getSelections()),this.$selectAll.add(this.$selectAll_).prop("checked",a),this.$selectItem.filter(":enabled").prop("checked",a),this.updateRows(),a&&(b=this.getSelections()),this.trigger(a?"check-all":"uncheck-all",b)},o.prototype.check=function(a){this.check_(!0,a)},o.prototype.uncheck=function(a){this.check_(!1,a)},o.prototype.check_=function(a,b){var d=this.$selectItem.filter(c('[data-index="%s"]',b)).prop("checked",a);this.data[b][this.header.stateField]=a,this.updateSelected(),this.trigger(a?"check":"uncheck",this.data[b],d)},o.prototype.checkBy=function(a){this.checkBy_(!0,a)},o.prototype.uncheckBy=function(a){this.checkBy_(!1,a)},o.prototype.checkBy_=function(b,d){if(d.hasOwnProperty("field")&&d.hasOwnProperty("values")){var e=this,f=[];a.each(this.options.data,function(g,h){if(!h.hasOwnProperty(d.field))return!1;if(-1!==a.inArray(h[d.field],d.values)){var i=e.$selectItem.filter(":enabled").filter(c('[data-index="%s"]',g)).prop("checked",b);h[e.header.stateField]=b,f.push(h),e.trigger(b?"check":"uncheck",h,i)}}),this.updateSelected(),this.trigger(b?"check-some":"uncheck-some",f)}},o.prototype.destroy=function(){this.$el.insertBefore(this.$container),a(this.options.toolbar).insertBefore(this.$el),this.$container.next().remove(),this.$container.remove(),this.$el.html(this.$el_.html()).css("margin-top","0").attr("class",this.$el_.attr("class")||"")},o.prototype.showLoading=function(){this.$tableLoading.show()},o.prototype.hideLoading=function(){this.$tableLoading.hide()},o.prototype.togglePagination=function(){this.options.pagination=!this.options.pagination;var a=this.$toolbar.find('button[name="paginationSwitch"] i');this.options.pagination?a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchDown):a.attr("class",this.options.iconsPrefix+" "+this.options.icons.paginationSwitchUp),this.updatePagination()},o.prototype.refresh=function(a){a&&a.url&&(this.options.url=a.url),a&&a.pageNumber&&(this.options.pageNumber=a.pageNumber),a&&a.pageSize&&(this.options.pageSize=a.pageSize),this.initServer(a&&a.silent,a&&a.query,a&&a.url),this.trigger("refresh",a)},o.prototype.resetWidth=function(){this.options.showHeader&&this.options.height&&this.fitHeader(),this.options.showFooter&&this.fitFooter()},o.prototype.showColumn=function(a){this.toggleColumn(e(this.columns,a),!0,!0)},o.prototype.hideColumn=function(a){this.toggleColumn(e(this.columns,a),!1,!0)},o.prototype.getHiddenColumns=function(){return a.grep(this.columns,function(a){return!a.visible})},o.prototype.getVisibleColumns=function(){return a.grep(this.columns,function(a){return a.visible})},o.prototype.toggleAllColumns=function(b){if(a.each(this.columns,function(a){this.columns[a].visible=b}),this.initHeader(),this.initSearch(),this.initPagination(),this.initBody(),this.options.showColumns){var c=this.$toolbar.find(".keep-open input").prop("disabled",!1);c.filter(":checked").length<=this.options.minimumCountColumns&&c.filter(":checked").prop("disabled",!0)}},o.prototype.showAllColumns=function(){this.toggleAllColumns(!0)},o.prototype.hideAllColumns=function(){this.toggleAllColumns(!1)},o.prototype.filterBy=function(b){this.filterColumns=a.isEmptyObject(b)?{}:b,this.options.pageNumber=1,this.initSearch(),this.updatePagination()},o.prototype.scrollTo=function(a){return"string"==typeof a&&(a="bottom"===a?this.$tableBody[0].scrollHeight:0),"number"==typeof a&&this.$tableBody.scrollTop(a),"undefined"==typeof a?this.$tableBody.scrollTop():void 0},o.prototype.getScrollPosition=function(){return this.scrollTo()},o.prototype.selectPage=function(a){a>0&&a<=this.options.totalPages&&(this.options.pageNumber=a,this.updatePagination())},o.prototype.prevPage=function(){this.options.pageNumber>1&&(this.options.pageNumber--,this.updatePagination())},o.prototype.nextPage=function(){this.options.pageNumber<this.options.totalPages&&(this.options.pageNumber++,this.updatePagination())},o.prototype.toggleView=function(){this.options.cardView=!this.options.cardView,this.initHeader(),this.initBody(),this.trigger("toggle",this.options.cardView)},o.prototype.refreshOptions=function(b){i(this.options,b,!0)||(this.options=a.extend(this.options,b),this.trigger("refresh-options",this.options),this.destroy(),this.init())},o.prototype.resetSearch=function(a){var b=this.$toolbar.find(".search input");b.val(a||""),this.onSearch({currentTarget:b})},o.prototype.expandRow_=function(a,b){var d=this.$body.find(c('> tr[data-index="%s"]',b));d.next().is("tr.detail-view")===(a?!1:!0)&&d.find("> td > .detail-icon").click()},o.prototype.expandRow=function(a){this.expandRow_(!0,a)},o.prototype.collapseRow=function(a){this.expandRow_(!1,a)},o.prototype.expandAllRows=function(b){if(b){var d=this.$body.find(c('> tr[data-index="%s"]',0)),e=this,f=null,g=!1,h=-1;if(d.next().is("tr.detail-view")?d.next().next().is("tr.detail-view")||(d.next().find(".detail-icon").click(),g=!0):(d.find("> td > .detail-icon").click(),g=!0),g)try{h=setInterval(function(){f=e.$body.find("tr.detail-view").last().find(".detail-icon"),f.length>0?f.click():clearInterval(h)},1)}catch(i){clearInterval(h)}}else for(var j=this.$body.children(),k=0;k<j.length;k++)this.expandRow_(!0,a(j[k]).data("index"))},o.prototype.collapseAllRows=function(b){if(b)this.expandRow_(!1,0);else for(var c=this.$body.children(),d=0;d<c.length;d++)this.expandRow_(!1,a(c[d]).data("index"))},o.prototype.updateFormatText=function(a,b){this.options[c("format%s",a)]&&("string"==typeof b?this.options[c("format%s",a)]=function(){return b}:"function"==typeof b&&(this.options[c("format%s",a)]=b)),this.initToolbar(),this.initPagination(),this.initBody()};var p=["getOptions","getSelections","getAllSelections","getData","load","append","prepend","remove","removeAll","insertRow","updateRow","updateCell","updateByUniqueId","removeByUniqueId","getRowByUniqueId","showRow","hideRow","getHiddenRows","mergeCells","checkAll","uncheckAll","checkInvert","check","uncheck","checkBy","uncheckBy","refresh","resetView","resetWidth","destroy","showLoading","hideLoading","showColumn","hideColumn","getHiddenColumns","getVisibleColumns","showAllColumns","hideAllColumns","filterBy","scrollTo","getScrollPosition","selectPage","prevPage","nextPage","togglePagination","toggleView","refreshOptions","resetSearch","expandRow","collapseRow","expandAllRows","collapseAllRows","updateFormatText"];a.fn.bootstrapTable=function(b){var c,d=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=a(this),f=e.data("bootstrap.table"),g=a.extend({},o.DEFAULTS,e.data(),"object"==typeof b&&b);if("string"==typeof b){if(a.inArray(b,p)<0)throw new Error("Unknown method: "+b);if(!f)return;c=f[b].apply(f,d),"destroy"===b&&e.removeData("bootstrap.table")}f||e.data("bootstrap.table",f=new o(this,g))}),"undefined"==typeof c?this:c},a.fn.bootstrapTable.Constructor=o,a.fn.bootstrapTable.defaults=o.DEFAULTS,a.fn.bootstrapTable.columnDefaults=o.COLUMN_DEFAULTS,a.fn.bootstrapTable.locales=o.LOCALES,a.fn.bootstrapTable.methods=p,a.fn.bootstrapTable.utils={sprintf:c,getFieldIndex:e,compareObjects:i,calculateObjectValue:h,getItemField:l,objectKeys:n,isIEBrowser:m},a(function(){a('[data-toggle="table"]').bootstrapTable()})}(jQuery);
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
new file mode 100644
index 0000000..874f340
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
@@ -0,0 +1,46 @@
+/**
+ * Bootstrap Table Chinese translation
+ * Author: Zhixin Wen<wenzhixin2010@gmail.com>
+ */
+(function ($) {
+    'use strict';
+
+    $.fn.bootstrapTable.locales['zh-CN'] = {
+        formatLoadingMessage: function () {
+            return '正在努力地加载数据中,请稍候……';
+        },
+        formatRecordsPerPage: function (pageNumber) {
+            return '每页显示 ' + pageNumber + ' 条记录';
+        },
+        formatShowingRows: function (pageFrom, pageTo, totalRows) {
+            return '显示第 ' + pageFrom + ' 到第 ' + pageTo + ' 条记录,总共 ' + totalRows + ' 条记录';
+        },
+        formatSearch: function () {
+            return '搜索';
+        },
+        formatNoMatches: function () {
+            return '没有找到匹配的记录';
+        },
+        formatPaginationSwitch: function () {
+            return '隐藏/显示分页';
+        },
+        formatRefresh: function () {
+            return '刷新';
+        },
+        formatToggle: function () {
+            return '切换';
+        },
+        formatColumns: function () {
+            return '列';
+        },
+        formatExport: function () {
+            return '导出数据';
+        },
+        formatClearFilters: function () {
+            return '清空过滤';
+        }
+    };
+
+    $.extend($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales['zh-CN']);
+
+})(jQuery);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
new file mode 100644
index 0000000..2fcd8d4
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
@@ -0,0 +1,7 @@
+/*
+* bootstrap-table - v1.11.1 - 2017-02-22
+* https://github.com/wenzhixin/bootstrap-table
+* Copyright (c) 2017 zhixin wen
+* Licensed MIT License
+*/
+!function(a){"use strict";a.fn.bootstrapTable.locales["zh-CN"]={formatLoadingMessage:function(){return"正在努力地加载数据中,请稍候……"},formatRecordsPerPage:function(a){return"每页显示 "+a+" 条记录"},formatShowingRows:function(a,b,c){return"显示第 "+a+" 到第 "+b+" 条记录,总共 "+c+" 条记录"},formatSearch:function(){return"搜索"},formatNoMatches:function(){return"没有找到匹配的记录"},formatPaginationSwitch:function(){return"隐藏/显示分页"},formatRefresh:function(){return"刷新"},formatToggle:function(){return"切换"},formatColumns:function(){return"列"},formatExport:function(){return"导出数据"},formatClearFilters:function(){return"清空过滤"}},a.extend(a.fn.bootstrapTable.defaults,a.fn.bootstrapTable.locales["zh-CN"])}(jQuery);
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js
new file mode 100644
index 0000000..2daffe7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/bootstrap-treetable/bootstrap-treetable.js
@@ -0,0 +1,308 @@
+(function($) {
+	"use strict";
+
+	$.fn.bootstrapTreeTable = function(options, param) {
+		var allData = null;//用于存放格式化后的数据
+		// 如果是调用方法
+		if (typeof options == 'string') {
+			return $.fn.bootstrapTreeTable.methods[options](this, param);
+		}
+		// 如果是初始化组件
+		options = $.extend({}, $.fn.bootstrapTreeTable.defaults, options || {});
+		// 是否有radio或checkbox
+		var hasSelectItem = false;
+		var target = $(this);
+		// 在外层包装一下div,样式用的bootstrap-table的
+		var _main_div = $("<div class='bootstrap-tree-table fixed-table-container'></div>");
+		target.before(_main_div);
+		_main_div.append(target);
+		target.addClass("table table-hover treetable-table table-bordered");
+		if (options.striped) {
+			target.addClass('table-striped');
+		}
+		// 工具条在外层包装一下div,样式用的bootstrap-table的
+		if(options.toolbar){
+			var _tool_div = $("<div class='fixed-table-toolbar'></div>");
+			var _tool_left_div = $("<div class='bs-bars pull-left'></div>");
+			_tool_left_div.append($(options.toolbar));
+			_tool_div.append(_tool_left_div);
+			_main_div.before(_tool_div);
+		}
+		// 格式化数据,优化性能
+		target.formatData=function(data){
+			var _root = options.rootCodeValue?options.rootCodeValue:null
+			$.each(data, function(index, item) {
+				// 添加一个默认属性,用来判断当前节点有没有被显示
+				item.isShow = false;
+				// 这里兼容几种常见Root节点写法
+				// 默认的几种判断
+				var _defaultRootFlag = item[options.parentCode] == '0'
+					|| item[options.parentCode] == 0
+					|| item[options.parentCode] == null
+					|| item[options.parentCode] == '';
+				if (!item[options.parentCode] || (_root?(item[options.parentCode] == options.rootCodeValue):_defaultRootFlag)){
+					if(!allData["_root_"]){allData["_root_"]=[];}
+					allData["_root_"].push(item);
+				}else{
+					if(!allData["_n_"+item[options.parentCode]]){allData["_n_"+item[options.parentCode]]=[];}
+					allData["_n_"+item[options.parentCode]].push(item);
+				}
+			});
+		}
+		// 得到根节点
+		target.getRootNodes = function() {
+			return allData["_root_"];
+		};
+		// 递归获取子节点并且设置子节点
+		target.handleNode = function(parentNode, lv, tbody) {
+			var _ls = allData["_n_"+parentNode[options.code]];
+			var tr = target.renderRow(parentNode,_ls?true:false,lv);
+			tbody.append(tr);
+			if(_ls){
+				$.each(_ls, function(i, item) {
+					target.handleNode(item, (lv + 1), tbody)
+				});
+			}
+		}; 
+		// 绘制行
+		target.renderRow = function(item,isP,lv){
+			// 标记已显示
+			item.isShow = true;
+			var tr = $('<tr class="tg-'+item[options.parentCode]+'"></tr>');
+			var _icon = options.expanderCollapsedClass;
+        	if(options.expandAll){
+            	tr.css("display","table");
+            	_icon = options.expanderExpandedClass;
+        	}else if(options.expandFirst&&lv<=2){
+            	tr.css("display","table");
+            	_icon=(lv==1)?options.expanderExpandedClass:options.expanderCollapsedClass;
+        	}else{
+            	tr.css("display","none");
+            	_icon = options.expanderCollapsedClass;
+        	}
+			$.each(options.columns, function(index, column) {
+				// 判断有没有选择列
+				if(index==0&&column.field=='selectItem'){
+					hasSelectItem = true;
+					var td = $('<td style="text-align:center;width:36px"></td>');
+					if(column.radio){
+						var _ipt = $('<input name="select_item" type="radio" value="'+item[options.id]+'"></input>');
+						td.append(_ipt);
+					} 
+					if(column.checkbox){
+						var _ipt = $('<input name="select_item" type="checkbox" value="'+item[options.id]+'"></input>');
+						td.append(_ipt);
+					} 
+					tr.append(td);
+				}else{
+					var td = $('<td title="'+item[column.field]+'" name="'+column.field+'" style="'+((column.width)?('width:'+column.width):'')+'"></td>');
+					// 增加formatter渲染
+                    if (column.formatter) {
+                        td.html(column.formatter.call(this, item[column.field], item, index));
+                    } else {
+                        td.text(item[column.field]);
+                    }
+                	if(options.expandColumn==index){
+                		if(!isP){
+                    		td.prepend('<span class="treetable-expander"></span>')
+                		}else{
+                    		td.prepend('<span class="treetable-expander '+_icon+'"></span>')
+                		}
+                		for (var int = 0; int < (lv-1); int++) {
+                    		td.prepend('<span class="treetable-indent"></span>')
+						}
+					}
+					tr.append(td);
+				}
+			});
+			return tr;
+		}
+		// 加载数据
+		target.load = function(parms){
+			// 加载数据前先清空
+			allData = {};
+			// 加载数据前先清空
+			target.html("");
+			// 构造表头
+			var thr = $('<tr></tr>');
+			$.each(options.columns, function(i, item) {
+				var th = null;
+				// 判断有没有选择列
+				if(i==0&&item.field=='selectItem'){
+					hasSelectItem = true;
+					th = $('<th style="width:36px"></th>');
+				}else{
+					th = $('<th style="'+((item.width)?('width:'+item.width):'')+'"></th>');
+				}
+				th.text(item.title);
+				thr.append(th);
+			});
+			var thead = $('<thead class="treetable-thead"></thead>');
+			thead.append(thr);
+			target.append(thead);
+			// 构造表体
+			var tbody = $('<tbody class="treetable-tbody"></tbody>');
+			target.append(tbody);
+			// 添加加载loading
+			var _loading = '<tr><td colspan="'+options.columns.length+'"><div style="display: block;text-align: center;">正在努力地加载数据中,请稍候……</div></td></tr>'
+			tbody.html(_loading);
+			// 默认高度
+			if(options.height){
+				tbody.css("height",options.height);
+			}
+			$.ajax({
+				type : options.type,
+				url : options.url,
+				data : parms?parms:options.ajaxParams,
+				dataType : "JSON",
+				success : function(data, textStatus, jqXHR) {
+					// 加载完数据先清空
+					tbody.html("");
+					if(!data||data.length<=0){
+						var _empty = '<tr><td colspan="'+options.columns.length+'"><div style="display: block;text-align: center;">没有找到匹配的记录</div></td></tr>'
+						tbody.html(_empty);
+						return;
+					}
+					// 格式化数据
+					target.formatData(data);
+					// 开始绘制
+					var rootNode = target.getRootNodes();
+					if(rootNode){
+						$.each(rootNode, function(i, item) {
+							target.handleNode(item, 1, tbody);
+						});
+					}
+					// 下边的操作主要是为了查询时让一些没有根节点的节点显示
+					$.each(data, function(i, item) {
+						if(!item.isShow){
+							var tr = target.renderRow(item,false,1);
+							tbody.append(tr);
+						}
+					});
+					target.append(tbody);
+					//动态设置表头宽度
+					thead.css("width", tbody.children(":first").css("width"));
+					// 行点击选中事件
+					target.find("tbody").find("tr").click(function(){
+						if(hasSelectItem){
+							var _ipt = $(this).find("input[name='select_item']");
+							if(_ipt.attr("type")=="radio"){
+								_ipt.prop('checked',true);
+								target.find("tbody").find("tr").removeClass("treetable-selected");
+								$(this).addClass("treetable-selected");
+							}else{
+								if(_ipt.prop('checked')){
+									_ipt.prop('checked',false);
+									$(this).removeClass("treetable-selected");
+								}else{
+									_ipt.prop('checked',true);
+									$(this).addClass("treetable-selected");
+								}
+							}
+						}
+					});
+					// 小图标点击事件--展开缩起
+					target.find("tbody").find("tr").find(".treetable-expander").click(function(){
+						var tr = $(this).parent().parent();
+						var _code = tr.find("input[name='select_item']").val();
+						if(options.id==options.code){
+							_code = tr.find("input[name='select_item']").val();
+						}else{
+							_code = tr.find("td[name='"+options.code+"']").text();
+						}
+						var _ls = target.find("tbody").find(".tg-"+_code);//下一级
+						if(_ls&&_ls.length>0){
+							var _flag = $(this).hasClass(options.expanderExpandedClass);
+							$.each(_ls, function(index, item) {
+								$(item).css("display",_flag?"none":"table");
+							});
+							if(_flag){
+								$(this).removeClass(options.expanderExpandedClass)
+								$(this).addClass(options.expanderCollapsedClass)
+							}else{
+								$(this).removeClass(options.expanderCollapsedClass)
+								$(this).addClass(options.expanderExpandedClass)
+							}
+						}
+					});
+				},
+			    error:function(xhr,textStatus){
+					var _errorMsg = '<tr><td colspan="'+options.columns.length+'"><div style="display: block;text-align: center;">'+xhr.responseText+'</div></td></tr>'
+					tbody.html(_errorMsg);
+					debugger;
+			    },
+			});
+		}
+		if (options.url) {
+			target.load();
+		} else {
+			// 也可以通过defaults里面的data属性通过传递一个数据集合进来对组件进行初始化....有兴趣可以自己实现,思路和上述类似
+		}
+		
+		return target;
+	};
+
+	// 组件方法封装........
+	$.fn.bootstrapTreeTable.methods = {
+		// 返回选中记录的id(返回的id由配置中的id属性指定)
+		// 为了兼容bootstrap-table的写法,统一返回数组,这里只返回了指定的id
+		getSelections : function(target, data) {
+			// 所有被选中的记录input
+			var _ipt = target.find("tbody").find("tr").find("input[name='select_item']:checked");
+			var chk_value =[]; 
+			// 如果是radio
+			if(_ipt.attr("type")=="radio"){
+				var _data = {id:_ipt.val()};
+				var _tds = _ipt.parent().parent().find("td");
+				_tds.each(function(_i,_item){ 
+					if(_i!=0){
+						_data[$(_item).attr("name")]=$(_item).text();
+					}
+				}); 
+				chk_value.push(_data); 
+			}else{
+				_ipt.each(function(_i,_item){ 
+					var _data = {id:$(_item).val()};
+					var _tds = $(_item).parent().parent().find("td");
+					_tds.each(function(_ii,_iitem){ 
+						if(_ii!=0){
+							_data[$(_iitem).attr("name")]=$(_iitem).text();
+						}
+					}); 
+					chk_value.push(_data); 
+				}); 
+			}
+			return chk_value;
+		},
+		// 刷新记录
+		refresh : function(target, parms) {
+			if(parms){
+				target.load(parms);
+			}else{
+				target.load();
+			}
+		},
+	// 组件的其他方法也可以进行类似封装........
+	};
+
+	$.fn.bootstrapTreeTable.defaults = {
+		id : 'id',// 选取记录返回的值
+		code : 'id',// 用于设置父子关系
+		parentCode : 'parentId',// 用于设置父子关系
+		rootCodeValue: null,//设置根节点code值----可指定根节点,默认为null,"",0,"0"
+		data : [], // 构造table的数据集合
+		type : "GET", // 请求数据的ajax类型
+		url : null, // 请求数据的ajax的url
+		ajaxParams : {}, // 请求数据的ajax的data属性
+		expandColumn : null,// 在哪一列上面显示展开按钮
+		expandAll : true, // 是否全部展开
+        expandFirst : false, // 是否默认第一级展开--expandAll为false时生效
+		striped : false, // 是否各行渐变色
+		columns : [],
+        toolbar: null,//顶部工具条
+        height: 0,
+		expanderExpandedClass : 'glyphicon glyphicon-chevron-down',// 展开的按钮的图标
+		expanderCollapsedClass : 'glyphicon glyphicon-chevron-right'// 缩起的按钮的图标
+
+	};
+})(jQuery);
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/chosen/chosen.jquery.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/chosen/chosen.jquery.js
new file mode 100644
index 0000000..e7181e9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/chosen/chosen.jquery.js
@@ -0,0 +1,1211 @@
+/*!
+ Chosen, a Select Box Enhancer for jQuery and Prototype
+ by Patrick Filler for Harvest, http://getharvest.com
+
+ Version 1.1.0
+ Full source at https://github.com/harvesthq/chosen
+ Copyright (c) 2011 Harvest http://getharvest.com
+
+ MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
+ This file is generated by `grunt build`, do not edit it by hand.
+ */
+
+(function() {
+    var $, AbstractChosen, Chosen, SelectParser, _ref,
+        __hasProp = {}.hasOwnProperty,
+        __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
+
+    SelectParser = (function() {
+        function SelectParser() {
+            this.options_index = 0;
+            this.parsed = [];
+        }
+
+        SelectParser.prototype.add_node = function(child) {
+            if (child.nodeName.toUpperCase() === "OPTGROUP") {
+                return this.add_group(child);
+            } else {
+                return this.add_option(child);
+            }
+        };
+
+        SelectParser.prototype.add_group = function(group) {
+            var group_position, option, _i, _len, _ref, _results;
+            group_position = this.parsed.length;
+            this.parsed.push({
+                array_index: group_position,
+                group: true,
+                label: this.escapeExpression(group.label),
+                children: 0,
+                disabled: group.disabled
+            });
+            _ref = group.childNodes;
+            _results = [];
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                option = _ref[_i];
+                _results.push(this.add_option(option, group_position, group.disabled));
+            }
+            return _results;
+        };
+
+        SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
+            if (option.nodeName.toUpperCase() === "OPTION") {
+                if (option.text !== "") {
+                    if (group_position != null) {
+                        this.parsed[group_position].children += 1;
+                    }
+                    this.parsed.push({
+                        array_index: this.parsed.length,
+                        options_index: this.options_index,
+                        value: option.value,
+                        text: option.text,
+                        html: option.innerHTML,
+                        selected: option.selected,
+                        disabled: group_disabled === true ? group_disabled : option.disabled,
+                        group_array_index: group_position,
+                        classes: option.className,
+                        style: option.style.cssText
+                    });
+                } else {
+                    this.parsed.push({
+                        array_index: this.parsed.length,
+                        options_index: this.options_index,
+                        empty: true
+                    });
+                }
+                return this.options_index += 1;
+            }
+        };
+
+        SelectParser.prototype.escapeExpression = function(text) {
+            var map, unsafe_chars;
+            if ((text == null) || text === false) {
+                return "";
+            }
+            if (!/[\&\<\>\"\'\`]/.test(text)) {
+                return text;
+            }
+            map = {
+                "<": "&lt;",
+                ">": "&gt;",
+                '"': "&quot;",
+                "'": "&#x27;",
+                "`": "&#x60;"
+            };
+            unsafe_chars = /&(?!\w+;)|[\<\>\"\'\`]/g;
+            return text.replace(unsafe_chars, function(chr) {
+                return map[chr] || "&amp;";
+            });
+        };
+
+        return SelectParser;
+
+    })();
+
+    SelectParser.select_to_array = function(select) {
+        var child, parser, _i, _len, _ref;
+        parser = new SelectParser();
+        _ref = select.childNodes;
+        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+            child = _ref[_i];
+            parser.add_node(child);
+        }
+        return parser.parsed;
+    };
+
+    AbstractChosen = (function() {
+        function AbstractChosen(form_field, options) {
+            this.form_field = form_field;
+            this.options = options != null ? options : {};
+            if (!AbstractChosen.browser_is_supported()) {
+                return;
+            }
+            this.is_multiple = this.form_field.multiple;
+            this.set_default_text();
+            this.set_default_values();
+            this.setup();
+            this.set_up_html();
+            this.register_observers();
+        }
+
+        AbstractChosen.prototype.set_default_values = function() {
+            var _this = this;
+            this.click_test_action = function(evt) {
+                return _this.test_active_click(evt);
+            };
+            this.activate_action = function(evt) {
+                return _this.activate_field(evt);
+            };
+            this.active_field = false;
+            this.mouse_on_container = false;
+            this.results_showing = false;
+            this.result_highlighted = null;
+            this.allow_single_deselect = (this.options.allow_single_deselect != null) && (this.form_field.options[0] != null) && this.form_field.options[0].text === "" ? this.options.allow_single_deselect : false;
+            this.disable_search_threshold = this.options.disable_search_threshold || 0;
+            this.disable_search = this.options.disable_search || false;
+            this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
+            this.group_search = this.options.group_search != null ? this.options.group_search : true;
+            this.search_contains = this.options.search_contains || false;
+            this.single_backstroke_delete = this.options.single_backstroke_delete != null ? this.options.single_backstroke_delete : true;
+            this.max_selected_options = this.options.max_selected_options || Infinity;
+            this.inherit_select_classes = this.options.inherit_select_classes || false;
+            this.display_selected_options = this.options.display_selected_options != null ? this.options.display_selected_options : true;
+            return this.display_disabled_options = this.options.display_disabled_options != null ? this.options.display_disabled_options : true;
+        };
+
+        AbstractChosen.prototype.set_default_text = function() {
+            if (this.form_field.getAttribute("data-placeholder")) {
+                this.default_text = this.form_field.getAttribute("data-placeholder");
+            } else if (this.is_multiple) {
+                this.default_text = this.options.placeholder_text_multiple || this.options.placeholder_text || AbstractChosen.default_multiple_text;
+            } else {
+                this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || AbstractChosen.default_single_text;
+            }
+            return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || AbstractChosen.default_no_result_text;
+        };
+
+        AbstractChosen.prototype.mouse_enter = function() {
+            return this.mouse_on_container = true;
+        };
+
+        AbstractChosen.prototype.mouse_leave = function() {
+            return this.mouse_on_container = false;
+        };
+
+        AbstractChosen.prototype.input_focus = function(evt) {
+            var _this = this;
+            if (this.is_multiple) {
+                if (!this.active_field) {
+                    return setTimeout((function() {
+                        return _this.container_mousedown();
+                    }), 50);
+                }
+            } else {
+                if (!this.active_field) {
+                    return this.activate_field();
+                }
+            }
+        };
+
+        AbstractChosen.prototype.input_blur = function(evt) {
+            var _this = this;
+            if (!this.mouse_on_container) {
+                this.active_field = false;
+                return setTimeout((function() {
+                    return _this.blur_test();
+                }), 100);
+            }
+        };
+
+        AbstractChosen.prototype.results_option_build = function(options) {
+            var content, data, _i, _len, _ref;
+            content = '';
+            _ref = this.results_data;
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                data = _ref[_i];
+                if (data.group) {
+                    content += this.result_add_group(data);
+                } else {
+                    content += this.result_add_option(data);
+                }
+                if (options != null ? options.first : void 0) {
+                    if (data.selected && this.is_multiple) {
+                        this.choice_build(data);
+                    } else if (data.selected && !this.is_multiple) {
+                        this.single_set_selected_text(data.text);
+                    }
+                }
+            }
+            return content;
+        };
+
+        AbstractChosen.prototype.result_add_option = function(option) {
+            var classes, option_el;
+            if (!option.search_match) {
+                return '';
+            }
+            if (!this.include_option_in_results(option)) {
+                return '';
+            }
+            classes = [];
+            if (!option.disabled && !(option.selected && this.is_multiple)) {
+                classes.push("active-result");
+            }
+            if (option.disabled && !(option.selected && this.is_multiple)) {
+                classes.push("disabled-result");
+            }
+            if (option.selected) {
+                classes.push("result-selected");
+            }
+            if (option.group_array_index != null) {
+                classes.push("group-option");
+            }
+            if (option.classes !== "") {
+                classes.push(option.classes);
+            }
+            option_el = document.createElement("li");
+            option_el.className = classes.join(" ");
+            option_el.style.cssText = option.style;
+            option_el.setAttribute("data-option-array-index", option.array_index);
+            option_el.innerHTML = option.search_text;
+            return this.outerHTML(option_el);
+        };
+
+        AbstractChosen.prototype.result_add_group = function(group) {
+            var group_el;
+            if (!(group.search_match || group.group_match)) {
+                return '';
+            }
+            if (!(group.active_options > 0)) {
+                return '';
+            }
+            group_el = document.createElement("li");
+            group_el.className = "group-result";
+            group_el.innerHTML = group.search_text;
+            return this.outerHTML(group_el);
+        };
+
+        AbstractChosen.prototype.results_update_field = function() {
+            this.set_default_text();
+            if (!this.is_multiple) {
+                this.results_reset_cleanup();
+            }
+            this.result_clear_highlight();
+            this.results_build();
+            if (this.results_showing) {
+                return this.winnow_results();
+            }
+        };
+
+        AbstractChosen.prototype.reset_single_select_options = function() {
+            var result, _i, _len, _ref, _results;
+            _ref = this.results_data;
+            _results = [];
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                result = _ref[_i];
+                if (result.selected) {
+                    _results.push(result.selected = false);
+                } else {
+                    _results.push(void 0);
+                }
+            }
+            return _results;
+        };
+
+        AbstractChosen.prototype.results_toggle = function() {
+            if (this.results_showing) {
+                return this.results_hide();
+            } else {
+                return this.results_show();
+            }
+        };
+
+        AbstractChosen.prototype.results_search = function(evt) {
+            if (this.results_showing) {
+                return this.winnow_results();
+            } else {
+                return this.results_show();
+            }
+        };
+
+        AbstractChosen.prototype.winnow_results = function() {
+            var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
+            this.no_results_clear();
+            results = 0;
+            searchText = this.get_search_text();
+            escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+            regexAnchor = this.search_contains ? "" : "^";
+            regex = new RegExp(regexAnchor + escapedSearchText, 'i');
+            zregex = new RegExp(escapedSearchText, 'i');
+            _ref = this.results_data;
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                option = _ref[_i];
+                option.search_match = false;
+                results_group = null;
+                if (this.include_option_in_results(option)) {
+                    if (option.group) {
+                        option.group_match = false;
+                        option.active_options = 0;
+                    }
+                    if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
+                        results_group = this.results_data[option.group_array_index];
+                        if (results_group.active_options === 0 && results_group.search_match) {
+                            results += 1;
+                        }
+                        results_group.active_options += 1;
+                    }
+                    if (!(option.group && !this.group_search)) {
+                        option.search_text = option.group ? option.label : option.html;
+                        option.search_match = this.search_string_match(option.search_text, regex);
+                        if (option.search_match && !option.group) {
+                            results += 1;
+                        }
+                        if (option.search_match) {
+                            if (searchText.length) {
+                                startpos = option.search_text.search(zregex);
+                                text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
+                                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
+                            }
+                            if (results_group != null) {
+                                results_group.group_match = true;
+                            }
+                        } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
+                            option.search_match = true;
+                        }
+                    }
+                }
+            }
+            this.result_clear_highlight();
+            if (results < 1 && searchText.length) {
+                this.update_results_content("");
+                return this.no_results(searchText);
+            } else {
+                this.update_results_content(this.results_option_build());
+                return this.winnow_results_set_highlight();
+            }
+        };
+
+        AbstractChosen.prototype.search_string_match = function(search_string, regex) {
+            var part, parts, _i, _len;
+            if (regex.test(search_string)) {
+                return true;
+            } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
+                parts = search_string.replace(/\[|\]/g, "").split(" ");
+                if (parts.length) {
+                    for (_i = 0, _len = parts.length; _i < _len; _i++) {
+                        part = parts[_i];
+                        if (regex.test(part)) {
+                            return true;
+                        }
+                    }
+                }
+            }
+        };
+
+        AbstractChosen.prototype.choices_count = function() {
+            var option, _i, _len, _ref;
+            if (this.selected_option_count != null) {
+                return this.selected_option_count;
+            }
+            this.selected_option_count = 0;
+            _ref = this.form_field.options;
+            for (_i = 0, _len = _ref.length; _i < _len; _i++) {
+                option = _ref[_i];
+                if (option.selected) {
+                    this.selected_option_count += 1;
+                }
+            }
+            return this.selected_option_count;
+        };
+
+        AbstractChosen.prototype.choices_click = function(evt) {
+            evt.preventDefault();
+            if (!(this.results_showing || this.is_disabled)) {
+                return this.results_show();
+            }
+        };
+
+        AbstractChosen.prototype.keyup_checker = function(evt) {
+            var stroke, _ref;
+            stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
+            this.search_field_scale();
+            switch (stroke) {
+                case 8:
+                    if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
+                        return this.keydown_backstroke();
+                    } else if (!this.pending_backstroke) {
+                        this.result_clear_highlight();
+                        return this.results_search();
+                    }
+                    break;
+                case 13:
+                    evt.preventDefault();
+                    if (this.results_showing) {
+                        return this.result_select(evt);
+                    }
+                    break;
+                case 27:
+                    if (this.results_showing) {
+                        this.results_hide();
+                    }
+                    return true;
+                case 9:
+                case 38:
+                case 40:
+                case 16:
+                case 91:
+                case 17:
+                    break;
+                default:
+                    return this.results_search();
+            }
+        };
+
+        AbstractChosen.prototype.clipboard_event_checker = function(evt) {
+            var _this = this;
+            return setTimeout((function() {
+                return _this.results_search();
+            }), 50);
+        };
+
+        AbstractChosen.prototype.container_width = function() {
+            if (this.options.width != null) {
+                return this.options.width;
+            } else {
+                return "" + this.form_field.offsetWidth + "px";
+            }
+        };
+
+        AbstractChosen.prototype.include_option_in_results = function(option) {
+            if (this.is_multiple && (!this.display_selected_options && option.selected)) {
+                return false;
+            }
+            if (!this.display_disabled_options && option.disabled) {
+                return false;
+            }
+            if (option.empty) {
+                return false;
+            }
+            return true;
+        };
+
+        AbstractChosen.prototype.search_results_touchstart = function(evt) {
+            this.touch_started = true;
+            return this.search_results_mouseover(evt);
+        };
+
+        AbstractChosen.prototype.search_results_touchmove = function(evt) {
+            this.touch_started = false;
+            return this.search_results_mouseout(evt);
+        };
+
+        AbstractChosen.prototype.search_results_touchend = function(evt) {
+            if (this.touch_started) {
+                return this.search_results_mouseup(evt);
+            }
+        };
+
+        AbstractChosen.prototype.outerHTML = function(element) {
+            var tmp;
+            if (element.outerHTML) {
+                return element.outerHTML;
+            }
+            tmp = document.createElement("div");
+            tmp.appendChild(element);
+            return tmp.innerHTML;
+        };
+
+        AbstractChosen.browser_is_supported = function() {
+            if (window.navigator.appName === "Microsoft Internet Explorer") {
+                return document.documentMode >= 8;
+            }
+            if (/iP(od|hone)/i.test(window.navigator.userAgent)) {
+                return false;
+            }
+            if (/Android/i.test(window.navigator.userAgent)) {
+                if (/Mobile/i.test(window.navigator.userAgent)) {
+                    return false;
+                }
+            }
+            return true;
+        };
+
+        AbstractChosen.default_multiple_text = "Select Some Options";
+
+        AbstractChosen.default_single_text = "Select an Option";
+
+        AbstractChosen.default_no_result_text = "No results match";
+
+        return AbstractChosen;
+
+    })();
+
+    $ = jQuery;
+
+    $.fn.extend({
+        chosen: function(options) {
+            if (!AbstractChosen.browser_is_supported()) {
+                return this;
+            }
+            return this.each(function(input_field) {
+                var $this, chosen;
+                $this = $(this);
+                chosen = $this.data('chosen');
+                if (options === 'destroy' && chosen) {
+                    chosen.destroy();
+                } else if (!chosen) {
+                    $this.data('chosen', new Chosen(this, options));
+                }
+            });
+        }
+    });
+
+    Chosen = (function(_super) {
+        __extends(Chosen, _super);
+
+        function Chosen() {
+            _ref = Chosen.__super__.constructor.apply(this, arguments);
+            return _ref;
+        }
+
+        Chosen.prototype.setup = function() {
+            this.form_field_jq = $(this.form_field);
+            this.current_selectedIndex = this.form_field.selectedIndex;
+            return this.is_rtl = this.form_field_jq.hasClass("chosen-rtl");
+        };
+
+        Chosen.prototype.set_up_html = function() {
+            var container_classes, container_props;
+            container_classes = ["chosen-container"];
+            container_classes.push("chosen-container-" + (this.is_multiple ? "multi" : "single"));
+            if (this.inherit_select_classes && this.form_field.className) {
+                container_classes.push(this.form_field.className);
+            }
+            if (this.is_rtl) {
+                container_classes.push("chosen-rtl");
+            }
+            container_props = {
+                'class': container_classes.join(' '),
+                'style': "width: " + (this.container_width()) + ";",
+                'title': this.form_field.title
+            };
+            if (this.form_field.id.length) {
+                container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
+            }
+            this.container = $("<div />", container_props);
+            if (this.is_multiple) {
+                this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="' + this.default_text + '" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>');
+            } else {
+                this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>' + this.default_text + '</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>');
+            }
+            this.form_field_jq.hide().after(this.container);
+            this.dropdown = this.container.find('div.chosen-drop').first();
+            this.search_field = this.container.find('input').first();
+            this.search_results = this.container.find('ul.chosen-results').first();
+            this.search_field_scale();
+            this.search_no_results = this.container.find('li.no-results').first();
+            if (this.is_multiple) {
+                this.search_choices = this.container.find('ul.chosen-choices').first();
+                this.search_container = this.container.find('li.search-field').first();
+            } else {
+                this.search_container = this.container.find('div.chosen-search').first();
+                this.selected_item = this.container.find('.chosen-single').first();
+            }
+            this.results_build();
+            this.set_tab_index();
+            this.set_label_behavior();
+            return this.form_field_jq.trigger("chosen:ready", {
+                chosen: this
+            });
+        };
+
+        Chosen.prototype.register_observers = function() {
+            var _this = this;
+            this.container.bind('mousedown.chosen', function(evt) {
+                _this.container_mousedown(evt);
+            });
+            this.container.bind('mouseup.chosen', function(evt) {
+                _this.container_mouseup(evt);
+            });
+            this.container.bind('mouseenter.chosen', function(evt) {
+                _this.mouse_enter(evt);
+            });
+            this.container.bind('mouseleave.chosen', function(evt) {
+                _this.mouse_leave(evt);
+            });
+            this.search_results.bind('mouseup.chosen', function(evt) {
+                _this.search_results_mouseup(evt);
+            });
+            this.search_results.bind('mouseover.chosen', function(evt) {
+                _this.search_results_mouseover(evt);
+            });
+            this.search_results.bind('mouseout.chosen', function(evt) {
+                _this.search_results_mouseout(evt);
+            });
+            this.search_results.bind('mousewheel.chosen DOMMouseScroll.chosen', function(evt) {
+                _this.search_results_mousewheel(evt);
+            });
+            this.search_results.bind('touchstart.chosen', function(evt) {
+                _this.search_results_touchstart(evt);
+            });
+            this.search_results.bind('touchmove.chosen', function(evt) {
+                _this.search_results_touchmove(evt);
+            });
+            this.search_results.bind('touchend.chosen', function(evt) {
+                _this.search_results_touchend(evt);
+            });
+            this.form_field_jq.bind("chosen:updated.chosen", function(evt) {
+                _this.results_update_field(evt);
+            });
+            this.form_field_jq.bind("chosen:activate.chosen", function(evt) {
+                _this.activate_field(evt);
+            });
+            this.form_field_jq.bind("chosen:open.chosen", function(evt) {
+                _this.container_mousedown(evt);
+            });
+            this.form_field_jq.bind("chosen:close.chosen", function(evt) {
+                _this.input_blur(evt);
+            });
+            this.search_field.bind('blur.chosen', function(evt) {
+                _this.input_blur(evt);
+            });
+            this.search_field.bind('keyup.chosen', function(evt) {
+                _this.keyup_checker(evt);
+            });
+            this.search_field.bind('keydown.chosen', function(evt) {
+                _this.keydown_checker(evt);
+            });
+            this.search_field.bind('focus.chosen', function(evt) {
+                _this.input_focus(evt);
+            });
+            this.search_field.bind('cut.chosen', function(evt) {
+                _this.clipboard_event_checker(evt);
+            });
+            this.search_field.bind('paste.chosen', function(evt) {
+                _this.clipboard_event_checker(evt);
+            });
+            if (this.is_multiple) {
+                return this.search_choices.bind('click.chosen', function(evt) {
+                    _this.choices_click(evt);
+                });
+            } else {
+                return this.container.bind('click.chosen', function(evt) {
+                    evt.preventDefault();
+                });
+            }
+        };
+
+        Chosen.prototype.destroy = function() {
+            $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
+            if (this.search_field[0].tabIndex) {
+                this.form_field_jq[0].tabIndex = this.search_field[0].tabIndex;
+            }
+            this.container.remove();
+            this.form_field_jq.removeData('chosen');
+            return this.form_field_jq.show();
+        };
+
+        Chosen.prototype.search_field_disabled = function() {
+            this.is_disabled = this.form_field_jq[0].disabled;
+            if (this.is_disabled) {
+                this.container.addClass('chosen-disabled');
+                this.search_field[0].disabled = true;
+                if (!this.is_multiple) {
+                    this.selected_item.unbind("focus.chosen", this.activate_action);
+                }
+                return this.close_field();
+            } else {
+                this.container.removeClass('chosen-disabled');
+                this.search_field[0].disabled = false;
+                if (!this.is_multiple) {
+                    return this.selected_item.bind("focus.chosen", this.activate_action);
+                }
+            }
+        };
+
+        Chosen.prototype.container_mousedown = function(evt) {
+            if (!this.is_disabled) {
+                if (evt && evt.type === "mousedown" && !this.results_showing) {
+                    evt.preventDefault();
+                }
+                if (!((evt != null) && ($(evt.target)).hasClass("search-choice-close"))) {
+                    if (!this.active_field) {
+                        if (this.is_multiple) {
+                            this.search_field.val("");
+                        }
+                        $(this.container[0].ownerDocument).bind('click.chosen', this.click_test_action);
+                        this.results_show();
+                    } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chosen-single").length)) {
+                        evt.preventDefault();
+                        this.results_toggle();
+                    }
+                    return this.activate_field();
+                }
+            }
+        };
+
+        Chosen.prototype.container_mouseup = function(evt) {
+            if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
+                return this.results_reset(evt);
+            }
+        };
+
+        Chosen.prototype.search_results_mousewheel = function(evt) {
+            var delta;
+            if (evt.originalEvent) {
+                delta = -evt.originalEvent.wheelDelta || evt.originalEvent.detail;
+            }
+            if (delta != null) {
+                evt.preventDefault();
+                if (evt.type === 'DOMMouseScroll') {
+                    delta = delta * 40;
+                }
+                return this.search_results.scrollTop(delta + this.search_results.scrollTop());
+            }
+        };
+
+        Chosen.prototype.blur_test = function(evt) {
+            if (!this.active_field && this.container.hasClass("chosen-container-active")) {
+                return this.close_field();
+            }
+        };
+
+        Chosen.prototype.close_field = function() {
+            $(this.container[0].ownerDocument).unbind("click.chosen", this.click_test_action);
+            this.active_field = false;
+            this.results_hide();
+            this.container.removeClass("chosen-container-active");
+            this.clear_backstroke();
+            this.show_search_field_default();
+            return this.search_field_scale();
+        };
+
+        Chosen.prototype.activate_field = function() {
+            this.container.addClass("chosen-container-active");
+            this.active_field = true;
+            this.search_field.val(this.search_field.val());
+            return this.search_field.focus();
+        };
+
+        Chosen.prototype.test_active_click = function(evt) {
+            var active_container;
+            active_container = $(evt.target).closest('.chosen-container');
+            if (active_container.length && this.container[0] === active_container[0]) {
+                return this.active_field = true;
+            } else {
+                return this.close_field();
+            }
+        };
+
+        Chosen.prototype.results_build = function() {
+            this.parsing = true;
+            this.selected_option_count = null;
+            this.results_data = SelectParser.select_to_array(this.form_field);
+            if (this.is_multiple) {
+                this.search_choices.find("li.search-choice").remove();
+            } else if (!this.is_multiple) {
+                this.single_set_selected_text();
+                if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
+                    this.search_field[0].readOnly = true;
+                    this.container.addClass("chosen-container-single-nosearch");
+                } else {
+                    this.search_field[0].readOnly = false;
+                    this.container.removeClass("chosen-container-single-nosearch");
+                }
+            }
+            this.update_results_content(this.results_option_build({
+                first: true
+            }));
+            this.search_field_disabled();
+            this.show_search_field_default();
+            this.search_field_scale();
+            return this.parsing = false;
+        };
+
+        Chosen.prototype.result_do_highlight = function(el) {
+            var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
+            if (el.length) {
+                this.result_clear_highlight();
+                this.result_highlight = el;
+                this.result_highlight.addClass("highlighted");
+                maxHeight = parseInt(this.search_results.css("maxHeight"), 10);
+                visible_top = this.search_results.scrollTop();
+                visible_bottom = maxHeight + visible_top;
+                high_top = this.result_highlight.position().top + this.search_results.scrollTop();
+                high_bottom = high_top + this.result_highlight.outerHeight();
+                if (high_bottom >= visible_bottom) {
+                    return this.search_results.scrollTop((high_bottom - maxHeight) > 0 ? high_bottom - maxHeight : 0);
+                } else if (high_top < visible_top) {
+                    return this.search_results.scrollTop(high_top);
+                }
+            }
+        };
+
+        Chosen.prototype.result_clear_highlight = function() {
+            if (this.result_highlight) {
+                this.result_highlight.removeClass("highlighted");
+            }
+            return this.result_highlight = null;
+        };
+
+        Chosen.prototype.results_show = function() {
+            if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
+                this.form_field_jq.trigger("chosen:maxselected", {
+                    chosen: this
+                });
+                return false;
+            }
+            this.container.addClass("chosen-with-drop");
+            this.results_showing = true;
+            this.search_field.focus();
+            this.search_field.val(this.search_field.val());
+            this.winnow_results();
+            return this.form_field_jq.trigger("chosen:showing_dropdown", {
+                chosen: this
+            });
+        };
+
+        Chosen.prototype.update_results_content = function(content) {
+            return this.search_results.html(content);
+        };
+
+        Chosen.prototype.results_hide = function() {
+            if (this.results_showing) {
+                this.result_clear_highlight();
+                this.container.removeClass("chosen-with-drop");
+                this.form_field_jq.trigger("chosen:hiding_dropdown", {
+                    chosen: this
+                });
+            }
+            return this.results_showing = false;
+        };
+
+        Chosen.prototype.set_tab_index = function(el) {
+            var ti;
+            if (this.form_field.tabIndex) {
+                ti = this.form_field.tabIndex;
+                this.form_field.tabIndex = -1;
+                return this.search_field[0].tabIndex = ti;
+            }
+        };
+
+        Chosen.prototype.set_label_behavior = function() {
+            var _this = this;
+            this.form_field_label = this.form_field_jq.parents("label");
+            if (!this.form_field_label.length && this.form_field.id.length) {
+                this.form_field_label = $("label[for='" + this.form_field.id + "']");
+            }
+            if (this.form_field_label.length > 0) {
+                return this.form_field_label.bind('click.chosen', function(evt) {
+                    if (_this.is_multiple) {
+                        return _this.container_mousedown(evt);
+                    } else {
+                        return _this.activate_field();
+                    }
+                });
+            }
+        };
+
+        Chosen.prototype.show_search_field_default = function() {
+            if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
+                this.search_field.val(this.default_text);
+                return this.search_field.addClass("default");
+            } else {
+                this.search_field.val("");
+                return this.search_field.removeClass("default");
+            }
+        };
+
+        Chosen.prototype.search_results_mouseup = function(evt) {
+            var target;
+            target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
+            if (target.length) {
+                this.result_highlight = target;
+                this.result_select(evt);
+                return this.search_field.focus();
+            }
+        };
+
+        Chosen.prototype.search_results_mouseover = function(evt) {
+            var target;
+            target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
+            if (target) {
+                return this.result_do_highlight(target);
+            }
+        };
+
+        Chosen.prototype.search_results_mouseout = function(evt) {
+            if ($(evt.target).hasClass("active-result" || $(evt.target).parents('.active-result').first())) {
+                return this.result_clear_highlight();
+            }
+        };
+
+        Chosen.prototype.choice_build = function(item) {
+            var choice, close_link,
+                _this = this;
+            choice = $('<li />', {
+                "class": "search-choice"
+            }).html("<span>" + item.html + "</span>");
+            if (item.disabled) {
+                choice.addClass('search-choice-disabled');
+            } else {
+                close_link = $('<a />', {
+                    "class": 'search-choice-close',
+                    'data-option-array-index': item.array_index
+                });
+                close_link.bind('click.chosen', function(evt) {
+                    return _this.choice_destroy_link_click(evt);
+                });
+                choice.append(close_link);
+            }
+            return this.search_container.before(choice);
+        };
+
+        Chosen.prototype.choice_destroy_link_click = function(evt) {
+            evt.preventDefault();
+            evt.stopPropagation();
+            if (!this.is_disabled) {
+                return this.choice_destroy($(evt.target));
+            }
+        };
+
+        Chosen.prototype.choice_destroy = function(link) {
+            if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
+                this.show_search_field_default();
+                if (this.is_multiple && this.choices_count() > 0 && this.search_field.val().length < 1) {
+                    this.results_hide();
+                }
+                link.parents('li').first().remove();
+                return this.search_field_scale();
+            }
+        };
+
+        Chosen.prototype.results_reset = function() {
+            this.reset_single_select_options();
+            this.form_field.options[0].selected = true;
+            this.single_set_selected_text();
+            this.show_search_field_default();
+            this.results_reset_cleanup();
+            this.form_field_jq.trigger("change");
+            if (this.active_field) {
+                return this.results_hide();
+            }
+        };
+
+        Chosen.prototype.results_reset_cleanup = function() {
+            this.current_selectedIndex = this.form_field.selectedIndex;
+            return this.selected_item.find("abbr").remove();
+        };
+
+        Chosen.prototype.result_select = function(evt) {
+            var high, item;
+            if (this.result_highlight) {
+                high = this.result_highlight;
+                this.result_clear_highlight();
+                if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
+                    this.form_field_jq.trigger("chosen:maxselected", {
+                        chosen: this
+                    });
+                    return false;
+                }
+                if (this.is_multiple) {
+                    high.removeClass("active-result");
+                } else {
+                    this.reset_single_select_options();
+                }
+                item = this.results_data[high[0].getAttribute("data-option-array-index")];
+                item.selected = true;
+                this.form_field.options[item.options_index].selected = true;
+                this.selected_option_count = null;
+                if (this.is_multiple) {
+                    this.choice_build(item);
+                } else {
+                    this.single_set_selected_text(item.text);
+                }
+                if (!((evt.metaKey || evt.ctrlKey) && this.is_multiple)) {
+                    this.results_hide();
+                }
+                this.search_field.val("");
+                if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
+                    this.form_field_jq.trigger("change", {
+                        'selected': this.form_field.options[item.options_index].value
+                    });
+                }
+                this.current_selectedIndex = this.form_field.selectedIndex;
+                return this.search_field_scale();
+            }
+        };
+
+        Chosen.prototype.single_set_selected_text = function(text) {
+            if (text == null) {
+                text = this.default_text;
+            }
+            if (text === this.default_text) {
+                this.selected_item.addClass("chosen-default");
+            } else {
+                this.single_deselect_control_build();
+                this.selected_item.removeClass("chosen-default");
+            }
+            return this.selected_item.find("span").text(text);
+        };
+
+        Chosen.prototype.result_deselect = function(pos) {
+            var result_data;
+            result_data = this.results_data[pos];
+            if (!this.form_field.options[result_data.options_index].disabled) {
+                result_data.selected = false;
+                this.form_field.options[result_data.options_index].selected = false;
+                this.selected_option_count = null;
+                this.result_clear_highlight();
+                if (this.results_showing) {
+                    this.winnow_results();
+                }
+                this.form_field_jq.trigger("change", {
+                    deselected: this.form_field.options[result_data.options_index].value
+                });
+                this.search_field_scale();
+                return true;
+            } else {
+                return false;
+            }
+        };
+
+        Chosen.prototype.single_deselect_control_build = function() {
+            if (!this.allow_single_deselect) {
+                return;
+            }
+            if (!this.selected_item.find("abbr").length) {
+                this.selected_item.find("span").first().after("<abbr class=\"search-choice-close\"></abbr>");
+            }
+            return this.selected_item.addClass("chosen-single-with-deselect");
+        };
+
+        Chosen.prototype.get_search_text = function() {
+            if (this.search_field.val() === this.default_text) {
+                return "";
+            } else {
+                return $('<div/>').text($.trim(this.search_field.val())).html();
+            }
+        };
+
+        Chosen.prototype.winnow_results_set_highlight = function() {
+            var do_high, selected_results;
+            selected_results = !this.is_multiple ? this.search_results.find(".result-selected.active-result") : [];
+            do_high = selected_results.length ? selected_results.first() : this.search_results.find(".active-result").first();
+            if (do_high != null) {
+                return this.result_do_highlight(do_high);
+            }
+        };
+
+        Chosen.prototype.no_results = function(terms) {
+            var no_results_html;
+            no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
+            no_results_html.find("span").first().html(terms);
+            this.search_results.append(no_results_html);
+            return this.form_field_jq.trigger("chosen:no_results", {
+                chosen: this
+            });
+        };
+
+        Chosen.prototype.no_results_clear = function() {
+            return this.search_results.find(".no-results").remove();
+        };
+
+        Chosen.prototype.keydown_arrow = function() {
+            var next_sib;
+            if (this.results_showing && this.result_highlight) {
+                next_sib = this.result_highlight.nextAll("li.active-result").first();
+                if (next_sib) {
+                    return this.result_do_highlight(next_sib);
+                }
+            } else {
+                return this.results_show();
+            }
+        };
+
+        Chosen.prototype.keyup_arrow = function() {
+            var prev_sibs;
+            if (!this.results_showing && !this.is_multiple) {
+                return this.results_show();
+            } else if (this.result_highlight) {
+                prev_sibs = this.result_highlight.prevAll("li.active-result");
+                if (prev_sibs.length) {
+                    return this.result_do_highlight(prev_sibs.first());
+                } else {
+                    if (this.choices_count() > 0) {
+                        this.results_hide();
+                    }
+                    return this.result_clear_highlight();
+                }
+            }
+        };
+
+        Chosen.prototype.keydown_backstroke = function() {
+            var next_available_destroy;
+            if (this.pending_backstroke) {
+                this.choice_destroy(this.pending_backstroke.find("a").first());
+                return this.clear_backstroke();
+            } else {
+                next_available_destroy = this.search_container.siblings("li.search-choice").last();
+                if (next_available_destroy.length && !next_available_destroy.hasClass("search-choice-disabled")) {
+                    this.pending_backstroke = next_available_destroy;
+                    if (this.single_backstroke_delete) {
+                        return this.keydown_backstroke();
+                    } else {
+                        return this.pending_backstroke.addClass("search-choice-focus");
+                    }
+                }
+            }
+        };
+
+        Chosen.prototype.clear_backstroke = function() {
+            if (this.pending_backstroke) {
+                this.pending_backstroke.removeClass("search-choice-focus");
+            }
+            return this.pending_backstroke = null;
+        };
+
+        Chosen.prototype.keydown_checker = function(evt) {
+            var stroke, _ref1;
+            stroke = (_ref1 = evt.which) != null ? _ref1 : evt.keyCode;
+            this.search_field_scale();
+            if (stroke !== 8 && this.pending_backstroke) {
+                this.clear_backstroke();
+            }
+            switch (stroke) {
+                case 8:
+                    this.backstroke_length = this.search_field.val().length;
+                    break;
+                case 9:
+                    if (this.results_showing && !this.is_multiple) {
+                        this.result_select(evt);
+                    }
+                    this.mouse_on_container = false;
+                    break;
+                case 13:
+                    evt.preventDefault();
+                    break;
+                case 38:
+                    evt.preventDefault();
+                    this.keyup_arrow();
+                    break;
+                case 40:
+                    evt.preventDefault();
+                    this.keydown_arrow();
+                    break;
+            }
+        };
+
+        Chosen.prototype.search_field_scale = function() {
+            var div, f_width, h, style, style_block, styles, w, _i, _len;
+            if (this.is_multiple) {
+                h = 0;
+                w = 0;
+                style_block = "position:absolute; left: -1000px; top: -1000px; display:none;";
+                styles = ['font-size', 'font-style', 'font-weight', 'font-family', 'line-height', 'text-transform', 'letter-spacing'];
+                for (_i = 0, _len = styles.length; _i < _len; _i++) {
+                    style = styles[_i];
+                    style_block += style + ":" + this.search_field.css(style) + ";";
+                }
+                div = $('<div />', {
+                    'style': style_block
+                });
+                div.text(this.search_field.val());
+                $('body').append(div);
+                w = div.width() + 25;
+                div.remove();
+                f_width = this.container.outerWidth();
+                if (w > f_width - 10) {
+                    w = f_width - 10;
+                }
+                return this.search_field.css({
+                    'width': w + 'px'
+                });
+            }
+        };
+
+        return Chosen;
+
+    })(AbstractChosen);
+
+}).call(this);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/iCheck/icheck.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/iCheck/icheck.min.js
new file mode 100644
index 0000000..9b826fb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/iCheck/icheck.min.js
@@ -0,0 +1,11 @@
+/*! iCheck v1.0.2 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
+(function(f){function A(a,b,d){var c=a[0],g=/er/.test(d)?_indeterminate:/bl/.test(d)?n:k,e=d==_update?{checked:c[k],disabled:c[n],indeterminate:"true"==a.attr(_indeterminate)||"false"==a.attr(_determinate)}:c[g];if(/^(ch|di|in)/.test(d)&&!e)x(a,g);else if(/^(un|en|de)/.test(d)&&e)q(a,g);else if(d==_update)for(var f in e)e[f]?x(a,f,!0):q(a,f,!0);else if(!b||"toggle"==d){if(!b)a[_callback]("ifClicked");e?c[_type]!==r&&q(a,g):x(a,g)}}function x(a,b,d){var c=a[0],g=a.parent(),e=b==k,u=b==_indeterminate,
+    v=b==n,s=u?_determinate:e?y:"enabled",F=l(a,s+t(c[_type])),B=l(a,b+t(c[_type]));if(!0!==c[b]){if(!d&&b==k&&c[_type]==r&&c.name){var w=a.closest("form"),p='input[name="'+c.name+'"]',p=w.length?w.find(p):f(p);p.each(function(){this!==c&&f(this).data(m)&&q(f(this),b)})}u?(c[b]=!0,c[k]&&q(a,k,"force")):(d||(c[b]=!0),e&&c[_indeterminate]&&q(a,_indeterminate,!1));D(a,e,b,d)}c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"default");g[_add](B||l(a,b)||"");g.attr("role")&&!u&&g.attr("aria-"+(v?n:k),"true");
+    g[_remove](F||l(a,s)||"")}function q(a,b,d){var c=a[0],g=a.parent(),e=b==k,f=b==_indeterminate,m=b==n,s=f?_determinate:e?y:"enabled",q=l(a,s+t(c[_type])),r=l(a,b+t(c[_type]));if(!1!==c[b]){if(f||!d||"force"==d)c[b]=!1;D(a,e,s,d)}!c[n]&&l(a,_cursor,!0)&&g.find("."+C).css(_cursor,"pointer");g[_remove](r||l(a,b)||"");g.attr("role")&&!f&&g.attr("aria-"+(m?n:k),"false");g[_add](q||l(a,s)||"")}function E(a,b){if(a.data(m)){a.parent().html(a.attr("style",a.data(m).s||""));if(b)a[_callback](b);a.off(".i").unwrap();
+    f(_label+'[for="'+a[0].id+'"]').add(a.closest(_label)).off(".i")}}function l(a,b,f){if(a.data(m))return a.data(m).o[b+(f?"":"Class")]}function t(a){return a.charAt(0).toUpperCase()+a.slice(1)}function D(a,b,f,c){if(!c){if(b)a[_callback]("ifToggled");a[_callback]("ifChanged")[_callback]("if"+t(f))}}var m="iCheck",C=m+"-helper",r="radio",k="checked",y="un"+k,n="disabled";_determinate="determinate";_indeterminate="in"+_determinate;_update="update";_type="type";_click="click";_touch="touchbegin.i touchend.i";
+    _add="addClass";_remove="removeClass";_callback="trigger";_label="label";_cursor="cursor";_mobile=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);f.fn[m]=function(a,b){var d='input[type="checkbox"], input[type="'+r+'"]',c=f(),g=function(a){a.each(function(){var a=f(this);c=a.is(d)?c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),g(this),c.each(function(){var c=
+        f(this);"destroy"==a?E(c,"ifDestroyed"):A(c,!0,a);f.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var e=f.extend({checkedClass:k,disabledClass:n,indeterminateClass:_indeterminate,labelHover:!0},a),l=e.handle,v=e.hoverClass||"hover",s=e.focusClass||"focus",t=e.activeClass||"active",B=!!e.labelHover,w=e.labelHoverClass||"hover",p=(""+e.increaseArea).replace("%","")|0;if("checkbox"==l||l==r)d='input[type="'+l+'"]';-50>p&&(p=-50);g(this);return c.each(function(){var a=f(this);E(a);var c=this,
+        b=c.id,g=-p+"%",d=100+2*p+"%",d={position:"absolute",top:g,left:g,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},g=_mobile?{position:"absolute",visibility:"hidden"}:p?d:{position:"absolute",opacity:0},l="checkbox"==c[_type]?e.checkboxClass||"icheckbox":e.radioClass||"i"+r,z=f(_label+'[for="'+b+'"]').add(a.closest(_label)),u=!!e.aria,y=m+"-"+Math.random().toString(36).substr(2,6),h='<div class="'+l+'" '+(u?'role="'+c[_type]+'" ':"");u&&z.each(function(){h+=
+        'aria-labelledby="';this.id?h+=this.id:(this.id=y,h+=y);h+='"'});h=a.wrap(h+"/>")[_callback]("ifCreated").parent().append(e.insert);d=f('<ins class="'+C+'"/>').css(d).appendTo(h);a.data(m,{o:e,s:a.attr("style")}).css(g);e.inheritClass&&h[_add](c.className||"");e.inheritID&&b&&h.attr("id",m+"-"+b);"static"==h.css("position")&&h.css("position","relative");A(a,!0,_update);if(z.length)z.on(_click+".i mouseover.i mouseout.i "+_touch,function(b){var d=b[_type],e=f(this);if(!c[n]){if(d==_click){if(f(b.target).is("a"))return;
+        A(a,!1,!0)}else B&&(/ut|nd/.test(d)?(h[_remove](v),e[_remove](w)):(h[_add](v),e[_add](w)));if(_mobile)b.stopPropagation();else return!1}});a.on(_click+".i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[_type];b=b.keyCode;if(d==_click)return!1;if("keydown"==d&&32==b)return c[_type]==r&&c[k]||(c[k]?q(a,k):x(a,k)),!1;if("keyup"==d&&c[_type]==r)!c[k]&&x(a,k);else if(/us|ur/.test(d))h["blur"==d?_remove:_add](s)});d.on(_click+" mousedown mouseup mouseover mouseout "+_touch,function(b){var d=
+        b[_type],e=/wn|up/.test(d)?t:v;if(!c[n]){if(d==_click)A(a,!1,!0);else{if(/wn|er|in/.test(d))h[_add](e);else h[_remove](e+" "+t);if(z.length&&B&&e==v)z[/ut|nd/.test(d)?_remove:_add](w)}if(_mobile)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/laydate.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/laydate.js
new file mode 100644
index 0000000..83a12cb
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/laydate.js
@@ -0,0 +1,2 @@
+/*! laydate-v5.0.9 日期与时间组件 MIT License  http://www.layui.com/laydate/  By 贤心 */
+ ;!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="开始日期超出了结束日期<br>建议重新选择",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));t<n.length;t++)this.push(n[t])};C.prototype=[],C.prototype.constructor=C,w.extend=function(){var e=1,t=arguments,n=function(e,t){e=e||(t.constructor===Array?[]:{});for(var a in t)e[a]=t[a]&&t[a].constructor===Object?n(e[a],t[a]):t[a];return e};for(t[0]="object"==typeof t[0]?t[0]:{};e<t.length;e++)"object"==typeof t[e]&&n(t[0],t[e]);return t[0]},w.ie=function(){var e=navigator.userAgent.toLowerCase();return!!(window.ActiveXObject||"ActiveXObject"in window)&&((e.match(/msie\s(\d+)/)||[])[1]||"11")}(),w.stope=function(e){e=e||window.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},w.each=function(e,t){var n,a=this;if("function"!=typeof t)return a;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;n<e.length&&!t.call(e[n],n,e[n]);n++);return a},w.digit=function(e,t,n){var a="";e=String(e),t=t||2;for(var i=e.length;i<t;i++)a+="0";return e<Math.pow(10,t)?a+(0|e):e},w.elem=function(e,t){var n=document.createElement(e);return w.each(t||{},function(e,t){n.setAttribute(e,t)}),n},C.addStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),w.each(t,function(t,n){new RegExp("\\b"+n+"\\b").test(e)||(e=e+" "+n)}),e.replace(/^\s|\s$/,"")},C.removeStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),w.each(t,function(t,n){var a=new RegExp("\\b"+n+"\\b");a.test(e)&&(e=e.replace(a,""))}),e.replace(/\s+/," ").replace(/^\s|\s$/,"")},C.prototype.find=function(e){var t=this,n=0,a=[],i="object"==typeof e;return this.each(function(r,o){for(var s=i?[e]:o.querySelectorAll(e||null);n<s.length;n++)a.push(s[n]);t.shift()}),i||(t.selector=(t.selector?t.selector+" ":"")+e),w.each(a,function(e,n){t.push(n)}),t},C.prototype.each=function(e){return w.each.call(this,this,e)},C.prototype.addClass=function(e,t){return this.each(function(n,a){a.className=C[t?"removeStr":"addStr"](a.className,e)})},C.prototype.removeClass=function(e){return this.addClass(e,!0)},C.prototype.hasClass=function(e){var t=!1;return this.each(function(n,a){new RegExp("\\b"+e+"\\b").test(a.className)&&(t=!0)}),t},C.prototype.attr=function(e,t){var n=this;return void 0===t?function(){if(n.length>0)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,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?r<s?o+r*s:r:o);a=[l.getFullYear(),l.getMonth()+1,l.getDate()],r<s||(i=[l.getHours(),l.getMinutes(),l.getSeconds()])}else a=(t[n].match(/\d+-\d+-\d+/)||[""])[0].split("-"),i=(t[n].match(/\d+:\d+:\d+/)||[""])[0].split(":");t[n]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|i[0],minutes:0|i[1],seconds:0|i[2]}}),e.elemID="layui-laydate"+t.elem.attr("lay-key"),(t.show||a)&&e.render(),a||e.events(),t.value&&(t.value.constructor===Date?e.setValue(e.parse(0,e.systemDate(t.value))):e.setValue(t.value)))},T.prototype.render=function(){var e=this,t=e.config,n=e.lang(),a="static"===t.position,i=e.elem=w.elem("div",{id:e.elemID,"class":["layui-laydate",t.range?" layui-laydate-range":"",a?" "+c:"",t.theme&&"default"!==t.theme&&!/^#/.test(t.theme)?" laydate-theme-"+t.theme:""].join("")}),r=e.elemMain=[],o=e.elemHeader=[],s=e.elemCont=[],l=e.table=[],d=e.footer=w.elem("div",{"class":p});if(t.zIndex&&(i.style.zIndex=t.zIndex),w.each(new Array(2),function(e){if(!t.range&&e>0)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="&#xe65a;",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="&#xe603;",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="&#xe602;",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="&#xe65b;",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('<span lay-type="datetime" class="laydate-btns-time">'+n.timeTips+"</span>"),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('<span lay-type="'+r+'" class="laydate-btns-'+r+'">'+o+"</span>"))}),e.push('<div class="laydate-footer-btns">'+i.join("")+"</div>"),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}));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<l.length&&(a=!0),/yyyy|y/.test(l)?(c<d[0]&&(c=d[0],a=!0),e.year=c):/MM|M/.test(l)?(c<1&&(c=1,a=!0),e.month=c-1):/dd|d/.test(l)?(c<1&&(c=1,a=!0),e.date=c):/HH|H/.test(l)?(c<1&&(c=0,a=!0),e.hours=c,r.range&&(i[o[n]].hours=c)):/mm|m/.test(l)?(c<1&&(c=0,a=!0),e.minutes=c,r.range&&(i[o[n]].minutes=c)):/ss|s/.test(l)&&(c<1&&(c=0,a=!0),e.seconds=c,r.range&&(i[o[n]].seconds=c))}),c(e)};return"limit"===e?(c(o),i):(l=l||r.value,"string"==typeof l&&(l=l.replace(/\s+/g," ").replace(/^\s|\s$/g,"")),i.startState&&!i.endState&&(delete i.startState,i.endState=!0),"string"==typeof l&&l?i.EXP_IF.test(l)?r.range?(l=l.split(" "+r.range+" "),i.startDate=i.startDate||i.systemDate(),i.endDate=i.endDate||i.systemDate(),r.dateTime=w.extend({},i.startDate),w.each([i.startDate,i.endDate],function(e,t){m(t,l[e],e)})):m(o,l):(i.hint("日期格式不合法<br>必须遵循下述格式:<br>"+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"<br>已为你重置"),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('<span class="laydate-day-mark">'+n+"</span>"),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.now<l.min||l.now>l.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.year<d[0]&&(l.year=d[0],r.hint("最低只能支持到公元"+d[0]+"年")),l.year>d[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?(c=a-t+e,n.addClass("laydate-day-prev"),d=r.getAsYM(l.year,l.month,"sub")):e>=t&&e<i+t?(c=e-t,s.range||c+1===l.date&&n.addClass(o)):(c=e-i-t,n.addClass("laydate-day-next"),d=r.getAsYM(l.year,l.month)),d[1]++,d[2]=c+1,n.attr("lay-ymd",d.join("-")).html(d[2]),r.mark(n,d).limit(n,{year:d[0],month:d[1]-1,date:d[2]},e)}),w(f[0]).attr("lay-ym",l.year+"-"+(l.month+1)),w(f[1]).attr("lay-ym",l.year+"-"+(l.month+1)),"cn"===s.lang?(w(f[0]).attr("lay-type","year").html(l.year+"年"),w(f[1]).attr("lay-type","month").html(l.month+1+"月")):(w(f[0]).attr("lay-type","month").html(m.month[l.month]),w(f[1]).attr("lay-type","year").html(l.year)),u&&(s.range&&(e?r.endDate=r.endDate||{year:l.year+("year"===s.type?1:0),month:l.month+("month"===s.type?0:-1)}:r.startDate=r.startDate||{year:l.year,month:l.month},e&&(r.listYM=[[r.startDate.year,r.startDate.month+1],[r.endDate.year,r.endDate.month+1]],r.list(s.type,0).list(s.type,1),"time"===s.type?r.setBtnStatus("时间",w.extend({},r.systemDate(),r.startTime),w.extend({},r.systemDate(),r.endTime)):r.setBtnStatus(!0))),s.range||(r.listYM=[[l.year,l.month+1]],r.list(s.type,0))),s.range&&!e){var p=r.getAsYM(l.year,l.month);r.calendar(w.extend({},l,{year:p[0],month:p[1]}))}return s.range||r.limit(w(r.footer).find(g),null,0,["hours","minutes","seconds"]),s.range&&e&&!u&&r.stampRange(),r},T.prototype.list=function(e,t){var n=this,a=n.config,i=a.dateTime,r=n.lang(),l=a.range&&"date"!==a.type&&"datetime"!==a.type,d=w.elem("ul",{"class":m+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[e]}),c=n.elemHeader[t],u=w(c[2]).find("span"),h=n.elemCont[t||0],y=w(h).find("."+m)[0],f="cn"===a.lang,p=f?"年":"",T=n.listYM[t]||{},C=["hours","minutes","seconds"],x=["startTime","endTime"][t];if(T[0]<1&&(T[0]=1),"year"===e){var M,b=M=T[0]-7;b<1&&(b=M=1),w.each(new Array(15),function(e){var i=w.elem("li",{"lay-ym":M}),r={year:M};M==T[0]&&w(i).addClass(o),i.innerHTML=M+p,d.appendChild(i),M<n.firstDate.year?(r.month=a.min.month,r.date=a.min.date):M>=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.min.date: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=["<p>"+r.time[e]+"</p><ol>"];w.each(new Array(t),function(t){i.push("<li"+(n[x][C[e]]===t?' class="'+o+'"':"")+">"+w.digit(t,2)+"</li>")}),a.innerHTML=i.join("")+"</ol>",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<t&&w(i).addClass(u)})},T.prototype.done=function(e,t){var n=this,a=n.config,i=w.extend({},n.startDate?w.extend(n.startDate,n.startTime):a.dateTime),r=w.extend({},w.extend(n.endDate,n.endTime));return w.each([i,r],function(e,t){"month"in t&&w.extend(t,{month:t.month+1})}),e=e||[n.parse(),i,r],"function"==typeof a[t||"done"]&&a[t||"done"].apply(a,e),n},T.prototype.choose=function(e){var t=this,n=t.config,a=n.dateTime,i=w(t.elem).find("td"),r=e.attr("lay-ymd").split("-"),l=function(e){new Date;e&&w.extend(a,r),n.range&&(t.startDate?w.extend(t.startDate,r):t.startDate=w.extend({},r,t.startTime),t.startYMD=r)};if(r={year:0|r[0],month:(0|r[1])-1,date:0|r[2]},!e.hasClass(s))if(n.range){if(w.each(["startTime","endTime"],function(e,n){t[n]=t[n]||{hours:0,minutes:0,seconds:0}}),t.endState)l(),delete t.endState,delete t.endDate,t.startState=!0,i.removeClass(o+" "+u),e.addClass(o);else if(t.startState){if(e.addClass(o),t.endDate?w.extend(t.endDate,r):t.endDate=w.extend({},r,t.endTime),t.newDate(r).getTime()<t.newDate(t.startYMD).getTime()){var d=w.extend({},t.endDate,{hours:t.startDate.hours,minutes:t.startDate.minutes,seconds:t.startDate.seconds});w.extend(t.endDate,t.startDate,{hours:t.endDate.hours,minutes:t.endDate.minutes,seconds:t.endDate.seconds}),t.startDate=d}n.showBottom||t.done(),t.stampRange(),t.endState=!0,t.done(null,"change")}else e.addClass(o),l(),t.startState=!0;w(t.footer).find(g)[t.endDate?"removeClass":"addClass"](s)}else"static"===n.position?(l(!0),t.calendar().done().done(null,"change")):"date"===n.type?(l(!0),t.setValue(t.parse()).remove().done()):"datetime"===n.type&&(l(!0),t.calendar().done(null,"change"))},T.prototype.tool=function(e,t){var n=this,a=n.config,i=a.dateTime,r="static"===a.position,o={datetime:function(){w(e).hasClass(s)||(n.list("time",0),a.range&&n.list("time",1),w(e).attr("lay-type","date").html(n.lang().dateTips))},date:function(){n.closeList(),w(e).attr("lay-type","datetime").html(n.lang().timeTips)},clear:function(){n.setValue("").remove(),r&&(w.extend(i,n.firstDate),n.calendar()),a.range&&(delete n.startState,delete n.endState,delete n.endDate,delete n.startTime,delete n.endTime),n.done(["",{},{}])},now:function(){var e=new Date;w.extend(i,n.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),n.setValue(n.parse()).remove(),r&&n.calendar(),n.done()},confirm:function(){if(a.range){if(!n.endDate)return n.hint("请先选择日期范围");if(w(e).hasClass(s))return n.hint("time"===a.type?l.replace(/日期/g,"时间"):l)}else if(w(e).hasClass(s))return n.hint("不在有效日期或时间范围内");n.done(),n.setValue(n.parse()).remove()}};o[t]&&o[t]()},T.prototype.change=function(e){var t=this,n=t.config,a=n.dateTime,i=n.range&&("year"===n.type||"month"===n.type),r=t.elemCont[e||0],o=t.listYM[e],s=function(s){var l=["startDate","endDate"][e],d=w(r).find(".laydate-year-list")[0],c=w(r).find(".laydate-month-list")[0];return d&&(o[0]=s?o[0]-15:o[0]+15,t.list("year",e)),c&&(s?o[0]--:o[0]++,t.list("month",e)),(d||c)&&(w.extend(a,{year:o[0]}),i&&(t[l].year=o[0]),n.range||t.done(null,"change"),t.setBtnStatus(),n.range||t.limit(w(t.footer).find(g),{year:o[0]})),d||c};return{prevYear:function(){s("sub")||(a.year--,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))},prevMonth:function(){var e=t.getAsYM(a.year,a.month,"sub");w.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextMonth:function(){var e=t.getAsYM(a.year,a.month);w.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextYear:function(){s()||(a.year++,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))}}},T.prototype.changeEvent=function(){var e=this;e.config;w(e.elem).on("click",function(e){w.stope(e)}),w.each(e.elemHeader,function(t,n){w(n[0]).on("click",function(n){e.change(t).prevYear()}),w(n[1]).on("click",function(n){e.change(t).prevMonth()}),w(n[2]).find("span").on("click",function(n){var a=w(this),i=a.attr("lay-ym"),r=a.attr("lay-type");i&&(i=i.split("-"),e.listYM[t]=[0|i[0],0|i[1]],e.list(r,t),w(e.footer).find(D).addClass(s))}),w(n[3]).on("click",function(n){e.change(t).nextMonth()}),w(n[4]).on("click",function(n){e.change(t).nextYear()})}),w.each(e.table,function(t,n){var a=w(n).find("td");a.on("click",function(){e.choose(w(this))})}),w(e.footer).find("span").on("click",function(){var t=w(this).attr("lay-type");e.tool(this,t)})},T.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())},T.prototype.events=function(){var e=this,t=e.config,n=function(n,a){n.on(t.trigger,function(){a&&(e.bindElem=this),e.render()})};t.elem[0]&&!t.elem[0].eventHandler&&(n(t.elem,"bind"),n(t.eventElem),w(document).on("click",function(n){n.target!==t.elem[0]&&n.target!==t.eventElem[0]&&n.target!==w(t.closeStop)[0]&&e.remove()}).on("keydown",function(t){13===t.keyCode&&w("#"+e.elemID)[0]&&e.elemID===T.thisElem&&(t.preventDefault(),w(e.footer).find(g)[0].click())}),w(window).on("resize",function(){return!(!e.elem||!w(r)[0])&&void e.position()}),t.elem[0].eventHandler=!0)},n.render=function(e){var t=new T(e);return a.call(t)},n.getEndDate=function(e,t){var n=new Date;return n.setFullYear(t||n.getFullYear(),e||n.getMonth()+1,1),new Date(n.getTime()-864e5).getDate()},window.lay=window.lay||w,e?(n.ready(),layui.define(function(e){n.path=layui.cache.dir,e(i,n)})):"function"==typeof define&&define.amd?define(function(){return n}):function(){n.ready(),window.laydate=n}()}();
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.eot b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.eot
new file mode 100644
index 0000000..c861caa
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.eot
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.svg b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.svg
new file mode 100644
index 0000000..1e04218
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.svg
@@ -0,0 +1,45 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2013-9-30: Created.
+-->
+<svg>
+<metadata>
+Created by iconfont
+</metadata>
+<defs>
+
+<font id="laydate-icon" horiz-adv-x="1024" >
+  <font-face
+    font-family="laydate-icon"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="1024"
+    ascent="896"
+    descent="-128"
+  />
+    <missing-glyph />
+    
+    <glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
+d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
+t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
+t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
+    
+
+    
+    <glyph glyph-name="youyou" unicode="&#58882;" d="M283.648 721.918976 340.873216 780.926976 740.352 383.997952 340.876288-12.925952 283.648 46.077952 619.52 383.997952Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="zuozuo" unicode="&#58883;" d="M740.352 721.918976 683.126784 780.926976 283.648 383.997952 683.123712-12.925952 740.352 46.077952 404.48 383.997952Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="xiayiye" unicode="&#58970;" d="M62.573 384.103l423.401 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.751-18.976-68.727 0l-39.753 39.753 0.269 0.246-385.655 385.661zM451.365 384.103l423.407 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.757-18.977-68.727 0l-39.762 39.754 0.273 0.249-385.662 385.661zM451.365 384.103z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="xiayiye1" unicode="&#58971;" d="M948.066926 382.958838l-411.990051-412.24426c-18.47333-18.47333-48.417689-18.47333-66.875207 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L814.691135 383.088983 467.512212 730.269123c-18.466032 18.458735-18.466032 48.405526 0 66.873991 18.468465 18.464816 48.410391 18.464816 66.872774 0l38.682336-38.682336-0.261507-0.239614 375.259894-375.265975v0.003649m-378.312834 0L157.756743-29.285422c-18.47333-18.47333-48.415256-18.47333-66.872775 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L436.369787 383.088983 89.19208 730.269123c-18.4636 18.458735-18.4636 48.405526 0 66.873991 18.470898 18.464816 48.415256 18.464816 66.872774 0l38.692067-38.682336-0.266372-0.239614 375.267191-375.265975-0.004865 0.003649m0 0z"  horiz-adv-x="1024" />
+
+    
+
+
+  </font>
+</defs></svg>
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.ttf b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.ttf
new file mode 100644
index 0000000..0bd6c4a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.ttf
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.woff b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.woff
new file mode 100644
index 0000000..bfe5599
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/font/iconfont.woff
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/laydate.css b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/laydate.css
new file mode 100644
index 0000000..c7e1508
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/laydate/theme/default/laydate.css
@@ -0,0 +1,2 @@
+/*! laydate-v5.0.9 日期与时间组件 MIT License  http://www.layui.com/laydate/  By 贤心 */
+.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}@font-face{font-family:laydate-icon;src:url(font/iconfont.eot);src:url(font/iconfont.eot#iefix) format('embedded-opentype'),url(font/iconfont.svg#iconfont) format('svg'),url(font/iconfont.woff) format('woff'),url(font/iconfont.ttf) format('truetype')}.laydate-icon{font-family:laydate-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/layer.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/layer.js
new file mode 100644
index 0000000..12cb6b5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/layer.js
@@ -0,0 +1,2 @@
+/*! layer-v3.1.1 Web弹层组件 MIT License  http://layer.layui.com/  By 贤心 */
+ ;!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:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],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:"&#x4FE1;&#x606F;",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?'<div class="layui-layer-title" style="'+(f?r.title[1]:"")+'">'+(f?r.title[0]:r.title)+"</div>":"";return r.zIndex=s,t([r.shade?'<div class="layui-layer-shade" id="layui-layer-shade'+a+'" times="'+a+'" style="'+("z-index:"+(s-1)+"; ")+'"></div>':"",'<div class="'+l[0]+(" layui-layer-"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?"":" layui-layer-border")+" "+(r.skin||"")+'" id="'+l[0]+a+'" type="'+o.type[r.type]+'" times="'+a+'" showtime="'+r.time+'" conType="'+(e?"object":"string")+'" style="z-index: '+s+"; width:"+r.area[0]+";height:"+r.area[1]+(r.fixed?"":";position:absolute;")+'">'+(e&&2!=r.type?"":u)+'<div id="'+(r.id||"")+'" class="layui-layer-content'+(0==r.type&&r.icon!==-1?" layui-layer-padding":"")+(3==r.type?" layui-layer-loading"+r.icon:"")+'">'+(0==r.type&&r.icon!==-1?'<i class="layui-layer-ico layui-layer-ico'+r.icon+'"></i>':"")+(1==r.type&&e?"":r.content||"")+'</div><span class="layui-layer-setwin">'+function(){var e=c?'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>':"";return r.closeBtn&&(e+='<a class="layui-layer-ico '+l[7]+" "+l[7]+(r.title?r.closeBtn:4==r.type?"1":"2")+'" href="javascript:;"></a>'),e}()+"</span>"+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class="'+l[6]+t+'">'+r.btn[t]+"</a>";return'<div class="'+l[6]+" layui-layer-btn-"+(r.btnAlign||"")+'">'+e+"</div>"}():"")+(r.resize?'<span class="layui-layer-resize"></span>':"")+"</div>"],u,i('<div class="layui-layer-move"></div>')),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||"http://layer.layui.com","auto"];t.content='<iframe scrolling="'+(t.content[1]||"auto")+'" allowtransparency="true" id="'+l[4]+a+'" name="'+l[4]+a+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+t.content[0]+'"></iframe>';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]+'<i class="layui-layer-TipsG"></i>',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;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(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?'<textarea class="layui-layer-input"'+a+">"+(e.value||"")+"</textarea>":function(){return'<input type="'+(1==e.formType?"password":"text")+'" class="layui-layer-input" value="'+(e.value||"")+'">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){s=e.find(".layui-layer-input"),s.focus(),"function"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("&#x6700;&#x591A;&#x8F93;&#x5165;"+(e.maxlength||500)+"&#x4E2A;&#x5B57;&#x6570;",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='<span class="'+n+'">'+t[0].title+"</span>";i<e;i++)a+="<span>"+t[i].title+"</span>";return a}(),content:'<ul class="layui-layer-tabmain">'+function(){var e=t.length,i=1,a="";if(e>0)for(a='<li class="layui-layer-tabli '+n+'">'+(t[0].content||"no content")+"</li>";i<e;i++)a+='<li class="layui-layer-tabli">'+(t[i].content||"no  content")+"</li>";return a}()+"</ul>",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("&#x6CA1;&#x6709;&#x56FE;&#x7247;")}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]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+"px",a[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:"layui-layer-photos"+c("photos"),content:'<div class="layui-layer-phimg"><img src="'+u[d].src+'" alt="'+(u[d].alt||"")+'" layer-pid="'+u[d].pid+'"><div class="layui-layer-imgsee">'+(u.length>1?'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>':"")+'<div class="layui-layer-imgbar" style="display:'+(a?"block":"")+'"><span class="layui-layer-imgtit"><a href="javascript:;">'+(u[d].alt||"")+"</a><em>"+s.imgIndex+"/"+u.length+"</em></span></div></div></div>",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("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;",{time:3e4,btn:["&#x4E0B;&#x4E00;&#x5F20;","&#x4E0D;&#x770B;&#x4E86;"],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/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/layer.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/layer.js
new file mode 100644
index 0000000..f9cf693
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/layer.js
@@ -0,0 +1,2 @@
+/*! layer mobile-v2.0.0 Web弹层组件 MIT License  http://layer.layui.com/mobile  By 贤心 */
+ ;!function(e){"use strict";var t=document,n="querySelectorAll",i="getElementsByClassName",a=function(e){return t[n](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 n in e)t[n]=e[n];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var r=0,o=["layui-m-layer"],c=function(e){var t=this;t.config=l.extend(e),t.view()};c.prototype.view=function(){var e=this,n=e.config,s=t.createElement("div");e.id=s.id=o[0]+r,s.setAttribute("class",o[0]+" "+o[0]+(n.type||0)),s.setAttribute("index",r);var l=function(){var e="object"==typeof n.title;return n.title?'<h3 style="'+(e?n.title[1]:"")+'">'+(e?n.title[0]:n.title)+"</h3>":""}(),c=function(){"string"==typeof n.btn&&(n.btn=[n.btn]);var e,t=(n.btn||[]).length;return 0!==t&&n.btn?(e='<span yes type="1">'+n.btn[0]+"</span>",2===t&&(e='<span no type="0">'+n.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(n.fixed||(n.top=n.hasOwnProperty("top")?n.top:100,n.style=n.style||"",n.style+=" top:"+(t.body.scrollTop+n.top)+"px"),2===n.type&&(n.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(n.content||"")+"</p>"),n.skin&&(n.anim="up"),"msg"===n.skin&&(n.shade=!1),s.innerHTML=(n.shade?"<div "+("string"==typeof n.shade?'style="'+n.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(n.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(n.skin?"layui-m-layer-"+n.skin+" ":"")+(n.className?n.className:"")+" "+(n.anim?"layui-m-anim-"+n.anim:"")+'" '+(n.style?'style="'+n.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+n.content+"</div>"+c+"</div></div></div>",!n.type||2===n.type){var d=t[i](o[0]+n.type),y=d.length;y>=1&&layer.close(d[0].getAttribute("index"))}document.body.appendChild(s);var u=e.elem=a("#"+e.id)[0];n.success&&n.success(u),e.index=r++,e.action(n,u)},c.prototype.action=function(e,t){var n=this;e.time&&(l.timer[n.index]=setTimeout(function(){layer.close(n.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),layer.close(n.index)):e.yes?e.yes(n.index):layer.close(n.index)};if(e.btn)for(var s=t[i]("layui-m-layerbtn")[0].children,r=s.length,o=0;o<r;o++)l.touch(s[o],a);if(e.shade&&e.shadeClose){var c=t[i]("layui-m-layershade")[0];l.touch(c,function(){layer.close(n.index,e.end)})}e.end&&(l.end[n.index]=e.end)},e.layer={v:"2.0",index:r,open:function(e){var t=new c(e||{});return t.index},close:function(e){var n=a("#"+o[0]+e)[0];n&&(n.innerHTML="",t.body.removeChild(n),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[i](o[0]),n=0,a=e.length;n<a;n++)layer.close(0|e[0].getAttribute("index"))}},"function"==typeof define?define(function(){return layer}):function(){var e=document.scripts,n=e[e.length-1],i=n.src,a=i.substring(0,i.lastIndexOf("/")+1);n.getAttribute("merge")||document.head.appendChild(function(){var e=t.createElement("link");return e.href=a+"need/layer.css?2.0",e.type="text/css",e.rel="styleSheet",e.id="layermcss",e}())}()}(window);
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/need/layer.css b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/need/layer.css
new file mode 100644
index 0000000..b9dbf20
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/mobile/need/layer.css
@@ -0,0 +1 @@
+.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}@-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}.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/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png
new file mode 100644
index 0000000..bbbb669
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon-ext.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon.png b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon.png
new file mode 100644
index 0000000..3e17da8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/icon.png
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/layer.css b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/layer.css
new file mode 100644
index 0000000..820b4a9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/layer.css
@@ -0,0 +1 @@
+.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}}
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif
new file mode 100644
index 0000000..6f3c953
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-0.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif
new file mode 100644
index 0000000..db3a483
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-1.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif
new file mode 100644
index 0000000..5bb90fd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/layer/theme/default/loading-2.gif
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/metisMenu/jquery.metisMenu.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/metisMenu/jquery.metisMenu.js
new file mode 100644
index 0000000..a04cdb0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/metisMenu/jquery.metisMenu.js
@@ -0,0 +1,120 @@
+/*
+ * metismenu - v1.1.3
+ * Easy menu jQuery plugin for Twitter Bootstrap 3
+ * https://github.com/onokumus/metisMenu
+ *
+ * Made by Osman Nuri Okumus
+ * Under MIT License
+ */
+;(function($, window, document, undefined) {
+
+    var pluginName = "metisMenu",
+        defaults = {
+            toggle: true,
+            doubleTapToGo: false
+        };
+
+    function Plugin(element, options) {
+        this.element = $(element);
+        this.settings = $.extend({}, defaults, options);
+        this._defaults = defaults;
+        this._name = pluginName;
+        this.init();
+    }
+
+    Plugin.prototype = {
+        init: function() {
+
+            var $this = this.element,
+                $toggle = this.settings.toggle,
+                obj = this;
+
+            if (this.isIE() <= 9) {
+                $this.find("li.active").has("ul").children("ul").collapse("show");
+                $this.find("li").not(".active").has("ul").children("ul").collapse("hide");
+            } else {
+                $this.find("li.active").has("ul").children("ul").addClass("collapse in");
+                $this.find("li").not(".active").has("ul").children("ul").addClass("collapse");
+            }
+
+            //add the "doubleTapToGo" class to active items if needed
+            if (obj.settings.doubleTapToGo) {
+                $this.find("li.active").has("ul").children("a").addClass("doubleTapToGo");
+            }
+
+            $this.find("li").has("ul").children("a").on("click" + "." + pluginName, function(e) {
+                e.preventDefault();
+
+                //Do we need to enable the double tap
+                if (obj.settings.doubleTapToGo) {
+
+                    //if we hit a second time on the link and the href is valid, navigate to that url
+                    if (obj.doubleTapToGo($(this)) && $(this).attr("href") !== "#" && $(this).attr("href") !== "") {
+                        e.stopPropagation();
+                        document.location = $(this).attr("href");
+                        return;
+                    }
+                }
+
+                $(this).parent("li").toggleClass("active").children("ul").collapse("toggle");
+
+                if ($toggle) {
+                    $(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide");
+                }
+
+            });
+        },
+
+        isIE: function() { //https://gist.github.com/padolsey/527683
+            var undef,
+                v = 3,
+                div = document.createElement("div"),
+                all = div.getElementsByTagName("i");
+
+            while (
+                div.innerHTML = "<!--[if gt IE " + (++v) + "]><i></i><![endif]-->",
+                    all[0]
+                ) {
+                return v > 4 ? v : undef;
+            }
+        },
+
+        //Enable the link on the second click.
+        doubleTapToGo: function(elem) {
+            var $this = this.element;
+
+            //if the class "doubleTapToGo" exists, remove it and return
+            if (elem.hasClass("doubleTapToGo")) {
+                elem.removeClass("doubleTapToGo");
+                return true;
+            }
+
+            //does not exists, add a new class and return false
+            if (elem.parent().children("ul").length) {
+                //first remove all other class
+                $this.find(".doubleTapToGo").removeClass("doubleTapToGo");
+                //add the class on the current element
+                elem.addClass("doubleTapToGo");
+                return false;
+            }
+        },
+
+        remove: function() {
+            this.element.off("." + pluginName);
+            this.element.removeData(pluginName);
+        }
+
+    };
+
+    $.fn[pluginName] = function(options) {
+        this.each(function () {
+            var el = $(this);
+            if (el.data(pluginName)) {
+                el.data(pluginName).remove();
+            }
+            el.data(pluginName, new Plugin(this, options));
+        });
+        return this;
+    };
+
+})(jQuery, window, document);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/pace/pace.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/pace/pace.min.js
new file mode 100644
index 0000000..134dcac
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/pace/pace.min.js
@@ -0,0 +1,2 @@
+/*! pace 0.5.1 */
+(function(){var a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W=[].slice,X={}.hasOwnProperty,Y=function(a,b){function c(){this.constructor=a}for(var d in b)X.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},Z=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};for(t={catchupTime:500,initialRate:.03,minTime:500,ghostTime:500,maxProgressPerFrame:10,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},B=function(){var a;return null!=(a="undefined"!=typeof performance&&null!==performance?"function"==typeof performance.now?performance.now():void 0:void 0)?a:+new Date},D=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,s=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==D&&(D=function(a){return setTimeout(a,50)},s=function(a){return clearTimeout(a)}),F=function(a){var b,c;return b=B(),(c=function(){var d;return d=B()-b,d>=33?(b=B(),a(d,function(){return D(c)})):setTimeout(c,33-d)})()},E=function(){var a,b,c;return c=arguments[0],b=arguments[1],a=3<=arguments.length?W.call(arguments,2):[],"function"==typeof c[b]?c[b].apply(c,a):c[b]},u=function(){var a,b,c,d,e,f,g;for(b=arguments[0],d=2<=arguments.length?W.call(arguments,1):[],f=0,g=d.length;g>f;f++)if(c=d[f])for(a in c)X.call(c,a)&&(e=c[a],null!=b[a]&&"object"==typeof b[a]&&null!=e&&"object"==typeof e?u(b[a],e):b[a]=e);return b},p=function(a){var b,c,d,e,f;for(c=b=0,e=0,f=a.length;f>e;e++)d=a[e],c+=Math.abs(d),b++;return c/b},w=function(a,b){var c,d,e;if(null==a&&(a="options"),null==b&&(b=!0),e=document.querySelector("[data-pace-"+a+"]")){if(c=e.getAttribute("data-pace-"+a),!b)return c;try{return JSON.parse(c)}catch(f){return d=f,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",d):void 0}}},g=function(){function a(){}return a.prototype.on=function(a,b,c,d){var e;return null==d&&(d=!1),null==this.bindings&&(this.bindings={}),null==(e=this.bindings)[a]&&(e[a]=[]),this.bindings[a].push({handler:b,ctx:c,once:d})},a.prototype.once=function(a,b,c){return this.on(a,b,c,!0)},a.prototype.off=function(a,b){var c,d,e;if(null!=(null!=(d=this.bindings)?d[a]:void 0)){if(null==b)return delete this.bindings[a];for(c=0,e=[];c<this.bindings[a].length;)this.bindings[a][c].handler===b?e.push(this.bindings[a].splice(c,1)):e.push(c++);return e}},a.prototype.trigger=function(){var a,b,c,d,e,f,g,h,i;if(c=arguments[0],a=2<=arguments.length?W.call(arguments,1):[],null!=(g=this.bindings)?g[c]:void 0){for(e=0,i=[];e<this.bindings[c].length;)h=this.bindings[c][e],d=h.handler,b=h.ctx,f=h.once,d.apply(null!=b?b:this,a),f?i.push(this.bindings[c].splice(e,1)):i.push(e++);return i}},a}(),null==window.Pace&&(window.Pace={}),u(Pace,g.prototype),C=Pace.options=u({},t,window.paceOptions,w()),T=["ajax","document","eventLag","elements"],P=0,R=T.length;R>P;P++)J=T[P],C[J]===!0&&(C[J]=t[J]);i=function(a){function b(){return U=b.__super__.constructor.apply(this,arguments)}return Y(b,a),b}(Error),b=function(){function a(){this.progress=0}return a.prototype.getElement=function(){var a;if(null==this.el){if(a=document.querySelector(C.target),!a)throw new i;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='<div class="pace-progress">\n  <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el)}return this.el},a.prototype.finish=function(){var a;return a=this.getElement(),a.className=a.className.replace("pace-active",""),a.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},a.prototype.update=function(a){return this.progress=a,this.render()},a.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(a){i=a}return this.el=void 0},a.prototype.render=function(){var a,b;return null==document.querySelector(C.target)?!1:(a=this.getElement(),a.children[0].style.width=""+this.progress+"%",(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(a.children[0].setAttribute("data-progress-text",""+(0|this.progress)+"%"),this.progress>=100?b="99":(b=this.progress<10?"0":"",b+=0|this.progress),a.children[0].setAttribute("data-progress",""+b)),this.lastRenderedProgress=this.progress)},a.prototype.done=function(){return this.progress>=100},a}(),h=function(){function a(){this.bindings={}}return a.prototype.trigger=function(a,b){var c,d,e,f,g;if(null!=this.bindings[a]){for(f=this.bindings[a],g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(c.call(this,b));return g}},a.prototype.on=function(a,b){var c;return null==(c=this.bindings)[a]&&(c[a]=[]),this.bindings[a].push(b)},a}(),O=window.XMLHttpRequest,N=window.XDomainRequest,M=window.WebSocket,v=function(a,b){var c,d,e,f;f=[];for(d in b.prototype)try{e=b.prototype[d],null==a[d]&&"function"!=typeof e?f.push(a[d]=e):f.push(void 0)}catch(g){c=g}return f},z=[],Pace.ignore=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?W.call(arguments,1):[],z.unshift("ignore"),c=b.apply(null,a),z.shift(),c},Pace.track=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?W.call(arguments,1):[],z.unshift("track"),c=b.apply(null,a),z.shift(),c},I=function(a){var b;if(null==a&&(a="GET"),"track"===z[0])return"force";if(!z.length&&C.ajax){if("socket"===a&&C.ajax.trackWebSockets)return!0;if(b=a.toUpperCase(),Z.call(C.ajax.trackMethods,b)>=0)return!0}return!1},j=function(a){function b(){var a,c=this;b.__super__.constructor.apply(this,arguments),a=function(a){var b;return b=a.open,a.open=function(d,e){return I(d)&&c.trigger("request",{type:d,url:e,request:a}),b.apply(a,arguments)}},window.XMLHttpRequest=function(b){var c;return c=new O(b),a(c),c},v(window.XMLHttpRequest,O),null!=N&&(window.XDomainRequest=function(){var b;return b=new N,a(b),b},v(window.XDomainRequest,N)),null!=M&&C.ajax.trackWebSockets&&(window.WebSocket=function(a,b){var d;return d=null!=b?new M(a,b):new M(a),I("socket")&&c.trigger("request",{type:"socket",url:a,protocols:b,request:d}),d},v(window.WebSocket,M))}return Y(b,a),b}(h),Q=null,x=function(){return null==Q&&(Q=new j),Q},H=function(a){var b,c,d,e;for(e=C.ajax.ignoreURLs,c=0,d=e.length;d>c;c++)if(b=e[c],"string"==typeof b){if(-1!==a.indexOf(b))return!0}else if(b.test(a))return!0;return!1},x().on("request",function(b){var c,d,e,f,g;return f=b.type,e=b.request,g=b.url,H(g)?void 0:Pace.running||C.restartOnRequestAfter===!1&&"force"!==I(f)?void 0:(d=arguments,c=C.restartOnRequestAfter||0,"boolean"==typeof c&&(c=0),setTimeout(function(){var b,c,g,h,i,j;if(b="socket"===f?e.readyState<2:0<(h=e.readyState)&&4>h){for(Pace.restart(),i=Pace.sources,j=[],c=0,g=i.length;g>c;c++){if(J=i[c],J instanceof a){J.watch.apply(J,d);break}j.push(void 0)}return j}},c))}),a=function(){function a(){var a=this;this.elements=[],x().on("request",function(){return a.watch.apply(a,arguments)})}return a.prototype.watch=function(a){var b,c,d,e;return d=a.type,b=a.request,e=a.url,H(e)?void 0:(c="socket"===d?new m(b):new n(b),this.elements.push(c))},a}(),n=function(){function a(a){var b,c,d,e,f,g,h=this;if(this.progress=0,null!=window.ProgressEvent)for(c=null,a.addEventListener("progress",function(a){return h.progress=a.lengthComputable?100*a.loaded/a.total:h.progress+(100-h.progress)/2}),g=["load","abort","timeout","error"],d=0,e=g.length;e>d;d++)b=g[d],a.addEventListener(b,function(){return h.progress=100});else f=a.onreadystatechange,a.onreadystatechange=function(){var b;return 0===(b=a.readyState)||4===b?h.progress=100:3===a.readyState&&(h.progress=50),"function"==typeof f?f.apply(null,arguments):void 0}}return a}(),m=function(){function a(a){var b,c,d,e,f=this;for(this.progress=0,e=["error","open"],c=0,d=e.length;d>c;c++)b=e[c],a.addEventListener(b,function(){return f.progress=100})}return a}(),d=function(){function a(a){var b,c,d,f;for(null==a&&(a={}),this.elements=[],null==a.selectors&&(a.selectors=[]),f=a.selectors,c=0,d=f.length;d>c;c++)b=f[c],this.elements.push(new e(b))}return a}(),e=function(){function a(a){this.selector=a,this.progress=0,this.check()}return a.prototype.check=function(){var a=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return a.check()},C.elements.checkInterval)},a.prototype.done=function(){return this.progress=100},a}(),c=function(){function a(){var a,b,c=this;this.progress=null!=(b=this.states[document.readyState])?b:100,a=document.onreadystatechange,document.onreadystatechange=function(){return null!=c.states[document.readyState]&&(c.progress=c.states[document.readyState]),"function"==typeof a?a.apply(null,arguments):void 0}}return a.prototype.states={loading:0,interactive:50,complete:100},a}(),f=function(){function a(){var a,b,c,d,e,f=this;this.progress=0,a=0,e=[],d=0,c=B(),b=setInterval(function(){var g;return g=B()-c-50,c=B(),e.push(g),e.length>C.eventLag.sampleCount&&e.shift(),a=p(e),++d>=C.eventLag.minSamples&&a<C.eventLag.lagThreshold?(f.progress=100,clearInterval(b)):f.progress=100*(3/(a+3))},50)}return a}(),l=function(){function a(a){this.source=a,this.last=this.sinceLastUpdate=0,this.rate=C.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=E(this.source,"progress"))}return a.prototype.tick=function(a,b){var c;return null==b&&(b=E(this.source,"progress")),b>=100&&(this.done=!0),b===this.last?this.sinceLastUpdate+=a:(this.sinceLastUpdate&&(this.rate=(b-this.last)/this.sinceLastUpdate),this.catchup=(b-this.progress)/C.catchupTime,this.sinceLastUpdate=0,this.last=b),b>this.progress&&(this.progress+=this.catchup*a),c=1-Math.pow(this.progress/100,C.easeFactor),this.progress+=c*this.rate*a,this.progress=Math.min(this.lastProgress+C.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},a}(),K=null,G=null,q=null,L=null,o=null,r=null,Pace.running=!1,y=function(){return C.restartOnPushState?Pace.restart():void 0},null!=window.history.pushState&&(S=window.history.pushState,window.history.pushState=function(){return y(),S.apply(window.history,arguments)}),null!=window.history.replaceState&&(V=window.history.replaceState,window.history.replaceState=function(){return y(),V.apply(window.history,arguments)}),k={ajax:a,elements:d,document:c,eventLag:f},(A=function(){var a,c,d,e,f,g,h,i;for(Pace.sources=K=[],g=["ajax","elements","document","eventLag"],c=0,e=g.length;e>c;c++)a=g[c],C[a]!==!1&&K.push(new k[a](C[a]));for(i=null!=(h=C.extraSources)?h:[],d=0,f=i.length;f>d;d++)J=i[d],K.push(new J(C));return Pace.bar=q=new b,G=[],L=new l})(),Pace.stop=function(){return Pace.trigger("stop"),Pace.running=!1,q.destroy(),r=!0,null!=o&&("function"==typeof s&&s(o),o=null),A()},Pace.restart=function(){return Pace.trigger("restart"),Pace.stop(),Pace.start()},Pace.go=function(){var a;return Pace.running=!0,q.render(),a=B(),r=!1,o=F(function(b,c){var d,e,f,g,h,i,j,k,m,n,o,p,s,t,u,v;for(k=100-q.progress,e=o=0,f=!0,i=p=0,t=K.length;t>p;i=++p)for(J=K[i],n=null!=G[i]?G[i]:G[i]=[],h=null!=(v=J.elements)?v:[J],j=s=0,u=h.length;u>s;j=++s)g=h[j],m=null!=n[j]?n[j]:n[j]=new l(g),f&=m.done,m.done||(e++,o+=m.tick(b));return d=o/e,q.update(L.tick(b,d)),q.done()||f||r?(q.update(100),Pace.trigger("done"),setTimeout(function(){return q.finish(),Pace.running=!1,Pace.trigger("hide")},Math.max(C.ghostTime,Math.max(C.minTime-(B()-a),0)))):c()})},Pace.start=function(a){u(C,a),Pace.running=!0;try{q.render()}catch(b){i=b}return document.querySelector(".pace")?(Pace.trigger("start"),Pace.go()):setTimeout(Pace.start,50)},"function"==typeof define&&define.amd?define(function(){return Pace}):"object"==typeof exports?module.exports=Pace:C.startOnPageLoad&&Pace.start()}).call(this);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/slimscroll/jquery.slimscroll.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/slimscroll/jquery.slimscroll.min.js
new file mode 100644
index 0000000..97f60c5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/slimscroll/jquery.slimscroll.min.js
@@ -0,0 +1,15 @@
+/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * Version: 1.3.0
+ *
+ */
+(function(f){jQuery.fn.extend({slimScroll:function(h){var a=f.extend({width:"auto",height:"250px",size:"4px",color:"#000",position:"right",distance:"1px",start:"top",opacity:0.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:0.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},h);this.each(function(){function r(d){if(s){d=d||
+window.event;var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);f(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&m(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function m(d,f,h){k=!1;var e=d,g=b.outerHeight()-c.outerHeight();f&&(e=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),e=Math.min(Math.max(e,0),g),e=0<d?Math.ceil(e):Math.floor(e),c.css({top:e+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());
+e=l*(b[0].scrollHeight-b.outerHeight());h&&(e=d,d=e/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),g),c.css({top:d+"px"}));b.scrollTop(e);b.trigger("slimscrolling",~~e);v();p()}function C(){window.addEventListener?(this.addEventListener("DOMMouseScroll",r,!1),this.addEventListener("mousewheel",r,!1),this.addEventListener("MozMousePixelScroll",r,!1)):document.attachEvent("onmousewheel",r)}function w(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),D);c.css({height:u+"px"});
+var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function v(){w();clearTimeout(A);l==~~l?(k=a.allowPageScroll,B!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;B=l;u>=b.outerHeight()?k=!0:(c.stop(!0,!0).fadeIn("fast"),a.railVisible&&g.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(A=setTimeout(function(){a.disableFadeOut&&s||(x||y)||(c.fadeOut("slow"),g.fadeOut("slow"))},1E3))}var s,x,y,A,z,u,l,B,D=30,k=!1,b=f(this);if(b.parent().hasClass(a.wrapperClass)){var n=b.scrollTop(),
+c=b.parent().find("."+a.barClass),g=b.parent().find("."+a.railClass);w();if(f.isPlainObject(h)){if("height"in h&&"auto"==h.height){b.parent().css("height","auto");b.css("height","auto");var q=b.parent().parent().height();b.parent().css("height",q);b.css("height",q)}if("scrollTo"in h)n=parseInt(a.scrollTo);else if("scrollBy"in h)n+=parseInt(a.scrollBy);else if("destroy"in h){c.remove();g.remove();b.unwrap();return}m(n,!1,!0)}}else{a.height="auto"==a.height?b.parent().height():a.height;n=f("<div></div>").addClass(a.wrapperClass).css({position:"relative",width:a.width,height:a.height});b.css({width:a.width,height:a.height});var g=f("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=f("<div></div>").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?
+"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,WebkitBorderRadius:a.borderRadius,zIndex:99}),q="right"==a.position?{right:a.distance}:{left:a.distance};g.css(q);c.css(q);b.wrap(n);b.parent().append(c);b.parent().append(g);a.railDraggable&&c.bind("mousedown",function(a){var b=f(document);y=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);m(0,c.position().top,!1)});
+b.bind("mouseup.slimscroll",function(a){y=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",function(a){a.stopPropagation();a.preventDefault();return!1});g.hover(function(){v()},function(){p()});c.hover(function(){x=!0},function(){x=!1});b.hover(function(){s=!0;v();p()},function(){s=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(z=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&
+(m((z-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),z=b.originalEvent.touches[0].pageY)});w();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),m(0,!0)):"top"!==a.start&&(m(f(a.start).position().top,null,!0),a.alwaysVisible||c.hide());C()}});return this}});jQuery.fn.extend({slimscroll:jQuery.fn.slimScroll})})(jQuery);
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/additional-methods.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/additional-methods.min.js
new file mode 100644
index 0000000..2d8735b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/additional-methods.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.13.1 - 10/14/2014
+ * http://jqueryvalidation.org/
+ * Copyright (c) 2014 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery","./jquery.validate.min"],a):a(jQuery)}(function(a){!function(){function b(a){return a.replace(/<.[^<>]*?>/g," ").replace(/&nbsp;|&#160;/gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length<=d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length>=d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("accept",function(b,c,d){var e,f,g="string"==typeof d?d.replace(/\s/g,"").replace(/,/g,"|"):"image/*",h=this.optional(c);if(h)return h;if("file"===a(c).attr("type")&&(g=g.replace(/\*/g,".*"),c.files&&c.files.length))for(e=0;e<c.files.length;e++)if(f=c.files[e],!f.type.match(new RegExp(".?("+g+")$","i")))return!1;return!0},a.validator.format("Please enter a value with a valid mimetype.")),a.validator.addMethod("alphanumeric",function(a,b){return this.optional(b)||/^\w+$/i.test(a)},"Letters, numbers, and underscores only please"),a.validator.addMethod("bankaccountNL",function(a,b){if(this.optional(b))return!0;if(!/^[0-9]{9}|([0-9]{2} ){3}[0-9]{3}$/.test(a))return!1;var c,d,e,f=a.replace(/ /g,""),g=0,h=f.length;for(c=0;h>c;c++)d=h-c,e=f.substring(c,c+1),g+=d*e;return g%11===0},"Please specify a valid bank account number"),a.validator.addMethod("bankorgiroaccountNL",function(b,c){return this.optional(c)||a.validator.methods.bankaccountNL.call(this,b,c)||a.validator.methods.giroaccountNL.call(this,b,c)},"Please specify a valid bank or giro account number"),a.validator.addMethod("bic",function(a,b){return this.optional(b)||/^([A-Z]{6}[A-Z2-9][A-NP-Z1-2])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test(a)},"Please specify a valid BIC code"),a.validator.addMethod("cifES",function(a){"use strict";var b,c,d,e,f,g,h=[];if(a=a.toUpperCase(),!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)"))return!1;for(d=0;9>d;d++)h[d]=parseInt(a.charAt(d),10);for(c=h[2]+h[4]+h[6],e=1;8>e;e+=2)f=(2*h[e]).toString(),g=f.charAt(1),c+=parseInt(f.charAt(0),10)+(""===g?0:parseInt(g,10));return/^[ABCDEFGHJNPQRSUVW]{1}/.test(a)?(c+="",b=10-parseInt(c.charAt(c.length-1),10),a+=b,h[8].toString()===String.fromCharCode(64+b)||h[8].toString()===a.charAt(a.length-1)):!1},"Please specify a valid CIF number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:128&d?!0:!1},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=e?!0:c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency"),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},"Please enter a correct date"),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(f,e-1,d,12,0,0,0),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d?!0:!1):h=!1,this.optional(b)||h},"Please enter a correct date"),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},"Please enter a correct date"),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp(".("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number"),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="";if(!/^([a-zA-Z0-9]{4} ){2,8}[a-zA-Z0-9]{1,4}|[a-zA-Z0-9]{12,34}$/.test(l))return!1;if(c=l.substring(0,2),h={AL:"\\d{8}[\\dA-Z]{16}",AD:"\\d{8}[\\dA-Z]{12}",AT:"\\d{16}",AZ:"[\\dA-Z]{4}\\d{20}",BE:"\\d{12}",BH:"[A-Z]{4}[\\dA-Z]{14}",BA:"\\d{16}",BR:"\\d{23}[A-Z][\\dA-Z]",BG:"[A-Z]{4}\\d{6}[\\dA-Z]{8}",CR:"\\d{17}",HR:"\\d{17}",CY:"\\d{8}[\\dA-Z]{16}",CZ:"\\d{20}",DK:"\\d{14}",DO:"[A-Z]{4}\\d{20}",EE:"\\d{16}",FO:"\\d{14}",FI:"\\d{14}",FR:"\\d{10}[\\dA-Z]{11}\\d{2}",GE:"[\\dA-Z]{2}\\d{16}",DE:"\\d{18}",GI:"[A-Z]{4}[\\dA-Z]{15}",GR:"\\d{7}[\\dA-Z]{16}",GL:"\\d{14}",GT:"[\\dA-Z]{4}[\\dA-Z]{20}",HU:"\\d{24}",IS:"\\d{22}",IE:"[\\dA-Z]{4}\\d{14}",IL:"\\d{19}",IT:"[A-Z]\\d{10}[\\dA-Z]{12}",KZ:"\\d{3}[\\dA-Z]{13}",KW:"[A-Z]{4}[\\dA-Z]{22}",LV:"[A-Z]{4}[\\dA-Z]{13}",LB:"\\d{4}[\\dA-Z]{20}",LI:"\\d{5}[\\dA-Z]{12}",LT:"\\d{16}",LU:"\\d{3}[\\dA-Z]{13}",MK:"\\d{3}[\\dA-Z]{10}\\d{2}",MT:"[A-Z]{4}\\d{5}[\\dA-Z]{18}",MR:"\\d{23}",MU:"[A-Z]{4}\\d{19}[A-Z]{3}",MC:"\\d{10}[\\dA-Z]{11}\\d{2}",MD:"[\\dA-Z]{2}\\d{18}",ME:"\\d{18}",NL:"[A-Z]{4}\\d{10}",NO:"\\d{11}",PK:"[\\dA-Z]{4}\\d{16}",PS:"[\\dA-Z]{4}\\d{21}",PL:"\\d{24}",PT:"\\d{21}",RO:"[A-Z]{4}[\\dA-Z]{16}",SM:"[A-Z]\\d{10}[\\dA-Z]{12}",SA:"\\d{2}[\\dA-Z]{18}",RS:"\\d{18}",SK:"\\d{20}",SI:"\\d{15}",ES:"\\d{20}",SE:"\\d{20}",CH:"\\d{5}[\\dA-Z]{12}",TN:"\\d{20}",TR:"\\d{5}[\\dA-Z]{17}",AE:"\\d{3}\\d{16}",GB:"[A-Z]{4}\\d{14}",VG:"[\\dA-Z]{4}\\d{16}"},g=h[c],"undefined"!=typeof g&&(i=new RegExp("^[A-Z]{2}\\d{2}"+g+"$",""),!i.test(l)))return!1;for(d=l.substring(4,l.length)+l.substring(0,4),j=0;j<d.length;j++)e=d.charAt(j),"0"!==e&&(n=!1),n||(m+="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(e));for(k=0;k<m.length;k++)f=m.charAt(k),p=""+o+f,o=p%97;return 1===o},"Please specify a valid IBAN"),a.validator.addMethod("integer",function(a,b){return this.optional(b)||/^-?\d+$/.test(a)},"A positive or negative non-decimal number please"),a.validator.addMethod("ipv4",function(a,b){return this.optional(b)||/^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test(a)},"Please enter a valid IP v4 address."),a.validator.addMethod("ipv6",function(a,b){return this.optional(b)||/^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(a)},"Please enter a valid IP v6 address."),a.validator.addMethod("lettersonly",function(a,b){return this.optional(b)||/^[a-z]+$/i.test(a)},"Letters only please"),a.validator.addMethod("letterswithbasicpunc",function(a,b){return this.optional(b)||/^[a-z\-.,()'"\s]+$/i.test(a)},"Letters or punctuation only please"),a.validator.addMethod("mobileNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid mobile number"),a.validator.addMethod("mobileUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number"),a.validator.addMethod("nieES",function(a){"use strict";return a=a.toUpperCase(),a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")?/^[T]{1}/.test(a)?a[8]===/^[T]{1}[A-Z0-9]{8}$/.test(a):/^[XYZ]{1}/.test(a)?a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.replace("X","0").replace("Y","1").replace("Z","2").substring(0,8)%23):!1:!1},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a){"use strict";return a=a.toUpperCase(),a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")?/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):/^[KLM]{1}/.test(a)?a[8]===String.fromCharCode(64):!1:!1},"Please specify a valid NIF number."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please"),a.validator.addMethod("pattern",function(a,b,c){return this.optional(b)?!0:("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number"),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/)},"Please specify a valid phone number"),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number"),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[A-Z] \d[A-Z]\d$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode"),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),jQuery.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=e||"undefined"==typeof c.caseSensitive?!1:c.caseSensitive,g=e||"undefined"==typeof c.includeTerritories?!1:c.includeTerritories,h=e||"undefined"==typeof c.includeMilitary?!1:c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state"),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59"),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format"),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;17>b;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c<h.length;c++)if(d.toUpperCase()===h[c]){d=i[c],d*=e,isNaN(g)&&8===c&&(g=h[c]);break}}else d*=e;k+=d}return f=k%11,10===f&&(f="X"),f===g?!0:!1},"The specified vehicle identification number (VIN) is invalid."),a.validator.addMethod("zipcodeUS",function(a,b){return this.optional(b)||/^\d{5}(-\d{4})?$/.test(a)},"The specified US ZIP Code is invalid"),a.validator.addMethod("ziprange",function(a,b){return this.optional(b)||/^90[2-5]\d\{2\}-\d{4}$/.test(a)},"Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/bootstrapValidator.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/bootstrapValidator.min.js
new file mode 100644
index 0000000..06282df
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/bootstrapValidator.min.js
@@ -0,0 +1,14 @@
+/*!
+ * BootstrapValidator (http://bootstrapvalidator.com)
+ * The best jQuery plugin to validate form fields. Designed to use with Bootstrap 3
+ *
+ * @version     v0.5.3, built on 2014-11-05 9:14:18 PM
+ * @author      https://twitter.com/nghuuphuoc
+ * @copyright   (c) 2013 - 2014 Nguyen Huu Phuoc
+ * @license     Commercial: http://bootstrapvalidator.com/license/
+ *              Non-commercial: http://creativecommons.org/licenses/by-nc-nd/3.0/
+ */
+if("undefined"==typeof jQuery)throw new Error("BootstrapValidator requires jQuery");!function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(+b[0]<2&&+b[1]<9||1===+b[0]&&9===+b[1]&&+b[2]<1)throw new Error("BootstrapValidator requires jQuery version 1.9.1 or higher")}(window.jQuery),function(a){var b=function(b,c){this.$form=a(b),this.options=a.extend({},a.fn.bootstrapValidator.DEFAULT_OPTIONS,c),this.$invalidFields=a([]),this.$submitButton=null,this.$hiddenButton=null,this.STATUS_NOT_VALIDATED="NOT_VALIDATED",this.STATUS_VALIDATING="VALIDATING",this.STATUS_INVALID="INVALID",this.STATUS_VALID="VALID";var d=function(){for(var a=3,b=document.createElement("div"),c=b.all||[];b.innerHTML="<!--[if gt IE "+ ++a+"]><br><![endif]-->",c[0];);return a>4?a:!a}(),e=document.createElement("div");this._changeEvent=9!==d&&"oninput"in e?"input":"keyup",this._submitIfValid=null,this._cacheFields={},this._init()};b.prototype={constructor:b,_init:function(){var b=this,c={autoFocus:this.$form.attr("data-bv-autofocus"),container:this.$form.attr("data-bv-container"),events:{formInit:this.$form.attr("data-bv-events-form-init"),formError:this.$form.attr("data-bv-events-form-error"),formSuccess:this.$form.attr("data-bv-events-form-success"),fieldAdded:this.$form.attr("data-bv-events-field-added"),fieldRemoved:this.$form.attr("data-bv-events-field-removed"),fieldInit:this.$form.attr("data-bv-events-field-init"),fieldError:this.$form.attr("data-bv-events-field-error"),fieldSuccess:this.$form.attr("data-bv-events-field-success"),fieldStatus:this.$form.attr("data-bv-events-field-status"),validatorError:this.$form.attr("data-bv-events-validator-error"),validatorSuccess:this.$form.attr("data-bv-events-validator-success")},excluded:this.$form.attr("data-bv-excluded"),feedbackIcons:{valid:this.$form.attr("data-bv-feedbackicons-valid"),invalid:this.$form.attr("data-bv-feedbackicons-invalid"),validating:this.$form.attr("data-bv-feedbackicons-validating")},group:this.$form.attr("data-bv-group"),live:this.$form.attr("data-bv-live"),message:this.$form.attr("data-bv-message"),onError:this.$form.attr("data-bv-onerror"),onSuccess:this.$form.attr("data-bv-onsuccess"),submitButtons:this.$form.attr("data-bv-submitbuttons"),threshold:this.$form.attr("data-bv-threshold"),trigger:this.$form.attr("data-bv-trigger"),verbose:this.$form.attr("data-bv-verbose"),fields:{}};this.$form.attr("novalidate","novalidate").addClass(this.options.elementClass).on("submit.bv",function(a){a.preventDefault(),b.validate()}).on("click.bv",this.options.submitButtons,function(){b.$submitButton=a(this),b._submitIfValid=!0}).find("[name], [data-bv-field]").each(function(){var d=a(this),e=d.attr("name")||d.attr("data-bv-field"),f=b._parseOptions(d);f&&(d.attr("data-bv-field",e),c.fields[e]=a.extend({},f,c.fields[e]))}),this.options=a.extend(!0,this.options,c),this.$hiddenButton=a("<button/>").attr("type","submit").prependTo(this.$form).addClass("bv-hidden-submit").css({display:"none",width:0,height:0}),this.$form.on("click.bv",'[type="submit"]',function(c){if(!c.isDefaultPrevented()){var d=a(c.target),e=d.is('[type="submit"]')?d.eq(0):d.parent('[type="submit"]').eq(0);!b.options.submitButtons||e.is(b.options.submitButtons)||e.is(b.$hiddenButton)||b.$form.off("submit.bv").submit()}});for(var d in this.options.fields)this._initField(d);this.$form.trigger(a.Event(this.options.events.formInit),{bv:this,options:this.options}),this.options.onSuccess&&this.$form.on(this.options.events.formSuccess,function(c){a.fn.bootstrapValidator.helpers.call(b.options.onSuccess,[c])}),this.options.onError&&this.$form.on(this.options.events.formError,function(c){a.fn.bootstrapValidator.helpers.call(b.options.onError,[c])})},_parseOptions:function(b){var c,d,e,f,g,h,i,j,k,l=b.attr("name")||b.attr("data-bv-field"),m={};for(d in a.fn.bootstrapValidator.validators)if(c=a.fn.bootstrapValidator.validators[d],e="data-bv-"+d.toLowerCase(),f=b.attr(e)+"",k="function"==typeof c.enableByHtml5?c.enableByHtml5(b):null,k&&"false"!==f||k!==!0&&(""===f||"true"===f||e===f.toLowerCase())){c.html5Attributes=a.extend({},{message:"message",onerror:"onError",onsuccess:"onSuccess"},c.html5Attributes),m[d]=a.extend({},k===!0?{}:k,m[d]);for(j in c.html5Attributes)g=c.html5Attributes[j],h="data-bv-"+d.toLowerCase()+"-"+j,i=b.attr(h),i&&("true"===i||h===i.toLowerCase()?i=!0:"false"===i&&(i=!1),m[d][g]=i)}var n={autoFocus:b.attr("data-bv-autofocus"),container:b.attr("data-bv-container"),excluded:b.attr("data-bv-excluded"),feedbackIcons:b.attr("data-bv-feedbackicons"),group:b.attr("data-bv-group"),message:b.attr("data-bv-message"),onError:b.attr("data-bv-onerror"),onStatus:b.attr("data-bv-onstatus"),onSuccess:b.attr("data-bv-onsuccess"),selector:b.attr("data-bv-selector"),threshold:b.attr("data-bv-threshold"),trigger:b.attr("data-bv-trigger"),verbose:b.attr("data-bv-verbose"),validators:m},o=a.isEmptyObject(n),p=a.isEmptyObject(m);return!p||!o&&this.options.fields&&this.options.fields[l]?(n.validators=m,n):null},_initField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field");break;case"string":c=this.getFieldElements(b),c.attr("data-bv-field",b)}if(0!==c.length&&null!==this.options.fields[b]&&null!==this.options.fields[b].validators){var d;for(d in this.options.fields[b].validators)a.fn.bootstrapValidator.validators[d]||delete this.options.fields[b].validators[d];null===this.options.fields[b].enabled&&(this.options.fields[b].enabled=!0);for(var e=this,f=c.length,g=c.attr("type"),h=1===f||"radio"===g||"checkbox"===g,i="radio"===g||"checkbox"===g||"file"===g||"SELECT"===c.eq(0).get(0).tagName?"change":this._changeEvent,j=(this.options.fields[b].trigger||this.options.trigger||i).split(" "),k=a.map(j,function(a){return a+".update.bv"}).join(" "),l=0;f>l;l++){var m=c.eq(l),n=this.options.fields[b].group||this.options.group,o=m.parents(n),p="function"==typeof(this.options.fields[b].container||this.options.container)?(this.options.fields[b].container||this.options.container).call(this,m,this):this.options.fields[b].container||this.options.container,q=p&&"tooltip"!==p&&"popover"!==p?a(p):this._getMessageContainer(m,n);p&&"tooltip"!==p&&"popover"!==p&&q.addClass("has-error"),q.find('.help-block[data-bv-validator][data-bv-for="'+b+'"]').remove(),o.find('i[data-bv-icon-for="'+b+'"]').remove(),m.off(k).on(k,function(){e.updateStatus(a(this),e.STATUS_NOT_VALIDATED)}),m.data("bv.messages",q);for(d in this.options.fields[b].validators)m.data("bv.result."+d,this.STATUS_NOT_VALIDATED),h&&l!==f-1||a("<small/>").css("display","none").addClass("help-block").attr("data-bv-validator",d).attr("data-bv-for",b).attr("data-bv-result",this.STATUS_NOT_VALIDATED).html(this._getMessage(b,d)).appendTo(q),"function"==typeof a.fn.bootstrapValidator.validators[d].init&&a.fn.bootstrapValidator.validators[d].init(this,m,this.options.fields[b].validators[d]);if(this.options.fields[b].feedbackIcons!==!1&&"false"!==this.options.fields[b].feedbackIcons&&this.options.feedbackIcons&&this.options.feedbackIcons.validating&&this.options.feedbackIcons.invalid&&this.options.feedbackIcons.valid&&(!h||l===f-1)){o.addClass("has-feedback");var r=a("<i/>").css("display","none").addClass("form-control-feedback").attr("data-bv-icon-for",b).insertAfter(m);if("checkbox"===g||"radio"===g){var s=m.parent();s.hasClass(g)?r.insertAfter(s):s.parent().hasClass(g)&&r.insertAfter(s.parent())}0===o.find("label").length&&r.addClass("bv-no-label"),0!==o.find(".input-group").length&&r.addClass("bv-icon-input-group").insertAfter(o.find(".input-group").eq(0)),h?l===f-1&&c.data("bv.icon",r):m.data("bv.icon",r),p&&m.off("focus.container.bv").on("focus.container.bv",function(){switch(p){case"tooltip":a(this).data("bv.icon").tooltip("show");break;case"popover":a(this).data("bv.icon").popover("show")}}).off("blur.container.bv").on("blur.container.bv",function(){switch(p){case"tooltip":a(this).data("bv.icon").tooltip("hide");break;case"popover":a(this).data("bv.icon").popover("hide")}})}}switch(c.on(this.options.events.fieldSuccess,function(b,c){var d=e.getOptions(c.field,null,"onSuccess");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.fieldError,function(b,c){var d=e.getOptions(c.field,null,"onError");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.fieldStatus,function(b,c){var d=e.getOptions(c.field,null,"onStatus");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.validatorError,function(b,c){var d=e.getOptions(c.field,c.validator,"onError");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}).on(this.options.events.validatorSuccess,function(b,c){var d=e.getOptions(c.field,c.validator,"onSuccess");d&&a.fn.bootstrapValidator.helpers.call(d,[b,c])}),k=a.map(j,function(a){return a+".live.bv"}).join(" "),this.options.live){case"submitted":break;case"disabled":c.off(k);break;case"enabled":default:c.off(k).on(k,function(){e._exceedThreshold(a(this))&&e.validateField(a(this))})}c.trigger(a.Event(this.options.events.fieldInit),{bv:this,field:b,element:c})}},_getMessage:function(b,c){if(!(this.options.fields[b]&&a.fn.bootstrapValidator.validators[c]&&this.options.fields[b].validators&&this.options.fields[b].validators[c]))return"";var d=this.options.fields[b].validators[c];switch(!0){case!!d.message:return d.message;case!!this.options.fields[b].message:return this.options.fields[b].message;case!!a.fn.bootstrapValidator.i18n[c]:return a.fn.bootstrapValidator.i18n[c]["default"];default:return this.options.message}},_getMessageContainer:function(a,b){var c=a.parent();if(c.is(b))return c;var d=c.attr("class");if(!d)return this._getMessageContainer(c,b);d=d.split(" ");for(var e=d.length,f=0;e>f;f++)if(/^col-(xs|sm|md|lg)-\d+$/.test(d[f])||/^col-(xs|sm|md|lg)-offset-\d+$/.test(d[f]))return c;return this._getMessageContainer(c,b)},_submit:function(){var b=this.isValid(),c=b?this.options.events.formSuccess:this.options.events.formError,d=a.Event(c);this.$form.trigger(d),this.$submitButton&&(b?this._onSuccess(d):this._onError(d))},_isExcluded:function(b){var c=b.attr("data-bv-excluded"),d=b.attr("data-bv-field")||b.attr("name");switch(!0){case!!d&&this.options.fields&&this.options.fields[d]&&("true"===this.options.fields[d].excluded||this.options.fields[d].excluded===!0):case"true"===c:case""===c:return!0;case!!d&&this.options.fields&&this.options.fields[d]&&("false"===this.options.fields[d].excluded||this.options.fields[d].excluded===!1):case"false"===c:return!1;default:if(this.options.excluded){"string"==typeof this.options.excluded&&(this.options.excluded=a.map(this.options.excluded.split(","),function(b){return a.trim(b)}));for(var e=this.options.excluded.length,f=0;e>f;f++)if("string"==typeof this.options.excluded[f]&&b.is(this.options.excluded[f])||"function"==typeof this.options.excluded[f]&&this.options.excluded[f].call(this,b,this)===!0)return!0}return!1}},_exceedThreshold:function(b){var c=b.attr("data-bv-field"),d=this.options.fields[c].threshold||this.options.threshold;if(!d)return!0;var e=-1!==a.inArray(b.attr("type"),["button","checkbox","file","hidden","image","radio","reset","submit"]);return e||b.val().length>=d},_onError:function(b){if(!b.isDefaultPrevented()){if("submitted"===this.options.live){this.options.live="enabled";var c=this;for(var d in this.options.fields)!function(b){var e=c.getFieldElements(b);if(e.length){var f=a(e[0]).attr("type"),g="radio"===f||"checkbox"===f||"file"===f||"SELECT"===a(e[0]).get(0).tagName?"change":c._changeEvent,h=c.options.fields[d].trigger||c.options.trigger||g,i=a.map(h.split(" "),function(a){return a+".live.bv"}).join(" ");e.off(i).on(i,function(){c._exceedThreshold(a(this))&&c.validateField(a(this))})}}(d)}for(var e=0;e<this.$invalidFields.length;e++){var f=this.$invalidFields.eq(e),g=this._isOptionEnabled(f.attr("data-bv-field"),"autoFocus");if(g){var h,i=f.parents(".tab-pane");i&&(h=i.attr("id"))&&a('a[href="#'+h+'"][data-toggle="tab"]').tab("show"),f.focus();break}}}},_onSuccess:function(a){a.isDefaultPrevented()||this.disableSubmitButtons(!0).defaultSubmit()},_onFieldValidated:function(b,c){var d=b.attr("data-bv-field"),e=this.options.fields[d].validators,f={},g=0,h={bv:this,field:d,element:b,validator:c,result:b.data("bv.response."+c)};if(c)switch(b.data("bv.result."+c)){case this.STATUS_INVALID:b.trigger(a.Event(this.options.events.validatorError),h);break;case this.STATUS_VALID:b.trigger(a.Event(this.options.events.validatorSuccess),h)}f[this.STATUS_NOT_VALIDATED]=0,f[this.STATUS_VALIDATING]=0,f[this.STATUS_INVALID]=0,f[this.STATUS_VALID]=0;for(var i in e)if(e[i].enabled!==!1){g++;var j=b.data("bv.result."+i);j&&f[j]++}f[this.STATUS_VALID]===g?(this.$invalidFields=this.$invalidFields.not(b),b.trigger(a.Event(this.options.events.fieldSuccess),h)):(0===f[this.STATUS_NOT_VALIDATED]||!this._isOptionEnabled(d,"verbose"))&&0===f[this.STATUS_VALIDATING]&&f[this.STATUS_INVALID]>0&&(this.$invalidFields=this.$invalidFields.add(b),b.trigger(a.Event(this.options.events.fieldError),h))},_isOptionEnabled:function(a,b){return!this.options.fields[a]||"true"!==this.options.fields[a][b]&&this.options.fields[a][b]!==!0?!this.options.fields[a]||"false"!==this.options.fields[a][b]&&this.options.fields[a][b]!==!1?"true"===this.options[b]||this.options[b]===!0:!1:!0},getFieldElements:function(b){return this._cacheFields[b]||(this._cacheFields[b]=this.options.fields[b]&&this.options.fields[b].selector?a(this.options.fields[b].selector):this.$form.find('[name="'+b+'"]')),this._cacheFields[b]},getOptions:function(a,b,c){if(!a)return c?this.options[c]:this.options;if("object"==typeof a&&(a=a.attr("data-bv-field")),!this.options.fields[a])return null;var d=this.options.fields[a];return b?d.validators&&d.validators[b]?c?d.validators[b][c]:d.validators[b]:null:c?d[c]:d},disableSubmitButtons:function(a){return a?"disabled"!==this.options.live&&this.$form.find(this.options.submitButtons).attr("disabled","disabled"):this.$form.find(this.options.submitButtons).removeAttr("disabled"),this},validate:function(){if(!this.options.fields)return this;this.disableSubmitButtons(!0),this._submitIfValid=!1;for(var a in this.options.fields)this.validateField(a);return this._submit(),this._submitIfValid=!0,this},validateField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field");break;case"string":c=this.getFieldElements(b)}if(0===c.length||!this.options.fields[b]||this.options.fields[b].enabled===!1)return this;for(var d,e,f=this,g=c.attr("type"),h="radio"===g||"checkbox"===g?1:c.length,i="radio"===g||"checkbox"===g,j=this.options.fields[b].validators,k=this._isOptionEnabled(b,"verbose"),l=0;h>l;l++){var m=c.eq(l);if(!this._isExcluded(m)){var n=!1;for(d in j){if(m.data("bv.dfs."+d)&&m.data("bv.dfs."+d).reject(),n)break;var o=m.data("bv.result."+d);if(o!==this.STATUS_VALID&&o!==this.STATUS_INVALID)if(j[d].enabled!==!1){if(m.data("bv.result."+d,this.STATUS_VALIDATING),e=a.fn.bootstrapValidator.validators[d].validate(this,m,j[d]),"object"==typeof e&&e.resolve)this.updateStatus(i?b:m,this.STATUS_VALIDATING,d),m.data("bv.dfs."+d,e),e.done(function(a,b,c){a.removeData("bv.dfs."+b).data("bv.response."+b,c),c.message&&f.updateMessage(a,b,c.message),f.updateStatus(i?a.attr("data-bv-field"):a,c.valid?f.STATUS_VALID:f.STATUS_INVALID,b),c.valid&&f._submitIfValid===!0?f._submit():c.valid||k||(n=!0)});else if("object"==typeof e&&void 0!==e.valid&&void 0!==e.message){if(m.data("bv.response."+d,e),this.updateMessage(i?b:m,d,e.message),this.updateStatus(i?b:m,e.valid?this.STATUS_VALID:this.STATUS_INVALID,d),!e.valid&&!k)break}else if("boolean"==typeof e&&(m.data("bv.response."+d,e),this.updateStatus(i?b:m,e?this.STATUS_VALID:this.STATUS_INVALID,d),!e&&!k))break}else this.updateStatus(i?b:m,this.STATUS_VALID,d);else this._onFieldValidated(m,d)}}}return this},updateMessage:function(b,c,d){var e=a([]);switch(typeof b){case"object":e=b,b=b.attr("data-bv-field");break;case"string":e=this.getFieldElements(b)}e.each(function(){a(this).data("bv.messages").find('.help-block[data-bv-validator="'+c+'"][data-bv-for="'+b+'"]').html(d)})},updateStatus:function(b,c,d){var e=a([]);switch(typeof b){case"object":e=b,b=b.attr("data-bv-field");break;case"string":e=this.getFieldElements(b)}c===this.STATUS_NOT_VALIDATED&&(this._submitIfValid=!1);for(var f=this,g=e.attr("type"),h=this.options.fields[b].group||this.options.group,i="radio"===g||"checkbox"===g?1:e.length,j=0;i>j;j++){var k=e.eq(j);if(!this._isExcluded(k)){var l=k.parents(h),m=k.data("bv.messages"),n=m.find('.help-block[data-bv-validator][data-bv-for="'+b+'"]'),o=d?n.filter('[data-bv-validator="'+d+'"]'):n,p=k.data("bv.icon"),q="function"==typeof(this.options.fields[b].container||this.options.container)?(this.options.fields[b].container||this.options.container).call(this,k,this):this.options.fields[b].container||this.options.container,r=null;if(d)k.data("bv.result."+d,c);else for(var s in this.options.fields[b].validators)k.data("bv.result."+s,c);o.attr("data-bv-result",c);var t,u,v=k.parents(".tab-pane");switch(v&&(t=v.attr("id"))&&(u=a('a[href="#'+t+'"][data-toggle="tab"]').parent()),c){case this.STATUS_VALIDATING:r=null,this.disableSubmitButtons(!0),l.removeClass("has-success").removeClass("has-error"),p&&p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).addClass(this.options.feedbackIcons.validating).show(),u&&u.removeClass("bv-tab-success").removeClass("bv-tab-error");break;case this.STATUS_INVALID:r=!1,this.disableSubmitButtons(!0),l.removeClass("has-success").addClass("has-error"),p&&p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.validating).addClass(this.options.feedbackIcons.invalid).show(),u&&u.removeClass("bv-tab-success").addClass("bv-tab-error");break;case this.STATUS_VALID:r=0===n.filter('[data-bv-result="'+this.STATUS_NOT_VALIDATED+'"]').length?n.filter('[data-bv-result="'+this.STATUS_VALID+'"]').length===n.length:null,null!==r&&(this.disableSubmitButtons(this.$submitButton?!this.isValid():!r),p&&p.removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).removeClass(this.options.feedbackIcons.valid).addClass(r?this.options.feedbackIcons.valid:this.options.feedbackIcons.invalid).show()),l.removeClass("has-error has-success").addClass(this.isValidContainer(l)?"has-success":"has-error"),u&&u.removeClass("bv-tab-success").removeClass("bv-tab-error").addClass(this.isValidContainer(v)?"bv-tab-success":"bv-tab-error");break;case this.STATUS_NOT_VALIDATED:default:r=null,this.disableSubmitButtons(!1),l.removeClass("has-success").removeClass("has-error"),p&&p.removeClass(this.options.feedbackIcons.valid).removeClass(this.options.feedbackIcons.invalid).removeClass(this.options.feedbackIcons.validating).hide(),u&&u.removeClass("bv-tab-success").removeClass("bv-tab-error")}switch(!0){case p&&"tooltip"===q:r===!1?p.css("cursor","pointer").tooltip("destroy").tooltip({container:"body",html:!0,placement:"auto top",title:n.filter('[data-bv-result="'+f.STATUS_INVALID+'"]').eq(0).html()}):p.css("cursor","").tooltip("destroy");break;case p&&"popover"===q:r===!1?p.css("cursor","pointer").popover("destroy").popover({container:"body",content:n.filter('[data-bv-result="'+f.STATUS_INVALID+'"]').eq(0).html(),html:!0,placement:"auto top",trigger:"hover click"}):p.css("cursor","").popover("destroy");break;default:c===this.STATUS_INVALID?o.show():o.hide()}k.trigger(a.Event(this.options.events.fieldStatus),{bv:this,field:b,element:k,status:c}),this._onFieldValidated(k,d)}}return this},isValid:function(){for(var a in this.options.fields)if(!this.isValidField(a))return!1;return!0},isValidField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field");break;case"string":c=this.getFieldElements(b)}if(0===c.length||!this.options.fields[b]||this.options.fields[b].enabled===!1)return!0;for(var d,e,f,g=c.attr("type"),h="radio"===g||"checkbox"===g?1:c.length,i=0;h>i;i++)if(d=c.eq(i),!this._isExcluded(d))for(e in this.options.fields[b].validators)if(this.options.fields[b].validators[e].enabled!==!1&&(f=d.data("bv.result."+e),f!==this.STATUS_VALID))return!1;return!0},isValidContainer:function(b){var c=this,d={},e="string"==typeof b?a(b):b;if(0===e.length)return!0;e.find("[data-bv-field]").each(function(){var b=a(this),e=b.attr("data-bv-field");c._isExcluded(b)||d[e]||(d[e]=b)});for(var f in d){var g=d[f];if(g.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="'+f+'"]').filter('[data-bv-result="'+this.STATUS_INVALID+'"]').length>0)return!1}return!0},defaultSubmit:function(){this.$submitButton&&a("<input/>").attr("type","hidden").attr("data-bv-submit-hidden","").attr("name",this.$submitButton.attr("name")).val(this.$submitButton.val()).appendTo(this.$form),this.$form.off("submit.bv").submit()},getInvalidFields:function(){return this.$invalidFields},getSubmitButton:function(){return this.$submitButton},getMessages:function(b,c){var d=this,e=[],f=a([]);switch(!0){case b&&"object"==typeof b:f=b;break;case b&&"string"==typeof b:var g=this.getFieldElements(b);if(g.length>0){var h=g.attr("type");f="radio"===h||"checkbox"===h?g.eq(0):g}break;default:f=this.$invalidFields}var i=c?'[data-bv-validator="'+c+'"]':"";return f.each(function(){e=e.concat(a(this).data("bv.messages").find('.help-block[data-bv-for="'+a(this).attr("data-bv-field")+'"][data-bv-result="'+d.STATUS_INVALID+'"]'+i).map(function(){var b=a(this).attr("data-bv-validator"),c=a(this).attr("data-bv-for");return d.options.fields[c].validators[b].enabled===!1?"":a(this).html()}).get())}),e},updateOption:function(a,b,c,d){return"object"==typeof a&&(a=a.attr("data-bv-field")),this.options.fields[a]&&this.options.fields[a].validators[b]&&(this.options.fields[a].validators[b][c]=d,this.updateStatus(a,this.STATUS_NOT_VALIDATED,b)),this},addField:function(b,c){var d=a([]);switch(typeof b){case"object":d=b,b=b.attr("data-bv-field")||b.attr("name");break;case"string":delete this._cacheFields[b],d=this.getFieldElements(b)}d.attr("data-bv-field",b);for(var e=d.attr("type"),f="radio"===e||"checkbox"===e?1:d.length,g=0;f>g;g++){var h=d.eq(g),i=this._parseOptions(h);i=null===i?c:a.extend(!0,c,i),this.options.fields[b]=a.extend(!0,this.options.fields[b],i),this._cacheFields[b]=this._cacheFields[b]?this._cacheFields[b].add(h):h,this._initField("checkbox"===e||"radio"===e?b:h)}return this.disableSubmitButtons(!1),this.$form.trigger(a.Event(this.options.events.fieldAdded),{field:b,element:d,options:this.options.fields[b]}),this},removeField:function(b){var c=a([]);switch(typeof b){case"object":c=b,b=b.attr("data-bv-field")||b.attr("name"),c.attr("data-bv-field",b);break;case"string":c=this.getFieldElements(b)}if(0===c.length)return this;for(var d=c.attr("type"),e="radio"===d||"checkbox"===d?1:c.length,f=0;e>f;f++){var g=c.eq(f);this.$invalidFields=this.$invalidFields.not(g),this._cacheFields[b]=this._cacheFields[b].not(g)}return this._cacheFields[b]&&0!==this._cacheFields[b].length||delete this.options.fields[b],("checkbox"===d||"radio"===d)&&this._initField(b),this.disableSubmitButtons(!1),this.$form.trigger(a.Event(this.options.events.fieldRemoved),{field:b,element:c}),this},resetField:function(b,c){var d=a([]);switch(typeof b){case"object":d=b,b=b.attr("data-bv-field");break;case"string":d=this.getFieldElements(b)}var e=d.length;if(this.options.fields[b])for(var f=0;e>f;f++)for(var g in this.options.fields[b].validators)d.eq(f).removeData("bv.dfs."+g);if(this.updateStatus(b,this.STATUS_NOT_VALIDATED),c){var h=d.attr("type");"radio"===h||"checkbox"===h?d.removeAttr("checked").removeAttr("selected"):d.val("")}return this},resetForm:function(b){for(var c in this.options.fields)this.resetField(c,b);return this.$invalidFields=a([]),this.$submitButton=null,this.disableSubmitButtons(!1),this},revalidateField:function(a){return this.updateStatus(a,this.STATUS_NOT_VALIDATED).validateField(a),this},enableFieldValidators:function(a,b,c){var d=this.options.fields[a].validators;if(c&&d&&d[c]&&d[c].enabled!==b)this.options.fields[a].validators[c].enabled=b,this.updateStatus(a,this.STATUS_NOT_VALIDATED,c);else if(!c&&this.options.fields[a].enabled!==b){this.options.fields[a].enabled=b;for(var e in d)this.enableFieldValidators(a,b,e)}return this},getDynamicOption:function(b,c){var d="string"==typeof b?this.getFieldElements(b):b,e=d.val();if("function"==typeof c)return a.fn.bootstrapValidator.helpers.call(c,[e,this,d]);if("string"==typeof c){var f=this.getFieldElements(c);return f.length?f.val():a.fn.bootstrapValidator.helpers.call(c,[e,this,d])||c}return null},destroy:function(){var b,c,d,e,f,g;for(b in this.options.fields){c=this.getFieldElements(b),g=this.options.fields[b].group||this.options.group;for(var h=0;h<c.length;h++){if(d=c.eq(h),d.data("bv.messages").find('.help-block[data-bv-validator][data-bv-for="'+b+'"]').remove().end().end().removeData("bv.messages").parents(g).removeClass("has-feedback has-error has-success").end().off(".bv").removeAttr("data-bv-field"),f=d.data("bv.icon")){var i="function"==typeof(this.options.fields[b].container||this.options.container)?(this.options.fields[b].container||this.options.container).call(this,d,this):this.options.fields[b].container||this.options.container;switch(i){case"tooltip":f.tooltip("destroy").remove();break;case"popover":f.popover("destroy").remove();break;default:f.remove()}}d.removeData("bv.icon");for(e in this.options.fields[b].validators)d.data("bv.dfs."+e)&&d.data("bv.dfs."+e).reject(),d.removeData("bv.result."+e).removeData("bv.response."+e).removeData("bv.dfs."+e),"function"==typeof a.fn.bootstrapValidator.validators[e].destroy&&a.fn.bootstrapValidator.validators[e].destroy(this,d,this.options.fields[b].validators[e])}}this.disableSubmitButtons(!1),this.$hiddenButton.remove(),this.$form.removeClass(this.options.elementClass).off(".bv").removeData("bootstrapValidator").find("[data-bv-submit-hidden]").remove().end().find('[type="submit"]').off("click.bv")}},a.fn.bootstrapValidator=function(c){var d=arguments;return this.each(function(){var e=a(this),f=e.data("bootstrapValidator"),g="object"==typeof c&&c;f||(f=new b(this,g),e.data("bootstrapValidator",f)),"string"==typeof c&&f[c].apply(f,Array.prototype.slice.call(d,1))})},a.fn.bootstrapValidator.DEFAULT_OPTIONS={autoFocus:!0,container:null,elementClass:"bv-form",events:{formInit:"init.form.bv",formError:"error.form.bv",formSuccess:"success.form.bv",fieldAdded:"added.field.bv",fieldRemoved:"removed.field.bv",fieldInit:"init.field.bv",fieldError:"error.field.bv",fieldSuccess:"success.field.bv",fieldStatus:"status.field.bv",validatorError:"error.validator.bv",validatorSuccess:"success.validator.bv"},excluded:[":disabled",":hidden",":not(:visible)"],feedbackIcons:{valid:null,invalid:null,validating:null},fields:null,group:".form-group",live:"enabled",message:"This value is not valid",submitButtons:'[type="submit"]',threshold:null,verbose:!0},a.fn.bootstrapValidator.validators={},a.fn.bootstrapValidator.i18n={},a.fn.bootstrapValidator.Constructor=b,a.fn.bootstrapValidator.helpers={call:function(a,b){if("function"==typeof a)return a.apply(this,b);if("string"==typeof a){"()"===a.substring(a.length-2)&&(a=a.substring(0,a.length-2));for(var c=a.split("."),d=c.pop(),e=window,f=0;f<c.length;f++)e=e[c[f]];return"undefined"==typeof e[d]?null:e[d].apply(this,b)}},format:function(b,c){a.isArray(c)||(c=[c]);for(var d in c)b=b.replace("%s",c[d]);return b},date:function(a,b,c,d){if(isNaN(a)||isNaN(b)||isNaN(c))return!1;if(c.length>2||b.length>2||a.length>4)return!1;if(c=parseInt(c,10),b=parseInt(b,10),a=parseInt(a,10),1e3>a||a>9999||0>=b||b>12)return!1;var e=[31,28,31,30,31,30,31,31,30,31,30,31];if((a%400===0||a%100!==0&&a%4===0)&&(e[1]=29),0>=c||c>e[b-1])return!1;if(d===!0){var f=new Date,g=f.getFullYear(),h=f.getMonth(),i=f.getDate();return g>a||a===g&&h>b-1||a===g&&b-1===h&&i>c}return!0},luhn:function(a){for(var b=a.length,c=0,d=[[0,1,2,3,4,5,6,7,8,9],[0,2,4,6,8,1,3,5,7,9]],e=0;b--;)e+=d[c][parseInt(a.charAt(b),10)],c^=1;return e%10===0&&e>0},mod11And10:function(a){for(var b=5,c=a.length,d=0;c>d;d++)b=(2*(b||10)%11+parseInt(a.charAt(d),10))%10;return 1===b},mod37And36:function(a,b){b=b||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";for(var c=b.length,d=a.length,e=Math.floor(c/2),f=0;d>f;f++)e=(2*(e||c)%(c+1)+b.indexOf(a.charAt(f)))%c;return 1===e}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.base64=a.extend(a.fn.bootstrapValidator.i18n.base64||{},{"default":"Please enter a valid base 64 encoded"}),a.fn.bootstrapValidator.validators.base64={validate:function(a,b){var c=b.val();return""===c?!0:/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.between=a.extend(a.fn.bootstrapValidator.i18n.between||{},{"default":"Please enter a value between %s and %s",notInclusive:"Please enter a value between %s and %s strictly"}),a.fn.bootstrapValidator.validators.between={html5Attributes:{message:"message",min:"min",max:"max",inclusive:"inclusive"},enableByHtml5:function(a){return"range"===a.attr("type")?{min:a.attr("min"),max:a.attr("max")}:!1},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(e=this._format(e),!a.isNumeric(e))return!1;var f=a.isNumeric(d.min)?d.min:b.getDynamicOption(c,d.min),g=a.isNumeric(d.max)?d.max:b.getDynamicOption(c,d.max),h=this._format(f),i=this._format(g);return e=parseFloat(e),d.inclusive===!0||void 0===d.inclusive?{valid:e>=h&&i>=e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.between["default"],[f,g])}:{valid:e>h&&i>e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.between.notInclusive,[f,g])}},_format:function(a){return(a+"").replace(",",".")}}}(window.jQuery),function(a){a.fn.bootstrapValidator.validators.blank={validate:function(){return!0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.callback=a.extend(a.fn.bootstrapValidator.i18n.callback||{},{"default":"Please enter a valid value"}),a.fn.bootstrapValidator.validators.callback={html5Attributes:{message:"message",callback:"callback"},validate:function(b,c,d){var e=c.val(),f=new a.Deferred,g={valid:!0};if(d.callback){var h=a.fn.bootstrapValidator.helpers.call(d.callback,[e,b,c]);g="boolean"==typeof h?{valid:h}:h}return f.resolve(c,"callback",g),f}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.choice=a.extend(a.fn.bootstrapValidator.i18n.choice||{},{"default":"Please enter a valid value",less:"Please choose %s options at minimum",more:"Please choose %s options at maximum",between:"Please choose %s - %s options"}),a.fn.bootstrapValidator.validators.choice={html5Attributes:{message:"message",min:"min",max:"max"},validate:function(b,c,d){var e=c.is("select")?b.getFieldElements(c.attr("data-bv-field")).find("option").filter(":selected").length:b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length,f=d.min?a.isNumeric(d.min)?d.min:b.getDynamicOption(c,d.min):null,g=d.max?a.isNumeric(d.max)?d.max:b.getDynamicOption(c,d.max):null,h=!0,i=d.message||a.fn.bootstrapValidator.i18n.choice["default"];switch((f&&e<parseInt(f,10)||g&&e>parseInt(g,10))&&(h=!1),!0){case!!f&&!!g:i=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.choice.between,[parseInt(f,10),parseInt(g,10)]);break;case!!f:i=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.choice.less,parseInt(f,10));break;case!!g:i=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.choice.more,parseInt(g,10))}return{valid:h,message:i}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.color=a.extend(a.fn.bootstrapValidator.i18n.color||{},{"default":"Please enter a valid color"}),a.fn.bootstrapValidator.validators.color={SUPPORTED_TYPES:["hex","rgb","rgba","hsl","hsla","keyword"],KEYWORD_COLORS:["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","transparent","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],validate:function(b,c,d){var e=c.val();
+if(""===e)return!0;var f=d.type||this.SUPPORTED_TYPES;a.isArray(f)||(f=f.replace(/s/g,"").split(","));for(var g,h,i=!1,j=0;j<f.length;j++)if(h=f[j],g="_"+h.toLowerCase(),i=i||this[g](e))return!0;return!1},_hex:function(a){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a)},_hsl:function(a){return/^hsl\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/.test(a)},_hsla:function(a){return/^hsla\((\s*(-?\d+)\s*,)(\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/.test(a)},_keyword:function(b){return a.inArray(b,this.KEYWORD_COLORS)>=0},_rgb:function(a){var b=/^rgb\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){2}(\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*)\)$/,c=/^rgb\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){2}(\s*(\b(0?\d{1,2}|100)\b%)\s*)\)$/;return b.test(a)||c.test(a)},_rgba:function(a){var b=/^rgba\((\s*(\b([01]?\d{1,2}|2[0-4]\d|25[0-5])\b)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/,c=/^rgba\((\s*(\b(0?\d{1,2}|100)\b%)\s*,){3}(\s*(0?(\.\d+)?|1(\.0+)?)\s*)\)$/;return b.test(a)||c.test(a)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.creditCard=a.extend(a.fn.bootstrapValidator.i18n.creditCard||{},{"default":"Please enter a valid credit card number"}),a.fn.bootstrapValidator.validators.creditCard={validate:function(b,c){var d=c.val();if(""===d)return!0;if(/[^0-9-\s]+/.test(d))return!1;if(d=d.replace(/\D/g,""),!a.fn.bootstrapValidator.helpers.luhn(d))return!1;var e,f,g={AMERICAN_EXPRESS:{length:[15],prefix:["34","37"]},DINERS_CLUB:{length:[14],prefix:["300","301","302","303","304","305","36"]},DINERS_CLUB_US:{length:[16],prefix:["54","55"]},DISCOVER:{length:[16],prefix:["6011","622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925","644","645","646","647","648","649","65"]},JCB:{length:[16],prefix:["3528","3529","353","354","355","356","357","358"]},LASER:{length:[16,17,18,19],prefix:["6304","6706","6771","6709"]},MAESTRO:{length:[12,13,14,15,16,17,18,19],prefix:["5018","5020","5038","6304","6759","6761","6762","6763","6764","6765","6766"]},MASTERCARD:{length:[16],prefix:["51","52","53","54","55"]},SOLO:{length:[16,18,19],prefix:["6334","6767"]},UNIONPAY:{length:[16,17,18,19],prefix:["622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925"]},VISA:{length:[16],prefix:["4"]}};for(e in g)for(f in g[e].prefix)if(d.substr(0,g[e].prefix[f].length)===g[e].prefix[f]&&-1!==a.inArray(d.length,g[e].length))return!0;return!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.cusip=a.extend(a.fn.bootstrapValidator.i18n.cusip||{},{"default":"Please enter a valid CUSIP number"}),a.fn.bootstrapValidator.validators.cusip={validate:function(b,c){var d=c.val();if(""===d)return!0;if(d=d.toUpperCase(),!/^[0-9A-Z]{9}$/.test(d))return!1;for(var e=a.map(d.split(""),function(a){var b=a.charCodeAt(0);return b>="A".charCodeAt(0)&&b<="Z".charCodeAt(0)?b-"A".charCodeAt(0)+10:a}),f=e.length,g=0,h=0;f-1>h;h++){var i=parseInt(e[h],10);h%2!==0&&(i*=2),i>9&&(i-=9),g+=i}return g=(10-g%10)%10,g===e[f-1]}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.cvv=a.extend(a.fn.bootstrapValidator.i18n.cvv||{},{"default":"Please enter a valid CVV number"}),a.fn.bootstrapValidator.validators.cvv={html5Attributes:{message:"message",ccfield:"creditCardField"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(!/^[0-9]{3,4}$/.test(e))return!1;if(!d.creditCardField)return!0;var f=b.getFieldElements(d.creditCardField).val();if(""===f)return!0;f=f.replace(/\D/g,"");var g,h,i={AMERICAN_EXPRESS:{length:[15],prefix:["34","37"]},DINERS_CLUB:{length:[14],prefix:["300","301","302","303","304","305","36"]},DINERS_CLUB_US:{length:[16],prefix:["54","55"]},DISCOVER:{length:[16],prefix:["6011","622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925","644","645","646","647","648","649","65"]},JCB:{length:[16],prefix:["3528","3529","353","354","355","356","357","358"]},LASER:{length:[16,17,18,19],prefix:["6304","6706","6771","6709"]},MAESTRO:{length:[12,13,14,15,16,17,18,19],prefix:["5018","5020","5038","6304","6759","6761","6762","6763","6764","6765","6766"]},MASTERCARD:{length:[16],prefix:["51","52","53","54","55"]},SOLO:{length:[16,18,19],prefix:["6334","6767"]},UNIONPAY:{length:[16,17,18,19],prefix:["622126","622127","622128","622129","62213","62214","62215","62216","62217","62218","62219","6222","6223","6224","6225","6226","6227","6228","62290","62291","622920","622921","622922","622923","622924","622925"]},VISA:{length:[16],prefix:["4"]}},j=null;for(g in i)for(h in i[g].prefix)if(f.substr(0,i[g].prefix[h].length)===i[g].prefix[h]&&-1!==a.inArray(f.length,i[g].length)){j=g;break}return null===j?!1:"AMERICAN_EXPRESS"===j?4===e.length:3===e.length}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.date=a.extend(a.fn.bootstrapValidator.i18n.date||{},{"default":"Please enter a valid date",min:"Please enter a date after %s",max:"Please enter a date before %s",range:"Please enter a date in the range %s - %s"}),a.fn.bootstrapValidator.validators.date={html5Attributes:{message:"message",format:"format",min:"min",max:"max",separator:"separator"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;d.format=d.format||"MM/DD/YYYY","date"===c.attr("type")&&(d.format="YYYY-MM-DD");var f=d.format.split(" "),g=f[0],h=f.length>1?f[1]:null,i=f.length>2?f[2]:null,j=e.split(" "),k=j[0],l=j.length>1?j[1]:null;if(f.length!==j.length)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};var m=d.separator;if(m||(m=-1!==k.indexOf("/")?"/":-1!==k.indexOf("-")?"-":null),null===m||-1===k.indexOf(m))return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};if(k=k.split(m),g=g.split(m),k.length!==g.length)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};var n=k[a.inArray("YYYY",g)],o=k[a.inArray("MM",g)],p=k[a.inArray("DD",g)];if(!n||!o||!p||4!==n.length)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};var q=null,r=null,s=null;if(h){if(h=h.split(":"),l=l.split(":"),h.length!==l.length)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};if(r=l.length>0?l[0]:null,q=l.length>1?l[1]:null,s=l.length>2?l[2]:null){if(isNaN(s)||s.length>2)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};if(s=parseInt(s,10),0>s||s>60)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]}}if(r){if(isNaN(r)||r.length>2)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};if(r=parseInt(r,10),0>r||r>=24||i&&r>12)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]}}if(q){if(isNaN(q)||q.length>2)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]};if(q=parseInt(q,10),0>q||q>59)return{valid:!1,message:d.message||a.fn.bootstrapValidator.i18n.date["default"]}}}var t=a.fn.bootstrapValidator.helpers.date(n,o,p),u=d.message||a.fn.bootstrapValidator.i18n.date["default"],v=null,w=null,x=d.min,y=d.max;switch(x&&(isNaN(Date.parse(x))&&(x=b.getDynamicOption(c,x)),v=this._parseDate(x,g,m)),y&&(isNaN(Date.parse(y))&&(y=b.getDynamicOption(c,y)),w=this._parseDate(y,g,m)),k=new Date(n,o,p,r,q,s),!0){case x&&!y&&t:t=k.getTime()>=v.getTime(),u=d.message||a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.min,x);break;case y&&!x&&t:t=k.getTime()<=w.getTime(),u=d.message||a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.max,y);break;case y&&x&&t:t=k.getTime()<=w.getTime()&&k.getTime()>=v.getTime(),u=d.message||a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.date.range,[x,y])}return{valid:t,message:u}},_parseDate:function(b,c,d){var e=0,f=0,g=0,h=b.split(" "),i=h[0],j=h.length>1?h[1]:null;i=i.split(d);var k=i[a.inArray("YYYY",c)],l=i[a.inArray("MM",c)],m=i[a.inArray("DD",c)];return j&&(j=j.split(":"),f=j.length>0?j[0]:null,e=j.length>1?j[1]:null,g=j.length>2?j[2]:null),new Date(k,l,m,f,e,g)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.different=a.extend(a.fn.bootstrapValidator.i18n.different||{},{"default":"Please enter a different value"}),a.fn.bootstrapValidator.validators.different={html5Attributes:{message:"message",field:"field"},validate:function(a,b,c){var d=b.val();if(""===d)return!0;for(var e=c.field.split(","),f=!0,g=0;g<e.length;g++){var h=a.getFieldElements(e[g]);if(null!=h&&0!==h.length){var i=h.val();d===i?f=!1:""!==i&&a.updateStatus(h,a.STATUS_VALID,"different")}}return f}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.digits=a.extend(a.fn.bootstrapValidator.i18n.digits||{},{"default":"Please enter only digits"}),a.fn.bootstrapValidator.validators.digits={validate:function(a,b){var c=b.val();return""===c?!0:/^\d+$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.ean=a.extend(a.fn.bootstrapValidator.i18n.ean||{},{"default":"Please enter a valid EAN number"}),a.fn.bootstrapValidator.validators.ean={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^(\d{8}|\d{12}|\d{13})$/.test(c))return!1;for(var d=c.length,e=0,f=8===d?[3,1]:[1,3],g=0;d-1>g;g++)e+=parseInt(c.charAt(g),10)*f[g%2];return e=(10-e%10)%10,e+""===c.charAt(d-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.emailAddress=a.extend(a.fn.bootstrapValidator.i18n.emailAddress||{},{"default":"Please enter a valid email address"}),a.fn.bootstrapValidator.validators.emailAddress={html5Attributes:{message:"message",multiple:"multiple",separator:"separator"},enableByHtml5:function(a){return"email"===a.attr("type")},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,f=c.multiple===!0||"true"===c.multiple;if(f){for(var g=c.separator||/[,;]/,h=this._splitEmailAddresses(d,g),i=0;i<h.length;i++)if(!e.test(h[i]))return!1;return!0}return e.test(d)},_splitEmailAddresses:function(a,b){for(var c=a.split(/"/),d=c.length,e=[],f="",g=0;d>g;g++)if(g%2===0){var h=c[g].split(b),i=h.length;if(1===i)f+=h[0];else{e.push(f+h[0]);for(var j=1;i-1>j;j++)e.push(h[j]);f=h[i-1]}}else f+='"'+c[g],d-1>g&&(f+='"');return e.push(f),e}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.file=a.extend(a.fn.bootstrapValidator.i18n.file||{},{"default":"Please choose a valid file"}),a.fn.bootstrapValidator.validators.file={html5Attributes:{extension:"extension",maxfiles:"maxFiles",minfiles:"minFiles",maxsize:"maxSize",minsize:"minSize",maxtotalsize:"maxTotalSize",mintotalsize:"minTotalSize",message:"message",type:"type"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f,g=d.extension?d.extension.toLowerCase().split(","):null,h=d.type?d.type.toLowerCase().split(","):null,i=window.File&&window.FileList&&window.FileReader;if(i){var j=c.get(0).files,k=j.length,l=0;if(d.maxFiles&&k>parseInt(d.maxFiles,10)||d.minFiles&&k<parseInt(d.minFiles,10))return!1;for(var m=0;k>m;m++)if(l+=j[m].size,f=j[m].name.substr(j[m].name.lastIndexOf(".")+1),d.minSize&&j[m].size<parseInt(d.minSize,10)||d.maxSize&&j[m].size>parseInt(d.maxSize,10)||g&&-1===a.inArray(f.toLowerCase(),g)||j[m].type&&h&&-1===a.inArray(j[m].type.toLowerCase(),h))return!1;if(d.maxTotalSize&&l>parseInt(d.maxTotalSize,10)||d.minTotalSize&&l<parseInt(d.minTotalSize,10))return!1}else if(f=e.substr(e.lastIndexOf(".")+1),g&&-1===a.inArray(f.toLowerCase(),g))return!1;return!0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.greaterThan=a.extend(a.fn.bootstrapValidator.i18n.greaterThan||{},{"default":"Please enter a value greater than or equal to %s",notInclusive:"Please enter a value greater than %s"}),a.fn.bootstrapValidator.validators.greaterThan={html5Attributes:{message:"message",value:"value",inclusive:"inclusive"},enableByHtml5:function(a){var b=a.attr("type"),c=a.attr("min");return c&&"date"!==b?{value:c}:!1},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(e=this._format(e),!a.isNumeric(e))return!1;var f=a.isNumeric(d.value)?d.value:b.getDynamicOption(c,d.value),g=this._format(f);return e=parseFloat(e),d.inclusive===!0||void 0===d.inclusive?{valid:e>=g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.greaterThan["default"],f)}:{valid:e>g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.greaterThan.notInclusive,f)}},_format:function(a){return(a+"").replace(",",".")}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.grid=a.extend(a.fn.bootstrapValidator.i18n.grid||{},{"default":"Please enter a valid GRId number"}),a.fn.bootstrapValidator.validators.grid={validate:function(b,c){var d=c.val();return""===d?!0:(d=d.toUpperCase(),/^[GRID:]*([0-9A-Z]{2})[-\s]*([0-9A-Z]{5})[-\s]*([0-9A-Z]{10})[-\s]*([0-9A-Z]{1})$/g.test(d)?(d=d.replace(/\s/g,"").replace(/-/g,""),"GRID:"===d.substr(0,5)&&(d=d.substr(5)),a.fn.bootstrapValidator.helpers.mod37And36(d)):!1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.hex=a.extend(a.fn.bootstrapValidator.i18n.hex||{},{"default":"Please enter a valid hexadecimal number"}),a.fn.bootstrapValidator.validators.hex={validate:function(a,b){var c=b.val();return""===c?!0:/^[0-9a-fA-F]+$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.hexColor=a.extend(a.fn.bootstrapValidator.i18n.hexColor||{},{"default":"Please enter a valid hex color"}),a.fn.bootstrapValidator.validators.hexColor={enableByHtml5:function(a){return"color"===a.attr("type")},validate:function(a,b){var c=b.val();return""===c?!0:"color"===b.attr("type")?/^#[0-9A-F]{6}$/i.test(c):/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.iban=a.extend(a.fn.bootstrapValidator.i18n.iban||{},{"default":"Please enter a valid IBAN number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid IBAN number in %s",countries:{AD:"Andorra",AE:"United Arab Emirates",AL:"Albania",AO:"Angola",AT:"Austria",AZ:"Azerbaijan",BA:"Bosnia and Herzegovina",BE:"Belgium",BF:"Burkina Faso",BG:"Bulgaria",BH:"Bahrain",BI:"Burundi",BJ:"Benin",BR:"Brazil",CH:"Switzerland",CI:"Ivory Coast",CM:"Cameroon",CR:"Costa Rica",CV:"Cape Verde",CY:"Cyprus",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",DO:"Dominican Republic",DZ:"Algeria",EE:"Estonia",ES:"Spain",FI:"Finland",FO:"Faroe Islands",FR:"France",GB:"United Kingdom",GE:"Georgia",GI:"Gibraltar",GL:"Greenland",GR:"Greece",GT:"Guatemala",HR:"Croatia",HU:"Hungary",IE:"Ireland",IL:"Israel",IR:"Iran",IS:"Iceland",IT:"Italy",JO:"Jordan",KW:"Kuwait",KZ:"Kazakhstan",LB:"Lebanon",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",MC:"Monaco",MD:"Moldova",ME:"Montenegro",MG:"Madagascar",MK:"Macedonia",ML:"Mali",MR:"Mauritania",MT:"Malta",MU:"Mauritius",MZ:"Mozambique",NL:"Netherlands",NO:"Norway",PK:"Pakistan",PL:"Poland",PS:"Palestine",PT:"Portugal",QA:"Qatar",RO:"Romania",RS:"Serbia",SA:"Saudi Arabia",SE:"Sweden",SI:"Slovenia",SK:"Slovakia",SM:"San Marino",SN:"Senegal",TN:"Tunisia",TR:"Turkey",VG:"Virgin Islands, British"}}),a.fn.bootstrapValidator.validators.iban={html5Attributes:{message:"message",country:"country"},REGEX:{AD:"AD[0-9]{2}[0-9]{4}[0-9]{4}[A-Z0-9]{12}",AE:"AE[0-9]{2}[0-9]{3}[0-9]{16}",AL:"AL[0-9]{2}[0-9]{8}[A-Z0-9]{16}",AO:"AO[0-9]{2}[0-9]{21}",AT:"AT[0-9]{2}[0-9]{5}[0-9]{11}",AZ:"AZ[0-9]{2}[A-Z]{4}[A-Z0-9]{20}",BA:"BA[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{8}[0-9]{2}",BE:"BE[0-9]{2}[0-9]{3}[0-9]{7}[0-9]{2}",BF:"BF[0-9]{2}[0-9]{23}",BG:"BG[0-9]{2}[A-Z]{4}[0-9]{4}[0-9]{2}[A-Z0-9]{8}",BH:"BH[0-9]{2}[A-Z]{4}[A-Z0-9]{14}",BI:"BI[0-9]{2}[0-9]{12}",BJ:"BJ[0-9]{2}[A-Z]{1}[0-9]{23}",BR:"BR[0-9]{2}[0-9]{8}[0-9]{5}[0-9]{10}[A-Z][A-Z0-9]",CH:"CH[0-9]{2}[0-9]{5}[A-Z0-9]{12}",CI:"CI[0-9]{2}[A-Z]{1}[0-9]{23}",CM:"CM[0-9]{2}[0-9]{23}",CR:"CR[0-9]{2}[0-9]{3}[0-9]{14}",CV:"CV[0-9]{2}[0-9]{21}",CY:"CY[0-9]{2}[0-9]{3}[0-9]{5}[A-Z0-9]{16}",CZ:"CZ[0-9]{2}[0-9]{20}",DE:"DE[0-9]{2}[0-9]{8}[0-9]{10}",DK:"DK[0-9]{2}[0-9]{14}",DO:"DO[0-9]{2}[A-Z0-9]{4}[0-9]{20}",DZ:"DZ[0-9]{2}[0-9]{20}",EE:"EE[0-9]{2}[0-9]{2}[0-9]{2}[0-9]{11}[0-9]{1}",ES:"ES[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{1}[0-9]{1}[0-9]{10}",FI:"FI[0-9]{2}[0-9]{6}[0-9]{7}[0-9]{1}",FO:"FO[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}",FR:"FR[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}",GB:"GB[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}",GE:"GE[0-9]{2}[A-Z]{2}[0-9]{16}",GI:"GI[0-9]{2}[A-Z]{4}[A-Z0-9]{15}",GL:"GL[0-9]{2}[0-9]{4}[0-9]{9}[0-9]{1}",GR:"GR[0-9]{2}[0-9]{3}[0-9]{4}[A-Z0-9]{16}",GT:"GT[0-9]{2}[A-Z0-9]{4}[A-Z0-9]{20}",HR:"HR[0-9]{2}[0-9]{7}[0-9]{10}",HU:"HU[0-9]{2}[0-9]{3}[0-9]{4}[0-9]{1}[0-9]{15}[0-9]{1}",IE:"IE[0-9]{2}[A-Z]{4}[0-9]{6}[0-9]{8}",IL:"IL[0-9]{2}[0-9]{3}[0-9]{3}[0-9]{13}",IR:"IR[0-9]{2}[0-9]{22}",IS:"IS[0-9]{2}[0-9]{4}[0-9]{2}[0-9]{6}[0-9]{10}",IT:"IT[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}",JO:"JO[0-9]{2}[A-Z]{4}[0-9]{4}[0]{8}[A-Z0-9]{10}",KW:"KW[0-9]{2}[A-Z]{4}[0-9]{22}",KZ:"KZ[0-9]{2}[0-9]{3}[A-Z0-9]{13}",LB:"LB[0-9]{2}[0-9]{4}[A-Z0-9]{20}",LI:"LI[0-9]{2}[0-9]{5}[A-Z0-9]{12}",LT:"LT[0-9]{2}[0-9]{5}[0-9]{11}",LU:"LU[0-9]{2}[0-9]{3}[A-Z0-9]{13}",LV:"LV[0-9]{2}[A-Z]{4}[A-Z0-9]{13}",MC:"MC[0-9]{2}[0-9]{5}[0-9]{5}[A-Z0-9]{11}[0-9]{2}",MD:"MD[0-9]{2}[A-Z0-9]{20}",ME:"ME[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",MG:"MG[0-9]{2}[0-9]{23}",MK:"MK[0-9]{2}[0-9]{3}[A-Z0-9]{10}[0-9]{2}",ML:"ML[0-9]{2}[A-Z]{1}[0-9]{23}",MR:"MR13[0-9]{5}[0-9]{5}[0-9]{11}[0-9]{2}",MT:"MT[0-9]{2}[A-Z]{4}[0-9]{5}[A-Z0-9]{18}",MU:"MU[0-9]{2}[A-Z]{4}[0-9]{2}[0-9]{2}[0-9]{12}[0-9]{3}[A-Z]{3}",MZ:"MZ[0-9]{2}[0-9]{21}",NL:"NL[0-9]{2}[A-Z]{4}[0-9]{10}",NO:"NO[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{1}",PK:"PK[0-9]{2}[A-Z]{4}[A-Z0-9]{16}",PL:"PL[0-9]{2}[0-9]{8}[0-9]{16}",PS:"PS[0-9]{2}[A-Z]{4}[A-Z0-9]{21}",PT:"PT[0-9]{2}[0-9]{4}[0-9]{4}[0-9]{11}[0-9]{2}",QA:"QA[0-9]{2}[A-Z]{4}[A-Z0-9]{21}",RO:"RO[0-9]{2}[A-Z]{4}[A-Z0-9]{16}",RS:"RS[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",SA:"SA[0-9]{2}[0-9]{2}[A-Z0-9]{18}",SE:"SE[0-9]{2}[0-9]{3}[0-9]{16}[0-9]{1}",SI:"SI[0-9]{2}[0-9]{5}[0-9]{8}[0-9]{2}",SK:"SK[0-9]{2}[0-9]{4}[0-9]{6}[0-9]{10}",SM:"SM[0-9]{2}[A-Z]{1}[0-9]{5}[0-9]{5}[A-Z0-9]{12}",SN:"SN[0-9]{2}[A-Z]{1}[0-9]{23}",TN:"TN59[0-9]{2}[0-9]{3}[0-9]{13}[0-9]{2}",TR:"TR[0-9]{2}[0-9]{5}[A-Z0-9]{1}[A-Z0-9]{16}",VG:"VG[0-9]{2}[A-Z]{4}[0-9]{16}"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;e=e.replace(/[^a-zA-Z0-9]/g,"").toUpperCase();var f=d.country;if(f?"string"==typeof f&&this.REGEX[f]||(f=b.getDynamicOption(c,f)):f=e.substr(0,2),!this.REGEX[f])return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.iban.countryNotSupported,f)};if(!new RegExp("^"+this.REGEX[f]+"$").test(e))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.iban.country,a.fn.bootstrapValidator.i18n.iban.countries[f])};e=e.substr(4)+e.substr(0,4),e=a.map(e.split(""),function(a){var b=a.charCodeAt(0);return b>="A".charCodeAt(0)&&b<="Z".charCodeAt(0)?b-"A".charCodeAt(0)+10:a}),e=e.join("");for(var g=parseInt(e.substr(0,1),10),h=e.length,i=1;h>i;++i)g=(10*g+parseInt(e.substr(i,1),10))%97;return{valid:1===g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.iban.country,a.fn.bootstrapValidator.i18n.iban.countries[f])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.id=a.extend(a.fn.bootstrapValidator.i18n.id||{},{"default":"Please enter a valid identification number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid identification number in %s",countries:{BA:"Bosnia and Herzegovina",BG:"Bulgaria",BR:"Brazil",CH:"Switzerland",CL:"Chile",CN:"China",CZ:"Czech Republic",DK:"Denmark",EE:"Estonia",ES:"Spain",FI:"Finland",HR:"Croatia",IE:"Ireland",IS:"Iceland",LT:"Lithuania",LV:"Latvia",ME:"Montenegro",MK:"Macedonia",NL:"Netherlands",RO:"Romania",RS:"Serbia",SE:"Sweden",SI:"Slovenia",SK:"Slovakia",SM:"San Marino",TH:"Thailand",ZA:"South Africa"}}),a.fn.bootstrapValidator.validators.id={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["BA","BG","BR","CH","CL","CN","CZ","DK","EE","ES","FI","HR","IE","IS","LT","LV","ME","MK","NL","RO","RS","SE","SI","SK","SM","TH","ZA"],validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=d.country;if(f?("string"!=typeof f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)):f=e.substr(0,2),-1===a.inArray(f,this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.id.countryNotSupported,f)};var g=["_",f.toLowerCase()].join("");return this[g](e)?!0:{valid:!1,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.id.country,a.fn.bootstrapValidator.i18n.id.countries[f.toUpperCase()])}},_validateJMBG:function(a,b){if(!/^\d{13}$/.test(a))return!1;var c=parseInt(a.substr(0,2),10),d=parseInt(a.substr(2,2),10),e=(parseInt(a.substr(4,3),10),parseInt(a.substr(7,2),10)),f=parseInt(a.substr(12,1),10);if(c>31||d>12)return!1;for(var g=0,h=0;6>h;h++)g+=(7-h)*(parseInt(a.charAt(h),10)+parseInt(a.charAt(h+6),10));if(g=11-g%11,(10===g||11===g)&&(g=0),g!==f)return!1;switch(b.toUpperCase()){case"BA":return e>=10&&19>=e;case"MK":return e>=41&&49>=e;case"ME":return e>=20&&29>=e;case"RS":return e>=70&&99>=e;case"SI":return e>=50&&59>=e;default:return!0}},_ba:function(a){return this._validateJMBG(a,"BA")},_mk:function(a){return this._validateJMBG(a,"MK")},_me:function(a){return this._validateJMBG(a,"ME")},_rs:function(a){return this._validateJMBG(a,"RS")},_si:function(a){return this._validateJMBG(a,"SI")},_bg:function(b){if(!/^\d{10}$/.test(b)&&!/^\d{6}\s\d{3}\s\d{1}$/.test(b))return!1;b=b.replace(/\s/g,"");var c=parseInt(b.substr(0,2),10)+1900,d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);if(d>40?(c+=100,d-=40):d>20&&(c-=100,d-=20),!a.fn.bootstrapValidator.helpers.date(c,d,e))return!1;for(var f=0,g=[2,4,8,5,10,9,7,3,6],h=0;9>h;h++)f+=parseInt(b.charAt(h),10)*g[h];return f=f%11%10,f+""===b.substr(9,1)},_br:function(a){if(/^1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}|0{11}$/.test(a))return!1;if(!/^\d{11}$/.test(a)&&!/^\d{3}\.\d{3}\.\d{3}-\d{2}$/.test(a))return!1;a=a.replace(/\./g,"").replace(/-/g,"");for(var b=0,c=0;9>c;c++)b+=(10-c)*parseInt(a.charAt(c),10);if(b=11-b%11,(10===b||11===b)&&(b=0),b+""!==a.charAt(9))return!1;var d=0;for(c=0;10>c;c++)d+=(11-c)*parseInt(a.charAt(c),10);return d=11-d%11,(10===d||11===d)&&(d=0),d+""===a.charAt(10)},_ch:function(a){if(!/^756[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{4}[\.]{0,1}[0-9]{2}$/.test(a))return!1;a=a.replace(/\D/g,"").substr(3);for(var b=a.length,c=0,d=8===b?[3,1]:[1,3],e=0;b-1>e;e++)c+=parseInt(a.charAt(e),10)*d[e%2];return c=10-c%10,c+""===a.charAt(b-1)},_cl:function(a){if(!/^\d{7,8}[-]{0,1}[0-9K]$/i.test(a))return!1;for(a=a.replace(/\-/g,"");a.length<9;)a="0"+a;for(var b=0,c=[3,2,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,11===b?b=0:10===b&&(b="K"),b+""===a.charAt(8).toUpperCase()},_cn:function(b){if(b=b.trim(),!/^\d{15}$/.test(b)&&!/^\d{17}[\dXx]{1}$/.test(b))return!1;var c={11:{0:[0],1:[[0,9],[11,17]],2:[0,28,29]},12:{0:[0],1:[[0,16]],2:[0,21,23,25]},13:{0:[0],1:[[0,5],7,8,21,[23,33],[81,85]],2:[[0,5],[7,9],[23,25],27,29,30,81,83],3:[[0,4],[21,24]],4:[[0,4],6,21,[23,35],81],5:[[0,3],[21,35],81,82],6:[[0,4],[21,38],[81,84]],7:[[0,3],5,6,[21,33]],8:[[0,4],[21,28]],9:[[0,3],[21,30],[81,84]],10:[[0,3],[22,26],28,81,82],11:[[0,2],[21,28],81,82]},14:{0:[0],1:[0,1,[5,10],[21,23],81],2:[[0,3],11,12,[21,27]],3:[[0,3],11,21,22],4:[[0,2],11,21,[23,31],81],5:[[0,2],21,22,24,25,81],6:[[0,3],[21,24]],7:[[0,2],[21,29],81],8:[[0,2],[21,30],81,82],9:[[0,2],[21,32],81],10:[[0,2],[21,34],81,82],11:[[0,2],[21,30],81,82],23:[[0,3],22,23,[25,30],32,33]},15:{0:[0],1:[[0,5],[21,25]],2:[[0,7],[21,23]],3:[[0,4]],4:[[0,4],[21,26],[28,30]],5:[[0,2],[21,26],81],6:[[0,2],[21,27]],7:[[0,3],[21,27],[81,85]],8:[[0,2],[21,26]],9:[[0,2],[21,29],81],22:[[0,2],[21,24]],25:[[0,2],[22,31]],26:[[0,2],[24,27],[29,32],34],28:[0,1,[22,27]],29:[0,[21,23]]},21:{0:[0],1:[[0,6],[11,14],[22,24],81],2:[[0,4],[11,13],24,[81,83]],3:[[0,4],11,21,23,81],4:[[0,4],11,[21,23]],5:[[0,5],21,22],6:[[0,4],24,81,82],7:[[0,3],11,26,27,81,82],8:[[0,4],11,81,82],9:[[0,5],11,21,22],10:[[0,5],11,21,81],11:[[0,3],21,22],12:[[0,2],4,21,23,24,81,82],13:[[0,3],21,22,24,81,82],14:[[0,4],21,22,81]},22:{0:[0],1:[[0,6],12,22,[81,83]],2:[[0,4],11,21,[81,84]],3:[[0,3],22,23,81,82],4:[[0,3],21,22],5:[[0,3],21,23,24,81,82],6:[[0,2],4,5,[21,23],25,81],7:[[0,2],[21,24],81],8:[[0,2],21,22,81,82],24:[[0,6],24,26]},23:{0:[0],1:[[0,12],21,[23,29],[81,84]],2:[[0,8],21,[23,25],27,[29,31],81],3:[[0,7],21,81,82],4:[[0,7],21,22],5:[[0,3],5,6,[21,24]],6:[[0,6],[21,24]],7:[[0,16],22,81],8:[[0,5],11,22,26,28,33,81,82],9:[[0,4],21],10:[[0,5],24,25,81,[83,85]],11:[[0,2],21,23,24,81,82],12:[[0,2],[21,26],[81,83]],27:[[0,4],[21,23]]},31:{0:[0],1:[0,1,[3,10],[12,20]],2:[0,30]},32:{0:[0],1:[[0,7],11,[13,18],24,25],2:[[0,6],11,81,82],3:[[0,5],11,12,[21,24],81,82],4:[[0,2],4,5,11,12,81,82],5:[[0,9],[81,85]],6:[[0,2],11,12,21,23,[81,84]],7:[0,1,3,5,6,[21,24]],8:[[0,4],11,26,[29,31]],9:[[0,3],[21,25],28,81,82],10:[[0,3],11,12,23,81,84,88],11:[[0,2],11,12,[81,83]],12:[[0,4],[81,84]],13:[[0,2],11,[21,24]]},33:{0:[0],1:[[0,6],[8,10],22,27,82,83,85],2:[0,1,[3,6],11,12,25,26,[81,83]],3:[[0,4],22,24,[26,29],81,82],4:[[0,2],11,21,24,[81,83]],5:[[0,3],[21,23]],6:[[0,2],21,24,[81,83]],7:[[0,3],23,26,27,[81,84]],8:[[0,3],22,24,25,81],9:[[0,3],21,22],10:[[0,4],[21,24],81,82],11:[[0,2],[21,27],81]},34:{0:[0],1:[[0,4],11,[21,24],81],2:[[0,4],7,8,[21,23],25],3:[[0,4],11,[21,23]],4:[[0,6],21],5:[[0,4],6,[21,23]],6:[[0,4],21],7:[[0,3],11,21],8:[[0,3],11,[22,28],81],10:[[0,4],[21,24]],11:[[0,3],22,[24,26],81,82],12:[[0,4],21,22,25,26,82],13:[[0,2],[21,24]],14:[[0,2],[21,24]],15:[[0,3],[21,25]],16:[[0,2],[21,23]],17:[[0,2],[21,23]],18:[[0,2],[21,25],81]},35:{0:[0],1:[[0,5],11,[21,25],28,81,82],2:[[0,6],[11,13]],3:[[0,5],22],4:[[0,3],21,[23,30],81],5:[[0,5],21,[24,27],[81,83]],6:[[0,3],[22,29],81],7:[[0,2],[21,25],[81,84]],8:[[0,2],[21,25],81],9:[[0,2],[21,26],81,82]},36:{0:[0],1:[[0,5],11,[21,24]],2:[[0,3],22,81],3:[[0,2],13,[21,23]],4:[[0,3],21,[23,30],81,82],5:[[0,2],21],6:[[0,2],22,81],7:[[0,2],[21,35],81,82],8:[[0,3],[21,30],81],9:[[0,2],[21,26],[81,83]],10:[[0,2],[21,30]],11:[[0,2],[21,30],81]},37:{0:[0],1:[[0,5],12,13,[24,26],81],2:[[0,3],5,[11,14],[81,85]],3:[[0,6],[21,23]],4:[[0,6],81],5:[[0,3],[21,23]],6:[[0,2],[11,13],34,[81,87]],7:[[0,5],24,25,[81,86]],8:[[0,2],11,[26,32],[81,83]],9:[[0,3],11,21,23,82,83],10:[[0,2],[81,83]],11:[[0,3],21,22],12:[[0,3]],13:[[0,2],11,12,[21,29]],14:[[0,2],[21,28],81,82],15:[[0,2],[21,26],81],16:[[0,2],[21,26]],17:[[0,2],[21,28]]},41:{0:[0],1:[[0,6],8,22,[81,85]],2:[[0,5],11,[21,25]],3:[[0,7],11,[22,29],81],4:[[0,4],11,[21,23],25,81,82],5:[[0,3],5,6,22,23,26,27,81],6:[[0,3],11,21,22],7:[[0,4],11,21,[24,28],81,82],8:[[0,4],11,[21,23],25,[81,83]],9:[[0,2],22,23,[26,28]],10:[[0,2],[23,25],81,82],11:[[0,4],[21,23]],12:[[0,2],21,22,24,81,82],13:[[0,3],[21,30],81],14:[[0,3],[21,26],81],15:[[0,3],[21,28]],16:[[0,2],[21,28],81],17:[[0,2],[21,29]],90:[0,1]},42:{0:[0],1:[[0,7],[11,17]],2:[[0,5],22,81],3:[[0,3],[21,25],81],5:[[0,6],[25,29],[81,83]],6:[[0,2],6,7,[24,26],[82,84]],7:[[0,4]],8:[[0,2],4,21,22,81],9:[[0,2],[21,23],81,82,84],10:[[0,3],[22,24],81,83,87],11:[[0,2],[21,27],81,82],12:[[0,2],[21,24],81],13:[[0,3],21,81],28:[[0,2],22,23,[25,28]],90:[0,[4,6],21]},43:{0:[0],1:[[0,5],11,12,21,22,24,81],2:[[0,4],11,21,[23,25],81],3:[[0,2],4,21,81,82],4:[0,1,[5,8],12,[21,24],26,81,82],5:[[0,3],11,[21,25],[27,29],81],6:[[0,3],11,21,23,24,26,81,82],7:[[0,3],[21,26],81],8:[[0,2],11,21,22],9:[[0,3],[21,23],81],10:[[0,3],[21,28],81],11:[[0,3],[21,29]],12:[[0,2],[21,30],81],13:[[0,2],21,22,81,82],31:[0,1,[22,27],30]},44:{0:[0],1:[[0,7],[11,16],83,84],2:[[0,5],21,22,24,29,32,33,81,82],3:[0,1,[3,8]],4:[[0,4]],5:[0,1,[6,15],23,82,83],6:[0,1,[4,8]],7:[0,1,[3,5],81,[83,85]],8:[[0,4],11,23,25,[81,83]],9:[[0,3],23,[81,83]],12:[[0,3],[23,26],83,84],13:[[0,3],[22,24],81],14:[[0,2],[21,24],26,27,81],15:[[0,2],21,23,81],16:[[0,2],[21,25]],17:[[0,2],21,23,81],18:[[0,3],21,23,[25,27],81,82],19:[0],20:[0],51:[[0,3],21,22],52:[[0,3],21,22,24,81],53:[[0,2],[21,23],81]},45:{0:[0],1:[[0,9],[21,27]],2:[[0,5],[21,26]],3:[[0,5],11,12,[21,32]],4:[0,1,[3,6],11,[21,23],81],5:[[0,3],12,21],6:[[0,3],21,81],7:[[0,3],21,22],8:[[0,4],21,81],9:[[0,3],[21,24],81],10:[[0,2],[21,31]],11:[[0,2],[21,23]],12:[[0,2],[21,29],81],13:[[0,2],[21,24],81],14:[[0,2],[21,25],81]},46:{0:[0],1:[0,1,[5,8]],2:[0,1],3:[0,[21,23]],90:[[0,3],[5,7],[21,39]]},50:{0:[0],1:[[0,19]],2:[0,[22,38],[40,43]],3:[0,[81,84]]},51:{0:[0],1:[0,1,[4,8],[12,15],[21,24],29,31,32,[81,84]],3:[[0,4],11,21,22],4:[[0,3],11,21,22],5:[[0,4],21,22,24,25],6:[0,1,3,23,26,[81,83]],7:[0,1,3,4,[22,27],81],8:[[0,2],11,12,[21,24]],9:[[0,4],[21,23]],10:[[0,2],11,24,25,28],11:[[0,2],[11,13],23,24,26,29,32,33,81],13:[[0,4],[21,25],81],14:[[0,2],[21,25]],15:[[0,3],[21,29]],16:[[0,3],[21,23],81],17:[[0,3],[21,25],81],18:[[0,3],[21,27]],19:[[0,3],[21,23]],20:[[0,2],21,22,81],32:[0,[21,33]],33:[0,[21,38]],34:[0,1,[22,37]]},52:{0:[0],1:[[0,3],[11,15],[21,23],81],2:[0,1,3,21,22],3:[[0,3],[21,30],81,82],4:[[0,2],[21,25]],5:[[0,2],[21,27]],6:[[0,3],[21,28]],22:[0,1,[22,30]],23:[0,1,[22,28]],24:[0,1,[22,28]],26:[0,1,[22,36]],27:[[0,2],22,23,[25,32]]},53:{0:[0],1:[[0,3],[11,14],21,22,[24,29],81],3:[[0,2],[21,26],28,81],4:[[0,2],[21,28]],5:[[0,2],[21,24]],6:[[0,2],[21,30]],7:[[0,2],[21,24]],8:[[0,2],[21,29]],9:[[0,2],[21,27]],23:[0,1,[22,29],31],25:[[0,4],[22,32]],26:[0,1,[21,28]],27:[0,1,[22,30]],28:[0,1,22,23],29:[0,1,[22,32]],31:[0,2,3,[22,24]],34:[0,[21,23]],33:[0,21,[23,25]],35:[0,[21,28]]},54:{0:[0],1:[[0,2],[21,27]],21:[0,[21,29],32,33],22:[0,[21,29],[31,33]],23:[0,1,[22,38]],24:[0,[21,31]],25:[0,[21,27]],26:[0,[21,27]]},61:{0:[0],1:[[0,4],[11,16],22,[24,26]],2:[[0,4],22],3:[[0,4],[21,24],[26,31]],4:[[0,4],[22,31],81],5:[[0,2],[21,28],81,82],6:[[0,2],[21,32]],7:[[0,2],[21,30]],8:[[0,2],[21,31]],9:[[0,2],[21,29]],10:[[0,2],[21,26]]},62:{0:[0],1:[[0,5],11,[21,23]],2:[0,1],3:[[0,2],21],4:[[0,3],[21,23]],5:[[0,3],[21,25]],6:[[0,2],[21,23]],7:[[0,2],[21,25]],8:[[0,2],[21,26]],9:[[0,2],[21,24],81,82],10:[[0,2],[21,27]],11:[[0,2],[21,26]],12:[[0,2],[21,28]],24:[0,21,[24,29]],26:[0,21,[23,30]],29:[0,1,[21,27]],30:[0,1,[21,27]]},63:{0:[0],1:[[0,5],[21,23]],2:[0,2,[21,25]],21:[0,[21,23],[26,28]],22:[0,[21,24]],23:[0,[21,24]],25:[0,[21,25]],26:[0,[21,26]],27:[0,1,[21,26]],28:[[0,2],[21,23]]},64:{0:[0],1:[0,1,[4,6],21,22,81],2:[[0,3],5,[21,23]],3:[[0,3],[21,24],81],4:[[0,2],[21,25]],5:[[0,2],21,22]},65:{0:[0],1:[[0,9],21],2:[[0,5]],21:[0,1,22,23],22:[0,1,22,23],23:[[0,3],[23,25],27,28],28:[0,1,[22,29]],29:[0,1,[22,29]],30:[0,1,[22,24]],31:[0,1,[21,31]],32:[0,1,[21,27]],40:[0,2,3,[21,28]],42:[[0,2],21,[23,26]],43:[0,1,[21,26]],90:[[0,4]],27:[[0,2],22,23]},71:{0:[0]},81:{0:[0]},82:{0:[0]}},d=parseInt(b.substr(0,2),10),e=parseInt(b.substr(2,2),10),f=parseInt(b.substr(4,2),10);if(!c[d]||!c[d][e])return!1;for(var g=!1,h=c[d][e],i=0;i<h.length;i++)if(a.isArray(h[i])&&h[i][0]<=f&&f<=h[i][1]||!a.isArray(h[i])&&f===h[i]){g=!0;break}if(!g)return!1;var j;j=18===b.length?b.substr(6,8):"19"+b.substr(6,6);var k=parseInt(j.substr(0,4),10),l=parseInt(j.substr(4,2),10),m=parseInt(j.substr(6,2),10);if(!a.fn.bootstrapValidator.helpers.date(k,l,m))return!1;if(18===b.length){var n=0,o=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];for(i=0;17>i;i++)n+=parseInt(b.charAt(i),10)*o[i];n=(12-n%11)%11;var p="X"!==b.charAt(17).toUpperCase()?parseInt(b.charAt(17),10):10;return p===n}return!0
+},_cz:function(b){if(!/^\d{9,10}$/.test(b))return!1;var c=1900+parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10)%50%20,e=parseInt(b.substr(4,2),10);if(9===b.length){if(c>=1980&&(c-=100),c>1953)return!1}else 1954>c&&(c+=100);if(!a.fn.bootstrapValidator.helpers.date(c,d,e))return!1;if(10===b.length){var f=parseInt(b.substr(0,9),10)%11;return 1985>c&&(f%=10),f+""===b.substr(9,1)}return!0},_dk:function(b){if(!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b))return!1;b=b.replace(/-/g,"");var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);switch(!0){case-1!=="5678".indexOf(b.charAt(6))&&e>=58:e+=1800;break;case-1!=="0123".indexOf(b.charAt(6)):case-1!=="49".indexOf(b.charAt(6))&&e>=37:e+=1900;break;default:e+=2e3}return a.fn.bootstrapValidator.helpers.date(e,d,c)},_ee:function(a){return this._lt(a)},_es:function(a){if(!/^[0-9A-Z]{8}[-]{0,1}[0-9A-Z]$/.test(a)&&!/^[XYZ][-]{0,1}[0-9]{7}[-]{0,1}[0-9A-Z]$/.test(a))return!1;a=a.replace(/-/g,"");var b="XYZ".indexOf(a.charAt(0));-1!==b&&(a=b+a.substr(1)+"");var c=parseInt(a.substr(0,8),10);return c="TRWAGMYFPDXBNJZSQVHLCKE"[c%23],c===a.substr(8,1)},_fi:function(b){if(!/^[0-9]{6}[-+A][0-9]{3}[0-9ABCDEFHJKLMNPRSTUVWXY]$/.test(b))return!1;var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10),f={"+":1800,"-":1900,A:2e3};if(e=f[b.charAt(6)]+e,!a.fn.bootstrapValidator.helpers.date(e,d,c))return!1;var g=parseInt(b.substr(7,3),10);if(2>g)return!1;var h=b.substr(0,6)+b.substr(7,3)+"";return h=parseInt(h,10),"0123456789ABCDEFHJKLMNPRSTUVWXY".charAt(h%31)===b.charAt(10)},_hr:function(b){return/^[0-9]{11}$/.test(b)?a.fn.bootstrapValidator.helpers.mod11And10(b):!1},_ie:function(a){if(!/^\d{7}[A-W][AHWTX]?$/.test(a))return!1;var b=function(a){for(;a.length<7;)a="0"+a;for(var b="WABCDEFGHIJKLMNOPQRSTUV",c=0,d=0;7>d;d++)c+=parseInt(a.charAt(d),10)*(8-d);return c+=9*b.indexOf(a.substr(7)),b[c%23]};return 9!==a.length||"A"!==a.charAt(8)&&"H"!==a.charAt(8)?a.charAt(7)===b(a.substr(0,7)):a.charAt(7)===b(a.substr(0,7)+a.substr(8)+"")},_is:function(b){if(!/^[0-9]{6}[-]{0,1}[0-9]{4}$/.test(b))return!1;b=b.replace(/-/g,"");var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10),f=parseInt(b.charAt(9),10);if(e=9===f?1900+e:100*(20+f)+e,!a.fn.bootstrapValidator.helpers.date(e,d,c,!0))return!1;for(var g=0,h=[3,2,7,6,5,4,3,2],i=0;8>i;i++)g+=parseInt(b.charAt(i),10)*h[i];return g=11-g%11,g+""===b.charAt(8)},_lt:function(b){if(!/^[0-9]{11}$/.test(b))return!1;var c=parseInt(b.charAt(0),10),d=parseInt(b.substr(1,2),10),e=parseInt(b.substr(3,2),10),f=parseInt(b.substr(5,2),10),g=c%2===0?17+c/2:17+(c+1)/2;if(d=100*g+d,!a.fn.bootstrapValidator.helpers.date(d,e,f,!0))return!1;for(var h=0,i=[1,2,3,4,5,6,7,8,9,1],j=0;10>j;j++)h+=parseInt(b.charAt(j),10)*i[j];if(h%=11,10!==h)return h+""===b.charAt(10);for(h=0,i=[3,4,5,6,7,8,9,1,2,3],j=0;10>j;j++)h+=parseInt(b.charAt(j),10)*i[j];return h%=11,10===h&&(h=0),h+""===b.charAt(10)},_lv:function(b){if(!/^[0-9]{6}[-]{0,1}[0-9]{5}$/.test(b))return!1;b=b.replace(/\D/g,"");var c=parseInt(b.substr(0,2),10),d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);if(e=e+1800+100*parseInt(b.charAt(6),10),!a.fn.bootstrapValidator.helpers.date(e,d,c,!0))return!1;for(var f=0,g=[10,5,8,4,2,1,6,3,7,9],h=0;10>h;h++)f+=parseInt(b.charAt(h),10)*g[h];return f=(f+1)%11%10,f+""===b.charAt(10)},_nl:function(a){for(;a.length<9;)a="0"+a;if(!/^[0-9]{4}[.]{0,1}[0-9]{2}[.]{0,1}[0-9]{3}$/.test(a))return!1;if(a=a.replace(/\./g,""),0===parseInt(a,10))return!1;for(var b=0,c=a.length,d=0;c-1>d;d++)b+=(9-d)*parseInt(a.charAt(d),10);return b%=11,10===b&&(b=0),b+""===a.charAt(c-1)},_ro:function(b){if(!/^[0-9]{13}$/.test(b))return!1;var c=parseInt(b.charAt(0),10);if(0===c||7===c||8===c)return!1;var d=parseInt(b.substr(1,2),10),e=parseInt(b.substr(3,2),10),f=parseInt(b.substr(5,2),10),g={1:1900,2:1900,3:1800,4:1800,5:2e3,6:2e3};if(f>31&&e>12)return!1;if(9!==c&&(d=g[c+""]+d,!a.fn.bootstrapValidator.helpers.date(d,e,f)))return!1;for(var h=0,i=[2,7,9,1,4,6,3,5,8,2,7,9],j=b.length,k=0;j-1>k;k++)h+=parseInt(b.charAt(k),10)*i[k];return h%=11,10===h&&(h=1),h+""===b.charAt(j-1)},_se:function(b){if(!/^[0-9]{10}$/.test(b)&&!/^[0-9]{6}[-|+][0-9]{4}$/.test(b))return!1;b=b.replace(/[^0-9]/g,"");var c=parseInt(b.substr(0,2),10)+1900,d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);return a.fn.bootstrapValidator.helpers.date(c,d,e)?a.fn.bootstrapValidator.helpers.luhn(b):!1},_sk:function(a){return this._cz(a)},_sm:function(a){return/^\d{5}$/.test(a)},_th:function(a){if(13!==a.length)return!1;for(var b=0,c=0;12>c;c++)b+=parseInt(a.charAt(c),10)*(13-c);return(11-b%11)%10===parseInt(a.charAt(12),10)},_za:function(b){if(!/^[0-9]{10}[0|1][8|9][0-9]$/.test(b))return!1;var c=parseInt(b.substr(0,2),10),d=(new Date).getFullYear()%100,e=parseInt(b.substr(2,2),10),f=parseInt(b.substr(4,2),10);return c=c>=d?c+1900:c+2e3,a.fn.bootstrapValidator.helpers.date(c,e,f)?a.fn.bootstrapValidator.helpers.luhn(b):!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.identical=a.extend(a.fn.bootstrapValidator.i18n.identical||{},{"default":"Please enter the same value"}),a.fn.bootstrapValidator.validators.identical={html5Attributes:{message:"message",field:"field"},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e=a.getFieldElements(c.field);return null===e||0===e.length?!0:d===e.val()?(a.updateStatus(c.field,a.STATUS_VALID,"identical"),!0):!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.imei=a.extend(a.fn.bootstrapValidator.i18n.imei||{},{"default":"Please enter a valid IMEI number"}),a.fn.bootstrapValidator.validators.imei={validate:function(b,c){var d=c.val();if(""===d)return!0;switch(!0){case/^\d{15}$/.test(d):case/^\d{2}-\d{6}-\d{6}-\d{1}$/.test(d):case/^\d{2}\s\d{6}\s\d{6}\s\d{1}$/.test(d):return d=d.replace(/[^0-9]/g,""),a.fn.bootstrapValidator.helpers.luhn(d);case/^\d{14}$/.test(d):case/^\d{16}$/.test(d):case/^\d{2}-\d{6}-\d{6}(|-\d{2})$/.test(d):case/^\d{2}\s\d{6}\s\d{6}(|\s\d{2})$/.test(d):return!0;default:return!1}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.imo=a.extend(a.fn.bootstrapValidator.i18n.imo||{},{"default":"Please enter a valid IMO number"}),a.fn.bootstrapValidator.validators.imo={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^IMO \d{7}$/i.test(c))return!1;for(var d=0,e=c.replace(/^.*(\d{7})$/,"$1"),f=6;f>=1;f--)d+=e.slice(6-f,-f)*(f+1);return d%10===parseInt(e.charAt(6),10)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.integer=a.extend(a.fn.bootstrapValidator.i18n.integer||{},{"default":"Please enter a valid number"}),a.fn.bootstrapValidator.validators.integer={enableByHtml5:function(a){return"number"===a.attr("type")&&(void 0===a.attr("step")||a.attr("step")%1===0)},validate:function(a,b){if(this.enableByHtml5(b)&&b.get(0).validity&&b.get(0).validity.badInput===!0)return!1;var c=b.val();return""===c?!0:/^(?:-?(?:0|[1-9][0-9]*))$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.ip=a.extend(a.fn.bootstrapValidator.i18n.ip||{},{"default":"Please enter a valid IP address",ipv4:"Please enter a valid IPv4 address",ipv6:"Please enter a valid IPv6 address"}),a.fn.bootstrapValidator.validators.ip={html5Attributes:{message:"message",ipv4:"ipv4",ipv6:"ipv6"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;d=a.extend({},{ipv4:!0,ipv6:!0},d);var f,g=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,h=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,i=!1;switch(!0){case d.ipv4&&!d.ipv6:i=g.test(e),f=d.message||a.fn.bootstrapValidator.i18n.ip.ipv4;break;case!d.ipv4&&d.ipv6:i=h.test(e),f=d.message||a.fn.bootstrapValidator.i18n.ip.ipv6;break;case d.ipv4&&d.ipv6:default:i=g.test(e)||h.test(e),f=d.message||a.fn.bootstrapValidator.i18n.ip["default"]}return{valid:i,message:f}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.isbn=a.extend(a.fn.bootstrapValidator.i18n.isbn||{},{"default":"Please enter a valid ISBN number"}),a.fn.bootstrapValidator.validators.isbn={validate:function(a,b){var c=b.val();if(""===c)return!0;var d;switch(!0){case/^\d{9}[\dX]$/.test(c):case 13===c.length&&/^(\d+)-(\d+)-(\d+)-([\dX])$/.test(c):case 13===c.length&&/^(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c):d="ISBN10";break;case/^(978|979)\d{9}[\dX]$/.test(c):case 17===c.length&&/^(978|979)-(\d+)-(\d+)-(\d+)-([\dX])$/.test(c):case 17===c.length&&/^(978|979)\s(\d+)\s(\d+)\s(\d+)\s([\dX])$/.test(c):d="ISBN13";break;default:return!1}c=c.replace(/[^0-9X]/gi,"");var e,f,g=c.split(""),h=g.length,i=0;switch(d){case"ISBN10":for(i=0,e=0;h-1>e;e++)i+=parseInt(g[e],10)*(10-e);return f=11-i%11,11===f?f=0:10===f&&(f="X"),f+""===g[h-1];case"ISBN13":for(i=0,e=0;h-1>e;e++)i+=e%2===0?parseInt(g[e],10):3*parseInt(g[e],10);return f=10-i%10,10===f&&(f="0"),f+""===g[h-1];default:return!1}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.isin=a.extend(a.fn.bootstrapValidator.i18n.isin||{},{"default":"Please enter a valid ISIN number"}),a.fn.bootstrapValidator.validators.isin={COUNTRY_CODES:"AF|AX|AL|DZ|AS|AD|AO|AI|AQ|AG|AR|AM|AW|AU|AT|AZ|BS|BH|BD|BB|BY|BE|BZ|BJ|BM|BT|BO|BQ|BA|BW|BV|BR|IO|BN|BG|BF|BI|KH|CM|CA|CV|KY|CF|TD|CL|CN|CX|CC|CO|KM|CG|CD|CK|CR|CI|HR|CU|CW|CY|CZ|DK|DJ|DM|DO|EC|EG|SV|GQ|ER|EE|ET|FK|FO|FJ|FI|FR|GF|PF|TF|GA|GM|GE|DE|GH|GI|GR|GL|GD|GP|GU|GT|GG|GN|GW|GY|HT|HM|VA|HN|HK|HU|IS|IN|ID|IR|IQ|IE|IM|IL|IT|JM|JP|JE|JO|KZ|KE|KI|KP|KR|KW|KG|LA|LV|LB|LS|LR|LY|LI|LT|LU|MO|MK|MG|MW|MY|MV|ML|MT|MH|MQ|MR|MU|YT|MX|FM|MD|MC|MN|ME|MS|MA|MZ|MM|NA|NR|NP|NL|NC|NZ|NI|NE|NG|NU|NF|MP|NO|OM|PK|PW|PS|PA|PG|PY|PE|PH|PN|PL|PT|PR|QA|RE|RO|RU|RW|BL|SH|KN|LC|MF|PM|VC|WS|SM|ST|SA|SN|RS|SC|SL|SG|SX|SK|SI|SB|SO|ZA|GS|SS|ES|LK|SD|SR|SJ|SZ|SE|CH|SY|TW|TJ|TZ|TH|TL|TG|TK|TO|TT|TN|TR|TM|TC|TV|UG|UA|AE|GB|US|UM|UY|UZ|VU|VE|VN|VG|VI|WF|EH|YE|ZM|ZW",validate:function(a,b){var c=b.val();if(""===c)return!0;c=c.toUpperCase();var d=new RegExp("^("+this.COUNTRY_CODES+")[0-9A-Z]{10}$");if(!d.test(c))return!1;for(var e="",f=c.length,g=0;f-1>g;g++){var h=c.charCodeAt(g);e+=h>57?(h-55).toString():c.charAt(g)}var i="",j=e.length,k=j%2!==0?0:1;for(g=0;j>g;g++)i+=parseInt(e[g],10)*(g%2===k?2:1)+"";var l=0;for(g=0;g<i.length;g++)l+=parseInt(i.charAt(g),10);return l=(10-l%10)%10,l+""===c.charAt(f-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.ismn=a.extend(a.fn.bootstrapValidator.i18n.ismn||{},{"default":"Please enter a valid ISMN number"}),a.fn.bootstrapValidator.validators.ismn={validate:function(a,b){var c=b.val();if(""===c)return!0;var d;switch(!0){case/^M\d{9}$/.test(c):case/^M-\d{4}-\d{4}-\d{1}$/.test(c):case/^M\s\d{4}\s\d{4}\s\d{1}$/.test(c):d="ISMN10";break;case/^9790\d{9}$/.test(c):case/^979-0-\d{4}-\d{4}-\d{1}$/.test(c):case/^979\s0\s\d{4}\s\d{4}\s\d{1}$/.test(c):d="ISMN13";break;default:return!1}"ISMN10"===d&&(c="9790"+c.substr(1)),c=c.replace(/[^0-9]/gi,"");for(var e=c.length,f=0,g=[1,3],h=0;e-1>h;h++)f+=parseInt(c.charAt(h),10)*g[h%2];return f=10-f%10,f+""===c.charAt(e-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.issn=a.extend(a.fn.bootstrapValidator.i18n.issn||{},{"default":"Please enter a valid ISSN number"}),a.fn.bootstrapValidator.validators.issn={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^\d{4}\-\d{3}[\dX]$/.test(c))return!1;c=c.replace(/[^0-9X]/gi,"");var d=c.split(""),e=d.length,f=0;"X"===d[7]&&(d[7]=10);for(var g=0;e>g;g++)f+=parseInt(d[g],10)*(8-g);return f%11===0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.lessThan=a.extend(a.fn.bootstrapValidator.i18n.lessThan||{},{"default":"Please enter a value less than or equal to %s",notInclusive:"Please enter a value less than %s"}),a.fn.bootstrapValidator.validators.lessThan={html5Attributes:{message:"message",value:"value",inclusive:"inclusive"},enableByHtml5:function(a){var b=a.attr("type"),c=a.attr("max");return c&&"date"!==b?{value:c}:!1},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(e=this._format(e),!a.isNumeric(e))return!1;var f=a.isNumeric(d.value)?d.value:b.getDynamicOption(c,d.value),g=this._format(f);return e=parseFloat(e),d.inclusive===!0||void 0===d.inclusive?{valid:g>=e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.lessThan["default"],f)}:{valid:g>e,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.lessThan.notInclusive,f)}},_format:function(a){return(a+"").replace(",",".")}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.mac=a.extend(a.fn.bootstrapValidator.i18n.mac||{},{"default":"Please enter a valid MAC address"}),a.fn.bootstrapValidator.validators.mac={validate:function(a,b){var c=b.val();return""===c?!0:/^([0-9A-F]{2}[:-]){5}([0-9A-F]{2})$/.test(c)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.meid=a.extend(a.fn.bootstrapValidator.i18n.meid||{},{"default":"Please enter a valid MEID number"}),a.fn.bootstrapValidator.validators.meid={validate:function(b,c){var d=c.val();if(""===d)return!0;switch(!0){case/^[0-9A-F]{15}$/i.test(d):case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}[- ][0-9A-F]$/i.test(d):case/^\d{19}$/.test(d):case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}[- ]\d$/.test(d):var e=d.charAt(d.length-1);if(d=d.replace(/[- ]/g,""),d.match(/^\d*$/i))return a.fn.bootstrapValidator.helpers.luhn(d);d=d.slice(0,-1);for(var f="",g=1;13>=g;g+=2)f+=(2*parseInt(d.charAt(g),16)).toString(16);var h=0;for(g=0;g<f.length;g++)h+=parseInt(f.charAt(g),16);return h%10===0?"0"===e:e===(2*(10*Math.floor((h+10)/10)-h)).toString(16);case/^[0-9A-F]{14}$/i.test(d):case/^[0-9A-F]{2}[- ][0-9A-F]{6}[- ][0-9A-F]{6}$/i.test(d):case/^\d{18}$/.test(d):case/^\d{5}[- ]\d{5}[- ]\d{4}[- ]\d{4}$/.test(d):return!0;default:return!1}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.notEmpty=a.extend(a.fn.bootstrapValidator.i18n.notEmpty||{},{"default":"Please enter a value"}),a.fn.bootstrapValidator.validators.notEmpty={enableByHtml5:function(a){var b=a.attr("required")+"";return"required"===b||"true"===b},validate:function(b,c){var d=c.attr("type");return"radio"===d||"checkbox"===d?b.getFieldElements(c.attr("data-bv-field")).filter(":checked").length>0:"number"===d&&c.get(0).validity&&c.get(0).validity.badInput===!0?!0:""!==a.trim(c.val())}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.numeric=a.extend(a.fn.bootstrapValidator.i18n.numeric||{},{"default":"Please enter a valid float number"}),a.fn.bootstrapValidator.validators.numeric={html5Attributes:{message:"message",separator:"separator"},enableByHtml5:function(a){return"number"===a.attr("type")&&void 0!==a.attr("step")&&a.attr("step")%1!==0},validate:function(a,b,c){if(this.enableByHtml5(b)&&b.get(0).validity&&b.get(0).validity.badInput===!0)return!1;var d=b.val();if(""===d)return!0;var e=c.separator||".";return"."!==e&&(d=d.replace(e,".")),!isNaN(parseFloat(d))&&isFinite(d)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.phone=a.extend(a.fn.bootstrapValidator.i18n.phone||{},{"default":"Please enter a valid phone number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid phone number in %s",countries:{BR:"Brazil",CN:"China",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",ES:"Spain",FR:"France",GB:"United Kingdom",MA:"Morocco",PK:"Pakistan",RO:"Romania",RU:"Russia",SK:"Slovakia",TH:"Thailand",US:"USA",VE:"Venezuela"}}),a.fn.bootstrapValidator.validators.phone={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["BR","CN","CZ","DE","DK","ES","FR","GB","MA","PK","RO","RU","SK","TH","US","VE"],validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=d.country;if(("string"!=typeof f||-1===a.inArray(f,this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)),!f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.phone.countryNotSupported,f)};var g=!0;switch(f.toUpperCase()){case"BR":e=a.trim(e),g=/^(([\d]{4}[-.\s]{1}[\d]{2,3}[-.\s]{1}[\d]{2}[-.\s]{1}[\d]{2})|([\d]{4}[-.\s]{1}[\d]{3}[-.\s]{1}[\d]{4})|((\(?\+?[0-9]{2}\)?\s?)?(\(?\d{2}\)?\s?)?\d{4,5}[-.\s]?\d{4}))$/.test(e);break;case"CN":e=a.trim(e),g=/^((00|\+)?(86(?:-| )))?((\d{11})|(\d{3}[- ]{1}\d{4}[- ]{1}\d{4})|((\d{2,4}[- ]){1}(\d{7,8}|(\d{3,4}[- ]{1}\d{4}))([- ]{1}\d{1,4})?))$/.test(e);break;case"CZ":g=/^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e);break;case"DE":e=a.trim(e),g=/^(((((((00|\+)49[ \-/]?)|0)[1-9][0-9]{1,4})[ \-/]?)|((((00|\+)49\()|\(0)[1-9][0-9]{1,4}\)[ \-/]?))[0-9]{1,7}([ \-/]?[0-9]{1,5})?)$/.test(e);break;case"DK":e=a.trim(e),g=/^(\+45|0045|\(45\))?\s?[2-9](\s?\d){7}$/.test(e);break;case"ES":e=a.trim(e),g=/^(?:(?:(?:\+|00)34\D?))?(?:9|6)(?:\d\D?){8}$/.test(e);break;case"FR":e=a.trim(e),g=/^(?:(?:(?:\+|00)33[ ]?(?:\(0\)[ ]?)?)|0){1}[1-9]{1}([ .-]?)(?:\d{2}\1?){3}\d{2}$/.test(e);break;case"GB":e=a.trim(e),g=/^\(?(?:(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?\(?(?:0\)?[\s-]?\(?)?|0)(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}|\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4}|\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3})|\d{5}\)?[\s-]?\d{4,5}|8(?:00[\s-]?11[\s-]?11|45[\s-]?46[\s-]?4\d))(?:(?:[\s-]?(?:x|ext\.?\s?|\#)\d+)?)$/.test(e);break;case"MA":e=a.trim(e),g=/^(?:(?:(?:\+|00)212[\s]?(?:[\s]?\(0\)[\s]?)?)|0){1}(?:5[\s.-]?[2-3]|6[\s.-]?[13-9]){1}[0-9]{1}(?:[\s.-]?\d{2}){3}$/.test(e);break;case"PK":e=a.trim(e),g=/^0?3[0-9]{2}[0-9]{7}$/.test(e);break;case"RO":g=/^(\+4|)?(07[0-8]{1}[0-9]{1}|02[0-9]{2}|03[0-9]{2}){1}?(\s|\.|\-)?([0-9]{3}(\s|\.|\-|)){2}$/g.test(e);break;case"RU":g=/^((8|\+7|007)[\-\.\/ ]?)?([\(\/\.]?\d{3}[\)\/\.]?[\-\.\/ ]?)?[\d\-\.\/ ]{7,10}$/g.test(e);break;case"SK":g=/^(((00)([- ]?)|\+)(420)([- ]?))?((\d{3})([- ]?)){2}(\d{3})$/.test(e);break;case"TH":g=/^0\(?([6|8-9]{2})*-([0-9]{3})*-([0-9]{4})$/.test(e);break;case"VE":e=a.trim(e),g=/^0(?:2(?:12|4[0-9]|5[1-9]|6[0-9]|7[0-8]|8[1-35-8]|9[1-5]|3[45789])|4(?:1[246]|2[46]))\d{7}$/.test(e);break;case"US":default:e=e.replace(/\D/g,""),g=/^(?:(1\-?)|(\+1 ?))?\(?(\d{3})[\)\-\.]?(\d{3})[\-\.]?(\d{4})$/.test(e)&&10===e.length}return{valid:g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.phone.country,a.fn.bootstrapValidator.i18n.phone.countries[f])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.regexp=a.extend(a.fn.bootstrapValidator.i18n.regexp||{},{"default":"Please enter a value matching the pattern"}),a.fn.bootstrapValidator.validators.regexp={html5Attributes:{message:"message",regexp:"regexp"},enableByHtml5:function(a){var b=a.attr("pattern");return b?{regexp:b}:!1},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e="string"==typeof c.regexp?new RegExp(c.regexp):c.regexp;return e.test(d)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.remote=a.extend(a.fn.bootstrapValidator.i18n.remote||{},{"default":"Please enter a valid value"}),a.fn.bootstrapValidator.validators.remote={html5Attributes:{message:"message",name:"name",type:"type",url:"url",data:"data",delay:"delay"},destroy:function(a,b){b.data("bv.remote.timer")&&(clearTimeout(b.data("bv.remote.timer")),b.removeData("bv.remote.timer"))},validate:function(b,c,d){function e(){var b=a.ajax({type:k,headers:l,url:j,dataType:"json",data:i});return b.then(function(a){a.valid=a.valid===!0||"true"===a.valid,g.resolve(c,"remote",a)}),g.fail(function(){b.abort()}),g}var f=c.val(),g=new a.Deferred;if(""===f)return g.resolve(c,"remote",{valid:!0}),g;var h=c.attr("data-bv-field"),i=d.data||{},j=d.url,k=d.type||"GET",l=d.headers||{};return"function"==typeof i&&(i=i.call(this,b)),"string"==typeof i&&(i=JSON.parse(i)),"function"==typeof j&&(j=j.call(this,b)),i[d.name||h]=f,d.delay?(c.data("bv.remote.timer")&&clearTimeout(c.data("bv.remote.timer")),c.data("bv.remote.timer",setTimeout(e,d.delay)),g):e()}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.rtn=a.extend(a.fn.bootstrapValidator.i18n.rtn||{},{"default":"Please enter a valid RTN number"}),a.fn.bootstrapValidator.validators.rtn={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^\d{9}$/.test(c))return!1;for(var d=0,e=0;e<c.length;e+=3)d+=3*parseInt(c.charAt(e),10)+7*parseInt(c.charAt(e+1),10)+parseInt(c.charAt(e+2),10);return 0!==d&&d%10===0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.sedol=a.extend(a.fn.bootstrapValidator.i18n.sedol||{},{"default":"Please enter a valid SEDOL number"}),a.fn.bootstrapValidator.validators.sedol={validate:function(a,b){var c=b.val();if(""===c)return!0;if(c=c.toUpperCase(),!/^[0-9A-Z]{7}$/.test(c))return!1;for(var d=0,e=[1,3,1,7,3,9,1],f=c.length,g=0;f-1>g;g++)d+=e[g]*parseInt(c.charAt(g),36);return d=(10-d%10)%10,d+""===c.charAt(f-1)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.siren=a.extend(a.fn.bootstrapValidator.i18n.siren||{},{"default":"Please enter a valid SIREN number"}),a.fn.bootstrapValidator.validators.siren={validate:function(b,c){var d=c.val();return""===d?!0:/^\d{9}$/.test(d)?a.fn.bootstrapValidator.helpers.luhn(d):!1}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.siret=a.extend(a.fn.bootstrapValidator.i18n.siret||{},{"default":"Please enter a valid SIRET number"}),a.fn.bootstrapValidator.validators.siret={validate:function(a,b){var c=b.val();if(""===c)return!0;for(var d,e=0,f=c.length,g=0;f>g;g++)d=parseInt(c.charAt(g),10),g%2===0&&(d=2*d,d>9&&(d-=9)),e+=d;return e%10===0}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.step=a.extend(a.fn.bootstrapValidator.i18n.step||{},{"default":"Please enter a valid step of %s"}),a.fn.bootstrapValidator.validators.step={html5Attributes:{message:"message",base:"baseValue",step:"step"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;if(d=a.extend({},{baseValue:0,step:1},d),e=parseFloat(e),!a.isNumeric(e))return!1;var f=function(a,b){var c=Math.pow(10,b);a*=c;var d=a>0|-(0>a),e=a%1===.5*d;return e?(Math.floor(a)+(d>0))/c:Math.round(a)/c},g=function(a,b){if(0===b)return 1;var c=(a+"").split("."),d=(b+"").split("."),e=(1===c.length?0:c[1].length)+(1===d.length?0:d[1].length);return f(a-b*Math.floor(a/b),e)},h=g(e-d.baseValue,d.step);return{valid:0===h||h===d.step,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.step["default"],[d.step])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.stringCase=a.extend(a.fn.bootstrapValidator.i18n.stringCase||{},{"default":"Please enter only lowercase characters",upper:"Please enter only uppercase characters"}),a.fn.bootstrapValidator.validators.stringCase={html5Attributes:{message:"message","case":"case"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=(d["case"]||"lower").toLowerCase();return{valid:"upper"===f?e===e.toUpperCase():e===e.toLowerCase(),message:d.message||("upper"===f?a.fn.bootstrapValidator.i18n.stringCase.upper:a.fn.bootstrapValidator.i18n.stringCase["default"])}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.stringLength=a.extend(a.fn.bootstrapValidator.i18n.stringLength||{},{"default":"Please enter a value with valid length",less:"Please enter less than %s characters",more:"Please enter more than %s characters",between:"Please enter value between %s and %s characters long"}),a.fn.bootstrapValidator.validators.stringLength={html5Attributes:{message:"message",min:"min",max:"max",trim:"trim",utf8bytes:"utf8Bytes"},enableByHtml5:function(b){var c={},d=b.attr("maxlength"),e=b.attr("minlength");return d&&(c.max=parseInt(d,10)),e&&(c.min=parseInt(e,10)),a.isEmptyObject(c)?!1:c},validate:function(b,c,d){var e=c.val();if((d.trim===!0||"true"===d.trim)&&(e=a.trim(e)),""===e)return!0;var f=a.isNumeric(d.min)?d.min:b.getDynamicOption(c,d.min),g=a.isNumeric(d.max)?d.max:b.getDynamicOption(c,d.max),h=function(a){for(var b=a.length,c=a.length-1;c>=0;c--){var d=a.charCodeAt(c);d>127&&2047>=d?b++:d>2047&&65535>=d&&(b+=2),d>=56320&&57343>=d&&c--}return b},i=d.utf8Bytes?h(e):e.length,j=!0,k=d.message||a.fn.bootstrapValidator.i18n.stringLength["default"];switch((f&&i<parseInt(f,10)||g&&i>parseInt(g,10))&&(j=!1),!0){case!!f&&!!g:k=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.stringLength.between,[parseInt(f,10),parseInt(g,10)]);break;case!!f:k=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.stringLength.more,parseInt(f,10));break;case!!g:k=a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.stringLength.less,parseInt(g,10))}return{valid:j,message:k}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.uri=a.extend(a.fn.bootstrapValidator.i18n.uri||{},{"default":"Please enter a valid URI"}),a.fn.bootstrapValidator.validators.uri={html5Attributes:{message:"message",allowlocal:"allowLocal",protocol:"protocol"},enableByHtml5:function(a){return"url"===a.attr("type")},validate:function(a,b,c){var d=b.val();if(""===d)return!0;var e=c.allowLocal===!0||"true"===c.allowLocal,f=(c.protocol||"http, https, ftp").split(",").join("|").replace(/\s/g,""),g=new RegExp("^(?:(?:"+f+")://)(?:\\S+(?::\\S*)?@)?(?:"+(e?"":"(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})")+"(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,}))"+(e?"?":"")+")(?::\\d{2,5})?(?:/[^\\s]*)?$","i");return g.test(d)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.uuid=a.extend(a.fn.bootstrapValidator.i18n.uuid||{},{"default":"Please enter a valid UUID number",version:"Please enter a valid UUID version %s number"}),a.fn.bootstrapValidator.validators.uuid={html5Attributes:{message:"message",version:"version"},validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f={3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,all:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i},g=d.version?d.version+"":"all";return{valid:null===f[g]?!0:f[g].test(e),message:d.version?a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.uuid.version,d.version):d.message||a.fn.bootstrapValidator.i18n.uuid["default"]}}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.vat=a.extend(a.fn.bootstrapValidator.i18n.vat||{},{"default":"Please enter a valid VAT number",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid VAT number in %s",countries:{AT:"Austria",BE:"Belgium",BG:"Bulgaria",BR:"Brazil",CH:"Switzerland",CY:"Cyprus",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",EE:"Estonia",ES:"Spain",FI:"Finland",FR:"France",GB:"United Kingdom",GR:"Greek",EL:"Greek",HU:"Hungary",HR:"Croatia",IE:"Ireland",IS:"Iceland",IT:"Italy",LT:"Lithuania",LU:"Luxembourg",LV:"Latvia",MT:"Malta",NL:"Netherlands",NO:"Norway",PL:"Poland",PT:"Portugal",RO:"Romania",RU:"Russia",RS:"Serbia",SE:"Sweden",SI:"Slovenia",SK:"Slovakia",VE:"Venezuela",ZA:"South Africa"}}),a.fn.bootstrapValidator.validators.vat={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["AT","BE","BG","BR","CH","CY","CZ","DE","DK","EE","EL","ES","FI","FR","GB","GR","HR","HU","IE","IS","IT","LT","LU","LV","MT","NL","NO","PL","PT","RO","RU","RS","SE","SK","SI","VE","ZA"],validate:function(b,c,d){var e=c.val();if(""===e)return!0;var f=d.country;if(f?("string"!=typeof f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)):f=e.substr(0,2),-1===a.inArray(f,this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.vat.countryNotSupported,f)};var g=["_",f.toLowerCase()].join("");return this[g](e)?!0:{valid:!1,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.vat.country,a.fn.bootstrapValidator.i18n.vat.countries[f.toUpperCase()])}},_at:function(a){if(/^ATU[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^U[0-9]{8}$/.test(a))return!1;a=a.substr(1);for(var b=0,c=[1,2,1,2,1,2,1],d=0,e=0;7>e;e++)d=parseInt(a.charAt(e),10)*c[e],d>9&&(d=Math.floor(d/10)+d%10),b+=d;return b=10-(b+4)%10,10===b&&(b=0),b+""===a.substr(7,1)},_be:function(a){if(/^BE[0]{0,1}[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0]{0,1}[0-9]{9}$/.test(a))return!1;if(9===a.length&&(a="0"+a),"0"===a.substr(1,1))return!1;var b=parseInt(a.substr(0,8),10)+parseInt(a.substr(8,2),10);return b%97===0},_bg:function(b){if(/^BG[0-9]{9,10}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{9,10}$/.test(b))return!1;var c=0,d=0;if(9===b.length){for(d=0;8>d;d++)c+=parseInt(b.charAt(d),10)*(d+1);if(c%=11,10===c)for(c=0,d=0;8>d;d++)c+=parseInt(b.charAt(d),10)*(d+3);return c%=10,c+""===b.substr(8)}if(10===b.length){var e=function(b){var c=parseInt(b.substr(0,2),10)+1900,d=parseInt(b.substr(2,2),10),e=parseInt(b.substr(4,2),10);if(d>40?(c+=100,d-=40):d>20&&(c-=100,d-=20),!a.fn.bootstrapValidator.helpers.date(c,d,e))return!1;for(var f=0,g=[2,4,8,5,10,9,7,3,6],h=0;9>h;h++)f+=parseInt(b.charAt(h),10)*g[h];return f=f%11%10,f+""===b.substr(9,1)},f=function(a){for(var b=0,c=[21,19,17,13,11,9,7,3,1],d=0;9>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%=10,b+""===a.substr(9,1)},g=function(a){for(var b=0,c=[4,3,2,7,6,5,4,3,2],d=0;9>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,10===b?!1:(11===b&&(b=0),b+""===a.substr(9,1))};return e(b)||f(b)||g(b)}return!1},_br:function(a){if(""===a)return!0;var b=a.replace(/[^\d]+/g,"");if(""===b||14!==b.length)return!1;if("00000000000000"===b||"11111111111111"===b||"22222222222222"===b||"33333333333333"===b||"44444444444444"===b||"55555555555555"===b||"66666666666666"===b||"77777777777777"===b||"88888888888888"===b||"99999999999999"===b)return!1;for(var c=b.length-2,d=b.substring(0,c),e=b.substring(c),f=0,g=c-7,h=c;h>=1;h--)f+=parseInt(d.charAt(c-h),10)*g--,2>g&&(g=9);var i=2>f%11?0:11-f%11;if(i!==parseInt(e.charAt(0),10))return!1;for(c+=1,d=b.substring(0,c),f=0,g=c-7,h=c;h>=1;h--)f+=parseInt(d.charAt(c-h),10)*g--,2>g&&(g=9);return i=2>f%11?0:11-f%11,i===parseInt(e.charAt(1),10)},_ch:function(a){if(/^CHE[0-9]{9}(MWST)?$/.test(a)&&(a=a.substr(2)),!/^E[0-9]{9}(MWST)?$/.test(a))return!1;a=a.substr(1);for(var b=0,c=[5,4,3,2,7,6,5,4],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,10===b?!1:(11===b&&(b=0),b+""===a.substr(8,1))},_cy:function(a){if(/^CY[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a)&&(a=a.substr(2)),!/^[0-5|9]{1}[0-9]{7}[A-Z]{1}$/.test(a))return!1;if("12"===a.substr(0,2))return!1;for(var b=0,c={0:1,1:0,2:5,3:7,4:9,5:13,6:15,7:17,8:19,9:21},d=0;8>d;d++){var e=parseInt(a.charAt(d),10);d%2===0&&(e=c[e+""]),b+=e}return b="ABCDEFGHIJKLMNOPQRSTUVWXYZ"[b%26],b+""===a.substr(8,1)},_cz:function(b){if(/^CZ[0-9]{8,10}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{8,10}$/.test(b))return!1;var c=0,d=0;if(8===b.length){if(b.charAt(0)+""=="9")return!1;for(c=0,d=0;7>d;d++)c+=parseInt(b.charAt(d),10)*(8-d);return c=11-c%11,10===c&&(c=0),11===c&&(c=1),c+""===b.substr(7,1)
+}if(9===b.length&&b.charAt(0)+""=="6"){for(c=0,d=0;7>d;d++)c+=parseInt(b.charAt(d+1),10)*(8-d);return c=11-c%11,10===c&&(c=0),11===c&&(c=1),c=[8,7,6,5,4,3,2,1,0,9,10][c-1],c+""===b.substr(8,1)}if(9===b.length||10===b.length){var e=1900+parseInt(b.substr(0,2),10),f=parseInt(b.substr(2,2),10)%50%20,g=parseInt(b.substr(4,2),10);if(9===b.length){if(e>=1980&&(e-=100),e>1953)return!1}else 1954>e&&(e+=100);if(!a.fn.bootstrapValidator.helpers.date(e,f,g))return!1;if(10===b.length){var h=parseInt(b.substr(0,9),10)%11;return 1985>e&&(h%=10),h+""===b.substr(9,1)}return!0}return!1},_de:function(b){return/^DE[0-9]{9}$/.test(b)&&(b=b.substr(2)),/^[0-9]{9}$/.test(b)?a.fn.bootstrapValidator.helpers.mod11And10(b):!1},_dk:function(a){if(/^DK[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[2,7,6,5,4,3,2,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%11===0},_ee:function(a){if(/^EE[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=0,c=[3,7,1,3,7,1,3,7,1],d=0;9>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%10===0},_es:function(a){if(/^ES[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a)&&(a=a.substr(2)),!/^[0-9A-Z][0-9]{7}[0-9A-Z]$/.test(a))return!1;var b=function(a){var b=parseInt(a.substr(0,8),10);return b="TRWAGMYFPDXBNJZSQVHLCKE"[b%23],b+""===a.substr(8,1)},c=function(a){var b=["XYZ".indexOf(a.charAt(0)),a.substr(1)].join("");return b=parseInt(b,10),b="TRWAGMYFPDXBNJZSQVHLCKE"[b%23],b+""===a.substr(8,1)},d=function(a){var b,c=a.charAt(0);if(-1!=="KLM".indexOf(c))return b=parseInt(a.substr(1,8),10),b="TRWAGMYFPDXBNJZSQVHLCKE"[b%23],b+""===a.substr(8,1);if(-1!=="ABCDEFGHJNPQRSUVW".indexOf(c)){for(var d=0,e=[2,1,2,1,2,1,2],f=0,g=0;7>g;g++)f=parseInt(a.charAt(g+1),10)*e[g],f>9&&(f=Math.floor(f/10)+f%10),d+=f;return d=10-d%10,d+""===a.substr(8,1)||"JABCDEFGHI"[d]===a.substr(8,1)}return!1},e=a.charAt(0);return/^[0-9]$/.test(e)?b(a):/^[XYZ]$/.test(e)?c(a):d(a)},_fi:function(a){if(/^FI[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[7,9,10,5,8,4,2,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%11===0},_fr:function(b){if(/^FR[0-9A-Z]{2}[0-9]{9}$/.test(b)&&(b=b.substr(2)),!/^[0-9A-Z]{2}[0-9]{9}$/.test(b))return!1;if(!a.fn.bootstrapValidator.helpers.luhn(b.substr(2)))return!1;if(/^[0-9]{2}$/.test(b.substr(0,2)))return b.substr(0,2)===parseInt(b.substr(2)+"12",10)%97+"";var c,d="0123456789ABCDEFGHJKLMNPQRSTUVWXYZ";return c=/^[0-9]{1}$/.test(b.charAt(0))?24*d.indexOf(b.charAt(0))+d.indexOf(b.charAt(1))-10:34*d.indexOf(b.charAt(0))+d.indexOf(b.charAt(1))-100,(parseInt(b.substr(2),10)+1+Math.floor(c/11))%11===c%11},_gb:function(a){if((/^GB[0-9]{9}$/.test(a)||/^GB[0-9]{12}$/.test(a)||/^GBGD[0-9]{3}$/.test(a)||/^GBHA[0-9]{3}$/.test(a)||/^GB(GD|HA)8888[0-9]{5}$/.test(a))&&(a=a.substr(2)),!(/^[0-9]{9}$/.test(a)||/^[0-9]{12}$/.test(a)||/^GD[0-9]{3}$/.test(a)||/^HA[0-9]{3}$/.test(a)||/^(GD|HA)8888[0-9]{5}$/.test(a)))return!1;var b=a.length;if(5===b){var c=a.substr(0,2),d=parseInt(a.substr(2),10);return"GD"===c&&500>d||"HA"===c&&d>=500}if(11===b&&("GD8888"===a.substr(0,6)||"HA8888"===a.substr(0,6)))return"GD"===a.substr(0,2)&&parseInt(a.substr(6,3),10)>=500||"HA"===a.substr(0,2)&&parseInt(a.substr(6,3),10)<500?!1:parseInt(a.substr(6,3),10)%97===parseInt(a.substr(9,2),10);if(9===b||12===b){for(var e=0,f=[8,7,6,5,4,3,2,10,1],g=0;9>g;g++)e+=parseInt(a.charAt(g),10)*f[g];return e%=97,parseInt(a.substr(0,3),10)>=100?0===e||42===e||55===e:0===e}return!0},_gr:function(a){if(/^(GR|EL)[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;8===a.length&&(a="0"+a);for(var b=0,c=[256,128,64,32,16,8,4,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=b%11%10,b+""===a.substr(8,1)},_el:function(a){return this._gr(a)},_hu:function(a){if(/^HU[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[9,7,3,1,9,7,3,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%10===0},_hr:function(b){return/^HR[0-9]{11}$/.test(b)&&(b=b.substr(2)),/^[0-9]{11}$/.test(b)?a.fn.bootstrapValidator.helpers.mod11And10(b):!1},_ie:function(a){if(/^IE[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{1}[0-9A-Z\*\+]{1}[0-9]{5}[A-Z]{1,2}$/.test(a))return!1;var b=function(a){for(;a.length<7;)a="0"+a;for(var b="WABCDEFGHIJKLMNOPQRSTUV",c=0,d=0;7>d;d++)c+=parseInt(a.charAt(d),10)*(8-d);return c+=9*b.indexOf(a.substr(7)),b[c%23]};return/^[0-9]+$/.test(a.substr(0,7))?a.charAt(7)===b(a.substr(0,7)+a.substr(8)+""):-1!=="ABCDEFGHIJKLMNOPQRSTUVWXYZ+*".indexOf(a.charAt(1))?a.charAt(7)===b(a.substr(2,5)+a.substr(0,1)+""):!0},_is:function(a){return/^IS[0-9]{5,6}$/.test(a)&&(a=a.substr(2)),/^[0-9]{5,6}$/.test(a)},_it:function(b){if(/^IT[0-9]{11}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{11}$/.test(b))return!1;if(0===parseInt(b.substr(0,7),10))return!1;var c=parseInt(b.substr(7,3),10);return 1>c||c>201&&999!==c&&888!==c?!1:a.fn.bootstrapValidator.helpers.luhn(b)},_lt:function(a){if(/^LT([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a)&&(a=a.substr(2)),!/^([0-9]{7}1[0-9]{1}|[0-9]{10}1[0-9]{1})$/.test(a))return!1;var b,c=a.length,d=0;for(b=0;c-1>b;b++)d+=parseInt(a.charAt(b),10)*(1+b%9);var e=d%11;if(10===e)for(d=0,b=0;c-1>b;b++)d+=parseInt(a.charAt(b),10)*(1+(b+2)%9);return e=e%11%10,e+""===a.charAt(c-1)},_lu:function(a){return/^LU[0-9]{8}$/.test(a)&&(a=a.substr(2)),/^[0-9]{8}$/.test(a)?parseInt(a.substr(0,6),10)%89+""===a.substr(6,2):!1},_lv:function(b){if(/^LV[0-9]{11}$/.test(b)&&(b=b.substr(2)),!/^[0-9]{11}$/.test(b))return!1;var c,d=parseInt(b.charAt(0),10),e=0,f=[],g=b.length;if(d>3){for(e=0,f=[9,1,4,8,3,10,2,5,7,6,1],c=0;g>c;c++)e+=parseInt(b.charAt(c),10)*f[c];return e%=11,3===e}var h=parseInt(b.substr(0,2),10),i=parseInt(b.substr(2,2),10),j=parseInt(b.substr(4,2),10);if(j=j+1800+100*parseInt(b.charAt(6),10),!a.fn.bootstrapValidator.helpers.date(j,i,h))return!1;for(e=0,f=[10,5,8,4,2,1,6,3,7,9],c=0;g-1>c;c++)e+=parseInt(b.charAt(c),10)*f[c];return e=(e+1)%11%10,e+""===b.charAt(g-1)},_mt:function(a){if(/^MT[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[3,4,6,7,8,9,10,1],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%37===0},_nl:function(a){if(/^NL[0-9]{9}B[0-9]{2}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}B[0-9]{2}$/.test(a))return!1;for(var b=0,c=[9,8,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%=11,b>9&&(b=0),b+""===a.substr(8,1)},_no:function(a){if(/^NO[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=0,c=[3,2,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,11===b&&(b=0),b+""===a.substr(8,1)},_pl:function(a){if(/^PL[0-9]{10}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{10}$/.test(a))return!1;for(var b=0,c=[6,5,7,2,3,4,5,6,7,-1],d=0;10>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b%11===0},_pt:function(a){if(/^PT[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=0,c=[9,8,7,6,5,4,3,2],d=0;8>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,b>9&&(b=0),b+""===a.substr(8,1)},_ro:function(a){if(/^RO[1-9][0-9]{1,9}$/.test(a)&&(a=a.substr(2)),!/^[1-9][0-9]{1,9}$/.test(a))return!1;for(var b=a.length,c=[7,5,3,2,1,7,5,3,2].slice(10-b),d=0,e=0;b-1>e;e++)d+=parseInt(a.charAt(e),10)*c[e];return d=10*d%11%10,d+""===a.substr(b-1,1)},_ru:function(a){if(/^RU([0-9]{10}|[0-9]{12})$/.test(a)&&(a=a.substr(2)),!/^([0-9]{10}|[0-9]{12})$/.test(a))return!1;var b=0;if(10===a.length){var c=0,d=[2,4,10,3,5,9,4,6,8,0];for(b=0;10>b;b++)c+=parseInt(a.charAt(b),10)*d[b];return c%=11,c>9&&(c%=10),c+""===a.substr(9,1)}if(12===a.length){var e=0,f=[7,2,4,10,3,5,9,4,6,8,0],g=0,h=[3,7,2,4,10,3,5,9,4,6,8,0];for(b=0;11>b;b++)e+=parseInt(a.charAt(b),10)*f[b],g+=parseInt(a.charAt(b),10)*h[b];return e%=11,e>9&&(e%=10),g%=11,g>9&&(g%=10),e+""===a.substr(10,1)&&g+""===a.substr(11,1)}return!1},_rs:function(a){if(/^RS[0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{9}$/.test(a))return!1;for(var b=10,c=0,d=0;8>d;d++)c=(parseInt(a.charAt(d),10)+b)%10,0===c&&(c=10),b=2*c%11;return(b+parseInt(a.substr(8,1),10))%10===1},_se:function(b){return/^SE[0-9]{10}01$/.test(b)&&(b=b.substr(2)),/^[0-9]{10}01$/.test(b)?(b=b.substr(0,10),a.fn.bootstrapValidator.helpers.luhn(b)):!1},_si:function(a){if(/^SI[0-9]{8}$/.test(a)&&(a=a.substr(2)),!/^[0-9]{8}$/.test(a))return!1;for(var b=0,c=[8,7,6,5,4,3,2],d=0;7>d;d++)b+=parseInt(a.charAt(d),10)*c[d];return b=11-b%11,10===b&&(b=0),b+""===a.substr(7,1)},_sk:function(a){return/^SK[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a)&&(a=a.substr(2)),/^[1-9][0-9][(2-4)|(6-9)][0-9]{7}$/.test(a)?parseInt(a,10)%11===0:!1},_ve:function(a){if(/^VE[VEJPG][0-9]{9}$/.test(a)&&(a=a.substr(2)),!/^[VEJPG][0-9]{9}$/.test(a))return!1;for(var b={V:4,E:8,J:12,P:16,G:20},c=b[a.charAt(0)],d=[3,2,7,6,5,4,3,2],e=0;8>e;e++)c+=parseInt(a.charAt(e+1),10)*d[e];return c=11-c%11,(11===c||10===c)&&(c=0),c+""===a.substr(9,1)},_za:function(a){return/^ZA4[0-9]{9}$/.test(a)&&(a=a.substr(2)),/^4[0-9]{9}$/.test(a)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.vin=a.extend(a.fn.bootstrapValidator.i18n.vin||{},{"default":"Please enter a valid VIN number"}),a.fn.bootstrapValidator.validators.vin={validate:function(a,b){var c=b.val();if(""===c)return!0;if(!/^[a-hj-npr-z0-9]{8}[0-9xX][a-hj-npr-z0-9]{8}$/i.test(c))return!1;c=c.toUpperCase();for(var d={A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,J:1,K:2,L:3,M:4,N:5,P:7,R:9,S:2,T:3,U:4,V:5,W:6,X:7,Y:8,Z:9,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,0:0},e=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],f=0,g=c.length,h=0;g>h;h++)f+=d[c.charAt(h)+""]*e[h];var i=f%11;return 10===i&&(i="X"),i+""===c.charAt(8)}}}(window.jQuery),function(a){a.fn.bootstrapValidator.i18n.zipCode=a.extend(a.fn.bootstrapValidator.i18n.zipCode||{},{"default":"Please enter a valid postal code",countryNotSupported:"The country code %s is not supported",country:"Please enter a valid postal code in %s",countries:{AT:"Austria",BR:"Brazil",CA:"Canada",CH:"Switzerland",CZ:"Czech Republic",DE:"Germany",DK:"Denmark",FR:"France",GB:"United Kingdom",IE:"Ireland",IT:"Italy",MA:"Morocco",NL:"Netherlands",PT:"Portugal",RO:"Romania",RU:"Russia",SE:"Sweden",SG:"Singapore",SK:"Slovakia",US:"USA"}}),a.fn.bootstrapValidator.validators.zipCode={html5Attributes:{message:"message",country:"country"},COUNTRY_CODES:["AT","BR","CA","CH","CZ","DE","DK","FR","GB","IE","IT","MA","NL","PT","RO","RU","SE","SG","SK","US"],validate:function(b,c,d){var e=c.val();if(""===e||!d.country)return!0;var f=d.country;if(("string"!=typeof f||-1===a.inArray(f,this.COUNTRY_CODES))&&(f=b.getDynamicOption(c,f)),!f||-1===a.inArray(f.toUpperCase(),this.COUNTRY_CODES))return{valid:!1,message:a.fn.bootstrapValidator.helpers.format(a.fn.bootstrapValidator.i18n.zipCode.countryNotSupported,f)};var g=!1;switch(f=f.toUpperCase()){case"AT":g=/^([1-9]{1})(\d{3})$/.test(e);break;case"BR":g=/^(\d{2})([\.]?)(\d{3})([\-]?)(\d{3})$/.test(e);break;case"CA":g=/^(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|X|Y){1}[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}\s?[0-9]{1}(?:A|B|C|E|G|H|J|K|L|M|N|P|R|S|T|V|W|X|Y|Z){1}[0-9]{1}$/i.test(e);break;case"CH":g=/^([1-9]{1})(\d{3})$/.test(e);break;case"CZ":g=/^(\d{3})([ ]?)(\d{2})$/.test(e);break;case"DE":g=/^(?!01000|99999)(0[1-9]\d{3}|[1-9]\d{4})$/.test(e);break;case"DK":g=/^(DK(-|\s)?)?\d{4}$/i.test(e);break;case"FR":g=/^[0-9]{5}$/i.test(e);break;case"GB":g=this._gb(e);break;case"IE":g=/^(D6W|[ACDEFHKNPRTVWXY]\d{2})\s[0-9ACDEFHKNPRTVWXY]{4}$/.test(e);break;case"IT":g=/^(I-|IT-)?\d{5}$/i.test(e);break;case"MA":g=/^[1-9][0-9]{4}$/i.test(e);break;case"NL":g=/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i.test(e);break;case"PT":g=/^[1-9]\d{3}-\d{3}$/.test(e);break;case"RO":g=/^(0[1-8]{1}|[1-9]{1}[0-5]{1})?[0-9]{4}$/i.test(e);break;case"RU":g=/^[0-9]{6}$/i.test(e);break;case"SE":g=/^(S-)?\d{3}\s?\d{2}$/i.test(e);break;case"SG":g=/^([0][1-9]|[1-6][0-9]|[7]([0-3]|[5-9])|[8][0-2])(\d{4})$/i.test(e);break;case"SK":g=/^(\d{3})([ ]?)(\d{2})$/.test(e);break;case"US":default:g=/^\d{4,5}([\-]?\d{4})?$/.test(e)}return{valid:g,message:a.fn.bootstrapValidator.helpers.format(d.message||a.fn.bootstrapValidator.i18n.zipCode.country,a.fn.bootstrapValidator.i18n.zipCode.countries[f])}},_gb:function(a){for(var b="[ABCDEFGHIJKLMNOPRSTUWYZ]",c="[ABCDEFGHKLMNOPQRSTUVWXY]",d="[ABCDEFGHJKPMNRSTUVWXY]",e="[ABEHMNPRVWXY]",f="[ABDEFGHJLNPQRSTUWXYZ]",g=[new RegExp("^("+b+"{1}"+c+"?[0-9]{1,2})(\\s*)([0-9]{1}"+f+"{2})$","i"),new RegExp("^("+b+"{1}[0-9]{1}"+d+"{1})(\\s*)([0-9]{1}"+f+"{2})$","i"),new RegExp("^("+b+"{1}"+c+"{1}?[0-9]{1}"+e+"{1})(\\s*)([0-9]{1}"+f+"{2})$","i"),new RegExp("^(BF1)(\\s*)([0-6]{1}[ABDEFGHJLNPQRST]{1}[ABDEFGHJLNPQRSTUWZYZ]{1})$","i"),/^(GIR)(\s*)(0AA)$/i,/^(BFPO)(\s*)([0-9]{1,4})$/i,/^(BFPO)(\s*)(c\/o\s*[0-9]{1,3})$/i,/^([A-Z]{4})(\s*)(1ZZ)$/i,/^(AI-2640)$/i],h=0;h<g.length;h++)if(g[h].test(a))return!0;return!1}}}(window.jQuery);
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/zh_CN.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/zh_CN.js
new file mode 100644
index 0000000..0c1ed5d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/validate/zh_CN.js
@@ -0,0 +1,370 @@
+(function ($) {
+    /**
+     * Simplified Chinese language package
+     * Translated by @shamiao
+     */
+    $.fn.bootstrapValidator.i18n = $.extend(true, $.fn.bootstrapValidator.i18n, {
+        base64: {
+            'default': '请输入有效的Base64编码'
+        },
+        between: {
+            'default': '请输入在 %s 和 %s 之间的数值',
+            notInclusive: '请输入在 %s 和 %s 之间(不含两端)的数值'
+        },
+        callback: {
+            'default': '请输入有效的值'
+        },
+        choice: {
+            'default': '请输入有效的值',
+            less: '请至少选中 %s 个选项',
+            more: '最多只能选中 %s 个选项',
+            between: '请选择 %s 至 %s 个选项'
+        },
+        color: {
+            'default': '请输入有效的颜色值'
+        },
+        creditCard: {
+            'default': '请输入有效的信用卡号码'
+        },
+        cusip: {
+            'default': '请输入有效的美国CUSIP代码'
+        },
+        cvv: {
+            'default': '请输入有效的CVV代码'
+        },
+        date: {
+            'default': '请输入有效的日期', 
+            min: '请输入 %s 或之后的日期',
+            max: '请输入 %s 或以前的日期',
+            range: '请输入 %s 和 %s 之间的日期'
+        },
+        different: {
+            'default': '请输入不同的值'
+        },
+        digits: {
+            'default': '请输入有效的数字'
+        },
+        ean: {
+            'default': '请输入有效的EAN商品编码'
+        },
+        emailAddress: {
+            'default': '请输入有效的邮件地址'
+        },
+        file: {
+            'default': '请选择有效的文件'
+        },
+        greaterThan: {
+            'default': '请输入大于等于 %s 的数值',
+            notInclusive: '请输入大于 %s 的数值'
+        },
+        grid: {
+            'default': '请输入有效的GRId编码'
+        },
+        hex: {
+            'default': '请输入有效的16进制数'
+        },
+        hexColor: {
+            'default': '请输入有效的16进制颜色值'
+        },
+        iban: {
+            'default': '请输入有效的IBAN(国际银行账户)号码',
+            countryNotSupported: '不支持 %s 国家或地区',
+            country: '请输入有效的 %s 国家或地区的IBAN(国际银行账户)号码',
+            countries: {
+                AD: '安道​​尔',
+                AE: '阿联酋',
+                AL: '阿尔巴尼亚',
+                AO: '安哥拉',
+                AT: '奥地利',
+                AZ: '阿塞拜疆',
+                BA: '波斯尼亚和黑塞哥维那',
+                BE: '比利时',
+                BF: '布基纳法索',
+                BG: '保加利亚',
+                BH: '巴林',
+                BI: '布隆迪',
+                BJ: '贝宁',
+                BR: '巴西',
+                CH: '瑞士',
+                CI: '科特迪瓦',
+                CM: '喀麦隆',
+                CR: '哥斯达黎加',
+                CV: '佛得角',
+                CY: '塞浦路斯',
+                CZ: '捷克共和国',
+                DE: '德国',
+                DK: '丹麦',
+                DO: '多米尼加共和国',
+                DZ: '阿尔及利亚',
+                EE: '爱沙尼亚',
+                ES: '西班牙',
+                FI: '芬兰',
+                FO: '法罗群岛',
+                FR: '法国',
+                GB: '英国',
+                GE: '格鲁吉亚',
+                GI: '直布罗陀',
+                GL: '格陵兰岛',
+                GR: '希腊',
+                GT: '危地马拉',
+                HR: '克罗地亚',
+                HU: '匈牙利',
+                IE: '爱尔兰',
+                IL: '以色列',
+                IR: '伊朗',
+                IS: '冰岛',
+                IT: '意大利',
+                JO: '约旦',
+                KW: '科威特',
+                KZ: '哈萨克斯坦',
+                LB: '黎巴嫩',
+                LI: '列支敦士登',
+                LT: '立陶宛',
+                LU: '卢森堡',
+                LV: '拉脱维亚',
+                MC: '摩纳哥',
+                MD: '摩尔多瓦',
+                ME: '黑山',
+                MG: '马达加斯加',
+                MK: '马其顿',
+                ML: '马里',
+                MR: '毛里塔尼亚',
+                MT: '马耳他',
+                MU: '毛里求斯',
+                MZ: '莫桑比克',
+                NL: '荷兰',
+                NO: '挪威',
+                PK: '巴基斯坦',
+                PL: '波兰',
+                PS: '巴勒斯坦',
+                PT: '葡萄牙',
+                QA: '卡塔尔',
+                RO: '罗马尼亚',
+                RS: '塞尔维亚',
+                SA: '沙特阿拉伯',
+                SE: '瑞典',
+                SI: '斯洛文尼亚',
+                SK: '斯洛伐克',
+                SM: '圣马力诺',
+                SN: '塞内加尔',
+                TN: '突尼斯',
+                TR: '土耳其',
+                VG: '英属维尔京群岛'
+            }
+        },
+        id: {
+            'default': '请输入有效的身份证件号码',
+            countryNotSupported: '不支持 %s 国家或地区',
+            country: '请输入有效的 %s 国家或地区的身份证件号码',
+            countries: {
+                BA: '波黑',
+                BG: '保加利亚',
+                BR: '巴西',
+                CH: '瑞士',
+                CL: '智利',
+                CN: '中国',
+                CZ: '捷克共和国',
+                DK: '丹麦',
+                EE: '爱沙尼亚',
+                ES: '西班牙',
+                FI: '芬兰',
+                HR: '克罗地亚',
+                IE: '爱尔兰',
+                IS: '冰岛',
+                LT: '立陶宛',
+                LV: '拉脱维亚',
+                ME: '黑山',
+                MK: '马其顿',
+                NL: '荷兰',
+                RO: '罗马尼亚',
+                RS: '塞尔维亚',
+                SE: '瑞典',
+                SI: '斯洛文尼亚',
+                SK: '斯洛伐克',
+                SM: '圣马力诺',
+                TH: '泰国',
+                ZA: '南非'
+            }
+        },
+        identical: {
+            'default': '请输入相同的值'
+        },
+        imei: {
+            'default': '请输入有效的IMEI(手机串号)'
+        },
+        imo: {
+            'default': '请输入有效的国际海事组织(IMO)号码'
+        },
+        integer: {
+            'default': '请输入有效的整数值'
+        },
+        ip: {
+            'default': '请输入有效的IP地址',
+            ipv4: '请输入有效的IPv4地址',
+            ipv6: '请输入有效的IPv6地址'
+        },
+        isbn: {
+            'default': '请输入有效的ISBN(国际标准书号)'
+        },
+        isin: {
+            'default': '请输入有效的ISIN(国际证券编码)'
+        },
+        ismn: {
+            'default': '请输入有效的ISMN(印刷音乐作品编码)'
+        },
+        issn: {
+            'default': '请输入有效的ISSN(国际标准杂志书号)'
+        },
+        lessThan: {
+            'default': '请输入小于等于 %s 的数值',
+            notInclusive: '请输入小于 %s 的数值'
+        },
+        mac: {
+            'default': '请输入有效的MAC物理地址'
+        },
+        meid: {
+            'default': '请输入有效的MEID(移动设备识别码)'
+        },
+        notEmpty: {
+            'default': '请填写必填项目'
+        },
+        numeric: {
+            'default': '请输入有效的数值,允许小数'
+        },
+        phone: {
+            'default': '请输入有效的电话号码',
+            countryNotSupported: '不支持 %s 国家或地区',
+            country: '请输入有效的 %s 国家或地区的电话号码',
+            countries: {
+                BR: '巴西',
+                CN: '中国',
+                CZ: '捷克共和国',
+                DE: '德国',
+                DK: '丹麦',
+                ES: '西班牙',
+                FR: '法国',
+                GB: '英国',
+                MA: '摩洛哥',
+                PK: '巴基斯坦',
+                RO: '罗马尼亚',
+                RU: '俄罗斯',
+                SK: '斯洛伐克',
+                TH: '泰国',
+                US: '美国',
+                VE: '委内瑞拉'
+            }
+        },
+        regexp: {
+            'default': '请输入符合正则表达式限制的值'
+        },
+        remote: {
+            'default': '请输入有效的值'
+        },
+        rtn: {
+            'default': '请输入有效的RTN号码'
+        },
+        sedol: {
+            'default': '请输入有效的SEDOL代码'
+        },
+        siren: {
+            'default': '请输入有效的SIREN号码'
+        },
+        siret: {
+            'default': '请输入有效的SIRET号码'
+        },
+        step: {
+            'default': '请输入在基础值上,增加 %s 的整数倍的数值'
+        },
+        stringCase: {
+            'default': '只能输入小写字母',
+            upper: '只能输入大写字母'
+        },
+        stringLength: {
+            'default': '请输入符合长度限制的值',
+            less: '最多只能输入 %s 个字符',
+            more: '需要输入至少 %s 个字符',
+            between: '请输入 %s 至 %s 个字符'
+        },
+        uri: {
+            'default': '请输入一个有效的URL地址'
+        },
+        uuid: {
+            'default': '请输入有效的UUID',
+            version: '请输入版本 %s 的UUID'
+        },
+        vat: {
+            'default': '请输入有效的VAT(税号)',
+            countryNotSupported: '不支持 %s 国家或地区',
+            country: '请输入有效的 %s 国家或地区的VAT(税号)',
+            countries: {
+                AT: '奥地利',
+                BE: '比利时',
+                BG: '保加利亚',
+                BR: '巴西',
+                CH: '瑞士',
+                CY: '塞浦路斯',
+                CZ: '捷克共和国',
+                DE: '德国',
+                DK: '丹麦',
+                EE: '爱沙尼亚',
+                ES: '西班牙',
+                FI: '芬兰',
+                FR: '法语',
+                GB: '英国',
+                GR: '希腊',
+                EL: '希腊',
+                HU: '匈牙利',
+                HR: '克罗地亚',
+                IE: '爱尔兰',
+                IS: '冰岛',
+                IT: '意大利',
+                LT: '立陶宛',
+                LU: '卢森堡',
+                LV: '拉脱维亚',
+                MT: '马耳他',
+                NL: '荷兰',
+                NO: '挪威',
+                PL: '波兰',
+                PT: '葡萄牙',
+                RO: '罗马尼亚',
+                RU: '俄罗斯',
+                RS: '塞尔维亚',
+                SE: '瑞典',
+                SI: '斯洛文尼亚',
+                SK: '斯洛伐克',
+                VE: '委内瑞拉',
+                ZA: '南非'
+            }
+        },
+        vin: {
+            'default': '请输入有效的VIN(美国车辆识别号码)'
+        },
+        zipCode: {
+            'default': '请输入有效的邮政编码',
+            countryNotSupported: '不支持 %s 国家或地区',
+            country: '请输入有效的 %s 国家或地区的邮政编码',
+            countries: {
+                AT: '奥地利',
+                BR: '巴西',
+                CA: '加拿大',
+                CH: '瑞士',
+                CZ: '捷克共和国',
+                DE: '德国',
+                DK: '丹麦',
+                FR: '法国',
+                GB: '英国',
+                IE: '爱尔兰',
+                IT: '意大利',
+                MA: '摩洛哥',
+                NL: '荷兰',
+                PT: '葡萄牙',
+                RO: '罗马尼亚',
+                RU: '俄罗斯',
+                SE: '瑞典',
+                SG: '新加坡',
+                SK: '斯洛伐克',
+                US: '美国'
+            }
+        }
+    });
+}(window.jQuery));
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/wangEditor/wangEditor.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/wangEditor/wangEditor.js
new file mode 100644
index 0000000..e9c8afa
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/wangEditor/wangEditor.js
@@ -0,0 +1,3967 @@
+(function (global, factory) {
+    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+        typeof define === 'function' && define.amd ? define(factory) :
+            (global.wangEditor = factory());
+}(this, (function () { 'use strict';
+
+    /*
+     poly-fill
+     */
+
+    var polyfill = function () {
+
+        // Object.assign
+        if (typeof Object.assign != 'function') {
+            Object.assign = function (target, varArgs) {
+                // .length of function is 2
+                if (target == null) {
+                    // TypeError if undefined or null
+                    throw new TypeError('Cannot convert undefined or null to object');
+                }
+
+                var to = Object(target);
+
+                for (var index = 1; index < arguments.length; index++) {
+                    var nextSource = arguments[index];
+
+                    if (nextSource != null) {
+                        // Skip over if undefined or null
+                        for (var nextKey in nextSource) {
+                            // Avoid bugs when hasOwnProperty is shadowed
+                            if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
+                                to[nextKey] = nextSource[nextKey];
+                            }
+                        }
+                    }
+                }
+                return to;
+            };
+        }
+
+        // IE 中兼容 Element.prototype.matches
+        if (!Element.prototype.matches) {
+            Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {
+                    var matches = (this.document || this.ownerDocument).querySelectorAll(s),
+                        i = matches.length;
+                    while (--i >= 0 && matches.item(i) !== this) {}
+                    return i > -1;
+                };
+        }
+    };
+
+    /*
+     DOM 操作 API
+     */
+
+// 根据 html 代码片段创建 dom 对象
+    function createElemByHTML(html) {
+        var div = void 0;
+        div = document.createElement('div');
+        div.innerHTML = html;
+        return div.children;
+    }
+
+// 是否是 DOM List
+    function isDOMList(selector) {
+        if (!selector) {
+            return false;
+        }
+        if (selector instanceof HTMLCollection || selector instanceof NodeList) {
+            return true;
+        }
+        return false;
+    }
+
+// 封装 document.querySelectorAll
+    function querySelectorAll(selector) {
+        var result = document.querySelectorAll(selector);
+        if (isDOMList(result)) {
+            return result;
+        } else {
+            return [result];
+        }
+    }
+
+// 创建构造函数
+    function DomElement(selector) {
+        if (!selector) {
+            return;
+        }
+
+        // selector 本来就是 DomElement 对象,直接返回
+        if (selector instanceof DomElement) {
+            return selector;
+        }
+
+        this.selector = selector;
+
+        // 根据 selector 得出的结果(如 DOM,DOM List)
+        var selectorResult = [];
+        if (selector.nodeType === 1) {
+            // 单个 DOM 节点
+            selectorResult = [selector];
+        } else if (isDOMList(selector)) {
+            // DOM List
+            selectorResult = selector;
+        } else if (typeof selector === 'string') {
+            // 字符串
+            selector = selector.replace('/\n/mg', '').trim();
+            if (selector.indexOf('<') === 0) {
+                // 如 <div>
+                selectorResult = createElemByHTML(selector);
+            } else {
+                // 如 #id .class
+                selectorResult = querySelectorAll(selector);
+            }
+        }
+
+        var length = selectorResult.length;
+        if (!length) {
+            // 空数组
+            return this;
+        }
+
+        // 加入 DOM 节点
+        var i = void 0;
+        for (i = 0; i < length; i++) {
+            this[i] = selectorResult[i];
+        }
+        this.length = length;
+    }
+
+// 修改原型
+    DomElement.prototype = {
+        constructor: DomElement,
+
+        // 类数组,forEach
+        forEach: function forEach(fn) {
+            var i = void 0;
+            for (i = 0; i < this.length; i++) {
+                var elem = this[i];
+                var result = fn.call(elem, elem, i);
+                if (result === false) {
+                    break;
+                }
+            }
+            return this;
+        },
+
+        // 获取第几个元素
+        get: function get(index) {
+            var length = this.length;
+            if (index >= length) {
+                index = index % length;
+            }
+            return $(this[index]);
+        },
+
+        // 第一个
+        first: function first() {
+            return this.get(0);
+        },
+
+        // 最后一个
+        last: function last() {
+            var length = this.length;
+            return this.get(length - 1);
+        },
+
+        // 绑定事件
+        on: function on(type, selector, fn) {
+            // selector 不为空,证明绑定事件要加代理
+            if (!fn) {
+                fn = selector;
+                selector = null;
+            }
+
+            // type 是否有多个
+            var types = [];
+            types = type.split(/\s+/);
+
+            return this.forEach(function (elem) {
+                types.forEach(function (type) {
+                    if (!type) {
+                        return;
+                    }
+
+                    if (!selector) {
+                        // 无代理
+                        elem.addEventListener(type, fn, false);
+                        return;
+                    }
+
+                    // 有代理
+                    elem.addEventListener(type, function (e) {
+                        var target = e.target;
+                        if (target.matches(selector)) {
+                            fn.call(target, e);
+                        }
+                    }, false);
+                });
+            });
+        },
+
+        // 取消事件绑定
+        off: function off(type, fn) {
+            return this.forEach(function (elem) {
+                elem.removeEventListener(type, fn, false);
+            });
+        },
+
+        // 获取/设置 属性
+        attr: function attr(key, val) {
+            if (val == null) {
+                // 获取值
+                return this[0].getAttribute(key);
+            } else {
+                // 设置值
+                return this.forEach(function (elem) {
+                    elem.setAttribute(key, val);
+                });
+            }
+        },
+
+        // 添加 class
+        addClass: function addClass(className) {
+            if (!className) {
+                return this;
+            }
+            return this.forEach(function (elem) {
+                var arr = void 0;
+                if (elem.className) {
+                    // 解析当前 className 转换为数组
+                    arr = elem.className.split(/\s/);
+                    arr = arr.filter(function (item) {
+                        return !!item.trim();
+                    });
+                    // 添加 class
+                    if (arr.indexOf(className) < 0) {
+                        arr.push(className);
+                    }
+                    // 修改 elem.class
+                    elem.className = arr.join(' ');
+                } else {
+                    elem.className = className;
+                }
+            });
+        },
+
+        // 删除 class
+        removeClass: function removeClass(className) {
+            if (!className) {
+                return this;
+            }
+            return this.forEach(function (elem) {
+                var arr = void 0;
+                if (elem.className) {
+                    // 解析当前 className 转换为数组
+                    arr = elem.className.split(/\s/);
+                    arr = arr.filter(function (item) {
+                        item = item.trim();
+                        // 删除 class
+                        if (!item || item === className) {
+                            return false;
+                        }
+                        return true;
+                    });
+                    // 修改 elem.class
+                    elem.className = arr.join(' ');
+                }
+            });
+        },
+
+        // 修改 css
+        css: function css(key, val) {
+            var currentStyle = key + ':' + val + ';';
+            return this.forEach(function (elem) {
+                var style = (elem.getAttribute('style') || '').trim();
+                var styleArr = void 0,
+                    resultArr = [];
+                if (style) {
+                    // 将 style 按照 ; 拆分为数组
+                    styleArr = style.split(';');
+                    styleArr.forEach(function (item) {
+                        // 对每项样式,按照 : 拆分为 key 和 value
+                        var arr = item.split(':').map(function (i) {
+                            return i.trim();
+                        });
+                        if (arr.length === 2) {
+                            resultArr.push(arr[0] + ':' + arr[1]);
+                        }
+                    });
+                    // 替换或者新增
+                    resultArr = resultArr.map(function (item) {
+                        if (item.indexOf(key) === 0) {
+                            return currentStyle;
+                        } else {
+                            return item;
+                        }
+                    });
+                    if (resultArr.indexOf(currentStyle) < 0) {
+                        resultArr.push(currentStyle);
+                    }
+                    // 结果
+                    elem.setAttribute('style', resultArr.join('; '));
+                } else {
+                    // style 无值
+                    elem.setAttribute('style', currentStyle);
+                }
+            });
+        },
+
+        // 显示
+        show: function show() {
+            return this.css('display', 'block');
+        },
+
+        // 隐藏
+        hide: function hide() {
+            return this.css('display', 'none');
+        },
+
+        // 获取子节点
+        children: function children() {
+            var elem = this[0];
+            if (!elem) {
+                return null;
+            }
+
+            return $(elem.children);
+        },
+
+        // 增加子节点
+        append: function append($children) {
+            return this.forEach(function (elem) {
+                $children.forEach(function (child) {
+                    elem.appendChild(child);
+                });
+            });
+        },
+
+        // 移除当前节点
+        remove: function remove() {
+            return this.forEach(function (elem) {
+                if (elem.remove) {
+                    elem.remove();
+                } else {
+                    var parent = elem.parentElement;
+                    parent && parent.removeChild(elem);
+                }
+            });
+        },
+
+        // 是否包含某个子节点
+        isContain: function isContain($child) {
+            var elem = this[0];
+            var child = $child[0];
+            return elem.contains(child);
+        },
+
+        // 尺寸数据
+        getSizeData: function getSizeData() {
+            var elem = this[0];
+            return elem.getBoundingClientRect(); // 可得到 bottom height left right top width 的数据
+        },
+
+        // 封装 nodeName
+        getNodeName: function getNodeName() {
+            var elem = this[0];
+            return elem.nodeName;
+        },
+
+        // 从当前元素查找
+        find: function find(selector) {
+            var elem = this[0];
+            return $(elem.querySelectorAll(selector));
+        },
+
+        // 获取当前元素的 text
+        text: function text(val) {
+            if (!val) {
+                // 获取 text
+                var elem = this[0];
+                return elem.innerHTML.replace(/<.*?>/g, function () {
+                    return '';
+                });
+            } else {
+                // 设置 text
+                return this.forEach(function (elem) {
+                    elem.innerHTML = val;
+                });
+            }
+        },
+
+        // 获取 html
+        html: function html(value) {
+            var elem = this[0];
+            if (value == null) {
+                return elem.innerHTML;
+            } else {
+                elem.innerHTML = value;
+                return this;
+            }
+        },
+
+        // 获取 value
+        val: function val() {
+            var elem = this[0];
+            return elem.value.trim();
+        },
+
+        // focus
+        focus: function focus() {
+            return this.forEach(function (elem) {
+                elem.focus();
+            });
+        },
+
+        // parent
+        parent: function parent() {
+            var elem = this[0];
+            return $(elem.parentElement);
+        },
+
+        // parentUntil 找到符合 selector 的父节点
+        parentUntil: function parentUntil(selector, _currentElem) {
+            var results = document.querySelectorAll(selector);
+            var length = results.length;
+            if (!length) {
+                // 传入的 selector 无效
+                return null;
+            }
+
+            var elem = _currentElem || this[0];
+            if (elem.nodeName === 'BODY') {
+                return null;
+            }
+
+            var parent = elem.parentElement;
+            var i = void 0;
+            for (i = 0; i < length; i++) {
+                if (parent === results[i]) {
+                    // 找到,并返回
+                    return $(parent);
+                }
+            }
+
+            // 继续查找
+            return this.parentUntil(selector, parent);
+        },
+
+        // 判断两个 elem 是否相等
+        equal: function equal($elem) {
+            if ($elem.nodeType === 1) {
+                return this[0] === $elem;
+            } else {
+                return this[0] === $elem[0];
+            }
+        },
+
+        // 将该元素插入到某个元素前面
+        insertBefore: function insertBefore(selector) {
+            var $referenceNode = $(selector);
+            var referenceNode = $referenceNode[0];
+            if (!referenceNode) {
+                return this;
+            }
+            return this.forEach(function (elem) {
+                var parent = referenceNode.parentNode;
+                parent.insertBefore(elem, referenceNode);
+            });
+        },
+
+        // 将该元素插入到某个元素后面
+        insertAfter: function insertAfter(selector) {
+            var $referenceNode = $(selector);
+            var referenceNode = $referenceNode[0];
+            if (!referenceNode) {
+                return this;
+            }
+            return this.forEach(function (elem) {
+                var parent = referenceNode.parentNode;
+                if (parent.lastChild === referenceNode) {
+                    // 最后一个元素
+                    parent.appendChild(elem);
+                } else {
+                    // 不是最后一个元素
+                    parent.insertBefore(elem, referenceNode.nextSibling);
+                }
+            });
+        }
+    };
+
+// new 一个对象
+    function $(selector) {
+        return new DomElement(selector);
+    }
+
+    /*
+     配置信息
+     */
+
+    var config = {
+
+        // 默认菜单配置
+        menus: ['head', 'bold', 'italic', 'underline', 'strikeThrough', 'foreColor', 'backColor', 'link', 'list', 'justify', 'quote', 'emoticon', 'image', 'table', 'video', 'code', 'undo', 'redo'],
+
+        // 编辑区域的 z-index
+        zIndex: 10000,
+
+        // 是否开启 debug 模式(debug 模式下错误会 throw error 形式抛出)
+        debug: false,
+
+        // onchange 事件
+        // onchange: function (html) {
+        //     // html 即变化之后的内容
+        //     console.log(html)
+        // },
+
+        // 是否显示添加网络图片的 tab
+        showLinkImg: true,
+
+        // 默认上传图片 max size: 5M
+        uploadImgMaxSize: 5 * 1024 * 1024,
+
+        // 配置一次最多上传几个图片
+        // uploadImgMaxLength: 5,
+
+        // 上传图片,是否显示 base64 格式
+        uploadImgShowBase64: false,
+
+        // 上传图片,server 地址(如果有值,则 base64 格式的配置则失效)
+        // uploadImgServer: '/upload',
+
+        // 自定义配置 filename
+        uploadFileName: '',
+
+        // 上传图片的自定义参数
+        uploadImgParams: {
+            token: 'abcdef12345'
+        },
+
+        // 上传图片的自定义header
+        uploadImgHeaders: {
+            // 'Accept': 'text/x-json'
+        },
+
+        // 配置 XHR withCredentials
+        withCredentials: false,
+
+        // 自定义上传图片超时时间 ms
+        uploadImgTimeout: 5000,
+
+        // 上传图片 hook
+        uploadImgHooks: {
+            // customInsert: function (insertLinkImg, result, editor) {
+            //     console.log('customInsert')
+            //     // 图片上传并返回结果,自定义插入图片的事件,而不是编辑器自动插入图片
+            //     const data = result.data1 || []
+            //     data.forEach(link => {
+            //         insertLinkImg(link)
+            //     })
+            // },
+            before: function before(xhr, editor, files) {
+                // 图片上传之前触发
+            },
+            success: function success(xhr, editor, result) {
+                // 图片上传并返回结果,图片插入成功之后触发
+            },
+            fail: function fail(xhr, editor, result) {
+                // 图片上传并返回结果,但图片插入错误时触发
+            },
+            error: function error(xhr, editor) {
+                // 图片上传出错时触发
+            },
+            timeout: function timeout(xhr, editor) {
+                // 图片上传超时时触发
+            }
+        }
+    };
+
+    /*
+     工具
+     */
+
+// 和 UA 相关的属性
+    var UA = {
+        _ua: navigator.userAgent,
+
+        // 是否 webkit
+        isWebkit: function isWebkit() {
+            var reg = /webkit/i;
+            return reg.test(this._ua);
+        },
+
+        // 是否 IE
+        isIE: function isIE() {
+            return 'ActiveXObject' in window;
+        }
+    };
+
+// 遍历对象
+    function objForEach(obj, fn) {
+        var key = void 0,
+            result = void 0;
+        for (key in obj) {
+            if (obj.hasOwnProperty(key)) {
+                result = fn.call(obj, key, obj[key]);
+                if (result === false) {
+                    break;
+                }
+            }
+        }
+    }
+
+// 遍历类数组
+    function arrForEach(fakeArr, fn) {
+        var i = void 0,
+            item = void 0,
+            result = void 0;
+        var length = fakeArr.length || 0;
+        for (i = 0; i < length; i++) {
+            item = fakeArr[i];
+            result = fn.call(fakeArr, item, i);
+            if (result === false) {
+                break;
+            }
+        }
+    }
+
+// 获取随机数
+    function getRandom(prefix) {
+        return prefix + Math.random().toString().slice(2);
+    }
+
+// 替换 html 特殊字符
+    function replaceHtmlSymbol(html) {
+        if (html == null) {
+            return '';
+        }
+        return html.replace(/</gm, '&lt;').replace(/>/gm, '&gt;').replace(/"/gm, '&quot;');
+    }
+
+// 返回百分比的格式
+
+    /*
+     bold-menu
+     */
+// 构造函数
+    function Bold(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-bold"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Bold.prototype = {
+        constructor: Bold,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            // 点击菜单将触发这里
+
+            var editor = this.editor;
+            var isSeleEmpty = editor.selection.isSelectionEmpty();
+
+            if (isSeleEmpty) {
+                // 选区是空的,插入并选中一个“空白”
+                editor.selection.createEmptyRange();
+            }
+
+            // 执行 bold 命令
+            editor.cmd.do('bold');
+
+            if (isSeleEmpty) {
+                // 需要将选取折叠起来
+                editor.selection.collapseRange();
+                editor.selection.restoreSelection();
+            }
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            if (editor.cmd.queryCommandState('bold')) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     droplist
+     */
+    var _emptyFn = function _emptyFn() {};
+
+// 构造函数
+    function DropList(menu, opt) {
+        var _this = this;
+
+        // droplist 所依附的菜单
+        this.menu = menu;
+        this.opt = opt;
+        // 容器
+        var $container = $('<div class="w-e-droplist"></div>');
+
+        // 标题
+        var $title = opt.$title;
+        if ($title) {
+            $title.addClass('w-e-dp-title');
+            $container.append($title);
+        }
+
+        var list = opt.list || [];
+        var type = opt.type || 'list'; // 'list' 列表形式(如“标题”菜单) / 'inline-block' 块状形式(如“颜色”菜单)
+        var onClick = opt.onClick || _emptyFn;
+
+        // 加入 DOM 并绑定事件
+        var $list = $('<ul class="' + (type === 'list' ? 'w-e-list' : 'w-e-block') + '"></ul>');
+        $container.append($list);
+        list.forEach(function (item) {
+            var $elem = item.$elem;
+            var value = item.value;
+            var $li = $('<li class="w-e-item"></li>');
+            if ($elem) {
+                $li.append($elem);
+                $list.append($li);
+                $elem.on('click', function (e) {
+                    onClick(value);
+
+                    // 隐藏
+                    _this.hideTimeoutId = setTimeout(function () {
+                        _this.hide();
+                    }, 0);
+                });
+            }
+        });
+
+        // 绑定隐藏事件
+        $container.on('mouseleave', function (e) {
+            _this.hideTimeoutId = setTimeout(function () {
+                _this.hide();
+            }, 0);
+        });
+
+        // 记录属性
+        this.$container = $container;
+
+        // 基本属性
+        this._rendered = false;
+        this._show = false;
+    }
+
+// 原型
+    DropList.prototype = {
+        constructor: DropList,
+
+        // 显示(插入DOM)
+        show: function show() {
+            if (this.hideTimeoutId) {
+                // 清除之前的定时隐藏
+                clearTimeout(this.hideTimeoutId);
+            }
+
+            var menu = this.menu;
+            var $menuELem = menu.$elem;
+            var $container = this.$container;
+            if (this._show) {
+                return;
+            }
+            if (this._rendered) {
+                // 显示
+                $container.show();
+            } else {
+                // 加入 DOM 之前先定位位置
+                var menuHeight = $menuELem.getSizeData().height || 0;
+                var width = this.opt.width || 100; // 默认为 100
+                $container.css('margin-top', menuHeight + 'px').css('width', width + 'px');
+
+                // 加入到 DOM
+                $menuELem.append($container);
+                this._rendered = true;
+            }
+
+            // 修改属性
+            this._show = true;
+        },
+
+        // 隐藏(移除DOM)
+        hide: function hide() {
+            if (this.showTimeoutId) {
+                // 清除之前的定时显示
+                clearTimeout(this.showTimeoutId);
+            }
+
+            var $container = this.$container;
+            if (!this._show) {
+                return;
+            }
+            // 隐藏并需改属性
+            $container.hide();
+            this._show = false;
+        }
+    };
+
+    /*
+     menu - header
+     */
+// 构造函数
+    function Head(editor) {
+        var _this = this;
+
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-header"><i/></div>');
+        this.type = 'droplist';
+
+        // 当前是否 active 状态
+        this._active = false;
+
+        // 初始化 droplist
+        this.droplist = new DropList(this, {
+            width: 100,
+            $title: $('<p>设置标题</p>'),
+            type: 'list', // droplist 以列表形式展示
+            list: [{ $elem: $('<h1>H1</h1>'), value: '<h1>' }, { $elem: $('<h2>H2</h2>'), value: '<h2>' }, { $elem: $('<h3>H3</h3>'), value: '<h3>' }, { $elem: $('<h4>H4</h4>'), value: '<h4>' }, { $elem: $('<h5>H5</h5>'), value: '<h5>' }, { $elem: $('<p>正文</p>'), value: '<p>' }],
+            onClick: function onClick(value) {
+                // 注意 this 是指向当前的 Head 对象
+                _this._command(value);
+            }
+        });
+    }
+
+// 原型
+    Head.prototype = {
+        constructor: Head,
+
+        // 执行命令
+        _command: function _command(value) {
+            var editor = this.editor;
+            editor.cmd.do('formatBlock', value);
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            var reg = /^h/i;
+            var cmdValue = editor.cmd.queryCommandValue('formatBlock');
+            if (reg.test(cmdValue)) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     panel
+     */
+
+    var emptyFn = function emptyFn() {};
+
+// 记录已经显示 panel 的菜单
+    var _isCreatedPanelMenus = [];
+
+// 构造函数
+    function Panel(menu, opt) {
+        this.menu = menu;
+        this.opt = opt;
+    }
+
+// 原型
+    Panel.prototype = {
+        constructor: Panel,
+
+        // 显示(插入DOM)
+        show: function show() {
+            var _this = this;
+
+            var menu = this.menu;
+            if (_isCreatedPanelMenus.indexOf(menu) >= 0) {
+                // 该菜单已经创建了 panel 不能再创建
+                return;
+            }
+
+            var editor = menu.editor;
+            var $body = $('body');
+            var $textContainerElem = editor.$textContainerElem;
+            var opt = this.opt;
+
+            // panel 的容器
+            var $container = $('<div class="w-e-panel-container"></div>');
+            var width = opt.width || 300; // 默认 300px
+            $container.css('width', width + 'px').css('margin-left', (0 - width) / 2 + 'px');
+
+            // 添加关闭按钮
+            var $closeBtn = $('<i class="w-e-icon-close w-e-panel-close"></i>');
+            $container.append($closeBtn);
+            $closeBtn.on('click', function () {
+                _this.hide();
+            });
+
+            // 准备 tabs 容器
+            var $tabTitleContainer = $('<ul class="w-e-panel-tab-title"></ul>');
+            var $tabContentContainer = $('<div class="w-e-panel-tab-content"></div>');
+            $container.append($tabTitleContainer).append($tabContentContainer);
+
+            // 设置高度
+            var height = opt.height;
+            if (height) {
+                $tabContentContainer.css('height', height + 'px').css('overflow-y', 'auto');
+            }
+
+            // tabs
+            var tabs = opt.tabs || [];
+            var tabTitleArr = [];
+            var tabContentArr = [];
+            tabs.forEach(function (tab, tabIndex) {
+                if (!tab) {
+                    return;
+                }
+                var title = tab.title || '';
+                var tpl = tab.tpl || '';
+
+                // 添加到 DOM
+                var $title = $('<li class="w-e-item">' + title + '</li>');
+                $tabTitleContainer.append($title);
+                var $content = $(tpl);
+                $tabContentContainer.append($content);
+
+                // 记录到内存
+                $title._index = tabIndex;
+                tabTitleArr.push($title);
+                tabContentArr.push($content);
+
+                // 设置 active 项
+                if (tabIndex === 0) {
+                    $title._active = true;
+                    $title.addClass('w-e-active');
+                } else {
+                    $content.hide();
+                }
+
+                // 绑定 tab 的事件
+                $title.on('click', function (e) {
+                    if ($title._active) {
+                        return;
+                    }
+                    // 隐藏所有的 tab
+                    tabTitleArr.forEach(function ($title) {
+                        $title._active = false;
+                        $title.removeClass('w-e-active');
+                    });
+                    tabContentArr.forEach(function ($content) {
+                        $content.hide();
+                    });
+
+                    // 显示当前的 tab
+                    $title._active = true;
+                    $title.addClass('w-e-active');
+                    $content.show();
+                });
+            });
+
+            // 绑定关闭事件
+            $container.on('click', function (e) {
+                // 点击时阻止冒泡
+                e.stopPropagation();
+            });
+            $body.on('click', function (e) {
+                _this.hide();
+            });
+
+            // 添加到 DOM
+            $textContainerElem.append($container);
+
+            // 绑定 opt 的事件,只有添加到 DOM 之后才能绑定成功
+            tabs.forEach(function (tab, index) {
+                if (!tab) {
+                    return;
+                }
+                var events = tab.events || [];
+                events.forEach(function (event) {
+                    var selector = event.selector;
+                    var type = event.type;
+                    var fn = event.fn || emptyFn;
+                    var $content = tabContentArr[index];
+                    $content.find(selector).on(type, function (e) {
+                        e.stopPropagation();
+                        var needToHide = fn(e);
+                        // 执行完事件之后,是否要关闭 panel
+                        if (needToHide) {
+                            _this.hide();
+                        }
+                    });
+                });
+            });
+
+            // focus 第一个 elem
+            var $inputs = $container.find('input[type=text],textarea');
+            if ($inputs.length) {
+                $inputs.get(0).focus();
+            }
+
+            // 添加到属性
+            this.$container = $container;
+
+            // 隐藏其他 panel
+            this._hideOtherPanels();
+            // 记录该 menu 已经创建了 panel
+            _isCreatedPanelMenus.push(menu);
+        },
+
+        // 隐藏(移除DOM)
+        hide: function hide() {
+            var menu = this.menu;
+            var $container = this.$container;
+            if ($container) {
+                $container.remove();
+            }
+
+            // 将该 menu 记录中移除
+            _isCreatedPanelMenus = _isCreatedPanelMenus.filter(function (item) {
+                if (item === menu) {
+                    return false;
+                } else {
+                    return true;
+                }
+            });
+        },
+
+        // 一个 panel 展示时,隐藏其他 panel
+        _hideOtherPanels: function _hideOtherPanels() {
+            if (!_isCreatedPanelMenus.length) {
+                return;
+            }
+            _isCreatedPanelMenus.forEach(function (menu) {
+                var panel = menu.panel || {};
+                if (panel.hide) {
+                    panel.hide();
+                }
+            });
+        }
+    };
+
+    /*
+     menu - link
+     */
+// 构造函数
+    function Link(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-link"><i/></div>');
+        this.type = 'panel';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Link.prototype = {
+        constructor: Link,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            var editor = this.editor;
+            var $linkelem = void 0;
+
+            if (this._active) {
+                // 当前选区在链接里面
+                $linkelem = editor.selection.getSelectionContainerElem();
+                if (!$linkelem) {
+                    return;
+                }
+                // 将该元素都包含在选取之内,以便后面整体替换
+                editor.selection.createRangeByElem($linkelem);
+                editor.selection.restoreSelection();
+                // 显示 panel
+                this._createPanel($linkelem.text(), $linkelem.attr('href'));
+            } else {
+                // 当前选区不在链接里面
+                if (editor.selection.isSelectionEmpty()) {
+                    // 选区是空的,未选中内容
+                    this._createPanel('', '');
+                } else {
+                    // 选中内容了
+                    this._createPanel(editor.selection.getSelectionText(), '');
+                }
+            }
+        },
+
+        // 创建 panel
+        _createPanel: function _createPanel(text, link) {
+            var _this = this;
+
+            // panel 中需要用到的id
+            var inputLinkId = getRandom('input-link');
+            var inputTextId = getRandom('input-text');
+            var btnOkId = getRandom('btn-ok');
+            var btnDelId = getRandom('btn-del');
+
+            // 是否显示“删除链接”
+            var delBtnDisplay = this._active ? 'inline-block' : 'none';
+
+            // 初始化并显示 panel
+            var panel = new Panel(this, {
+                width: 300,
+                // panel 中可包含多个 tab
+                tabs: [{
+                    // tab 的标题
+                    title: '链接',
+                    // 模板
+                    tpl: '<div>\n                            <input id="' + inputTextId + '" type="text" class="block" value="' + text + '" placeholder="\u94FE\u63A5\u6587\u5B57"/></td>\n                            <input id="' + inputLinkId + '" type="text" class="block" value="' + link + '" placeholder="http://..."/></td>\n                            <div class="w-e-button-container">\n                                <button id="' + btnOkId + '" class="right">\u63D2\u5165</button>\n                                <button id="' + btnDelId + '" class="gray right" style="display:' + delBtnDisplay + '">\u5220\u9664\u94FE\u63A5</button>\n                            </div>\n                        </div>',
+                    // 事件绑定
+                    events: [
+                        // 插入链接
+                        {
+                            selector: '#' + btnOkId,
+                            type: 'click',
+                            fn: function fn() {
+                                // 执行插入链接
+                                var $link = $('#' + inputLinkId);
+                                var $text = $('#' + inputTextId);
+                                var link = $link.val();
+                                var text = $text.val();
+                                _this._insertLink(text, link);
+
+                                // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                                return true;
+                            }
+                        },
+                        // 删除链接
+                        {
+                            selector: '#' + btnDelId,
+                            type: 'click',
+                            fn: function fn() {
+                                // 执行删除链接
+                                _this._delLink();
+
+                                // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                                return true;
+                            }
+                        }]
+                } // tab end
+                ] // tabs end
+            });
+
+            // 显示 panel
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        // 删除当前链接
+        _delLink: function _delLink() {
+            if (!this._active) {
+                return;
+            }
+            var editor = this.editor;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            var selectionText = editor.selection.getSelectionText();
+            editor.cmd.do('insertHTML', '<span>' + selectionText + '</span>');
+        },
+
+        // 插入链接
+        _insertLink: function _insertLink(text, link) {
+            if (!text || !link) {
+                return;
+            }
+            var editor = this.editor;
+            editor.cmd.do('insertHTML', '<a href="' + link + '" target="_blank">' + text + '</a>');
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            if ($selectionELem.getNodeName() === 'A') {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     italic-menu
+     */
+// 构造函数
+    function Italic(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-italic"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Italic.prototype = {
+        constructor: Italic,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            // 点击菜单将触发这里
+
+            var editor = this.editor;
+            var isSeleEmpty = editor.selection.isSelectionEmpty();
+
+            if (isSeleEmpty) {
+                // 选区是空的,插入并选中一个“空白”
+                editor.selection.createEmptyRange();
+            }
+
+            // 执行 italic 命令
+            editor.cmd.do('italic');
+
+            if (isSeleEmpty) {
+                // 需要将选取折叠起来
+                editor.selection.collapseRange();
+                editor.selection.restoreSelection();
+            }
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            if (editor.cmd.queryCommandState('italic')) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     redo-menu
+     */
+// 构造函数
+    function Redo(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-redo"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Redo.prototype = {
+        constructor: Redo,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            // 点击菜单将触发这里
+
+            var editor = this.editor;
+
+            // 执行 redo 命令
+            editor.cmd.do('redo');
+        }
+    };
+
+    /*
+     strikeThrough-menu
+     */
+// 构造函数
+    function StrikeThrough(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-strikethrough"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    StrikeThrough.prototype = {
+        constructor: StrikeThrough,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            // 点击菜单将触发这里
+
+            var editor = this.editor;
+            var isSeleEmpty = editor.selection.isSelectionEmpty();
+
+            if (isSeleEmpty) {
+                // 选区是空的,插入并选中一个“空白”
+                editor.selection.createEmptyRange();
+            }
+
+            // 执行 strikeThrough 命令
+            editor.cmd.do('strikeThrough');
+
+            if (isSeleEmpty) {
+                // 需要将选取折叠起来
+                editor.selection.collapseRange();
+                editor.selection.restoreSelection();
+            }
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            if (editor.cmd.queryCommandState('strikeThrough')) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     underline-menu
+     */
+// 构造函数
+    function Underline(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-underline"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Underline.prototype = {
+        constructor: Underline,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            // 点击菜单将触发这里
+
+            var editor = this.editor;
+            var isSeleEmpty = editor.selection.isSelectionEmpty();
+
+            if (isSeleEmpty) {
+                // 选区是空的,插入并选中一个“空白”
+                editor.selection.createEmptyRange();
+            }
+
+            // 执行 underline 命令
+            editor.cmd.do('underline');
+
+            if (isSeleEmpty) {
+                // 需要将选取折叠起来
+                editor.selection.collapseRange();
+                editor.selection.restoreSelection();
+            }
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            if (editor.cmd.queryCommandState('underline')) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     undo-menu
+     */
+// 构造函数
+    function Undo(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-undo"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Undo.prototype = {
+        constructor: Undo,
+
+        // 点击事件
+        onClick: function onClick(e) {
+            // 点击菜单将触发这里
+
+            var editor = this.editor;
+
+            // 执行 undo 命令
+            editor.cmd.do('undo');
+        }
+    };
+
+    /*
+     menu - list
+     */
+// 构造函数
+    function List(editor) {
+        var _this = this;
+
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-list2"><i/></div>');
+        this.type = 'droplist';
+
+        // 当前是否 active 状态
+        this._active = false;
+
+        // 初始化 droplist
+        this.droplist = new DropList(this, {
+            width: 120,
+            $title: $('<p>设置列表</p>'),
+            type: 'list', // droplist 以列表形式展示
+            list: [{ $elem: $('<span><i class="w-e-icon-list-numbered"></i> 有序列表</span>'), value: 'insertOrderedList' }, { $elem: $('<span><i class="w-e-icon-list2"></i> 无序列表</span>'), value: 'insertUnorderedList' }],
+            onClick: function onClick(value) {
+                // 注意 this 是指向当前的 List 对象
+                _this._command(value);
+            }
+        });
+    }
+
+// 原型
+    List.prototype = {
+        constructor: List,
+
+        // 执行命令
+        _command: function _command(value) {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+            editor.selection.restoreSelection();
+            if (editor.cmd.queryCommandState(value)) {
+                return;
+            }
+            editor.cmd.do(value);
+
+            // 验证列表是否被包裹在 <p> 之内
+            var $selectionElem = editor.selection.getSelectionContainerElem();
+            if ($selectionElem.getNodeName() === 'LI') {
+                $selectionElem = $selectionElem.parent();
+            }
+            if (/^ol|ul$/i.test($selectionElem.getNodeName()) === false) {
+                return;
+            }
+            if ($selectionElem.equal($textElem)) {
+                // 证明是顶级标签,没有被 <p> 包裹
+                return;
+            }
+            var $parent = $selectionElem.parent();
+            if ($parent.equal($textElem)) {
+                // $parent 是顶级标签,不能删除
+                return;
+            }
+
+            $selectionElem.insertAfter($parent);
+            $parent.remove();
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            if (editor.cmd.queryCommandState('insertUnOrderedList') || editor.cmd.queryCommandState('insertOrderedList')) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     menu - justify
+     */
+// 构造函数
+    function Justify(editor) {
+        var _this = this;
+
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-paragraph-left"><i/></div>');
+        this.type = 'droplist';
+
+        // 当前是否 active 状态
+        this._active = false;
+
+        // 初始化 droplist
+        this.droplist = new DropList(this, {
+            width: 100,
+            $title: $('<p>对齐方式</p>'),
+            type: 'list', // droplist 以列表形式展示
+            list: [{ $elem: $('<span><i class="w-e-icon-paragraph-left"></i> 靠左</span>'), value: 'justifyLeft' }, { $elem: $('<span><i class="w-e-icon-paragraph-center"></i> 居中</span>'), value: 'justifyCenter' }, { $elem: $('<span><i class="w-e-icon-paragraph-right"></i> 靠右</span>'), value: 'justifyRight' }],
+            onClick: function onClick(value) {
+                // 注意 this 是指向当前的 List 对象
+                _this._command(value);
+            }
+        });
+    }
+
+// 原型
+    Justify.prototype = {
+        constructor: Justify,
+
+        // 执行命令
+        _command: function _command(value) {
+            var editor = this.editor;
+            editor.cmd.do(value);
+        }
+    };
+
+    /*
+     menu - backcolor
+     */
+// 构造函数
+    function BackColor(editor) {
+        var _this = this;
+
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-pencil2"><i/></div>');
+        this.type = 'droplist';
+
+        // 当前是否 active 状态
+        this._active = false;
+
+        // 初始化 droplist
+        this.droplist = new DropList(this, {
+            width: 120,
+            $title: $('<p>文字颜色</p>'),
+            type: 'inline-block', // droplist 内容以 block 形式展示
+            list: [{ $elem: $('<i style="color:#000000;" class="w-e-icon-pencil2"></i>'), value: '#000000' }, { $elem: $('<i style="color:#eeece0;" class="w-e-icon-pencil2"></i>'), value: '#eeece0' }, { $elem: $('<i style="color:#1c487f;" class="w-e-icon-pencil2"></i>'), value: '#1c487f' }, { $elem: $('<i style="color:#4d80bf;" class="w-e-icon-pencil2"></i>'), value: '#4d80bf' }, { $elem: $('<i style="color:#c24f4a;" class="w-e-icon-pencil2"></i>'), value: '#c24f4a' }, { $elem: $('<i style="color:#8baa4a;" class="w-e-icon-pencil2"></i>'), value: '#8baa4a' }, { $elem: $('<i style="color:#7b5ba1;" class="w-e-icon-pencil2"></i>'), value: '#7b5ba1' }, { $elem: $('<i style="color:#46acc8;" class="w-e-icon-pencil2"></i>'), value: '#46acc8' }, { $elem: $('<i style="color:#f9963b;" class="w-e-icon-pencil2"></i>'), value: '#f9963b' }, { $elem: $('<i style="color:#ffffff;" class="w-e-icon-pencil2"></i>'), value: '#ffffff' }],
+            onClick: function onClick(value) {
+                // 注意 this 是指向当前的 BackColor 对象
+                _this._command(value);
+            }
+        });
+    }
+
+// 原型
+    BackColor.prototype = {
+        constructor: BackColor,
+
+        // 执行命令
+        _command: function _command(value) {
+            var editor = this.editor;
+            editor.cmd.do('foreColor', value);
+        }
+    };
+
+    /*
+     menu - forecolor
+     */
+// 构造函数
+    function ForeColor$1(editor) {
+        var _this = this;
+
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-paint-brush"><i/></div>');
+        this.type = 'droplist';
+
+        // 当前是否 active 状态
+        this._active = false;
+
+        // 初始化 droplist
+        this.droplist = new DropList(this, {
+            width: 120,
+            $title: $('<p>背景色</p>'),
+            type: 'inline-block', // droplist 内容以 block 形式展示
+            list: [{ $elem: $('<i style="color:#000000;" class="w-e-icon-paint-brush"></i>'), value: '#000000' }, { $elem: $('<i style="color:#eeece0;" class="w-e-icon-paint-brush"></i>'), value: '#eeece0' }, { $elem: $('<i style="color:#1c487f;" class="w-e-icon-paint-brush"></i>'), value: '#1c487f' }, { $elem: $('<i style="color:#4d80bf;" class="w-e-icon-paint-brush"></i>'), value: '#4d80bf' }, { $elem: $('<i style="color:#c24f4a;" class="w-e-icon-paint-brush"></i>'), value: '#c24f4a' }, { $elem: $('<i style="color:#8baa4a;" class="w-e-icon-paint-brush"></i>'), value: '#8baa4a' }, { $elem: $('<i style="color:#7b5ba1;" class="w-e-icon-paint-brush"></i>'), value: '#7b5ba1' }, { $elem: $('<i style="color:#46acc8;" class="w-e-icon-paint-brush"></i>'), value: '#46acc8' }, { $elem: $('<i style="color:#f9963b;" class="w-e-icon-paint-brush"></i>'), value: '#f9963b' }, { $elem: $('<i style="color:#ffffff;" class="w-e-icon-paint-brush"></i>'), value: '#ffffff' }],
+            onClick: function onClick(value) {
+                // 注意 this 是指向当前的 ForeColor 对象
+                _this._command(value);
+            }
+        });
+    }
+
+// 原型
+    ForeColor$1.prototype = {
+        constructor: ForeColor$1,
+
+        // 执行命令
+        _command: function _command(value) {
+            var editor = this.editor;
+            editor.cmd.do('backColor', value);
+        }
+    };
+
+    /*
+     menu - quote
+     */
+// 构造函数
+    function Quote(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-quotes-left"><i/>\n        </div>');
+        this.type = 'click';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Quote.prototype = {
+        constructor: Quote,
+
+        onClick: function onClick(e) {
+            var editor = this.editor;
+            editor.cmd.do('formatBlock', '<BLOCKQUOTE>');
+        },
+
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            var reg = /^BLOCKQUOTE$/i;
+            var cmdValue = editor.cmd.queryCommandValue('formatBlock');
+            if (reg.test(cmdValue)) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     menu - code
+     */
+// 构造函数
+    function Code(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-terminal"><i/>\n        </div>');
+        this.type = 'panel';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Code.prototype = {
+        constructor: Code,
+
+        onClick: function onClick(e) {
+            var editor = this.editor;
+            var $startElem = editor.selection.getSelectionStartElem();
+            var $endElem = editor.selection.getSelectionEndElem();
+            var isSeleEmpty = editor.selection.isSelectionEmpty();
+            var selectionText = editor.selection.getSelectionText();
+            var $code = void 0;
+
+            if (!$startElem.equal($endElem)) {
+                // 跨元素选择,不做处理
+                editor.selection.restoreSelection();
+                return;
+            }
+            if (!isSeleEmpty) {
+                // 选取不是空,用 <code> 包裹即可
+                $code = $('<code>' + selectionText + '</code>');
+                editor.cmd.do('insertElem', $code);
+                editor.selection.createRangeByElem($code, false);
+                editor.selection.restoreSelection();
+                return;
+            }
+
+            // 选取是空,且没有夸元素选择,则插入 <pre><code></code></prev>
+            if (this._active) {
+                // 选中状态,将编辑内容
+                this._createPanel($startElem.html());
+            } else {
+                // 未选中状态,将创建内容
+                this._createPanel();
+            }
+        },
+
+        _createPanel: function _createPanel(value) {
+            var _this = this;
+
+            // value - 要编辑的内容
+            value = value || '';
+            var type = !value ? 'new' : 'edit';
+            var textId = getRandom('texxt');
+            var btnId = getRandom('btn');
+
+            var panel = new Panel(this, {
+                width: 500,
+                // 一个 Panel 包含多个 tab
+                tabs: [{
+                    // 标题
+                    title: '插入代码',
+                    // 模板
+                    tpl: '<div>\n                        <textarea id="' + textId + '" style="height:145px;;">' + value + '</textarea>\n                        <div class="w-e-button-container">\n                            <button id="' + btnId + '" class="right">\u63D2\u5165</button>\n                        </div>\n                    <div>',
+                    // 事件绑定
+                    events: [
+                        // 插入代码
+                        {
+                            selector: '#' + btnId,
+                            type: 'click',
+                            fn: function fn() {
+                                var $text = $('#' + textId);
+                                var text = $text.val() || $text.html();
+                                text = replaceHtmlSymbol(text);
+                                if (type === 'new') {
+                                    // 新插入
+                                    _this._insertCode(text);
+                                } else {
+                                    // 编辑更新
+                                    _this._updateCode(text);
+                                }
+
+                                // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                                return true;
+                            }
+                        }]
+                } // first tab end
+                ] // tabs end
+            }); // new Panel end
+
+            // 显示 panel
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        // 插入代码
+        _insertCode: function _insertCode(value) {
+            var editor = this.editor;
+            editor.cmd.do('insertHTML', '<pre><code>' + value + '</code></pre><p><br></p>');
+        },
+
+        // 更新代码
+        _updateCode: function _updateCode(value) {
+            var editor = this.editor;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            $selectionELem.html(value);
+            editor.selection.restoreSelection();
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            var $parentElem = $selectionELem.parent();
+            if ($selectionELem.getNodeName() === 'CODE' && $parentElem.getNodeName() === 'PRE') {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     menu - emoticon
+     */
+// 构造函数
+    function Emoticon(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu">\n            <i class="w-e-icon-happy"><i/>\n        </div>');
+        this.type = 'panel';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Emoticon.prototype = {
+        constructor: Emoticon,
+
+        onClick: function onClick() {
+            this._createPanel();
+        },
+
+        _createPanel: function _createPanel() {
+            var _this = this;
+
+            // 拼接表情字符串
+            var faceHtml = '';
+            var faceStr = '😀 😃 😄 😁 😆 😅 😂  😊 😇 🙂 🙃 😉 😌 😍 😘 😗 😙 😚 😋 😜 😝 😛 🤑 🤗 🤓 😎 😏 😒 😞 😔 😟 😕 🙁  😣 😖 😫 😩 😤 😠 😡 😶 😐 😑 😯 😦 😧 😮 😲 😵 😳 😱 😨 😰 😢 😥 😭 😓 😪 😴 🙄 🤔 😬 🤐';
+            faceStr.split(/\s/).forEach(function (item) {
+                if (item) {
+                    faceHtml += '<span class="w-e-item">' + item + '</span>';
+                }
+            });
+
+            var handHtml = '';
+            var handStr = '🙌 👏 👋 👍 👎 👊 ✊ ️👌 ✋ 👐 💪 🙏 ️👆 👇 👈 👉 🖕 🖐 🤘 🖖';
+            handStr.split(/\s/).forEach(function (item) {
+                if (item) {
+                    handHtml += '<span class="w-e-item">' + item + '</span>';
+                }
+            });
+
+            var panel = new Panel(this, {
+                width: 300,
+                height: 200,
+                // 一个 Panel 包含多个 tab
+                tabs: [{
+                    // 标题
+                    title: '表情',
+                    // 模板
+                    tpl: '<div class="w-e-emoticon-container">' + faceHtml + '</div>',
+                    // 事件绑定
+                    events: [{
+                        selector: 'span.w-e-item',
+                        type: 'click',
+                        fn: function fn(e) {
+                            var target = e.target;
+                            _this._insert(target.innerHTML);
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }]
+                }, // first tab end
+                    {
+                        // 标题
+                        title: '手势',
+                        // 模板
+                        tpl: '<div class="w-e-emoticon-container">' + handHtml + '</div>',
+                        // 事件绑定
+                        events: [{
+                            selector: 'span.w-e-item',
+                            type: 'click',
+                            fn: function fn(e) {
+                                var target = e.target;
+                                _this._insert(target.innerHTML);
+                                // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                                return true;
+                            }
+                        }]
+                    } // second tab end
+                ] // tabs end
+            });
+
+            // 显示 panel
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        // 插入表情
+        _insert: function _insert(emoji) {
+            var editor = this.editor;
+            editor.cmd.do('insertHTML', '<span>' + emoji + '</span>');
+        }
+    };
+
+    /*
+     menu - table
+     */
+// 构造函数
+    function Table(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-table2"><i/></div>');
+        this.type = 'panel';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Table.prototype = {
+        constructor: Table,
+
+        onClick: function onClick() {
+            if (this._active) {
+                // 编辑现有表格
+                this._createEditPanel();
+            } else {
+                // 插入新表格
+                this._createInsertPanel();
+            }
+        },
+
+        // 创建插入新表格的 panel
+        _createInsertPanel: function _createInsertPanel() {
+            var _this = this;
+
+            // 用到的 id
+            var btnInsertId = getRandom('btn');
+            var textRowNum = getRandom('row');
+            var textColNum = getRandom('col');
+
+            var panel = new Panel(this, {
+                width: 250,
+                // panel 包含多个 tab
+                tabs: [{
+                    // 标题
+                    title: '插入表格',
+                    // 模板
+                    tpl: '<div>\n                        <p style="text-align:left; padding:5px 0;">\n                            \u521B\u5EFA\n                            <input id="' + textRowNum + '" type="text" value="5" style="width:40px;text-align:center;"/>\n                            \u884C\n                            <input id="' + textColNum + '" type="text" value="5" style="width:40px;text-align:center;"/>\n                            \u5217\u7684\u8868\u683C\n                        </p>\n                        <div class="w-e-button-container">\n                            <button id="' + btnInsertId + '" class="right">\u63D2\u5165</button>\n                        </div>\n                    </div>',
+                    // 事件绑定
+                    events: [{
+                        // 点击按钮,插入表格
+                        selector: '#' + btnInsertId,
+                        type: 'click',
+                        fn: function fn() {
+                            var rowNum = parseInt($('#' + textRowNum).val());
+                            var colNum = parseInt($('#' + textColNum).val());
+
+                            if (rowNum && colNum && rowNum > 0 && colNum > 0) {
+                                // form 数据有效
+                                _this._insert(rowNum, colNum);
+                            }
+
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }]
+                } // first tab end
+                ] // tabs end
+            }); // panel end
+
+            // 展示 panel
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        // 插入表格
+        _insert: function _insert(rowNum, colNum) {
+            // 拼接 table 模板
+            var r = void 0,
+                c = void 0;
+            var html = '<table border="0" width="100%" cellpadding="0" cellspacing="0">';
+            for (r = 0; r < rowNum; r++) {
+                html += '<tr>';
+                if (r === 0) {
+                    for (c = 0; c < colNum; c++) {
+                        html += '<th>&nbsp;</th>';
+                    }
+                } else {
+                    for (c = 0; c < colNum; c++) {
+                        html += '<td>&nbsp;</td>';
+                    }
+                }
+                html += '</tr>';
+            }
+            html += '</table><p><br></p>';
+
+            // 执行命令
+            var editor = this.editor;
+            editor.cmd.do('insertHTML', html);
+
+            // 防止 firefox 下出现 resize 的控制点
+            editor.cmd.do('enableObjectResizing', false);
+            editor.cmd.do('enableInlineTableEditing', false);
+        },
+
+        // 创建编辑表格的 panel
+        _createEditPanel: function _createEditPanel() {
+            var _this2 = this;
+
+            // 可用的 id
+            var addRowBtnId = getRandom('add-row');
+            var addColBtnId = getRandom('add-col');
+            var delRowBtnId = getRandom('del-row');
+            var delColBtnId = getRandom('del-col');
+            var delTableBtnId = getRandom('del-table');
+
+            // 创建 panel 对象
+            var panel = new Panel(this, {
+                width: 320,
+                // panel 包含多个 tab
+                tabs: [{
+                    // 标题
+                    title: '编辑表格',
+                    // 模板
+                    tpl: '<div>\n                        <div class="w-e-button-container" style="border-bottom:1px solid #f1f1f1;padding-bottom:5px;margin-bottom:5px;">\n                            <button id="' + addRowBtnId + '" class="left">\u589E\u52A0\u884C</button>\n                            <button id="' + delRowBtnId + '" class="red left">\u5220\u9664\u884C</button>\n                            <button id="' + addColBtnId + '" class="left">\u589E\u52A0\u5217</button>\n                            <button id="' + delColBtnId + '" class="red left">\u5220\u9664\u5217</button>\n                        </div>\n                        <div class="w-e-button-container">\n                            <button id="' + delTableBtnId + '" class="gray left">\u5220\u9664\u8868\u683C</button>\n                        </dv>\n                    </div>',
+                    // 事件绑定
+                    events: [{
+                        // 增加行
+                        selector: '#' + addRowBtnId,
+                        type: 'click',
+                        fn: function fn() {
+                            _this2._addRow();
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }, {
+                        // 增加列
+                        selector: '#' + addColBtnId,
+                        type: 'click',
+                        fn: function fn() {
+                            _this2._addCol();
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }, {
+                        // 删除行
+                        selector: '#' + delRowBtnId,
+                        type: 'click',
+                        fn: function fn() {
+                            _this2._delRow();
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }, {
+                        // 删除列
+                        selector: '#' + delColBtnId,
+                        type: 'click',
+                        fn: function fn() {
+                            _this2._delCol();
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }, {
+                        // 删除表格
+                        selector: '#' + delTableBtnId,
+                        type: 'click',
+                        fn: function fn() {
+                            _this2._delTable();
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }]
+                }]
+            });
+            // 显示 panel
+            panel.show();
+        },
+
+        // 获取选中的单元格的位置信息
+        _getLocationData: function _getLocationData() {
+            var result = {};
+            var editor = this.editor;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            var nodeName = $selectionELem.getNodeName();
+            if (nodeName !== 'TD' && nodeName !== 'TH') {
+                return;
+            }
+
+            // 获取 td index
+            var $tr = $selectionELem.parent();
+            var $tds = $tr.children();
+            var tdLength = $tds.length;
+            $tds.forEach(function (td, index) {
+                if (td === $selectionELem[0]) {
+                    // 记录并跳出循环
+                    result.td = {
+                        index: index,
+                        elem: td,
+                        length: tdLength
+                    };
+                    return false;
+                }
+            });
+
+            // 获取 tr index
+            var $tbody = $tr.parent();
+            var $trs = $tbody.children();
+            var trLength = $trs.length;
+            $trs.forEach(function (tr, index) {
+                if (tr === $tr[0]) {
+                    // 记录并跳出循环
+                    result.tr = {
+                        index: index,
+                        elem: tr,
+                        length: trLength
+                    };
+                    return false;
+                }
+            });
+
+            // 返回结果
+            return result;
+        },
+
+        // 增加行
+        _addRow: function _addRow() {
+            // 获取当前单元格的位置信息
+            var locationData = this._getLocationData();
+            if (!locationData) {
+                return;
+            }
+            var trData = locationData.tr;
+            var $currentTr = $(trData.elem);
+            var tdData = locationData.td;
+            var tdLength = tdData.length;
+
+            // 拼接即将插入的字符串
+            var newTr = document.createElement('tr');
+            var tpl = '',
+                i = void 0;
+            for (i = 0; i < tdLength; i++) {
+                tpl += '<td>&nbsp;</td>';
+            }
+            newTr.innerHTML = tpl;
+            // 插入
+            $(newTr).insertAfter($currentTr);
+        },
+
+        // 增加列
+        _addCol: function _addCol() {
+            // 获取当前单元格的位置信息
+            var locationData = this._getLocationData();
+            if (!locationData) {
+                return;
+            }
+            var trData = locationData.tr;
+            var tdData = locationData.td;
+            var tdIndex = tdData.index;
+            var $currentTr = $(trData.elem);
+            var $trParent = $currentTr.parent();
+            var $trs = $trParent.children();
+
+            // 遍历所有行
+            $trs.forEach(function (tr) {
+                var $tr = $(tr);
+                var $tds = $tr.children();
+                var $currentTd = $tds.get(tdIndex);
+                var name = $currentTd.getNodeName().toLowerCase();
+
+                // new 一个 td,并插入
+                var newTd = document.createElement(name);
+                $(newTd).insertAfter($currentTd);
+            });
+        },
+
+        // 删除行
+        _delRow: function _delRow() {
+            // 获取当前单元格的位置信息
+            var locationData = this._getLocationData();
+            if (!locationData) {
+                return;
+            }
+            var trData = locationData.tr;
+            var $currentTr = $(trData.elem);
+            $currentTr.remove();
+        },
+
+        // 删除列
+        _delCol: function _delCol() {
+            // 获取当前单元格的位置信息
+            var locationData = this._getLocationData();
+            if (!locationData) {
+                return;
+            }
+            var trData = locationData.tr;
+            var tdData = locationData.td;
+            var tdIndex = tdData.index;
+            var $currentTr = $(trData.elem);
+            var $trParent = $currentTr.parent();
+            var $trs = $trParent.children();
+
+            // 遍历所有行
+            $trs.forEach(function (tr) {
+                var $tr = $(tr);
+                var $tds = $tr.children();
+                var $currentTd = $tds.get(tdIndex);
+                // 删除
+                $currentTd.remove();
+            });
+        },
+
+        // 删除表格
+        _delTable: function _delTable() {
+            var editor = this.editor;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            var $table = $selectionELem.parentUntil('table');
+            if (!$table) {
+                return;
+            }
+            $table.remove();
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            var $selectionELem = editor.selection.getSelectionContainerElem();
+            if (!$selectionELem) {
+                return;
+            }
+            var nodeName = $selectionELem.getNodeName();
+            if (nodeName === 'TD' || nodeName === 'TH') {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     menu - video
+     */
+// 构造函数
+    function Video(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-play"><i/></div>');
+        this.type = 'panel';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Video.prototype = {
+        constructor: Video,
+
+        onClick: function onClick() {
+            this._createPanel();
+        },
+
+        _createPanel: function _createPanel() {
+            var _this = this;
+
+            // 创建 id
+            var textValId = getRandom('text-val');
+            var btnId = getRandom('btn');
+
+            // 创建 panel
+            var panel = new Panel(this, {
+                width: 350,
+                // 一个 panel 多个 tab
+                tabs: [{
+                    // 标题
+                    title: '插入视频',
+                    // 模板
+                    tpl: '<div>\n                        <input id="' + textValId + '" type="text" class="block" placeholder="\u683C\u5F0F\u5982\uFF1A<iframe src=... ></iframe>"/>\n                        <div class="w-e-button-container">\n                            <button id="' + btnId + '" class="right">\u63D2\u5165</button>\n                        </div>\n                    </div>',
+                    // 事件绑定
+                    events: [{
+                        selector: '#' + btnId,
+                        type: 'click',
+                        fn: function fn() {
+                            var $text = $('#' + textValId);
+                            var val = $text.val().trim();
+
+                            // 测试用视频地址
+                            // <iframe height=498 width=510 src='http://player.youku.com/embed/XMjcwMzc3MzM3Mg==' frameborder=0 'allowfullscreen'></iframe>
+
+                            if (val) {
+                                // 插入视频
+                                _this._insert(val);
+                            }
+
+                            // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                            return true;
+                        }
+                    }]
+                } // first tab end
+                ] // tabs end
+            }); // panel end
+
+            // 显示 panel
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        // 插入视频
+        _insert: function _insert(val) {
+            var editor = this.editor;
+            editor.cmd.do('insertHTML', val + '<p><br></p>');
+        }
+    };
+
+    /*
+     menu - img
+     */
+// 构造函数
+    function Image(editor) {
+        this.editor = editor;
+        this.$elem = $('<div class="w-e-menu"><i class="w-e-icon-image"><i/></div>');
+        this.type = 'panel';
+
+        // 当前是否 active 状态
+        this._active = false;
+    }
+
+// 原型
+    Image.prototype = {
+        constructor: Image,
+
+        onClick: function onClick() {
+            if (this._active) {
+                this._createEditPanel();
+            } else {
+                this._createInsertPanel();
+            }
+        },
+
+        _createEditPanel: function _createEditPanel() {
+            var editor = this.editor;
+
+            // id
+            var width30 = getRandom('width-30');
+            var width50 = getRandom('width-50');
+            var width100 = getRandom('width-100');
+            var delBtn = getRandom('del-btn');
+
+            // tab 配置
+            var tabsConfig = [{
+                title: '编辑图片',
+                tpl: '<div>\n                    <div class="w-e-button-container" style="border-bottom:1px solid #f1f1f1;padding-bottom:5px;margin-bottom:5px;">\n                        <span style="float:left;font-size:14px;margin:4px 5px 0 5px;color:#333;">\u6700\u5927\u5BBD\u5EA6\uFF1A</span>\n                        <button id="' + width30 + '" class="left">30%</button>\n                        <button id="' + width50 + '" class="left">50%</button>\n                        <button id="' + width100 + '" class="left">100%</button>\n                    </div>\n                    <div class="w-e-button-container">\n                        <button id="' + delBtn + '" class="gray left">\u5220\u9664\u56FE\u7247</button>\n                    </dv>\n                </div>',
+                events: [{
+                    selector: '#' + width30,
+                    type: 'click',
+                    fn: function fn() {
+                        var $img = editor._selectedImg;
+                        if ($img) {
+                            $img.css('max-width', '30%');
+                        }
+                        // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                        return true;
+                    }
+                }, {
+                    selector: '#' + width50,
+                    type: 'click',
+                    fn: function fn() {
+                        var $img = editor._selectedImg;
+                        if ($img) {
+                            $img.css('max-width', '50%');
+                        }
+                        // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                        return true;
+                    }
+                }, {
+                    selector: '#' + width100,
+                    type: 'click',
+                    fn: function fn() {
+                        var $img = editor._selectedImg;
+                        if ($img) {
+                            $img.css('max-width', '100%');
+                        }
+                        // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                        return true;
+                    }
+                }, {
+                    selector: '#' + delBtn,
+                    type: 'click',
+                    fn: function fn() {
+                        var $img = editor._selectedImg;
+                        if ($img) {
+                            $img.remove();
+                        }
+                        // 返回 true,表示该事件执行完之后,panel 要关闭。否则 panel 不会关闭
+                        return true;
+                    }
+                }]
+            }];
+
+            // 创建 panel 并显示
+            var panel = new Panel(this, {
+                width: 300,
+                tabs: tabsConfig
+            });
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        _createInsertPanel: function _createInsertPanel() {
+            var editor = this.editor;
+            var uploadImg = editor.uploadImg;
+            var config = editor.config;
+
+            // id
+            var upTriggerId = getRandom('up-trigger');
+            var upFileId = getRandom('up-file');
+            var linkUrlId = getRandom('link-url');
+            var linkBtnId = getRandom('link-btn');
+
+            // tabs 的配置
+            var tabsConfig = [{
+                title: '上传图片',
+                tpl: '<div class="w-e-up-img-container">\n                    <div id="' + upTriggerId + '" class="w-e-up-btn">\n                        <i class="w-e-icon-upload2"></i>\n                    </div>\n                    <div style="display:none;">\n                        <input id="' + upFileId + '" type="file" multiple="multiple" accept="image/jpg,image/jpeg,image/png,image/gif,image/bmp"/>\n                    </div>\n                </div>',
+                events: [{
+                    // 触发选择图片
+                    selector: '#' + upTriggerId,
+                    type: 'click',
+                    fn: function fn() {
+                        var $file = $('#' + upFileId);
+                        var fileElem = $file[0];
+                        if (fileElem) {
+                            fileElem.click();
+                        } else {
+                            // 返回 true 可关闭 panel
+                            return true;
+                        }
+                    }
+                }, {
+                    // 选择图片完毕
+                    selector: '#' + upFileId,
+                    type: 'change',
+                    fn: function fn() {
+                        var $file = $('#' + upFileId);
+                        var fileElem = $file[0];
+                        if (!fileElem) {
+                            // 返回 true 可关闭 panel
+                            return true;
+                        }
+
+                        // 获取选中的 file 对象列表
+                        var fileList = fileElem.files;
+                        if (fileList.length) {
+                            uploadImg.uploadImg(fileList);
+                        }
+
+                        // 返回 true 可关闭 panel
+                        return true;
+                    }
+                }]
+            }, // first tab end
+                {
+                    title: '网络图片',
+                    tpl: '<div>\n                    <input id="' + linkUrlId + '" type="text" class="block" placeholder="\u56FE\u7247\u94FE\u63A5"/></td>\n                    <div class="w-e-button-container">\n                        <button id="' + linkBtnId + '" class="right">\u63D2\u5165</button>\n                    </div>\n                </div>',
+                    events: [{
+                        selector: '#' + linkBtnId,
+                        type: 'click',
+                        fn: function fn() {
+                            var $linkUrl = $('#' + linkUrlId);
+                            var url = $linkUrl.val().trim();
+
+                            if (url) {
+                                uploadImg.insertLinkImg(url);
+                            }
+
+                            // 返回 true 表示函数执行结束之后关闭 panel
+                            return true;
+                        }
+                    }]
+                } // second tab end
+            ]; // tabs end
+
+            // 判断 tabs 的显示
+            var tabsConfigResult = [];
+            if ((config.uploadImgShowBase64 || config.uploadImgServer) && window.FileReader) {
+                // 显示“上传图片”
+                tabsConfigResult.push(tabsConfig[0]);
+            }
+            if (config.showLinkImg) {
+                // 显示“网络图片”
+                tabsConfigResult.push(tabsConfig[1]);
+            }
+
+            // 创建 panel 并显示
+            var panel = new Panel(this, {
+                width: 300,
+                tabs: tabsConfigResult
+            });
+            panel.show();
+
+            // 记录属性
+            this.panel = panel;
+        },
+
+        // 试图改变 active 状态
+        tryChangeActive: function tryChangeActive(e) {
+            var editor = this.editor;
+            var $elem = this.$elem;
+            if (editor._selectedImg) {
+                this._active = true;
+                $elem.addClass('w-e-active');
+            } else {
+                this._active = false;
+                $elem.removeClass('w-e-active');
+            }
+        }
+    };
+
+    /*
+     所有菜单的汇总
+     */
+
+// 存储菜单的构造函数
+    var MenuConstructors = {};
+
+    MenuConstructors.bold = Bold;
+
+    MenuConstructors.head = Head;
+
+    MenuConstructors.link = Link;
+
+    MenuConstructors.italic = Italic;
+
+    MenuConstructors.redo = Redo;
+
+    MenuConstructors.strikeThrough = StrikeThrough;
+
+    MenuConstructors.underline = Underline;
+
+    MenuConstructors.undo = Undo;
+
+    MenuConstructors.list = List;
+
+    MenuConstructors.justify = Justify;
+
+    MenuConstructors.foreColor = BackColor;
+
+    MenuConstructors.backColor = ForeColor$1;
+
+    MenuConstructors.quote = Quote;
+
+    MenuConstructors.code = Code;
+
+    MenuConstructors.emoticon = Emoticon;
+
+    MenuConstructors.table = Table;
+
+    MenuConstructors.video = Video;
+
+    MenuConstructors.image = Image;
+
+    /*
+     菜单集合
+     */
+// 构造函数
+    function Menus(editor) {
+        this.editor = editor;
+        this.menus = {};
+    }
+
+// 修改原型
+    Menus.prototype = {
+        constructor: Menus,
+
+        // 初始化菜单
+        init: function init() {
+            var _this = this;
+
+            var editor = this.editor;
+            var config = editor.config || {};
+            var configMenus = config.menus || []; // 获取配置中的菜单
+
+            // 根据配置信息,创建菜单
+            configMenus.forEach(function (menuKey) {
+                var MenuConstructor = MenuConstructors[menuKey];
+                if (MenuConstructor && typeof MenuConstructor === 'function') {
+                    // 创建单个菜单
+                    _this.menus[menuKey] = new MenuConstructor(editor);
+                }
+            });
+
+            // 添加到菜单栏
+            this._addToToolbar();
+
+            // 绑定事件
+            this._bindEvent();
+        },
+
+        // 添加到菜单栏
+        _addToToolbar: function _addToToolbar() {
+            var editor = this.editor;
+            var $toolbarElem = editor.$toolbarElem;
+            var menus = this.menus;
+            objForEach(menus, function (key, menu) {
+                var $elem = menu.$elem;
+                if ($elem) {
+                    $toolbarElem.append($elem);
+                }
+            });
+        },
+
+        // 绑定菜单 click mouseenter 事件
+        _bindEvent: function _bindEvent() {
+            var menus = this.menus;
+            var editor = this.editor;
+            objForEach(menus, function (key, menu) {
+                var type = menu.type;
+                if (!type) {
+                    return;
+                }
+                var $elem = menu.$elem;
+                var droplist = menu.droplist;
+                var panel = menu.panel;
+
+                // 点击类型,例如 bold
+                if (type === 'click' && menu.onClick) {
+                    $elem.on('click', function (e) {
+                        if (editor.selection.getRange() == null) {
+                            return;
+                        }
+                        menu.onClick(e);
+                    });
+                }
+
+                // 下拉框,例如 head
+                if (type === 'droplist' && droplist) {
+                    $elem.on('mouseenter', function (e) {
+                        if (editor.selection.getRange() == null) {
+                            return;
+                        }
+                        // 显示
+                        droplist.showTimeoutId = setTimeout(function () {
+                            droplist.show();
+                        }, 200);
+                    }).on('mouseleave', function (e) {
+                        // 隐藏
+                        droplist.hideTimeoutId = setTimeout(function () {
+                            droplist.hide();
+                        }, 0);
+                    });
+                }
+
+                // 弹框类型,例如 link
+                if (type === 'panel' && menu.onClick) {
+                    $elem.on('click', function (e) {
+                        e.stopPropagation();
+                        if (editor.selection.getRange() == null) {
+                            return;
+                        }
+                        // 在自定义事件中显示 panel
+                        menu.onClick(e);
+                    });
+                }
+            });
+        },
+
+        // 尝试修改菜单状态
+        changeActive: function changeActive() {
+            var menus = this.menus;
+            objForEach(menus, function (key, menu) {
+                if (menu.tryChangeActive) {
+                    setTimeout(function () {
+                        menu.tryChangeActive();
+                    }, 100);
+                }
+            });
+        }
+    };
+
+    /*
+     粘贴信息的处理
+     */
+
+// 获取粘贴的纯文本
+    function getPasteText(e) {
+        var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData;
+        var pasteText = void 0;
+        if (clipboardData == null) {
+            pasteText = window.clipboardData && window.clipboardData.getData('text');
+        } else {
+            pasteText = clipboardData.getData('text/plain');
+        }
+
+        return replaceHtmlSymbol(pasteText);
+    }
+
+// 获取粘贴的html
+    function getPasteHtml(e) {
+        var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData;
+        var pasteText = void 0,
+            pasteHtml = void 0;
+        if (clipboardData == null) {
+            pasteText = window.clipboardData && window.clipboardData.getData('text');
+        } else {
+            pasteText = clipboardData.getData('text/plain');
+            pasteHtml = clipboardData.getData('text/html');
+        }
+        if (!pasteHtml && pasteText) {
+            pasteHtml = '<p>' + replaceHtmlSymbol(pasteText) + '</p>';
+        }
+        if (!pasteHtml) {
+            return;
+        }
+
+        // 过滤word中状态过来的无用字符
+        var docSplitHtml = pasteHtml.split('</html>');
+        if (docSplitHtml.length === 2) {
+            pasteHtml = docSplitHtml[0];
+        }
+
+        // 过滤无用标签
+        pasteHtml = pasteHtml.replace(/<(meta|script|link).+?>/igm, '');
+
+        // 过滤样式
+        pasteHtml = pasteHtml.replace(/\s?(class|style)=('|").+?('|")/igm, '');
+
+        return pasteHtml;
+    }
+
+// 获取粘贴的图片文件
+    function getPasteImgs(e) {
+        var result = [];
+        var txt = getPasteText(e);
+        if (txt) {
+            // 有文字,就忽略图片
+            return result;
+        }
+
+        var clipboardData = e.clipboardData || e.originalEvent && e.originalEvent.clipboardData || {};
+        var items = clipboardData.items;
+        if (!items) {
+            return result;
+        }
+
+        objForEach(items, function (key, value) {
+            var type = value.type;
+            if (/image/i.test(type)) {
+                result.push(value.getAsFile());
+            }
+        });
+
+        return result;
+    }
+
+    /*
+     编辑区域
+     */
+
+// 构造函数
+    function Text(editor) {
+        this.editor = editor;
+    }
+
+// 修改原型
+    Text.prototype = {
+        constructor: Text,
+
+        // 初始化
+        init: function init() {
+            // 绑定事件
+            this._bindEvent();
+        },
+
+        // 清空内容
+        clear: function clear() {
+            this.html('<p><br></p>');
+        },
+
+        // 获取 设置 html
+        html: function html(val) {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+            if (val == null) {
+                return $textElem.html();
+            } else {
+                $textElem.html(val);
+
+                // 初始化选取,将光标定位到内容尾部
+                editor.initSelection();
+            }
+        },
+
+        // 获取 设置 text
+        text: function text(val) {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+            if (val == null) {
+                return $textElem.text();
+            } else {
+                $textElem.text('<p>' + val + '</p>');
+
+                // 初始化选取,将光标定位到内容尾部
+                editor.initSelection();
+            }
+        },
+
+        // 追加内容
+        append: function append(html) {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+            $textElem.append($(html));
+
+            // 初始化选取,将光标定位到内容尾部
+            editor.initSelection();
+        },
+
+        // 绑定事件
+        _bindEvent: function _bindEvent() {
+            // 实时保存选取
+            this._saveRangeRealTime();
+
+            // 按回车建时的特殊处理
+            this._enterKeyHandle();
+
+            // 清空时保留 <p><br></p>
+            this._clearHandle();
+
+            // 粘贴事件(粘贴文字,粘贴图片)
+            this._pasteHandle();
+
+            // tab 特殊处理
+            this._tabHandle();
+
+            // img 点击
+            this._imgHandle();
+        },
+
+        // 实时保存选取
+        _saveRangeRealTime: function _saveRangeRealTime() {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+
+            // 保存当前的选区
+            function saveRange(e) {
+                // 随时保存选区
+                editor.selection.saveRange();
+                // 更新按钮 ative 状态
+                editor.menus.changeActive();
+            }
+            // 按键后保存
+            $textElem.on('keyup', saveRange);
+            $textElem.on('mousedown', function (e) {
+                // mousedown 状态下,鼠标滑动到编辑区域外面,也需要保存选区
+                $textElem.on('mouseleave', saveRange);
+            });
+            $textElem.on('mouseup', function (e) {
+                saveRange();
+                // 在编辑器区域之内完成点击,取消鼠标滑动到编辑区外面的事件
+                $textElem.off('mouseleave', saveRange);
+            });
+        },
+
+        // 按回车键时的特殊处理
+        _enterKeyHandle: function _enterKeyHandle() {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+
+            // 将回车之后生成的非 <p> 的顶级标签,改为 <p>
+            function pHandle(e) {
+                var $selectionElem = editor.selection.getSelectionContainerElem();
+                var $parentElem = $selectionElem.parent();
+                if (!$parentElem.equal($textElem)) {
+                    // 不是顶级标签
+                    return;
+                }
+                var nodeName = $selectionElem.getNodeName();
+                if (nodeName === 'P') {
+                    // 当前的标签是 P ,不用做处理
+                    return;
+                }
+
+                if ($selectionElem.text()) {
+                    // 有内容,不做处理
+                    return;
+                }
+
+                // 插入 <p> ,并将选取定位到 <p>,删除当前标签
+                var $p = $('<p><br></p>');
+                $p.insertBefore($selectionElem);
+                editor.selection.createRangeByElem($p, true);
+                editor.selection.restoreSelection();
+                $selectionElem.remove();
+            }
+
+            $textElem.on('keyup', function (e) {
+                if (e.keyCode !== 13) {
+                    // 不是回车键
+                    return;
+                }
+                // 将回车之后生成的非 <p> 的顶级标签,改为 <p>
+                pHandle(e);
+            });
+
+            // <pre><code></code></pre> 回车时 特殊处理
+            function codeHandle(e) {
+                var $selectionElem = editor.selection.getSelectionContainerElem();
+                if (!$selectionElem) {
+                    return;
+                }
+                var $parentElem = $selectionElem.parent();
+                var selectionNodeName = $selectionElem.getNodeName();
+                var parentNodeName = $parentElem.getNodeName();
+
+                if (selectionNodeName !== 'CODE' || parentNodeName !== 'PRE') {
+                    // 不符合要求 忽略
+                    return;
+                }
+
+                if (!editor.cmd.queryCommandSupported('insertHTML')) {
+                    // 必须原生支持 insertHTML 命令
+                    return;
+                }
+
+                var _startOffset = editor.selection.getRange().startOffset;
+                editor.cmd.do('insertHTML', '\n');
+                editor.selection.saveRange();
+                if (editor.selection.getRange().startOffset === _startOffset) {
+                    // 没起作用,再来一遍
+                    editor.cmd.do('insertHTML', '\n');
+                }
+
+                // 阻止默认行为
+                e.preventDefault();
+            }
+
+            $textElem.on('keydown', function (e) {
+                if (e.keyCode !== 13) {
+                    // 不是回车键
+                    return;
+                }
+                // <pre><code></code></pre> 回车时 特殊处理
+                codeHandle(e);
+            });
+        },
+
+        // 清空时保留 <p><br></p>
+        _clearHandle: function _clearHandle() {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+
+            $textElem.on('keydown', function (e) {
+                if (e.keyCode !== 8) {
+                    return;
+                }
+                var txtHtml = $textElem.html().toLowerCase().trim();
+                if (txtHtml === '<p><br></p>') {
+                    // 最后剩下一个空行,就不再删除了
+                    e.preventDefault();
+                    return;
+                }
+            });
+
+            $textElem.on('keyup', function (e) {
+                if (e.keyCode !== 8) {
+                    return;
+                }
+                var $p = void 0;
+                var txtHtml = $textElem.html().toLowerCase().trim();
+
+                // firefox 时用 txtHtml === '<br>' 判断,其他用 !txtHtml 判断
+                if (!txtHtml || txtHtml === '<br>') {
+                    // 内容空了
+                    $p = $('<p><br/></p>');
+                    $textElem.html(''); // 一定要先清空,否则在 firefox 下有问题
+                    $textElem.append($p);
+                    editor.selection.createRangeByElem($p, false, true);
+                    editor.selection.restoreSelection();
+                }
+            });
+        },
+
+        // 粘贴事件(粘贴文字 粘贴图片)
+        _pasteHandle: function _pasteHandle() {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+
+            // 粘贴文字
+            $textElem.on('paste', function (e) {
+                if (UA.isIE()) {
+                    // IE 下放弃下面的判断
+                    return;
+                }
+
+                // 阻止默认行为,使用 execCommand 的粘贴命令
+                e.preventDefault();
+
+                // 获取粘贴的文字
+                var pasteHtml = getPasteHtml(e);
+                var pasteText = getPasteText(e);
+                pasteText = pasteText.replace(/\n/gm, '<br>');
+
+                var $selectionElem = editor.selection.getSelectionContainerElem();
+                if (!$selectionElem) {
+                    return;
+                }
+                var nodeName = $selectionElem.getNodeName();
+
+                // code 中粘贴忽略
+                if (nodeName === 'CODE' || nodeName === 'PRE') {
+                    return;
+                }
+
+                // 表格中忽略,可能会出现异常问题
+                if (nodeName === 'TD' || nodeName === 'TH') {
+                    return;
+                }
+
+                if (nodeName === 'DIV' || $textElem.html() === '<p><br></p>') {
+                    // 是 div,可粘贴过滤样式的文字和链接
+                    if (!pasteHtml) {
+                        return;
+                    }
+                    try {
+                        // firefox 中,获取的 pasteHtml 可能是没有 <ul> 包裹的 <li>
+                        // 因此执行 insertHTML 会报错
+                        editor.cmd.do('insertHTML', pasteHtml);
+                    } catch (ex) {
+                        // 此时使用 pasteText 来兼容一下
+                        editor.cmd.do('insertHTML', '<p>' + pasteText + '</p>');
+                    }
+                } else {
+                    // 不是 div,证明在已有内容的元素中粘贴,只粘贴纯文本
+                    if (!pasteText) {
+                        return;
+                    }
+                    editor.cmd.do('insertHTML', '<p>' + pasteText + '</p>');
+                }
+            });
+
+            // 粘贴图片
+            $textElem.on('paste', function (e) {
+                e.preventDefault();
+
+                // 获取粘贴的图片
+                var pasteFiles = getPasteImgs(e);
+                if (!pasteFiles || !pasteFiles.length) {
+                    return;
+                }
+
+                // 获取当前的元素
+                var $selectionElem = editor.selection.getSelectionContainerElem();
+                if (!$selectionElem) {
+                    return;
+                }
+                var nodeName = $selectionElem.getNodeName();
+
+                // code 中粘贴忽略
+                if (nodeName === 'CODE' || nodeName === 'PRE') {
+                    return;
+                }
+
+                // 上传图片
+                var uploadImg = editor.uploadImg;
+                uploadImg.uploadImg(pasteFiles);
+            });
+        },
+
+        // tab 特殊处理
+        _tabHandle: function _tabHandle() {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+
+            $textElem.on('keydown', function (e) {
+                if (e.keyCode !== 9) {
+                    return;
+                }
+                if (!editor.cmd.queryCommandSupported('insertHTML')) {
+                    // 必须原生支持 insertHTML 命令
+                    return;
+                }
+                var $selectionElem = editor.selection.getSelectionContainerElem();
+                if (!$selectionElem) {
+                    return;
+                }
+                var $parentElem = $selectionElem.parent();
+                var selectionNodeName = $selectionElem.getNodeName();
+                var parentNodeName = $parentElem.getNodeName();
+
+                if (selectionNodeName === 'CODE' && parentNodeName === 'PRE') {
+                    // <pre><code> 里面
+                    editor.cmd.do('insertHTML', '    ');
+                } else {
+                    // 普通文字
+                    editor.cmd.do('insertHTML', '&nbsp;&nbsp;&nbsp;&nbsp;');
+                }
+
+                e.preventDefault();
+            });
+        },
+
+        // img 点击
+        _imgHandle: function _imgHandle() {
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+            var selectedClass = 'w-e-selected';
+
+            // 为图片增加 selected 样式
+            $textElem.on('click', 'img', function (e) {
+                var img = this;
+                var $img = $(img);
+
+                // 去掉所有图片的 selected 样式
+                $textElem.find('img').removeClass(selectedClass);
+
+                // 为点击的图片增加样式,并记录当前图片
+                $img.addClass(selectedClass);
+                editor._selectedImg = $img;
+
+                // 修改选取
+                editor.selection.createRangeByElem($img);
+            });
+
+            // 去掉图片的 selected 样式
+            $textElem.on('click  keyup', function (e) {
+                if (e.target.matches('img')) {
+                    // 点击的是图片,忽略
+                    return;
+                }
+                // 取消掉 selected 样式,并删除记录
+                $textElem.find('img').removeClass(selectedClass);
+                editor._selectedImg = null;
+            });
+        }
+    };
+
+    /*
+     命令,封装 document.execCommand
+     */
+
+// 构造函数
+    function Command(editor) {
+        this.editor = editor;
+    }
+
+// 修改原型
+    Command.prototype = {
+        constructor: Command,
+
+        // 执行命令
+        do: function _do(name, value) {
+            var editor = this.editor;
+
+            // 如果无选区,忽略
+            if (!editor.selection.getRange()) {
+                return;
+            }
+
+            // 恢复选取
+            editor.selection.restoreSelection();
+
+            // 执行
+            var _name = '_' + name;
+            if (this[_name]) {
+                // 有自定义事件
+                this[_name](value);
+            } else {
+                // 默认 command
+                this._execCommand(name, value);
+            }
+
+            // 修改菜单状态
+            editor.menus.changeActive();
+
+            // 最后,恢复选取保证光标在原来的位置闪烁
+            editor.selection.saveRange();
+            editor.selection.restoreSelection();
+
+            // 触发 onchange
+            editor.change && editor.change();
+        },
+
+        // 自定义 insertHTML 事件
+        _insertHTML: function _insertHTML(html) {
+            var editor = this.editor;
+            var range = editor.selection.getRange();
+
+            // 保证传入的参数是 html 代码
+            var test = /^<.+>$/.test(html);
+            if (!test && !UA.isWebkit()) {
+                // webkit 可以插入非 html 格式的文字
+                throw new Error('执行 insertHTML 命令时传入的参数必须是 html 格式');
+            }
+
+            if (this.queryCommandSupported('insertHTML')) {
+                // W3C
+                this._execCommand('insertHTML', html);
+            } else if (range.insertNode) {
+                // IE
+                range.deleteContents();
+                range.insertNode($(html)[0]);
+            } else if (range.pasteHTML) {
+                // IE <= 10
+                range.pasteHTML(html);
+            }
+        },
+
+        // 插入 elem
+        _insertElem: function _insertElem($elem) {
+            var editor = this.editor;
+            var range = editor.selection.getRange();
+
+            if (range.insertNode) {
+                range.deleteContents();
+                range.insertNode($elem[0]);
+            }
+        },
+
+        // 封装 execCommand
+        _execCommand: function _execCommand(name, value) {
+            document.execCommand(name, false, value);
+        },
+
+        // 封装 document.queryCommandValue
+        queryCommandValue: function queryCommandValue(name) {
+            return document.queryCommandValue(name);
+        },
+
+        // 封装 document.queryCommandState
+        queryCommandState: function queryCommandState(name) {
+            return document.queryCommandState(name);
+        },
+
+        // 封装 document.queryCommandSupported
+        queryCommandSupported: function queryCommandSupported(name) {
+            return document.queryCommandSupported(name);
+        }
+    };
+
+    /*
+     selection range API
+     */
+
+// 构造函数
+    function API(editor) {
+        this.editor = editor;
+        this._currentRange = null;
+    }
+
+// 修改原型
+    API.prototype = {
+        constructor: API,
+
+        // 获取 range 对象
+        getRange: function getRange() {
+            return this._currentRange;
+        },
+
+        // 保存选区
+        saveRange: function saveRange(_range) {
+            if (_range) {
+                // 保存已有选区
+                this._currentRange = _range;
+                return;
+            }
+
+            // 获取当前的选区
+            var selection = window.getSelection();
+            if (selection.rangeCount === 0) {
+                return;
+            }
+            var range = selection.getRangeAt(0);
+
+            // 判断选区内容是否在编辑内容之内
+            var $containerElem = this.getSelectionContainerElem(range);
+            if (!$containerElem) {
+                return;
+            }
+            var editor = this.editor;
+            var $textElem = editor.$textElem;
+            if ($textElem.isContain($containerElem)) {
+                // 是编辑内容之内的
+                this._currentRange = range;
+            }
+        },
+
+        // 折叠选区
+        collapseRange: function collapseRange(toStart) {
+            if (toStart == null) {
+                // 默认为 false
+                toStart = false;
+            }
+            var range = this._currentRange;
+            if (range) {
+                range.collapse(toStart);
+            }
+        },
+
+        // 选中区域的文字
+        getSelectionText: function getSelectionText() {
+            var range = this._currentRange;
+            if (range) {
+                return this._currentRange.toString();
+            } else {
+                return '';
+            }
+        },
+
+        // 选区的 $Elem
+        getSelectionContainerElem: function getSelectionContainerElem(range) {
+            range = range || this._currentRange;
+            var elem = void 0;
+            if (range) {
+                elem = range.commonAncestorContainer;
+                return $(elem.nodeType === 1 ? elem : elem.parentNode);
+            }
+        },
+        getSelectionStartElem: function getSelectionStartElem(range) {
+            range = range || this._currentRange;
+            var elem = void 0;
+            if (range) {
+                elem = range.startContainer;
+                return $(elem.nodeType === 1 ? elem : elem.parentNode);
+            }
+        },
+        getSelectionEndElem: function getSelectionEndElem(range) {
+            range = range || this._currentRange;
+            var elem = void 0;
+            if (range) {
+                elem = range.endContainer;
+                return $(elem.nodeType === 1 ? elem : elem.parentNode);
+            }
+        },
+
+        // 选区是否为空
+        isSelectionEmpty: function isSelectionEmpty() {
+            var range = this._currentRange;
+            if (range && range.startContainer) {
+                if (range.startContainer === range.endContainer) {
+                    if (range.startOffset === range.endOffset) {
+                        return true;
+                    }
+                }
+            }
+            return false;
+        },
+
+        // 恢复选区
+        restoreSelection: function restoreSelection() {
+            var selection = window.getSelection();
+            selection.removeAllRanges();
+            selection.addRange(this._currentRange);
+        },
+
+        // 创建一个空白(即 &#8203 字符)选区
+        createEmptyRange: function createEmptyRange() {
+            var editor = this.editor;
+            var range = this.getRange();
+            var $elem = void 0;
+
+            if (!range) {
+                // 当前无 range
+                return;
+            }
+            if (!this.isSelectionEmpty()) {
+                // 当前选区必须没有内容才可以
+                return;
+            }
+
+            // 目前只支持 webkit 内核
+            if (UA.isWebkit()) {
+                // 插入 &#8203
+                editor.cmd.do('insertHTML', '&#8203;');
+                // 修改 offset 位置
+                range.setEnd(range.endContainer, range.endOffset + 1);
+                // 存储
+                this.saveRange(range);
+            } else {
+                $elem = $('<strong>&#8203;</strong>');
+                editor.cmd.do('insertElem', $elem);
+                this.createRangeByElem($elem, true);
+            }
+        },
+
+        // 根据 $Elem 设置选区
+        createRangeByElem: function createRangeByElem($elem, toStart, isContent) {
+            // $elem - 经过封装的 elem
+            // toStart - true 开始位置,false 结束位置
+            // isContent - 是否选中Elem的内容
+            if (!$elem.length) {
+                return;
+            }
+
+            var elem = $elem[0];
+            var range = document.createRange();
+
+            if (isContent) {
+                range.selectNodeContents(elem);
+            } else {
+                range.selectNode(elem);
+            }
+
+            if (typeof toStart === 'boolean') {
+                range.collapse(toStart);
+            }
+
+            // 存储 range
+            this.saveRange(range);
+        }
+    };
+
+    /*
+     上传进度条
+     */
+
+    function Progress(editor) {
+        this.editor = editor;
+        this._time = 0;
+        this._isShow = false;
+        this._isRender = false;
+        this._timeoutId = 0;
+        this.$textContainer = editor.$textContainerElem;
+        this.$bar = $('<div class="w-e-progress"></div>');
+    }
+
+    Progress.prototype = {
+        constructor: Progress,
+
+        show: function show(progress) {
+            var _this = this;
+
+            // 状态处理
+            if (this._isShow) {
+                return;
+            }
+            this._isShow = true;
+
+            // 渲染
+            var $bar = this.$bar;
+            if (!this._isRender) {
+                var $textContainer = this.$textContainer;
+                $textContainer.append($bar);
+            } else {
+                this._isRender = true;
+            }
+
+            // 改变进度(节流,100ms 渲染一次)
+            if (Date.now() - this._time > 100) {
+                if (progress <= 1) {
+                    $bar.css('width', progress * 100 + '%');
+                    this._time = Date.now();
+                }
+            }
+
+            // 隐藏
+            var timeoutId = this._timeoutId;
+            if (timeoutId) {
+                clearTimeout(timeoutId);
+            }
+            timeoutId = setTimeout(function () {
+                _this._hide();
+            }, 500);
+        },
+
+        _hide: function _hide() {
+            var $bar = this.$bar;
+            $bar.remove();
+
+            // 修改状态
+            this._time = 0;
+            this._isShow = false;
+            this._isRender = false;
+        }
+    };
+
+    var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
+        return typeof obj;
+    } : function (obj) {
+        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+    };
+
+    /*
+     上传图片
+     */
+
+// 构造函数
+    function UploadImg(editor) {
+        this.editor = editor;
+    }
+
+// 原型
+    UploadImg.prototype = {
+        constructor: UploadImg,
+
+        // 根据 debug 弹出不同的信息
+        _alert: function _alert(alertInfo, debugInfo) {
+            var editor = this.editor;
+            var debug = editor.config.debug;
+
+            if (debug) {
+                throw new Error('wangEditor: ' + (debugInfo || alertInfo));
+            } else {
+                alert(alertInfo);
+            }
+        },
+
+        // 根据链接插入图片
+        insertLinkImg: function insertLinkImg(link) {
+            var _this2 = this;
+
+            if (!link) {
+                return;
+            }
+            var editor = this.editor;
+
+            var img = document.createElement('img');
+            img.onload = function () {
+                img = null;
+                editor.cmd.do('insertHTML', '<img src="' + link + '" style="max-width:100%;"/>');
+            };
+            img.onerror = function () {
+                img = null;
+                // 无法成功下载图片
+                _this2._alert('插入图片错误', 'wangEditor: \u63D2\u5165\u56FE\u7247\u51FA\u9519\uFF0C\u56FE\u7247\u94FE\u63A5\u662F "' + link + '"\uFF0C\u4E0B\u8F7D\u8BE5\u94FE\u63A5\u5931\u8D25');
+                return;
+            };
+            img.onabort = function () {
+                img = null;
+            };
+            img.src = link;
+        },
+
+        // 上传图片
+        uploadImg: function uploadImg(files) {
+            var _this3 = this;
+
+            if (!files || !files.length) {
+                return;
+            }
+
+            // ------------------------------ 获取配置信息 ------------------------------
+            var editor = this.editor;
+            var config = editor.config;
+            var maxSize = config.uploadImgMaxSize;
+            var maxSizeM = maxSize / 1000 / 1000;
+            var maxLength = config.uploadImgMaxLength || 10000;
+            var uploadImgServer = config.uploadImgServer;
+            var uploadImgShowBase64 = config.uploadImgShowBase64;
+            var uploadFileName = config.uploadFileName || '';
+            var uploadImgParams = config.uploadImgParams || {};
+            var uploadImgHeaders = config.uploadImgHeaders || {};
+            var hooks = config.uploadImgHooks || {};
+            var timeout = config.uploadImgTimeout || 3000;
+            var withCredentials = config.withCredentials;
+            if (withCredentials == null) {
+                withCredentials = false;
+            }
+
+            // ------------------------------ 验证文件信息 ------------------------------
+            var resultFiles = [];
+            var errInfo = [];
+            arrForEach(files, function (file) {
+                var name = file.name;
+                var size = file.size;
+                if (/\.(jpg|jpeg|png|bmp|gif)$/i.test(name) === false) {
+                    // 后缀名不合法,不是图片
+                    errInfo.push('\u3010' + name + '\u3011\u4E0D\u662F\u56FE\u7247');
+                    return;
+                }
+                if (maxSize < size) {
+                    // 上传图片过大
+                    errInfo.push('\u3010' + name + '\u3011\u5927\u4E8E ' + maxSizeM + 'M');
+                    return;
+                }
+
+                // 验证通过的加入结果列表
+                resultFiles.push(file);
+            });
+            // 抛出验证信息
+            if (errInfo.length) {
+                this._alert('图片验证未通过: \n' + errInfo.join('\n'));
+                return;
+            }
+            if (resultFiles.length > maxLength) {
+                this._alert('一次最多上传' + maxLength + '张图片');
+                return;
+            }
+
+            // 添加图片数据
+            var formdata = new FormData();
+            arrForEach(resultFiles, function (file) {
+                var name = uploadFileName || file.name;
+                formdata.append(name, file);
+            });
+
+            // ------------------------------ 上传图片 ------------------------------
+            if (uploadImgServer && typeof uploadImgServer === 'string') {
+                // 添加参数
+                var uploadImgServerArr = uploadImgServer.split('#');
+                uploadImgServer = uploadImgServerArr[0];
+                var uploadImgServerHash = uploadImgServerArr[1] || '';
+                objForEach(uploadImgParams, function (key, val) {
+                    val = encodeURIComponent(val);
+
+                    // 第一,将参数拼接到 url 中
+                    if (uploadImgServer.indexOf('?') > 0) {
+                        uploadImgServer += '&';
+                    } else {
+                        uploadImgServer += '?';
+                    }
+                    uploadImgServer = uploadImgServer + key + '=' + val;
+
+                    // 第二,将参数添加到 formdata 中
+                    formdata.append(key, val);
+                });
+                if (uploadImgServerHash) {
+                    uploadImgServer += '#' + uploadImgServerHash;
+                }
+
+                // 定义 xhr
+                var xhr = new XMLHttpRequest();
+                xhr.open('POST', uploadImgServer);
+
+                // 设置超时
+                xhr.timeout = timeout;
+                xhr.ontimeout = function () {
+                    // hook - timeout
+                    if (hooks.timeout && typeof hooks.timeout === 'function') {
+                        hooks.timeout(xhr, editor);
+                    }
+
+                    _this3._alert('上传图片超时');
+                };
+
+                // 监控 progress
+                if (xhr.upload) {
+                    xhr.upload.onprogress = function (e) {
+                        var percent = void 0;
+                        // 进度条
+                        var progressBar = new Progress(editor);
+                        if (e.lengthComputable) {
+                            percent = e.loaded / e.total;
+                            progressBar.show(percent);
+                        }
+                    };
+                }
+
+                // 返回数据
+                xhr.onreadystatechange = function () {
+                    var result = void 0;
+                    if (xhr.readyState === 4) {
+                        if (xhr.status < 200 || xhr.status >= 300) {
+                            // hook - error
+                            if (hooks.error && typeof hooks.error === 'function') {
+                                hooks.error(xhr, editor);
+                            }
+
+                            // xhr 返回状态错误
+                            _this3._alert('上传图片发生错误', '\u4E0A\u4F20\u56FE\u7247\u53D1\u751F\u9519\u8BEF\uFF0C\u670D\u52A1\u5668\u8FD4\u56DE\u72B6\u6001\u662F ' + xhr.status);
+                            return;
+                        }
+
+                        result = xhr.responseText;
+                        if ((typeof result === 'undefined' ? 'undefined' : _typeof(result)) !== 'object') {
+                            try {
+                                result = JSON.parse(result);
+                            } catch (ex) {
+                                // hook - fail
+                                if (hooks.fail && typeof hooks.fail === 'function') {
+                                    hooks.fail(xhr, editor, result);
+                                }
+
+                                _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果是: ' + result);
+                                return;
+                            }
+                        }
+                        if (!hooks.customInsert && result.errno != '0') {
+                            // hook - fail
+                            if (hooks.fail && typeof hooks.fail === 'function') {
+                                hooks.fail(xhr, editor, result);
+                            }
+
+                            // 数据错误
+                            _this3._alert('上传图片失败', '上传图片返回结果错误,返回结果 errno=' + result.errno);
+                        } else {
+                            if (hooks.customInsert && typeof hooks.customInsert === 'function') {
+                                // 使用者自定义插入方法
+                                hooks.customInsert(_this3.insertLinkImg.bind(_this3), result, editor);
+                            } else {
+                                // 将图片插入编辑器
+                                var data = result.data || [];
+                                data.forEach(function (link) {
+                                    _this3.insertLinkImg(link);
+                                });
+                            }
+
+                            // hook - success
+                            if (hooks.success && typeof hooks.success === 'function') {
+                                hooks.success(xhr, editor, result);
+                            }
+                        }
+                    }
+                };
+
+                // hook - before
+                if (hooks.before && typeof hooks.before === 'function') {
+                    hooks.before(xhr, editor, resultFiles);
+                }
+
+                // 自定义 headers
+                objForEach(uploadImgHeaders, function (key, val) {
+                    xhr.setRequestHeader(key, val);
+                });
+
+                // 跨域传 cookie
+                xhr.withCredentials = withCredentials;
+
+                // 发送请求
+                xhr.send(formdata);
+
+                // 注意,要 return 。不去操作接下来的 base64 显示方式
+                return;
+            }
+
+            // 显示 base64 格式
+            if (uploadImgShowBase64) {
+                arrForEach(files, function (file) {
+                    var _this = _this3;
+                    var reader = new FileReader();
+                    reader.readAsDataURL(file);
+                    reader.onload = function () {
+                        _this.insertLinkImg(this.result);
+                    };
+                });
+            }
+        }
+    };
+
+    /*
+     编辑器构造函数
+     */
+
+// id,累加
+    var editorId = 1;
+
+// 构造函数
+    function Editor(toolbarSelector, textSelector) {
+        if (toolbarSelector == null) {
+            // 没有传入任何参数,报错
+            throw new Error('错误:初始化编辑器时候未传入任何参数,请查阅文档');
+        }
+        // id,用以区分单个页面不同的编辑器对象
+        this.id = 'wangEditor-' + editorId++;
+
+        this.toolbarSelector = toolbarSelector;
+        this.textSelector = textSelector;
+
+        // 自定义配置
+        this.customConfig = {};
+    }
+
+// 修改原型
+    Editor.prototype = {
+        constructor: Editor,
+
+        // 初始化配置
+        _initConfig: function _initConfig() {
+            // _config 是默认配置,this.customConfig 是用户自定义配置,将它们 merge 之后再赋值
+            var target = {};
+            this.config = Object.assign(target, config, this.customConfig);
+        },
+
+        // 初始化 DOM
+        _initDom: function _initDom() {
+            var _this = this;
+
+            var toolbarSelector = this.toolbarSelector;
+            var $toolbarSelector = $(toolbarSelector);
+            var textSelector = this.textSelector;
+
+            var config$$1 = this.config;
+            var zIndex = config$$1.zIndex || '10000';
+
+            // 定义变量
+            var $toolbarElem = void 0,
+                $textContainerElem = void 0,
+                $textElem = void 0,
+                $children = void 0;
+
+            if (textSelector == null) {
+                // 只传入一个参数,即是容器的选择器或元素,toolbar 和 text 的元素自行创建
+                $toolbarElem = $('<div></div>');
+                $textContainerElem = $('<div></div>');
+
+                // 将编辑器区域原有的内容,暂存起来
+                $children = $toolbarSelector.children();
+
+                // 添加到 DOM 结构中
+                $toolbarSelector.append($toolbarElem).append($textContainerElem);
+
+                // 自行创建的,需要配置默认的样式
+                $toolbarElem.css('background-color', '#f1f1f1').css('border', '1px solid #ccc');
+                $textContainerElem.css('border', '1px solid #ccc').css('border-top', 'none').css('height', '150px');
+            } else {
+                // toolbar 和 text 的选择器都有值,记录属性
+                $toolbarElem = $toolbarSelector;
+                $textContainerElem = $(textSelector);
+                // 将编辑器区域原有的内容,暂存起来
+                $children = $textContainerElem.children();
+            }
+
+            // 编辑区域
+            $textElem = $('<div></div>');
+            $textElem.attr('contenteditable', 'true').css('width', '100%').css('height', '100%');
+
+            // 初始化编辑区域内容
+            if ($children && $children.length) {
+                $textElem.append($children);
+            } else {
+                $textElem.append($('<p><br></p>'));
+            }
+
+            // 编辑区域加入DOM
+            $textContainerElem.append($textElem);
+
+            // 设置通用的 class
+            $toolbarElem.addClass('w-e-toolbar');
+            $textContainerElem.addClass('w-e-text-container');
+            $textContainerElem.css('z-index', zIndex);
+            $textElem.addClass('w-e-text');
+
+            // 记录属性
+            this.$toolbarElem = $toolbarElem;
+            this.$textContainerElem = $textContainerElem;
+            this.$textElem = $textElem;
+
+            // 绑定 onchange
+            $textContainerElem.on('click keyup', function () {
+                _this.change && _this.change();
+            });
+            $toolbarElem.on('click', function () {
+                this.change && this.change();
+            });
+        },
+
+        // 封装 command
+        _initCommand: function _initCommand() {
+            this.cmd = new Command(this);
+        },
+
+        // 封装 selection range API
+        _initSelectionAPI: function _initSelectionAPI() {
+            this.selection = new API(this);
+        },
+
+        // 添加图片上传
+        _initUploadImg: function _initUploadImg() {
+            this.uploadImg = new UploadImg(this);
+        },
+
+        // 初始化菜单
+        _initMenus: function _initMenus() {
+            this.menus = new Menus(this);
+            this.menus.init();
+        },
+
+        // 添加 text 区域
+        _initText: function _initText() {
+            this.txt = new Text(this);
+            this.txt.init();
+        },
+
+        // 初始化选区,将光标定位到内容尾部
+        initSelection: function initSelection() {
+            var $textElem = this.$textElem;
+            var $children = $textElem.children();
+            if (!$children.length) {
+                // 如果编辑器区域无内容,添加一个空行,重新设置选区
+                $textElem.append($('<p><br></p>'));
+                this.initSelection();
+                return;
+            }
+
+            var $last = $children.last();
+            var html = $last.html().toLowerCase();
+            var nodeName = $last.getNodeName();
+            if (html !== '<br>' && html !== '<br\/>' || nodeName !== 'P') {
+                // 最后一个元素不是 <p><br></p>,添加一个空行,重新设置选区
+                $textElem.append($('<p><br></p>'));
+                this.initSelection();
+                return;
+            }
+
+            this.selection.createRangeByElem($last, true);
+            this.selection.restoreSelection();
+        },
+
+        // 绑定事件
+        _bindEvent: function _bindEvent() {
+            // -------- 绑定 onchange 事件 --------
+            var onChangeTimeoutId = 0;
+            var beforeChangeHtml = this.txt.html();
+            var config$$1 = this.config;
+            var onchange = config$$1.onchange;
+            if (onchange && typeof onchange === 'function') {
+                // 触发 change 的有三个场景:
+                // 1. $textContainerElem.on('click keyup')
+                // 2. $toolbarElem.on('click')
+                // 3. editor.cmd.do()
+                this.change = function () {
+                    // 判断是否有变化
+                    var currentHtml = this.txt.html();
+                    if (currentHtml.length === beforeChangeHtml.length) {
+                        return;
+                    }
+
+                    // 执行,使用节流
+                    if (onChangeTimeoutId) {
+                        clearTimeout(onChangeTimeoutId);
+                    }
+                    onChangeTimeoutId = setTimeout(function () {
+                        // 触发配置的 onchange 函数
+                        onchange(currentHtml);
+                        beforeChangeHtml = currentHtml;
+                    }, 200);
+                };
+            }
+        },
+
+        // 创建编辑器
+        create: function create() {
+            // 初始化配置信息
+            this._initConfig();
+
+            // 初始化 DOM
+            this._initDom();
+
+            // 封装 command API
+            this._initCommand();
+
+            // 封装 selection range API
+            this._initSelectionAPI();
+
+            // 添加 text
+            this._initText();
+
+            // 初始化菜单
+            this._initMenus();
+
+            // 添加 图片上传
+            this._initUploadImg();
+
+            // 初始化选区,将光标定位到内容尾部
+            this.initSelection();
+
+            // 绑定事件
+            this._bindEvent();
+        }
+    };
+
+// 检验是否浏览器环境
+    try {
+        document;
+    } catch (ex) {
+        throw new Error('请在浏览器环境下运行');
+    }
+
+// polyfill
+    polyfill();
+
+// 这里的 `inlinecss` 将被替换成 css 代码的内容,详情可去 ./gulpfile.js 中搜索 `inlinecss` 关键字
+    var inlinecss = '.w-e-toolbar,.w-e-text-container,.w-e-menu-panel {  padding: 0;  margin: 0;  box-sizing: border-box;}.w-e-toolbar *,.w-e-text-container *,.w-e-menu-panel * {  padding: 0;  margin: 0;  box-sizing: border-box;}.w-e-clear-fix:after {  content: "";  display: table;  clear: both;}.w-e-toolbar .w-e-droplist {  position: absolute;  left: 0;  top: 0;  background-color: #fff;  border: 1px solid #f1f1f1;  border-right-color: #ccc;  border-bottom-color: #ccc;}.w-e-toolbar .w-e-droplist .w-e-dp-title {  text-align: center;  color: #999;  line-height: 2;  border-bottom: 1px solid #f1f1f1;  font-size: 13px;}.w-e-toolbar .w-e-droplist ul.w-e-list {  list-style: none;  line-height: 1;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item {  color: #333;  padding: 5px 0;}.w-e-toolbar .w-e-droplist ul.w-e-list li.w-e-item:hover {  background-color: #f1f1f1;}.w-e-toolbar .w-e-droplist ul.w-e-block {  list-style: none;  text-align: left;  padding: 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item {  display: inline-block;  *display: inline;  *zoom: 1;  padding: 3px 5px;}.w-e-toolbar .w-e-droplist ul.w-e-block li.w-e-item:hover {  background-color: #f1f1f1;}@font-face {  font-family: \'icomoon\';  src: url(data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAABXAAAsAAAAAFXQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAABCAAAAGAAAABgDxIPAmNtYXAAAAFoAAAA9AAAAPRAxxN6Z2FzcAAAAlwAAAAIAAAACAAAABBnbHlmAAACZAAAEHwAABB8kRGt5WhlYWQAABLgAAAANgAAADYN4rlyaGhlYQAAExgAAAAkAAAAJAfEA99obXR4AAATPAAAAHwAAAB8cAcDvGxvY2EAABO4AAAAQAAAAEAx8jYEbWF4cAAAE/gAAAAgAAAAIAAqALZuYW1lAAAUGAAAAYYAAAGGmUoJ+3Bvc3QAABWgAAAAIAAAACAAAwAAAAMD3AGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAA8fwDwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEANgAAAAyACAABAASAAEAIOkG6Q3pEulH6Wbpd+m56bvpxunL6d/qDepl6mjqcep58A3wFPEg8dzx/P/9//8AAAAAACDpBukN6RLpR+ll6Xfpuem76cbpy+nf6g3qYupo6nHqd/AN8BTxIPHc8fz//f//AAH/4xb+FvgW9BbAFqMWkxZSFlEWRxZDFjAWAxWvFa0VpRWgEA0QBw78DkEOIgADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAIAAP/ABAADwAAEABMAAAE3AScBAy4BJxM3ASMBAyUBNQEHAYCAAcBA/kCfFzsyY4ABgMD+gMACgAGA/oBOAUBAAcBA/kD+nTI7FwERTgGA/oD9gMABgMD+gIAABAAAAAAEAAOAABAAIQAtADQAAAE4ATEROAExITgBMRE4ATEhNSEiBhURFBYzITI2NRE0JiMHFAYjIiY1NDYzMhYTITUTATM3A8D8gAOA/IAaJiYaA4AaJiYagDgoKDg4KCg4QP0A4AEAQOADQP0AAwBAJhr9ABomJhoDABom4Cg4OCgoODj9uIABgP7AwAAAAgAAAEAEAANAACgALAAAAS4DIyIOAgcOAxUUHgIXHgMzMj4CNz4DNTQuAicBEQ0BA9U2cXZ5Pz95dnE2Cw8LBgYLDws2cXZ5Pz95dnE2Cw8LBgYLDwv9qwFA/sADIAgMCAQECAwIKVRZWy8vW1lUKQgMCAQECAwIKVRZWy8vW1lUKf3gAYDAwAAAAAACAMD/wANAA8AAEwAfAAABIg4CFRQeAjEwPgI1NC4CAyImNTQ2MzIWFRQGAgBCdVcyZHhkZHhkMld1QlBwcFBQcHADwDJXdUJ4+syCgsz6eEJ1VzL+AHBQUHBwUFBwAAABAAAAAAQAA4AAIQAAASIOAgcnESEnPgEzMh4CFRQOAgcXPgM1NC4CIwIANWRcUiOWAYCQNYtQUItpPBIiMB5VKEAtGFCLu2oDgBUnNyOW/oCQNDw8aYtQK1FJQRpgI1ZibDlqu4tQAAEAAAAABAADgAAgAAATFB4CFzcuAzU0PgIzMhYXByERBy4DIyIOAgAYLUAoVR4wIhI8aYtQUIs1kAGAliNSXGQ1aruLUAGAOWxiViNgGkFJUStQi2k8PDSQAYCWIzcnFVCLuwACAAAAQAQBAwAAHgA9AAATMh4CFRQOAiMiLgI1JzQ+AjMVIgYHDgEHPgEhMh4CFRQOAiMiLgI1JzQ+AjMVIgYHDgEHPgHhLlI9IyM9Ui4uUj0jAUZ6o11AdS0JEAcIEgJJLlI9IyM9Ui4uUj0jAUZ6o11AdS0JEAcIEgIAIz1SLi5SPSMjPVIuIF2jekaAMC4IEwoCASM9Ui4uUj0jIz1SLiBdo3pGgDAuCBMKAgEAAAYAQP/ABAADwAADAAcACwARAB0AKQAAJSEVIREhFSERIRUhJxEjNSM1ExUzFSM1NzUjNTMVFREjNTM1IzUzNSM1AYACgP2AAoD9gAKA/YDAQEBAgMCAgMDAgICAgICAAgCAAgCAwP8AwED98jJAkjwyQJLu/sBAQEBAQAAGAAD/wAQAA8AAAwAHAAsAFwAjAC8AAAEhFSERIRUhESEVIQE0NjMyFhUUBiMiJhE0NjMyFhUUBiMiJhE0NjMyFhUUBiMiJgGAAoD9gAKA/YACgP2A/oBLNTVLSzU1S0s1NUtLNTVLSzU1S0s1NUsDgID/AID/AIADQDVLSzU1S0v+tTVLSzU1S0v+tTVLSzU1S0sAAwAAAAAEAAOgAAMADQAUAAA3IRUhJRUhNRMhFSE1ISUJASMRIxEABAD8AAQA/ACAAQABAAEA/WABIAEg4IBAQMBAQAEAgIDAASD+4P8AAQAAAAAAAgBT/8wDrQO0AC8AXAAAASImJy4BNDY/AT4BMzIWFx4BFAYPAQYiJyY0PwE2NCcuASMiBg8BBhQXFhQHDgEjAyImJy4BNDY/ATYyFxYUDwEGFBceATMyNj8BNjQnJjQ3NjIXHgEUBg8BDgEjAbgKEwgjJCQjwCNZMTFZIyMkJCNYDywPDw9YKSkUMxwcMxTAKSkPDwgTCrgxWSMjJCQjWA8sDw8PWCkpFDMcHDMUwCkpDw8PKxAjJCQjwCNZMQFECAckWl5aJMAiJSUiJFpeWiRXEBAPKw9YKXQpFBUVFMApdCkPKxAHCP6IJSIkWl5aJFcQEA8rD1gpdCkUFRUUwCl0KQ8rEA8PJFpeWiTAIiUAAAAABQAA/8AEAAPAABMAJwA7AEcAUwAABTI+AjU0LgIjIg4CFRQeAhMyHgIVFA4CIyIuAjU0PgITMj4CNw4DIyIuAiceAyc0NjMyFhUUBiMiJiU0NjMyFhUUBiMiJgIAaruLUFCLu2pqu4tQUIu7alaYcUFBcZhWVphxQUFxmFYrVVFMIwU3Vm8/P29WNwUjTFFV1SUbGyUlGxslAYAlGxslJRsbJUBQi7tqaruLUFCLu2pqu4tQA6BBcZhWVphxQUFxmFZWmHFB/gkMFSAUQ3RWMTFWdEMUIBUM9yg4OCgoODgoKDg4KCg4OAAAAAADAAD/wAQAA8AAEwAnADMAAAEiDgIVFB4CMzI+AjU0LgIDIi4CNTQ+AjMyHgIVFA4CEwcnBxcHFzcXNyc3AgBqu4tQUIu7amq7i1BQi7tqVphxQUFxmFZWmHFBQXGYSqCgYKCgYKCgYKCgA8BQi7tqaruLUFCLu2pqu4tQ/GBBcZhWVphxQUFxmFZWmHFBAqCgoGCgoGCgoGCgoAADAMAAAANAA4AAEgAbACQAAAE+ATU0LgIjIREhMj4CNTQmATMyFhUUBisBEyMRMzIWFRQGAsQcIChGXTX+wAGANV1GKET+hGUqPDwpZp+fnyw+PgHbIlQvNV1GKPyAKEZdNUZ0AUZLNTVL/oABAEs1NUsAAAIAwAAAA0ADgAAbAB8AAAEzERQOAiMiLgI1ETMRFBYXHgEzMjY3PgE1ASEVIQLAgDJXdUJCdVcygBsYHEkoKEkcGBv+AAKA/YADgP5gPGlOLS1OaTwBoP5gHjgXGBsbGBc4Hv6ggAAAAQCAAAADgAOAAAsAAAEVIwEzFSE1MwEjNQOAgP7AgP5AgAFAgAOAQP0AQEADAEAAAQAAAAAEAAOAAD0AAAEVIx4BFRQGBw4BIyImJy4BNTMUFjMyNjU0JiMhNSEuAScuATU0Njc+ATMyFhceARUjNCYjIgYVFBYzMhYXBADrFRY1MCxxPj5xLDA1gHJOTnJyTv4AASwCBAEwNTUwLHE+PnEsMDWAck5OcnJOO24rAcBAHUEiNWIkISQkISRiNTRMTDQ0TEABAwEkYjU1YiQhJCQhJGI1NExMNDRMIR8AAAAHAAD/wAQAA8AAAwAHAAsADwATABsAIwAAEzMVIzczFSMlMxUjNzMVIyUzFSMDEyETMxMhEwEDIQMjAyEDAICAwMDAAQCAgMDAwAEAgIAQEP0AECAQAoAQ/UAQAwAQIBD9gBABwEBAQEBAQEBAQAJA/kABwP6AAYD8AAGA/oABQP7AAAAKAAAAAAQAA4AAAwAHAAsADwATABcAGwAfACMAJwAAExEhEQE1IRUdASE1ARUhNSMVITURIRUhJSEVIRE1IRUBIRUhITUhFQAEAP2AAQD/AAEA/wBA/wABAP8AAoABAP8AAQD8gAEA/wACgAEAA4D8gAOA/cDAwEDAwAIAwMDAwP8AwMDAAQDAwP7AwMDAAAAFAAAAAAQAA4AAAwAHAAsADwATAAATIRUhFSEVIREhFSERIRUhESEVIQAEAPwAAoD9gAKA/YAEAPwABAD8AAOAgECA/wCAAUCA/wCAAAAAAAUAAAAABAADgAADAAcACwAPABMAABMhFSEXIRUhESEVIQMhFSERIRUhAAQA/ADAAoD9gAKA/YDABAD8AAQA/AADgIBAgP8AgAFAgP8AgAAABQAAAAAEAAOAAAMABwALAA8AEwAAEyEVIQUhFSERIRUhASEVIREhFSEABAD8AAGAAoD9gAKA/YD+gAQA/AAEAPwAA4CAQID/AIABQID/AIAAAAAAAQA/AD8C5gLmACwAACUUDwEGIyIvAQcGIyIvASY1ND8BJyY1ND8BNjMyHwE3NjMyHwEWFRQPARcWFQLmEE4QFxcQqKgQFxYQThAQqKgQEE4QFhcQqKgQFxcQThAQqKgQwxYQThAQqKgQEE4QFhcQqKgQFxcQThAQqKgQEE4QFxcQqKgQFwAAAAYAAAAAAyUDbgAUACgAPABNAFUAggAAAREUBwYrASInJjURNDc2OwEyFxYVMxEUBwYrASInJjURNDc2OwEyFxYXERQHBisBIicmNRE0NzY7ATIXFhMRIREUFxYXFjMhMjc2NzY1ASEnJicjBgcFFRQHBisBERQHBiMhIicmNREjIicmPQE0NzY7ATc2NzY7ATIXFh8BMzIXFhUBJQYFCCQIBQYGBQgkCAUGkgUFCCUIBQUFBQglCAUFkgUFCCUIBQUFBQglCAUFSf4ABAQFBAIB2wIEBAQE/oABABsEBrUGBAH3BgUINxobJv4lJhsbNwgFBQUFCLEoCBcWF7cXFhYJKLAIBQYCEv63CAUFBQUIAUkIBQYGBQj+twgFBQUFCAFJCAUGBgUI/rcIBQUFBQgBSQgFBgYF/lsCHf3jDQsKBQUFBQoLDQJmQwUCAgVVJAgGBf3jMCIjISIvAiAFBggkCAUFYBUPDw8PFWAFBQgAAgAHAEkDtwKvABoALgAACQEGIyIvASY1ND8BJyY1ND8BNjMyFwEWFRQHARUUBwYjISInJj0BNDc2MyEyFxYBTv72BgcIBR0GBuHhBgYdBQgHBgEKBgYCaQUFCP3bCAUFBQUIAiUIBQUBhf72BgYcBggHBuDhBgcHBh0FBf71BQgHBv77JQgFBQUFCCUIBQUFBQAAAAEAIwAAA90DbgCzAAAlIicmIyIHBiMiJyY1NDc2NzY3Njc2PQE0JyYjISIHBh0BFBcWFxYzFhcWFRQHBiMiJyYjIgcGIyInJjU0NzY3Njc2NzY9ARE0NTQ1NCc0JyYnJicmJyYnJiMiJyY1NDc2MzIXFjMyNzYzMhcWFRQHBiMGBwYHBh0BFBcWMyEyNzY9ATQnJicmJyY1NDc2MzIXFjMyNzYzMhcWFRQHBgciBwYHBhURFBcWFxYXMhcWFRQHBiMDwRkzMhoZMjMZDQgHCQoNDBEQChIBBxX+fhYHARUJEhMODgwLBwcOGzU1GhgxMRgNBwcJCQsMEA8JEgECAQIDBAQFCBIRDQ0KCwcHDho1NRoYMDEYDgcHCQoMDRAQCBQBBw8BkA4HARQKFxcPDgcHDhkzMhkZMTEZDgcHCgoNDRARCBQUCRERDg0KCwcHDgACAgICDAsPEQkJAQEDAwUMROAMBQMDBQzUUQ0GAQIBCAgSDwwNAgICAgwMDhEICQECAwMFDUUhAdACDQ0ICA4OCgoLCwcHAwYBAQgIEg8MDQICAgINDA8RCAgBAgEGDFC2DAcBAQcMtlAMBgEBBgcWDwwNAgICAg0MDxEICAEBAgYNT/3mRAwGAgIBCQgRDwwNAAACAAD/twP/A7cAEwA5AAABMhcWFRQHAgcGIyInJjU0NwE2MwEWFxYfARYHBiMiJyYnJicmNRYXFhcWFxYzMjc2NzY3Njc2NzY3A5soHh4avkw3RUg0NDUBbSEp/fgXJicvAQJMTHtHNjYhIRARBBMUEBASEQkXCA8SExUVHR0eHikDtxsaKCQz/plGNDU0SUkwAUsf/bErHx8NKHpNTBobLi86OkQDDw4LCwoKFiUbGhERCgsEBAIAAQAAAAAAANox8glfDzz1AAsEAAAAAADVYbp/AAAAANVhun8AAP+3BAEDwAAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAA//8EAQABAAAAAAAAAAAAAAAAAAAAHwQAAAAAAAAAAAAAAAIAAAAEAAAABAAAAAQAAAAEAADABAAAAAQAAAAEAAAABAAAQAQAAAAEAAAABAAAUwQAAAAEAAAABAAAwAQAAMAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAyUAPwMlAAADvgAHBAAAIwP/AAAAAAAAAAoAFAAeAEwAlADaAQoBPgFwAcgCBgJQAnoDBAN6A8gEAgQ2BE4EpgToBTAFWAWABaoF7gamBvAH4gg+AAEAAAAfALQACgAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAHAAAAAQAAAAAAAgAHAGAAAQAAAAAAAwAHADYAAQAAAAAABAAHAHUAAQAAAAAABQALABUAAQAAAAAABgAHAEsAAQAAAAAACgAaAIoAAwABBAkAAQAOAAcAAwABBAkAAgAOAGcAAwABBAkAAwAOAD0AAwABBAkABAAOAHwAAwABBAkABQAWACAAAwABBAkABgAOAFIAAwABBAkACgA0AKRpY29tb29uAGkAYwBvAG0AbwBvAG5WZXJzaW9uIDEuMABWAGUAcgBzAGkAbwBuACAAMQAuADBpY29tb29uAGkAYwBvAG0AbwBvAG5pY29tb29uAGkAYwBvAG0AbwBvAG5SZWd1bGFyAFIAZQBnAHUAbABhAHJpY29tb29uAGkAYwBvAG0AbwBvAG5Gb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format(\'truetype\');  font-weight: normal;  font-style: normal;}[class^="w-e-icon-"],[class*=" w-e-icon-"] {  /* use !important to prevent issues with browser extensions that change fonts */  font-family: \'icomoon\' !important;  speak: none;  font-style: normal;  font-weight: normal;  font-variant: normal;  text-transform: none;  line-height: 1;  /* Better Font Rendering =========== */  -webkit-font-smoothing: antialiased;  -moz-osx-font-smoothing: grayscale;}.w-e-icon-close:before {  content: "\\f00d";}.w-e-icon-upload2:before {  content: "\\e9c6";}.w-e-icon-trash-o:before {  content: "\\f014";}.w-e-icon-header:before {  content: "\\f1dc";}.w-e-icon-pencil2:before {  content: "\\e906";}.w-e-icon-paint-brush:before {  content: "\\f1fc";}.w-e-icon-image:before {  content: "\\e90d";}.w-e-icon-play:before {  content: "\\e912";}.w-e-icon-location:before {  content: "\\e947";}.w-e-icon-undo:before {  content: "\\e965";}.w-e-icon-redo:before {  content: "\\e966";}.w-e-icon-quotes-left:before {  content: "\\e977";}.w-e-icon-list-numbered:before {  content: "\\e9b9";}.w-e-icon-list2:before {  content: "\\e9bb";}.w-e-icon-link:before {  content: "\\e9cb";}.w-e-icon-happy:before {  content: "\\e9df";}.w-e-icon-bold:before {  content: "\\ea62";}.w-e-icon-underline:before {  content: "\\ea63";}.w-e-icon-italic:before {  content: "\\ea64";}.w-e-icon-strikethrough:before {  content: "\\ea65";}.w-e-icon-table2:before {  content: "\\ea71";}.w-e-icon-paragraph-left:before {  content: "\\ea77";}.w-e-icon-paragraph-center:before {  content: "\\ea78";}.w-e-icon-paragraph-right:before {  content: "\\ea79";}.w-e-icon-terminal:before {  content: "\\f120";}.w-e-icon-page-break:before {  content: "\\ea68";}.w-e-icon-cancel-circle:before {  content: "\\ea0d";}.w-e-toolbar {  display: -webkit-box;  display: -ms-flexbox;  display: flex;  padding: 0 5px;  /* 单个菜单 */}.w-e-toolbar .w-e-menu {  position: relative;  z-index: 10001;  text-align: center;  padding: 5px 10px;  cursor: pointer;}.w-e-toolbar .w-e-menu i {  color: #999;}.w-e-toolbar .w-e-menu:hover i {  color: #333;}.w-e-toolbar .w-e-active i {  color: #1e88e5;}.w-e-toolbar .w-e-active:hover i {  color: #1e88e5;}.w-e-text-container .w-e-panel-container {  position: absolute;  top: 0;  left: 50%;  border: 1px solid #ccc;  border-top: 0;  box-shadow: 1px 1px 2px #ccc;  color: #333;  background-color: #fff;  /* 为 emotion panel 定制的样式 */  /* 上传图片的 panel 定制样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-close {  position: absolute;  right: 0;  top: 0;  padding: 5px;  margin: 2px 5px 0 0;  cursor: pointer;  color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-close:hover {  color: #333;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title {  list-style: none;  display: -webkit-box;  display: -ms-flexbox;  display: flex;  font-size: 14px;  margin: 2px 10px 0 10px;  border-bottom: 1px solid #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-item {  padding: 3px 5px;  color: #999;  cursor: pointer;  margin: 0 3px;  position: relative;  top: 1px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-title .w-e-active {  color: #333;  border-bottom: 1px solid #333;  cursor: default;  font-weight: 700;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content {  padding: 10px 15px 10px 15px;  font-size: 16px;  /* 输入框的样式 */  /* 按钮的样式 */}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus,.w-e-text-container .w-e-panel-container .w-e-panel-tab-content button:focus {  outline: none;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea {  width: 100%;  border: 1px solid #ccc;  padding: 5px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content textarea:focus {  border-color: #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text] {  border: none;  border-bottom: 1px solid #ccc;  font-size: 14px;  height: 20px;  color: #333;  text-align: left;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].small {  width: 30px;  text-align: center;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text].block {  display: block;  width: 100%;  margin: 10px 0;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content input[type=text]:focus {  border-bottom: 2px solid #1e88e5;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button {  font-size: 14px;  color: #1e88e5;  border: none;  padding: 5px 10px;  background-color: #fff;  cursor: pointer;  border-radius: 3px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.left {  float: left;  margin-right: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.right {  float: right;  margin-left: 10px;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.gray {  color: #999;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button.red {  color: #c24f4a;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container button:hover {  background-color: #f1f1f1;}.w-e-text-container .w-e-panel-container .w-e-panel-tab-content .w-e-button-container:after {  content: "";  display: table;  clear: both;}.w-e-text-container .w-e-panel-container .w-e-emoticon-container .w-e-item {  cursor: pointer;  font-size: 18px;  padding: 0 3px;  display: inline-block;  *display: inline;  *zoom: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container {  text-align: center;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn {  display: inline-block;  *display: inline;  *zoom: 1;  color: #999;  cursor: pointer;  font-size: 60px;  line-height: 1;}.w-e-text-container .w-e-panel-container .w-e-up-img-container .w-e-up-btn:hover {  color: #333;}.w-e-text-container {  position: relative;}.w-e-text-container .w-e-progress {  position: absolute;  background-color: #1e88e5;  bottom: 0;  left: 0;  height: 1px;}.w-e-text {  padding: 0 10px;  overflow-y: scroll;}.w-e-text p,.w-e-text h1,.w-e-text h2,.w-e-text h3,.w-e-text h4,.w-e-text h5,.w-e-text table,.w-e-text pre {  margin: 10px 0;  line-height: 1.5;}.w-e-text ul,.w-e-text ol {  margin: 10px 0 10px 20px;}.w-e-text blockquote {  display: block;  border-left: 8px solid #d0e5f2;  padding: 5px 10px;  margin: 10px 0;  line-height: 1.4;  font-size: 100%;  background-color: #f1f1f1;}.w-e-text code {  display: inline-block;  *display: inline;  *zoom: 1;  background-color: #f1f1f1;  border-radius: 3px;  padding: 3px 5px;  margin: 0 3px;}.w-e-text pre code {  display: block;}.w-e-text table {  border-top: 1px solid #ccc;  border-left: 1px solid #ccc;}.w-e-text table td,.w-e-text table th {  border-bottom: 1px solid #ccc;  border-right: 1px solid #ccc;  padding: 3px 5px;}.w-e-text table th {  border-bottom: 2px solid #ccc;  text-align: center;}.w-e-text:focus {  outline: none;}.w-e-text img {  cursor: pointer;}.w-e-text img:hover {  box-shadow: 0 0 5px #333;}.w-e-text img.w-e-selected {  border: 2px solid #1e88e5;}.w-e-text img.w-e-selected:hover {  box-shadow: none;}';
+
+// 将 css 代码添加到 <style> 中
+    var style = document.createElement('style');
+    style.type = 'text/css';
+    style.innerHTML = inlinecss;
+    document.getElementsByTagName('HEAD').item(0).appendChild(style);
+
+// 返回
+    var index = window.wangEditor || Editor;
+
+    return index;
+
+})));
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/Uploader.swf b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/Uploader.swf
new file mode 100644
index 0000000..bd75d60
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/Uploader.swf
Binary files differ
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.css b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.css
new file mode 100644
index 0000000..12f451f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.css
@@ -0,0 +1,28 @@
+.webuploader-container {
+	position: relative;
+}
+.webuploader-element-invisible {
+	position: absolute !important;
+	clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
+    clip: rect(1px,1px,1px,1px);
+}
+.webuploader-pick {
+	position: relative;
+	display: inline-block;
+	cursor: pointer;
+	background: #00b7ee;
+	padding: 10px 15px;
+	color: #fff;
+	text-align: center;
+	border-radius: 3px;
+	overflow: hidden;
+}
+.webuploader-pick-hover {
+	background: #00a2d4;
+}
+
+.webuploader-pick-disable {
+	opacity: 0.6;
+	pointer-events:none;
+}
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.js
new file mode 100644
index 0000000..7fca9c2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.js
@@ -0,0 +1,6502 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * 直接来源于jquery的代码。
+     * @fileOverview Promise/A+
+     * @beta
+     */
+    define('promise-builtin',[
+        'dollar'
+    ], function( $ ) {
+
+        var api;
+
+        // 简单版Callbacks, 默认memory,可选once.
+        function Callbacks( once ) {
+            var list = [],
+                stack = !once && [],
+                fire = function( data ) {
+                    memory = data;
+                    fired = true;
+                    firingIndex = firingStart || 0;
+                    firingStart = 0;
+                    firingLength = list.length;
+                    firing = true;
+
+                    for ( ; list && firingIndex < firingLength; firingIndex++ ) {
+                        list[ firingIndex ].apply( data[ 0 ], data[ 1 ] );
+                    }
+                    firing = false;
+
+                    if ( list ) {
+                        if ( stack ) {
+                            stack.length && fire( stack.shift() );
+                        }  else {
+                            list = [];
+                        }
+                    }
+                },
+                self = {
+                    add: function() {
+                        if ( list ) {
+                            var start = list.length;
+                            (function add ( args ) {
+                                $.each( args, function( _, arg ) {
+                                    var type = $.type( arg );
+                                    if ( type === 'function' ) {
+                                        list.push( arg );
+                                    } else if ( arg && arg.length &&
+                                            type !== 'string' ) {
+
+                                        add( arg );
+                                    }
+                                });
+                            })( arguments );
+
+                            if ( firing ) {
+                                firingLength = list.length;
+                            } else if ( memory ) {
+                                firingStart = start;
+                                fire( memory );
+                            }
+                        }
+                        return this;
+                    },
+
+                    disable: function() {
+                        list = stack = memory = undefined;
+                        return this;
+                    },
+
+                    // Lock the list in its current state
+                    lock: function() {
+                        stack = undefined;
+                        if ( !memory ) {
+                            self.disable();
+                        }
+                        return this;
+                    },
+
+                    fireWith: function( context, args ) {
+                        if ( list && (!fired || stack) ) {
+                            args = args || [];
+                            args = [ context, args.slice ? args.slice() : args ];
+                            if ( firing ) {
+                                stack.push( args );
+                            } else {
+                                fire( args );
+                            }
+                        }
+                        return this;
+                    },
+
+                    fire: function() {
+                        self.fireWith( this, arguments );
+                        return this;
+                    }
+                },
+
+                fired, firing, firingStart, firingLength, firingIndex, memory;
+
+            return self;
+        }
+
+        function Deferred( func ) {
+            var tuples = [
+                    // action, add listener, listener list, final state
+                    [ 'resolve', 'done', Callbacks( true ), 'resolved' ],
+                    [ 'reject', 'fail', Callbacks( true ), 'rejected' ],
+                    [ 'notify', 'progress', Callbacks() ]
+                ],
+                state = 'pending',
+                promise = {
+                    state: function() {
+                        return state;
+                    },
+                    always: function() {
+                        deferred.done( arguments ).fail( arguments );
+                        return this;
+                    },
+                    then: function( /* fnDone, fnFail, fnProgress */ ) {
+                        var fns = arguments;
+                        return Deferred(function( newDefer ) {
+                            $.each( tuples, function( i, tuple ) {
+                                var action = tuple[ 0 ],
+                                    fn = $.isFunction( fns[ i ] ) && fns[ i ];
+
+                                // deferred[ done | fail | progress ] for
+                                // forwarding actions to newDefer
+                                deferred[ tuple[ 1 ] ](function() {
+                                    var returned;
+
+                                    returned = fn && fn.apply( this, arguments );
+
+                                    if ( returned &&
+                                            $.isFunction( returned.promise ) ) {
+
+                                        returned.promise()
+                                                .done( newDefer.resolve )
+                                                .fail( newDefer.reject )
+                                                .progress( newDefer.notify );
+                                    } else {
+                                        newDefer[ action + 'With' ](
+                                                this === promise ?
+                                                newDefer.promise() :
+                                                this,
+                                                fn ? [ returned ] : arguments );
+                                    }
+                                });
+                            });
+                            fns = null;
+                        }).promise();
+                    },
+
+                    // Get a promise for this deferred
+                    // If obj is provided, the promise aspect is added to the object
+                    promise: function( obj ) {
+
+                        return obj != null ? $.extend( obj, promise ) : promise;
+                    }
+                },
+                deferred = {};
+
+            // Keep pipe for back-compat
+            promise.pipe = promise.then;
+
+            // Add list-specific methods
+            $.each( tuples, function( i, tuple ) {
+                var list = tuple[ 2 ],
+                    stateString = tuple[ 3 ];
+
+                // promise[ done | fail | progress ] = list.add
+                promise[ tuple[ 1 ] ] = list.add;
+
+                // Handle state
+                if ( stateString ) {
+                    list.add(function() {
+                        // state = [ resolved | rejected ]
+                        state = stateString;
+
+                    // [ reject_list | resolve_list ].disable; progress_list.lock
+                    }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock );
+                }
+
+                // deferred[ resolve | reject | notify ]
+                deferred[ tuple[ 0 ] ] = function() {
+                    deferred[ tuple[ 0 ] + 'With' ]( this === deferred ? promise :
+                            this, arguments );
+                    return this;
+                };
+                deferred[ tuple[ 0 ] + 'With' ] = list.fireWith;
+            });
+
+            // Make the deferred a promise
+            promise.promise( deferred );
+
+            // Call given func if any
+            if ( func ) {
+                func.call( deferred, deferred );
+            }
+
+            // All done!
+            return deferred;
+        }
+
+        api = {
+            /**
+             * 创建一个[Deferred](http://api.jquery.com/category/deferred-object/)对象。
+             * 详细的Deferred用法说明,请参照jQuery的API文档。
+             *
+             * Deferred对象在钩子回掉函数中经常要用到,用来处理需要等待的异步操作。
+             *
+             * @for  Base
+             * @method Deferred
+             * @grammar Base.Deferred() => Deferred
+             * @example
+             * // 在文件开始发送前做些异步操作。
+             * // WebUploader会等待此异步操作完成后,开始发送文件。
+             * Uploader.register({
+             *     'before-send-file': 'doSomthingAsync'
+             * }, {
+             *
+             *     doSomthingAsync: function() {
+             *         var deferred = Base.Deferred();
+             *
+             *         // 模拟一次异步操作。
+             *         setTimeout(deferred.resolve, 2000);
+             *
+             *         return deferred.promise();
+             *     }
+             * });
+             */
+            Deferred: Deferred,
+
+            /**
+             * 判断传入的参数是否为一个promise对象。
+             * @method isPromise
+             * @grammar Base.isPromise( anything ) => Boolean
+             * @param  {*}  anything 检测对象。
+             * @return {Boolean}
+             * @for  Base
+             * @example
+             * console.log( Base.isPromise() );    // => false
+             * console.log( Base.isPromise({ key: '123' }) );    // => false
+             * console.log( Base.isPromise( Base.Deferred().promise() ) );    // => true
+             *
+             * // Deferred也是一个Promise
+             * console.log( Base.isPromise( Base.Deferred() ) );    // => true
+             */
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            },
+
+            /**
+             * 返回一个promise,此promise在所有传入的promise都完成了后完成。
+             * 详细请查看[这里](http://api.jquery.com/jQuery.when/)。
+             *
+             * @method when
+             * @for  Base
+             * @grammar Base.when( promise1[, promise2[, promise3...]] ) => Promise
+             */
+            when: function( subordinate /* , ..., subordinateN */ ) {
+                var i = 0,
+                    slice = [].slice,
+                    resolveValues = slice.call( arguments ),
+                    length = resolveValues.length,
+
+                    // the count of uncompleted subordinates
+                    remaining = length !== 1 || (subordinate &&
+                        $.isFunction( subordinate.promise )) ? length : 0,
+
+                    // the master Deferred. If resolveValues consist of
+                    // only a single Deferred, just use that.
+                    deferred = remaining === 1 ? subordinate : Deferred(),
+
+                    // Update function for both resolve and progress values
+                    updateFunc = function( i, contexts, values ) {
+                        return function( value ) {
+                            contexts[ i ] = this;
+                            values[ i ] = arguments.length > 1 ?
+                                    slice.call( arguments ) : value;
+
+                            if ( values === progressValues ) {
+                                deferred.notifyWith( contexts, values );
+                            } else if ( !(--remaining) ) {
+                                deferred.resolveWith( contexts, values );
+                            }
+                        };
+                    },
+
+                    progressValues, progressContexts, resolveContexts;
+
+                // add listeners to Deferred subordinates; treat others as resolved
+                if ( length > 1 ) {
+                    progressValues = new Array( length );
+                    progressContexts = new Array( length );
+                    resolveContexts = new Array( length );
+                    for ( ; i < length; i++ ) {
+                        if ( resolveValues[ i ] &&
+                                $.isFunction( resolveValues[ i ].promise ) ) {
+
+                            resolveValues[ i ].promise()
+                                    .done( updateFunc( i, resolveContexts,
+                                            resolveValues ) )
+                                    .fail( deferred.reject )
+                                    .progress( updateFunc( i, progressContexts,
+                                            progressValues ) );
+                        } else {
+                            --remaining;
+                        }
+                    }
+                }
+
+                // if we're not waiting on anything, resolve the master
+                if ( !remaining ) {
+                    deferred.resolveWith( resolveContexts, resolveValues );
+                }
+
+                return deferred.promise();
+            }
+        };
+
+        return api;
+    });
+    define('promise',[
+        'promise-builtin'
+    ], function( $ ) {
+        return $;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('lib/image',[
+        'base',
+        'runtime/client',
+        'lib/blob'
+    ], function( Base, RuntimeClient, Blob ) {
+        var $ = Base.$;
+
+        // 构造器。
+        function Image( opts ) {
+            this.options = $.extend({}, Image.options, opts );
+            RuntimeClient.call( this, 'Image' );
+
+            this.on( 'load', function() {
+                this._info = this.exec('info');
+                this._meta = this.exec('meta');
+            });
+        }
+
+        // 默认选项。
+        Image.options = {
+
+            // 默认的图片处理质量
+            quality: 90,
+
+            // 是否裁剪
+            crop: false,
+
+            // 是否保留头部信息
+            preserveHeaders: false,
+
+            // 是否允许放大。
+            allowMagnify: false
+        };
+
+        // 继承RuntimeClient.
+        Base.inherits( RuntimeClient, {
+            constructor: Image,
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    ruid = blob.getRuid();
+
+                this.connectRuntime( ruid, function() {
+                    me.exec( 'init', me.options );
+                    me.exec( 'loadFromBlob', blob );
+                });
+            },
+
+            resize: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'resize' ].concat( args ) );
+            },
+
+            crop: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'crop' ].concat( args ) );
+            },
+
+            getAsDataUrl: function( type ) {
+                return this.exec( 'getAsDataUrl', type );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this.exec( 'getAsBlob', type );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+
+        return Image;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/image',[
+        'base',
+        'uploader',
+        'lib/image',
+        'widgets/widget'
+    ], function( Base, Uploader, Image ) {
+
+        var $ = Base.$,
+            throttle;
+
+        // 根据要处理的文件大小来节流,一次不能处理太多,会卡。
+        throttle = (function( max ) {
+            var occupied = 0,
+                waiting = [],
+                tick = function() {
+                    var item;
+
+                    while ( waiting.length && occupied < max ) {
+                        item = waiting.shift();
+                        occupied += item[ 0 ];
+                        item[ 1 ]();
+                    }
+                };
+
+            return function( emiter, size, cb ) {
+                waiting.push([ size, cb ]);
+                emiter.once( 'destroy', function() {
+                    occupied -= size;
+                    setTimeout( tick, 1 );
+                });
+                setTimeout( tick, 1 );
+            };
+        })( 5 * 1024 * 1024 );
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Object} [thumb]
+             * @namespace options
+             * @for Uploader
+             * @description 配置生成缩略图的选项。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 110,
+             *     height: 110,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 70,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: true,
+             *
+             *     // 是否允许裁剪。
+             *     crop: true,
+             *
+             *     // 为空的话则保留原有图片格式。
+             *     // 否则强制转换成指定的类型。
+             *     type: 'image/jpeg'
+             * }
+             * ```
+             */
+            thumb: {
+                width: 110,
+                height: 110,
+                quality: 70,
+                allowMagnify: true,
+                crop: true,
+                preserveHeaders: false,
+
+                // 为空的话则保留原有图片格式。
+                // 否则强制转换成指定的类型。
+                // IE 8下面 base64 大小不能超过 32K 否则预览失败,而非 jpeg 编码的图片很可
+                // 能会超过 32k, 所以这里设置成预览的时候都是 image/jpeg
+                type: 'image/jpeg'
+            },
+
+            /**
+             * @property {Object} [compress]
+             * @namespace options
+             * @for Uploader
+             * @description 配置压缩的图片的选项。如果此选项为`false`, 则图片在上传前不进行压缩。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 1600,
+             *     height: 1600,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 90,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: false,
+             *
+             *     // 是否允许裁剪。
+             *     crop: false,
+             *
+             *     // 是否保留头部meta信息。
+             *     preserveHeaders: true,
+             *
+             *     // 如果发现压缩后文件大小比原来还大,则使用原来图片
+             *     // 此属性可能会影响图片自动纠正功能
+             *     noCompressIfLarger: false,
+             *
+             *     // 单位字节,如果图片大小小于此值,不会采用压缩。
+             *     compressSize: 0
+             * }
+             * ```
+             */
+            compress: {
+                width: 1600,
+                height: 1600,
+                quality: 90,
+                allowMagnify: false,
+                crop: false,
+                preserveHeaders: true
+            }
+        });
+
+        return Uploader.register({
+
+            name: 'image',
+
+
+            /**
+             * 生成缩略图,此过程为异步,所以需要传入`callback`。
+             * 通常情况在图片加入队里后调用此方法来生成预览图以增强交互效果。
+             *
+             * 当 width 或者 height 的值介于 0 - 1 时,被当成百分比使用。
+             *
+             * `callback`中可以接收到两个参数。
+             * * 第一个为error,如果生成缩略图有错误,此error将为真。
+             * * 第二个为ret, 缩略图的Data URL值。
+             *
+             * **注意**
+             * Date URL在IE6/7中不支持,所以不用调用此方法了,直接显示一张暂不支持预览图片好了。
+             * 也可以借助服务端,将 base64 数据传给服务端,生成一个临时文件供预览。
+             *
+             * @method makeThumb
+             * @grammar makeThumb( file, callback ) => undefined
+             * @grammar makeThumb( file, callback, width, height ) => undefined
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.makeThumb( file, function( error, ret ) {
+             *         if ( error ) {
+             *             $li.text('预览错误');
+             *         } else {
+             *             $li.append('<img alt="" src="' + ret + '" />');
+             *         }
+             *     });
+             *
+             * });
+             */
+            makeThumb: function( file, cb, width, height ) {
+                var opts, image;
+
+                file = this.request( 'get-file', file );
+
+                // 只预览图片格式。
+                if ( !file.type.match( /^image/ ) ) {
+                    cb( true );
+                    return;
+                }
+
+                opts = $.extend({}, this.options.thumb );
+
+                // 如果传入的是object.
+                if ( $.isPlainObject( width ) ) {
+                    opts = $.extend( opts, width );
+                    width = null;
+                }
+
+                width = width || opts.width;
+                height = height || opts.height;
+
+                image = new Image( opts );
+
+                image.once( 'load', function() {
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                // 当 resize 完后
+                image.once( 'complete', function() {
+                    cb( false, image.getAsDataUrl( opts.type ) );
+                    image.destroy();
+                });
+
+                image.once( 'error', function( reason ) {
+                    cb( reason || true );
+                    image.destroy();
+                });
+
+                throttle( image, file.source.size, function() {
+                    file._info && image.info( file._info );
+                    file._meta && image.meta( file._meta );
+                    image.loadFromBlob( file.source );
+                });
+            },
+
+            beforeSendFile: function( file ) {
+                var opts = this.options.compress || this.options.resize,
+                    compressSize = opts && opts.compressSize || 0,
+                    noCompressIfLarger = opts && opts.noCompressIfLarger || false,
+                    image, deferred;
+
+                file = this.request( 'get-file', file );
+
+                // 只压缩 jpeg 图片格式。
+                // gif 可能会丢失针
+                // bmp png 基本上尺寸都不大,且压缩比比较小。
+                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
+                        file.size < compressSize ||
+                        file._compressed ) {
+                    return;
+                }
+
+                opts = $.extend({}, opts );
+                deferred = Base.Deferred();
+
+                image = new Image( opts );
+
+                deferred.always(function() {
+                    image.destroy();
+                    image = null;
+                });
+                image.once( 'error', deferred.reject );
+                image.once( 'load', function() {
+                    var width = opts.width,
+                        height = opts.height;
+
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                image.once( 'complete', function() {
+                    var blob, size;
+
+                    // 移动端 UC / qq 浏览器的无图模式下
+                    // ctx.getImageData 处理大图的时候会报 Exception
+                    // INDEX_SIZE_ERR: DOM Exception 1
+                    try {
+                        blob = image.getAsBlob( opts.type );
+
+                        size = file.size;
+
+                        // 如果压缩后,比原来还大则不用压缩后的。
+                        if ( !noCompressIfLarger || blob.size < size ) {
+                            // file.source.destroy && file.source.destroy();
+                            file.source = blob;
+                            file.size = blob.size;
+
+                            file.trigger( 'resize', blob.size, size );
+                        }
+
+                        // 标记,避免重复压缩。
+                        file._compressed = true;
+                        deferred.resolve();
+                    } catch ( e ) {
+                        // 出错了直接继续,让其上传原始图片
+                        deferred.resolve();
+                    }
+                });
+
+                file._info && image.info( file._info );
+                file._meta && image.meta( file._meta );
+
+                image.loadFromBlob( file.source );
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 日志组件,主要用来收集错误信息,可以帮助 webuploader 更好的定位问题和发展。
+     *
+     * 如果您不想要启用此功能,请在打包的时候去掉 log 模块。
+     *
+     * 或者可以在初始化的时候通过 options.disableWidgets 属性禁用。
+     *
+     * 如:
+     * WebUploader.create({
+     *     ...
+     *
+     *     disableWidgets: 'log',
+     *
+     *     ...
+     * })
+     */
+    define('widgets/log',[
+        'base',
+        'uploader',
+        'widgets/widget'
+    ], function( Base, Uploader ) {
+        var $ = Base.$,
+            logUrl = ' http://static.tieba.baidu.com/tb/pms/img/st.gif??',
+            product = (location.hostname || location.host || 'protected').toLowerCase(),
+
+            // 只针对 baidu 内部产品用户做统计功能。
+            enable = product && /baidu/i.exec(product),
+            base;
+
+        if (!enable) {
+            return;
+        }
+
+        base = {
+            dv: 3,
+            master: 'webuploader',
+            online: /test/.exec(product) ? 0 : 1,
+            module: '',
+            product: product,
+            type: 0
+        };
+
+        function send(data) {
+            var obj = $.extend({}, base, data),
+                url = logUrl.replace(/^(.*)\?/, '$1' + $.param( obj )),
+                image = new Image();
+
+            image.src = url;
+        }
+
+        return Uploader.register({
+            name: 'log',
+
+            init: function() {
+                var owner = this.owner,
+                    count = 0,
+                    size = 0;
+
+                owner
+                    .on('error', function(code) {
+                        send({
+                            type: 2,
+                            c_error_code: code
+                        });
+                    })
+                    .on('uploadError', function(file, reason) {
+                        send({
+                            type: 2,
+                            c_error_code: 'UPLOAD_ERROR',
+                            c_reason: '' + reason
+                        });
+                    })
+                    .on('uploadComplete', function(file) {
+                        count++;
+                        size += file.size;
+                    }).
+                    on('uploadFinished', function() {
+                        send({
+                            c_count: count,
+                            c_size: size
+                        });
+                        count = size = 0;
+                    });
+
+                send({
+                    c_usage: 1
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/util',[
+        'base'
+    ], function( Base ) {
+
+        var urlAPI = window.createObjectURL && window ||
+                window.URL && URL.revokeObjectURL && URL ||
+                window.webkitURL,
+            createObjectURL = Base.noop,
+            revokeObjectURL = createObjectURL;
+
+        if ( urlAPI ) {
+
+            // 更安全的方式调用,比如android里面就能把context改成其他的对象。
+            createObjectURL = function() {
+                return urlAPI.createObjectURL.apply( urlAPI, arguments );
+            };
+
+            revokeObjectURL = function() {
+                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
+            };
+        }
+
+        return {
+            createObjectURL: createObjectURL,
+            revokeObjectURL: revokeObjectURL,
+
+            dataURL2Blob: function( dataURI ) {
+                var byteStr, intArray, ab, i, mimetype, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                ab = new ArrayBuffer( byteStr.length );
+                intArray = new Uint8Array( ab );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
+
+                return this.arrayBufferToBlob( ab, mimetype );
+            },
+
+            dataURL2ArrayBuffer: function( dataURI ) {
+                var byteStr, intArray, i, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                intArray = new Uint8Array( byteStr.length );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                return intArray.buffer;
+            },
+
+            arrayBufferToBlob: function( buffer, type ) {
+                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
+                    bb;
+
+                // android不支持直接new Blob, 只能借助blobbuilder.
+                if ( builder ) {
+                    bb = new builder();
+                    bb.append( buffer );
+                    return bb.getBlob( type );
+                }
+
+                return new Blob([ buffer ], type ? { type: type } : {} );
+            },
+
+            // 抽出来主要是为了解决android下面canvas.toDataUrl不支持jpeg.
+            // 你得到的结果是png.
+            canvasToDataUrl: function( canvas, type, quality ) {
+                return canvas.toDataURL( type, quality / 100 );
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            parseMeta: function( blob, callback ) {
+                callback( false, {});
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            updateImageHead: function( data ) {
+                return data;
+            }
+        };
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/imagemeta',[
+        'runtime/html5/util'
+    ], function( Util ) {
+
+        var api;
+
+        api = {
+            parsers: {
+                0xffe1: []
+            },
+
+            maxMetaDataSize: 262144,
+
+            parse: function( blob, cb ) {
+                var me = this,
+                    fr = new FileReader();
+
+                fr.onload = function() {
+                    cb( false, me._parse( this.result ) );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                fr.onerror = function( e ) {
+                    cb( e.message );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                blob = blob.slice( 0, me.maxMetaDataSize );
+                fr.readAsArrayBuffer( blob.getSource() );
+            },
+
+            _parse: function( buffer, noParse ) {
+                if ( buffer.byteLength < 6 ) {
+                    return;
+                }
+
+                var dataview = new DataView( buffer ),
+                    offset = 2,
+                    maxOffset = dataview.byteLength - 4,
+                    headLength = offset,
+                    ret = {},
+                    markerBytes, markerLength, parsers, i;
+
+                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
+
+                    while ( offset < maxOffset ) {
+                        markerBytes = dataview.getUint16( offset );
+
+                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
+                                markerBytes === 0xfffe ) {
+
+                            markerLength = dataview.getUint16( offset + 2 ) + 2;
+
+                            if ( offset + markerLength > dataview.byteLength ) {
+                                break;
+                            }
+
+                            parsers = api.parsers[ markerBytes ];
+
+                            if ( !noParse && parsers ) {
+                                for ( i = 0; i < parsers.length; i += 1 ) {
+                                    parsers[ i ].call( api, dataview, offset,
+                                            markerLength, ret );
+                                }
+                            }
+
+                            offset += markerLength;
+                            headLength = offset;
+                        } else {
+                            break;
+                        }
+                    }
+
+                    if ( headLength > 6 ) {
+                        if ( buffer.slice ) {
+                            ret.imageHead = buffer.slice( 2, headLength );
+                        } else {
+                            // Workaround for IE10, which does not yet
+                            // support ArrayBuffer.slice:
+                            ret.imageHead = new Uint8Array( buffer )
+                                    .subarray( 2, headLength );
+                        }
+                    }
+                }
+
+                return ret;
+            },
+
+            updateImageHead: function( buffer, head ) {
+                var data = this._parse( buffer, true ),
+                    buf1, buf2, bodyoffset;
+
+
+                bodyoffset = 2;
+                if ( data.imageHead ) {
+                    bodyoffset = 2 + data.imageHead.byteLength;
+                }
+
+                if ( buffer.slice ) {
+                    buf2 = buffer.slice( bodyoffset );
+                } else {
+                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
+                }
+
+                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
+
+                buf1[ 0 ] = 0xFF;
+                buf1[ 1 ] = 0xD8;
+                buf1.set( new Uint8Array( head ), 2 );
+                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
+
+                return buf1.buffer;
+            }
+        };
+
+        Util.parseMeta = function() {
+            return api.parse.apply( api, arguments );
+        };
+
+        Util.updateImageHead = function() {
+            return api.updateImageHead.apply( api, arguments );
+        };
+
+        return api;
+    });
+    /**
+     * 代码来自于:https://github.com/blueimp/JavaScript-Load-Image
+     * 暂时项目中只用了orientation.
+     *
+     * 去除了 Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
+     * @fileOverview EXIF解析
+     */
+
+    // Sample
+    // ====================================
+    // Make : Apple
+    // Model : iPhone 4S
+    // Orientation : 1
+    // XResolution : 72 [72/1]
+    // YResolution : 72 [72/1]
+    // ResolutionUnit : 2
+    // Software : QuickTime 7.7.1
+    // DateTime : 2013:09:01 22:53:55
+    // ExifIFDPointer : 190
+    // ExposureTime : 0.058823529411764705 [1/17]
+    // FNumber : 2.4 [12/5]
+    // ExposureProgram : Normal program
+    // ISOSpeedRatings : 800
+    // ExifVersion : 0220
+    // DateTimeOriginal : 2013:09:01 22:52:51
+    // DateTimeDigitized : 2013:09:01 22:52:51
+    // ComponentsConfiguration : YCbCr
+    // ShutterSpeedValue : 4.058893515764426
+    // ApertureValue : 2.5260688216892597 [4845/1918]
+    // BrightnessValue : -0.3126686601998395
+    // MeteringMode : Pattern
+    // Flash : Flash did not fire, compulsory flash mode
+    // FocalLength : 4.28 [107/25]
+    // SubjectArea : [4 values]
+    // FlashpixVersion : 0100
+    // ColorSpace : 1
+    // PixelXDimension : 2448
+    // PixelYDimension : 3264
+    // SensingMethod : One-chip color area sensor
+    // ExposureMode : 0
+    // WhiteBalance : Auto white balance
+    // FocalLengthIn35mmFilm : 35
+    // SceneCaptureType : Standard
+    define('runtime/html5/imagemeta/exif',[
+        'base',
+        'runtime/html5/imagemeta'
+    ], function( Base, ImageMeta ) {
+
+        var EXIF = {};
+
+        EXIF.ExifMap = function() {
+            return this;
+        };
+
+        EXIF.ExifMap.prototype.map = {
+            'Orientation': 0x0112
+        };
+
+        EXIF.ExifMap.prototype.get = function( id ) {
+            return this[ id ] || this[ this.map[ id ] ];
+        };
+
+        EXIF.exifTagTypes = {
+            // byte, 8-bit unsigned int:
+            1: {
+                getValue: function( dataView, dataOffset ) {
+                    return dataView.getUint8( dataOffset );
+                },
+                size: 1
+            },
+
+            // ascii, 8-bit byte:
+            2: {
+                getValue: function( dataView, dataOffset ) {
+                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
+                },
+                size: 1,
+                ascii: true
+            },
+
+            // short, 16 bit int:
+            3: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint16( dataOffset, littleEndian );
+                },
+                size: 2
+            },
+
+            // long, 32 bit int:
+            4: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // rational = two long values,
+            // first is numerator, second is denominator:
+            5: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian ) /
+                        dataView.getUint32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            },
+
+            // slong, 32 bit signed int:
+            9: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // srational, two slongs, first is numerator, second is denominator:
+            10: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian ) /
+                        dataView.getInt32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            }
+        };
+
+        // undefined, 8-bit byte, value depending on field:
+        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
+
+        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
+                littleEndian ) {
+
+            var tagType = EXIF.exifTagTypes[ type ],
+                tagSize, dataOffset, values, i, str, c;
+
+            if ( !tagType ) {
+                Base.log('Invalid Exif data: Invalid tag type.');
+                return;
+            }
+
+            tagSize = tagType.size * length;
+
+            // Determine if the value is contained in the dataOffset bytes,
+            // or if the value at the dataOffset is a pointer to the actual data:
+            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
+                    littleEndian ) : (offset + 8);
+
+            if ( dataOffset + tagSize > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid data offset.');
+                return;
+            }
+
+            if ( length === 1 ) {
+                return tagType.getValue( dataView, dataOffset, littleEndian );
+            }
+
+            values = [];
+
+            for ( i = 0; i < length; i += 1 ) {
+                values[ i ] = tagType.getValue( dataView,
+                        dataOffset + i * tagType.size, littleEndian );
+            }
+
+            if ( tagType.ascii ) {
+                str = '';
+
+                // Concatenate the chars:
+                for ( i = 0; i < values.length; i += 1 ) {
+                    c = values[ i ];
+
+                    // Ignore the terminating NULL byte(s):
+                    if ( c === '\u0000' ) {
+                        break;
+                    }
+                    str += c;
+                }
+
+                return str;
+            }
+            return values;
+        };
+
+        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
+                data ) {
+
+            var tag = dataView.getUint16( offset, littleEndian );
+            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
+                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
+                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
+                    littleEndian );
+        };
+
+        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
+                littleEndian, data ) {
+
+            var tagsNumber, dirEndOffset, i;
+
+            if ( dirOffset + 6 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory offset.');
+                return;
+            }
+
+            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
+            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
+
+            if ( dirEndOffset + 4 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory size.');
+                return;
+            }
+
+            for ( i = 0; i < tagsNumber; i += 1 ) {
+                this.parseExifTag( dataView, tiffOffset,
+                        dirOffset + 2 + 12 * i,    // tag offset
+                        littleEndian, data );
+            }
+
+            // Return the offset to the next directory:
+            return dataView.getUint32( dirEndOffset, littleEndian );
+        };
+
+        // EXIF.getExifThumbnail = function(dataView, offset, length) {
+        //     var hexData,
+        //         i,
+        //         b;
+        //     if (!length || offset + length > dataView.byteLength) {
+        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
+        //         return;
+        //     }
+        //     hexData = [];
+        //     for (i = 0; i < length; i += 1) {
+        //         b = dataView.getUint8(offset + i);
+        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
+        //     }
+        //     return 'data:image/jpeg,%' + hexData.join('%');
+        // };
+
+        EXIF.parseExifData = function( dataView, offset, length, data ) {
+
+            var tiffOffset = offset + 10,
+                littleEndian, dirOffset;
+
+            // Check for the ASCII code for "Exif" (0x45786966):
+            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
+                // No Exif data, might be XMP data instead
+                return;
+            }
+            if ( tiffOffset + 8 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid segment size.');
+                return;
+            }
+
+            // Check for the two null bytes:
+            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
+                Base.log('Invalid Exif data: Missing byte alignment offset.');
+                return;
+            }
+
+            // Check the byte alignment:
+            switch ( dataView.getUint16( tiffOffset ) ) {
+                case 0x4949:
+                    littleEndian = true;
+                    break;
+
+                case 0x4D4D:
+                    littleEndian = false;
+                    break;
+
+                default:
+                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
+                    return;
+            }
+
+            // Check for the TIFF tag marker (0x002A):
+            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
+                Base.log('Invalid Exif data: Missing TIFF marker.');
+                return;
+            }
+
+            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
+            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
+            // Create the exif object to store the tags:
+            data.exif = new EXIF.ExifMap();
+            // Parse the tags of the main image directory and retrieve the
+            // offset to the next directory, usually the thumbnail directory:
+            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
+                    tiffOffset + dirOffset, littleEndian, data );
+
+            // 尝试读取缩略图
+            // if ( dirOffset ) {
+            //     thumbnailData = {exif: {}};
+            //     dirOffset = EXIF.parseExifTags(
+            //         dataView,
+            //         tiffOffset,
+            //         tiffOffset + dirOffset,
+            //         littleEndian,
+            //         thumbnailData
+            //     );
+
+            //     // Check for JPEG Thumbnail offset:
+            //     if (thumbnailData.exif[0x0201]) {
+            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
+            //             dataView,
+            //             tiffOffset + thumbnailData.exif[0x0201],
+            //             thumbnailData.exif[0x0202] // Thumbnail data length
+            //         );
+            //     }
+            // }
+        };
+
+        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
+        return EXIF;
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('runtime/html5/image',[
+        'base',
+        'runtime/html5/runtime',
+        'runtime/html5/util'
+    ], function( Base, Html5Runtime, Util ) {
+
+        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
+
+        return Html5Runtime.register( 'Image', {
+
+            // flag: 标记是否被修改过。
+            modified: false,
+
+            init: function() {
+                var me = this,
+                    img = new Image();
+
+                img.onload = function() {
+
+                    me._info = {
+                        type: me.type,
+                        width: this.width,
+                        height: this.height
+                    };
+
+                    // 读取meta信息。
+                    if ( !me._metas && 'image/jpeg' === me.type ) {
+                        Util.parseMeta( me._blob, function( error, ret ) {
+                            me._metas = ret;
+                            me.owner.trigger('load');
+                        });
+                    } else {
+                        me.owner.trigger('load');
+                    }
+                };
+
+                img.onerror = function() {
+                    me.owner.trigger('error');
+                };
+
+                me._img = img;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    img = me._img;
+
+                me._blob = blob;
+                me.type = blob.type;
+                img.src = Util.createObjectURL( blob.getSource() );
+                me.owner.once( 'load', function() {
+                    Util.revokeObjectURL( img.src );
+                });
+            },
+
+            resize: function( width, height ) {
+                var canvas = this._canvas ||
+                        (this._canvas = document.createElement('canvas'));
+
+                this._resize( this._img, canvas, width, height );
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'resize' );
+            },
+
+            crop: function( x, y, w, h, s ) {
+                var cvs = this._canvas ||
+                        (this._canvas = document.createElement('canvas')),
+                    opts = this.options,
+                    img = this._img,
+                    iw = img.naturalWidth,
+                    ih = img.naturalHeight,
+                    orientation = this.getOrientation();
+
+                s = s || 1;
+
+                // todo 解决 orientation 的问题。
+                // values that require 90 degree rotation
+                // if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                //     switch ( orientation ) {
+                //         case 6:
+                //             tmp = x;
+                //             x = y;
+                //             y = iw * s - tmp - w;
+                //             console.log(ih * s, tmp, w)
+                //             break;
+                //     }
+
+                //     (w ^= h, h ^= w, w ^= h);
+                // }
+
+                cvs.width = w;
+                cvs.height = h;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+                this._renderImageToCanvas( cvs, img, -x, -y, iw * s, ih * s );
+
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'crop' );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this._blob,
+                    opts = this.options,
+                    canvas;
+
+                type = type || this.type;
+
+                // blob需要重新生成。
+                if ( this.modified || this.type !== type ) {
+                    canvas = this._canvas;
+
+                    if ( type === 'image/jpeg' ) {
+
+                        blob = Util.canvasToDataUrl( canvas, type, opts.quality );
+
+                        if ( opts.preserveHeaders && this._metas &&
+                                this._metas.imageHead ) {
+
+                            blob = Util.dataURL2ArrayBuffer( blob );
+                            blob = Util.updateImageHead( blob,
+                                    this._metas.imageHead );
+                            blob = Util.arrayBufferToBlob( blob, type );
+                            return blob;
+                        }
+                    } else {
+                        blob = Util.canvasToDataUrl( canvas, type );
+                    }
+
+                    blob = Util.dataURL2Blob( blob );
+                }
+
+                return blob;
+            },
+
+            getAsDataUrl: function( type ) {
+                var opts = this.options;
+
+                type = type || this.type;
+
+                if ( type === 'image/jpeg' ) {
+                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
+                } else {
+                    return this._canvas.toDataURL( type );
+                }
+            },
+
+            getOrientation: function() {
+                return this._metas && this._metas.exif &&
+                        this._metas.exif.get('Orientation') || 1;
+            },
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            destroy: function() {
+                var canvas = this._canvas;
+                this._img.onload = null;
+
+                if ( canvas ) {
+                    canvas.getContext('2d')
+                            .clearRect( 0, 0, canvas.width, canvas.height );
+                    canvas.width = canvas.height = 0;
+                    this._canvas = null;
+                }
+
+                // 释放内存。非常重要,否则释放不了image的内存。
+                this._img.src = BLANK;
+                this._img = this._blob = null;
+            },
+
+            _resize: function( img, cvs, width, height ) {
+                var opts = this.options,
+                    naturalWidth = img.width,
+                    naturalHeight = img.height,
+                    orientation = this.getOrientation(),
+                    scale, w, h, x, y;
+
+                // values that require 90 degree rotation
+                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                    // 交换width, height的值。
+                    width ^= height;
+                    height ^= width;
+                    width ^= height;
+                }
+
+                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
+                        height / naturalHeight );
+
+                // 不允许放大。
+                opts.allowMagnify || (scale = Math.min( 1, scale ));
+
+                w = naturalWidth * scale;
+                h = naturalHeight * scale;
+
+                if ( opts.crop ) {
+                    cvs.width = width;
+                    cvs.height = height;
+                } else {
+                    cvs.width = w;
+                    cvs.height = h;
+                }
+
+                x = (cvs.width - w) / 2;
+                y = (cvs.height - h) / 2;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+
+                this._renderImageToCanvas( cvs, img, x, y, w, h );
+            },
+
+            _rotate2Orientaion: function( canvas, orientation ) {
+                var width = canvas.width,
+                    height = canvas.height,
+                    ctx = canvas.getContext('2d');
+
+                switch ( orientation ) {
+                    case 5:
+                    case 6:
+                    case 7:
+                    case 8:
+                        canvas.width = height;
+                        canvas.height = width;
+                        break;
+                }
+
+                switch ( orientation ) {
+                    case 2:    // horizontal flip
+                        ctx.translate( width, 0 );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 3:    // 180 rotate left
+                        ctx.translate( width, height );
+                        ctx.rotate( Math.PI );
+                        break;
+
+                    case 4:    // vertical flip
+                        ctx.translate( 0, height );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 5:    // vertical flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 6:    // 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( 0, -height );
+                        break;
+
+                    case 7:    // horizontal flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( width, -height );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 8:    // 90 rotate left
+                        ctx.rotate( -0.5 * Math.PI );
+                        ctx.translate( -width, 0 );
+                        break;
+                }
+            },
+
+            // https://github.com/stomita/ios-imagefile-megapixel/
+            // blob/master/src/megapix-image.js
+            _renderImageToCanvas: (function() {
+
+                // 如果不是ios, 不需要这么复杂!
+                if ( !Base.os.ios ) {
+                    return function( canvas ) {
+                        var args = Base.slice( arguments, 1 ),
+                            ctx = canvas.getContext('2d');
+
+                        ctx.drawImage.apply( ctx, args );
+                    };
+                }
+
+                /**
+                 * Detecting vertical squash in loaded image.
+                 * Fixes a bug which squash image vertically while drawing into
+                 * canvas for some images.
+                 */
+                function detectVerticalSquash( img, iw, ih ) {
+                    var canvas = document.createElement('canvas'),
+                        ctx = canvas.getContext('2d'),
+                        sy = 0,
+                        ey = ih,
+                        py = ih,
+                        data, alpha, ratio;
+
+
+                    canvas.width = 1;
+                    canvas.height = ih;
+                    ctx.drawImage( img, 0, 0 );
+                    data = ctx.getImageData( 0, 0, 1, ih ).data;
+
+                    // search image edge pixel position in case
+                    // it is squashed vertically.
+                    while ( py > sy ) {
+                        alpha = data[ (py - 1) * 4 + 3 ];
+
+                        if ( alpha === 0 ) {
+                            ey = py;
+                        } else {
+                            sy = py;
+                        }
+
+                        py = (ey + sy) >> 1;
+                    }
+
+                    ratio = (py / ih);
+                    return (ratio === 0) ? 1 : ratio;
+                }
+
+                // fix ie7 bug
+                // http://stackoverflow.com/questions/11929099/
+                // html5-canvas-drawimage-ratio-bug-ios
+                if ( Base.os.ios >= 7 ) {
+                    return function( canvas, img, x, y, w, h ) {
+                        var iw = img.naturalWidth,
+                            ih = img.naturalHeight,
+                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
+
+                        return canvas.getContext('2d').drawImage( img, 0, 0,
+                                iw * vertSquashRatio, ih * vertSquashRatio,
+                                x, y, w, h );
+                    };
+                }
+
+                /**
+                 * Detect subsampling in loaded image.
+                 * In iOS, larger images than 2M pixels may be
+                 * subsampled in rendering.
+                 */
+                function detectSubsampling( img ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        canvas, ctx;
+
+                    // subsampling may happen overmegapixel image
+                    if ( iw * ih > 1024 * 1024 ) {
+                        canvas = document.createElement('canvas');
+                        canvas.width = canvas.height = 1;
+                        ctx = canvas.getContext('2d');
+                        ctx.drawImage( img, -iw + 1, 0 );
+
+                        // subsampled image becomes half smaller in rendering size.
+                        // check alpha channel value to confirm image is covering
+                        // edge pixel or not. if alpha value is 0
+                        // image is not covering, hence subsampled.
+                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
+                    } else {
+                        return false;
+                    }
+                }
+
+
+                return function( canvas, img, x, y, width, height ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        ctx = canvas.getContext('2d'),
+                        subsampled = detectSubsampling( img ),
+                        doSquash = this.type === 'image/jpeg',
+                        d = 1024,
+                        sy = 0,
+                        dy = 0,
+                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
+
+                    if ( subsampled ) {
+                        iw /= 2;
+                        ih /= 2;
+                    }
+
+                    ctx.save();
+                    tmpCanvas = document.createElement('canvas');
+                    tmpCanvas.width = tmpCanvas.height = d;
+
+                    tmpCtx = tmpCanvas.getContext('2d');
+                    vertSquashRatio = doSquash ?
+                            detectVerticalSquash( img, iw, ih ) : 1;
+
+                    dw = Math.ceil( d * width / iw );
+                    dh = Math.ceil( d * height / ih / vertSquashRatio );
+
+                    while ( sy < ih ) {
+                        sx = 0;
+                        dx = 0;
+                        while ( sx < iw ) {
+                            tmpCtx.clearRect( 0, 0, d, d );
+                            tmpCtx.drawImage( img, -sx, -sy );
+                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
+                                    x + dx, y + dy, dw, dh );
+                            sx += d;
+                            dx += dw;
+                        }
+                        sy += d;
+                        dy += dh;
+                    }
+                    ctx.restore();
+                    tmpCanvas = tmpCtx = null;
+                };
+            })()
+        });
+    });
+    /**
+     * 这个方式性能不行,但是可以解决android里面的toDataUrl的bug
+     * android里面toDataUrl('image/jpege')得到的结果却是png.
+     *
+     * 所以这里没辙,只能借助这个工具
+     * @fileOverview jpeg encoder
+     */
+    define('runtime/html5/jpegencoder',[], function( require, exports, module ) {
+
+        /*
+          Copyright (c) 2008, Adobe Systems Incorporated
+          All rights reserved.
+
+          Redistribution and use in source and binary forms, with or without
+          modification, are permitted provided that the following conditions are
+          met:
+
+          * Redistributions of source code must retain the above copyright notice,
+            this list of conditions and the following disclaimer.
+
+          * Redistributions in binary form must reproduce the above copyright
+            notice, this list of conditions and the following disclaimer in the
+            documentation and/or other materials provided with the distribution.
+
+          * Neither the name of Adobe Systems Incorporated nor the names of its
+            contributors may be used to endorse or promote products derived from
+            this software without specific prior written permission.
+
+          THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+          IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+          THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+          PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 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.
+        */
+        /*
+        JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
+
+        Basic GUI blocking jpeg encoder
+        */
+
+        function JPEGEncoder(quality) {
+          var self = this;
+            var fround = Math.round;
+            var ffloor = Math.floor;
+            var YTable = new Array(64);
+            var UVTable = new Array(64);
+            var fdtbl_Y = new Array(64);
+            var fdtbl_UV = new Array(64);
+            var YDC_HT;
+            var UVDC_HT;
+            var YAC_HT;
+            var UVAC_HT;
+
+            var bitcode = new Array(65535);
+            var category = new Array(65535);
+            var outputfDCTQuant = new Array(64);
+            var DU = new Array(64);
+            var byteout = [];
+            var bytenew = 0;
+            var bytepos = 7;
+
+            var YDU = new Array(64);
+            var UDU = new Array(64);
+            var VDU = new Array(64);
+            var clt = new Array(256);
+            var RGB_YUV_TABLE = new Array(2048);
+            var currentQuality;
+
+            var ZigZag = [
+                     0, 1, 5, 6,14,15,27,28,
+                     2, 4, 7,13,16,26,29,42,
+                     3, 8,12,17,25,30,41,43,
+                     9,11,18,24,31,40,44,53,
+                    10,19,23,32,39,45,52,54,
+                    20,22,33,38,46,51,55,60,
+                    21,34,37,47,50,56,59,61,
+                    35,36,48,49,57,58,62,63
+                ];
+
+            var std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
+            var std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
+            var std_ac_luminance_values = [
+                    0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
+                    0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
+                    0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
+                    0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
+                    0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
+                    0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
+                    0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
+                    0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+                    0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+                    0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+                    0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
+                    0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+                    0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+                    0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+                    0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
+                    0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
+                    0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
+                    0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
+                    0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
+                    0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            var std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
+            var std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
+            var std_ac_chrominance_values = [
+                    0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
+                    0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
+                    0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
+                    0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
+                    0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
+                    0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
+                    0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
+                    0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
+                    0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
+                    0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
+                    0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
+                    0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
+                    0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
+                    0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
+                    0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
+                    0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
+                    0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
+                    0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
+                    0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
+                    0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            function initQuantTables(sf){
+                    var YQT = [
+                        16, 11, 10, 16, 24, 40, 51, 61,
+                        12, 12, 14, 19, 26, 58, 60, 55,
+                        14, 13, 16, 24, 40, 57, 69, 56,
+                        14, 17, 22, 29, 51, 87, 80, 62,
+                        18, 22, 37, 56, 68,109,103, 77,
+                        24, 35, 55, 64, 81,104,113, 92,
+                        49, 64, 78, 87,103,121,120,101,
+                        72, 92, 95, 98,112,100,103, 99
+                    ];
+
+                    for (var i = 0; i < 64; i++) {
+                        var t = ffloor((YQT[i]*sf+50)/100);
+                        if (t < 1) {
+                            t = 1;
+                        } else if (t > 255) {
+                            t = 255;
+                        }
+                        YTable[ZigZag[i]] = t;
+                    }
+                    var UVQT = [
+                        17, 18, 24, 47, 99, 99, 99, 99,
+                        18, 21, 26, 66, 99, 99, 99, 99,
+                        24, 26, 56, 99, 99, 99, 99, 99,
+                        47, 66, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99
+                    ];
+                    for (var j = 0; j < 64; j++) {
+                        var u = ffloor((UVQT[j]*sf+50)/100);
+                        if (u < 1) {
+                            u = 1;
+                        } else if (u > 255) {
+                            u = 255;
+                        }
+                        UVTable[ZigZag[j]] = u;
+                    }
+                    var aasf = [
+                        1.0, 1.387039845, 1.306562965, 1.175875602,
+                        1.0, 0.785694958, 0.541196100, 0.275899379
+                    ];
+                    var k = 0;
+                    for (var row = 0; row < 8; row++)
+                    {
+                        for (var col = 0; col < 8; col++)
+                        {
+                            fdtbl_Y[k]  = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            fdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            k++;
+                        }
+                    }
+                }
+
+                function computeHuffmanTbl(nrcodes, std_table){
+                    var codevalue = 0;
+                    var pos_in_table = 0;
+                    var HT = new Array();
+                    for (var k = 1; k <= 16; k++) {
+                        for (var j = 1; j <= nrcodes[k]; j++) {
+                            HT[std_table[pos_in_table]] = [];
+                            HT[std_table[pos_in_table]][0] = codevalue;
+                            HT[std_table[pos_in_table]][1] = k;
+                            pos_in_table++;
+                            codevalue++;
+                        }
+                        codevalue*=2;
+                    }
+                    return HT;
+                }
+
+                function initHuffmanTbl()
+                {
+                    YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
+                    UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
+                    YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
+                    UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
+                }
+
+                function initCategoryNumber()
+                {
+                    var nrlower = 1;
+                    var nrupper = 2;
+                    for (var cat = 1; cat <= 15; cat++) {
+                        //Positive numbers
+                        for (var nr = nrlower; nr<nrupper; nr++) {
+                            category[32767+nr] = cat;
+                            bitcode[32767+nr] = [];
+                            bitcode[32767+nr][1] = cat;
+                            bitcode[32767+nr][0] = nr;
+                        }
+                        //Negative numbers
+                        for (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {
+                            category[32767+nrneg] = cat;
+                            bitcode[32767+nrneg] = [];
+                            bitcode[32767+nrneg][1] = cat;
+                            bitcode[32767+nrneg][0] = nrupper-1+nrneg;
+                        }
+                        nrlower <<= 1;
+                        nrupper <<= 1;
+                    }
+                }
+
+                function initRGBYUVTable() {
+                    for(var i = 0; i < 256;i++) {
+                        RGB_YUV_TABLE[i]            =  19595 * i;
+                        RGB_YUV_TABLE[(i+ 256)>>0]  =  38470 * i;
+                        RGB_YUV_TABLE[(i+ 512)>>0]  =   7471 * i + 0x8000;
+                        RGB_YUV_TABLE[(i+ 768)>>0]  = -11059 * i;
+                        RGB_YUV_TABLE[(i+1024)>>0]  = -21709 * i;
+                        RGB_YUV_TABLE[(i+1280)>>0]  =  32768 * i + 0x807FFF;
+                        RGB_YUV_TABLE[(i+1536)>>0]  = -27439 * i;
+                        RGB_YUV_TABLE[(i+1792)>>0]  = - 5329 * i;
+                    }
+                }
+
+                // IO functions
+                function writeBits(bs)
+                {
+                    var value = bs[0];
+                    var posval = bs[1]-1;
+                    while ( posval >= 0 ) {
+                        if (value & (1 << posval) ) {
+                            bytenew |= (1 << bytepos);
+                        }
+                        posval--;
+                        bytepos--;
+                        if (bytepos < 0) {
+                            if (bytenew == 0xFF) {
+                                writeByte(0xFF);
+                                writeByte(0);
+                            }
+                            else {
+                                writeByte(bytenew);
+                            }
+                            bytepos=7;
+                            bytenew=0;
+                        }
+                    }
+                }
+
+                function writeByte(value)
+                {
+                    byteout.push(clt[value]); // write char directly instead of converting later
+                }
+
+                function writeWord(value)
+                {
+                    writeByte((value>>8)&0xFF);
+                    writeByte((value   )&0xFF);
+                }
+
+                // DCT & quantization core
+                function fDCTQuant(data, fdtbl)
+                {
+                    var d0, d1, d2, d3, d4, d5, d6, d7;
+                    /* Pass 1: process rows. */
+                    var dataOff=0;
+                    var i;
+                    var I8 = 8;
+                    var I64 = 64;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff+1];
+                        d2 = data[dataOff+2];
+                        d3 = data[dataOff+3];
+                        d4 = data[dataOff+4];
+                        d5 = data[dataOff+5];
+                        d6 = data[dataOff+6];
+                        d7 = data[dataOff+7];
+
+                        var tmp0 = d0 + d7;
+                        var tmp7 = d0 - d7;
+                        var tmp1 = d1 + d6;
+                        var tmp6 = d1 - d6;
+                        var tmp2 = d2 + d5;
+                        var tmp5 = d2 - d5;
+                        var tmp3 = d3 + d4;
+                        var tmp4 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10 = tmp0 + tmp3;    /* phase 2 */
+                        var tmp13 = tmp0 - tmp3;
+                        var tmp11 = tmp1 + tmp2;
+                        var tmp12 = tmp1 - tmp2;
+
+                        data[dataOff] = tmp10 + tmp11; /* phase 3 */
+                        data[dataOff+4] = tmp10 - tmp11;
+
+                        var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
+                        data[dataOff+2] = tmp13 + z1; /* phase 5 */
+                        data[dataOff+6] = tmp13 - z1;
+
+                        /* Odd part */
+                        tmp10 = tmp4 + tmp5; /* phase 2 */
+                        tmp11 = tmp5 + tmp6;
+                        tmp12 = tmp6 + tmp7;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
+                        var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
+                        var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
+                        var z3 = tmp11 * 0.707106781; /* c4 */
+
+                        var z11 = tmp7 + z3;    /* phase 5 */
+                        var z13 = tmp7 - z3;
+
+                        data[dataOff+5] = z13 + z2; /* phase 6 */
+                        data[dataOff+3] = z13 - z2;
+                        data[dataOff+1] = z11 + z4;
+                        data[dataOff+7] = z11 - z4;
+
+                        dataOff += 8; /* advance pointer to next row */
+                    }
+
+                    /* Pass 2: process columns. */
+                    dataOff = 0;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff + 8];
+                        d2 = data[dataOff + 16];
+                        d3 = data[dataOff + 24];
+                        d4 = data[dataOff + 32];
+                        d5 = data[dataOff + 40];
+                        d6 = data[dataOff + 48];
+                        d7 = data[dataOff + 56];
+
+                        var tmp0p2 = d0 + d7;
+                        var tmp7p2 = d0 - d7;
+                        var tmp1p2 = d1 + d6;
+                        var tmp6p2 = d1 - d6;
+                        var tmp2p2 = d2 + d5;
+                        var tmp5p2 = d2 - d5;
+                        var tmp3p2 = d3 + d4;
+                        var tmp4p2 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10p2 = tmp0p2 + tmp3p2;  /* phase 2 */
+                        var tmp13p2 = tmp0p2 - tmp3p2;
+                        var tmp11p2 = tmp1p2 + tmp2p2;
+                        var tmp12p2 = tmp1p2 - tmp2p2;
+
+                        data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */
+                        data[dataOff+32] = tmp10p2 - tmp11p2;
+
+                        var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
+                        data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
+                        data[dataOff+48] = tmp13p2 - z1p2;
+
+                        /* Odd part */
+                        tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
+                        tmp11p2 = tmp5p2 + tmp6p2;
+                        tmp12p2 = tmp6p2 + tmp7p2;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
+                        var z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
+                        var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
+                        var z3p2 = tmp11p2 * 0.707106781; /* c4 */
+
+                        var z11p2 = tmp7p2 + z3p2;  /* phase 5 */
+                        var z13p2 = tmp7p2 - z3p2;
+
+                        data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
+                        data[dataOff+24] = z13p2 - z2p2;
+                        data[dataOff+ 8] = z11p2 + z4p2;
+                        data[dataOff+56] = z11p2 - z4p2;
+
+                        dataOff++; /* advance pointer to next column */
+                    }
+
+                    // Quantize/descale the coefficients
+                    var fDCTQuant;
+                    for (i=0; i<I64; ++i)
+                    {
+                        // Apply the quantization and scaling factor & Round to nearest integer
+                        fDCTQuant = data[i]*fdtbl[i];
+                        outputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);
+                        //outputfDCTQuant[i] = fround(fDCTQuant);
+
+                    }
+                    return outputfDCTQuant;
+                }
+
+                function writeAPP0()
+                {
+                    writeWord(0xFFE0); // marker
+                    writeWord(16); // length
+                    writeByte(0x4A); // J
+                    writeByte(0x46); // F
+                    writeByte(0x49); // I
+                    writeByte(0x46); // F
+                    writeByte(0); // = "JFIF",'\0'
+                    writeByte(1); // versionhi
+                    writeByte(1); // versionlo
+                    writeByte(0); // xyunits
+                    writeWord(1); // xdensity
+                    writeWord(1); // ydensity
+                    writeByte(0); // thumbnwidth
+                    writeByte(0); // thumbnheight
+                }
+
+                function writeSOF0(width, height)
+                {
+                    writeWord(0xFFC0); // marker
+                    writeWord(17);   // length, truecolor YUV JPG
+                    writeByte(8);    // precision
+                    writeWord(height);
+                    writeWord(width);
+                    writeByte(3);    // nrofcomponents
+                    writeByte(1);    // IdY
+                    writeByte(0x11); // HVY
+                    writeByte(0);    // QTY
+                    writeByte(2);    // IdU
+                    writeByte(0x11); // HVU
+                    writeByte(1);    // QTU
+                    writeByte(3);    // IdV
+                    writeByte(0x11); // HVV
+                    writeByte(1);    // QTV
+                }
+
+                function writeDQT()
+                {
+                    writeWord(0xFFDB); // marker
+                    writeWord(132);    // length
+                    writeByte(0);
+                    for (var i=0; i<64; i++) {
+                        writeByte(YTable[i]);
+                    }
+                    writeByte(1);
+                    for (var j=0; j<64; j++) {
+                        writeByte(UVTable[j]);
+                    }
+                }
+
+                function writeDHT()
+                {
+                    writeWord(0xFFC4); // marker
+                    writeWord(0x01A2); // length
+
+                    writeByte(0); // HTYDCinfo
+                    for (var i=0; i<16; i++) {
+                        writeByte(std_dc_luminance_nrcodes[i+1]);
+                    }
+                    for (var j=0; j<=11; j++) {
+                        writeByte(std_dc_luminance_values[j]);
+                    }
+
+                    writeByte(0x10); // HTYACinfo
+                    for (var k=0; k<16; k++) {
+                        writeByte(std_ac_luminance_nrcodes[k+1]);
+                    }
+                    for (var l=0; l<=161; l++) {
+                        writeByte(std_ac_luminance_values[l]);
+                    }
+
+                    writeByte(1); // HTUDCinfo
+                    for (var m=0; m<16; m++) {
+                        writeByte(std_dc_chrominance_nrcodes[m+1]);
+                    }
+                    for (var n=0; n<=11; n++) {
+                        writeByte(std_dc_chrominance_values[n]);
+                    }
+
+                    writeByte(0x11); // HTUACinfo
+                    for (var o=0; o<16; o++) {
+                        writeByte(std_ac_chrominance_nrcodes[o+1]);
+                    }
+                    for (var p=0; p<=161; p++) {
+                        writeByte(std_ac_chrominance_values[p]);
+                    }
+                }
+
+                function writeSOS()
+                {
+                    writeWord(0xFFDA); // marker
+                    writeWord(12); // length
+                    writeByte(3); // nrofcomponents
+                    writeByte(1); // IdY
+                    writeByte(0); // HTY
+                    writeByte(2); // IdU
+                    writeByte(0x11); // HTU
+                    writeByte(3); // IdV
+                    writeByte(0x11); // HTV
+                    writeByte(0); // Ss
+                    writeByte(0x3f); // Se
+                    writeByte(0); // Bf
+                }
+
+                function processDU(CDU, fdtbl, DC, HTDC, HTAC){
+                    var EOB = HTAC[0x00];
+                    var M16zeroes = HTAC[0xF0];
+                    var pos;
+                    var I16 = 16;
+                    var I63 = 63;
+                    var I64 = 64;
+                    var DU_DCT = fDCTQuant(CDU, fdtbl);
+                    //ZigZag reorder
+                    for (var j=0;j<I64;++j) {
+                        DU[ZigZag[j]]=DU_DCT[j];
+                    }
+                    var Diff = DU[0] - DC; DC = DU[0];
+                    //Encode DC
+                    if (Diff==0) {
+                        writeBits(HTDC[0]); // Diff might be 0
+                    } else {
+                        pos = 32767+Diff;
+                        writeBits(HTDC[category[pos]]);
+                        writeBits(bitcode[pos]);
+                    }
+                    //Encode ACs
+                    var end0pos = 63; // was const... which is crazy
+                    for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};
+                    //end0pos = first element in reverse order !=0
+                    if ( end0pos == 0) {
+                        writeBits(EOB);
+                        return DC;
+                    }
+                    var i = 1;
+                    var lng;
+                    while ( i <= end0pos ) {
+                        var startpos = i;
+                        for (; (DU[i]==0) && (i<=end0pos); ++i) {}
+                        var nrzeroes = i-startpos;
+                        if ( nrzeroes >= I16 ) {
+                            lng = nrzeroes>>4;
+                            for (var nrmarker=1; nrmarker <= lng; ++nrmarker)
+                                writeBits(M16zeroes);
+                            nrzeroes = nrzeroes&0xF;
+                        }
+                        pos = 32767+DU[i];
+                        writeBits(HTAC[(nrzeroes<<4)+category[pos]]);
+                        writeBits(bitcode[pos]);
+                        i++;
+                    }
+                    if ( end0pos != I63 ) {
+                        writeBits(EOB);
+                    }
+                    return DC;
+                }
+
+                function initCharLookupTable(){
+                    var sfcc = String.fromCharCode;
+                    for(var i=0; i < 256; i++){ ///// ACHTUNG // 255
+                        clt[i] = sfcc(i);
+                    }
+                }
+
+                this.encode = function(image,quality) // image data object
+                {
+                    // var time_start = new Date().getTime();
+
+                    if(quality) setQuality(quality);
+
+                    // Initialize bit writer
+                    byteout = new Array();
+                    bytenew=0;
+                    bytepos=7;
+
+                    // Add JPEG headers
+                    writeWord(0xFFD8); // SOI
+                    writeAPP0();
+                    writeDQT();
+                    writeSOF0(image.width,image.height);
+                    writeDHT();
+                    writeSOS();
+
+
+                    // Encode 8x8 macroblocks
+                    var DCY=0;
+                    var DCU=0;
+                    var DCV=0;
+
+                    bytenew=0;
+                    bytepos=7;
+
+
+                    this.encode.displayName = "_encode_";
+
+                    var imageData = image.data;
+                    var width = image.width;
+                    var height = image.height;
+
+                    var quadWidth = width*4;
+                    var tripleWidth = width*3;
+
+                    var x, y = 0;
+                    var r, g, b;
+                    var start,p, col,row,pos;
+                    while(y < height){
+                        x = 0;
+                        while(x < quadWidth){
+                        start = quadWidth * y + x;
+                        p = start;
+                        col = -1;
+                        row = 0;
+
+                        for(pos=0; pos < 64; pos++){
+                            row = pos >> 3;// /8
+                            col = ( pos & 7 ) * 4; // %8
+                            p = start + ( row * quadWidth ) + col;
+
+                            if(y+row >= height){ // padding bottom
+                                p-= (quadWidth*(y+1+row-height));
+                            }
+
+                            if(x+col >= quadWidth){ // padding right
+                                p-= ((x+col) - quadWidth +4)
+                            }
+
+                            r = imageData[ p++ ];
+                            g = imageData[ p++ ];
+                            b = imageData[ p++ ];
+
+
+                            /* // calculate YUV values dynamically
+                            YDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80
+                            UDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));
+                            VDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));
+                            */
+
+                            // use lookup table (slightly faster)
+                            YDU[pos] = ((RGB_YUV_TABLE[r]             + RGB_YUV_TABLE[(g +  256)>>0] + RGB_YUV_TABLE[(b +  512)>>0]) >> 16)-128;
+                            UDU[pos] = ((RGB_YUV_TABLE[(r +  768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;
+                            VDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;
+
+                        }
+
+                        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
+                        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
+                        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
+                        x+=32;
+                        }
+                        y+=8;
+                    }
+
+
+                    ////////////////////////////////////////////////////////////////
+
+                    // Do the bit alignment of the EOI marker
+                    if ( bytepos >= 0 ) {
+                        var fillbits = [];
+                        fillbits[1] = bytepos+1;
+                        fillbits[0] = (1<<(bytepos+1))-1;
+                        writeBits(fillbits);
+                    }
+
+                    writeWord(0xFFD9); //EOI
+
+                    var jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));
+
+                    byteout = [];
+
+                    // benchmarking
+                    // var duration = new Date().getTime() - time_start;
+                    // console.log('Encoding time: '+ currentQuality + 'ms');
+                    //
+
+                    return jpegDataUri
+            }
+
+            function setQuality(quality){
+                if (quality <= 0) {
+                    quality = 1;
+                }
+                if (quality > 100) {
+                    quality = 100;
+                }
+
+                if(currentQuality == quality) return // don't recalc if unchanged
+
+                var sf = 0;
+                if (quality < 50) {
+                    sf = Math.floor(5000 / quality);
+                } else {
+                    sf = Math.floor(200 - quality*2);
+                }
+
+                initQuantTables(sf);
+                currentQuality = quality;
+                // console.log('Quality set to: '+quality +'%');
+            }
+
+            function init(){
+                // var time_start = new Date().getTime();
+                if(!quality) quality = 50;
+                // Create tables
+                initCharLookupTable()
+                initHuffmanTbl();
+                initCategoryNumber();
+                initRGBYUVTable();
+
+                setQuality(quality);
+                // var duration = new Date().getTime() - time_start;
+                // console.log('Initialization '+ duration + 'ms');
+            }
+
+            init();
+
+        };
+
+        JPEGEncoder.encode = function( data, quality ) {
+            var encoder = new JPEGEncoder( quality );
+
+            return encoder.encode( data );
+        }
+
+        return JPEGEncoder;
+    });
+    /**
+     * @fileOverview Fix android canvas.toDataUrl bug.
+     */
+    define('runtime/html5/androidpatch',[
+        'runtime/html5/util',
+        'runtime/html5/jpegencoder',
+        'base'
+    ], function( Util, encoder, Base ) {
+        var origin = Util.canvasToDataUrl,
+            supportJpeg;
+
+        Util.canvasToDataUrl = function( canvas, type, quality ) {
+            var ctx, w, h, fragement, parts;
+
+            // 非android手机直接跳过。
+            if ( !Base.os.android ) {
+                return origin.apply( null, arguments );
+            }
+
+            // 检测是否canvas支持jpeg导出,根据数据格式来判断。
+            // JPEG 前两位分别是:255, 216
+            if ( type === 'image/jpeg' && typeof supportJpeg === 'undefined' ) {
+                fragement = origin.apply( null, arguments );
+
+                parts = fragement.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    fragement = atob( parts[ 1 ] );
+                } else {
+                    fragement = decodeURIComponent( parts[ 1 ] );
+                }
+
+                fragement = fragement.substring( 0, 2 );
+
+                supportJpeg = fragement.charCodeAt( 0 ) === 255 &&
+                        fragement.charCodeAt( 1 ) === 216;
+            }
+
+            // 只有在android环境下才修复
+            if ( type === 'image/jpeg' && !supportJpeg ) {
+                w = canvas.width;
+                h = canvas.height;
+                ctx = canvas.getContext('2d');
+
+                return encoder.encode( ctx.getImageData( 0, 0, w, h ), quality );
+            }
+
+            return origin.apply( null, arguments );
+        };
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    define('webuploader',[
+        'base',
+        'widgets/filepicker',
+        'widgets/image',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/log',
+        'runtime/html5/blob',
+        'runtime/html5/filepicker',
+        'runtime/html5/imagemeta/exif',
+        'runtime/html5/image',
+        'runtime/html5/androidpatch',
+        'runtime/html5/transport'
+    ], function( Base ) {
+        return Base;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.min.js
new file mode 100644
index 0000000..eaf9e64
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.custom.min.js
@@ -0,0 +1,2 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-builtin",["dollar"],function(a){function b(b){var c,d,e,f,g,h,i=[],j=!b&&[],k=function(a){for(h=a,c=!0,g=e||0,e=0,f=i.length,d=!0;i&&f>g;g++)i[g].apply(a[0],a[1]);d=!1,i&&(j?j.length&&k(j.shift()):i=[])},l={add:function(){if(i){var b=i.length;!function c(b){a.each(b,function(b,d){var e=a.type(d);"function"===e?i.push(d):d&&d.length&&"string"!==e&&c(d)})}(arguments),d?f=i.length:h&&(e=b,k(h))}return this},disable:function(){return i=j=h=void 0,this},lock:function(){return j=void 0,h||l.disable(),this},fireWith:function(a,b){return!i||c&&!j||(b=b||[],b=[a,b.slice?b.slice():b],d?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this}};return l}function c(d){var e=[["resolve","done",b(!0),"resolved"],["reject","fail",b(!0),"rejected"],["notify","progress",b()]],f="pending",g={state:function(){return f},always:function(){return h.done(arguments).fail(arguments),this},then:function(){var b=arguments;return c(function(c){a.each(e,function(d,e){var f=e[0],i=a.isFunction(b[d])&&b[d];h[e[1]](function(){var b;b=i&&i.apply(this,arguments),b&&a.isFunction(b.promise)?b.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===g?c.promise():this,i?[b]:arguments)})}),b=null}).promise()},promise:function(b){return null!=b?a.extend(b,g):g}},h={};return g.pipe=g.then,a.each(e,function(a,b){var c=b[2],d=b[3];g[b[1]]=c.add,d&&c.add(function(){f=d},e[1^a][2].disable,e[2][2].lock),h[b[0]]=function(){return h[b[0]+"With"](this===h?g:this,arguments),this},h[b[0]+"With"]=c.fireWith}),g.promise(h),d&&d.call(h,h),h}var d;return d={Deferred:c,isPromise:function(a){return a&&"function"==typeof a.then},when:function(b){var d,e,f,g=0,h=[].slice,i=h.call(arguments),j=i.length,k=1!==j||b&&a.isFunction(b.promise)?j:0,l=1===k?b:c(),m=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?h.call(arguments):e,c===d?l.notifyWith(b,c):--k||l.resolveWith(b,c)}};if(j>1)for(d=new Array(j),e=new Array(j),f=new Array(j);j>g;g++)i[g]&&a.isFunction(i[g].promise)?i[g].promise().done(m(g,f,i)).fail(l.reject).progress(m(g,e,d)):--k;return k||l.resolveWith(f,i),l.promise()}}}),b("promise",["promise-builtin"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!1,allowMagnify:!1},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},crop:function(){var b=a.slice(arguments);return this.exec.apply(this,["crop"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({name:"image",makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),1>=f&&f>0&&(f=a._info.width*f),1>=g&&g>0&&(g=a._info.height*g),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(a){b(a||!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},beforeSendFile:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||0,i=g&&g.noCompressIfLarger||!1;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){var a=g.width,c=g.height;b._info=b._info||d.info(),b._meta=b._meta||d.meta(),1>=a&&a>0&&(a=b._info.width*a),1>=c&&c>0&&(c=b._info.height*c),d.resize(a,c)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,(!i||a.size<c)&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});if(!c.runing){c.runing=!0;var d=[];f.each(c.pool,function(a,b){var e=b.file;e.getStatus()===h.INTERRUPT&&(d.push(e),c._trigged=!1,b.transport&&b.transport.send())});for(var b;b=d.shift();)b.setStatus(h.PROGRESS);b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload")}},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d.updateFileProgress(e),d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){b.percentage=a,g.updateFileProgress(k)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)
+}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})},updateFileProgress:function(a){var b=0,c=0;a.blocks&&(f.each(a.blocks,function(a,b){c+=(b.percentage||0)*(b.end-b.start)}),b=c/a.size,this.owner.trigger("uploadProgress",a,b||0))}})}),b("widgets/log",["base","uploader","widgets/widget"],function(a,b){function c(a){var b=e.extend({},d,a),c=f.replace(/^(.*)\?/,"$1"+e.param(b)),g=new Image;g.src=c}var d,e=a.$,f=" http://static.tieba.baidu.com/tb/pms/img/st.gif??",g=(location.hostname||location.host||"protected").toLowerCase(),h=g&&/baidu/i.exec(g);if(h)return d={dv:3,master:"webuploader",online:/test/.exec(g)?0:1,module:"",product:g,type:0},b.register({name:"log",init:function(){var a=this.owner,b=0,d=0;a.on("error",function(a){c({type:2,c_error_code:a})}).on("uploadError",function(a,b){c({type:2,c_error_code:"UPLOAD_ERROR",c_reason:""+b})}).on("uploadComplete",function(a){b++,d+=a.size}).on("uploadFinished",function(){c({c_count:b,c_size:d}),b=d=0}),c({c_usage:1})}})}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destroy;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destroy=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=this.label=c(document.createElement("label")),k=this.input=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),b.value=null,this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){this.input.off(),this.label.off()}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete","resize")},crop:function(a,b,c,d,e){var f=this._canvas||(this._canvas=document.createElement("canvas")),g=this.options,h=this._img,i=h.naturalWidth,j=h.naturalHeight,k=this.getOrientation();e=e||1,f.width=c,f.height=d,g.preserveHeaders||this._rotate2Orientaion(f,k),this._renderImageToCanvas(f,h,-a,-b,i*e,j*e),this._blob=null,this.modified=!0,this.owner.trigger("complete","crop")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,a,e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(b){var c=a.slice(arguments,1),d=b.getContext("2d");d.drawImage.apply(d,c)}}()})}),b("runtime/html5/jpegencoder",[],function(){function a(a){function b(a){for(var b=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],c=0;64>c;c++){var d=y((b[c]*a+50)/100);1>d?d=1:d>255&&(d=255),z[P[c]]=d}for(var e=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],f=0;64>f;f++){var g=y((e[f]*a+50)/100);1>g?g=1:g>255&&(g=255),A[P[f]]=g}for(var h=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],i=0,j=0;8>j;j++)for(var k=0;8>k;k++)B[i]=1/(z[P[i]]*h[j]*h[k]*8),C[i]=1/(A[P[i]]*h[j]*h[k]*8),i++}function c(a,b){for(var c=0,d=0,e=new Array,f=1;16>=f;f++){for(var g=1;g<=a[f];g++)e[b[d]]=[],e[b[d]][0]=c,e[b[d]][1]=f,d++,c++;c*=2}return e}function d(){t=c(Q,R),u=c(U,V),v=c(S,T),w=c(W,X)}function e(){for(var a=1,b=2,c=1;15>=c;c++){for(var d=a;b>d;d++)E[32767+d]=c,D[32767+d]=[],D[32767+d][1]=c,D[32767+d][0]=d;for(var e=-(b-1);-a>=e;e++)E[32767+e]=c,D[32767+e]=[],D[32767+e][1]=c,D[32767+e][0]=b-1+e;a<<=1,b<<=1}}function f(){for(var a=0;256>a;a++)O[a]=19595*a,O[a+256>>0]=38470*a,O[a+512>>0]=7471*a+32768,O[a+768>>0]=-11059*a,O[a+1024>>0]=-21709*a,O[a+1280>>0]=32768*a+8421375,O[a+1536>>0]=-27439*a,O[a+1792>>0]=-5329*a}function g(a){for(var b=a[0],c=a[1]-1;c>=0;)b&1<<c&&(I|=1<<J),c--,J--,0>J&&(255==I?(h(255),h(0)):h(I),J=7,I=0)}function h(a){H.push(N[a])}function i(a){h(a>>8&255),h(255&a)}function j(a,b){var c,d,e,f,g,h,i,j,k,l=0,m=8,n=64;for(k=0;m>k;++k){c=a[l],d=a[l+1],e=a[l+2],f=a[l+3],g=a[l+4],h=a[l+5],i=a[l+6],j=a[l+7];var o=c+j,p=c-j,q=d+i,r=d-i,s=e+h,t=e-h,u=f+g,v=f-g,w=o+u,x=o-u,y=q+s,z=q-s;a[l]=w+y,a[l+4]=w-y;var A=.707106781*(z+x);a[l+2]=x+A,a[l+6]=x-A,w=v+t,y=t+r,z=r+p;var B=.382683433*(w-z),C=.5411961*w+B,D=1.306562965*z+B,E=.707106781*y,G=p+E,H=p-E;a[l+5]=H+C,a[l+3]=H-C,a[l+1]=G+D,a[l+7]=G-D,l+=8}for(l=0,k=0;m>k;++k){c=a[l],d=a[l+8],e=a[l+16],f=a[l+24],g=a[l+32],h=a[l+40],i=a[l+48],j=a[l+56];var I=c+j,J=c-j,K=d+i,L=d-i,M=e+h,N=e-h,O=f+g,P=f-g,Q=I+O,R=I-O,S=K+M,T=K-M;a[l]=Q+S,a[l+32]=Q-S;var U=.707106781*(T+R);a[l+16]=R+U,a[l+48]=R-U,Q=P+N,S=N+L,T=L+J;var V=.382683433*(Q-T),W=.5411961*Q+V,X=1.306562965*T+V,Y=.707106781*S,Z=J+Y,$=J-Y;a[l+40]=$+W,a[l+24]=$-W,a[l+8]=Z+X,a[l+56]=Z-X,l++}var _;for(k=0;n>k;++k)_=a[k]*b[k],F[k]=_>0?_+.5|0:_-.5|0;return F}function k(){i(65504),i(16),h(74),h(70),h(73),h(70),h(0),h(1),h(1),h(0),i(1),i(1),h(0),h(0)}function l(a,b){i(65472),i(17),h(8),i(b),i(a),h(3),h(1),h(17),h(0),h(2),h(17),h(1),h(3),h(17),h(1)}function m(){i(65499),i(132),h(0);for(var a=0;64>a;a++)h(z[a]);h(1);for(var b=0;64>b;b++)h(A[b])}function n(){i(65476),i(418),h(0);for(var a=0;16>a;a++)h(Q[a+1]);for(var b=0;11>=b;b++)h(R[b]);h(16);for(var c=0;16>c;c++)h(S[c+1]);for(var d=0;161>=d;d++)h(T[d]);h(1);for(var e=0;16>e;e++)h(U[e+1]);for(var f=0;11>=f;f++)h(V[f]);h(17);for(var g=0;16>g;g++)h(W[g+1]);for(var j=0;161>=j;j++)h(X[j])}function o(){i(65498),i(12),h(3),h(1),h(0),h(2),h(17),h(3),h(17),h(0),h(63),h(0)}function p(a,b,c,d,e){for(var f,h=e[0],i=e[240],k=16,l=63,m=64,n=j(a,b),o=0;m>o;++o)G[P[o]]=n[o];var p=G[0]-c;c=G[0],0==p?g(d[0]):(f=32767+p,g(d[E[f]]),g(D[f]));for(var q=63;q>0&&0==G[q];q--);if(0==q)return g(h),c;for(var r,s=1;q>=s;){for(var t=s;0==G[s]&&q>=s;++s);var u=s-t;if(u>=k){r=u>>4;for(var v=1;r>=v;++v)g(i);u=15&u}f=32767+G[s],g(e[(u<<4)+E[f]]),g(D[f]),s++}return q!=l&&g(h),c}function q(){for(var a=String.fromCharCode,b=0;256>b;b++)N[b]=a(b)}function r(a){if(0>=a&&(a=1),a>100&&(a=100),x!=a){var c=0;c=Math.floor(50>a?5e3/a:200-2*a),b(c),x=a}}function s(){a||(a=50),q(),d(),e(),f(),r(a)}var t,u,v,w,x,y=(Math.round,Math.floor),z=new Array(64),A=new Array(64),B=new Array(64),C=new Array(64),D=new Array(65535),E=new Array(65535),F=new Array(64),G=new Array(64),H=[],I=0,J=7,K=new Array(64),L=new Array(64),M=new Array(64),N=new Array(256),O=new Array(2048),P=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],Q=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],R=[0,1,2,3,4,5,6,7,8,9,10,11],S=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],T=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],U=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],V=[0,1,2,3,4,5,6,7,8,9,10,11],W=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],X=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];this.encode=function(a,b){b&&r(b),H=new Array,I=0,J=7,i(65496),k(),m(),l(a.width,a.height),n(),o();var c=0,d=0,e=0;I=0,J=7,this.encode.displayName="_encode_";for(var f,h,j,q,s,x,y,z,A,D=a.data,E=a.width,F=a.height,G=4*E,N=0;F>N;){for(f=0;G>f;){for(s=G*N+f,x=s,y=-1,z=0,A=0;64>A;A++)z=A>>3,y=4*(7&A),x=s+z*G+y,N+z>=F&&(x-=G*(N+1+z-F)),f+y>=G&&(x-=f+y-G+4),h=D[x++],j=D[x++],q=D[x++],K[A]=(O[h]+O[j+256>>0]+O[q+512>>0]>>16)-128,L[A]=(O[h+768>>0]+O[j+1024>>0]+O[q+1280>>0]>>16)-128,M[A]=(O[h+1280>>0]+O[j+1536>>0]+O[q+1792>>0]>>16)-128;c=p(K,B,c,t,v),d=p(L,C,d,u,w),e=p(M,C,e,u,w),f+=32}N+=8}if(J>=0){var P=[];P[1]=J+1,P[0]=(1<<J+1)-1,g(P)}i(65497);var Q="data:image/jpeg;base64,"+btoa(H.join(""));return H=[],Q},s()}return a.encode=function(b,c){var d=new a(c);return d.encode(b)},a}),b("runtime/html5/androidpatch",["runtime/html5/util","runtime/html5/jpegencoder","base"],function(a,b,c){var d,e=a.canvasToDataUrl;a.canvasToDataUrl=function(a,f,g){var h,i,j,k,l;return c.os.android?("image/jpeg"===f&&"undefined"==typeof d&&(k=e.apply(null,arguments),l=k.split(","),k=~l[0].indexOf("base64")?atob(l[1]):decodeURIComponent(l[1]),k=k.substring(0,2),d=255===k.charCodeAt(0)&&216===k.charCodeAt(1)),"image/jpeg"!==f||d?e.apply(null,arguments):(i=a.width,j=a.height,h=a.getContext("2d"),b.encode(h.getImageData(0,0,i,j),g))):e.apply(null,arguments)}}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType&&h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("webuploader",["base","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/log","runtime/html5/blob","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/image","runtime/html5/androidpatch","runtime/html5/transport"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.fis.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.fis.js
new file mode 100644
index 0000000..431c519
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.fis.js
@@ -0,0 +1,8083 @@
+/*! WebUploader 0.1.5 */
+
+
+var jQuery = require('example:widget/ui/jquery/jquery.js')
+
+return (function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        };
+
+    return makeExport( jQuery );
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/dnd',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function DragAndDrop( opts ) {
+            opts = this.options = $.extend({}, DragAndDrop.options, opts );
+
+            opts.container = $( opts.container );
+
+            if ( !opts.container.length ) {
+                return;
+            }
+
+            RuntimeClent.call( this, 'DragAndDrop' );
+        }
+
+        DragAndDrop.options = {
+            accept: null,
+            disableGlobalDnd: false
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: DragAndDrop,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( DragAndDrop.prototype );
+
+        return DragAndDrop;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview DragAndDrop Widget。
+     */
+    define('widgets/filednd',[
+        'base',
+        'uploader',
+        'lib/dnd',
+        'widgets/widget'
+    ], function( Base, Uploader, Dnd ) {
+        var $ = Base.$;
+
+        Uploader.options.dnd = '';
+
+        /**
+         * @property {Selector} [dnd=undefined]  指定Drag And Drop拖拽的容器,如果不指定,则不启动。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @property {Selector} [disableGlobalDnd=false]  是否禁掉整个页面的拖拽功能,如果不禁用,图片拖进来的时候会默认被浏览器打开。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @event dndAccept
+         * @param {DataTransferItemList} items DataTransferItem
+         * @description 阻止此事件可以拒绝某些类型的文件拖入进来。目前只有 chrome 提供这样的 API,且只能通过 mime-type 验证。
+         * @for  Uploader
+         */
+        return Uploader.register({
+            name: 'dnd',
+
+            init: function( opts ) {
+
+                if ( !opts.dnd ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        disableGlobalDnd: opts.disableGlobalDnd,
+                        container: opts.dnd,
+                        accept: opts.accept
+                    }),
+                    dnd;
+
+                this.dnd = dnd = new Dnd( options );
+
+                dnd.once( 'ready', deferred.resolve );
+                dnd.on( 'drop', function( files ) {
+                    me.request( 'add-file', [ files ]);
+                });
+
+                // 检测文件是否全部允许添加。
+                dnd.on( 'accept', function( items ) {
+                    return me.owner.trigger( 'dndAccept', items );
+                });
+
+                dnd.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.dnd && this.dnd.destroy();
+            }
+        });
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepaste',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function FilePaste( opts ) {
+            opts = this.options = $.extend({}, opts );
+            opts.container = $( opts.container || document.body );
+            RuntimeClent.call( this, 'FilePaste' );
+        }
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePaste,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( FilePaste.prototype );
+
+        return FilePaste;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/filepaste',[
+        'base',
+        'uploader',
+        'lib/filepaste',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePaste ) {
+        var $ = Base.$;
+
+        /**
+         * @property {Selector} [paste=undefined]  指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为`document.body`.
+         * @namespace options
+         * @for Uploader
+         */
+        return Uploader.register({
+            name: 'paste',
+
+            init: function( opts ) {
+
+                if ( !opts.paste ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        container: opts.paste,
+                        accept: opts.accept
+                    }),
+                    paste;
+
+                this.paste = paste = new FilePaste( options );
+
+                paste.once( 'ready', deferred.resolve );
+                paste.on( 'paste', function( files ) {
+                    me.owner.request( 'add-file', [ files ]);
+                });
+                paste.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.paste && this.paste.destroy();
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('lib/image',[
+        'base',
+        'runtime/client',
+        'lib/blob'
+    ], function( Base, RuntimeClient, Blob ) {
+        var $ = Base.$;
+
+        // 构造器。
+        function Image( opts ) {
+            this.options = $.extend({}, Image.options, opts );
+            RuntimeClient.call( this, 'Image' );
+
+            this.on( 'load', function() {
+                this._info = this.exec('info');
+                this._meta = this.exec('meta');
+            });
+        }
+
+        // 默认选项。
+        Image.options = {
+
+            // 默认的图片处理质量
+            quality: 90,
+
+            // 是否裁剪
+            crop: false,
+
+            // 是否保留头部信息
+            preserveHeaders: false,
+
+            // 是否允许放大。
+            allowMagnify: false
+        };
+
+        // 继承RuntimeClient.
+        Base.inherits( RuntimeClient, {
+            constructor: Image,
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    ruid = blob.getRuid();
+
+                this.connectRuntime( ruid, function() {
+                    me.exec( 'init', me.options );
+                    me.exec( 'loadFromBlob', blob );
+                });
+            },
+
+            resize: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'resize' ].concat( args ) );
+            },
+
+            crop: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'crop' ].concat( args ) );
+            },
+
+            getAsDataUrl: function( type ) {
+                return this.exec( 'getAsDataUrl', type );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this.exec( 'getAsBlob', type );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+
+        return Image;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/image',[
+        'base',
+        'uploader',
+        'lib/image',
+        'widgets/widget'
+    ], function( Base, Uploader, Image ) {
+
+        var $ = Base.$,
+            throttle;
+
+        // 根据要处理的文件大小来节流,一次不能处理太多,会卡。
+        throttle = (function( max ) {
+            var occupied = 0,
+                waiting = [],
+                tick = function() {
+                    var item;
+
+                    while ( waiting.length && occupied < max ) {
+                        item = waiting.shift();
+                        occupied += item[ 0 ];
+                        item[ 1 ]();
+                    }
+                };
+
+            return function( emiter, size, cb ) {
+                waiting.push([ size, cb ]);
+                emiter.once( 'destroy', function() {
+                    occupied -= size;
+                    setTimeout( tick, 1 );
+                });
+                setTimeout( tick, 1 );
+            };
+        })( 5 * 1024 * 1024 );
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Object} [thumb]
+             * @namespace options
+             * @for Uploader
+             * @description 配置生成缩略图的选项。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 110,
+             *     height: 110,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 70,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: true,
+             *
+             *     // 是否允许裁剪。
+             *     crop: true,
+             *
+             *     // 为空的话则保留原有图片格式。
+             *     // 否则强制转换成指定的类型。
+             *     type: 'image/jpeg'
+             * }
+             * ```
+             */
+            thumb: {
+                width: 110,
+                height: 110,
+                quality: 70,
+                allowMagnify: true,
+                crop: true,
+                preserveHeaders: false,
+
+                // 为空的话则保留原有图片格式。
+                // 否则强制转换成指定的类型。
+                // IE 8下面 base64 大小不能超过 32K 否则预览失败,而非 jpeg 编码的图片很可
+                // 能会超过 32k, 所以这里设置成预览的时候都是 image/jpeg
+                type: 'image/jpeg'
+            },
+
+            /**
+             * @property {Object} [compress]
+             * @namespace options
+             * @for Uploader
+             * @description 配置压缩的图片的选项。如果此选项为`false`, 则图片在上传前不进行压缩。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 1600,
+             *     height: 1600,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 90,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: false,
+             *
+             *     // 是否允许裁剪。
+             *     crop: false,
+             *
+             *     // 是否保留头部meta信息。
+             *     preserveHeaders: true,
+             *
+             *     // 如果发现压缩后文件大小比原来还大,则使用原来图片
+             *     // 此属性可能会影响图片自动纠正功能
+             *     noCompressIfLarger: false,
+             *
+             *     // 单位字节,如果图片大小小于此值,不会采用压缩。
+             *     compressSize: 0
+             * }
+             * ```
+             */
+            compress: {
+                width: 1600,
+                height: 1600,
+                quality: 90,
+                allowMagnify: false,
+                crop: false,
+                preserveHeaders: true
+            }
+        });
+
+        return Uploader.register({
+
+            name: 'image',
+
+
+            /**
+             * 生成缩略图,此过程为异步,所以需要传入`callback`。
+             * 通常情况在图片加入队里后调用此方法来生成预览图以增强交互效果。
+             *
+             * 当 width 或者 height 的值介于 0 - 1 时,被当成百分比使用。
+             *
+             * `callback`中可以接收到两个参数。
+             * * 第一个为error,如果生成缩略图有错误,此error将为真。
+             * * 第二个为ret, 缩略图的Data URL值。
+             *
+             * **注意**
+             * Date URL在IE6/7中不支持,所以不用调用此方法了,直接显示一张暂不支持预览图片好了。
+             * 也可以借助服务端,将 base64 数据传给服务端,生成一个临时文件供预览。
+             *
+             * @method makeThumb
+             * @grammar makeThumb( file, callback ) => undefined
+             * @grammar makeThumb( file, callback, width, height ) => undefined
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.makeThumb( file, function( error, ret ) {
+             *         if ( error ) {
+             *             $li.text('预览错误');
+             *         } else {
+             *             $li.append('<img alt="" src="' + ret + '" />');
+             *         }
+             *     });
+             *
+             * });
+             */
+            makeThumb: function( file, cb, width, height ) {
+                var opts, image;
+
+                file = this.request( 'get-file', file );
+
+                // 只预览图片格式。
+                if ( !file.type.match( /^image/ ) ) {
+                    cb( true );
+                    return;
+                }
+
+                opts = $.extend({}, this.options.thumb );
+
+                // 如果传入的是object.
+                if ( $.isPlainObject( width ) ) {
+                    opts = $.extend( opts, width );
+                    width = null;
+                }
+
+                width = width || opts.width;
+                height = height || opts.height;
+
+                image = new Image( opts );
+
+                image.once( 'load', function() {
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                // 当 resize 完后
+                image.once( 'complete', function() {
+                    cb( false, image.getAsDataUrl( opts.type ) );
+                    image.destroy();
+                });
+
+                image.once( 'error', function( reason ) {
+                    cb( reason || true );
+                    image.destroy();
+                });
+
+                throttle( image, file.source.size, function() {
+                    file._info && image.info( file._info );
+                    file._meta && image.meta( file._meta );
+                    image.loadFromBlob( file.source );
+                });
+            },
+
+            beforeSendFile: function( file ) {
+                var opts = this.options.compress || this.options.resize,
+                    compressSize = opts && opts.compressSize || 0,
+                    noCompressIfLarger = opts && opts.noCompressIfLarger || false,
+                    image, deferred;
+
+                file = this.request( 'get-file', file );
+
+                // 只压缩 jpeg 图片格式。
+                // gif 可能会丢失针
+                // bmp png 基本上尺寸都不大,且压缩比比较小。
+                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
+                        file.size < compressSize ||
+                        file._compressed ) {
+                    return;
+                }
+
+                opts = $.extend({}, opts );
+                deferred = Base.Deferred();
+
+                image = new Image( opts );
+
+                deferred.always(function() {
+                    image.destroy();
+                    image = null;
+                });
+                image.once( 'error', deferred.reject );
+                image.once( 'load', function() {
+                    var width = opts.width,
+                        height = opts.height;
+
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                image.once( 'complete', function() {
+                    var blob, size;
+
+                    // 移动端 UC / qq 浏览器的无图模式下
+                    // ctx.getImageData 处理大图的时候会报 Exception
+                    // INDEX_SIZE_ERR: DOM Exception 1
+                    try {
+                        blob = image.getAsBlob( opts.type );
+
+                        size = file.size;
+
+                        // 如果压缩后,比原来还大则不用压缩后的。
+                        if ( !noCompressIfLarger || blob.size < size ) {
+                            // file.source.destroy && file.source.destroy();
+                            file.source = blob;
+                            file.size = blob.size;
+
+                            file.trigger( 'resize', blob.size, size );
+                        }
+
+                        // 标记,避免重复压缩。
+                        file._compressed = true;
+                        deferred.resolve();
+                    } catch ( e ) {
+                        // 出错了直接继续,让其上传原始图片
+                        deferred.resolve();
+                    }
+                });
+
+                file._info && image.info( file._info );
+                file._meta && image.meta( file._meta );
+
+                image.loadFromBlob( file.source );
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Md5
+     */
+    define('lib/md5',[
+        'runtime/client',
+        'mediator'
+    ], function( RuntimeClient, Mediator ) {
+
+        function Md5() {
+            RuntimeClient.call( this, 'Md5' );
+        }
+
+        // 让 Md5 具备事件功能。
+        Mediator.installTo( Md5.prototype );
+
+        Md5.prototype.loadFromBlob = function( blob ) {
+            var me = this;
+
+            if ( me.getRuid() ) {
+                me.disconnectRuntime();
+            }
+
+            // 连接到blob归属的同一个runtime.
+            me.connectRuntime( blob.ruid, function() {
+                me.exec('init');
+                me.exec( 'loadFromBlob', blob );
+            });
+        };
+
+        Md5.prototype.getResult = function() {
+            return this.exec('getResult');
+        };
+
+        return Md5;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/md5',[
+        'base',
+        'uploader',
+        'lib/md5',
+        'lib/blob',
+        'widgets/widget'
+    ], function( Base, Uploader, Md5, Blob ) {
+
+        return Uploader.register({
+            name: 'md5',
+
+
+            /**
+             * 计算文件 md5 值,返回一个 promise 对象,可以监听 progress 进度。
+             *
+             *
+             * @method md5File
+             * @grammar md5File( file[, start[, end]] ) => promise
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.md5File( file )
+             *
+             *         // 及时显示进度
+             *         .progress(function(percentage) {
+             *             console.log('Percentage:', percentage);
+             *         })
+             *
+             *         // 完成
+             *         .then(function(val) {
+             *             console.log('md5 result:', val);
+             *         });
+             *
+             * });
+             */
+            md5File: function( file, start, end ) {
+                var md5 = new Md5(),
+                    deferred = Base.Deferred(),
+                    blob = (file instanceof Blob) ? file :
+                        this.request( 'get-file', file ).source;
+
+                md5.on( 'progress load', function( e ) {
+                    e = e || {};
+                    deferred.notify( e.total ? e.loaded / e.total : 1 );
+                });
+
+                md5.on( 'complete', function() {
+                    deferred.resolve( md5.getResult() );
+                });
+
+                md5.on( 'error', function( reason ) {
+                    deferred.reject( reason );
+                });
+
+                if ( arguments.length > 1 ) {
+                    start = start || 0;
+                    end = end || 0;
+                    start < 0 && (start = blob.size + start);
+                    end < 0 && (end = blob.size + end);
+                    end = Math.min( end, blob.size );
+                    blob = blob.slice( start, end );
+                }
+
+                md5.loadFromBlob( blob );
+
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/dnd',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        var $ = Base.$,
+            prefix = 'webuploader-dnd-';
+
+        return Html5Runtime.register( 'DragAndDrop', {
+            init: function() {
+                var elem = this.elem = this.options.container;
+
+                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
+                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
+                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
+                this.dropHandler = Base.bindFn( this._dropHandler, this );
+                this.dndOver = false;
+
+                elem.on( 'dragenter', this.dragEnterHandler );
+                elem.on( 'dragover', this.dragOverHandler );
+                elem.on( 'dragleave', this.dragLeaveHandler );
+                elem.on( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).on( 'dragover', this.dragOverHandler );
+                    $( document ).on( 'drop', this.dropHandler );
+                }
+            },
+
+            _dragEnterHandler: function( e ) {
+                var me = this,
+                    denied = me._denied || false,
+                    items;
+
+                e = e.originalEvent || e;
+
+                if ( !me.dndOver ) {
+                    me.dndOver = true;
+
+                    // 注意只有 chrome 支持。
+                    items = e.dataTransfer.items;
+
+                    if ( items && items.length ) {
+                        me._denied = denied = !me.trigger( 'accept', items );
+                    }
+
+                    me.elem.addClass( prefix + 'over' );
+                    me.elem[ denied ? 'addClass' :
+                            'removeClass' ]( prefix + 'denied' );
+                }
+
+                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
+
+                return false;
+            },
+
+            _dragOverHandler: function( e ) {
+                // 只处理框内的。
+                var parentElem = this.elem.parent().get( 0 );
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                clearTimeout( this._leaveTimer );
+                this._dragEnterHandler.call( this, e );
+
+                return false;
+            },
+
+            _dragLeaveHandler: function() {
+                var me = this,
+                    handler;
+
+                handler = function() {
+                    me.dndOver = false;
+                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
+                };
+
+                clearTimeout( me._leaveTimer );
+                me._leaveTimer = setTimeout( handler, 100 );
+                return false;
+            },
+
+            _dropHandler: function( e ) {
+                var me = this,
+                    ruid = me.getRuid(),
+                    parentElem = me.elem.parent().get( 0 ),
+                    dataTransfer, data;
+
+                // 只处理框内的。
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                e = e.originalEvent || e;
+                dataTransfer = e.dataTransfer;
+
+                // 如果是页面内拖拽,还不能处理,不阻止事件。
+                // 此处 ie11 下会报参数错误,
+                try {
+                    data = dataTransfer.getData('text/html');
+                } catch( err ) {
+                }
+
+                if ( data ) {
+                    return;
+                }
+
+                me._getTansferFiles( dataTransfer, function( results ) {
+                    me.trigger( 'drop', $.map( results, function( file ) {
+                        return new File( ruid, file );
+                    }) );
+                });
+
+                me.dndOver = false;
+                me.elem.removeClass( prefix + 'over' );
+                return false;
+            },
+
+            // 如果传入 callback 则去查看文件夹,否则只管当前文件夹。
+            _getTansferFiles: function( dataTransfer, callback ) {
+                var results  = [],
+                    promises = [],
+                    items, files, file, item, i, len, canAccessFolder;
+
+                items = dataTransfer.items;
+                files = dataTransfer.files;
+
+                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
+
+                for ( i = 0, len = files.length; i < len; i++ ) {
+                    file = files[ i ];
+                    item = items && items[ i ];
+
+                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
+
+                        promises.push( this._traverseDirectoryTree(
+                                item.webkitGetAsEntry(), results ) );
+                    } else {
+                        results.push( file );
+                    }
+                }
+
+                Base.when.apply( Base, promises ).done(function() {
+
+                    if ( !results.length ) {
+                        return;
+                    }
+
+                    callback( results );
+                });
+            },
+
+            _traverseDirectoryTree: function( entry, results ) {
+                var deferred = Base.Deferred(),
+                    me = this;
+
+                if ( entry.isFile ) {
+                    entry.file(function( file ) {
+                        results.push( file );
+                        deferred.resolve();
+                    });
+                } else if ( entry.isDirectory ) {
+                    entry.createReader().readEntries(function( entries ) {
+                        var len = entries.length,
+                            promises = [],
+                            arr = [],    // 为了保证顺序。
+                            i;
+
+                        for ( i = 0; i < len; i++ ) {
+                            promises.push( me._traverseDirectoryTree(
+                                    entries[ i ], arr ) );
+                        }
+
+                        Base.when.apply( Base, promises ).then(function() {
+                            results.push.apply( results, arr );
+                            deferred.resolve();
+                        }, deferred.reject );
+                    });
+                }
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                var elem = this.elem;
+
+                // 还没 init 就调用 destroy
+                if (!elem) {
+                    return;
+                }
+
+                elem.off( 'dragenter', this.dragEnterHandler );
+                elem.off( 'dragover', this.dragOverHandler );
+                elem.off( 'dragleave', this.dragLeaveHandler );
+                elem.off( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).off( 'dragover', this.dragOverHandler );
+                    $( document ).off( 'drop', this.dropHandler );
+                }
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/filepaste',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        return Html5Runtime.register( 'FilePaste', {
+            init: function() {
+                var opts = this.options,
+                    elem = this.elem = opts.container,
+                    accept = '.*',
+                    arr, i, len, item;
+
+                // accetp的mimeTypes中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].mimeTypes;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = arr.join(',');
+                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
+                    }
+                }
+                this.accept = accept = new RegExp( accept, 'i' );
+                this.hander = Base.bindFn( this._pasteHander, this );
+                elem.on( 'paste', this.hander );
+            },
+
+            _pasteHander: function( e ) {
+                var allowed = [],
+                    ruid = this.getRuid(),
+                    items, item, blob, i, len;
+
+                e = e.originalEvent || e;
+                items = e.clipboardData.items;
+
+                for ( i = 0, len = items.length; i < len; i++ ) {
+                    item = items[ i ];
+
+                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
+                        continue;
+                    }
+
+                    allowed.push( new File( ruid, blob ) );
+                }
+
+                if ( allowed.length ) {
+                    // 不阻止非文件粘贴(文字粘贴)的事件冒泡
+                    e.preventDefault();
+                    e.stopPropagation();
+                    this.trigger( 'paste', allowed );
+                }
+            },
+
+            destroy: function() {
+                this.elem.off( 'paste', this.hander );
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/util',[
+        'base'
+    ], function( Base ) {
+
+        var urlAPI = window.createObjectURL && window ||
+                window.URL && URL.revokeObjectURL && URL ||
+                window.webkitURL,
+            createObjectURL = Base.noop,
+            revokeObjectURL = createObjectURL;
+
+        if ( urlAPI ) {
+
+            // 更安全的方式调用,比如android里面就能把context改成其他的对象。
+            createObjectURL = function() {
+                return urlAPI.createObjectURL.apply( urlAPI, arguments );
+            };
+
+            revokeObjectURL = function() {
+                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
+            };
+        }
+
+        return {
+            createObjectURL: createObjectURL,
+            revokeObjectURL: revokeObjectURL,
+
+            dataURL2Blob: function( dataURI ) {
+                var byteStr, intArray, ab, i, mimetype, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                ab = new ArrayBuffer( byteStr.length );
+                intArray = new Uint8Array( ab );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
+
+                return this.arrayBufferToBlob( ab, mimetype );
+            },
+
+            dataURL2ArrayBuffer: function( dataURI ) {
+                var byteStr, intArray, i, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                intArray = new Uint8Array( byteStr.length );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                return intArray.buffer;
+            },
+
+            arrayBufferToBlob: function( buffer, type ) {
+                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
+                    bb;
+
+                // android不支持直接new Blob, 只能借助blobbuilder.
+                if ( builder ) {
+                    bb = new builder();
+                    bb.append( buffer );
+                    return bb.getBlob( type );
+                }
+
+                return new Blob([ buffer ], type ? { type: type } : {} );
+            },
+
+            // 抽出来主要是为了解决android下面canvas.toDataUrl不支持jpeg.
+            // 你得到的结果是png.
+            canvasToDataUrl: function( canvas, type, quality ) {
+                return canvas.toDataURL( type, quality / 100 );
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            parseMeta: function( blob, callback ) {
+                callback( false, {});
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            updateImageHead: function( data ) {
+                return data;
+            }
+        };
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/imagemeta',[
+        'runtime/html5/util'
+    ], function( Util ) {
+
+        var api;
+
+        api = {
+            parsers: {
+                0xffe1: []
+            },
+
+            maxMetaDataSize: 262144,
+
+            parse: function( blob, cb ) {
+                var me = this,
+                    fr = new FileReader();
+
+                fr.onload = function() {
+                    cb( false, me._parse( this.result ) );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                fr.onerror = function( e ) {
+                    cb( e.message );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                blob = blob.slice( 0, me.maxMetaDataSize );
+                fr.readAsArrayBuffer( blob.getSource() );
+            },
+
+            _parse: function( buffer, noParse ) {
+                if ( buffer.byteLength < 6 ) {
+                    return;
+                }
+
+                var dataview = new DataView( buffer ),
+                    offset = 2,
+                    maxOffset = dataview.byteLength - 4,
+                    headLength = offset,
+                    ret = {},
+                    markerBytes, markerLength, parsers, i;
+
+                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
+
+                    while ( offset < maxOffset ) {
+                        markerBytes = dataview.getUint16( offset );
+
+                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
+                                markerBytes === 0xfffe ) {
+
+                            markerLength = dataview.getUint16( offset + 2 ) + 2;
+
+                            if ( offset + markerLength > dataview.byteLength ) {
+                                break;
+                            }
+
+                            parsers = api.parsers[ markerBytes ];
+
+                            if ( !noParse && parsers ) {
+                                for ( i = 0; i < parsers.length; i += 1 ) {
+                                    parsers[ i ].call( api, dataview, offset,
+                                            markerLength, ret );
+                                }
+                            }
+
+                            offset += markerLength;
+                            headLength = offset;
+                        } else {
+                            break;
+                        }
+                    }
+
+                    if ( headLength > 6 ) {
+                        if ( buffer.slice ) {
+                            ret.imageHead = buffer.slice( 2, headLength );
+                        } else {
+                            // Workaround for IE10, which does not yet
+                            // support ArrayBuffer.slice:
+                            ret.imageHead = new Uint8Array( buffer )
+                                    .subarray( 2, headLength );
+                        }
+                    }
+                }
+
+                return ret;
+            },
+
+            updateImageHead: function( buffer, head ) {
+                var data = this._parse( buffer, true ),
+                    buf1, buf2, bodyoffset;
+
+
+                bodyoffset = 2;
+                if ( data.imageHead ) {
+                    bodyoffset = 2 + data.imageHead.byteLength;
+                }
+
+                if ( buffer.slice ) {
+                    buf2 = buffer.slice( bodyoffset );
+                } else {
+                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
+                }
+
+                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
+
+                buf1[ 0 ] = 0xFF;
+                buf1[ 1 ] = 0xD8;
+                buf1.set( new Uint8Array( head ), 2 );
+                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
+
+                return buf1.buffer;
+            }
+        };
+
+        Util.parseMeta = function() {
+            return api.parse.apply( api, arguments );
+        };
+
+        Util.updateImageHead = function() {
+            return api.updateImageHead.apply( api, arguments );
+        };
+
+        return api;
+    });
+    /**
+     * 代码来自于:https://github.com/blueimp/JavaScript-Load-Image
+     * 暂时项目中只用了orientation.
+     *
+     * 去除了 Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
+     * @fileOverview EXIF解析
+     */
+
+    // Sample
+    // ====================================
+    // Make : Apple
+    // Model : iPhone 4S
+    // Orientation : 1
+    // XResolution : 72 [72/1]
+    // YResolution : 72 [72/1]
+    // ResolutionUnit : 2
+    // Software : QuickTime 7.7.1
+    // DateTime : 2013:09:01 22:53:55
+    // ExifIFDPointer : 190
+    // ExposureTime : 0.058823529411764705 [1/17]
+    // FNumber : 2.4 [12/5]
+    // ExposureProgram : Normal program
+    // ISOSpeedRatings : 800
+    // ExifVersion : 0220
+    // DateTimeOriginal : 2013:09:01 22:52:51
+    // DateTimeDigitized : 2013:09:01 22:52:51
+    // ComponentsConfiguration : YCbCr
+    // ShutterSpeedValue : 4.058893515764426
+    // ApertureValue : 2.5260688216892597 [4845/1918]
+    // BrightnessValue : -0.3126686601998395
+    // MeteringMode : Pattern
+    // Flash : Flash did not fire, compulsory flash mode
+    // FocalLength : 4.28 [107/25]
+    // SubjectArea : [4 values]
+    // FlashpixVersion : 0100
+    // ColorSpace : 1
+    // PixelXDimension : 2448
+    // PixelYDimension : 3264
+    // SensingMethod : One-chip color area sensor
+    // ExposureMode : 0
+    // WhiteBalance : Auto white balance
+    // FocalLengthIn35mmFilm : 35
+    // SceneCaptureType : Standard
+    define('runtime/html5/imagemeta/exif',[
+        'base',
+        'runtime/html5/imagemeta'
+    ], function( Base, ImageMeta ) {
+
+        var EXIF = {};
+
+        EXIF.ExifMap = function() {
+            return this;
+        };
+
+        EXIF.ExifMap.prototype.map = {
+            'Orientation': 0x0112
+        };
+
+        EXIF.ExifMap.prototype.get = function( id ) {
+            return this[ id ] || this[ this.map[ id ] ];
+        };
+
+        EXIF.exifTagTypes = {
+            // byte, 8-bit unsigned int:
+            1: {
+                getValue: function( dataView, dataOffset ) {
+                    return dataView.getUint8( dataOffset );
+                },
+                size: 1
+            },
+
+            // ascii, 8-bit byte:
+            2: {
+                getValue: function( dataView, dataOffset ) {
+                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
+                },
+                size: 1,
+                ascii: true
+            },
+
+            // short, 16 bit int:
+            3: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint16( dataOffset, littleEndian );
+                },
+                size: 2
+            },
+
+            // long, 32 bit int:
+            4: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // rational = two long values,
+            // first is numerator, second is denominator:
+            5: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian ) /
+                        dataView.getUint32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            },
+
+            // slong, 32 bit signed int:
+            9: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // srational, two slongs, first is numerator, second is denominator:
+            10: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian ) /
+                        dataView.getInt32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            }
+        };
+
+        // undefined, 8-bit byte, value depending on field:
+        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
+
+        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
+                littleEndian ) {
+
+            var tagType = EXIF.exifTagTypes[ type ],
+                tagSize, dataOffset, values, i, str, c;
+
+            if ( !tagType ) {
+                Base.log('Invalid Exif data: Invalid tag type.');
+                return;
+            }
+
+            tagSize = tagType.size * length;
+
+            // Determine if the value is contained in the dataOffset bytes,
+            // or if the value at the dataOffset is a pointer to the actual data:
+            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
+                    littleEndian ) : (offset + 8);
+
+            if ( dataOffset + tagSize > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid data offset.');
+                return;
+            }
+
+            if ( length === 1 ) {
+                return tagType.getValue( dataView, dataOffset, littleEndian );
+            }
+
+            values = [];
+
+            for ( i = 0; i < length; i += 1 ) {
+                values[ i ] = tagType.getValue( dataView,
+                        dataOffset + i * tagType.size, littleEndian );
+            }
+
+            if ( tagType.ascii ) {
+                str = '';
+
+                // Concatenate the chars:
+                for ( i = 0; i < values.length; i += 1 ) {
+                    c = values[ i ];
+
+                    // Ignore the terminating NULL byte(s):
+                    if ( c === '\u0000' ) {
+                        break;
+                    }
+                    str += c;
+                }
+
+                return str;
+            }
+            return values;
+        };
+
+        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
+                data ) {
+
+            var tag = dataView.getUint16( offset, littleEndian );
+            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
+                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
+                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
+                    littleEndian );
+        };
+
+        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
+                littleEndian, data ) {
+
+            var tagsNumber, dirEndOffset, i;
+
+            if ( dirOffset + 6 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory offset.');
+                return;
+            }
+
+            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
+            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
+
+            if ( dirEndOffset + 4 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory size.');
+                return;
+            }
+
+            for ( i = 0; i < tagsNumber; i += 1 ) {
+                this.parseExifTag( dataView, tiffOffset,
+                        dirOffset + 2 + 12 * i,    // tag offset
+                        littleEndian, data );
+            }
+
+            // Return the offset to the next directory:
+            return dataView.getUint32( dirEndOffset, littleEndian );
+        };
+
+        // EXIF.getExifThumbnail = function(dataView, offset, length) {
+        //     var hexData,
+        //         i,
+        //         b;
+        //     if (!length || offset + length > dataView.byteLength) {
+        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
+        //         return;
+        //     }
+        //     hexData = [];
+        //     for (i = 0; i < length; i += 1) {
+        //         b = dataView.getUint8(offset + i);
+        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
+        //     }
+        //     return 'data:image/jpeg,%' + hexData.join('%');
+        // };
+
+        EXIF.parseExifData = function( dataView, offset, length, data ) {
+
+            var tiffOffset = offset + 10,
+                littleEndian, dirOffset;
+
+            // Check for the ASCII code for "Exif" (0x45786966):
+            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
+                // No Exif data, might be XMP data instead
+                return;
+            }
+            if ( tiffOffset + 8 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid segment size.');
+                return;
+            }
+
+            // Check for the two null bytes:
+            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
+                Base.log('Invalid Exif data: Missing byte alignment offset.');
+                return;
+            }
+
+            // Check the byte alignment:
+            switch ( dataView.getUint16( tiffOffset ) ) {
+                case 0x4949:
+                    littleEndian = true;
+                    break;
+
+                case 0x4D4D:
+                    littleEndian = false;
+                    break;
+
+                default:
+                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
+                    return;
+            }
+
+            // Check for the TIFF tag marker (0x002A):
+            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
+                Base.log('Invalid Exif data: Missing TIFF marker.');
+                return;
+            }
+
+            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
+            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
+            // Create the exif object to store the tags:
+            data.exif = new EXIF.ExifMap();
+            // Parse the tags of the main image directory and retrieve the
+            // offset to the next directory, usually the thumbnail directory:
+            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
+                    tiffOffset + dirOffset, littleEndian, data );
+
+            // 尝试读取缩略图
+            // if ( dirOffset ) {
+            //     thumbnailData = {exif: {}};
+            //     dirOffset = EXIF.parseExifTags(
+            //         dataView,
+            //         tiffOffset,
+            //         tiffOffset + dirOffset,
+            //         littleEndian,
+            //         thumbnailData
+            //     );
+
+            //     // Check for JPEG Thumbnail offset:
+            //     if (thumbnailData.exif[0x0201]) {
+            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
+            //             dataView,
+            //             tiffOffset + thumbnailData.exif[0x0201],
+            //             thumbnailData.exif[0x0202] // Thumbnail data length
+            //         );
+            //     }
+            // }
+        };
+
+        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
+        return EXIF;
+    });
+    /**
+     * 这个方式性能不行,但是可以解决android里面的toDataUrl的bug
+     * android里面toDataUrl('image/jpege')得到的结果却是png.
+     *
+     * 所以这里没辙,只能借助这个工具
+     * @fileOverview jpeg encoder
+     */
+    define('runtime/html5/jpegencoder',[], function( require, exports, module ) {
+
+        /*
+          Copyright (c) 2008, Adobe Systems Incorporated
+          All rights reserved.
+
+          Redistribution and use in source and binary forms, with or without
+          modification, are permitted provided that the following conditions are
+          met:
+
+          * Redistributions of source code must retain the above copyright notice,
+            this list of conditions and the following disclaimer.
+
+          * Redistributions in binary form must reproduce the above copyright
+            notice, this list of conditions and the following disclaimer in the
+            documentation and/or other materials provided with the distribution.
+
+          * Neither the name of Adobe Systems Incorporated nor the names of its
+            contributors may be used to endorse or promote products derived from
+            this software without specific prior written permission.
+
+          THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+          IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+          THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+          PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 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.
+        */
+        /*
+        JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
+
+        Basic GUI blocking jpeg encoder
+        */
+
+        function JPEGEncoder(quality) {
+          var self = this;
+            var fround = Math.round;
+            var ffloor = Math.floor;
+            var YTable = new Array(64);
+            var UVTable = new Array(64);
+            var fdtbl_Y = new Array(64);
+            var fdtbl_UV = new Array(64);
+            var YDC_HT;
+            var UVDC_HT;
+            var YAC_HT;
+            var UVAC_HT;
+
+            var bitcode = new Array(65535);
+            var category = new Array(65535);
+            var outputfDCTQuant = new Array(64);
+            var DU = new Array(64);
+            var byteout = [];
+            var bytenew = 0;
+            var bytepos = 7;
+
+            var YDU = new Array(64);
+            var UDU = new Array(64);
+            var VDU = new Array(64);
+            var clt = new Array(256);
+            var RGB_YUV_TABLE = new Array(2048);
+            var currentQuality;
+
+            var ZigZag = [
+                     0, 1, 5, 6,14,15,27,28,
+                     2, 4, 7,13,16,26,29,42,
+                     3, 8,12,17,25,30,41,43,
+                     9,11,18,24,31,40,44,53,
+                    10,19,23,32,39,45,52,54,
+                    20,22,33,38,46,51,55,60,
+                    21,34,37,47,50,56,59,61,
+                    35,36,48,49,57,58,62,63
+                ];
+
+            var std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
+            var std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
+            var std_ac_luminance_values = [
+                    0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
+                    0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
+                    0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
+                    0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
+                    0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
+                    0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
+                    0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
+                    0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+                    0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+                    0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+                    0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
+                    0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+                    0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+                    0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+                    0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
+                    0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
+                    0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
+                    0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
+                    0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
+                    0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            var std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
+            var std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
+            var std_ac_chrominance_values = [
+                    0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
+                    0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
+                    0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
+                    0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
+                    0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
+                    0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
+                    0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
+                    0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
+                    0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
+                    0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
+                    0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
+                    0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
+                    0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
+                    0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
+                    0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
+                    0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
+                    0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
+                    0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
+                    0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
+                    0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            function initQuantTables(sf){
+                    var YQT = [
+                        16, 11, 10, 16, 24, 40, 51, 61,
+                        12, 12, 14, 19, 26, 58, 60, 55,
+                        14, 13, 16, 24, 40, 57, 69, 56,
+                        14, 17, 22, 29, 51, 87, 80, 62,
+                        18, 22, 37, 56, 68,109,103, 77,
+                        24, 35, 55, 64, 81,104,113, 92,
+                        49, 64, 78, 87,103,121,120,101,
+                        72, 92, 95, 98,112,100,103, 99
+                    ];
+
+                    for (var i = 0; i < 64; i++) {
+                        var t = ffloor((YQT[i]*sf+50)/100);
+                        if (t < 1) {
+                            t = 1;
+                        } else if (t > 255) {
+                            t = 255;
+                        }
+                        YTable[ZigZag[i]] = t;
+                    }
+                    var UVQT = [
+                        17, 18, 24, 47, 99, 99, 99, 99,
+                        18, 21, 26, 66, 99, 99, 99, 99,
+                        24, 26, 56, 99, 99, 99, 99, 99,
+                        47, 66, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99
+                    ];
+                    for (var j = 0; j < 64; j++) {
+                        var u = ffloor((UVQT[j]*sf+50)/100);
+                        if (u < 1) {
+                            u = 1;
+                        } else if (u > 255) {
+                            u = 255;
+                        }
+                        UVTable[ZigZag[j]] = u;
+                    }
+                    var aasf = [
+                        1.0, 1.387039845, 1.306562965, 1.175875602,
+                        1.0, 0.785694958, 0.541196100, 0.275899379
+                    ];
+                    var k = 0;
+                    for (var row = 0; row < 8; row++)
+                    {
+                        for (var col = 0; col < 8; col++)
+                        {
+                            fdtbl_Y[k]  = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            fdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            k++;
+                        }
+                    }
+                }
+
+                function computeHuffmanTbl(nrcodes, std_table){
+                    var codevalue = 0;
+                    var pos_in_table = 0;
+                    var HT = new Array();
+                    for (var k = 1; k <= 16; k++) {
+                        for (var j = 1; j <= nrcodes[k]; j++) {
+                            HT[std_table[pos_in_table]] = [];
+                            HT[std_table[pos_in_table]][0] = codevalue;
+                            HT[std_table[pos_in_table]][1] = k;
+                            pos_in_table++;
+                            codevalue++;
+                        }
+                        codevalue*=2;
+                    }
+                    return HT;
+                }
+
+                function initHuffmanTbl()
+                {
+                    YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
+                    UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
+                    YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
+                    UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
+                }
+
+                function initCategoryNumber()
+                {
+                    var nrlower = 1;
+                    var nrupper = 2;
+                    for (var cat = 1; cat <= 15; cat++) {
+                        //Positive numbers
+                        for (var nr = nrlower; nr<nrupper; nr++) {
+                            category[32767+nr] = cat;
+                            bitcode[32767+nr] = [];
+                            bitcode[32767+nr][1] = cat;
+                            bitcode[32767+nr][0] = nr;
+                        }
+                        //Negative numbers
+                        for (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {
+                            category[32767+nrneg] = cat;
+                            bitcode[32767+nrneg] = [];
+                            bitcode[32767+nrneg][1] = cat;
+                            bitcode[32767+nrneg][0] = nrupper-1+nrneg;
+                        }
+                        nrlower <<= 1;
+                        nrupper <<= 1;
+                    }
+                }
+
+                function initRGBYUVTable() {
+                    for(var i = 0; i < 256;i++) {
+                        RGB_YUV_TABLE[i]            =  19595 * i;
+                        RGB_YUV_TABLE[(i+ 256)>>0]  =  38470 * i;
+                        RGB_YUV_TABLE[(i+ 512)>>0]  =   7471 * i + 0x8000;
+                        RGB_YUV_TABLE[(i+ 768)>>0]  = -11059 * i;
+                        RGB_YUV_TABLE[(i+1024)>>0]  = -21709 * i;
+                        RGB_YUV_TABLE[(i+1280)>>0]  =  32768 * i + 0x807FFF;
+                        RGB_YUV_TABLE[(i+1536)>>0]  = -27439 * i;
+                        RGB_YUV_TABLE[(i+1792)>>0]  = - 5329 * i;
+                    }
+                }
+
+                // IO functions
+                function writeBits(bs)
+                {
+                    var value = bs[0];
+                    var posval = bs[1]-1;
+                    while ( posval >= 0 ) {
+                        if (value & (1 << posval) ) {
+                            bytenew |= (1 << bytepos);
+                        }
+                        posval--;
+                        bytepos--;
+                        if (bytepos < 0) {
+                            if (bytenew == 0xFF) {
+                                writeByte(0xFF);
+                                writeByte(0);
+                            }
+                            else {
+                                writeByte(bytenew);
+                            }
+                            bytepos=7;
+                            bytenew=0;
+                        }
+                    }
+                }
+
+                function writeByte(value)
+                {
+                    byteout.push(clt[value]); // write char directly instead of converting later
+                }
+
+                function writeWord(value)
+                {
+                    writeByte((value>>8)&0xFF);
+                    writeByte((value   )&0xFF);
+                }
+
+                // DCT & quantization core
+                function fDCTQuant(data, fdtbl)
+                {
+                    var d0, d1, d2, d3, d4, d5, d6, d7;
+                    /* Pass 1: process rows. */
+                    var dataOff=0;
+                    var i;
+                    var I8 = 8;
+                    var I64 = 64;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff+1];
+                        d2 = data[dataOff+2];
+                        d3 = data[dataOff+3];
+                        d4 = data[dataOff+4];
+                        d5 = data[dataOff+5];
+                        d6 = data[dataOff+6];
+                        d7 = data[dataOff+7];
+
+                        var tmp0 = d0 + d7;
+                        var tmp7 = d0 - d7;
+                        var tmp1 = d1 + d6;
+                        var tmp6 = d1 - d6;
+                        var tmp2 = d2 + d5;
+                        var tmp5 = d2 - d5;
+                        var tmp3 = d3 + d4;
+                        var tmp4 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10 = tmp0 + tmp3;    /* phase 2 */
+                        var tmp13 = tmp0 - tmp3;
+                        var tmp11 = tmp1 + tmp2;
+                        var tmp12 = tmp1 - tmp2;
+
+                        data[dataOff] = tmp10 + tmp11; /* phase 3 */
+                        data[dataOff+4] = tmp10 - tmp11;
+
+                        var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
+                        data[dataOff+2] = tmp13 + z1; /* phase 5 */
+                        data[dataOff+6] = tmp13 - z1;
+
+                        /* Odd part */
+                        tmp10 = tmp4 + tmp5; /* phase 2 */
+                        tmp11 = tmp5 + tmp6;
+                        tmp12 = tmp6 + tmp7;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
+                        var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
+                        var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
+                        var z3 = tmp11 * 0.707106781; /* c4 */
+
+                        var z11 = tmp7 + z3;    /* phase 5 */
+                        var z13 = tmp7 - z3;
+
+                        data[dataOff+5] = z13 + z2; /* phase 6 */
+                        data[dataOff+3] = z13 - z2;
+                        data[dataOff+1] = z11 + z4;
+                        data[dataOff+7] = z11 - z4;
+
+                        dataOff += 8; /* advance pointer to next row */
+                    }
+
+                    /* Pass 2: process columns. */
+                    dataOff = 0;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff + 8];
+                        d2 = data[dataOff + 16];
+                        d3 = data[dataOff + 24];
+                        d4 = data[dataOff + 32];
+                        d5 = data[dataOff + 40];
+                        d6 = data[dataOff + 48];
+                        d7 = data[dataOff + 56];
+
+                        var tmp0p2 = d0 + d7;
+                        var tmp7p2 = d0 - d7;
+                        var tmp1p2 = d1 + d6;
+                        var tmp6p2 = d1 - d6;
+                        var tmp2p2 = d2 + d5;
+                        var tmp5p2 = d2 - d5;
+                        var tmp3p2 = d3 + d4;
+                        var tmp4p2 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10p2 = tmp0p2 + tmp3p2;  /* phase 2 */
+                        var tmp13p2 = tmp0p2 - tmp3p2;
+                        var tmp11p2 = tmp1p2 + tmp2p2;
+                        var tmp12p2 = tmp1p2 - tmp2p2;
+
+                        data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */
+                        data[dataOff+32] = tmp10p2 - tmp11p2;
+
+                        var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
+                        data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
+                        data[dataOff+48] = tmp13p2 - z1p2;
+
+                        /* Odd part */
+                        tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
+                        tmp11p2 = tmp5p2 + tmp6p2;
+                        tmp12p2 = tmp6p2 + tmp7p2;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
+                        var z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
+                        var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
+                        var z3p2 = tmp11p2 * 0.707106781; /* c4 */
+
+                        var z11p2 = tmp7p2 + z3p2;  /* phase 5 */
+                        var z13p2 = tmp7p2 - z3p2;
+
+                        data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
+                        data[dataOff+24] = z13p2 - z2p2;
+                        data[dataOff+ 8] = z11p2 + z4p2;
+                        data[dataOff+56] = z11p2 - z4p2;
+
+                        dataOff++; /* advance pointer to next column */
+                    }
+
+                    // Quantize/descale the coefficients
+                    var fDCTQuant;
+                    for (i=0; i<I64; ++i)
+                    {
+                        // Apply the quantization and scaling factor & Round to nearest integer
+                        fDCTQuant = data[i]*fdtbl[i];
+                        outputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);
+                        //outputfDCTQuant[i] = fround(fDCTQuant);
+
+                    }
+                    return outputfDCTQuant;
+                }
+
+                function writeAPP0()
+                {
+                    writeWord(0xFFE0); // marker
+                    writeWord(16); // length
+                    writeByte(0x4A); // J
+                    writeByte(0x46); // F
+                    writeByte(0x49); // I
+                    writeByte(0x46); // F
+                    writeByte(0); // = "JFIF",'\0'
+                    writeByte(1); // versionhi
+                    writeByte(1); // versionlo
+                    writeByte(0); // xyunits
+                    writeWord(1); // xdensity
+                    writeWord(1); // ydensity
+                    writeByte(0); // thumbnwidth
+                    writeByte(0); // thumbnheight
+                }
+
+                function writeSOF0(width, height)
+                {
+                    writeWord(0xFFC0); // marker
+                    writeWord(17);   // length, truecolor YUV JPG
+                    writeByte(8);    // precision
+                    writeWord(height);
+                    writeWord(width);
+                    writeByte(3);    // nrofcomponents
+                    writeByte(1);    // IdY
+                    writeByte(0x11); // HVY
+                    writeByte(0);    // QTY
+                    writeByte(2);    // IdU
+                    writeByte(0x11); // HVU
+                    writeByte(1);    // QTU
+                    writeByte(3);    // IdV
+                    writeByte(0x11); // HVV
+                    writeByte(1);    // QTV
+                }
+
+                function writeDQT()
+                {
+                    writeWord(0xFFDB); // marker
+                    writeWord(132);    // length
+                    writeByte(0);
+                    for (var i=0; i<64; i++) {
+                        writeByte(YTable[i]);
+                    }
+                    writeByte(1);
+                    for (var j=0; j<64; j++) {
+                        writeByte(UVTable[j]);
+                    }
+                }
+
+                function writeDHT()
+                {
+                    writeWord(0xFFC4); // marker
+                    writeWord(0x01A2); // length
+
+                    writeByte(0); // HTYDCinfo
+                    for (var i=0; i<16; i++) {
+                        writeByte(std_dc_luminance_nrcodes[i+1]);
+                    }
+                    for (var j=0; j<=11; j++) {
+                        writeByte(std_dc_luminance_values[j]);
+                    }
+
+                    writeByte(0x10); // HTYACinfo
+                    for (var k=0; k<16; k++) {
+                        writeByte(std_ac_luminance_nrcodes[k+1]);
+                    }
+                    for (var l=0; l<=161; l++) {
+                        writeByte(std_ac_luminance_values[l]);
+                    }
+
+                    writeByte(1); // HTUDCinfo
+                    for (var m=0; m<16; m++) {
+                        writeByte(std_dc_chrominance_nrcodes[m+1]);
+                    }
+                    for (var n=0; n<=11; n++) {
+                        writeByte(std_dc_chrominance_values[n]);
+                    }
+
+                    writeByte(0x11); // HTUACinfo
+                    for (var o=0; o<16; o++) {
+                        writeByte(std_ac_chrominance_nrcodes[o+1]);
+                    }
+                    for (var p=0; p<=161; p++) {
+                        writeByte(std_ac_chrominance_values[p]);
+                    }
+                }
+
+                function writeSOS()
+                {
+                    writeWord(0xFFDA); // marker
+                    writeWord(12); // length
+                    writeByte(3); // nrofcomponents
+                    writeByte(1); // IdY
+                    writeByte(0); // HTY
+                    writeByte(2); // IdU
+                    writeByte(0x11); // HTU
+                    writeByte(3); // IdV
+                    writeByte(0x11); // HTV
+                    writeByte(0); // Ss
+                    writeByte(0x3f); // Se
+                    writeByte(0); // Bf
+                }
+
+                function processDU(CDU, fdtbl, DC, HTDC, HTAC){
+                    var EOB = HTAC[0x00];
+                    var M16zeroes = HTAC[0xF0];
+                    var pos;
+                    var I16 = 16;
+                    var I63 = 63;
+                    var I64 = 64;
+                    var DU_DCT = fDCTQuant(CDU, fdtbl);
+                    //ZigZag reorder
+                    for (var j=0;j<I64;++j) {
+                        DU[ZigZag[j]]=DU_DCT[j];
+                    }
+                    var Diff = DU[0] - DC; DC = DU[0];
+                    //Encode DC
+                    if (Diff==0) {
+                        writeBits(HTDC[0]); // Diff might be 0
+                    } else {
+                        pos = 32767+Diff;
+                        writeBits(HTDC[category[pos]]);
+                        writeBits(bitcode[pos]);
+                    }
+                    //Encode ACs
+                    var end0pos = 63; // was const... which is crazy
+                    for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};
+                    //end0pos = first element in reverse order !=0
+                    if ( end0pos == 0) {
+                        writeBits(EOB);
+                        return DC;
+                    }
+                    var i = 1;
+                    var lng;
+                    while ( i <= end0pos ) {
+                        var startpos = i;
+                        for (; (DU[i]==0) && (i<=end0pos); ++i) {}
+                        var nrzeroes = i-startpos;
+                        if ( nrzeroes >= I16 ) {
+                            lng = nrzeroes>>4;
+                            for (var nrmarker=1; nrmarker <= lng; ++nrmarker)
+                                writeBits(M16zeroes);
+                            nrzeroes = nrzeroes&0xF;
+                        }
+                        pos = 32767+DU[i];
+                        writeBits(HTAC[(nrzeroes<<4)+category[pos]]);
+                        writeBits(bitcode[pos]);
+                        i++;
+                    }
+                    if ( end0pos != I63 ) {
+                        writeBits(EOB);
+                    }
+                    return DC;
+                }
+
+                function initCharLookupTable(){
+                    var sfcc = String.fromCharCode;
+                    for(var i=0; i < 256; i++){ ///// ACHTUNG // 255
+                        clt[i] = sfcc(i);
+                    }
+                }
+
+                this.encode = function(image,quality) // image data object
+                {
+                    // var time_start = new Date().getTime();
+
+                    if(quality) setQuality(quality);
+
+                    // Initialize bit writer
+                    byteout = new Array();
+                    bytenew=0;
+                    bytepos=7;
+
+                    // Add JPEG headers
+                    writeWord(0xFFD8); // SOI
+                    writeAPP0();
+                    writeDQT();
+                    writeSOF0(image.width,image.height);
+                    writeDHT();
+                    writeSOS();
+
+
+                    // Encode 8x8 macroblocks
+                    var DCY=0;
+                    var DCU=0;
+                    var DCV=0;
+
+                    bytenew=0;
+                    bytepos=7;
+
+
+                    this.encode.displayName = "_encode_";
+
+                    var imageData = image.data;
+                    var width = image.width;
+                    var height = image.height;
+
+                    var quadWidth = width*4;
+                    var tripleWidth = width*3;
+
+                    var x, y = 0;
+                    var r, g, b;
+                    var start,p, col,row,pos;
+                    while(y < height){
+                        x = 0;
+                        while(x < quadWidth){
+                        start = quadWidth * y + x;
+                        p = start;
+                        col = -1;
+                        row = 0;
+
+                        for(pos=0; pos < 64; pos++){
+                            row = pos >> 3;// /8
+                            col = ( pos & 7 ) * 4; // %8
+                            p = start + ( row * quadWidth ) + col;
+
+                            if(y+row >= height){ // padding bottom
+                                p-= (quadWidth*(y+1+row-height));
+                            }
+
+                            if(x+col >= quadWidth){ // padding right
+                                p-= ((x+col) - quadWidth +4)
+                            }
+
+                            r = imageData[ p++ ];
+                            g = imageData[ p++ ];
+                            b = imageData[ p++ ];
+
+
+                            /* // calculate YUV values dynamically
+                            YDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80
+                            UDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));
+                            VDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));
+                            */
+
+                            // use lookup table (slightly faster)
+                            YDU[pos] = ((RGB_YUV_TABLE[r]             + RGB_YUV_TABLE[(g +  256)>>0] + RGB_YUV_TABLE[(b +  512)>>0]) >> 16)-128;
+                            UDU[pos] = ((RGB_YUV_TABLE[(r +  768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;
+                            VDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;
+
+                        }
+
+                        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
+                        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
+                        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
+                        x+=32;
+                        }
+                        y+=8;
+                    }
+
+
+                    ////////////////////////////////////////////////////////////////
+
+                    // Do the bit alignment of the EOI marker
+                    if ( bytepos >= 0 ) {
+                        var fillbits = [];
+                        fillbits[1] = bytepos+1;
+                        fillbits[0] = (1<<(bytepos+1))-1;
+                        writeBits(fillbits);
+                    }
+
+                    writeWord(0xFFD9); //EOI
+
+                    var jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));
+
+                    byteout = [];
+
+                    // benchmarking
+                    // var duration = new Date().getTime() - time_start;
+                    // console.log('Encoding time: '+ currentQuality + 'ms');
+                    //
+
+                    return jpegDataUri
+            }
+
+            function setQuality(quality){
+                if (quality <= 0) {
+                    quality = 1;
+                }
+                if (quality > 100) {
+                    quality = 100;
+                }
+
+                if(currentQuality == quality) return // don't recalc if unchanged
+
+                var sf = 0;
+                if (quality < 50) {
+                    sf = Math.floor(5000 / quality);
+                } else {
+                    sf = Math.floor(200 - quality*2);
+                }
+
+                initQuantTables(sf);
+                currentQuality = quality;
+                // console.log('Quality set to: '+quality +'%');
+            }
+
+            function init(){
+                // var time_start = new Date().getTime();
+                if(!quality) quality = 50;
+                // Create tables
+                initCharLookupTable()
+                initHuffmanTbl();
+                initCategoryNumber();
+                initRGBYUVTable();
+
+                setQuality(quality);
+                // var duration = new Date().getTime() - time_start;
+                // console.log('Initialization '+ duration + 'ms');
+            }
+
+            init();
+
+        };
+
+        JPEGEncoder.encode = function( data, quality ) {
+            var encoder = new JPEGEncoder( quality );
+
+            return encoder.encode( data );
+        }
+
+        return JPEGEncoder;
+    });
+    /**
+     * @fileOverview Fix android canvas.toDataUrl bug.
+     */
+    define('runtime/html5/androidpatch',[
+        'runtime/html5/util',
+        'runtime/html5/jpegencoder',
+        'base'
+    ], function( Util, encoder, Base ) {
+        var origin = Util.canvasToDataUrl,
+            supportJpeg;
+
+        Util.canvasToDataUrl = function( canvas, type, quality ) {
+            var ctx, w, h, fragement, parts;
+
+            // 非android手机直接跳过。
+            if ( !Base.os.android ) {
+                return origin.apply( null, arguments );
+            }
+
+            // 检测是否canvas支持jpeg导出,根据数据格式来判断。
+            // JPEG 前两位分别是:255, 216
+            if ( type === 'image/jpeg' && typeof supportJpeg === 'undefined' ) {
+                fragement = origin.apply( null, arguments );
+
+                parts = fragement.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    fragement = atob( parts[ 1 ] );
+                } else {
+                    fragement = decodeURIComponent( parts[ 1 ] );
+                }
+
+                fragement = fragement.substring( 0, 2 );
+
+                supportJpeg = fragement.charCodeAt( 0 ) === 255 &&
+                        fragement.charCodeAt( 1 ) === 216;
+            }
+
+            // 只有在android环境下才修复
+            if ( type === 'image/jpeg' && !supportJpeg ) {
+                w = canvas.width;
+                h = canvas.height;
+                ctx = canvas.getContext('2d');
+
+                return encoder.encode( ctx.getImageData( 0, 0, w, h ), quality );
+            }
+
+            return origin.apply( null, arguments );
+        };
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('runtime/html5/image',[
+        'base',
+        'runtime/html5/runtime',
+        'runtime/html5/util'
+    ], function( Base, Html5Runtime, Util ) {
+
+        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
+
+        return Html5Runtime.register( 'Image', {
+
+            // flag: 标记是否被修改过。
+            modified: false,
+
+            init: function() {
+                var me = this,
+                    img = new Image();
+
+                img.onload = function() {
+
+                    me._info = {
+                        type: me.type,
+                        width: this.width,
+                        height: this.height
+                    };
+
+                    // 读取meta信息。
+                    if ( !me._metas && 'image/jpeg' === me.type ) {
+                        Util.parseMeta( me._blob, function( error, ret ) {
+                            me._metas = ret;
+                            me.owner.trigger('load');
+                        });
+                    } else {
+                        me.owner.trigger('load');
+                    }
+                };
+
+                img.onerror = function() {
+                    me.owner.trigger('error');
+                };
+
+                me._img = img;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    img = me._img;
+
+                me._blob = blob;
+                me.type = blob.type;
+                img.src = Util.createObjectURL( blob.getSource() );
+                me.owner.once( 'load', function() {
+                    Util.revokeObjectURL( img.src );
+                });
+            },
+
+            resize: function( width, height ) {
+                var canvas = this._canvas ||
+                        (this._canvas = document.createElement('canvas'));
+
+                this._resize( this._img, canvas, width, height );
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'resize' );
+            },
+
+            crop: function( x, y, w, h, s ) {
+                var cvs = this._canvas ||
+                        (this._canvas = document.createElement('canvas')),
+                    opts = this.options,
+                    img = this._img,
+                    iw = img.naturalWidth,
+                    ih = img.naturalHeight,
+                    orientation = this.getOrientation();
+
+                s = s || 1;
+
+                // todo 解决 orientation 的问题。
+                // values that require 90 degree rotation
+                // if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                //     switch ( orientation ) {
+                //         case 6:
+                //             tmp = x;
+                //             x = y;
+                //             y = iw * s - tmp - w;
+                //             console.log(ih * s, tmp, w)
+                //             break;
+                //     }
+
+                //     (w ^= h, h ^= w, w ^= h);
+                // }
+
+                cvs.width = w;
+                cvs.height = h;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+                this._renderImageToCanvas( cvs, img, -x, -y, iw * s, ih * s );
+
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'crop' );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this._blob,
+                    opts = this.options,
+                    canvas;
+
+                type = type || this.type;
+
+                // blob需要重新生成。
+                if ( this.modified || this.type !== type ) {
+                    canvas = this._canvas;
+
+                    if ( type === 'image/jpeg' ) {
+
+                        blob = Util.canvasToDataUrl( canvas, type, opts.quality );
+
+                        if ( opts.preserveHeaders && this._metas &&
+                                this._metas.imageHead ) {
+
+                            blob = Util.dataURL2ArrayBuffer( blob );
+                            blob = Util.updateImageHead( blob,
+                                    this._metas.imageHead );
+                            blob = Util.arrayBufferToBlob( blob, type );
+                            return blob;
+                        }
+                    } else {
+                        blob = Util.canvasToDataUrl( canvas, type );
+                    }
+
+                    blob = Util.dataURL2Blob( blob );
+                }
+
+                return blob;
+            },
+
+            getAsDataUrl: function( type ) {
+                var opts = this.options;
+
+                type = type || this.type;
+
+                if ( type === 'image/jpeg' ) {
+                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
+                } else {
+                    return this._canvas.toDataURL( type );
+                }
+            },
+
+            getOrientation: function() {
+                return this._metas && this._metas.exif &&
+                        this._metas.exif.get('Orientation') || 1;
+            },
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            destroy: function() {
+                var canvas = this._canvas;
+                this._img.onload = null;
+
+                if ( canvas ) {
+                    canvas.getContext('2d')
+                            .clearRect( 0, 0, canvas.width, canvas.height );
+                    canvas.width = canvas.height = 0;
+                    this._canvas = null;
+                }
+
+                // 释放内存。非常重要,否则释放不了image的内存。
+                this._img.src = BLANK;
+                this._img = this._blob = null;
+            },
+
+            _resize: function( img, cvs, width, height ) {
+                var opts = this.options,
+                    naturalWidth = img.width,
+                    naturalHeight = img.height,
+                    orientation = this.getOrientation(),
+                    scale, w, h, x, y;
+
+                // values that require 90 degree rotation
+                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                    // 交换width, height的值。
+                    width ^= height;
+                    height ^= width;
+                    width ^= height;
+                }
+
+                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
+                        height / naturalHeight );
+
+                // 不允许放大。
+                opts.allowMagnify || (scale = Math.min( 1, scale ));
+
+                w = naturalWidth * scale;
+                h = naturalHeight * scale;
+
+                if ( opts.crop ) {
+                    cvs.width = width;
+                    cvs.height = height;
+                } else {
+                    cvs.width = w;
+                    cvs.height = h;
+                }
+
+                x = (cvs.width - w) / 2;
+                y = (cvs.height - h) / 2;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+
+                this._renderImageToCanvas( cvs, img, x, y, w, h );
+            },
+
+            _rotate2Orientaion: function( canvas, orientation ) {
+                var width = canvas.width,
+                    height = canvas.height,
+                    ctx = canvas.getContext('2d');
+
+                switch ( orientation ) {
+                    case 5:
+                    case 6:
+                    case 7:
+                    case 8:
+                        canvas.width = height;
+                        canvas.height = width;
+                        break;
+                }
+
+                switch ( orientation ) {
+                    case 2:    // horizontal flip
+                        ctx.translate( width, 0 );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 3:    // 180 rotate left
+                        ctx.translate( width, height );
+                        ctx.rotate( Math.PI );
+                        break;
+
+                    case 4:    // vertical flip
+                        ctx.translate( 0, height );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 5:    // vertical flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 6:    // 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( 0, -height );
+                        break;
+
+                    case 7:    // horizontal flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( width, -height );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 8:    // 90 rotate left
+                        ctx.rotate( -0.5 * Math.PI );
+                        ctx.translate( -width, 0 );
+                        break;
+                }
+            },
+
+            // https://github.com/stomita/ios-imagefile-megapixel/
+            // blob/master/src/megapix-image.js
+            _renderImageToCanvas: (function() {
+
+                // 如果不是ios, 不需要这么复杂!
+                if ( !Base.os.ios ) {
+                    return function( canvas ) {
+                        var args = Base.slice( arguments, 1 ),
+                            ctx = canvas.getContext('2d');
+
+                        ctx.drawImage.apply( ctx, args );
+                    };
+                }
+
+                /**
+                 * Detecting vertical squash in loaded image.
+                 * Fixes a bug which squash image vertically while drawing into
+                 * canvas for some images.
+                 */
+                function detectVerticalSquash( img, iw, ih ) {
+                    var canvas = document.createElement('canvas'),
+                        ctx = canvas.getContext('2d'),
+                        sy = 0,
+                        ey = ih,
+                        py = ih,
+                        data, alpha, ratio;
+
+
+                    canvas.width = 1;
+                    canvas.height = ih;
+                    ctx.drawImage( img, 0, 0 );
+                    data = ctx.getImageData( 0, 0, 1, ih ).data;
+
+                    // search image edge pixel position in case
+                    // it is squashed vertically.
+                    while ( py > sy ) {
+                        alpha = data[ (py - 1) * 4 + 3 ];
+
+                        if ( alpha === 0 ) {
+                            ey = py;
+                        } else {
+                            sy = py;
+                        }
+
+                        py = (ey + sy) >> 1;
+                    }
+
+                    ratio = (py / ih);
+                    return (ratio === 0) ? 1 : ratio;
+                }
+
+                // fix ie7 bug
+                // http://stackoverflow.com/questions/11929099/
+                // html5-canvas-drawimage-ratio-bug-ios
+                if ( Base.os.ios >= 7 ) {
+                    return function( canvas, img, x, y, w, h ) {
+                        var iw = img.naturalWidth,
+                            ih = img.naturalHeight,
+                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
+
+                        return canvas.getContext('2d').drawImage( img, 0, 0,
+                                iw * vertSquashRatio, ih * vertSquashRatio,
+                                x, y, w, h );
+                    };
+                }
+
+                /**
+                 * Detect subsampling in loaded image.
+                 * In iOS, larger images than 2M pixels may be
+                 * subsampled in rendering.
+                 */
+                function detectSubsampling( img ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        canvas, ctx;
+
+                    // subsampling may happen overmegapixel image
+                    if ( iw * ih > 1024 * 1024 ) {
+                        canvas = document.createElement('canvas');
+                        canvas.width = canvas.height = 1;
+                        ctx = canvas.getContext('2d');
+                        ctx.drawImage( img, -iw + 1, 0 );
+
+                        // subsampled image becomes half smaller in rendering size.
+                        // check alpha channel value to confirm image is covering
+                        // edge pixel or not. if alpha value is 0
+                        // image is not covering, hence subsampled.
+                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
+                    } else {
+                        return false;
+                    }
+                }
+
+
+                return function( canvas, img, x, y, width, height ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        ctx = canvas.getContext('2d'),
+                        subsampled = detectSubsampling( img ),
+                        doSquash = this.type === 'image/jpeg',
+                        d = 1024,
+                        sy = 0,
+                        dy = 0,
+                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
+
+                    if ( subsampled ) {
+                        iw /= 2;
+                        ih /= 2;
+                    }
+
+                    ctx.save();
+                    tmpCanvas = document.createElement('canvas');
+                    tmpCanvas.width = tmpCanvas.height = d;
+
+                    tmpCtx = tmpCanvas.getContext('2d');
+                    vertSquashRatio = doSquash ?
+                            detectVerticalSquash( img, iw, ih ) : 1;
+
+                    dw = Math.ceil( d * width / iw );
+                    dh = Math.ceil( d * height / ih / vertSquashRatio );
+
+                    while ( sy < ih ) {
+                        sx = 0;
+                        dx = 0;
+                        while ( sx < iw ) {
+                            tmpCtx.clearRect( 0, 0, d, d );
+                            tmpCtx.drawImage( img, -sx, -sy );
+                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
+                                    x + dx, y + dy, dw, dh );
+                            sx += d;
+                            dx += dw;
+                        }
+                        sy += d;
+                        dy += dh;
+                    }
+                    ctx.restore();
+                    tmpCanvas = tmpCtx = null;
+                };
+            })()
+        });
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/html5/md5',[
+        'runtime/html5/runtime'
+    ], function( FlashRuntime ) {
+
+        /*
+         * Fastest md5 implementation around (JKM md5)
+         * Credits: Joseph Myers
+         *
+         * @see http://www.myersdaily.org/joseph/javascript/md5-text.html
+         * @see http://jsperf.com/md5-shootout/7
+         */
+
+        /* this function is much faster,
+          so if possible we use it. Some IEs
+          are the only ones I know of that
+          need the idiotic second function,
+          generated by an if clause.  */
+        var add32 = function (a, b) {
+            return (a + b) & 0xFFFFFFFF;
+        },
+
+        cmn = function (q, a, b, x, s, t) {
+            a = add32(add32(a, q), add32(x, t));
+            return add32((a << s) | (a >>> (32 - s)), b);
+        },
+
+        ff = function (a, b, c, d, x, s, t) {
+            return cmn((b & c) | ((~b) & d), a, b, x, s, t);
+        },
+
+        gg = function (a, b, c, d, x, s, t) {
+            return cmn((b & d) | (c & (~d)), a, b, x, s, t);
+        },
+
+        hh = function (a, b, c, d, x, s, t) {
+            return cmn(b ^ c ^ d, a, b, x, s, t);
+        },
+
+        ii = function (a, b, c, d, x, s, t) {
+            return cmn(c ^ (b | (~d)), a, b, x, s, t);
+        },
+
+        md5cycle = function (x, k) {
+            var a = x[0],
+                b = x[1],
+                c = x[2],
+                d = x[3];
+
+            a = ff(a, b, c, d, k[0], 7, -680876936);
+            d = ff(d, a, b, c, k[1], 12, -389564586);
+            c = ff(c, d, a, b, k[2], 17, 606105819);
+            b = ff(b, c, d, a, k[3], 22, -1044525330);
+            a = ff(a, b, c, d, k[4], 7, -176418897);
+            d = ff(d, a, b, c, k[5], 12, 1200080426);
+            c = ff(c, d, a, b, k[6], 17, -1473231341);
+            b = ff(b, c, d, a, k[7], 22, -45705983);
+            a = ff(a, b, c, d, k[8], 7, 1770035416);
+            d = ff(d, a, b, c, k[9], 12, -1958414417);
+            c = ff(c, d, a, b, k[10], 17, -42063);
+            b = ff(b, c, d, a, k[11], 22, -1990404162);
+            a = ff(a, b, c, d, k[12], 7, 1804603682);
+            d = ff(d, a, b, c, k[13], 12, -40341101);
+            c = ff(c, d, a, b, k[14], 17, -1502002290);
+            b = ff(b, c, d, a, k[15], 22, 1236535329);
+
+            a = gg(a, b, c, d, k[1], 5, -165796510);
+            d = gg(d, a, b, c, k[6], 9, -1069501632);
+            c = gg(c, d, a, b, k[11], 14, 643717713);
+            b = gg(b, c, d, a, k[0], 20, -373897302);
+            a = gg(a, b, c, d, k[5], 5, -701558691);
+            d = gg(d, a, b, c, k[10], 9, 38016083);
+            c = gg(c, d, a, b, k[15], 14, -660478335);
+            b = gg(b, c, d, a, k[4], 20, -405537848);
+            a = gg(a, b, c, d, k[9], 5, 568446438);
+            d = gg(d, a, b, c, k[14], 9, -1019803690);
+            c = gg(c, d, a, b, k[3], 14, -187363961);
+            b = gg(b, c, d, a, k[8], 20, 1163531501);
+            a = gg(a, b, c, d, k[13], 5, -1444681467);
+            d = gg(d, a, b, c, k[2], 9, -51403784);
+            c = gg(c, d, a, b, k[7], 14, 1735328473);
+            b = gg(b, c, d, a, k[12], 20, -1926607734);
+
+            a = hh(a, b, c, d, k[5], 4, -378558);
+            d = hh(d, a, b, c, k[8], 11, -2022574463);
+            c = hh(c, d, a, b, k[11], 16, 1839030562);
+            b = hh(b, c, d, a, k[14], 23, -35309556);
+            a = hh(a, b, c, d, k[1], 4, -1530992060);
+            d = hh(d, a, b, c, k[4], 11, 1272893353);
+            c = hh(c, d, a, b, k[7], 16, -155497632);
+            b = hh(b, c, d, a, k[10], 23, -1094730640);
+            a = hh(a, b, c, d, k[13], 4, 681279174);
+            d = hh(d, a, b, c, k[0], 11, -358537222);
+            c = hh(c, d, a, b, k[3], 16, -722521979);
+            b = hh(b, c, d, a, k[6], 23, 76029189);
+            a = hh(a, b, c, d, k[9], 4, -640364487);
+            d = hh(d, a, b, c, k[12], 11, -421815835);
+            c = hh(c, d, a, b, k[15], 16, 530742520);
+            b = hh(b, c, d, a, k[2], 23, -995338651);
+
+            a = ii(a, b, c, d, k[0], 6, -198630844);
+            d = ii(d, a, b, c, k[7], 10, 1126891415);
+            c = ii(c, d, a, b, k[14], 15, -1416354905);
+            b = ii(b, c, d, a, k[5], 21, -57434055);
+            a = ii(a, b, c, d, k[12], 6, 1700485571);
+            d = ii(d, a, b, c, k[3], 10, -1894986606);
+            c = ii(c, d, a, b, k[10], 15, -1051523);
+            b = ii(b, c, d, a, k[1], 21, -2054922799);
+            a = ii(a, b, c, d, k[8], 6, 1873313359);
+            d = ii(d, a, b, c, k[15], 10, -30611744);
+            c = ii(c, d, a, b, k[6], 15, -1560198380);
+            b = ii(b, c, d, a, k[13], 21, 1309151649);
+            a = ii(a, b, c, d, k[4], 6, -145523070);
+            d = ii(d, a, b, c, k[11], 10, -1120210379);
+            c = ii(c, d, a, b, k[2], 15, 718787259);
+            b = ii(b, c, d, a, k[9], 21, -343485551);
+
+            x[0] = add32(a, x[0]);
+            x[1] = add32(b, x[1]);
+            x[2] = add32(c, x[2]);
+            x[3] = add32(d, x[3]);
+        },
+
+        /* there needs to be support for Unicode here,
+           * unless we pretend that we can redefine the MD-5
+           * algorithm for multi-byte characters (perhaps
+           * by adding every four 16-bit characters and
+           * shortening the sum to 32 bits). Otherwise
+           * I suggest performing MD-5 as if every character
+           * was two bytes--e.g., 0040 0025 = @%--but then
+           * how will an ordinary MD-5 sum be matched?
+           * There is no way to standardize text to something
+           * like UTF-8 before transformation; speed cost is
+           * utterly prohibitive. The JavaScript standard
+           * itself needs to look at this: it should start
+           * providing access to strings as preformed UTF-8
+           * 8-bit unsigned value arrays.
+           */
+        md5blk = function (s) {
+            var md5blks = [],
+                i; /* Andy King said do it this way. */
+
+            for (i = 0; i < 64; i += 4) {
+                md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
+            }
+            return md5blks;
+        },
+
+        md5blk_array = function (a) {
+            var md5blks = [],
+                i; /* Andy King said do it this way. */
+
+            for (i = 0; i < 64; i += 4) {
+                md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
+            }
+            return md5blks;
+        },
+
+        md51 = function (s) {
+            var n = s.length,
+                state = [1732584193, -271733879, -1732584194, 271733878],
+                i,
+                length,
+                tail,
+                tmp,
+                lo,
+                hi;
+
+            for (i = 64; i <= n; i += 64) {
+                md5cycle(state, md5blk(s.substring(i - 64, i)));
+            }
+            s = s.substring(i - 64);
+            length = s.length;
+            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
+            }
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Beware that the final length might not fit in 32 bits so we take care of that
+            tmp = n * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+
+            md5cycle(state, tail);
+            return state;
+        },
+
+        md51_array = function (a) {
+            var n = a.length,
+                state = [1732584193, -271733879, -1732584194, 271733878],
+                i,
+                length,
+                tail,
+                tmp,
+                lo,
+                hi;
+
+            for (i = 64; i <= n; i += 64) {
+                md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
+            }
+
+            // Not sure if it is a bug, however IE10 will always produce a sub array of length 1
+            // containing the last element of the parent array if the sub array specified starts
+            // beyond the length of the parent array - weird.
+            // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue
+            a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);
+
+            length = a.length;
+            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= a[i] << ((i % 4) << 3);
+            }
+
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Beware that the final length might not fit in 32 bits so we take care of that
+            tmp = n * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+
+            md5cycle(state, tail);
+
+            return state;
+        },
+
+        hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'],
+
+        rhex = function (n) {
+            var s = '',
+                j;
+            for (j = 0; j < 4; j += 1) {
+                s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];
+            }
+            return s;
+        },
+
+        hex = function (x) {
+            var i;
+            for (i = 0; i < x.length; i += 1) {
+                x[i] = rhex(x[i]);
+            }
+            return x.join('');
+        },
+
+        md5 = function (s) {
+            return hex(md51(s));
+        },
+
+
+
+        ////////////////////////////////////////////////////////////////////////////
+
+        /**
+         * SparkMD5 OOP implementation.
+         *
+         * Use this class to perform an incremental md5, otherwise use the
+         * static methods instead.
+         */
+        SparkMD5 = function () {
+            // call reset to init the instance
+            this.reset();
+        };
+
+
+        // In some cases the fast add32 function cannot be used..
+        if (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {
+            add32 = function (x, y) {
+                var lsw = (x & 0xFFFF) + (y & 0xFFFF),
+                    msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+                return (msw << 16) | (lsw & 0xFFFF);
+            };
+        }
+
+
+        /**
+         * Appends a string.
+         * A conversion will be applied if an utf8 string is detected.
+         *
+         * @param {String} str The string to be appended
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.append = function (str) {
+            // converts the string to utf8 bytes if necessary
+            if (/[\u0080-\uFFFF]/.test(str)) {
+                str = unescape(encodeURIComponent(str));
+            }
+
+            // then append as binary
+            this.appendBinary(str);
+
+            return this;
+        };
+
+        /**
+         * Appends a binary string.
+         *
+         * @param {String} contents The binary string to be appended
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.appendBinary = function (contents) {
+            this._buff += contents;
+            this._length += contents.length;
+
+            var length = this._buff.length,
+                i;
+
+            for (i = 64; i <= length; i += 64) {
+                md5cycle(this._state, md5blk(this._buff.substring(i - 64, i)));
+            }
+
+            this._buff = this._buff.substr(i - 64);
+
+            return this;
+        };
+
+        /**
+         * Finishes the incremental computation, reseting the internal state and
+         * returning the result.
+         * Use the raw parameter to obtain the raw result instead of the hex one.
+         *
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.prototype.end = function (raw) {
+            var buff = this._buff,
+                length = buff.length,
+                i,
+                tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+                ret;
+
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);
+            }
+
+            this._finish(tail, length);
+            ret = !!raw ? this._state : hex(this._state);
+
+            this.reset();
+
+            return ret;
+        };
+
+        /**
+         * Finish the final calculation based on the tail.
+         *
+         * @param {Array}  tail   The tail (will be modified)
+         * @param {Number} length The length of the remaining buffer
+         */
+        SparkMD5.prototype._finish = function (tail, length) {
+            var i = length,
+                tmp,
+                lo,
+                hi;
+
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(this._state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Do the final computation based on the tail and length
+            // Beware that the final length may not fit in 32 bits so we take care of that
+            tmp = this._length * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+            md5cycle(this._state, tail);
+        };
+
+        /**
+         * Resets the internal state of the computation.
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.reset = function () {
+            this._buff = "";
+            this._length = 0;
+            this._state = [1732584193, -271733879, -1732584194, 271733878];
+
+            return this;
+        };
+
+        /**
+         * Releases memory used by the incremental buffer and other aditional
+         * resources. If you plan to use the instance again, use reset instead.
+         */
+        SparkMD5.prototype.destroy = function () {
+            delete this._state;
+            delete this._buff;
+            delete this._length;
+        };
+
+
+        /**
+         * Performs the md5 hash on a string.
+         * A conversion will be applied if utf8 string is detected.
+         *
+         * @param {String}  str The string
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.hash = function (str, raw) {
+            // converts the string to utf8 bytes if necessary
+            if (/[\u0080-\uFFFF]/.test(str)) {
+                str = unescape(encodeURIComponent(str));
+            }
+
+            var hash = md51(str);
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        /**
+         * Performs the md5 hash on a binary string.
+         *
+         * @param {String}  content The binary string
+         * @param {Boolean} raw     True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.hashBinary = function (content, raw) {
+            var hash = md51(content);
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        /**
+         * SparkMD5 OOP implementation for array buffers.
+         *
+         * Use this class to perform an incremental md5 ONLY for array buffers.
+         */
+        SparkMD5.ArrayBuffer = function () {
+            // call reset to init the instance
+            this.reset();
+        };
+
+        ////////////////////////////////////////////////////////////////////////////
+
+        /**
+         * Appends an array buffer.
+         *
+         * @param {ArrayBuffer} arr The array to be appended
+         *
+         * @return {SparkMD5.ArrayBuffer} The instance itself
+         */
+        SparkMD5.ArrayBuffer.prototype.append = function (arr) {
+            // TODO: we could avoid the concatenation here but the algorithm would be more complex
+            //       if you find yourself needing extra performance, please make a PR.
+            var buff = this._concatArrayBuffer(this._buff, arr),
+                length = buff.length,
+                i;
+
+            this._length += arr.byteLength;
+
+            for (i = 64; i <= length; i += 64) {
+                md5cycle(this._state, md5blk_array(buff.subarray(i - 64, i)));
+            }
+
+            // Avoids IE10 weirdness (documented above)
+            this._buff = (i - 64) < length ? buff.subarray(i - 64) : new Uint8Array(0);
+
+            return this;
+        };
+
+        /**
+         * Finishes the incremental computation, reseting the internal state and
+         * returning the result.
+         * Use the raw parameter to obtain the raw result instead of the hex one.
+         *
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.ArrayBuffer.prototype.end = function (raw) {
+            var buff = this._buff,
+                length = buff.length,
+                tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+                i,
+                ret;
+
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= buff[i] << ((i % 4) << 3);
+            }
+
+            this._finish(tail, length);
+            ret = !!raw ? this._state : hex(this._state);
+
+            this.reset();
+
+            return ret;
+        };
+
+        SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
+
+        /**
+         * Resets the internal state of the computation.
+         *
+         * @return {SparkMD5.ArrayBuffer} The instance itself
+         */
+        SparkMD5.ArrayBuffer.prototype.reset = function () {
+            this._buff = new Uint8Array(0);
+            this._length = 0;
+            this._state = [1732584193, -271733879, -1732584194, 271733878];
+
+            return this;
+        };
+
+        /**
+         * Releases memory used by the incremental buffer and other aditional
+         * resources. If you plan to use the instance again, use reset instead.
+         */
+        SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
+
+        /**
+         * Concats two array buffers, returning a new one.
+         *
+         * @param  {ArrayBuffer} first  The first array buffer
+         * @param  {ArrayBuffer} second The second array buffer
+         *
+         * @return {ArrayBuffer} The new array buffer
+         */
+        SparkMD5.ArrayBuffer.prototype._concatArrayBuffer = function (first, second) {
+            var firstLength = first.length,
+                result = new Uint8Array(firstLength + second.byteLength);
+
+            result.set(first);
+            result.set(new Uint8Array(second), firstLength);
+
+            return result;
+        };
+
+        /**
+         * Performs the md5 hash on an array buffer.
+         *
+         * @param {ArrayBuffer} arr The array buffer
+         * @param {Boolean}     raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.ArrayBuffer.hash = function (arr, raw) {
+            var hash = md51_array(new Uint8Array(arr));
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        return FlashRuntime.register( 'Md5', {
+            init: function() {
+                // do nothing.
+            },
+
+            loadFromBlob: function( file ) {
+                var blob = file.getSource(),
+                    chunkSize = 2 * 1024 * 1024,
+                    chunks = Math.ceil( blob.size / chunkSize ),
+                    chunk = 0,
+                    owner = this.owner,
+                    spark = new SparkMD5.ArrayBuffer(),
+                    me = this,
+                    blobSlice = blob.mozSlice || blob.webkitSlice || blob.slice,
+                    loadNext, fr;
+
+                fr = new FileReader();
+
+                loadNext = function() {
+                    var start, end;
+
+                    start = chunk * chunkSize;
+                    end = Math.min( start + chunkSize, blob.size );
+
+                    fr.onload = function( e ) {
+                        spark.append( e.target.result );
+                        owner.trigger( 'progress', {
+                            total: file.size,
+                            loaded: end
+                        });
+                    };
+
+                    fr.onloadend = function() {
+                        fr.onloadend = fr.onload = null;
+
+                        if ( ++chunk < chunks ) {
+                            setTimeout( loadNext, 1 );
+                        } else {
+                            setTimeout(function(){
+                                owner.trigger('load');
+                                me.result = spark.end();
+                                loadNext = file = blob = spark = null;
+                                owner.trigger('complete');
+                            }, 50 );
+                        }
+                    };
+
+                    fr.readAsArrayBuffer( blobSlice.call( blob, start, end ) );
+                };
+
+                loadNext();
+            },
+
+            getResult: function() {
+                return this.result;
+            }
+        });
+    });
+    /**
+     * @fileOverview FlashRuntime
+     */
+    define('runtime/flash/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var $ = Base.$,
+            type = 'flash',
+            components = {};
+
+
+        function getFlashVersion() {
+            var version;
+
+            try {
+                version = navigator.plugins[ 'Shockwave Flash' ];
+                version = version.description;
+            } catch ( ex ) {
+                try {
+                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
+                            .GetVariable('$version');
+                } catch ( ex2 ) {
+                    version = '0.0';
+                }
+            }
+            version = version.match( /\d+/g );
+            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
+        }
+
+        function FlashRuntime() {
+            var pool = {},
+                clients = {},
+                destroy = this.destroy,
+                me = this,
+                jsreciver = Base.guid('webuploader_');
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/ ) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                clients[ uid ] = client;
+
+                if ( components[ comp ] ) {
+                    if ( !pool[ uid ] ) {
+                        pool[ uid ] = new components[ comp ]( client, me );
+                    }
+
+                    instance = pool[ uid ];
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+
+                return me.flashExec.apply( client, arguments );
+            };
+
+            function handler( evt, obj ) {
+                var type = evt.type || evt,
+                    parts, uid;
+
+                parts = type.split('::');
+                uid = parts[ 0 ];
+                type = parts[ 1 ];
+
+                // console.log.apply( console, arguments );
+
+                if ( type === 'Ready' && uid === me.uid ) {
+                    me.trigger('ready');
+                } else if ( clients[ uid ] ) {
+                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
+                }
+
+                // Base.log( evt, obj );
+            }
+
+            // flash的接受器。
+            window[ jsreciver ] = function() {
+                var args = arguments;
+
+                // 为了能捕获得到。
+                setTimeout(function() {
+                    handler.apply( null, args );
+                }, 1 );
+            };
+
+            this.jsreciver = jsreciver;
+
+            this.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+
+            this.flashExec = function( comp, fn ) {
+                var flash = me.getFlash(),
+                    args = Base.slice( arguments, 2 );
+
+                return flash.exec( this.uid, comp, fn, args );
+            };
+
+            // @todo
+        }
+
+        Base.inherits( Runtime, {
+            constructor: FlashRuntime,
+
+            init: function() {
+                var container = this.getContainer(),
+                    opts = this.options,
+                    html;
+
+                // if not the minimal height, shims are not initialized
+                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
+                container.css({
+                    position: 'absolute',
+                    top: '-8px',
+                    left: '-8px',
+                    width: '9px',
+                    height: '9px',
+                    overflow: 'hidden'
+                });
+
+                // insert flash object
+                html = '<object id="' + this.uid + '" type="application/' +
+                        'x-shockwave-flash" data="' +  opts.swf + '" ';
+
+                if ( Base.browser.ie ) {
+                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
+                }
+
+                html += 'width="100%" height="100%" style="outline:0">'  +
+                    '<param name="movie" value="' + opts.swf + '" />' +
+                    '<param name="flashvars" value="uid=' + this.uid +
+                    '&jsreciver=' + this.jsreciver + '" />' +
+                    '<param name="wmode" value="transparent" />' +
+                    '<param name="allowscriptaccess" value="always" />' +
+                '</object>';
+
+                container.html( html );
+            },
+
+            getFlash: function() {
+                if ( this._flash ) {
+                    return this._flash;
+                }
+
+                this._flash = $( '#' + this.uid ).get( 0 );
+                return this._flash;
+            }
+
+        });
+
+        FlashRuntime.register = function( name, component ) {
+            component = components[ name ] = Base.inherits( CompBase, $.extend({
+
+                // @todo fix this later
+                flashExec: function() {
+                    var owner = this.owner,
+                        runtime = this.getRuntime();
+
+                    return runtime.flashExec.apply( owner, arguments );
+                }
+            }, component ) );
+
+            return component;
+        };
+
+        if ( getFlashVersion() >= 11.4 ) {
+            Runtime.addRuntime( type, FlashRuntime );
+        }
+
+        return FlashRuntime;
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/flash/filepicker',[
+        'base',
+        'runtime/flash/runtime'
+    ], function( Base, FlashRuntime ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'FilePicker', {
+            init: function( opts ) {
+                var copy = $.extend({}, opts ),
+                    len, i;
+
+                // 修复Flash再没有设置title的情况下无法弹出flash文件选择框的bug.
+                len = copy.accept && copy.accept.length;
+                for (  i = 0; i < len; i++ ) {
+                    if ( !copy.accept[ i ].title ) {
+                        copy.accept[ i ].title = 'Files';
+                    }
+                }
+
+                delete copy.button;
+                delete copy.id;
+                delete copy.container;
+
+                this.flashExec( 'FilePicker', 'init', copy );
+            },
+
+            destroy: function() {
+                this.flashExec( 'FilePicker', 'destroy' );
+            }
+        });
+    });
+    /**
+     * @fileOverview 图片压缩
+     */
+    define('runtime/flash/image',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Image', {
+            // init: function( options ) {
+            //     var owner = this.owner;
+
+            //     this.flashExec( 'Image', 'init', options );
+            //     owner.on( 'load', function() {
+            //         debugger;
+            //     });
+            // },
+
+            loadFromBlob: function( blob ) {
+                var owner = this.owner;
+
+                owner.info() && this.flashExec( 'Image', 'info', owner.info() );
+                owner.meta() && this.flashExec( 'Image', 'meta', owner.meta() );
+
+                this.flashExec( 'Image', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/flash/transport',[
+        'base',
+        'runtime/flash/runtime',
+        'runtime/client'
+    ], function( Base, FlashRuntime, RuntimeClient ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+                this._responseJson = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    binary;
+
+                xhr.connectRuntime( blob.ruid );
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.uid;
+                } else {
+                    $.each( owner._formData, function( k, v ) {
+                        xhr.exec( 'append', k, v );
+                    });
+
+                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+                xhr.exec( 'send', {
+                    method: opts.method,
+                    url: server,
+                    forceURLStream: opts.forceURLStream,
+                    mimeType: 'application/octet-stream'
+                }, binary );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            getResponse: function() {
+                return this._response || '';
+            },
+
+            getResponseAsJson: function() {
+                return this._responseJson;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.exec('abort');
+                    xhr.destroy();
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new RuntimeClient('XMLHttpRequest');
+
+                xhr.on( 'uploadprogress progress', function( e ) {
+                    var percent = e.loaded / e.total;
+                    percent = Math.min( 1, Math.max( 0, percent ) );
+                    return me.trigger( 'progress', percent );
+                });
+
+                xhr.on( 'load', function() {
+                    var status = xhr.exec('getStatus'),
+                        readBody = false,
+                        err = '',
+                        p;
+
+                    xhr.off();
+                    me._xhr = null;
+
+                    if ( status >= 200 && status < 300 ) {
+                        readBody = true;
+                    } else if ( status >= 500 && status < 600 ) {
+                        readBody = true;
+                        err = 'server';
+                    } else {
+                        err = 'http';
+                    }
+
+                    if ( readBody ) {
+                        me._response = xhr.exec('getResponse');
+                        me._response = decodeURIComponent( me._response );
+
+                        // flash 处理可能存在 bug, 没辙只能靠 js 了
+                        // try {
+                        //     me._responseJson = xhr.exec('getResponseAsJson');
+                        // } catch ( error ) {
+
+                        p = window.JSON && window.JSON.parse || function( s ) {
+                            try {
+                                return new Function('return ' + s).call();
+                            } catch ( err ) {
+                                return {};
+                            }
+                        };
+                        me._responseJson  = me._response ? p(me._response) : {};
+
+                        // }
+                    }
+
+                    xhr.destroy();
+                    xhr = null;
+
+                    return err ? me.trigger( 'error', err ) : me.trigger('load');
+                });
+
+                xhr.on( 'error', function() {
+                    xhr.off();
+                    me._xhr = null;
+                    me.trigger( 'error', 'http' );
+                });
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.exec( 'setRequestHeader', key, val );
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/flash/blob',[
+        'runtime/flash/runtime',
+        'lib/blob'
+    ], function( FlashRuntime, Blob ) {
+
+        return FlashRuntime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.flashExec( 'Blob', 'slice', start, end );
+
+                return new Blob( blob.uid, blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Md5 flash实现
+     */
+    define('runtime/flash/md5',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Md5', {
+            init: function() {
+                // do nothing.
+            },
+
+            loadFromBlob: function( blob ) {
+                return this.flashExec( 'Md5', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview 完全版本。
+     */
+    define('preset/all',[
+        'base',
+
+        // widgets
+        'widgets/filednd',
+        'widgets/filepaste',
+        'widgets/filepicker',
+        'widgets/image',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+        'widgets/md5',
+
+        // runtimes
+        // html5
+        'runtime/html5/blob',
+        'runtime/html5/dnd',
+        'runtime/html5/filepaste',
+        'runtime/html5/filepicker',
+        'runtime/html5/imagemeta/exif',
+        'runtime/html5/androidpatch',
+        'runtime/html5/image',
+        'runtime/html5/transport',
+        'runtime/html5/md5',
+
+        // flash
+        'runtime/flash/filepicker',
+        'runtime/flash/image',
+        'runtime/flash/transport',
+        'runtime/flash/blob',
+        'runtime/flash/md5'
+    ], function( Base ) {
+        return Base;
+    });
+    /**
+     * @fileOverview 日志组件,主要用来收集错误信息,可以帮助 webuploader 更好的定位问题和发展。
+     *
+     * 如果您不想要启用此功能,请在打包的时候去掉 log 模块。
+     *
+     * 或者可以在初始化的时候通过 options.disableWidgets 属性禁用。
+     *
+     * 如:
+     * WebUploader.create({
+     *     ...
+     *
+     *     disableWidgets: 'log',
+     *
+     *     ...
+     * })
+     */
+    define('widgets/log',[
+        'base',
+        'uploader',
+        'widgets/widget'
+    ], function( Base, Uploader ) {
+        var $ = Base.$,
+            logUrl = ' http://static.tieba.baidu.com/tb/pms/img/st.gif??',
+            product = (location.hostname || location.host || 'protected').toLowerCase(),
+
+            // 只针对 baidu 内部产品用户做统计功能。
+            enable = product && /baidu/i.exec(product),
+            base;
+
+        if (!enable) {
+            return;
+        }
+
+        base = {
+            dv: 3,
+            master: 'webuploader',
+            online: /test/.exec(product) ? 0 : 1,
+            module: '',
+            product: product,
+            type: 0
+        };
+
+        function send(data) {
+            var obj = $.extend({}, base, data),
+                url = logUrl.replace(/^(.*)\?/, '$1' + $.param( obj )),
+                image = new Image();
+
+            image.src = url;
+        }
+
+        return Uploader.register({
+            name: 'log',
+
+            init: function() {
+                var owner = this.owner,
+                    count = 0,
+                    size = 0;
+
+                owner
+                    .on('error', function(code) {
+                        send({
+                            type: 2,
+                            c_error_code: code
+                        });
+                    })
+                    .on('uploadError', function(file, reason) {
+                        send({
+                            type: 2,
+                            c_error_code: 'UPLOAD_ERROR',
+                            c_reason: '' + reason
+                        });
+                    })
+                    .on('uploadComplete', function(file) {
+                        count++;
+                        size += file.size;
+                    }).
+                    on('uploadFinished', function() {
+                        send({
+                            c_count: count,
+                            c_size: size
+                        });
+                        count = size = 0;
+                    });
+
+                send({
+                    c_usage: 1
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('webuploader',[
+        'preset/all',
+        'widgets/log'
+    ], function( preset ) {
+        return preset;
+    });
+
+    var _require = require;
+    return _require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.js
new file mode 100644
index 0000000..c2f5946
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.js
@@ -0,0 +1,4622 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('lib/image',[
+        'base',
+        'runtime/client',
+        'lib/blob'
+    ], function( Base, RuntimeClient, Blob ) {
+        var $ = Base.$;
+
+        // 构造器。
+        function Image( opts ) {
+            this.options = $.extend({}, Image.options, opts );
+            RuntimeClient.call( this, 'Image' );
+
+            this.on( 'load', function() {
+                this._info = this.exec('info');
+                this._meta = this.exec('meta');
+            });
+        }
+
+        // 默认选项。
+        Image.options = {
+
+            // 默认的图片处理质量
+            quality: 90,
+
+            // 是否裁剪
+            crop: false,
+
+            // 是否保留头部信息
+            preserveHeaders: false,
+
+            // 是否允许放大。
+            allowMagnify: false
+        };
+
+        // 继承RuntimeClient.
+        Base.inherits( RuntimeClient, {
+            constructor: Image,
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    ruid = blob.getRuid();
+
+                this.connectRuntime( ruid, function() {
+                    me.exec( 'init', me.options );
+                    me.exec( 'loadFromBlob', blob );
+                });
+            },
+
+            resize: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'resize' ].concat( args ) );
+            },
+
+            crop: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'crop' ].concat( args ) );
+            },
+
+            getAsDataUrl: function( type ) {
+                return this.exec( 'getAsDataUrl', type );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this.exec( 'getAsBlob', type );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+
+        return Image;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/image',[
+        'base',
+        'uploader',
+        'lib/image',
+        'widgets/widget'
+    ], function( Base, Uploader, Image ) {
+
+        var $ = Base.$,
+            throttle;
+
+        // 根据要处理的文件大小来节流,一次不能处理太多,会卡。
+        throttle = (function( max ) {
+            var occupied = 0,
+                waiting = [],
+                tick = function() {
+                    var item;
+
+                    while ( waiting.length && occupied < max ) {
+                        item = waiting.shift();
+                        occupied += item[ 0 ];
+                        item[ 1 ]();
+                    }
+                };
+
+            return function( emiter, size, cb ) {
+                waiting.push([ size, cb ]);
+                emiter.once( 'destroy', function() {
+                    occupied -= size;
+                    setTimeout( tick, 1 );
+                });
+                setTimeout( tick, 1 );
+            };
+        })( 5 * 1024 * 1024 );
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Object} [thumb]
+             * @namespace options
+             * @for Uploader
+             * @description 配置生成缩略图的选项。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 110,
+             *     height: 110,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 70,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: true,
+             *
+             *     // 是否允许裁剪。
+             *     crop: true,
+             *
+             *     // 为空的话则保留原有图片格式。
+             *     // 否则强制转换成指定的类型。
+             *     type: 'image/jpeg'
+             * }
+             * ```
+             */
+            thumb: {
+                width: 110,
+                height: 110,
+                quality: 70,
+                allowMagnify: true,
+                crop: true,
+                preserveHeaders: false,
+
+                // 为空的话则保留原有图片格式。
+                // 否则强制转换成指定的类型。
+                // IE 8下面 base64 大小不能超过 32K 否则预览失败,而非 jpeg 编码的图片很可
+                // 能会超过 32k, 所以这里设置成预览的时候都是 image/jpeg
+                type: 'image/jpeg'
+            },
+
+            /**
+             * @property {Object} [compress]
+             * @namespace options
+             * @for Uploader
+             * @description 配置压缩的图片的选项。如果此选项为`false`, 则图片在上传前不进行压缩。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 1600,
+             *     height: 1600,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 90,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: false,
+             *
+             *     // 是否允许裁剪。
+             *     crop: false,
+             *
+             *     // 是否保留头部meta信息。
+             *     preserveHeaders: true,
+             *
+             *     // 如果发现压缩后文件大小比原来还大,则使用原来图片
+             *     // 此属性可能会影响图片自动纠正功能
+             *     noCompressIfLarger: false,
+             *
+             *     // 单位字节,如果图片大小小于此值,不会采用压缩。
+             *     compressSize: 0
+             * }
+             * ```
+             */
+            compress: {
+                width: 1600,
+                height: 1600,
+                quality: 90,
+                allowMagnify: false,
+                crop: false,
+                preserveHeaders: true
+            }
+        });
+
+        return Uploader.register({
+
+            name: 'image',
+
+
+            /**
+             * 生成缩略图,此过程为异步,所以需要传入`callback`。
+             * 通常情况在图片加入队里后调用此方法来生成预览图以增强交互效果。
+             *
+             * 当 width 或者 height 的值介于 0 - 1 时,被当成百分比使用。
+             *
+             * `callback`中可以接收到两个参数。
+             * * 第一个为error,如果生成缩略图有错误,此error将为真。
+             * * 第二个为ret, 缩略图的Data URL值。
+             *
+             * **注意**
+             * Date URL在IE6/7中不支持,所以不用调用此方法了,直接显示一张暂不支持预览图片好了。
+             * 也可以借助服务端,将 base64 数据传给服务端,生成一个临时文件供预览。
+             *
+             * @method makeThumb
+             * @grammar makeThumb( file, callback ) => undefined
+             * @grammar makeThumb( file, callback, width, height ) => undefined
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.makeThumb( file, function( error, ret ) {
+             *         if ( error ) {
+             *             $li.text('预览错误');
+             *         } else {
+             *             $li.append('<img alt="" src="' + ret + '" />');
+             *         }
+             *     });
+             *
+             * });
+             */
+            makeThumb: function( file, cb, width, height ) {
+                var opts, image;
+
+                file = this.request( 'get-file', file );
+
+                // 只预览图片格式。
+                if ( !file.type.match( /^image/ ) ) {
+                    cb( true );
+                    return;
+                }
+
+                opts = $.extend({}, this.options.thumb );
+
+                // 如果传入的是object.
+                if ( $.isPlainObject( width ) ) {
+                    opts = $.extend( opts, width );
+                    width = null;
+                }
+
+                width = width || opts.width;
+                height = height || opts.height;
+
+                image = new Image( opts );
+
+                image.once( 'load', function() {
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                // 当 resize 完后
+                image.once( 'complete', function() {
+                    cb( false, image.getAsDataUrl( opts.type ) );
+                    image.destroy();
+                });
+
+                image.once( 'error', function( reason ) {
+                    cb( reason || true );
+                    image.destroy();
+                });
+
+                throttle( image, file.source.size, function() {
+                    file._info && image.info( file._info );
+                    file._meta && image.meta( file._meta );
+                    image.loadFromBlob( file.source );
+                });
+            },
+
+            beforeSendFile: function( file ) {
+                var opts = this.options.compress || this.options.resize,
+                    compressSize = opts && opts.compressSize || 0,
+                    noCompressIfLarger = opts && opts.noCompressIfLarger || false,
+                    image, deferred;
+
+                file = this.request( 'get-file', file );
+
+                // 只压缩 jpeg 图片格式。
+                // gif 可能会丢失针
+                // bmp png 基本上尺寸都不大,且压缩比比较小。
+                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
+                        file.size < compressSize ||
+                        file._compressed ) {
+                    return;
+                }
+
+                opts = $.extend({}, opts );
+                deferred = Base.Deferred();
+
+                image = new Image( opts );
+
+                deferred.always(function() {
+                    image.destroy();
+                    image = null;
+                });
+                image.once( 'error', deferred.reject );
+                image.once( 'load', function() {
+                    var width = opts.width,
+                        height = opts.height;
+
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                image.once( 'complete', function() {
+                    var blob, size;
+
+                    // 移动端 UC / qq 浏览器的无图模式下
+                    // ctx.getImageData 处理大图的时候会报 Exception
+                    // INDEX_SIZE_ERR: DOM Exception 1
+                    try {
+                        blob = image.getAsBlob( opts.type );
+
+                        size = file.size;
+
+                        // 如果压缩后,比原来还大则不用压缩后的。
+                        if ( !noCompressIfLarger || blob.size < size ) {
+                            // file.source.destroy && file.source.destroy();
+                            file.source = blob;
+                            file.size = blob.size;
+
+                            file.trigger( 'resize', blob.size, size );
+                        }
+
+                        // 标记,避免重复压缩。
+                        file._compressed = true;
+                        deferred.resolve();
+                    } catch ( e ) {
+                        // 出错了直接继续,让其上传原始图片
+                        deferred.resolve();
+                    }
+                });
+
+                file._info && image.info( file._info );
+                file._meta && image.meta( file._meta );
+
+                image.loadFromBlob( file.source );
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview FlashRuntime
+     */
+    define('runtime/flash/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var $ = Base.$,
+            type = 'flash',
+            components = {};
+
+
+        function getFlashVersion() {
+            var version;
+
+            try {
+                version = navigator.plugins[ 'Shockwave Flash' ];
+                version = version.description;
+            } catch ( ex ) {
+                try {
+                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
+                            .GetVariable('$version');
+                } catch ( ex2 ) {
+                    version = '0.0';
+                }
+            }
+            version = version.match( /\d+/g );
+            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
+        }
+
+        function FlashRuntime() {
+            var pool = {},
+                clients = {},
+                destroy = this.destroy,
+                me = this,
+                jsreciver = Base.guid('webuploader_');
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/ ) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                clients[ uid ] = client;
+
+                if ( components[ comp ] ) {
+                    if ( !pool[ uid ] ) {
+                        pool[ uid ] = new components[ comp ]( client, me );
+                    }
+
+                    instance = pool[ uid ];
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+
+                return me.flashExec.apply( client, arguments );
+            };
+
+            function handler( evt, obj ) {
+                var type = evt.type || evt,
+                    parts, uid;
+
+                parts = type.split('::');
+                uid = parts[ 0 ];
+                type = parts[ 1 ];
+
+                // console.log.apply( console, arguments );
+
+                if ( type === 'Ready' && uid === me.uid ) {
+                    me.trigger('ready');
+                } else if ( clients[ uid ] ) {
+                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
+                }
+
+                // Base.log( evt, obj );
+            }
+
+            // flash的接受器。
+            window[ jsreciver ] = function() {
+                var args = arguments;
+
+                // 为了能捕获得到。
+                setTimeout(function() {
+                    handler.apply( null, args );
+                }, 1 );
+            };
+
+            this.jsreciver = jsreciver;
+
+            this.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+
+            this.flashExec = function( comp, fn ) {
+                var flash = me.getFlash(),
+                    args = Base.slice( arguments, 2 );
+
+                return flash.exec( this.uid, comp, fn, args );
+            };
+
+            // @todo
+        }
+
+        Base.inherits( Runtime, {
+            constructor: FlashRuntime,
+
+            init: function() {
+                var container = this.getContainer(),
+                    opts = this.options,
+                    html;
+
+                // if not the minimal height, shims are not initialized
+                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
+                container.css({
+                    position: 'absolute',
+                    top: '-8px',
+                    left: '-8px',
+                    width: '9px',
+                    height: '9px',
+                    overflow: 'hidden'
+                });
+
+                // insert flash object
+                html = '<object id="' + this.uid + '" type="application/' +
+                        'x-shockwave-flash" data="' +  opts.swf + '" ';
+
+                if ( Base.browser.ie ) {
+                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
+                }
+
+                html += 'width="100%" height="100%" style="outline:0">'  +
+                    '<param name="movie" value="' + opts.swf + '" />' +
+                    '<param name="flashvars" value="uid=' + this.uid +
+                    '&jsreciver=' + this.jsreciver + '" />' +
+                    '<param name="wmode" value="transparent" />' +
+                    '<param name="allowscriptaccess" value="always" />' +
+                '</object>';
+
+                container.html( html );
+            },
+
+            getFlash: function() {
+                if ( this._flash ) {
+                    return this._flash;
+                }
+
+                this._flash = $( '#' + this.uid ).get( 0 );
+                return this._flash;
+            }
+
+        });
+
+        FlashRuntime.register = function( name, component ) {
+            component = components[ name ] = Base.inherits( CompBase, $.extend({
+
+                // @todo fix this later
+                flashExec: function() {
+                    var owner = this.owner,
+                        runtime = this.getRuntime();
+
+                    return runtime.flashExec.apply( owner, arguments );
+                }
+            }, component ) );
+
+            return component;
+        };
+
+        if ( getFlashVersion() >= 11.4 ) {
+            Runtime.addRuntime( type, FlashRuntime );
+        }
+
+        return FlashRuntime;
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/flash/filepicker',[
+        'base',
+        'runtime/flash/runtime'
+    ], function( Base, FlashRuntime ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'FilePicker', {
+            init: function( opts ) {
+                var copy = $.extend({}, opts ),
+                    len, i;
+
+                // 修复Flash再没有设置title的情况下无法弹出flash文件选择框的bug.
+                len = copy.accept && copy.accept.length;
+                for (  i = 0; i < len; i++ ) {
+                    if ( !copy.accept[ i ].title ) {
+                        copy.accept[ i ].title = 'Files';
+                    }
+                }
+
+                delete copy.button;
+                delete copy.id;
+                delete copy.container;
+
+                this.flashExec( 'FilePicker', 'init', copy );
+            },
+
+            destroy: function() {
+                this.flashExec( 'FilePicker', 'destroy' );
+            }
+        });
+    });
+    /**
+     * @fileOverview 图片压缩
+     */
+    define('runtime/flash/image',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Image', {
+            // init: function( options ) {
+            //     var owner = this.owner;
+
+            //     this.flashExec( 'Image', 'init', options );
+            //     owner.on( 'load', function() {
+            //         debugger;
+            //     });
+            // },
+
+            loadFromBlob: function( blob ) {
+                var owner = this.owner;
+
+                owner.info() && this.flashExec( 'Image', 'info', owner.info() );
+                owner.meta() && this.flashExec( 'Image', 'meta', owner.meta() );
+
+                this.flashExec( 'Image', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/flash/blob',[
+        'runtime/flash/runtime',
+        'lib/blob'
+    ], function( FlashRuntime, Blob ) {
+
+        return FlashRuntime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.flashExec( 'Blob', 'slice', start, end );
+
+                return new Blob( blob.uid, blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/flash/transport',[
+        'base',
+        'runtime/flash/runtime',
+        'runtime/client'
+    ], function( Base, FlashRuntime, RuntimeClient ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+                this._responseJson = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    binary;
+
+                xhr.connectRuntime( blob.ruid );
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.uid;
+                } else {
+                    $.each( owner._formData, function( k, v ) {
+                        xhr.exec( 'append', k, v );
+                    });
+
+                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+                xhr.exec( 'send', {
+                    method: opts.method,
+                    url: server,
+                    forceURLStream: opts.forceURLStream,
+                    mimeType: 'application/octet-stream'
+                }, binary );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            getResponse: function() {
+                return this._response || '';
+            },
+
+            getResponseAsJson: function() {
+                return this._responseJson;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.exec('abort');
+                    xhr.destroy();
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new RuntimeClient('XMLHttpRequest');
+
+                xhr.on( 'uploadprogress progress', function( e ) {
+                    var percent = e.loaded / e.total;
+                    percent = Math.min( 1, Math.max( 0, percent ) );
+                    return me.trigger( 'progress', percent );
+                });
+
+                xhr.on( 'load', function() {
+                    var status = xhr.exec('getStatus'),
+                        readBody = false,
+                        err = '',
+                        p;
+
+                    xhr.off();
+                    me._xhr = null;
+
+                    if ( status >= 200 && status < 300 ) {
+                        readBody = true;
+                    } else if ( status >= 500 && status < 600 ) {
+                        readBody = true;
+                        err = 'server';
+                    } else {
+                        err = 'http';
+                    }
+
+                    if ( readBody ) {
+                        me._response = xhr.exec('getResponse');
+                        me._response = decodeURIComponent( me._response );
+
+                        // flash 处理可能存在 bug, 没辙只能靠 js 了
+                        // try {
+                        //     me._responseJson = xhr.exec('getResponseAsJson');
+                        // } catch ( error ) {
+
+                        p = window.JSON && window.JSON.parse || function( s ) {
+                            try {
+                                return new Function('return ' + s).call();
+                            } catch ( err ) {
+                                return {};
+                            }
+                        };
+                        me._responseJson  = me._response ? p(me._response) : {};
+
+                        // }
+                    }
+
+                    xhr.destroy();
+                    xhr = null;
+
+                    return err ? me.trigger( 'error', err ) : me.trigger('load');
+                });
+
+                xhr.on( 'error', function() {
+                    xhr.off();
+                    me._xhr = null;
+                    me.trigger( 'error', 'http' );
+                });
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.exec( 'setRequestHeader', key, val );
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview 只有flash实现的文件版本。
+     */
+    define('preset/flashonly',[
+        'base',
+
+        // widgets
+        'widgets/filepicker',
+        'widgets/image',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+
+        // runtimes
+
+        // flash
+        'runtime/flash/filepicker',
+        'runtime/flash/image',
+        'runtime/flash/blob',
+        'runtime/flash/transport'
+    ], function( Base ) {
+        return Base;
+    });
+    define('webuploader',[
+        'preset/flashonly'
+    ], function( preset ) {
+        return preset;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.min.js
new file mode 100644
index 0000000..a50273d
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.flashonly.min.js
@@ -0,0 +1,2 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!1,allowMagnify:!1},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},crop:function(){var b=a.slice(arguments);return this.exec.apply(this,["crop"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({name:"image",makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),1>=f&&f>0&&(f=a._info.width*f),1>=g&&g>0&&(g=a._info.height*g),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(a){b(a||!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},beforeSendFile:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||0,i=g&&g.noCompressIfLarger||!1;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){var a=g.width,c=g.height;b._info=b._info||d.info(),b._meta=b._meta||d.meta(),1>=a&&a>0&&(a=b._info.width*a),1>=c&&c>0&&(c=b._info.height*c),d.resize(a,c)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,(!i||a.size<c)&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});if(!c.runing){c.runing=!0;var d=[];f.each(c.pool,function(a,b){var e=b.file;e.getStatus()===h.INTERRUPT&&(d.push(e),c._trigged=!1,b.transport&&b.transport.send())});for(var b;b=d.shift();)b.setStatus(h.PROGRESS);b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload")}},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d.updateFileProgress(e),d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){b.percentage=a,g.updateFileProgress(k)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})},updateFileProgress:function(a){var b=0,c=0;a.blocks&&(f.each(a.blocks,function(a,b){c+=(b.percentage||0)*(b.end-b.start)}),b=c/a.size,this.owner.trigger("uploadProgress",a,b||0))}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({name:"validator",init:function(){var b=this;a.nextTick(function(){e.each(f,function(){this.call(b.owner)})})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileNumLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("reset",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileSizeLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("reset",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",d,a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));
+return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}),b.on("reset",function(){d={}}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destroy,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destroy=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.id,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){this.flashExec("FilePicker","destroy")}})}),b("runtime/flash/image",["runtime/flash/runtime"],function(a){return a.register("Image",{loadFromBlob:function(a){var b=this.owner;b.info()&&this.flashExec("Image","info",b.info()),b.meta()&&this.flashExec("Image","meta",b.meta()),this.flashExec("Image","loadFromBlob",a.uid)}})}),b("runtime/flash/blob",["runtime/flash/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.flashExec("Blob","slice",a,c);return new b(d.uid,d)}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(b,c,d){var e=b.$;return c.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,d=this._initAjax(),f=b._blob,g=c.server;d.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+e.param(b._formData),a=f.uid):(e.each(b._formData,function(a,b){d.exec("append",a,b)}),d.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(d,c.headers),d.exec("send",{method:c.method,url:g,forceURLStream:c.forceURLStream,mimeType:"application/octet-stream"},a)},getStatus:function(){return this._status},getResponse:function(){return this._response||""},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var b=this,c=new d("XMLHttpRequest");return c.on("uploadprogress progress",function(a){var c=a.loaded/a.total;return c=Math.min(1,Math.max(0,c)),b.trigger("progress",c)}),c.on("load",function(){var d,e=c.exec("getStatus"),f=!1,g="";return c.off(),b._xhr=null,e>=200&&300>e?f=!0:e>=500&&600>e?(f=!0,g="server"):g="http",f&&(b._response=c.exec("getResponse"),b._response=decodeURIComponent(b._response),d=a.JSON&&a.JSON.parse||function(a){try{return new Function("return "+a).call()}catch(b){return{}}},b._responseJson=b._response?d(b._response):{}),c.destroy(),c=null,g?b.trigger("error",g):b.trigger("load")}),c.on("error",function(){c.off(),b._xhr=null,b.trigger("error","http")}),b._xhr=c,c},_setRequestHeader:function(a,b){e.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("preset/flashonly",["base","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/flash/filepicker","runtime/flash/image","runtime/flash/blob","runtime/flash/transport"],function(a){return a}),b("webuploader",["preset/flashonly"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.js
new file mode 100644
index 0000000..bec91d2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.js
@@ -0,0 +1,6030 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/dnd',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function DragAndDrop( opts ) {
+            opts = this.options = $.extend({}, DragAndDrop.options, opts );
+
+            opts.container = $( opts.container );
+
+            if ( !opts.container.length ) {
+                return;
+            }
+
+            RuntimeClent.call( this, 'DragAndDrop' );
+        }
+
+        DragAndDrop.options = {
+            accept: null,
+            disableGlobalDnd: false
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: DragAndDrop,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( DragAndDrop.prototype );
+
+        return DragAndDrop;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview DragAndDrop Widget。
+     */
+    define('widgets/filednd',[
+        'base',
+        'uploader',
+        'lib/dnd',
+        'widgets/widget'
+    ], function( Base, Uploader, Dnd ) {
+        var $ = Base.$;
+
+        Uploader.options.dnd = '';
+
+        /**
+         * @property {Selector} [dnd=undefined]  指定Drag And Drop拖拽的容器,如果不指定,则不启动。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @property {Selector} [disableGlobalDnd=false]  是否禁掉整个页面的拖拽功能,如果不禁用,图片拖进来的时候会默认被浏览器打开。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @event dndAccept
+         * @param {DataTransferItemList} items DataTransferItem
+         * @description 阻止此事件可以拒绝某些类型的文件拖入进来。目前只有 chrome 提供这样的 API,且只能通过 mime-type 验证。
+         * @for  Uploader
+         */
+        return Uploader.register({
+            name: 'dnd',
+
+            init: function( opts ) {
+
+                if ( !opts.dnd ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        disableGlobalDnd: opts.disableGlobalDnd,
+                        container: opts.dnd,
+                        accept: opts.accept
+                    }),
+                    dnd;
+
+                this.dnd = dnd = new Dnd( options );
+
+                dnd.once( 'ready', deferred.resolve );
+                dnd.on( 'drop', function( files ) {
+                    me.request( 'add-file', [ files ]);
+                });
+
+                // 检测文件是否全部允许添加。
+                dnd.on( 'accept', function( items ) {
+                    return me.owner.trigger( 'dndAccept', items );
+                });
+
+                dnd.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.dnd && this.dnd.destroy();
+            }
+        });
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepaste',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function FilePaste( opts ) {
+            opts = this.options = $.extend({}, opts );
+            opts.container = $( opts.container || document.body );
+            RuntimeClent.call( this, 'FilePaste' );
+        }
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePaste,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( FilePaste.prototype );
+
+        return FilePaste;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/filepaste',[
+        'base',
+        'uploader',
+        'lib/filepaste',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePaste ) {
+        var $ = Base.$;
+
+        /**
+         * @property {Selector} [paste=undefined]  指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为`document.body`.
+         * @namespace options
+         * @for Uploader
+         */
+        return Uploader.register({
+            name: 'paste',
+
+            init: function( opts ) {
+
+                if ( !opts.paste ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        container: opts.paste,
+                        accept: opts.accept
+                    }),
+                    paste;
+
+                this.paste = paste = new FilePaste( options );
+
+                paste.once( 'ready', deferred.resolve );
+                paste.on( 'paste', function( files ) {
+                    me.owner.request( 'add-file', [ files ]);
+                });
+                paste.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.paste && this.paste.destroy();
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('lib/image',[
+        'base',
+        'runtime/client',
+        'lib/blob'
+    ], function( Base, RuntimeClient, Blob ) {
+        var $ = Base.$;
+
+        // 构造器。
+        function Image( opts ) {
+            this.options = $.extend({}, Image.options, opts );
+            RuntimeClient.call( this, 'Image' );
+
+            this.on( 'load', function() {
+                this._info = this.exec('info');
+                this._meta = this.exec('meta');
+            });
+        }
+
+        // 默认选项。
+        Image.options = {
+
+            // 默认的图片处理质量
+            quality: 90,
+
+            // 是否裁剪
+            crop: false,
+
+            // 是否保留头部信息
+            preserveHeaders: false,
+
+            // 是否允许放大。
+            allowMagnify: false
+        };
+
+        // 继承RuntimeClient.
+        Base.inherits( RuntimeClient, {
+            constructor: Image,
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    ruid = blob.getRuid();
+
+                this.connectRuntime( ruid, function() {
+                    me.exec( 'init', me.options );
+                    me.exec( 'loadFromBlob', blob );
+                });
+            },
+
+            resize: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'resize' ].concat( args ) );
+            },
+
+            crop: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'crop' ].concat( args ) );
+            },
+
+            getAsDataUrl: function( type ) {
+                return this.exec( 'getAsDataUrl', type );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this.exec( 'getAsBlob', type );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+
+        return Image;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/image',[
+        'base',
+        'uploader',
+        'lib/image',
+        'widgets/widget'
+    ], function( Base, Uploader, Image ) {
+
+        var $ = Base.$,
+            throttle;
+
+        // 根据要处理的文件大小来节流,一次不能处理太多,会卡。
+        throttle = (function( max ) {
+            var occupied = 0,
+                waiting = [],
+                tick = function() {
+                    var item;
+
+                    while ( waiting.length && occupied < max ) {
+                        item = waiting.shift();
+                        occupied += item[ 0 ];
+                        item[ 1 ]();
+                    }
+                };
+
+            return function( emiter, size, cb ) {
+                waiting.push([ size, cb ]);
+                emiter.once( 'destroy', function() {
+                    occupied -= size;
+                    setTimeout( tick, 1 );
+                });
+                setTimeout( tick, 1 );
+            };
+        })( 5 * 1024 * 1024 );
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Object} [thumb]
+             * @namespace options
+             * @for Uploader
+             * @description 配置生成缩略图的选项。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 110,
+             *     height: 110,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 70,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: true,
+             *
+             *     // 是否允许裁剪。
+             *     crop: true,
+             *
+             *     // 为空的话则保留原有图片格式。
+             *     // 否则强制转换成指定的类型。
+             *     type: 'image/jpeg'
+             * }
+             * ```
+             */
+            thumb: {
+                width: 110,
+                height: 110,
+                quality: 70,
+                allowMagnify: true,
+                crop: true,
+                preserveHeaders: false,
+
+                // 为空的话则保留原有图片格式。
+                // 否则强制转换成指定的类型。
+                // IE 8下面 base64 大小不能超过 32K 否则预览失败,而非 jpeg 编码的图片很可
+                // 能会超过 32k, 所以这里设置成预览的时候都是 image/jpeg
+                type: 'image/jpeg'
+            },
+
+            /**
+             * @property {Object} [compress]
+             * @namespace options
+             * @for Uploader
+             * @description 配置压缩的图片的选项。如果此选项为`false`, 则图片在上传前不进行压缩。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 1600,
+             *     height: 1600,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 90,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: false,
+             *
+             *     // 是否允许裁剪。
+             *     crop: false,
+             *
+             *     // 是否保留头部meta信息。
+             *     preserveHeaders: true,
+             *
+             *     // 如果发现压缩后文件大小比原来还大,则使用原来图片
+             *     // 此属性可能会影响图片自动纠正功能
+             *     noCompressIfLarger: false,
+             *
+             *     // 单位字节,如果图片大小小于此值,不会采用压缩。
+             *     compressSize: 0
+             * }
+             * ```
+             */
+            compress: {
+                width: 1600,
+                height: 1600,
+                quality: 90,
+                allowMagnify: false,
+                crop: false,
+                preserveHeaders: true
+            }
+        });
+
+        return Uploader.register({
+
+            name: 'image',
+
+
+            /**
+             * 生成缩略图,此过程为异步,所以需要传入`callback`。
+             * 通常情况在图片加入队里后调用此方法来生成预览图以增强交互效果。
+             *
+             * 当 width 或者 height 的值介于 0 - 1 时,被当成百分比使用。
+             *
+             * `callback`中可以接收到两个参数。
+             * * 第一个为error,如果生成缩略图有错误,此error将为真。
+             * * 第二个为ret, 缩略图的Data URL值。
+             *
+             * **注意**
+             * Date URL在IE6/7中不支持,所以不用调用此方法了,直接显示一张暂不支持预览图片好了。
+             * 也可以借助服务端,将 base64 数据传给服务端,生成一个临时文件供预览。
+             *
+             * @method makeThumb
+             * @grammar makeThumb( file, callback ) => undefined
+             * @grammar makeThumb( file, callback, width, height ) => undefined
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.makeThumb( file, function( error, ret ) {
+             *         if ( error ) {
+             *             $li.text('预览错误');
+             *         } else {
+             *             $li.append('<img alt="" src="' + ret + '" />');
+             *         }
+             *     });
+             *
+             * });
+             */
+            makeThumb: function( file, cb, width, height ) {
+                var opts, image;
+
+                file = this.request( 'get-file', file );
+
+                // 只预览图片格式。
+                if ( !file.type.match( /^image/ ) ) {
+                    cb( true );
+                    return;
+                }
+
+                opts = $.extend({}, this.options.thumb );
+
+                // 如果传入的是object.
+                if ( $.isPlainObject( width ) ) {
+                    opts = $.extend( opts, width );
+                    width = null;
+                }
+
+                width = width || opts.width;
+                height = height || opts.height;
+
+                image = new Image( opts );
+
+                image.once( 'load', function() {
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                // 当 resize 完后
+                image.once( 'complete', function() {
+                    cb( false, image.getAsDataUrl( opts.type ) );
+                    image.destroy();
+                });
+
+                image.once( 'error', function( reason ) {
+                    cb( reason || true );
+                    image.destroy();
+                });
+
+                throttle( image, file.source.size, function() {
+                    file._info && image.info( file._info );
+                    file._meta && image.meta( file._meta );
+                    image.loadFromBlob( file.source );
+                });
+            },
+
+            beforeSendFile: function( file ) {
+                var opts = this.options.compress || this.options.resize,
+                    compressSize = opts && opts.compressSize || 0,
+                    noCompressIfLarger = opts && opts.noCompressIfLarger || false,
+                    image, deferred;
+
+                file = this.request( 'get-file', file );
+
+                // 只压缩 jpeg 图片格式。
+                // gif 可能会丢失针
+                // bmp png 基本上尺寸都不大,且压缩比比较小。
+                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
+                        file.size < compressSize ||
+                        file._compressed ) {
+                    return;
+                }
+
+                opts = $.extend({}, opts );
+                deferred = Base.Deferred();
+
+                image = new Image( opts );
+
+                deferred.always(function() {
+                    image.destroy();
+                    image = null;
+                });
+                image.once( 'error', deferred.reject );
+                image.once( 'load', function() {
+                    var width = opts.width,
+                        height = opts.height;
+
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                image.once( 'complete', function() {
+                    var blob, size;
+
+                    // 移动端 UC / qq 浏览器的无图模式下
+                    // ctx.getImageData 处理大图的时候会报 Exception
+                    // INDEX_SIZE_ERR: DOM Exception 1
+                    try {
+                        blob = image.getAsBlob( opts.type );
+
+                        size = file.size;
+
+                        // 如果压缩后,比原来还大则不用压缩后的。
+                        if ( !noCompressIfLarger || blob.size < size ) {
+                            // file.source.destroy && file.source.destroy();
+                            file.source = blob;
+                            file.size = blob.size;
+
+                            file.trigger( 'resize', blob.size, size );
+                        }
+
+                        // 标记,避免重复压缩。
+                        file._compressed = true;
+                        deferred.resolve();
+                    } catch ( e ) {
+                        // 出错了直接继续,让其上传原始图片
+                        deferred.resolve();
+                    }
+                });
+
+                file._info && image.info( file._info );
+                file._meta && image.meta( file._meta );
+
+                image.loadFromBlob( file.source );
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/dnd',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        var $ = Base.$,
+            prefix = 'webuploader-dnd-';
+
+        return Html5Runtime.register( 'DragAndDrop', {
+            init: function() {
+                var elem = this.elem = this.options.container;
+
+                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
+                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
+                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
+                this.dropHandler = Base.bindFn( this._dropHandler, this );
+                this.dndOver = false;
+
+                elem.on( 'dragenter', this.dragEnterHandler );
+                elem.on( 'dragover', this.dragOverHandler );
+                elem.on( 'dragleave', this.dragLeaveHandler );
+                elem.on( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).on( 'dragover', this.dragOverHandler );
+                    $( document ).on( 'drop', this.dropHandler );
+                }
+            },
+
+            _dragEnterHandler: function( e ) {
+                var me = this,
+                    denied = me._denied || false,
+                    items;
+
+                e = e.originalEvent || e;
+
+                if ( !me.dndOver ) {
+                    me.dndOver = true;
+
+                    // 注意只有 chrome 支持。
+                    items = e.dataTransfer.items;
+
+                    if ( items && items.length ) {
+                        me._denied = denied = !me.trigger( 'accept', items );
+                    }
+
+                    me.elem.addClass( prefix + 'over' );
+                    me.elem[ denied ? 'addClass' :
+                            'removeClass' ]( prefix + 'denied' );
+                }
+
+                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
+
+                return false;
+            },
+
+            _dragOverHandler: function( e ) {
+                // 只处理框内的。
+                var parentElem = this.elem.parent().get( 0 );
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                clearTimeout( this._leaveTimer );
+                this._dragEnterHandler.call( this, e );
+
+                return false;
+            },
+
+            _dragLeaveHandler: function() {
+                var me = this,
+                    handler;
+
+                handler = function() {
+                    me.dndOver = false;
+                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
+                };
+
+                clearTimeout( me._leaveTimer );
+                me._leaveTimer = setTimeout( handler, 100 );
+                return false;
+            },
+
+            _dropHandler: function( e ) {
+                var me = this,
+                    ruid = me.getRuid(),
+                    parentElem = me.elem.parent().get( 0 ),
+                    dataTransfer, data;
+
+                // 只处理框内的。
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                e = e.originalEvent || e;
+                dataTransfer = e.dataTransfer;
+
+                // 如果是页面内拖拽,还不能处理,不阻止事件。
+                // 此处 ie11 下会报参数错误,
+                try {
+                    data = dataTransfer.getData('text/html');
+                } catch( err ) {
+                }
+
+                if ( data ) {
+                    return;
+                }
+
+                me._getTansferFiles( dataTransfer, function( results ) {
+                    me.trigger( 'drop', $.map( results, function( file ) {
+                        return new File( ruid, file );
+                    }) );
+                });
+
+                me.dndOver = false;
+                me.elem.removeClass( prefix + 'over' );
+                return false;
+            },
+
+            // 如果传入 callback 则去查看文件夹,否则只管当前文件夹。
+            _getTansferFiles: function( dataTransfer, callback ) {
+                var results  = [],
+                    promises = [],
+                    items, files, file, item, i, len, canAccessFolder;
+
+                items = dataTransfer.items;
+                files = dataTransfer.files;
+
+                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
+
+                for ( i = 0, len = files.length; i < len; i++ ) {
+                    file = files[ i ];
+                    item = items && items[ i ];
+
+                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
+
+                        promises.push( this._traverseDirectoryTree(
+                                item.webkitGetAsEntry(), results ) );
+                    } else {
+                        results.push( file );
+                    }
+                }
+
+                Base.when.apply( Base, promises ).done(function() {
+
+                    if ( !results.length ) {
+                        return;
+                    }
+
+                    callback( results );
+                });
+            },
+
+            _traverseDirectoryTree: function( entry, results ) {
+                var deferred = Base.Deferred(),
+                    me = this;
+
+                if ( entry.isFile ) {
+                    entry.file(function( file ) {
+                        results.push( file );
+                        deferred.resolve();
+                    });
+                } else if ( entry.isDirectory ) {
+                    entry.createReader().readEntries(function( entries ) {
+                        var len = entries.length,
+                            promises = [],
+                            arr = [],    // 为了保证顺序。
+                            i;
+
+                        for ( i = 0; i < len; i++ ) {
+                            promises.push( me._traverseDirectoryTree(
+                                    entries[ i ], arr ) );
+                        }
+
+                        Base.when.apply( Base, promises ).then(function() {
+                            results.push.apply( results, arr );
+                            deferred.resolve();
+                        }, deferred.reject );
+                    });
+                }
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                var elem = this.elem;
+
+                // 还没 init 就调用 destroy
+                if (!elem) {
+                    return;
+                }
+
+                elem.off( 'dragenter', this.dragEnterHandler );
+                elem.off( 'dragover', this.dragOverHandler );
+                elem.off( 'dragleave', this.dragLeaveHandler );
+                elem.off( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).off( 'dragover', this.dragOverHandler );
+                    $( document ).off( 'drop', this.dropHandler );
+                }
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/filepaste',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        return Html5Runtime.register( 'FilePaste', {
+            init: function() {
+                var opts = this.options,
+                    elem = this.elem = opts.container,
+                    accept = '.*',
+                    arr, i, len, item;
+
+                // accetp的mimeTypes中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].mimeTypes;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = arr.join(',');
+                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
+                    }
+                }
+                this.accept = accept = new RegExp( accept, 'i' );
+                this.hander = Base.bindFn( this._pasteHander, this );
+                elem.on( 'paste', this.hander );
+            },
+
+            _pasteHander: function( e ) {
+                var allowed = [],
+                    ruid = this.getRuid(),
+                    items, item, blob, i, len;
+
+                e = e.originalEvent || e;
+                items = e.clipboardData.items;
+
+                for ( i = 0, len = items.length; i < len; i++ ) {
+                    item = items[ i ];
+
+                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
+                        continue;
+                    }
+
+                    allowed.push( new File( ruid, blob ) );
+                }
+
+                if ( allowed.length ) {
+                    // 不阻止非文件粘贴(文字粘贴)的事件冒泡
+                    e.preventDefault();
+                    e.stopPropagation();
+                    this.trigger( 'paste', allowed );
+                }
+            },
+
+            destroy: function() {
+                this.elem.off( 'paste', this.hander );
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/util',[
+        'base'
+    ], function( Base ) {
+
+        var urlAPI = window.createObjectURL && window ||
+                window.URL && URL.revokeObjectURL && URL ||
+                window.webkitURL,
+            createObjectURL = Base.noop,
+            revokeObjectURL = createObjectURL;
+
+        if ( urlAPI ) {
+
+            // 更安全的方式调用,比如android里面就能把context改成其他的对象。
+            createObjectURL = function() {
+                return urlAPI.createObjectURL.apply( urlAPI, arguments );
+            };
+
+            revokeObjectURL = function() {
+                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
+            };
+        }
+
+        return {
+            createObjectURL: createObjectURL,
+            revokeObjectURL: revokeObjectURL,
+
+            dataURL2Blob: function( dataURI ) {
+                var byteStr, intArray, ab, i, mimetype, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                ab = new ArrayBuffer( byteStr.length );
+                intArray = new Uint8Array( ab );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
+
+                return this.arrayBufferToBlob( ab, mimetype );
+            },
+
+            dataURL2ArrayBuffer: function( dataURI ) {
+                var byteStr, intArray, i, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                intArray = new Uint8Array( byteStr.length );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                return intArray.buffer;
+            },
+
+            arrayBufferToBlob: function( buffer, type ) {
+                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
+                    bb;
+
+                // android不支持直接new Blob, 只能借助blobbuilder.
+                if ( builder ) {
+                    bb = new builder();
+                    bb.append( buffer );
+                    return bb.getBlob( type );
+                }
+
+                return new Blob([ buffer ], type ? { type: type } : {} );
+            },
+
+            // 抽出来主要是为了解决android下面canvas.toDataUrl不支持jpeg.
+            // 你得到的结果是png.
+            canvasToDataUrl: function( canvas, type, quality ) {
+                return canvas.toDataURL( type, quality / 100 );
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            parseMeta: function( blob, callback ) {
+                callback( false, {});
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            updateImageHead: function( data ) {
+                return data;
+            }
+        };
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/imagemeta',[
+        'runtime/html5/util'
+    ], function( Util ) {
+
+        var api;
+
+        api = {
+            parsers: {
+                0xffe1: []
+            },
+
+            maxMetaDataSize: 262144,
+
+            parse: function( blob, cb ) {
+                var me = this,
+                    fr = new FileReader();
+
+                fr.onload = function() {
+                    cb( false, me._parse( this.result ) );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                fr.onerror = function( e ) {
+                    cb( e.message );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                blob = blob.slice( 0, me.maxMetaDataSize );
+                fr.readAsArrayBuffer( blob.getSource() );
+            },
+
+            _parse: function( buffer, noParse ) {
+                if ( buffer.byteLength < 6 ) {
+                    return;
+                }
+
+                var dataview = new DataView( buffer ),
+                    offset = 2,
+                    maxOffset = dataview.byteLength - 4,
+                    headLength = offset,
+                    ret = {},
+                    markerBytes, markerLength, parsers, i;
+
+                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
+
+                    while ( offset < maxOffset ) {
+                        markerBytes = dataview.getUint16( offset );
+
+                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
+                                markerBytes === 0xfffe ) {
+
+                            markerLength = dataview.getUint16( offset + 2 ) + 2;
+
+                            if ( offset + markerLength > dataview.byteLength ) {
+                                break;
+                            }
+
+                            parsers = api.parsers[ markerBytes ];
+
+                            if ( !noParse && parsers ) {
+                                for ( i = 0; i < parsers.length; i += 1 ) {
+                                    parsers[ i ].call( api, dataview, offset,
+                                            markerLength, ret );
+                                }
+                            }
+
+                            offset += markerLength;
+                            headLength = offset;
+                        } else {
+                            break;
+                        }
+                    }
+
+                    if ( headLength > 6 ) {
+                        if ( buffer.slice ) {
+                            ret.imageHead = buffer.slice( 2, headLength );
+                        } else {
+                            // Workaround for IE10, which does not yet
+                            // support ArrayBuffer.slice:
+                            ret.imageHead = new Uint8Array( buffer )
+                                    .subarray( 2, headLength );
+                        }
+                    }
+                }
+
+                return ret;
+            },
+
+            updateImageHead: function( buffer, head ) {
+                var data = this._parse( buffer, true ),
+                    buf1, buf2, bodyoffset;
+
+
+                bodyoffset = 2;
+                if ( data.imageHead ) {
+                    bodyoffset = 2 + data.imageHead.byteLength;
+                }
+
+                if ( buffer.slice ) {
+                    buf2 = buffer.slice( bodyoffset );
+                } else {
+                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
+                }
+
+                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
+
+                buf1[ 0 ] = 0xFF;
+                buf1[ 1 ] = 0xD8;
+                buf1.set( new Uint8Array( head ), 2 );
+                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
+
+                return buf1.buffer;
+            }
+        };
+
+        Util.parseMeta = function() {
+            return api.parse.apply( api, arguments );
+        };
+
+        Util.updateImageHead = function() {
+            return api.updateImageHead.apply( api, arguments );
+        };
+
+        return api;
+    });
+    /**
+     * 代码来自于:https://github.com/blueimp/JavaScript-Load-Image
+     * 暂时项目中只用了orientation.
+     *
+     * 去除了 Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
+     * @fileOverview EXIF解析
+     */
+
+    // Sample
+    // ====================================
+    // Make : Apple
+    // Model : iPhone 4S
+    // Orientation : 1
+    // XResolution : 72 [72/1]
+    // YResolution : 72 [72/1]
+    // ResolutionUnit : 2
+    // Software : QuickTime 7.7.1
+    // DateTime : 2013:09:01 22:53:55
+    // ExifIFDPointer : 190
+    // ExposureTime : 0.058823529411764705 [1/17]
+    // FNumber : 2.4 [12/5]
+    // ExposureProgram : Normal program
+    // ISOSpeedRatings : 800
+    // ExifVersion : 0220
+    // DateTimeOriginal : 2013:09:01 22:52:51
+    // DateTimeDigitized : 2013:09:01 22:52:51
+    // ComponentsConfiguration : YCbCr
+    // ShutterSpeedValue : 4.058893515764426
+    // ApertureValue : 2.5260688216892597 [4845/1918]
+    // BrightnessValue : -0.3126686601998395
+    // MeteringMode : Pattern
+    // Flash : Flash did not fire, compulsory flash mode
+    // FocalLength : 4.28 [107/25]
+    // SubjectArea : [4 values]
+    // FlashpixVersion : 0100
+    // ColorSpace : 1
+    // PixelXDimension : 2448
+    // PixelYDimension : 3264
+    // SensingMethod : One-chip color area sensor
+    // ExposureMode : 0
+    // WhiteBalance : Auto white balance
+    // FocalLengthIn35mmFilm : 35
+    // SceneCaptureType : Standard
+    define('runtime/html5/imagemeta/exif',[
+        'base',
+        'runtime/html5/imagemeta'
+    ], function( Base, ImageMeta ) {
+
+        var EXIF = {};
+
+        EXIF.ExifMap = function() {
+            return this;
+        };
+
+        EXIF.ExifMap.prototype.map = {
+            'Orientation': 0x0112
+        };
+
+        EXIF.ExifMap.prototype.get = function( id ) {
+            return this[ id ] || this[ this.map[ id ] ];
+        };
+
+        EXIF.exifTagTypes = {
+            // byte, 8-bit unsigned int:
+            1: {
+                getValue: function( dataView, dataOffset ) {
+                    return dataView.getUint8( dataOffset );
+                },
+                size: 1
+            },
+
+            // ascii, 8-bit byte:
+            2: {
+                getValue: function( dataView, dataOffset ) {
+                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
+                },
+                size: 1,
+                ascii: true
+            },
+
+            // short, 16 bit int:
+            3: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint16( dataOffset, littleEndian );
+                },
+                size: 2
+            },
+
+            // long, 32 bit int:
+            4: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // rational = two long values,
+            // first is numerator, second is denominator:
+            5: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian ) /
+                        dataView.getUint32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            },
+
+            // slong, 32 bit signed int:
+            9: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // srational, two slongs, first is numerator, second is denominator:
+            10: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian ) /
+                        dataView.getInt32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            }
+        };
+
+        // undefined, 8-bit byte, value depending on field:
+        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
+
+        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
+                littleEndian ) {
+
+            var tagType = EXIF.exifTagTypes[ type ],
+                tagSize, dataOffset, values, i, str, c;
+
+            if ( !tagType ) {
+                Base.log('Invalid Exif data: Invalid tag type.');
+                return;
+            }
+
+            tagSize = tagType.size * length;
+
+            // Determine if the value is contained in the dataOffset bytes,
+            // or if the value at the dataOffset is a pointer to the actual data:
+            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
+                    littleEndian ) : (offset + 8);
+
+            if ( dataOffset + tagSize > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid data offset.');
+                return;
+            }
+
+            if ( length === 1 ) {
+                return tagType.getValue( dataView, dataOffset, littleEndian );
+            }
+
+            values = [];
+
+            for ( i = 0; i < length; i += 1 ) {
+                values[ i ] = tagType.getValue( dataView,
+                        dataOffset + i * tagType.size, littleEndian );
+            }
+
+            if ( tagType.ascii ) {
+                str = '';
+
+                // Concatenate the chars:
+                for ( i = 0; i < values.length; i += 1 ) {
+                    c = values[ i ];
+
+                    // Ignore the terminating NULL byte(s):
+                    if ( c === '\u0000' ) {
+                        break;
+                    }
+                    str += c;
+                }
+
+                return str;
+            }
+            return values;
+        };
+
+        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
+                data ) {
+
+            var tag = dataView.getUint16( offset, littleEndian );
+            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
+                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
+                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
+                    littleEndian );
+        };
+
+        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
+                littleEndian, data ) {
+
+            var tagsNumber, dirEndOffset, i;
+
+            if ( dirOffset + 6 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory offset.');
+                return;
+            }
+
+            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
+            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
+
+            if ( dirEndOffset + 4 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory size.');
+                return;
+            }
+
+            for ( i = 0; i < tagsNumber; i += 1 ) {
+                this.parseExifTag( dataView, tiffOffset,
+                        dirOffset + 2 + 12 * i,    // tag offset
+                        littleEndian, data );
+            }
+
+            // Return the offset to the next directory:
+            return dataView.getUint32( dirEndOffset, littleEndian );
+        };
+
+        // EXIF.getExifThumbnail = function(dataView, offset, length) {
+        //     var hexData,
+        //         i,
+        //         b;
+        //     if (!length || offset + length > dataView.byteLength) {
+        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
+        //         return;
+        //     }
+        //     hexData = [];
+        //     for (i = 0; i < length; i += 1) {
+        //         b = dataView.getUint8(offset + i);
+        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
+        //     }
+        //     return 'data:image/jpeg,%' + hexData.join('%');
+        // };
+
+        EXIF.parseExifData = function( dataView, offset, length, data ) {
+
+            var tiffOffset = offset + 10,
+                littleEndian, dirOffset;
+
+            // Check for the ASCII code for "Exif" (0x45786966):
+            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
+                // No Exif data, might be XMP data instead
+                return;
+            }
+            if ( tiffOffset + 8 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid segment size.');
+                return;
+            }
+
+            // Check for the two null bytes:
+            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
+                Base.log('Invalid Exif data: Missing byte alignment offset.');
+                return;
+            }
+
+            // Check the byte alignment:
+            switch ( dataView.getUint16( tiffOffset ) ) {
+                case 0x4949:
+                    littleEndian = true;
+                    break;
+
+                case 0x4D4D:
+                    littleEndian = false;
+                    break;
+
+                default:
+                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
+                    return;
+            }
+
+            // Check for the TIFF tag marker (0x002A):
+            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
+                Base.log('Invalid Exif data: Missing TIFF marker.');
+                return;
+            }
+
+            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
+            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
+            // Create the exif object to store the tags:
+            data.exif = new EXIF.ExifMap();
+            // Parse the tags of the main image directory and retrieve the
+            // offset to the next directory, usually the thumbnail directory:
+            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
+                    tiffOffset + dirOffset, littleEndian, data );
+
+            // 尝试读取缩略图
+            // if ( dirOffset ) {
+            //     thumbnailData = {exif: {}};
+            //     dirOffset = EXIF.parseExifTags(
+            //         dataView,
+            //         tiffOffset,
+            //         tiffOffset + dirOffset,
+            //         littleEndian,
+            //         thumbnailData
+            //     );
+
+            //     // Check for JPEG Thumbnail offset:
+            //     if (thumbnailData.exif[0x0201]) {
+            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
+            //             dataView,
+            //             tiffOffset + thumbnailData.exif[0x0201],
+            //             thumbnailData.exif[0x0202] // Thumbnail data length
+            //         );
+            //     }
+            // }
+        };
+
+        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
+        return EXIF;
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('runtime/html5/image',[
+        'base',
+        'runtime/html5/runtime',
+        'runtime/html5/util'
+    ], function( Base, Html5Runtime, Util ) {
+
+        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
+
+        return Html5Runtime.register( 'Image', {
+
+            // flag: 标记是否被修改过。
+            modified: false,
+
+            init: function() {
+                var me = this,
+                    img = new Image();
+
+                img.onload = function() {
+
+                    me._info = {
+                        type: me.type,
+                        width: this.width,
+                        height: this.height
+                    };
+
+                    // 读取meta信息。
+                    if ( !me._metas && 'image/jpeg' === me.type ) {
+                        Util.parseMeta( me._blob, function( error, ret ) {
+                            me._metas = ret;
+                            me.owner.trigger('load');
+                        });
+                    } else {
+                        me.owner.trigger('load');
+                    }
+                };
+
+                img.onerror = function() {
+                    me.owner.trigger('error');
+                };
+
+                me._img = img;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    img = me._img;
+
+                me._blob = blob;
+                me.type = blob.type;
+                img.src = Util.createObjectURL( blob.getSource() );
+                me.owner.once( 'load', function() {
+                    Util.revokeObjectURL( img.src );
+                });
+            },
+
+            resize: function( width, height ) {
+                var canvas = this._canvas ||
+                        (this._canvas = document.createElement('canvas'));
+
+                this._resize( this._img, canvas, width, height );
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'resize' );
+            },
+
+            crop: function( x, y, w, h, s ) {
+                var cvs = this._canvas ||
+                        (this._canvas = document.createElement('canvas')),
+                    opts = this.options,
+                    img = this._img,
+                    iw = img.naturalWidth,
+                    ih = img.naturalHeight,
+                    orientation = this.getOrientation();
+
+                s = s || 1;
+
+                // todo 解决 orientation 的问题。
+                // values that require 90 degree rotation
+                // if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                //     switch ( orientation ) {
+                //         case 6:
+                //             tmp = x;
+                //             x = y;
+                //             y = iw * s - tmp - w;
+                //             console.log(ih * s, tmp, w)
+                //             break;
+                //     }
+
+                //     (w ^= h, h ^= w, w ^= h);
+                // }
+
+                cvs.width = w;
+                cvs.height = h;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+                this._renderImageToCanvas( cvs, img, -x, -y, iw * s, ih * s );
+
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'crop' );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this._blob,
+                    opts = this.options,
+                    canvas;
+
+                type = type || this.type;
+
+                // blob需要重新生成。
+                if ( this.modified || this.type !== type ) {
+                    canvas = this._canvas;
+
+                    if ( type === 'image/jpeg' ) {
+
+                        blob = Util.canvasToDataUrl( canvas, type, opts.quality );
+
+                        if ( opts.preserveHeaders && this._metas &&
+                                this._metas.imageHead ) {
+
+                            blob = Util.dataURL2ArrayBuffer( blob );
+                            blob = Util.updateImageHead( blob,
+                                    this._metas.imageHead );
+                            blob = Util.arrayBufferToBlob( blob, type );
+                            return blob;
+                        }
+                    } else {
+                        blob = Util.canvasToDataUrl( canvas, type );
+                    }
+
+                    blob = Util.dataURL2Blob( blob );
+                }
+
+                return blob;
+            },
+
+            getAsDataUrl: function( type ) {
+                var opts = this.options;
+
+                type = type || this.type;
+
+                if ( type === 'image/jpeg' ) {
+                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
+                } else {
+                    return this._canvas.toDataURL( type );
+                }
+            },
+
+            getOrientation: function() {
+                return this._metas && this._metas.exif &&
+                        this._metas.exif.get('Orientation') || 1;
+            },
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            destroy: function() {
+                var canvas = this._canvas;
+                this._img.onload = null;
+
+                if ( canvas ) {
+                    canvas.getContext('2d')
+                            .clearRect( 0, 0, canvas.width, canvas.height );
+                    canvas.width = canvas.height = 0;
+                    this._canvas = null;
+                }
+
+                // 释放内存。非常重要,否则释放不了image的内存。
+                this._img.src = BLANK;
+                this._img = this._blob = null;
+            },
+
+            _resize: function( img, cvs, width, height ) {
+                var opts = this.options,
+                    naturalWidth = img.width,
+                    naturalHeight = img.height,
+                    orientation = this.getOrientation(),
+                    scale, w, h, x, y;
+
+                // values that require 90 degree rotation
+                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                    // 交换width, height的值。
+                    width ^= height;
+                    height ^= width;
+                    width ^= height;
+                }
+
+                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
+                        height / naturalHeight );
+
+                // 不允许放大。
+                opts.allowMagnify || (scale = Math.min( 1, scale ));
+
+                w = naturalWidth * scale;
+                h = naturalHeight * scale;
+
+                if ( opts.crop ) {
+                    cvs.width = width;
+                    cvs.height = height;
+                } else {
+                    cvs.width = w;
+                    cvs.height = h;
+                }
+
+                x = (cvs.width - w) / 2;
+                y = (cvs.height - h) / 2;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+
+                this._renderImageToCanvas( cvs, img, x, y, w, h );
+            },
+
+            _rotate2Orientaion: function( canvas, orientation ) {
+                var width = canvas.width,
+                    height = canvas.height,
+                    ctx = canvas.getContext('2d');
+
+                switch ( orientation ) {
+                    case 5:
+                    case 6:
+                    case 7:
+                    case 8:
+                        canvas.width = height;
+                        canvas.height = width;
+                        break;
+                }
+
+                switch ( orientation ) {
+                    case 2:    // horizontal flip
+                        ctx.translate( width, 0 );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 3:    // 180 rotate left
+                        ctx.translate( width, height );
+                        ctx.rotate( Math.PI );
+                        break;
+
+                    case 4:    // vertical flip
+                        ctx.translate( 0, height );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 5:    // vertical flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 6:    // 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( 0, -height );
+                        break;
+
+                    case 7:    // horizontal flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( width, -height );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 8:    // 90 rotate left
+                        ctx.rotate( -0.5 * Math.PI );
+                        ctx.translate( -width, 0 );
+                        break;
+                }
+            },
+
+            // https://github.com/stomita/ios-imagefile-megapixel/
+            // blob/master/src/megapix-image.js
+            _renderImageToCanvas: (function() {
+
+                // 如果不是ios, 不需要这么复杂!
+                if ( !Base.os.ios ) {
+                    return function( canvas ) {
+                        var args = Base.slice( arguments, 1 ),
+                            ctx = canvas.getContext('2d');
+
+                        ctx.drawImage.apply( ctx, args );
+                    };
+                }
+
+                /**
+                 * Detecting vertical squash in loaded image.
+                 * Fixes a bug which squash image vertically while drawing into
+                 * canvas for some images.
+                 */
+                function detectVerticalSquash( img, iw, ih ) {
+                    var canvas = document.createElement('canvas'),
+                        ctx = canvas.getContext('2d'),
+                        sy = 0,
+                        ey = ih,
+                        py = ih,
+                        data, alpha, ratio;
+
+
+                    canvas.width = 1;
+                    canvas.height = ih;
+                    ctx.drawImage( img, 0, 0 );
+                    data = ctx.getImageData( 0, 0, 1, ih ).data;
+
+                    // search image edge pixel position in case
+                    // it is squashed vertically.
+                    while ( py > sy ) {
+                        alpha = data[ (py - 1) * 4 + 3 ];
+
+                        if ( alpha === 0 ) {
+                            ey = py;
+                        } else {
+                            sy = py;
+                        }
+
+                        py = (ey + sy) >> 1;
+                    }
+
+                    ratio = (py / ih);
+                    return (ratio === 0) ? 1 : ratio;
+                }
+
+                // fix ie7 bug
+                // http://stackoverflow.com/questions/11929099/
+                // html5-canvas-drawimage-ratio-bug-ios
+                if ( Base.os.ios >= 7 ) {
+                    return function( canvas, img, x, y, w, h ) {
+                        var iw = img.naturalWidth,
+                            ih = img.naturalHeight,
+                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
+
+                        return canvas.getContext('2d').drawImage( img, 0, 0,
+                                iw * vertSquashRatio, ih * vertSquashRatio,
+                                x, y, w, h );
+                    };
+                }
+
+                /**
+                 * Detect subsampling in loaded image.
+                 * In iOS, larger images than 2M pixels may be
+                 * subsampled in rendering.
+                 */
+                function detectSubsampling( img ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        canvas, ctx;
+
+                    // subsampling may happen overmegapixel image
+                    if ( iw * ih > 1024 * 1024 ) {
+                        canvas = document.createElement('canvas');
+                        canvas.width = canvas.height = 1;
+                        ctx = canvas.getContext('2d');
+                        ctx.drawImage( img, -iw + 1, 0 );
+
+                        // subsampled image becomes half smaller in rendering size.
+                        // check alpha channel value to confirm image is covering
+                        // edge pixel or not. if alpha value is 0
+                        // image is not covering, hence subsampled.
+                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
+                    } else {
+                        return false;
+                    }
+                }
+
+
+                return function( canvas, img, x, y, width, height ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        ctx = canvas.getContext('2d'),
+                        subsampled = detectSubsampling( img ),
+                        doSquash = this.type === 'image/jpeg',
+                        d = 1024,
+                        sy = 0,
+                        dy = 0,
+                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
+
+                    if ( subsampled ) {
+                        iw /= 2;
+                        ih /= 2;
+                    }
+
+                    ctx.save();
+                    tmpCanvas = document.createElement('canvas');
+                    tmpCanvas.width = tmpCanvas.height = d;
+
+                    tmpCtx = tmpCanvas.getContext('2d');
+                    vertSquashRatio = doSquash ?
+                            detectVerticalSquash( img, iw, ih ) : 1;
+
+                    dw = Math.ceil( d * width / iw );
+                    dh = Math.ceil( d * height / ih / vertSquashRatio );
+
+                    while ( sy < ih ) {
+                        sx = 0;
+                        dx = 0;
+                        while ( sx < iw ) {
+                            tmpCtx.clearRect( 0, 0, d, d );
+                            tmpCtx.drawImage( img, -sx, -sy );
+                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
+                                    x + dx, y + dy, dw, dh );
+                            sx += d;
+                            dx += dw;
+                        }
+                        sy += d;
+                        dy += dh;
+                    }
+                    ctx.restore();
+                    tmpCanvas = tmpCtx = null;
+                };
+            })()
+        });
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    /**
+     * @fileOverview 只有html5实现的文件版本。
+     */
+    define('preset/html5only',[
+        'base',
+
+        // widgets
+        'widgets/filednd',
+        'widgets/filepaste',
+        'widgets/filepicker',
+        'widgets/image',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+
+        // runtimes
+        // html5
+        'runtime/html5/blob',
+        'runtime/html5/dnd',
+        'runtime/html5/filepaste',
+        'runtime/html5/filepicker',
+        'runtime/html5/imagemeta/exif',
+        'runtime/html5/image',
+        'runtime/html5/transport'
+    ], function( Base ) {
+        return Base;
+    });
+    define('webuploader',[
+        'preset/html5only'
+    ], function( preset ) {
+        return preset;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.min.js
new file mode 100644
index 0000000..4b83edd
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.html5only.min.js
@@ -0,0 +1,2 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({name:"dnd",init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return this.dnd=e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}},destroy:function(){this.dnd&&this.dnd.destroy()}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({name:"paste",init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return this.paste=e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}},destroy:function(){this.paste&&this.paste.destroy()}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!1,allowMagnify:!1},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},crop:function(){var b=a.slice(arguments);return this.exec.apply(this,["crop"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({name:"image",makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),1>=f&&f>0&&(f=a._info.width*f),1>=g&&g>0&&(g=a._info.height*g),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(a){b(a||!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},beforeSendFile:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||0,i=g&&g.noCompressIfLarger||!1;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){var a=g.width,c=g.height;b._info=b._info||d.info(),b._meta=b._meta||d.meta(),1>=a&&a>0&&(a=b._info.width*a),1>=c&&c>0&&(c=b._info.height*c),d.resize(a,c)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,(!i||a.size<c)&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});if(!c.runing){c.runing=!0;var d=[];f.each(c.pool,function(a,b){var e=b.file;e.getStatus()===h.INTERRUPT&&(d.push(e),c._trigged=!1,b.transport&&b.transport.send())});for(var b;b=d.shift();)b.setStatus(h.PROGRESS);b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload")}},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d.updateFileProgress(e),d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){b.percentage=a,g.updateFileProgress(k)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)
+}).always(function(){d.trigger("uploadComplete",a)})},updateFileProgress:function(a){var b=0,c=0;a.blocks&&(f.each(a.blocks,function(a,b){c+=(b.percentage||0)*(b.end-b.start)}),b=c/a.size,this.owner.trigger("uploadProgress",a,b||0))}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({name:"validator",init:function(){var b=this;a.nextTick(function(){e.each(f,function(){this.call(b.owner)})})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileNumLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("reset",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileSizeLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("reset",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",d,a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}),b.on("reset",function(){d={}}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destroy;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destroy=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b,f,g=this,h=g.getRuid(),i=g.elem.parent().get(0);if(i&&!d.contains(i,a.currentTarget))return!1;a=a.originalEvent||a,b=a.dataTransfer;try{f=b.getData("text/html")}catch(j){}return f?void 0:(g._getTansferFiles(b,function(a){g.trigger("drop",d.map(a,function(a){return new c(h,a)}))}),g.dndOver=!1,g.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k=[],l=[];for(d=b.items,e=b.files,j=!(!d||!d[0].webkitGetAsEntry),h=0,i=e.length;i>h;h++)f=e[h],g=d&&d[h],j&&g.webkitGetAsEntry().isDirectory?l.push(this._traverseDirectoryTree(g.webkitGetAsEntry(),k)):k.push(f);a.when.apply(a,l).done(function(){k.length&&c(k)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a&&(a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragOverHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler)))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=this.label=c(document.createElement("label")),k=this.input=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),b.value=null,this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){this.input.off(),this.label.off()}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete","resize")},crop:function(a,b,c,d,e){var f=this._canvas||(this._canvas=document.createElement("canvas")),g=this.options,h=this._img,i=h.naturalWidth,j=h.naturalHeight,k=this.getOrientation();e=e||1,f.width=c,f.height=d,g.preserveHeaders||this._rotate2Orientaion(f,k),this._renderImageToCanvas(f,h,-a,-b,i*e,j*e),this._blob=null,this.modified=!0,this.owner.trigger("complete","crop")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,a,e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(b){var c=a.slice(arguments,1),d=b.getContext("2d");d.drawImage.apply(d,c)}}()})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType&&h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("preset/html5only",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/image","runtime/html5/transport"],function(a){return a}),b("webuploader",["preset/html5only"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.js
new file mode 100644
index 0000000..c805c9a
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.js
@@ -0,0 +1,8106 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/dnd',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function DragAndDrop( opts ) {
+            opts = this.options = $.extend({}, DragAndDrop.options, opts );
+
+            opts.container = $( opts.container );
+
+            if ( !opts.container.length ) {
+                return;
+            }
+
+            RuntimeClent.call( this, 'DragAndDrop' );
+        }
+
+        DragAndDrop.options = {
+            accept: null,
+            disableGlobalDnd: false
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: DragAndDrop,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( DragAndDrop.prototype );
+
+        return DragAndDrop;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview DragAndDrop Widget。
+     */
+    define('widgets/filednd',[
+        'base',
+        'uploader',
+        'lib/dnd',
+        'widgets/widget'
+    ], function( Base, Uploader, Dnd ) {
+        var $ = Base.$;
+
+        Uploader.options.dnd = '';
+
+        /**
+         * @property {Selector} [dnd=undefined]  指定Drag And Drop拖拽的容器,如果不指定,则不启动。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @property {Selector} [disableGlobalDnd=false]  是否禁掉整个页面的拖拽功能,如果不禁用,图片拖进来的时候会默认被浏览器打开。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @event dndAccept
+         * @param {DataTransferItemList} items DataTransferItem
+         * @description 阻止此事件可以拒绝某些类型的文件拖入进来。目前只有 chrome 提供这样的 API,且只能通过 mime-type 验证。
+         * @for  Uploader
+         */
+        return Uploader.register({
+            name: 'dnd',
+
+            init: function( opts ) {
+
+                if ( !opts.dnd ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        disableGlobalDnd: opts.disableGlobalDnd,
+                        container: opts.dnd,
+                        accept: opts.accept
+                    }),
+                    dnd;
+
+                this.dnd = dnd = new Dnd( options );
+
+                dnd.once( 'ready', deferred.resolve );
+                dnd.on( 'drop', function( files ) {
+                    me.request( 'add-file', [ files ]);
+                });
+
+                // 检测文件是否全部允许添加。
+                dnd.on( 'accept', function( items ) {
+                    return me.owner.trigger( 'dndAccept', items );
+                });
+
+                dnd.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.dnd && this.dnd.destroy();
+            }
+        });
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepaste',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function FilePaste( opts ) {
+            opts = this.options = $.extend({}, opts );
+            opts.container = $( opts.container || document.body );
+            RuntimeClent.call( this, 'FilePaste' );
+        }
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePaste,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( FilePaste.prototype );
+
+        return FilePaste;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/filepaste',[
+        'base',
+        'uploader',
+        'lib/filepaste',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePaste ) {
+        var $ = Base.$;
+
+        /**
+         * @property {Selector} [paste=undefined]  指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为`document.body`.
+         * @namespace options
+         * @for Uploader
+         */
+        return Uploader.register({
+            name: 'paste',
+
+            init: function( opts ) {
+
+                if ( !opts.paste ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        container: opts.paste,
+                        accept: opts.accept
+                    }),
+                    paste;
+
+                this.paste = paste = new FilePaste( options );
+
+                paste.once( 'ready', deferred.resolve );
+                paste.on( 'paste', function( files ) {
+                    me.owner.request( 'add-file', [ files ]);
+                });
+                paste.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.paste && this.paste.destroy();
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('lib/image',[
+        'base',
+        'runtime/client',
+        'lib/blob'
+    ], function( Base, RuntimeClient, Blob ) {
+        var $ = Base.$;
+
+        // 构造器。
+        function Image( opts ) {
+            this.options = $.extend({}, Image.options, opts );
+            RuntimeClient.call( this, 'Image' );
+
+            this.on( 'load', function() {
+                this._info = this.exec('info');
+                this._meta = this.exec('meta');
+            });
+        }
+
+        // 默认选项。
+        Image.options = {
+
+            // 默认的图片处理质量
+            quality: 90,
+
+            // 是否裁剪
+            crop: false,
+
+            // 是否保留头部信息
+            preserveHeaders: false,
+
+            // 是否允许放大。
+            allowMagnify: false
+        };
+
+        // 继承RuntimeClient.
+        Base.inherits( RuntimeClient, {
+            constructor: Image,
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    ruid = blob.getRuid();
+
+                this.connectRuntime( ruid, function() {
+                    me.exec( 'init', me.options );
+                    me.exec( 'loadFromBlob', blob );
+                });
+            },
+
+            resize: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'resize' ].concat( args ) );
+            },
+
+            crop: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'crop' ].concat( args ) );
+            },
+
+            getAsDataUrl: function( type ) {
+                return this.exec( 'getAsDataUrl', type );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this.exec( 'getAsBlob', type );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+
+        return Image;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/image',[
+        'base',
+        'uploader',
+        'lib/image',
+        'widgets/widget'
+    ], function( Base, Uploader, Image ) {
+
+        var $ = Base.$,
+            throttle;
+
+        // 根据要处理的文件大小来节流,一次不能处理太多,会卡。
+        throttle = (function( max ) {
+            var occupied = 0,
+                waiting = [],
+                tick = function() {
+                    var item;
+
+                    while ( waiting.length && occupied < max ) {
+                        item = waiting.shift();
+                        occupied += item[ 0 ];
+                        item[ 1 ]();
+                    }
+                };
+
+            return function( emiter, size, cb ) {
+                waiting.push([ size, cb ]);
+                emiter.once( 'destroy', function() {
+                    occupied -= size;
+                    setTimeout( tick, 1 );
+                });
+                setTimeout( tick, 1 );
+            };
+        })( 5 * 1024 * 1024 );
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Object} [thumb]
+             * @namespace options
+             * @for Uploader
+             * @description 配置生成缩略图的选项。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 110,
+             *     height: 110,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 70,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: true,
+             *
+             *     // 是否允许裁剪。
+             *     crop: true,
+             *
+             *     // 为空的话则保留原有图片格式。
+             *     // 否则强制转换成指定的类型。
+             *     type: 'image/jpeg'
+             * }
+             * ```
+             */
+            thumb: {
+                width: 110,
+                height: 110,
+                quality: 70,
+                allowMagnify: true,
+                crop: true,
+                preserveHeaders: false,
+
+                // 为空的话则保留原有图片格式。
+                // 否则强制转换成指定的类型。
+                // IE 8下面 base64 大小不能超过 32K 否则预览失败,而非 jpeg 编码的图片很可
+                // 能会超过 32k, 所以这里设置成预览的时候都是 image/jpeg
+                type: 'image/jpeg'
+            },
+
+            /**
+             * @property {Object} [compress]
+             * @namespace options
+             * @for Uploader
+             * @description 配置压缩的图片的选项。如果此选项为`false`, 则图片在上传前不进行压缩。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 1600,
+             *     height: 1600,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 90,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: false,
+             *
+             *     // 是否允许裁剪。
+             *     crop: false,
+             *
+             *     // 是否保留头部meta信息。
+             *     preserveHeaders: true,
+             *
+             *     // 如果发现压缩后文件大小比原来还大,则使用原来图片
+             *     // 此属性可能会影响图片自动纠正功能
+             *     noCompressIfLarger: false,
+             *
+             *     // 单位字节,如果图片大小小于此值,不会采用压缩。
+             *     compressSize: 0
+             * }
+             * ```
+             */
+            compress: {
+                width: 1600,
+                height: 1600,
+                quality: 90,
+                allowMagnify: false,
+                crop: false,
+                preserveHeaders: true
+            }
+        });
+
+        return Uploader.register({
+
+            name: 'image',
+
+
+            /**
+             * 生成缩略图,此过程为异步,所以需要传入`callback`。
+             * 通常情况在图片加入队里后调用此方法来生成预览图以增强交互效果。
+             *
+             * 当 width 或者 height 的值介于 0 - 1 时,被当成百分比使用。
+             *
+             * `callback`中可以接收到两个参数。
+             * * 第一个为error,如果生成缩略图有错误,此error将为真。
+             * * 第二个为ret, 缩略图的Data URL值。
+             *
+             * **注意**
+             * Date URL在IE6/7中不支持,所以不用调用此方法了,直接显示一张暂不支持预览图片好了。
+             * 也可以借助服务端,将 base64 数据传给服务端,生成一个临时文件供预览。
+             *
+             * @method makeThumb
+             * @grammar makeThumb( file, callback ) => undefined
+             * @grammar makeThumb( file, callback, width, height ) => undefined
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.makeThumb( file, function( error, ret ) {
+             *         if ( error ) {
+             *             $li.text('预览错误');
+             *         } else {
+             *             $li.append('<img alt="" src="' + ret + '" />');
+             *         }
+             *     });
+             *
+             * });
+             */
+            makeThumb: function( file, cb, width, height ) {
+                var opts, image;
+
+                file = this.request( 'get-file', file );
+
+                // 只预览图片格式。
+                if ( !file.type.match( /^image/ ) ) {
+                    cb( true );
+                    return;
+                }
+
+                opts = $.extend({}, this.options.thumb );
+
+                // 如果传入的是object.
+                if ( $.isPlainObject( width ) ) {
+                    opts = $.extend( opts, width );
+                    width = null;
+                }
+
+                width = width || opts.width;
+                height = height || opts.height;
+
+                image = new Image( opts );
+
+                image.once( 'load', function() {
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                // 当 resize 完后
+                image.once( 'complete', function() {
+                    cb( false, image.getAsDataUrl( opts.type ) );
+                    image.destroy();
+                });
+
+                image.once( 'error', function( reason ) {
+                    cb( reason || true );
+                    image.destroy();
+                });
+
+                throttle( image, file.source.size, function() {
+                    file._info && image.info( file._info );
+                    file._meta && image.meta( file._meta );
+                    image.loadFromBlob( file.source );
+                });
+            },
+
+            beforeSendFile: function( file ) {
+                var opts = this.options.compress || this.options.resize,
+                    compressSize = opts && opts.compressSize || 0,
+                    noCompressIfLarger = opts && opts.noCompressIfLarger || false,
+                    image, deferred;
+
+                file = this.request( 'get-file', file );
+
+                // 只压缩 jpeg 图片格式。
+                // gif 可能会丢失针
+                // bmp png 基本上尺寸都不大,且压缩比比较小。
+                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
+                        file.size < compressSize ||
+                        file._compressed ) {
+                    return;
+                }
+
+                opts = $.extend({}, opts );
+                deferred = Base.Deferred();
+
+                image = new Image( opts );
+
+                deferred.always(function() {
+                    image.destroy();
+                    image = null;
+                });
+                image.once( 'error', deferred.reject );
+                image.once( 'load', function() {
+                    var width = opts.width,
+                        height = opts.height;
+
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                image.once( 'complete', function() {
+                    var blob, size;
+
+                    // 移动端 UC / qq 浏览器的无图模式下
+                    // ctx.getImageData 处理大图的时候会报 Exception
+                    // INDEX_SIZE_ERR: DOM Exception 1
+                    try {
+                        blob = image.getAsBlob( opts.type );
+
+                        size = file.size;
+
+                        // 如果压缩后,比原来还大则不用压缩后的。
+                        if ( !noCompressIfLarger || blob.size < size ) {
+                            // file.source.destroy && file.source.destroy();
+                            file.source = blob;
+                            file.size = blob.size;
+
+                            file.trigger( 'resize', blob.size, size );
+                        }
+
+                        // 标记,避免重复压缩。
+                        file._compressed = true;
+                        deferred.resolve();
+                    } catch ( e ) {
+                        // 出错了直接继续,让其上传原始图片
+                        deferred.resolve();
+                    }
+                });
+
+                file._info && image.info( file._info );
+                file._meta && image.meta( file._meta );
+
+                image.loadFromBlob( file.source );
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Md5
+     */
+    define('lib/md5',[
+        'runtime/client',
+        'mediator'
+    ], function( RuntimeClient, Mediator ) {
+
+        function Md5() {
+            RuntimeClient.call( this, 'Md5' );
+        }
+
+        // 让 Md5 具备事件功能。
+        Mediator.installTo( Md5.prototype );
+
+        Md5.prototype.loadFromBlob = function( blob ) {
+            var me = this;
+
+            if ( me.getRuid() ) {
+                me.disconnectRuntime();
+            }
+
+            // 连接到blob归属的同一个runtime.
+            me.connectRuntime( blob.ruid, function() {
+                me.exec('init');
+                me.exec( 'loadFromBlob', blob );
+            });
+        };
+
+        Md5.prototype.getResult = function() {
+            return this.exec('getResult');
+        };
+
+        return Md5;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/md5',[
+        'base',
+        'uploader',
+        'lib/md5',
+        'lib/blob',
+        'widgets/widget'
+    ], function( Base, Uploader, Md5, Blob ) {
+
+        return Uploader.register({
+            name: 'md5',
+
+
+            /**
+             * 计算文件 md5 值,返回一个 promise 对象,可以监听 progress 进度。
+             *
+             *
+             * @method md5File
+             * @grammar md5File( file[, start[, end]] ) => promise
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.md5File( file )
+             *
+             *         // 及时显示进度
+             *         .progress(function(percentage) {
+             *             console.log('Percentage:', percentage);
+             *         })
+             *
+             *         // 完成
+             *         .then(function(val) {
+             *             console.log('md5 result:', val);
+             *         });
+             *
+             * });
+             */
+            md5File: function( file, start, end ) {
+                var md5 = new Md5(),
+                    deferred = Base.Deferred(),
+                    blob = (file instanceof Blob) ? file :
+                        this.request( 'get-file', file ).source;
+
+                md5.on( 'progress load', function( e ) {
+                    e = e || {};
+                    deferred.notify( e.total ? e.loaded / e.total : 1 );
+                });
+
+                md5.on( 'complete', function() {
+                    deferred.resolve( md5.getResult() );
+                });
+
+                md5.on( 'error', function( reason ) {
+                    deferred.reject( reason );
+                });
+
+                if ( arguments.length > 1 ) {
+                    start = start || 0;
+                    end = end || 0;
+                    start < 0 && (start = blob.size + start);
+                    end < 0 && (end = blob.size + end);
+                    end = Math.min( end, blob.size );
+                    blob = blob.slice( start, end );
+                }
+
+                md5.loadFromBlob( blob );
+
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/dnd',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        var $ = Base.$,
+            prefix = 'webuploader-dnd-';
+
+        return Html5Runtime.register( 'DragAndDrop', {
+            init: function() {
+                var elem = this.elem = this.options.container;
+
+                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
+                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
+                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
+                this.dropHandler = Base.bindFn( this._dropHandler, this );
+                this.dndOver = false;
+
+                elem.on( 'dragenter', this.dragEnterHandler );
+                elem.on( 'dragover', this.dragOverHandler );
+                elem.on( 'dragleave', this.dragLeaveHandler );
+                elem.on( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).on( 'dragover', this.dragOverHandler );
+                    $( document ).on( 'drop', this.dropHandler );
+                }
+            },
+
+            _dragEnterHandler: function( e ) {
+                var me = this,
+                    denied = me._denied || false,
+                    items;
+
+                e = e.originalEvent || e;
+
+                if ( !me.dndOver ) {
+                    me.dndOver = true;
+
+                    // 注意只有 chrome 支持。
+                    items = e.dataTransfer.items;
+
+                    if ( items && items.length ) {
+                        me._denied = denied = !me.trigger( 'accept', items );
+                    }
+
+                    me.elem.addClass( prefix + 'over' );
+                    me.elem[ denied ? 'addClass' :
+                            'removeClass' ]( prefix + 'denied' );
+                }
+
+                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
+
+                return false;
+            },
+
+            _dragOverHandler: function( e ) {
+                // 只处理框内的。
+                var parentElem = this.elem.parent().get( 0 );
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                clearTimeout( this._leaveTimer );
+                this._dragEnterHandler.call( this, e );
+
+                return false;
+            },
+
+            _dragLeaveHandler: function() {
+                var me = this,
+                    handler;
+
+                handler = function() {
+                    me.dndOver = false;
+                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
+                };
+
+                clearTimeout( me._leaveTimer );
+                me._leaveTimer = setTimeout( handler, 100 );
+                return false;
+            },
+
+            _dropHandler: function( e ) {
+                var me = this,
+                    ruid = me.getRuid(),
+                    parentElem = me.elem.parent().get( 0 ),
+                    dataTransfer, data;
+
+                // 只处理框内的。
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                e = e.originalEvent || e;
+                dataTransfer = e.dataTransfer;
+
+                // 如果是页面内拖拽,还不能处理,不阻止事件。
+                // 此处 ie11 下会报参数错误,
+                try {
+                    data = dataTransfer.getData('text/html');
+                } catch( err ) {
+                }
+
+                if ( data ) {
+                    return;
+                }
+
+                me._getTansferFiles( dataTransfer, function( results ) {
+                    me.trigger( 'drop', $.map( results, function( file ) {
+                        return new File( ruid, file );
+                    }) );
+                });
+
+                me.dndOver = false;
+                me.elem.removeClass( prefix + 'over' );
+                return false;
+            },
+
+            // 如果传入 callback 则去查看文件夹,否则只管当前文件夹。
+            _getTansferFiles: function( dataTransfer, callback ) {
+                var results  = [],
+                    promises = [],
+                    items, files, file, item, i, len, canAccessFolder;
+
+                items = dataTransfer.items;
+                files = dataTransfer.files;
+
+                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
+
+                for ( i = 0, len = files.length; i < len; i++ ) {
+                    file = files[ i ];
+                    item = items && items[ i ];
+
+                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
+
+                        promises.push( this._traverseDirectoryTree(
+                                item.webkitGetAsEntry(), results ) );
+                    } else {
+                        results.push( file );
+                    }
+                }
+
+                Base.when.apply( Base, promises ).done(function() {
+
+                    if ( !results.length ) {
+                        return;
+                    }
+
+                    callback( results );
+                });
+            },
+
+            _traverseDirectoryTree: function( entry, results ) {
+                var deferred = Base.Deferred(),
+                    me = this;
+
+                if ( entry.isFile ) {
+                    entry.file(function( file ) {
+                        results.push( file );
+                        deferred.resolve();
+                    });
+                } else if ( entry.isDirectory ) {
+                    entry.createReader().readEntries(function( entries ) {
+                        var len = entries.length,
+                            promises = [],
+                            arr = [],    // 为了保证顺序。
+                            i;
+
+                        for ( i = 0; i < len; i++ ) {
+                            promises.push( me._traverseDirectoryTree(
+                                    entries[ i ], arr ) );
+                        }
+
+                        Base.when.apply( Base, promises ).then(function() {
+                            results.push.apply( results, arr );
+                            deferred.resolve();
+                        }, deferred.reject );
+                    });
+                }
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                var elem = this.elem;
+
+                // 还没 init 就调用 destroy
+                if (!elem) {
+                    return;
+                }
+
+                elem.off( 'dragenter', this.dragEnterHandler );
+                elem.off( 'dragover', this.dragOverHandler );
+                elem.off( 'dragleave', this.dragLeaveHandler );
+                elem.off( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).off( 'dragover', this.dragOverHandler );
+                    $( document ).off( 'drop', this.dropHandler );
+                }
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/filepaste',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        return Html5Runtime.register( 'FilePaste', {
+            init: function() {
+                var opts = this.options,
+                    elem = this.elem = opts.container,
+                    accept = '.*',
+                    arr, i, len, item;
+
+                // accetp的mimeTypes中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].mimeTypes;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = arr.join(',');
+                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
+                    }
+                }
+                this.accept = accept = new RegExp( accept, 'i' );
+                this.hander = Base.bindFn( this._pasteHander, this );
+                elem.on( 'paste', this.hander );
+            },
+
+            _pasteHander: function( e ) {
+                var allowed = [],
+                    ruid = this.getRuid(),
+                    items, item, blob, i, len;
+
+                e = e.originalEvent || e;
+                items = e.clipboardData.items;
+
+                for ( i = 0, len = items.length; i < len; i++ ) {
+                    item = items[ i ];
+
+                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
+                        continue;
+                    }
+
+                    allowed.push( new File( ruid, blob ) );
+                }
+
+                if ( allowed.length ) {
+                    // 不阻止非文件粘贴(文字粘贴)的事件冒泡
+                    e.preventDefault();
+                    e.stopPropagation();
+                    this.trigger( 'paste', allowed );
+                }
+            },
+
+            destroy: function() {
+                this.elem.off( 'paste', this.hander );
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/util',[
+        'base'
+    ], function( Base ) {
+
+        var urlAPI = window.createObjectURL && window ||
+                window.URL && URL.revokeObjectURL && URL ||
+                window.webkitURL,
+            createObjectURL = Base.noop,
+            revokeObjectURL = createObjectURL;
+
+        if ( urlAPI ) {
+
+            // 更安全的方式调用,比如android里面就能把context改成其他的对象。
+            createObjectURL = function() {
+                return urlAPI.createObjectURL.apply( urlAPI, arguments );
+            };
+
+            revokeObjectURL = function() {
+                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
+            };
+        }
+
+        return {
+            createObjectURL: createObjectURL,
+            revokeObjectURL: revokeObjectURL,
+
+            dataURL2Blob: function( dataURI ) {
+                var byteStr, intArray, ab, i, mimetype, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                ab = new ArrayBuffer( byteStr.length );
+                intArray = new Uint8Array( ab );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
+
+                return this.arrayBufferToBlob( ab, mimetype );
+            },
+
+            dataURL2ArrayBuffer: function( dataURI ) {
+                var byteStr, intArray, i, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                intArray = new Uint8Array( byteStr.length );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                return intArray.buffer;
+            },
+
+            arrayBufferToBlob: function( buffer, type ) {
+                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
+                    bb;
+
+                // android不支持直接new Blob, 只能借助blobbuilder.
+                if ( builder ) {
+                    bb = new builder();
+                    bb.append( buffer );
+                    return bb.getBlob( type );
+                }
+
+                return new Blob([ buffer ], type ? { type: type } : {} );
+            },
+
+            // 抽出来主要是为了解决android下面canvas.toDataUrl不支持jpeg.
+            // 你得到的结果是png.
+            canvasToDataUrl: function( canvas, type, quality ) {
+                return canvas.toDataURL( type, quality / 100 );
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            parseMeta: function( blob, callback ) {
+                callback( false, {});
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            updateImageHead: function( data ) {
+                return data;
+            }
+        };
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/imagemeta',[
+        'runtime/html5/util'
+    ], function( Util ) {
+
+        var api;
+
+        api = {
+            parsers: {
+                0xffe1: []
+            },
+
+            maxMetaDataSize: 262144,
+
+            parse: function( blob, cb ) {
+                var me = this,
+                    fr = new FileReader();
+
+                fr.onload = function() {
+                    cb( false, me._parse( this.result ) );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                fr.onerror = function( e ) {
+                    cb( e.message );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                blob = blob.slice( 0, me.maxMetaDataSize );
+                fr.readAsArrayBuffer( blob.getSource() );
+            },
+
+            _parse: function( buffer, noParse ) {
+                if ( buffer.byteLength < 6 ) {
+                    return;
+                }
+
+                var dataview = new DataView( buffer ),
+                    offset = 2,
+                    maxOffset = dataview.byteLength - 4,
+                    headLength = offset,
+                    ret = {},
+                    markerBytes, markerLength, parsers, i;
+
+                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
+
+                    while ( offset < maxOffset ) {
+                        markerBytes = dataview.getUint16( offset );
+
+                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
+                                markerBytes === 0xfffe ) {
+
+                            markerLength = dataview.getUint16( offset + 2 ) + 2;
+
+                            if ( offset + markerLength > dataview.byteLength ) {
+                                break;
+                            }
+
+                            parsers = api.parsers[ markerBytes ];
+
+                            if ( !noParse && parsers ) {
+                                for ( i = 0; i < parsers.length; i += 1 ) {
+                                    parsers[ i ].call( api, dataview, offset,
+                                            markerLength, ret );
+                                }
+                            }
+
+                            offset += markerLength;
+                            headLength = offset;
+                        } else {
+                            break;
+                        }
+                    }
+
+                    if ( headLength > 6 ) {
+                        if ( buffer.slice ) {
+                            ret.imageHead = buffer.slice( 2, headLength );
+                        } else {
+                            // Workaround for IE10, which does not yet
+                            // support ArrayBuffer.slice:
+                            ret.imageHead = new Uint8Array( buffer )
+                                    .subarray( 2, headLength );
+                        }
+                    }
+                }
+
+                return ret;
+            },
+
+            updateImageHead: function( buffer, head ) {
+                var data = this._parse( buffer, true ),
+                    buf1, buf2, bodyoffset;
+
+
+                bodyoffset = 2;
+                if ( data.imageHead ) {
+                    bodyoffset = 2 + data.imageHead.byteLength;
+                }
+
+                if ( buffer.slice ) {
+                    buf2 = buffer.slice( bodyoffset );
+                } else {
+                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
+                }
+
+                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
+
+                buf1[ 0 ] = 0xFF;
+                buf1[ 1 ] = 0xD8;
+                buf1.set( new Uint8Array( head ), 2 );
+                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
+
+                return buf1.buffer;
+            }
+        };
+
+        Util.parseMeta = function() {
+            return api.parse.apply( api, arguments );
+        };
+
+        Util.updateImageHead = function() {
+            return api.updateImageHead.apply( api, arguments );
+        };
+
+        return api;
+    });
+    /**
+     * 代码来自于:https://github.com/blueimp/JavaScript-Load-Image
+     * 暂时项目中只用了orientation.
+     *
+     * 去除了 Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
+     * @fileOverview EXIF解析
+     */
+
+    // Sample
+    // ====================================
+    // Make : Apple
+    // Model : iPhone 4S
+    // Orientation : 1
+    // XResolution : 72 [72/1]
+    // YResolution : 72 [72/1]
+    // ResolutionUnit : 2
+    // Software : QuickTime 7.7.1
+    // DateTime : 2013:09:01 22:53:55
+    // ExifIFDPointer : 190
+    // ExposureTime : 0.058823529411764705 [1/17]
+    // FNumber : 2.4 [12/5]
+    // ExposureProgram : Normal program
+    // ISOSpeedRatings : 800
+    // ExifVersion : 0220
+    // DateTimeOriginal : 2013:09:01 22:52:51
+    // DateTimeDigitized : 2013:09:01 22:52:51
+    // ComponentsConfiguration : YCbCr
+    // ShutterSpeedValue : 4.058893515764426
+    // ApertureValue : 2.5260688216892597 [4845/1918]
+    // BrightnessValue : -0.3126686601998395
+    // MeteringMode : Pattern
+    // Flash : Flash did not fire, compulsory flash mode
+    // FocalLength : 4.28 [107/25]
+    // SubjectArea : [4 values]
+    // FlashpixVersion : 0100
+    // ColorSpace : 1
+    // PixelXDimension : 2448
+    // PixelYDimension : 3264
+    // SensingMethod : One-chip color area sensor
+    // ExposureMode : 0
+    // WhiteBalance : Auto white balance
+    // FocalLengthIn35mmFilm : 35
+    // SceneCaptureType : Standard
+    define('runtime/html5/imagemeta/exif',[
+        'base',
+        'runtime/html5/imagemeta'
+    ], function( Base, ImageMeta ) {
+
+        var EXIF = {};
+
+        EXIF.ExifMap = function() {
+            return this;
+        };
+
+        EXIF.ExifMap.prototype.map = {
+            'Orientation': 0x0112
+        };
+
+        EXIF.ExifMap.prototype.get = function( id ) {
+            return this[ id ] || this[ this.map[ id ] ];
+        };
+
+        EXIF.exifTagTypes = {
+            // byte, 8-bit unsigned int:
+            1: {
+                getValue: function( dataView, dataOffset ) {
+                    return dataView.getUint8( dataOffset );
+                },
+                size: 1
+            },
+
+            // ascii, 8-bit byte:
+            2: {
+                getValue: function( dataView, dataOffset ) {
+                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
+                },
+                size: 1,
+                ascii: true
+            },
+
+            // short, 16 bit int:
+            3: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint16( dataOffset, littleEndian );
+                },
+                size: 2
+            },
+
+            // long, 32 bit int:
+            4: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // rational = two long values,
+            // first is numerator, second is denominator:
+            5: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian ) /
+                        dataView.getUint32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            },
+
+            // slong, 32 bit signed int:
+            9: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // srational, two slongs, first is numerator, second is denominator:
+            10: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian ) /
+                        dataView.getInt32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            }
+        };
+
+        // undefined, 8-bit byte, value depending on field:
+        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
+
+        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
+                littleEndian ) {
+
+            var tagType = EXIF.exifTagTypes[ type ],
+                tagSize, dataOffset, values, i, str, c;
+
+            if ( !tagType ) {
+                Base.log('Invalid Exif data: Invalid tag type.');
+                return;
+            }
+
+            tagSize = tagType.size * length;
+
+            // Determine if the value is contained in the dataOffset bytes,
+            // or if the value at the dataOffset is a pointer to the actual data:
+            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
+                    littleEndian ) : (offset + 8);
+
+            if ( dataOffset + tagSize > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid data offset.');
+                return;
+            }
+
+            if ( length === 1 ) {
+                return tagType.getValue( dataView, dataOffset, littleEndian );
+            }
+
+            values = [];
+
+            for ( i = 0; i < length; i += 1 ) {
+                values[ i ] = tagType.getValue( dataView,
+                        dataOffset + i * tagType.size, littleEndian );
+            }
+
+            if ( tagType.ascii ) {
+                str = '';
+
+                // Concatenate the chars:
+                for ( i = 0; i < values.length; i += 1 ) {
+                    c = values[ i ];
+
+                    // Ignore the terminating NULL byte(s):
+                    if ( c === '\u0000' ) {
+                        break;
+                    }
+                    str += c;
+                }
+
+                return str;
+            }
+            return values;
+        };
+
+        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
+                data ) {
+
+            var tag = dataView.getUint16( offset, littleEndian );
+            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
+                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
+                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
+                    littleEndian );
+        };
+
+        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
+                littleEndian, data ) {
+
+            var tagsNumber, dirEndOffset, i;
+
+            if ( dirOffset + 6 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory offset.');
+                return;
+            }
+
+            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
+            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
+
+            if ( dirEndOffset + 4 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory size.');
+                return;
+            }
+
+            for ( i = 0; i < tagsNumber; i += 1 ) {
+                this.parseExifTag( dataView, tiffOffset,
+                        dirOffset + 2 + 12 * i,    // tag offset
+                        littleEndian, data );
+            }
+
+            // Return the offset to the next directory:
+            return dataView.getUint32( dirEndOffset, littleEndian );
+        };
+
+        // EXIF.getExifThumbnail = function(dataView, offset, length) {
+        //     var hexData,
+        //         i,
+        //         b;
+        //     if (!length || offset + length > dataView.byteLength) {
+        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
+        //         return;
+        //     }
+        //     hexData = [];
+        //     for (i = 0; i < length; i += 1) {
+        //         b = dataView.getUint8(offset + i);
+        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
+        //     }
+        //     return 'data:image/jpeg,%' + hexData.join('%');
+        // };
+
+        EXIF.parseExifData = function( dataView, offset, length, data ) {
+
+            var tiffOffset = offset + 10,
+                littleEndian, dirOffset;
+
+            // Check for the ASCII code for "Exif" (0x45786966):
+            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
+                // No Exif data, might be XMP data instead
+                return;
+            }
+            if ( tiffOffset + 8 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid segment size.');
+                return;
+            }
+
+            // Check for the two null bytes:
+            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
+                Base.log('Invalid Exif data: Missing byte alignment offset.');
+                return;
+            }
+
+            // Check the byte alignment:
+            switch ( dataView.getUint16( tiffOffset ) ) {
+                case 0x4949:
+                    littleEndian = true;
+                    break;
+
+                case 0x4D4D:
+                    littleEndian = false;
+                    break;
+
+                default:
+                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
+                    return;
+            }
+
+            // Check for the TIFF tag marker (0x002A):
+            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
+                Base.log('Invalid Exif data: Missing TIFF marker.');
+                return;
+            }
+
+            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
+            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
+            // Create the exif object to store the tags:
+            data.exif = new EXIF.ExifMap();
+            // Parse the tags of the main image directory and retrieve the
+            // offset to the next directory, usually the thumbnail directory:
+            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
+                    tiffOffset + dirOffset, littleEndian, data );
+
+            // 尝试读取缩略图
+            // if ( dirOffset ) {
+            //     thumbnailData = {exif: {}};
+            //     dirOffset = EXIF.parseExifTags(
+            //         dataView,
+            //         tiffOffset,
+            //         tiffOffset + dirOffset,
+            //         littleEndian,
+            //         thumbnailData
+            //     );
+
+            //     // Check for JPEG Thumbnail offset:
+            //     if (thumbnailData.exif[0x0201]) {
+            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
+            //             dataView,
+            //             tiffOffset + thumbnailData.exif[0x0201],
+            //             thumbnailData.exif[0x0202] // Thumbnail data length
+            //         );
+            //     }
+            // }
+        };
+
+        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
+        return EXIF;
+    });
+    /**
+     * 这个方式性能不行,但是可以解决android里面的toDataUrl的bug
+     * android里面toDataUrl('image/jpege')得到的结果却是png.
+     *
+     * 所以这里没辙,只能借助这个工具
+     * @fileOverview jpeg encoder
+     */
+    define('runtime/html5/jpegencoder',[], function( require, exports, module ) {
+
+        /*
+          Copyright (c) 2008, Adobe Systems Incorporated
+          All rights reserved.
+
+          Redistribution and use in source and binary forms, with or without
+          modification, are permitted provided that the following conditions are
+          met:
+
+          * Redistributions of source code must retain the above copyright notice,
+            this list of conditions and the following disclaimer.
+
+          * Redistributions in binary form must reproduce the above copyright
+            notice, this list of conditions and the following disclaimer in the
+            documentation and/or other materials provided with the distribution.
+
+          * Neither the name of Adobe Systems Incorporated nor the names of its
+            contributors may be used to endorse or promote products derived from
+            this software without specific prior written permission.
+
+          THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+          IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+          THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+          PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 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.
+        */
+        /*
+        JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
+
+        Basic GUI blocking jpeg encoder
+        */
+
+        function JPEGEncoder(quality) {
+          var self = this;
+            var fround = Math.round;
+            var ffloor = Math.floor;
+            var YTable = new Array(64);
+            var UVTable = new Array(64);
+            var fdtbl_Y = new Array(64);
+            var fdtbl_UV = new Array(64);
+            var YDC_HT;
+            var UVDC_HT;
+            var YAC_HT;
+            var UVAC_HT;
+
+            var bitcode = new Array(65535);
+            var category = new Array(65535);
+            var outputfDCTQuant = new Array(64);
+            var DU = new Array(64);
+            var byteout = [];
+            var bytenew = 0;
+            var bytepos = 7;
+
+            var YDU = new Array(64);
+            var UDU = new Array(64);
+            var VDU = new Array(64);
+            var clt = new Array(256);
+            var RGB_YUV_TABLE = new Array(2048);
+            var currentQuality;
+
+            var ZigZag = [
+                     0, 1, 5, 6,14,15,27,28,
+                     2, 4, 7,13,16,26,29,42,
+                     3, 8,12,17,25,30,41,43,
+                     9,11,18,24,31,40,44,53,
+                    10,19,23,32,39,45,52,54,
+                    20,22,33,38,46,51,55,60,
+                    21,34,37,47,50,56,59,61,
+                    35,36,48,49,57,58,62,63
+                ];
+
+            var std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
+            var std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
+            var std_ac_luminance_values = [
+                    0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
+                    0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
+                    0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
+                    0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
+                    0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
+                    0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
+                    0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
+                    0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+                    0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+                    0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+                    0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
+                    0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+                    0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+                    0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+                    0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
+                    0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
+                    0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
+                    0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
+                    0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
+                    0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            var std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
+            var std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
+            var std_ac_chrominance_values = [
+                    0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
+                    0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
+                    0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
+                    0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
+                    0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
+                    0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
+                    0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
+                    0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
+                    0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
+                    0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
+                    0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
+                    0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
+                    0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
+                    0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
+                    0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
+                    0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
+                    0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
+                    0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
+                    0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
+                    0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            function initQuantTables(sf){
+                    var YQT = [
+                        16, 11, 10, 16, 24, 40, 51, 61,
+                        12, 12, 14, 19, 26, 58, 60, 55,
+                        14, 13, 16, 24, 40, 57, 69, 56,
+                        14, 17, 22, 29, 51, 87, 80, 62,
+                        18, 22, 37, 56, 68,109,103, 77,
+                        24, 35, 55, 64, 81,104,113, 92,
+                        49, 64, 78, 87,103,121,120,101,
+                        72, 92, 95, 98,112,100,103, 99
+                    ];
+
+                    for (var i = 0; i < 64; i++) {
+                        var t = ffloor((YQT[i]*sf+50)/100);
+                        if (t < 1) {
+                            t = 1;
+                        } else if (t > 255) {
+                            t = 255;
+                        }
+                        YTable[ZigZag[i]] = t;
+                    }
+                    var UVQT = [
+                        17, 18, 24, 47, 99, 99, 99, 99,
+                        18, 21, 26, 66, 99, 99, 99, 99,
+                        24, 26, 56, 99, 99, 99, 99, 99,
+                        47, 66, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99
+                    ];
+                    for (var j = 0; j < 64; j++) {
+                        var u = ffloor((UVQT[j]*sf+50)/100);
+                        if (u < 1) {
+                            u = 1;
+                        } else if (u > 255) {
+                            u = 255;
+                        }
+                        UVTable[ZigZag[j]] = u;
+                    }
+                    var aasf = [
+                        1.0, 1.387039845, 1.306562965, 1.175875602,
+                        1.0, 0.785694958, 0.541196100, 0.275899379
+                    ];
+                    var k = 0;
+                    for (var row = 0; row < 8; row++)
+                    {
+                        for (var col = 0; col < 8; col++)
+                        {
+                            fdtbl_Y[k]  = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            fdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            k++;
+                        }
+                    }
+                }
+
+                function computeHuffmanTbl(nrcodes, std_table){
+                    var codevalue = 0;
+                    var pos_in_table = 0;
+                    var HT = new Array();
+                    for (var k = 1; k <= 16; k++) {
+                        for (var j = 1; j <= nrcodes[k]; j++) {
+                            HT[std_table[pos_in_table]] = [];
+                            HT[std_table[pos_in_table]][0] = codevalue;
+                            HT[std_table[pos_in_table]][1] = k;
+                            pos_in_table++;
+                            codevalue++;
+                        }
+                        codevalue*=2;
+                    }
+                    return HT;
+                }
+
+                function initHuffmanTbl()
+                {
+                    YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
+                    UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
+                    YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
+                    UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
+                }
+
+                function initCategoryNumber()
+                {
+                    var nrlower = 1;
+                    var nrupper = 2;
+                    for (var cat = 1; cat <= 15; cat++) {
+                        //Positive numbers
+                        for (var nr = nrlower; nr<nrupper; nr++) {
+                            category[32767+nr] = cat;
+                            bitcode[32767+nr] = [];
+                            bitcode[32767+nr][1] = cat;
+                            bitcode[32767+nr][0] = nr;
+                        }
+                        //Negative numbers
+                        for (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {
+                            category[32767+nrneg] = cat;
+                            bitcode[32767+nrneg] = [];
+                            bitcode[32767+nrneg][1] = cat;
+                            bitcode[32767+nrneg][0] = nrupper-1+nrneg;
+                        }
+                        nrlower <<= 1;
+                        nrupper <<= 1;
+                    }
+                }
+
+                function initRGBYUVTable() {
+                    for(var i = 0; i < 256;i++) {
+                        RGB_YUV_TABLE[i]            =  19595 * i;
+                        RGB_YUV_TABLE[(i+ 256)>>0]  =  38470 * i;
+                        RGB_YUV_TABLE[(i+ 512)>>0]  =   7471 * i + 0x8000;
+                        RGB_YUV_TABLE[(i+ 768)>>0]  = -11059 * i;
+                        RGB_YUV_TABLE[(i+1024)>>0]  = -21709 * i;
+                        RGB_YUV_TABLE[(i+1280)>>0]  =  32768 * i + 0x807FFF;
+                        RGB_YUV_TABLE[(i+1536)>>0]  = -27439 * i;
+                        RGB_YUV_TABLE[(i+1792)>>0]  = - 5329 * i;
+                    }
+                }
+
+                // IO functions
+                function writeBits(bs)
+                {
+                    var value = bs[0];
+                    var posval = bs[1]-1;
+                    while ( posval >= 0 ) {
+                        if (value & (1 << posval) ) {
+                            bytenew |= (1 << bytepos);
+                        }
+                        posval--;
+                        bytepos--;
+                        if (bytepos < 0) {
+                            if (bytenew == 0xFF) {
+                                writeByte(0xFF);
+                                writeByte(0);
+                            }
+                            else {
+                                writeByte(bytenew);
+                            }
+                            bytepos=7;
+                            bytenew=0;
+                        }
+                    }
+                }
+
+                function writeByte(value)
+                {
+                    byteout.push(clt[value]); // write char directly instead of converting later
+                }
+
+                function writeWord(value)
+                {
+                    writeByte((value>>8)&0xFF);
+                    writeByte((value   )&0xFF);
+                }
+
+                // DCT & quantization core
+                function fDCTQuant(data, fdtbl)
+                {
+                    var d0, d1, d2, d3, d4, d5, d6, d7;
+                    /* Pass 1: process rows. */
+                    var dataOff=0;
+                    var i;
+                    var I8 = 8;
+                    var I64 = 64;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff+1];
+                        d2 = data[dataOff+2];
+                        d3 = data[dataOff+3];
+                        d4 = data[dataOff+4];
+                        d5 = data[dataOff+5];
+                        d6 = data[dataOff+6];
+                        d7 = data[dataOff+7];
+
+                        var tmp0 = d0 + d7;
+                        var tmp7 = d0 - d7;
+                        var tmp1 = d1 + d6;
+                        var tmp6 = d1 - d6;
+                        var tmp2 = d2 + d5;
+                        var tmp5 = d2 - d5;
+                        var tmp3 = d3 + d4;
+                        var tmp4 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10 = tmp0 + tmp3;    /* phase 2 */
+                        var tmp13 = tmp0 - tmp3;
+                        var tmp11 = tmp1 + tmp2;
+                        var tmp12 = tmp1 - tmp2;
+
+                        data[dataOff] = tmp10 + tmp11; /* phase 3 */
+                        data[dataOff+4] = tmp10 - tmp11;
+
+                        var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
+                        data[dataOff+2] = tmp13 + z1; /* phase 5 */
+                        data[dataOff+6] = tmp13 - z1;
+
+                        /* Odd part */
+                        tmp10 = tmp4 + tmp5; /* phase 2 */
+                        tmp11 = tmp5 + tmp6;
+                        tmp12 = tmp6 + tmp7;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
+                        var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
+                        var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
+                        var z3 = tmp11 * 0.707106781; /* c4 */
+
+                        var z11 = tmp7 + z3;    /* phase 5 */
+                        var z13 = tmp7 - z3;
+
+                        data[dataOff+5] = z13 + z2; /* phase 6 */
+                        data[dataOff+3] = z13 - z2;
+                        data[dataOff+1] = z11 + z4;
+                        data[dataOff+7] = z11 - z4;
+
+                        dataOff += 8; /* advance pointer to next row */
+                    }
+
+                    /* Pass 2: process columns. */
+                    dataOff = 0;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff + 8];
+                        d2 = data[dataOff + 16];
+                        d3 = data[dataOff + 24];
+                        d4 = data[dataOff + 32];
+                        d5 = data[dataOff + 40];
+                        d6 = data[dataOff + 48];
+                        d7 = data[dataOff + 56];
+
+                        var tmp0p2 = d0 + d7;
+                        var tmp7p2 = d0 - d7;
+                        var tmp1p2 = d1 + d6;
+                        var tmp6p2 = d1 - d6;
+                        var tmp2p2 = d2 + d5;
+                        var tmp5p2 = d2 - d5;
+                        var tmp3p2 = d3 + d4;
+                        var tmp4p2 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10p2 = tmp0p2 + tmp3p2;  /* phase 2 */
+                        var tmp13p2 = tmp0p2 - tmp3p2;
+                        var tmp11p2 = tmp1p2 + tmp2p2;
+                        var tmp12p2 = tmp1p2 - tmp2p2;
+
+                        data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */
+                        data[dataOff+32] = tmp10p2 - tmp11p2;
+
+                        var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
+                        data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
+                        data[dataOff+48] = tmp13p2 - z1p2;
+
+                        /* Odd part */
+                        tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
+                        tmp11p2 = tmp5p2 + tmp6p2;
+                        tmp12p2 = tmp6p2 + tmp7p2;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
+                        var z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
+                        var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
+                        var z3p2 = tmp11p2 * 0.707106781; /* c4 */
+
+                        var z11p2 = tmp7p2 + z3p2;  /* phase 5 */
+                        var z13p2 = tmp7p2 - z3p2;
+
+                        data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
+                        data[dataOff+24] = z13p2 - z2p2;
+                        data[dataOff+ 8] = z11p2 + z4p2;
+                        data[dataOff+56] = z11p2 - z4p2;
+
+                        dataOff++; /* advance pointer to next column */
+                    }
+
+                    // Quantize/descale the coefficients
+                    var fDCTQuant;
+                    for (i=0; i<I64; ++i)
+                    {
+                        // Apply the quantization and scaling factor & Round to nearest integer
+                        fDCTQuant = data[i]*fdtbl[i];
+                        outputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);
+                        //outputfDCTQuant[i] = fround(fDCTQuant);
+
+                    }
+                    return outputfDCTQuant;
+                }
+
+                function writeAPP0()
+                {
+                    writeWord(0xFFE0); // marker
+                    writeWord(16); // length
+                    writeByte(0x4A); // J
+                    writeByte(0x46); // F
+                    writeByte(0x49); // I
+                    writeByte(0x46); // F
+                    writeByte(0); // = "JFIF",'\0'
+                    writeByte(1); // versionhi
+                    writeByte(1); // versionlo
+                    writeByte(0); // xyunits
+                    writeWord(1); // xdensity
+                    writeWord(1); // ydensity
+                    writeByte(0); // thumbnwidth
+                    writeByte(0); // thumbnheight
+                }
+
+                function writeSOF0(width, height)
+                {
+                    writeWord(0xFFC0); // marker
+                    writeWord(17);   // length, truecolor YUV JPG
+                    writeByte(8);    // precision
+                    writeWord(height);
+                    writeWord(width);
+                    writeByte(3);    // nrofcomponents
+                    writeByte(1);    // IdY
+                    writeByte(0x11); // HVY
+                    writeByte(0);    // QTY
+                    writeByte(2);    // IdU
+                    writeByte(0x11); // HVU
+                    writeByte(1);    // QTU
+                    writeByte(3);    // IdV
+                    writeByte(0x11); // HVV
+                    writeByte(1);    // QTV
+                }
+
+                function writeDQT()
+                {
+                    writeWord(0xFFDB); // marker
+                    writeWord(132);    // length
+                    writeByte(0);
+                    for (var i=0; i<64; i++) {
+                        writeByte(YTable[i]);
+                    }
+                    writeByte(1);
+                    for (var j=0; j<64; j++) {
+                        writeByte(UVTable[j]);
+                    }
+                }
+
+                function writeDHT()
+                {
+                    writeWord(0xFFC4); // marker
+                    writeWord(0x01A2); // length
+
+                    writeByte(0); // HTYDCinfo
+                    for (var i=0; i<16; i++) {
+                        writeByte(std_dc_luminance_nrcodes[i+1]);
+                    }
+                    for (var j=0; j<=11; j++) {
+                        writeByte(std_dc_luminance_values[j]);
+                    }
+
+                    writeByte(0x10); // HTYACinfo
+                    for (var k=0; k<16; k++) {
+                        writeByte(std_ac_luminance_nrcodes[k+1]);
+                    }
+                    for (var l=0; l<=161; l++) {
+                        writeByte(std_ac_luminance_values[l]);
+                    }
+
+                    writeByte(1); // HTUDCinfo
+                    for (var m=0; m<16; m++) {
+                        writeByte(std_dc_chrominance_nrcodes[m+1]);
+                    }
+                    for (var n=0; n<=11; n++) {
+                        writeByte(std_dc_chrominance_values[n]);
+                    }
+
+                    writeByte(0x11); // HTUACinfo
+                    for (var o=0; o<16; o++) {
+                        writeByte(std_ac_chrominance_nrcodes[o+1]);
+                    }
+                    for (var p=0; p<=161; p++) {
+                        writeByte(std_ac_chrominance_values[p]);
+                    }
+                }
+
+                function writeSOS()
+                {
+                    writeWord(0xFFDA); // marker
+                    writeWord(12); // length
+                    writeByte(3); // nrofcomponents
+                    writeByte(1); // IdY
+                    writeByte(0); // HTY
+                    writeByte(2); // IdU
+                    writeByte(0x11); // HTU
+                    writeByte(3); // IdV
+                    writeByte(0x11); // HTV
+                    writeByte(0); // Ss
+                    writeByte(0x3f); // Se
+                    writeByte(0); // Bf
+                }
+
+                function processDU(CDU, fdtbl, DC, HTDC, HTAC){
+                    var EOB = HTAC[0x00];
+                    var M16zeroes = HTAC[0xF0];
+                    var pos;
+                    var I16 = 16;
+                    var I63 = 63;
+                    var I64 = 64;
+                    var DU_DCT = fDCTQuant(CDU, fdtbl);
+                    //ZigZag reorder
+                    for (var j=0;j<I64;++j) {
+                        DU[ZigZag[j]]=DU_DCT[j];
+                    }
+                    var Diff = DU[0] - DC; DC = DU[0];
+                    //Encode DC
+                    if (Diff==0) {
+                        writeBits(HTDC[0]); // Diff might be 0
+                    } else {
+                        pos = 32767+Diff;
+                        writeBits(HTDC[category[pos]]);
+                        writeBits(bitcode[pos]);
+                    }
+                    //Encode ACs
+                    var end0pos = 63; // was const... which is crazy
+                    for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};
+                    //end0pos = first element in reverse order !=0
+                    if ( end0pos == 0) {
+                        writeBits(EOB);
+                        return DC;
+                    }
+                    var i = 1;
+                    var lng;
+                    while ( i <= end0pos ) {
+                        var startpos = i;
+                        for (; (DU[i]==0) && (i<=end0pos); ++i) {}
+                        var nrzeroes = i-startpos;
+                        if ( nrzeroes >= I16 ) {
+                            lng = nrzeroes>>4;
+                            for (var nrmarker=1; nrmarker <= lng; ++nrmarker)
+                                writeBits(M16zeroes);
+                            nrzeroes = nrzeroes&0xF;
+                        }
+                        pos = 32767+DU[i];
+                        writeBits(HTAC[(nrzeroes<<4)+category[pos]]);
+                        writeBits(bitcode[pos]);
+                        i++;
+                    }
+                    if ( end0pos != I63 ) {
+                        writeBits(EOB);
+                    }
+                    return DC;
+                }
+
+                function initCharLookupTable(){
+                    var sfcc = String.fromCharCode;
+                    for(var i=0; i < 256; i++){ ///// ACHTUNG // 255
+                        clt[i] = sfcc(i);
+                    }
+                }
+
+                this.encode = function(image,quality) // image data object
+                {
+                    // var time_start = new Date().getTime();
+
+                    if(quality) setQuality(quality);
+
+                    // Initialize bit writer
+                    byteout = new Array();
+                    bytenew=0;
+                    bytepos=7;
+
+                    // Add JPEG headers
+                    writeWord(0xFFD8); // SOI
+                    writeAPP0();
+                    writeDQT();
+                    writeSOF0(image.width,image.height);
+                    writeDHT();
+                    writeSOS();
+
+
+                    // Encode 8x8 macroblocks
+                    var DCY=0;
+                    var DCU=0;
+                    var DCV=0;
+
+                    bytenew=0;
+                    bytepos=7;
+
+
+                    this.encode.displayName = "_encode_";
+
+                    var imageData = image.data;
+                    var width = image.width;
+                    var height = image.height;
+
+                    var quadWidth = width*4;
+                    var tripleWidth = width*3;
+
+                    var x, y = 0;
+                    var r, g, b;
+                    var start,p, col,row,pos;
+                    while(y < height){
+                        x = 0;
+                        while(x < quadWidth){
+                        start = quadWidth * y + x;
+                        p = start;
+                        col = -1;
+                        row = 0;
+
+                        for(pos=0; pos < 64; pos++){
+                            row = pos >> 3;// /8
+                            col = ( pos & 7 ) * 4; // %8
+                            p = start + ( row * quadWidth ) + col;
+
+                            if(y+row >= height){ // padding bottom
+                                p-= (quadWidth*(y+1+row-height));
+                            }
+
+                            if(x+col >= quadWidth){ // padding right
+                                p-= ((x+col) - quadWidth +4)
+                            }
+
+                            r = imageData[ p++ ];
+                            g = imageData[ p++ ];
+                            b = imageData[ p++ ];
+
+
+                            /* // calculate YUV values dynamically
+                            YDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80
+                            UDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));
+                            VDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));
+                            */
+
+                            // use lookup table (slightly faster)
+                            YDU[pos] = ((RGB_YUV_TABLE[r]             + RGB_YUV_TABLE[(g +  256)>>0] + RGB_YUV_TABLE[(b +  512)>>0]) >> 16)-128;
+                            UDU[pos] = ((RGB_YUV_TABLE[(r +  768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;
+                            VDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;
+
+                        }
+
+                        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
+                        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
+                        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
+                        x+=32;
+                        }
+                        y+=8;
+                    }
+
+
+                    ////////////////////////////////////////////////////////////////
+
+                    // Do the bit alignment of the EOI marker
+                    if ( bytepos >= 0 ) {
+                        var fillbits = [];
+                        fillbits[1] = bytepos+1;
+                        fillbits[0] = (1<<(bytepos+1))-1;
+                        writeBits(fillbits);
+                    }
+
+                    writeWord(0xFFD9); //EOI
+
+                    var jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));
+
+                    byteout = [];
+
+                    // benchmarking
+                    // var duration = new Date().getTime() - time_start;
+                    // console.log('Encoding time: '+ currentQuality + 'ms');
+                    //
+
+                    return jpegDataUri
+            }
+
+            function setQuality(quality){
+                if (quality <= 0) {
+                    quality = 1;
+                }
+                if (quality > 100) {
+                    quality = 100;
+                }
+
+                if(currentQuality == quality) return // don't recalc if unchanged
+
+                var sf = 0;
+                if (quality < 50) {
+                    sf = Math.floor(5000 / quality);
+                } else {
+                    sf = Math.floor(200 - quality*2);
+                }
+
+                initQuantTables(sf);
+                currentQuality = quality;
+                // console.log('Quality set to: '+quality +'%');
+            }
+
+            function init(){
+                // var time_start = new Date().getTime();
+                if(!quality) quality = 50;
+                // Create tables
+                initCharLookupTable()
+                initHuffmanTbl();
+                initCategoryNumber();
+                initRGBYUVTable();
+
+                setQuality(quality);
+                // var duration = new Date().getTime() - time_start;
+                // console.log('Initialization '+ duration + 'ms');
+            }
+
+            init();
+
+        };
+
+        JPEGEncoder.encode = function( data, quality ) {
+            var encoder = new JPEGEncoder( quality );
+
+            return encoder.encode( data );
+        }
+
+        return JPEGEncoder;
+    });
+    /**
+     * @fileOverview Fix android canvas.toDataUrl bug.
+     */
+    define('runtime/html5/androidpatch',[
+        'runtime/html5/util',
+        'runtime/html5/jpegencoder',
+        'base'
+    ], function( Util, encoder, Base ) {
+        var origin = Util.canvasToDataUrl,
+            supportJpeg;
+
+        Util.canvasToDataUrl = function( canvas, type, quality ) {
+            var ctx, w, h, fragement, parts;
+
+            // 非android手机直接跳过。
+            if ( !Base.os.android ) {
+                return origin.apply( null, arguments );
+            }
+
+            // 检测是否canvas支持jpeg导出,根据数据格式来判断。
+            // JPEG 前两位分别是:255, 216
+            if ( type === 'image/jpeg' && typeof supportJpeg === 'undefined' ) {
+                fragement = origin.apply( null, arguments );
+
+                parts = fragement.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    fragement = atob( parts[ 1 ] );
+                } else {
+                    fragement = decodeURIComponent( parts[ 1 ] );
+                }
+
+                fragement = fragement.substring( 0, 2 );
+
+                supportJpeg = fragement.charCodeAt( 0 ) === 255 &&
+                        fragement.charCodeAt( 1 ) === 216;
+            }
+
+            // 只有在android环境下才修复
+            if ( type === 'image/jpeg' && !supportJpeg ) {
+                w = canvas.width;
+                h = canvas.height;
+                ctx = canvas.getContext('2d');
+
+                return encoder.encode( ctx.getImageData( 0, 0, w, h ), quality );
+            }
+
+            return origin.apply( null, arguments );
+        };
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('runtime/html5/image',[
+        'base',
+        'runtime/html5/runtime',
+        'runtime/html5/util'
+    ], function( Base, Html5Runtime, Util ) {
+
+        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
+
+        return Html5Runtime.register( 'Image', {
+
+            // flag: 标记是否被修改过。
+            modified: false,
+
+            init: function() {
+                var me = this,
+                    img = new Image();
+
+                img.onload = function() {
+
+                    me._info = {
+                        type: me.type,
+                        width: this.width,
+                        height: this.height
+                    };
+
+                    // 读取meta信息。
+                    if ( !me._metas && 'image/jpeg' === me.type ) {
+                        Util.parseMeta( me._blob, function( error, ret ) {
+                            me._metas = ret;
+                            me.owner.trigger('load');
+                        });
+                    } else {
+                        me.owner.trigger('load');
+                    }
+                };
+
+                img.onerror = function() {
+                    me.owner.trigger('error');
+                };
+
+                me._img = img;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    img = me._img;
+
+                me._blob = blob;
+                me.type = blob.type;
+                img.src = Util.createObjectURL( blob.getSource() );
+                me.owner.once( 'load', function() {
+                    Util.revokeObjectURL( img.src );
+                });
+            },
+
+            resize: function( width, height ) {
+                var canvas = this._canvas ||
+                        (this._canvas = document.createElement('canvas'));
+
+                this._resize( this._img, canvas, width, height );
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'resize' );
+            },
+
+            crop: function( x, y, w, h, s ) {
+                var cvs = this._canvas ||
+                        (this._canvas = document.createElement('canvas')),
+                    opts = this.options,
+                    img = this._img,
+                    iw = img.naturalWidth,
+                    ih = img.naturalHeight,
+                    orientation = this.getOrientation();
+
+                s = s || 1;
+
+                // todo 解决 orientation 的问题。
+                // values that require 90 degree rotation
+                // if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                //     switch ( orientation ) {
+                //         case 6:
+                //             tmp = x;
+                //             x = y;
+                //             y = iw * s - tmp - w;
+                //             console.log(ih * s, tmp, w)
+                //             break;
+                //     }
+
+                //     (w ^= h, h ^= w, w ^= h);
+                // }
+
+                cvs.width = w;
+                cvs.height = h;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+                this._renderImageToCanvas( cvs, img, -x, -y, iw * s, ih * s );
+
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'crop' );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this._blob,
+                    opts = this.options,
+                    canvas;
+
+                type = type || this.type;
+
+                // blob需要重新生成。
+                if ( this.modified || this.type !== type ) {
+                    canvas = this._canvas;
+
+                    if ( type === 'image/jpeg' ) {
+
+                        blob = Util.canvasToDataUrl( canvas, type, opts.quality );
+
+                        if ( opts.preserveHeaders && this._metas &&
+                                this._metas.imageHead ) {
+
+                            blob = Util.dataURL2ArrayBuffer( blob );
+                            blob = Util.updateImageHead( blob,
+                                    this._metas.imageHead );
+                            blob = Util.arrayBufferToBlob( blob, type );
+                            return blob;
+                        }
+                    } else {
+                        blob = Util.canvasToDataUrl( canvas, type );
+                    }
+
+                    blob = Util.dataURL2Blob( blob );
+                }
+
+                return blob;
+            },
+
+            getAsDataUrl: function( type ) {
+                var opts = this.options;
+
+                type = type || this.type;
+
+                if ( type === 'image/jpeg' ) {
+                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
+                } else {
+                    return this._canvas.toDataURL( type );
+                }
+            },
+
+            getOrientation: function() {
+                return this._metas && this._metas.exif &&
+                        this._metas.exif.get('Orientation') || 1;
+            },
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            destroy: function() {
+                var canvas = this._canvas;
+                this._img.onload = null;
+
+                if ( canvas ) {
+                    canvas.getContext('2d')
+                            .clearRect( 0, 0, canvas.width, canvas.height );
+                    canvas.width = canvas.height = 0;
+                    this._canvas = null;
+                }
+
+                // 释放内存。非常重要,否则释放不了image的内存。
+                this._img.src = BLANK;
+                this._img = this._blob = null;
+            },
+
+            _resize: function( img, cvs, width, height ) {
+                var opts = this.options,
+                    naturalWidth = img.width,
+                    naturalHeight = img.height,
+                    orientation = this.getOrientation(),
+                    scale, w, h, x, y;
+
+                // values that require 90 degree rotation
+                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                    // 交换width, height的值。
+                    width ^= height;
+                    height ^= width;
+                    width ^= height;
+                }
+
+                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
+                        height / naturalHeight );
+
+                // 不允许放大。
+                opts.allowMagnify || (scale = Math.min( 1, scale ));
+
+                w = naturalWidth * scale;
+                h = naturalHeight * scale;
+
+                if ( opts.crop ) {
+                    cvs.width = width;
+                    cvs.height = height;
+                } else {
+                    cvs.width = w;
+                    cvs.height = h;
+                }
+
+                x = (cvs.width - w) / 2;
+                y = (cvs.height - h) / 2;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+
+                this._renderImageToCanvas( cvs, img, x, y, w, h );
+            },
+
+            _rotate2Orientaion: function( canvas, orientation ) {
+                var width = canvas.width,
+                    height = canvas.height,
+                    ctx = canvas.getContext('2d');
+
+                switch ( orientation ) {
+                    case 5:
+                    case 6:
+                    case 7:
+                    case 8:
+                        canvas.width = height;
+                        canvas.height = width;
+                        break;
+                }
+
+                switch ( orientation ) {
+                    case 2:    // horizontal flip
+                        ctx.translate( width, 0 );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 3:    // 180 rotate left
+                        ctx.translate( width, height );
+                        ctx.rotate( Math.PI );
+                        break;
+
+                    case 4:    // vertical flip
+                        ctx.translate( 0, height );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 5:    // vertical flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 6:    // 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( 0, -height );
+                        break;
+
+                    case 7:    // horizontal flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( width, -height );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 8:    // 90 rotate left
+                        ctx.rotate( -0.5 * Math.PI );
+                        ctx.translate( -width, 0 );
+                        break;
+                }
+            },
+
+            // https://github.com/stomita/ios-imagefile-megapixel/
+            // blob/master/src/megapix-image.js
+            _renderImageToCanvas: (function() {
+
+                // 如果不是ios, 不需要这么复杂!
+                if ( !Base.os.ios ) {
+                    return function( canvas ) {
+                        var args = Base.slice( arguments, 1 ),
+                            ctx = canvas.getContext('2d');
+
+                        ctx.drawImage.apply( ctx, args );
+                    };
+                }
+
+                /**
+                 * Detecting vertical squash in loaded image.
+                 * Fixes a bug which squash image vertically while drawing into
+                 * canvas for some images.
+                 */
+                function detectVerticalSquash( img, iw, ih ) {
+                    var canvas = document.createElement('canvas'),
+                        ctx = canvas.getContext('2d'),
+                        sy = 0,
+                        ey = ih,
+                        py = ih,
+                        data, alpha, ratio;
+
+
+                    canvas.width = 1;
+                    canvas.height = ih;
+                    ctx.drawImage( img, 0, 0 );
+                    data = ctx.getImageData( 0, 0, 1, ih ).data;
+
+                    // search image edge pixel position in case
+                    // it is squashed vertically.
+                    while ( py > sy ) {
+                        alpha = data[ (py - 1) * 4 + 3 ];
+
+                        if ( alpha === 0 ) {
+                            ey = py;
+                        } else {
+                            sy = py;
+                        }
+
+                        py = (ey + sy) >> 1;
+                    }
+
+                    ratio = (py / ih);
+                    return (ratio === 0) ? 1 : ratio;
+                }
+
+                // fix ie7 bug
+                // http://stackoverflow.com/questions/11929099/
+                // html5-canvas-drawimage-ratio-bug-ios
+                if ( Base.os.ios >= 7 ) {
+                    return function( canvas, img, x, y, w, h ) {
+                        var iw = img.naturalWidth,
+                            ih = img.naturalHeight,
+                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
+
+                        return canvas.getContext('2d').drawImage( img, 0, 0,
+                                iw * vertSquashRatio, ih * vertSquashRatio,
+                                x, y, w, h );
+                    };
+                }
+
+                /**
+                 * Detect subsampling in loaded image.
+                 * In iOS, larger images than 2M pixels may be
+                 * subsampled in rendering.
+                 */
+                function detectSubsampling( img ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        canvas, ctx;
+
+                    // subsampling may happen overmegapixel image
+                    if ( iw * ih > 1024 * 1024 ) {
+                        canvas = document.createElement('canvas');
+                        canvas.width = canvas.height = 1;
+                        ctx = canvas.getContext('2d');
+                        ctx.drawImage( img, -iw + 1, 0 );
+
+                        // subsampled image becomes half smaller in rendering size.
+                        // check alpha channel value to confirm image is covering
+                        // edge pixel or not. if alpha value is 0
+                        // image is not covering, hence subsampled.
+                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
+                    } else {
+                        return false;
+                    }
+                }
+
+
+                return function( canvas, img, x, y, width, height ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        ctx = canvas.getContext('2d'),
+                        subsampled = detectSubsampling( img ),
+                        doSquash = this.type === 'image/jpeg',
+                        d = 1024,
+                        sy = 0,
+                        dy = 0,
+                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
+
+                    if ( subsampled ) {
+                        iw /= 2;
+                        ih /= 2;
+                    }
+
+                    ctx.save();
+                    tmpCanvas = document.createElement('canvas');
+                    tmpCanvas.width = tmpCanvas.height = d;
+
+                    tmpCtx = tmpCanvas.getContext('2d');
+                    vertSquashRatio = doSquash ?
+                            detectVerticalSquash( img, iw, ih ) : 1;
+
+                    dw = Math.ceil( d * width / iw );
+                    dh = Math.ceil( d * height / ih / vertSquashRatio );
+
+                    while ( sy < ih ) {
+                        sx = 0;
+                        dx = 0;
+                        while ( sx < iw ) {
+                            tmpCtx.clearRect( 0, 0, d, d );
+                            tmpCtx.drawImage( img, -sx, -sy );
+                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
+                                    x + dx, y + dy, dw, dh );
+                            sx += d;
+                            dx += dw;
+                        }
+                        sy += d;
+                        dy += dh;
+                    }
+                    ctx.restore();
+                    tmpCanvas = tmpCtx = null;
+                };
+            })()
+        });
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/html5/md5',[
+        'runtime/html5/runtime'
+    ], function( FlashRuntime ) {
+
+        /*
+         * Fastest md5 implementation around (JKM md5)
+         * Credits: Joseph Myers
+         *
+         * @see http://www.myersdaily.org/joseph/javascript/md5-text.html
+         * @see http://jsperf.com/md5-shootout/7
+         */
+
+        /* this function is much faster,
+          so if possible we use it. Some IEs
+          are the only ones I know of that
+          need the idiotic second function,
+          generated by an if clause.  */
+        var add32 = function (a, b) {
+            return (a + b) & 0xFFFFFFFF;
+        },
+
+        cmn = function (q, a, b, x, s, t) {
+            a = add32(add32(a, q), add32(x, t));
+            return add32((a << s) | (a >>> (32 - s)), b);
+        },
+
+        ff = function (a, b, c, d, x, s, t) {
+            return cmn((b & c) | ((~b) & d), a, b, x, s, t);
+        },
+
+        gg = function (a, b, c, d, x, s, t) {
+            return cmn((b & d) | (c & (~d)), a, b, x, s, t);
+        },
+
+        hh = function (a, b, c, d, x, s, t) {
+            return cmn(b ^ c ^ d, a, b, x, s, t);
+        },
+
+        ii = function (a, b, c, d, x, s, t) {
+            return cmn(c ^ (b | (~d)), a, b, x, s, t);
+        },
+
+        md5cycle = function (x, k) {
+            var a = x[0],
+                b = x[1],
+                c = x[2],
+                d = x[3];
+
+            a = ff(a, b, c, d, k[0], 7, -680876936);
+            d = ff(d, a, b, c, k[1], 12, -389564586);
+            c = ff(c, d, a, b, k[2], 17, 606105819);
+            b = ff(b, c, d, a, k[3], 22, -1044525330);
+            a = ff(a, b, c, d, k[4], 7, -176418897);
+            d = ff(d, a, b, c, k[5], 12, 1200080426);
+            c = ff(c, d, a, b, k[6], 17, -1473231341);
+            b = ff(b, c, d, a, k[7], 22, -45705983);
+            a = ff(a, b, c, d, k[8], 7, 1770035416);
+            d = ff(d, a, b, c, k[9], 12, -1958414417);
+            c = ff(c, d, a, b, k[10], 17, -42063);
+            b = ff(b, c, d, a, k[11], 22, -1990404162);
+            a = ff(a, b, c, d, k[12], 7, 1804603682);
+            d = ff(d, a, b, c, k[13], 12, -40341101);
+            c = ff(c, d, a, b, k[14], 17, -1502002290);
+            b = ff(b, c, d, a, k[15], 22, 1236535329);
+
+            a = gg(a, b, c, d, k[1], 5, -165796510);
+            d = gg(d, a, b, c, k[6], 9, -1069501632);
+            c = gg(c, d, a, b, k[11], 14, 643717713);
+            b = gg(b, c, d, a, k[0], 20, -373897302);
+            a = gg(a, b, c, d, k[5], 5, -701558691);
+            d = gg(d, a, b, c, k[10], 9, 38016083);
+            c = gg(c, d, a, b, k[15], 14, -660478335);
+            b = gg(b, c, d, a, k[4], 20, -405537848);
+            a = gg(a, b, c, d, k[9], 5, 568446438);
+            d = gg(d, a, b, c, k[14], 9, -1019803690);
+            c = gg(c, d, a, b, k[3], 14, -187363961);
+            b = gg(b, c, d, a, k[8], 20, 1163531501);
+            a = gg(a, b, c, d, k[13], 5, -1444681467);
+            d = gg(d, a, b, c, k[2], 9, -51403784);
+            c = gg(c, d, a, b, k[7], 14, 1735328473);
+            b = gg(b, c, d, a, k[12], 20, -1926607734);
+
+            a = hh(a, b, c, d, k[5], 4, -378558);
+            d = hh(d, a, b, c, k[8], 11, -2022574463);
+            c = hh(c, d, a, b, k[11], 16, 1839030562);
+            b = hh(b, c, d, a, k[14], 23, -35309556);
+            a = hh(a, b, c, d, k[1], 4, -1530992060);
+            d = hh(d, a, b, c, k[4], 11, 1272893353);
+            c = hh(c, d, a, b, k[7], 16, -155497632);
+            b = hh(b, c, d, a, k[10], 23, -1094730640);
+            a = hh(a, b, c, d, k[13], 4, 681279174);
+            d = hh(d, a, b, c, k[0], 11, -358537222);
+            c = hh(c, d, a, b, k[3], 16, -722521979);
+            b = hh(b, c, d, a, k[6], 23, 76029189);
+            a = hh(a, b, c, d, k[9], 4, -640364487);
+            d = hh(d, a, b, c, k[12], 11, -421815835);
+            c = hh(c, d, a, b, k[15], 16, 530742520);
+            b = hh(b, c, d, a, k[2], 23, -995338651);
+
+            a = ii(a, b, c, d, k[0], 6, -198630844);
+            d = ii(d, a, b, c, k[7], 10, 1126891415);
+            c = ii(c, d, a, b, k[14], 15, -1416354905);
+            b = ii(b, c, d, a, k[5], 21, -57434055);
+            a = ii(a, b, c, d, k[12], 6, 1700485571);
+            d = ii(d, a, b, c, k[3], 10, -1894986606);
+            c = ii(c, d, a, b, k[10], 15, -1051523);
+            b = ii(b, c, d, a, k[1], 21, -2054922799);
+            a = ii(a, b, c, d, k[8], 6, 1873313359);
+            d = ii(d, a, b, c, k[15], 10, -30611744);
+            c = ii(c, d, a, b, k[6], 15, -1560198380);
+            b = ii(b, c, d, a, k[13], 21, 1309151649);
+            a = ii(a, b, c, d, k[4], 6, -145523070);
+            d = ii(d, a, b, c, k[11], 10, -1120210379);
+            c = ii(c, d, a, b, k[2], 15, 718787259);
+            b = ii(b, c, d, a, k[9], 21, -343485551);
+
+            x[0] = add32(a, x[0]);
+            x[1] = add32(b, x[1]);
+            x[2] = add32(c, x[2]);
+            x[3] = add32(d, x[3]);
+        },
+
+        /* there needs to be support for Unicode here,
+           * unless we pretend that we can redefine the MD-5
+           * algorithm for multi-byte characters (perhaps
+           * by adding every four 16-bit characters and
+           * shortening the sum to 32 bits). Otherwise
+           * I suggest performing MD-5 as if every character
+           * was two bytes--e.g., 0040 0025 = @%--but then
+           * how will an ordinary MD-5 sum be matched?
+           * There is no way to standardize text to something
+           * like UTF-8 before transformation; speed cost is
+           * utterly prohibitive. The JavaScript standard
+           * itself needs to look at this: it should start
+           * providing access to strings as preformed UTF-8
+           * 8-bit unsigned value arrays.
+           */
+        md5blk = function (s) {
+            var md5blks = [],
+                i; /* Andy King said do it this way. */
+
+            for (i = 0; i < 64; i += 4) {
+                md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
+            }
+            return md5blks;
+        },
+
+        md5blk_array = function (a) {
+            var md5blks = [],
+                i; /* Andy King said do it this way. */
+
+            for (i = 0; i < 64; i += 4) {
+                md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
+            }
+            return md5blks;
+        },
+
+        md51 = function (s) {
+            var n = s.length,
+                state = [1732584193, -271733879, -1732584194, 271733878],
+                i,
+                length,
+                tail,
+                tmp,
+                lo,
+                hi;
+
+            for (i = 64; i <= n; i += 64) {
+                md5cycle(state, md5blk(s.substring(i - 64, i)));
+            }
+            s = s.substring(i - 64);
+            length = s.length;
+            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
+            }
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Beware that the final length might not fit in 32 bits so we take care of that
+            tmp = n * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+
+            md5cycle(state, tail);
+            return state;
+        },
+
+        md51_array = function (a) {
+            var n = a.length,
+                state = [1732584193, -271733879, -1732584194, 271733878],
+                i,
+                length,
+                tail,
+                tmp,
+                lo,
+                hi;
+
+            for (i = 64; i <= n; i += 64) {
+                md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
+            }
+
+            // Not sure if it is a bug, however IE10 will always produce a sub array of length 1
+            // containing the last element of the parent array if the sub array specified starts
+            // beyond the length of the parent array - weird.
+            // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue
+            a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);
+
+            length = a.length;
+            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= a[i] << ((i % 4) << 3);
+            }
+
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Beware that the final length might not fit in 32 bits so we take care of that
+            tmp = n * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+
+            md5cycle(state, tail);
+
+            return state;
+        },
+
+        hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'],
+
+        rhex = function (n) {
+            var s = '',
+                j;
+            for (j = 0; j < 4; j += 1) {
+                s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];
+            }
+            return s;
+        },
+
+        hex = function (x) {
+            var i;
+            for (i = 0; i < x.length; i += 1) {
+                x[i] = rhex(x[i]);
+            }
+            return x.join('');
+        },
+
+        md5 = function (s) {
+            return hex(md51(s));
+        },
+
+
+
+        ////////////////////////////////////////////////////////////////////////////
+
+        /**
+         * SparkMD5 OOP implementation.
+         *
+         * Use this class to perform an incremental md5, otherwise use the
+         * static methods instead.
+         */
+        SparkMD5 = function () {
+            // call reset to init the instance
+            this.reset();
+        };
+
+
+        // In some cases the fast add32 function cannot be used..
+        if (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {
+            add32 = function (x, y) {
+                var lsw = (x & 0xFFFF) + (y & 0xFFFF),
+                    msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+                return (msw << 16) | (lsw & 0xFFFF);
+            };
+        }
+
+
+        /**
+         * Appends a string.
+         * A conversion will be applied if an utf8 string is detected.
+         *
+         * @param {String} str The string to be appended
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.append = function (str) {
+            // converts the string to utf8 bytes if necessary
+            if (/[\u0080-\uFFFF]/.test(str)) {
+                str = unescape(encodeURIComponent(str));
+            }
+
+            // then append as binary
+            this.appendBinary(str);
+
+            return this;
+        };
+
+        /**
+         * Appends a binary string.
+         *
+         * @param {String} contents The binary string to be appended
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.appendBinary = function (contents) {
+            this._buff += contents;
+            this._length += contents.length;
+
+            var length = this._buff.length,
+                i;
+
+            for (i = 64; i <= length; i += 64) {
+                md5cycle(this._state, md5blk(this._buff.substring(i - 64, i)));
+            }
+
+            this._buff = this._buff.substr(i - 64);
+
+            return this;
+        };
+
+        /**
+         * Finishes the incremental computation, reseting the internal state and
+         * returning the result.
+         * Use the raw parameter to obtain the raw result instead of the hex one.
+         *
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.prototype.end = function (raw) {
+            var buff = this._buff,
+                length = buff.length,
+                i,
+                tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+                ret;
+
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);
+            }
+
+            this._finish(tail, length);
+            ret = !!raw ? this._state : hex(this._state);
+
+            this.reset();
+
+            return ret;
+        };
+
+        /**
+         * Finish the final calculation based on the tail.
+         *
+         * @param {Array}  tail   The tail (will be modified)
+         * @param {Number} length The length of the remaining buffer
+         */
+        SparkMD5.prototype._finish = function (tail, length) {
+            var i = length,
+                tmp,
+                lo,
+                hi;
+
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(this._state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Do the final computation based on the tail and length
+            // Beware that the final length may not fit in 32 bits so we take care of that
+            tmp = this._length * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+            md5cycle(this._state, tail);
+        };
+
+        /**
+         * Resets the internal state of the computation.
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.reset = function () {
+            this._buff = "";
+            this._length = 0;
+            this._state = [1732584193, -271733879, -1732584194, 271733878];
+
+            return this;
+        };
+
+        /**
+         * Releases memory used by the incremental buffer and other aditional
+         * resources. If you plan to use the instance again, use reset instead.
+         */
+        SparkMD5.prototype.destroy = function () {
+            delete this._state;
+            delete this._buff;
+            delete this._length;
+        };
+
+
+        /**
+         * Performs the md5 hash on a string.
+         * A conversion will be applied if utf8 string is detected.
+         *
+         * @param {String}  str The string
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.hash = function (str, raw) {
+            // converts the string to utf8 bytes if necessary
+            if (/[\u0080-\uFFFF]/.test(str)) {
+                str = unescape(encodeURIComponent(str));
+            }
+
+            var hash = md51(str);
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        /**
+         * Performs the md5 hash on a binary string.
+         *
+         * @param {String}  content The binary string
+         * @param {Boolean} raw     True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.hashBinary = function (content, raw) {
+            var hash = md51(content);
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        /**
+         * SparkMD5 OOP implementation for array buffers.
+         *
+         * Use this class to perform an incremental md5 ONLY for array buffers.
+         */
+        SparkMD5.ArrayBuffer = function () {
+            // call reset to init the instance
+            this.reset();
+        };
+
+        ////////////////////////////////////////////////////////////////////////////
+
+        /**
+         * Appends an array buffer.
+         *
+         * @param {ArrayBuffer} arr The array to be appended
+         *
+         * @return {SparkMD5.ArrayBuffer} The instance itself
+         */
+        SparkMD5.ArrayBuffer.prototype.append = function (arr) {
+            // TODO: we could avoid the concatenation here but the algorithm would be more complex
+            //       if you find yourself needing extra performance, please make a PR.
+            var buff = this._concatArrayBuffer(this._buff, arr),
+                length = buff.length,
+                i;
+
+            this._length += arr.byteLength;
+
+            for (i = 64; i <= length; i += 64) {
+                md5cycle(this._state, md5blk_array(buff.subarray(i - 64, i)));
+            }
+
+            // Avoids IE10 weirdness (documented above)
+            this._buff = (i - 64) < length ? buff.subarray(i - 64) : new Uint8Array(0);
+
+            return this;
+        };
+
+        /**
+         * Finishes the incremental computation, reseting the internal state and
+         * returning the result.
+         * Use the raw parameter to obtain the raw result instead of the hex one.
+         *
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.ArrayBuffer.prototype.end = function (raw) {
+            var buff = this._buff,
+                length = buff.length,
+                tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+                i,
+                ret;
+
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= buff[i] << ((i % 4) << 3);
+            }
+
+            this._finish(tail, length);
+            ret = !!raw ? this._state : hex(this._state);
+
+            this.reset();
+
+            return ret;
+        };
+
+        SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
+
+        /**
+         * Resets the internal state of the computation.
+         *
+         * @return {SparkMD5.ArrayBuffer} The instance itself
+         */
+        SparkMD5.ArrayBuffer.prototype.reset = function () {
+            this._buff = new Uint8Array(0);
+            this._length = 0;
+            this._state = [1732584193, -271733879, -1732584194, 271733878];
+
+            return this;
+        };
+
+        /**
+         * Releases memory used by the incremental buffer and other aditional
+         * resources. If you plan to use the instance again, use reset instead.
+         */
+        SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
+
+        /**
+         * Concats two array buffers, returning a new one.
+         *
+         * @param  {ArrayBuffer} first  The first array buffer
+         * @param  {ArrayBuffer} second The second array buffer
+         *
+         * @return {ArrayBuffer} The new array buffer
+         */
+        SparkMD5.ArrayBuffer.prototype._concatArrayBuffer = function (first, second) {
+            var firstLength = first.length,
+                result = new Uint8Array(firstLength + second.byteLength);
+
+            result.set(first);
+            result.set(new Uint8Array(second), firstLength);
+
+            return result;
+        };
+
+        /**
+         * Performs the md5 hash on an array buffer.
+         *
+         * @param {ArrayBuffer} arr The array buffer
+         * @param {Boolean}     raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.ArrayBuffer.hash = function (arr, raw) {
+            var hash = md51_array(new Uint8Array(arr));
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        return FlashRuntime.register( 'Md5', {
+            init: function() {
+                // do nothing.
+            },
+
+            loadFromBlob: function( file ) {
+                var blob = file.getSource(),
+                    chunkSize = 2 * 1024 * 1024,
+                    chunks = Math.ceil( blob.size / chunkSize ),
+                    chunk = 0,
+                    owner = this.owner,
+                    spark = new SparkMD5.ArrayBuffer(),
+                    me = this,
+                    blobSlice = blob.mozSlice || blob.webkitSlice || blob.slice,
+                    loadNext, fr;
+
+                fr = new FileReader();
+
+                loadNext = function() {
+                    var start, end;
+
+                    start = chunk * chunkSize;
+                    end = Math.min( start + chunkSize, blob.size );
+
+                    fr.onload = function( e ) {
+                        spark.append( e.target.result );
+                        owner.trigger( 'progress', {
+                            total: file.size,
+                            loaded: end
+                        });
+                    };
+
+                    fr.onloadend = function() {
+                        fr.onloadend = fr.onload = null;
+
+                        if ( ++chunk < chunks ) {
+                            setTimeout( loadNext, 1 );
+                        } else {
+                            setTimeout(function(){
+                                owner.trigger('load');
+                                me.result = spark.end();
+                                loadNext = file = blob = spark = null;
+                                owner.trigger('complete');
+                            }, 50 );
+                        }
+                    };
+
+                    fr.readAsArrayBuffer( blobSlice.call( blob, start, end ) );
+                };
+
+                loadNext();
+            },
+
+            getResult: function() {
+                return this.result;
+            }
+        });
+    });
+    /**
+     * @fileOverview FlashRuntime
+     */
+    define('runtime/flash/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var $ = Base.$,
+            type = 'flash',
+            components = {};
+
+
+        function getFlashVersion() {
+            var version;
+
+            try {
+                version = navigator.plugins[ 'Shockwave Flash' ];
+                version = version.description;
+            } catch ( ex ) {
+                try {
+                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
+                            .GetVariable('$version');
+                } catch ( ex2 ) {
+                    version = '0.0';
+                }
+            }
+            version = version.match( /\d+/g );
+            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
+        }
+
+        function FlashRuntime() {
+            var pool = {},
+                clients = {},
+                destroy = this.destroy,
+                me = this,
+                jsreciver = Base.guid('webuploader_');
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/ ) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                clients[ uid ] = client;
+
+                if ( components[ comp ] ) {
+                    if ( !pool[ uid ] ) {
+                        pool[ uid ] = new components[ comp ]( client, me );
+                    }
+
+                    instance = pool[ uid ];
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+
+                return me.flashExec.apply( client, arguments );
+            };
+
+            function handler( evt, obj ) {
+                var type = evt.type || evt,
+                    parts, uid;
+
+                parts = type.split('::');
+                uid = parts[ 0 ];
+                type = parts[ 1 ];
+
+                // console.log.apply( console, arguments );
+
+                if ( type === 'Ready' && uid === me.uid ) {
+                    me.trigger('ready');
+                } else if ( clients[ uid ] ) {
+                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
+                }
+
+                // Base.log( evt, obj );
+            }
+
+            // flash的接受器。
+            window[ jsreciver ] = function() {
+                var args = arguments;
+
+                // 为了能捕获得到。
+                setTimeout(function() {
+                    handler.apply( null, args );
+                }, 1 );
+            };
+
+            this.jsreciver = jsreciver;
+
+            this.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+
+            this.flashExec = function( comp, fn ) {
+                var flash = me.getFlash(),
+                    args = Base.slice( arguments, 2 );
+
+                return flash.exec( this.uid, comp, fn, args );
+            };
+
+            // @todo
+        }
+
+        Base.inherits( Runtime, {
+            constructor: FlashRuntime,
+
+            init: function() {
+                var container = this.getContainer(),
+                    opts = this.options,
+                    html;
+
+                // if not the minimal height, shims are not initialized
+                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
+                container.css({
+                    position: 'absolute',
+                    top: '-8px',
+                    left: '-8px',
+                    width: '9px',
+                    height: '9px',
+                    overflow: 'hidden'
+                });
+
+                // insert flash object
+                html = '<object id="' + this.uid + '" type="application/' +
+                        'x-shockwave-flash" data="' +  opts.swf + '" ';
+
+                if ( Base.browser.ie ) {
+                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
+                }
+
+                html += 'width="100%" height="100%" style="outline:0">'  +
+                    '<param name="movie" value="' + opts.swf + '" />' +
+                    '<param name="flashvars" value="uid=' + this.uid +
+                    '&jsreciver=' + this.jsreciver + '" />' +
+                    '<param name="wmode" value="transparent" />' +
+                    '<param name="allowscriptaccess" value="always" />' +
+                '</object>';
+
+                container.html( html );
+            },
+
+            getFlash: function() {
+                if ( this._flash ) {
+                    return this._flash;
+                }
+
+                this._flash = $( '#' + this.uid ).get( 0 );
+                return this._flash;
+            }
+
+        });
+
+        FlashRuntime.register = function( name, component ) {
+            component = components[ name ] = Base.inherits( CompBase, $.extend({
+
+                // @todo fix this later
+                flashExec: function() {
+                    var owner = this.owner,
+                        runtime = this.getRuntime();
+
+                    return runtime.flashExec.apply( owner, arguments );
+                }
+            }, component ) );
+
+            return component;
+        };
+
+        if ( getFlashVersion() >= 11.4 ) {
+            Runtime.addRuntime( type, FlashRuntime );
+        }
+
+        return FlashRuntime;
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/flash/filepicker',[
+        'base',
+        'runtime/flash/runtime'
+    ], function( Base, FlashRuntime ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'FilePicker', {
+            init: function( opts ) {
+                var copy = $.extend({}, opts ),
+                    len, i;
+
+                // 修复Flash再没有设置title的情况下无法弹出flash文件选择框的bug.
+                len = copy.accept && copy.accept.length;
+                for (  i = 0; i < len; i++ ) {
+                    if ( !copy.accept[ i ].title ) {
+                        copy.accept[ i ].title = 'Files';
+                    }
+                }
+
+                delete copy.button;
+                delete copy.id;
+                delete copy.container;
+
+                this.flashExec( 'FilePicker', 'init', copy );
+            },
+
+            destroy: function() {
+                this.flashExec( 'FilePicker', 'destroy' );
+            }
+        });
+    });
+    /**
+     * @fileOverview 图片压缩
+     */
+    define('runtime/flash/image',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Image', {
+            // init: function( options ) {
+            //     var owner = this.owner;
+
+            //     this.flashExec( 'Image', 'init', options );
+            //     owner.on( 'load', function() {
+            //         debugger;
+            //     });
+            // },
+
+            loadFromBlob: function( blob ) {
+                var owner = this.owner;
+
+                owner.info() && this.flashExec( 'Image', 'info', owner.info() );
+                owner.meta() && this.flashExec( 'Image', 'meta', owner.meta() );
+
+                this.flashExec( 'Image', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/flash/transport',[
+        'base',
+        'runtime/flash/runtime',
+        'runtime/client'
+    ], function( Base, FlashRuntime, RuntimeClient ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+                this._responseJson = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    binary;
+
+                xhr.connectRuntime( blob.ruid );
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.uid;
+                } else {
+                    $.each( owner._formData, function( k, v ) {
+                        xhr.exec( 'append', k, v );
+                    });
+
+                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+                xhr.exec( 'send', {
+                    method: opts.method,
+                    url: server,
+                    forceURLStream: opts.forceURLStream,
+                    mimeType: 'application/octet-stream'
+                }, binary );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            getResponse: function() {
+                return this._response || '';
+            },
+
+            getResponseAsJson: function() {
+                return this._responseJson;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.exec('abort');
+                    xhr.destroy();
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new RuntimeClient('XMLHttpRequest');
+
+                xhr.on( 'uploadprogress progress', function( e ) {
+                    var percent = e.loaded / e.total;
+                    percent = Math.min( 1, Math.max( 0, percent ) );
+                    return me.trigger( 'progress', percent );
+                });
+
+                xhr.on( 'load', function() {
+                    var status = xhr.exec('getStatus'),
+                        readBody = false,
+                        err = '',
+                        p;
+
+                    xhr.off();
+                    me._xhr = null;
+
+                    if ( status >= 200 && status < 300 ) {
+                        readBody = true;
+                    } else if ( status >= 500 && status < 600 ) {
+                        readBody = true;
+                        err = 'server';
+                    } else {
+                        err = 'http';
+                    }
+
+                    if ( readBody ) {
+                        me._response = xhr.exec('getResponse');
+                        me._response = decodeURIComponent( me._response );
+
+                        // flash 处理可能存在 bug, 没辙只能靠 js 了
+                        // try {
+                        //     me._responseJson = xhr.exec('getResponseAsJson');
+                        // } catch ( error ) {
+
+                        p = window.JSON && window.JSON.parse || function( s ) {
+                            try {
+                                return new Function('return ' + s).call();
+                            } catch ( err ) {
+                                return {};
+                            }
+                        };
+                        me._responseJson  = me._response ? p(me._response) : {};
+
+                        // }
+                    }
+
+                    xhr.destroy();
+                    xhr = null;
+
+                    return err ? me.trigger( 'error', err ) : me.trigger('load');
+                });
+
+                xhr.on( 'error', function() {
+                    xhr.off();
+                    me._xhr = null;
+                    me.trigger( 'error', 'http' );
+                });
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.exec( 'setRequestHeader', key, val );
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/flash/blob',[
+        'runtime/flash/runtime',
+        'lib/blob'
+    ], function( FlashRuntime, Blob ) {
+
+        return FlashRuntime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.flashExec( 'Blob', 'slice', start, end );
+
+                return new Blob( blob.uid, blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Md5 flash实现
+     */
+    define('runtime/flash/md5',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Md5', {
+            init: function() {
+                // do nothing.
+            },
+
+            loadFromBlob: function( blob ) {
+                return this.flashExec( 'Md5', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview 完全版本。
+     */
+    define('preset/all',[
+        'base',
+
+        // widgets
+        'widgets/filednd',
+        'widgets/filepaste',
+        'widgets/filepicker',
+        'widgets/image',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+        'widgets/md5',
+
+        // runtimes
+        // html5
+        'runtime/html5/blob',
+        'runtime/html5/dnd',
+        'runtime/html5/filepaste',
+        'runtime/html5/filepicker',
+        'runtime/html5/imagemeta/exif',
+        'runtime/html5/androidpatch',
+        'runtime/html5/image',
+        'runtime/html5/transport',
+        'runtime/html5/md5',
+
+        // flash
+        'runtime/flash/filepicker',
+        'runtime/flash/image',
+        'runtime/flash/transport',
+        'runtime/flash/blob',
+        'runtime/flash/md5'
+    ], function( Base ) {
+        return Base;
+    });
+    /**
+     * @fileOverview 日志组件,主要用来收集错误信息,可以帮助 webuploader 更好的定位问题和发展。
+     *
+     * 如果您不想要启用此功能,请在打包的时候去掉 log 模块。
+     *
+     * 或者可以在初始化的时候通过 options.disableWidgets 属性禁用。
+     *
+     * 如:
+     * WebUploader.create({
+     *     ...
+     *
+     *     disableWidgets: 'log',
+     *
+     *     ...
+     * })
+     */
+    define('widgets/log',[
+        'base',
+        'uploader',
+        'widgets/widget'
+    ], function( Base, Uploader ) {
+        var $ = Base.$,
+            logUrl = ' http://static.tieba.baidu.com/tb/pms/img/st.gif??',
+            product = (location.hostname || location.host || 'protected').toLowerCase(),
+
+            // 只针对 baidu 内部产品用户做统计功能。
+            enable = product && /baidu/i.exec(product),
+            base;
+
+        if (!enable) {
+            return;
+        }
+
+        base = {
+            dv: 3,
+            master: 'webuploader',
+            online: /test/.exec(product) ? 0 : 1,
+            module: '',
+            product: product,
+            type: 0
+        };
+
+        function send(data) {
+            var obj = $.extend({}, base, data),
+                url = logUrl.replace(/^(.*)\?/, '$1' + $.param( obj )),
+                image = new Image();
+
+            image.src = url;
+        }
+
+        return Uploader.register({
+            name: 'log',
+
+            init: function() {
+                var owner = this.owner,
+                    count = 0,
+                    size = 0;
+
+                owner
+                    .on('error', function(code) {
+                        send({
+                            type: 2,
+                            c_error_code: code
+                        });
+                    })
+                    .on('uploadError', function(file, reason) {
+                        send({
+                            type: 2,
+                            c_error_code: 'UPLOAD_ERROR',
+                            c_reason: '' + reason
+                        });
+                    })
+                    .on('uploadComplete', function(file) {
+                        count++;
+                        size += file.size;
+                    }).
+                    on('uploadFinished', function() {
+                        send({
+                            c_count: count,
+                            c_size: size
+                        });
+                        count = size = 0;
+                    });
+
+                send({
+                    c_usage: 1
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('webuploader',[
+        'preset/all',
+        'widgets/log'
+    ], function( preset ) {
+        return preset;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.min.js
new file mode 100644
index 0000000..43cb93b
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.min.js
@@ -0,0 +1,3 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({name:"dnd",init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return this.dnd=e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}},destroy:function(){this.dnd&&this.dnd.destroy()}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({name:"paste",init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return this.paste=e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}},destroy:function(){this.paste&&this.paste.destroy()}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!1,allowMagnify:!1},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},crop:function(){var b=a.slice(arguments);return this.exec.apply(this,["crop"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({name:"image",makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),1>=f&&f>0&&(f=a._info.width*f),1>=g&&g>0&&(g=a._info.height*g),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(a){b(a||!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},beforeSendFile:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||0,i=g&&g.noCompressIfLarger||!1;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){var a=g.width,c=g.height;b._info=b._info||d.info(),b._meta=b._meta||d.meta(),1>=a&&a>0&&(a=b._info.width*a),1>=c&&c>0&&(c=b._info.height*c),d.resize(a,c)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,(!i||a.size<c)&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});if(!c.runing){c.runing=!0;var d=[];f.each(c.pool,function(a,b){var e=b.file;e.getStatus()===h.INTERRUPT&&(d.push(e),c._trigged=!1,b.transport&&b.transport.send())});for(var b;b=d.shift();)b.setStatus(h.PROGRESS);b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload")}},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d.updateFileProgress(e),d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){b.percentage=a,g.updateFileProgress(k)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)
+}).always(function(){d.trigger("uploadComplete",a)})},updateFileProgress:function(a){var b=0,c=0;a.blocks&&(f.each(a.blocks,function(a,b){c+=(b.percentage||0)*(b.end-b.start)}),b=c/a.size,this.owner.trigger("uploadProgress",a,b||0))}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({name:"validator",init:function(){var b=this;a.nextTick(function(){e.each(f,function(){this.call(b.owner)})})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileNumLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("reset",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileSizeLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("reset",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",d,a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}),b.on("reset",function(){d={}}))}),d}),b("lib/md5",["runtime/client","mediator"],function(a,b){function c(){a.call(this,"Md5")}return b.installTo(c.prototype),c.prototype.loadFromBlob=function(a){var b=this;b.getRuid()&&b.disconnectRuntime(),b.connectRuntime(a.ruid,function(){b.exec("init"),b.exec("loadFromBlob",a)})},c.prototype.getResult=function(){return this.exec("getResult")},c}),b("widgets/md5",["base","uploader","lib/md5","lib/blob","widgets/widget"],function(a,b,c,d){return b.register({name:"md5",md5File:function(b,e,f){var g=new c,h=a.Deferred(),i=b instanceof d?b:this.request("get-file",b).source;return g.on("progress load",function(a){a=a||{},h.notify(a.total?a.loaded/a.total:1)}),g.on("complete",function(){h.resolve(g.getResult())}),g.on("error",function(a){h.reject(a)}),arguments.length>1&&(e=e||0,f=f||0,0>e&&(e=i.size+e),0>f&&(f=i.size+f),f=Math.min(f,i.size),i=i.slice(e,f)),g.loadFromBlob(i),h.promise()}})}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destroy;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destroy=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b,f,g=this,h=g.getRuid(),i=g.elem.parent().get(0);if(i&&!d.contains(i,a.currentTarget))return!1;a=a.originalEvent||a,b=a.dataTransfer;try{f=b.getData("text/html")}catch(j){}return f?void 0:(g._getTansferFiles(b,function(a){g.trigger("drop",d.map(a,function(a){return new c(h,a)}))}),g.dndOver=!1,g.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k=[],l=[];for(d=b.items,e=b.files,j=!(!d||!d[0].webkitGetAsEntry),h=0,i=e.length;i>h;h++)f=e[h],g=d&&d[h],j&&g.webkitGetAsEntry().isDirectory?l.push(this._traverseDirectoryTree(g.webkitGetAsEntry(),k)):k.push(f);a.when.apply(a,l).done(function(){k.length&&c(k)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a&&(a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragOverHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler)))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=this.label=c(document.createElement("label")),k=this.input=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),b.value=null,this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){this.input.off(),this.label.off()}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/jpegencoder",[],function(){function a(a){function b(a){for(var b=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],c=0;64>c;c++){var d=y((b[c]*a+50)/100);1>d?d=1:d>255&&(d=255),z[P[c]]=d}for(var e=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],f=0;64>f;f++){var g=y((e[f]*a+50)/100);1>g?g=1:g>255&&(g=255),A[P[f]]=g}for(var h=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],i=0,j=0;8>j;j++)for(var k=0;8>k;k++)B[i]=1/(z[P[i]]*h[j]*h[k]*8),C[i]=1/(A[P[i]]*h[j]*h[k]*8),i++}function c(a,b){for(var c=0,d=0,e=new Array,f=1;16>=f;f++){for(var g=1;g<=a[f];g++)e[b[d]]=[],e[b[d]][0]=c,e[b[d]][1]=f,d++,c++;c*=2}return e}function d(){t=c(Q,R),u=c(U,V),v=c(S,T),w=c(W,X)}function e(){for(var a=1,b=2,c=1;15>=c;c++){for(var d=a;b>d;d++)E[32767+d]=c,D[32767+d]=[],D[32767+d][1]=c,D[32767+d][0]=d;for(var e=-(b-1);-a>=e;e++)E[32767+e]=c,D[32767+e]=[],D[32767+e][1]=c,D[32767+e][0]=b-1+e;a<<=1,b<<=1}}function f(){for(var a=0;256>a;a++)O[a]=19595*a,O[a+256>>0]=38470*a,O[a+512>>0]=7471*a+32768,O[a+768>>0]=-11059*a,O[a+1024>>0]=-21709*a,O[a+1280>>0]=32768*a+8421375,O[a+1536>>0]=-27439*a,O[a+1792>>0]=-5329*a}function g(a){for(var b=a[0],c=a[1]-1;c>=0;)b&1<<c&&(I|=1<<J),c--,J--,0>J&&(255==I?(h(255),h(0)):h(I),J=7,I=0)}function h(a){H.push(N[a])}function i(a){h(a>>8&255),h(255&a)}function j(a,b){var c,d,e,f,g,h,i,j,k,l=0,m=8,n=64;for(k=0;m>k;++k){c=a[l],d=a[l+1],e=a[l+2],f=a[l+3],g=a[l+4],h=a[l+5],i=a[l+6],j=a[l+7];var o=c+j,p=c-j,q=d+i,r=d-i,s=e+h,t=e-h,u=f+g,v=f-g,w=o+u,x=o-u,y=q+s,z=q-s;a[l]=w+y,a[l+4]=w-y;var A=.707106781*(z+x);a[l+2]=x+A,a[l+6]=x-A,w=v+t,y=t+r,z=r+p;var B=.382683433*(w-z),C=.5411961*w+B,D=1.306562965*z+B,E=.707106781*y,G=p+E,H=p-E;a[l+5]=H+C,a[l+3]=H-C,a[l+1]=G+D,a[l+7]=G-D,l+=8}for(l=0,k=0;m>k;++k){c=a[l],d=a[l+8],e=a[l+16],f=a[l+24],g=a[l+32],h=a[l+40],i=a[l+48],j=a[l+56];var I=c+j,J=c-j,K=d+i,L=d-i,M=e+h,N=e-h,O=f+g,P=f-g,Q=I+O,R=I-O,S=K+M,T=K-M;a[l]=Q+S,a[l+32]=Q-S;var U=.707106781*(T+R);a[l+16]=R+U,a[l+48]=R-U,Q=P+N,S=N+L,T=L+J;var V=.382683433*(Q-T),W=.5411961*Q+V,X=1.306562965*T+V,Y=.707106781*S,Z=J+Y,$=J-Y;a[l+40]=$+W,a[l+24]=$-W,a[l+8]=Z+X,a[l+56]=Z-X,l++}var _;for(k=0;n>k;++k)_=a[k]*b[k],F[k]=_>0?_+.5|0:_-.5|0;return F}function k(){i(65504),i(16),h(74),h(70),h(73),h(70),h(0),h(1),h(1),h(0),i(1),i(1),h(0),h(0)}function l(a,b){i(65472),i(17),h(8),i(b),i(a),h(3),h(1),h(17),h(0),h(2),h(17),h(1),h(3),h(17),h(1)}function m(){i(65499),i(132),h(0);for(var a=0;64>a;a++)h(z[a]);h(1);for(var b=0;64>b;b++)h(A[b])}function n(){i(65476),i(418),h(0);for(var a=0;16>a;a++)h(Q[a+1]);for(var b=0;11>=b;b++)h(R[b]);h(16);for(var c=0;16>c;c++)h(S[c+1]);for(var d=0;161>=d;d++)h(T[d]);h(1);for(var e=0;16>e;e++)h(U[e+1]);for(var f=0;11>=f;f++)h(V[f]);h(17);for(var g=0;16>g;g++)h(W[g+1]);for(var j=0;161>=j;j++)h(X[j])}function o(){i(65498),i(12),h(3),h(1),h(0),h(2),h(17),h(3),h(17),h(0),h(63),h(0)}function p(a,b,c,d,e){for(var f,h=e[0],i=e[240],k=16,l=63,m=64,n=j(a,b),o=0;m>o;++o)G[P[o]]=n[o];var p=G[0]-c;c=G[0],0==p?g(d[0]):(f=32767+p,g(d[E[f]]),g(D[f]));for(var q=63;q>0&&0==G[q];q--);if(0==q)return g(h),c;for(var r,s=1;q>=s;){for(var t=s;0==G[s]&&q>=s;++s);var u=s-t;if(u>=k){r=u>>4;for(var v=1;r>=v;++v)g(i);u=15&u}f=32767+G[s],g(e[(u<<4)+E[f]]),g(D[f]),s++}return q!=l&&g(h),c}function q(){for(var a=String.fromCharCode,b=0;256>b;b++)N[b]=a(b)}function r(a){if(0>=a&&(a=1),a>100&&(a=100),x!=a){var c=0;c=Math.floor(50>a?5e3/a:200-2*a),b(c),x=a}}function s(){a||(a=50),q(),d(),e(),f(),r(a)}var t,u,v,w,x,y=(Math.round,Math.floor),z=new Array(64),A=new Array(64),B=new Array(64),C=new Array(64),D=new Array(65535),E=new Array(65535),F=new Array(64),G=new Array(64),H=[],I=0,J=7,K=new Array(64),L=new Array(64),M=new Array(64),N=new Array(256),O=new Array(2048),P=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],Q=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],R=[0,1,2,3,4,5,6,7,8,9,10,11],S=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],T=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],U=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],V=[0,1,2,3,4,5,6,7,8,9,10,11],W=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],X=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];this.encode=function(a,b){b&&r(b),H=new Array,I=0,J=7,i(65496),k(),m(),l(a.width,a.height),n(),o();var c=0,d=0,e=0;I=0,J=7,this.encode.displayName="_encode_";for(var f,h,j,q,s,x,y,z,A,D=a.data,E=a.width,F=a.height,G=4*E,N=0;F>N;){for(f=0;G>f;){for(s=G*N+f,x=s,y=-1,z=0,A=0;64>A;A++)z=A>>3,y=4*(7&A),x=s+z*G+y,N+z>=F&&(x-=G*(N+1+z-F)),f+y>=G&&(x-=f+y-G+4),h=D[x++],j=D[x++],q=D[x++],K[A]=(O[h]+O[j+256>>0]+O[q+512>>0]>>16)-128,L[A]=(O[h+768>>0]+O[j+1024>>0]+O[q+1280>>0]>>16)-128,M[A]=(O[h+1280>>0]+O[j+1536>>0]+O[q+1792>>0]>>16)-128;c=p(K,B,c,t,v),d=p(L,C,d,u,w),e=p(M,C,e,u,w),f+=32}N+=8}if(J>=0){var P=[];P[1]=J+1,P[0]=(1<<J+1)-1,g(P)}i(65497);var Q="data:image/jpeg;base64,"+btoa(H.join(""));return H=[],Q},s()}return a.encode=function(b,c){var d=new a(c);return d.encode(b)},a}),b("runtime/html5/androidpatch",["runtime/html5/util","runtime/html5/jpegencoder","base"],function(a,b,c){var d,e=a.canvasToDataUrl;a.canvasToDataUrl=function(a,f,g){var h,i,j,k,l;return c.os.android?("image/jpeg"===f&&"undefined"==typeof d&&(k=e.apply(null,arguments),l=k.split(","),k=~l[0].indexOf("base64")?atob(l[1]):decodeURIComponent(l[1]),k=k.substring(0,2),d=255===k.charCodeAt(0)&&216===k.charCodeAt(1)),"image/jpeg"!==f||d?e.apply(null,arguments):(i=a.width,j=a.height,h=a.getContext("2d"),b.encode(h.getImageData(0,0,i,j),g))):e.apply(null,arguments)}}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete","resize")},crop:function(a,b,c,d,e){var f=this._canvas||(this._canvas=document.createElement("canvas")),g=this.options,h=this._img,i=h.naturalWidth,j=h.naturalHeight,k=this.getOrientation();e=e||1,f.width=c,f.height=d,g.preserveHeaders||this._rotate2Orientaion(f,k),this._renderImageToCanvas(f,h,-a,-b,i*e,j*e),this._blob=null,this.modified=!0,this.owner.trigger("complete","crop")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,a,e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(b){var c=a.slice(arguments,1),d=b.getContext("2d");d.drawImage.apply(d,c)}}()})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType&&h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("runtime/html5/md5",["runtime/html5/runtime"],function(a){var b=function(a,b){return a+b&4294967295},c=function(a,c,d,e,f,g){return c=b(b(c,a),b(e,g)),b(c<<f|c>>>32-f,d)},d=function(a,b,d,e,f,g,h){return c(b&d|~b&e,a,b,f,g,h)},e=function(a,b,d,e,f,g,h){return c(b&e|d&~e,a,b,f,g,h)},f=function(a,b,d,e,f,g,h){return c(b^d^e,a,b,f,g,h)},g=function(a,b,d,e,f,g,h){return c(d^(b|~e),a,b,f,g,h)},h=function(a,c){var h=a[0],i=a[1],j=a[2],k=a[3];h=d(h,i,j,k,c[0],7,-680876936),k=d(k,h,i,j,c[1],12,-389564586),j=d(j,k,h,i,c[2],17,606105819),i=d(i,j,k,h,c[3],22,-1044525330),h=d(h,i,j,k,c[4],7,-176418897),k=d(k,h,i,j,c[5],12,1200080426),j=d(j,k,h,i,c[6],17,-1473231341),i=d(i,j,k,h,c[7],22,-45705983),h=d(h,i,j,k,c[8],7,1770035416),k=d(k,h,i,j,c[9],12,-1958414417),j=d(j,k,h,i,c[10],17,-42063),i=d(i,j,k,h,c[11],22,-1990404162),h=d(h,i,j,k,c[12],7,1804603682),k=d(k,h,i,j,c[13],12,-40341101),j=d(j,k,h,i,c[14],17,-1502002290),i=d(i,j,k,h,c[15],22,1236535329),h=e(h,i,j,k,c[1],5,-165796510),k=e(k,h,i,j,c[6],9,-1069501632),j=e(j,k,h,i,c[11],14,643717713),i=e(i,j,k,h,c[0],20,-373897302),h=e(h,i,j,k,c[5],5,-701558691),k=e(k,h,i,j,c[10],9,38016083),j=e(j,k,h,i,c[15],14,-660478335),i=e(i,j,k,h,c[4],20,-405537848),h=e(h,i,j,k,c[9],5,568446438),k=e(k,h,i,j,c[14],9,-1019803690),j=e(j,k,h,i,c[3],14,-187363961),i=e(i,j,k,h,c[8],20,1163531501),h=e(h,i,j,k,c[13],5,-1444681467),k=e(k,h,i,j,c[2],9,-51403784),j=e(j,k,h,i,c[7],14,1735328473),i=e(i,j,k,h,c[12],20,-1926607734),h=f(h,i,j,k,c[5],4,-378558),k=f(k,h,i,j,c[8],11,-2022574463),j=f(j,k,h,i,c[11],16,1839030562),i=f(i,j,k,h,c[14],23,-35309556),h=f(h,i,j,k,c[1],4,-1530992060),k=f(k,h,i,j,c[4],11,1272893353),j=f(j,k,h,i,c[7],16,-155497632),i=f(i,j,k,h,c[10],23,-1094730640),h=f(h,i,j,k,c[13],4,681279174),k=f(k,h,i,j,c[0],11,-358537222),j=f(j,k,h,i,c[3],16,-722521979),i=f(i,j,k,h,c[6],23,76029189),h=f(h,i,j,k,c[9],4,-640364487),k=f(k,h,i,j,c[12],11,-421815835),j=f(j,k,h,i,c[15],16,530742520),i=f(i,j,k,h,c[2],23,-995338651),h=g(h,i,j,k,c[0],6,-198630844),k=g(k,h,i,j,c[7],10,1126891415),j=g(j,k,h,i,c[14],15,-1416354905),i=g(i,j,k,h,c[5],21,-57434055),h=g(h,i,j,k,c[12],6,1700485571),k=g(k,h,i,j,c[3],10,-1894986606),j=g(j,k,h,i,c[10],15,-1051523),i=g(i,j,k,h,c[1],21,-2054922799),h=g(h,i,j,k,c[8],6,1873313359),k=g(k,h,i,j,c[15],10,-30611744),j=g(j,k,h,i,c[6],15,-1560198380),i=g(i,j,k,h,c[13],21,1309151649),h=g(h,i,j,k,c[4],6,-145523070),k=g(k,h,i,j,c[11],10,-1120210379),j=g(j,k,h,i,c[2],15,718787259),i=g(i,j,k,h,c[9],21,-343485551),a[0]=b(h,a[0]),a[1]=b(i,a[1]),a[2]=b(j,a[2]),a[3]=b(k,a[3])},i=function(a){var b,c=[];for(b=0;64>b;b+=4)c[b>>2]=a.charCodeAt(b)+(a.charCodeAt(b+1)<<8)+(a.charCodeAt(b+2)<<16)+(a.charCodeAt(b+3)<<24);return c},j=function(a){var b,c=[];for(b=0;64>b;b+=4)c[b>>2]=a[b]+(a[b+1]<<8)+(a[b+2]<<16)+(a[b+3]<<24);return c},k=function(a){var b,c,d,e,f,g,j=a.length,k=[1732584193,-271733879,-1732584194,271733878];for(b=64;j>=b;b+=64)h(k,i(a.substring(b-64,b)));for(a=a.substring(b-64),c=a.length,d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],b=0;c>b;b+=1)d[b>>2]|=a.charCodeAt(b)<<(b%4<<3);if(d[b>>2]|=128<<(b%4<<3),b>55)for(h(k,d),b=0;16>b;b+=1)d[b]=0;return e=8*j,e=e.toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(e[2],16),g=parseInt(e[1],16)||0,d[14]=f,d[15]=g,h(k,d),k},l=function(a){var b,c,d,e,f,g,i=a.length,k=[1732584193,-271733879,-1732584194,271733878];for(b=64;i>=b;b+=64)h(k,j(a.subarray(b-64,b)));for(a=i>b-64?a.subarray(b-64):new Uint8Array(0),c=a.length,d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],b=0;c>b;b+=1)d[b>>2]|=a[b]<<(b%4<<3);if(d[b>>2]|=128<<(b%4<<3),b>55)for(h(k,d),b=0;16>b;b+=1)d[b]=0;return e=8*i,e=e.toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(e[2],16),g=parseInt(e[1],16)||0,d[14]=f,d[15]=g,h(k,d),k},m=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],n=function(a){var b,c="";for(b=0;4>b;b+=1)c+=m[a>>8*b+4&15]+m[a>>8*b&15];return c},o=function(a){var b;for(b=0;b<a.length;b+=1)a[b]=n(a[b]);return a.join("")},p=function(a){return o(k(a))},q=function(){this.reset()};return"5d41402abc4b2a76b9719d911017c592"!==p("hello")&&(b=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}),q.prototype.append=function(a){return/[\u0080-\uFFFF]/.test(a)&&(a=unescape(encodeURIComponent(a))),this.appendBinary(a),this},q.prototype.appendBinary=function(a){this._buff+=a,this._length+=a.length;var b,c=this._buff.length;for(b=64;c>=b;b+=64)h(this._state,i(this._buff.substring(b-64,b)));return this._buff=this._buff.substr(b-64),this},q.prototype.end=function(a){var b,c,d=this._buff,e=d.length,f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(b=0;e>b;b+=1)f[b>>2]|=d.charCodeAt(b)<<(b%4<<3);return this._finish(f,e),c=a?this._state:o(this._state),this.reset(),c},q.prototype._finish=function(a,b){var c,d,e,f=b;if(a[f>>2]|=128<<(f%4<<3),f>55)for(h(this._state,a),f=0;16>f;f+=1)a[f]=0;c=8*this._length,c=c.toString(16).match(/(.*?)(.{0,8})$/),d=parseInt(c[2],16),e=parseInt(c[1],16)||0,a[14]=d,a[15]=e,h(this._state,a)},q.prototype.reset=function(){return this._buff="",this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},q.prototype.destroy=function(){delete this._state,delete this._buff,delete this._length},q.hash=function(a,b){/[\u0080-\uFFFF]/.test(a)&&(a=unescape(encodeURIComponent(a)));var c=k(a);return b?c:o(c)},q.hashBinary=function(a,b){var c=k(a);return b?c:o(c)},q.ArrayBuffer=function(){this.reset()},q.ArrayBuffer.prototype.append=function(a){var b,c=this._concatArrayBuffer(this._buff,a),d=c.length;for(this._length+=a.byteLength,b=64;d>=b;b+=64)h(this._state,j(c.subarray(b-64,b)));return this._buff=d>b-64?c.subarray(b-64):new Uint8Array(0),this},q.ArrayBuffer.prototype.end=function(a){var b,c,d=this._buff,e=d.length,f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
+for(b=0;e>b;b+=1)f[b>>2]|=d[b]<<(b%4<<3);return this._finish(f,e),c=a?this._state:o(this._state),this.reset(),c},q.ArrayBuffer.prototype._finish=q.prototype._finish,q.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},q.ArrayBuffer.prototype.destroy=q.prototype.destroy,q.ArrayBuffer.prototype._concatArrayBuffer=function(a,b){var c=a.length,d=new Uint8Array(c+b.byteLength);return d.set(a),d.set(new Uint8Array(b),c),d},q.ArrayBuffer.hash=function(a,b){var c=l(new Uint8Array(a));return b?c:o(c)},a.register("Md5",{init:function(){},loadFromBlob:function(a){var b,c,d=a.getSource(),e=2097152,f=Math.ceil(d.size/e),g=0,h=this.owner,i=new q.ArrayBuffer,j=this,k=d.mozSlice||d.webkitSlice||d.slice;c=new FileReader,(b=function(){var l,m;l=g*e,m=Math.min(l+e,d.size),c.onload=function(b){i.append(b.target.result),h.trigger("progress",{total:a.size,loaded:m})},c.onloadend=function(){c.onloadend=c.onload=null,++g<f?setTimeout(b,1):setTimeout(function(){h.trigger("load"),j.result=i.end(),b=a=d=i=null,h.trigger("complete")},50)},c.readAsArrayBuffer(k.call(d,l,m))})()},getResult:function(){return this.result}})}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destroy,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destroy=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.id,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){this.flashExec("FilePicker","destroy")}})}),b("runtime/flash/image",["runtime/flash/runtime"],function(a){return a.register("Image",{loadFromBlob:function(a){var b=this.owner;b.info()&&this.flashExec("Image","info",b.info()),b.meta()&&this.flashExec("Image","meta",b.meta()),this.flashExec("Image","loadFromBlob",a.uid)}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(b,c,d){var e=b.$;return c.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,d=this._initAjax(),f=b._blob,g=c.server;d.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+e.param(b._formData),a=f.uid):(e.each(b._formData,function(a,b){d.exec("append",a,b)}),d.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(d,c.headers),d.exec("send",{method:c.method,url:g,forceURLStream:c.forceURLStream,mimeType:"application/octet-stream"},a)},getStatus:function(){return this._status},getResponse:function(){return this._response||""},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var b=this,c=new d("XMLHttpRequest");return c.on("uploadprogress progress",function(a){var c=a.loaded/a.total;return c=Math.min(1,Math.max(0,c)),b.trigger("progress",c)}),c.on("load",function(){var d,e=c.exec("getStatus"),f=!1,g="";return c.off(),b._xhr=null,e>=200&&300>e?f=!0:e>=500&&600>e?(f=!0,g="server"):g="http",f&&(b._response=c.exec("getResponse"),b._response=decodeURIComponent(b._response),d=a.JSON&&a.JSON.parse||function(a){try{return new Function("return "+a).call()}catch(b){return{}}},b._responseJson=b._response?d(b._response):{}),c.destroy(),c=null,g?b.trigger("error",g):b.trigger("load")}),c.on("error",function(){c.off(),b._xhr=null,b.trigger("error","http")}),b._xhr=c,c},_setRequestHeader:function(a,b){e.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("runtime/flash/blob",["runtime/flash/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.flashExec("Blob","slice",a,c);return new b(d.uid,d)}})}),b("runtime/flash/md5",["runtime/flash/runtime"],function(a){return a.register("Md5",{init:function(){},loadFromBlob:function(a){return this.flashExec("Md5","loadFromBlob",a.uid)}})}),b("preset/all",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","widgets/md5","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/androidpatch","runtime/html5/image","runtime/html5/transport","runtime/html5/md5","runtime/flash/filepicker","runtime/flash/image","runtime/flash/transport","runtime/flash/blob","runtime/flash/md5"],function(a){return a}),b("widgets/log",["base","uploader","widgets/widget"],function(a,b){function c(a){var b=e.extend({},d,a),c=f.replace(/^(.*)\?/,"$1"+e.param(b)),g=new Image;g.src=c}var d,e=a.$,f=" http://static.tieba.baidu.com/tb/pms/img/st.gif??",g=(location.hostname||location.host||"protected").toLowerCase(),h=g&&/baidu/i.exec(g);if(h)return d={dv:3,master:"webuploader",online:/test/.exec(g)?0:1,module:"",product:g,type:0},b.register({name:"log",init:function(){var a=this.owner,b=0,d=0;a.on("error",function(a){c({type:2,c_error_code:a})}).on("uploadError",function(a,b){c({type:2,c_error_code:"UPLOAD_ERROR",c_reason:""+b})}).on("uploadComplete",function(a){b++,d+=a.size}).on("uploadFinished",function(){c({c_count:b,c_size:d}),b=d=0}),c({c_usage:1})}})}),b("webuploader",["preset/all","widgets/log"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.js
new file mode 100644
index 0000000..fa51de5
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.js
@@ -0,0 +1,5026 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/dnd',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function DragAndDrop( opts ) {
+            opts = this.options = $.extend({}, DragAndDrop.options, opts );
+
+            opts.container = $( opts.container );
+
+            if ( !opts.container.length ) {
+                return;
+            }
+
+            RuntimeClent.call( this, 'DragAndDrop' );
+        }
+
+        DragAndDrop.options = {
+            accept: null,
+            disableGlobalDnd: false
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: DragAndDrop,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( DragAndDrop.prototype );
+
+        return DragAndDrop;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview DragAndDrop Widget。
+     */
+    define('widgets/filednd',[
+        'base',
+        'uploader',
+        'lib/dnd',
+        'widgets/widget'
+    ], function( Base, Uploader, Dnd ) {
+        var $ = Base.$;
+
+        Uploader.options.dnd = '';
+
+        /**
+         * @property {Selector} [dnd=undefined]  指定Drag And Drop拖拽的容器,如果不指定,则不启动。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @property {Selector} [disableGlobalDnd=false]  是否禁掉整个页面的拖拽功能,如果不禁用,图片拖进来的时候会默认被浏览器打开。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @event dndAccept
+         * @param {DataTransferItemList} items DataTransferItem
+         * @description 阻止此事件可以拒绝某些类型的文件拖入进来。目前只有 chrome 提供这样的 API,且只能通过 mime-type 验证。
+         * @for  Uploader
+         */
+        return Uploader.register({
+            name: 'dnd',
+
+            init: function( opts ) {
+
+                if ( !opts.dnd ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        disableGlobalDnd: opts.disableGlobalDnd,
+                        container: opts.dnd,
+                        accept: opts.accept
+                    }),
+                    dnd;
+
+                this.dnd = dnd = new Dnd( options );
+
+                dnd.once( 'ready', deferred.resolve );
+                dnd.on( 'drop', function( files ) {
+                    me.request( 'add-file', [ files ]);
+                });
+
+                // 检测文件是否全部允许添加。
+                dnd.on( 'accept', function( items ) {
+                    return me.owner.trigger( 'dndAccept', items );
+                });
+
+                dnd.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.dnd && this.dnd.destroy();
+            }
+        });
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepaste',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function FilePaste( opts ) {
+            opts = this.options = $.extend({}, opts );
+            opts.container = $( opts.container || document.body );
+            RuntimeClent.call( this, 'FilePaste' );
+        }
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePaste,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( FilePaste.prototype );
+
+        return FilePaste;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/filepaste',[
+        'base',
+        'uploader',
+        'lib/filepaste',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePaste ) {
+        var $ = Base.$;
+
+        /**
+         * @property {Selector} [paste=undefined]  指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为`document.body`.
+         * @namespace options
+         * @for Uploader
+         */
+        return Uploader.register({
+            name: 'paste',
+
+            init: function( opts ) {
+
+                if ( !opts.paste ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        container: opts.paste,
+                        accept: opts.accept
+                    }),
+                    paste;
+
+                this.paste = paste = new FilePaste( options );
+
+                paste.once( 'ready', deferred.resolve );
+                paste.on( 'paste', function( files ) {
+                    me.owner.request( 'add-file', [ files ]);
+                });
+                paste.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.paste && this.paste.destroy();
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/dnd',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        var $ = Base.$,
+            prefix = 'webuploader-dnd-';
+
+        return Html5Runtime.register( 'DragAndDrop', {
+            init: function() {
+                var elem = this.elem = this.options.container;
+
+                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
+                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
+                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
+                this.dropHandler = Base.bindFn( this._dropHandler, this );
+                this.dndOver = false;
+
+                elem.on( 'dragenter', this.dragEnterHandler );
+                elem.on( 'dragover', this.dragOverHandler );
+                elem.on( 'dragleave', this.dragLeaveHandler );
+                elem.on( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).on( 'dragover', this.dragOverHandler );
+                    $( document ).on( 'drop', this.dropHandler );
+                }
+            },
+
+            _dragEnterHandler: function( e ) {
+                var me = this,
+                    denied = me._denied || false,
+                    items;
+
+                e = e.originalEvent || e;
+
+                if ( !me.dndOver ) {
+                    me.dndOver = true;
+
+                    // 注意只有 chrome 支持。
+                    items = e.dataTransfer.items;
+
+                    if ( items && items.length ) {
+                        me._denied = denied = !me.trigger( 'accept', items );
+                    }
+
+                    me.elem.addClass( prefix + 'over' );
+                    me.elem[ denied ? 'addClass' :
+                            'removeClass' ]( prefix + 'denied' );
+                }
+
+                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
+
+                return false;
+            },
+
+            _dragOverHandler: function( e ) {
+                // 只处理框内的。
+                var parentElem = this.elem.parent().get( 0 );
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                clearTimeout( this._leaveTimer );
+                this._dragEnterHandler.call( this, e );
+
+                return false;
+            },
+
+            _dragLeaveHandler: function() {
+                var me = this,
+                    handler;
+
+                handler = function() {
+                    me.dndOver = false;
+                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
+                };
+
+                clearTimeout( me._leaveTimer );
+                me._leaveTimer = setTimeout( handler, 100 );
+                return false;
+            },
+
+            _dropHandler: function( e ) {
+                var me = this,
+                    ruid = me.getRuid(),
+                    parentElem = me.elem.parent().get( 0 ),
+                    dataTransfer, data;
+
+                // 只处理框内的。
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                e = e.originalEvent || e;
+                dataTransfer = e.dataTransfer;
+
+                // 如果是页面内拖拽,还不能处理,不阻止事件。
+                // 此处 ie11 下会报参数错误,
+                try {
+                    data = dataTransfer.getData('text/html');
+                } catch( err ) {
+                }
+
+                if ( data ) {
+                    return;
+                }
+
+                me._getTansferFiles( dataTransfer, function( results ) {
+                    me.trigger( 'drop', $.map( results, function( file ) {
+                        return new File( ruid, file );
+                    }) );
+                });
+
+                me.dndOver = false;
+                me.elem.removeClass( prefix + 'over' );
+                return false;
+            },
+
+            // 如果传入 callback 则去查看文件夹,否则只管当前文件夹。
+            _getTansferFiles: function( dataTransfer, callback ) {
+                var results  = [],
+                    promises = [],
+                    items, files, file, item, i, len, canAccessFolder;
+
+                items = dataTransfer.items;
+                files = dataTransfer.files;
+
+                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
+
+                for ( i = 0, len = files.length; i < len; i++ ) {
+                    file = files[ i ];
+                    item = items && items[ i ];
+
+                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
+
+                        promises.push( this._traverseDirectoryTree(
+                                item.webkitGetAsEntry(), results ) );
+                    } else {
+                        results.push( file );
+                    }
+                }
+
+                Base.when.apply( Base, promises ).done(function() {
+
+                    if ( !results.length ) {
+                        return;
+                    }
+
+                    callback( results );
+                });
+            },
+
+            _traverseDirectoryTree: function( entry, results ) {
+                var deferred = Base.Deferred(),
+                    me = this;
+
+                if ( entry.isFile ) {
+                    entry.file(function( file ) {
+                        results.push( file );
+                        deferred.resolve();
+                    });
+                } else if ( entry.isDirectory ) {
+                    entry.createReader().readEntries(function( entries ) {
+                        var len = entries.length,
+                            promises = [],
+                            arr = [],    // 为了保证顺序。
+                            i;
+
+                        for ( i = 0; i < len; i++ ) {
+                            promises.push( me._traverseDirectoryTree(
+                                    entries[ i ], arr ) );
+                        }
+
+                        Base.when.apply( Base, promises ).then(function() {
+                            results.push.apply( results, arr );
+                            deferred.resolve();
+                        }, deferred.reject );
+                    });
+                }
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                var elem = this.elem;
+
+                // 还没 init 就调用 destroy
+                if (!elem) {
+                    return;
+                }
+
+                elem.off( 'dragenter', this.dragEnterHandler );
+                elem.off( 'dragover', this.dragOverHandler );
+                elem.off( 'dragleave', this.dragLeaveHandler );
+                elem.off( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).off( 'dragover', this.dragOverHandler );
+                    $( document ).off( 'drop', this.dropHandler );
+                }
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/filepaste',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        return Html5Runtime.register( 'FilePaste', {
+            init: function() {
+                var opts = this.options,
+                    elem = this.elem = opts.container,
+                    accept = '.*',
+                    arr, i, len, item;
+
+                // accetp的mimeTypes中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].mimeTypes;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = arr.join(',');
+                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
+                    }
+                }
+                this.accept = accept = new RegExp( accept, 'i' );
+                this.hander = Base.bindFn( this._pasteHander, this );
+                elem.on( 'paste', this.hander );
+            },
+
+            _pasteHander: function( e ) {
+                var allowed = [],
+                    ruid = this.getRuid(),
+                    items, item, blob, i, len;
+
+                e = e.originalEvent || e;
+                items = e.clipboardData.items;
+
+                for ( i = 0, len = items.length; i < len; i++ ) {
+                    item = items[ i ];
+
+                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
+                        continue;
+                    }
+
+                    allowed.push( new File( ruid, blob ) );
+                }
+
+                if ( allowed.length ) {
+                    // 不阻止非文件粘贴(文字粘贴)的事件冒泡
+                    e.preventDefault();
+                    e.stopPropagation();
+                    this.trigger( 'paste', allowed );
+                }
+            },
+
+            destroy: function() {
+                this.elem.off( 'paste', this.hander );
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    /**
+     * @fileOverview FlashRuntime
+     */
+    define('runtime/flash/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var $ = Base.$,
+            type = 'flash',
+            components = {};
+
+
+        function getFlashVersion() {
+            var version;
+
+            try {
+                version = navigator.plugins[ 'Shockwave Flash' ];
+                version = version.description;
+            } catch ( ex ) {
+                try {
+                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
+                            .GetVariable('$version');
+                } catch ( ex2 ) {
+                    version = '0.0';
+                }
+            }
+            version = version.match( /\d+/g );
+            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
+        }
+
+        function FlashRuntime() {
+            var pool = {},
+                clients = {},
+                destroy = this.destroy,
+                me = this,
+                jsreciver = Base.guid('webuploader_');
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/ ) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                clients[ uid ] = client;
+
+                if ( components[ comp ] ) {
+                    if ( !pool[ uid ] ) {
+                        pool[ uid ] = new components[ comp ]( client, me );
+                    }
+
+                    instance = pool[ uid ];
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+
+                return me.flashExec.apply( client, arguments );
+            };
+
+            function handler( evt, obj ) {
+                var type = evt.type || evt,
+                    parts, uid;
+
+                parts = type.split('::');
+                uid = parts[ 0 ];
+                type = parts[ 1 ];
+
+                // console.log.apply( console, arguments );
+
+                if ( type === 'Ready' && uid === me.uid ) {
+                    me.trigger('ready');
+                } else if ( clients[ uid ] ) {
+                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
+                }
+
+                // Base.log( evt, obj );
+            }
+
+            // flash的接受器。
+            window[ jsreciver ] = function() {
+                var args = arguments;
+
+                // 为了能捕获得到。
+                setTimeout(function() {
+                    handler.apply( null, args );
+                }, 1 );
+            };
+
+            this.jsreciver = jsreciver;
+
+            this.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+
+            this.flashExec = function( comp, fn ) {
+                var flash = me.getFlash(),
+                    args = Base.slice( arguments, 2 );
+
+                return flash.exec( this.uid, comp, fn, args );
+            };
+
+            // @todo
+        }
+
+        Base.inherits( Runtime, {
+            constructor: FlashRuntime,
+
+            init: function() {
+                var container = this.getContainer(),
+                    opts = this.options,
+                    html;
+
+                // if not the minimal height, shims are not initialized
+                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
+                container.css({
+                    position: 'absolute',
+                    top: '-8px',
+                    left: '-8px',
+                    width: '9px',
+                    height: '9px',
+                    overflow: 'hidden'
+                });
+
+                // insert flash object
+                html = '<object id="' + this.uid + '" type="application/' +
+                        'x-shockwave-flash" data="' +  opts.swf + '" ';
+
+                if ( Base.browser.ie ) {
+                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
+                }
+
+                html += 'width="100%" height="100%" style="outline:0">'  +
+                    '<param name="movie" value="' + opts.swf + '" />' +
+                    '<param name="flashvars" value="uid=' + this.uid +
+                    '&jsreciver=' + this.jsreciver + '" />' +
+                    '<param name="wmode" value="transparent" />' +
+                    '<param name="allowscriptaccess" value="always" />' +
+                '</object>';
+
+                container.html( html );
+            },
+
+            getFlash: function() {
+                if ( this._flash ) {
+                    return this._flash;
+                }
+
+                this._flash = $( '#' + this.uid ).get( 0 );
+                return this._flash;
+            }
+
+        });
+
+        FlashRuntime.register = function( name, component ) {
+            component = components[ name ] = Base.inherits( CompBase, $.extend({
+
+                // @todo fix this later
+                flashExec: function() {
+                    var owner = this.owner,
+                        runtime = this.getRuntime();
+
+                    return runtime.flashExec.apply( owner, arguments );
+                }
+            }, component ) );
+
+            return component;
+        };
+
+        if ( getFlashVersion() >= 11.4 ) {
+            Runtime.addRuntime( type, FlashRuntime );
+        }
+
+        return FlashRuntime;
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/flash/filepicker',[
+        'base',
+        'runtime/flash/runtime'
+    ], function( Base, FlashRuntime ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'FilePicker', {
+            init: function( opts ) {
+                var copy = $.extend({}, opts ),
+                    len, i;
+
+                // 修复Flash再没有设置title的情况下无法弹出flash文件选择框的bug.
+                len = copy.accept && copy.accept.length;
+                for (  i = 0; i < len; i++ ) {
+                    if ( !copy.accept[ i ].title ) {
+                        copy.accept[ i ].title = 'Files';
+                    }
+                }
+
+                delete copy.button;
+                delete copy.id;
+                delete copy.container;
+
+                this.flashExec( 'FilePicker', 'init', copy );
+            },
+
+            destroy: function() {
+                this.flashExec( 'FilePicker', 'destroy' );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/flash/transport',[
+        'base',
+        'runtime/flash/runtime',
+        'runtime/client'
+    ], function( Base, FlashRuntime, RuntimeClient ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+                this._responseJson = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    binary;
+
+                xhr.connectRuntime( blob.ruid );
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.uid;
+                } else {
+                    $.each( owner._formData, function( k, v ) {
+                        xhr.exec( 'append', k, v );
+                    });
+
+                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+                xhr.exec( 'send', {
+                    method: opts.method,
+                    url: server,
+                    forceURLStream: opts.forceURLStream,
+                    mimeType: 'application/octet-stream'
+                }, binary );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            getResponse: function() {
+                return this._response || '';
+            },
+
+            getResponseAsJson: function() {
+                return this._responseJson;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.exec('abort');
+                    xhr.destroy();
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new RuntimeClient('XMLHttpRequest');
+
+                xhr.on( 'uploadprogress progress', function( e ) {
+                    var percent = e.loaded / e.total;
+                    percent = Math.min( 1, Math.max( 0, percent ) );
+                    return me.trigger( 'progress', percent );
+                });
+
+                xhr.on( 'load', function() {
+                    var status = xhr.exec('getStatus'),
+                        readBody = false,
+                        err = '',
+                        p;
+
+                    xhr.off();
+                    me._xhr = null;
+
+                    if ( status >= 200 && status < 300 ) {
+                        readBody = true;
+                    } else if ( status >= 500 && status < 600 ) {
+                        readBody = true;
+                        err = 'server';
+                    } else {
+                        err = 'http';
+                    }
+
+                    if ( readBody ) {
+                        me._response = xhr.exec('getResponse');
+                        me._response = decodeURIComponent( me._response );
+
+                        // flash 处理可能存在 bug, 没辙只能靠 js 了
+                        // try {
+                        //     me._responseJson = xhr.exec('getResponseAsJson');
+                        // } catch ( error ) {
+
+                        p = window.JSON && window.JSON.parse || function( s ) {
+                            try {
+                                return new Function('return ' + s).call();
+                            } catch ( err ) {
+                                return {};
+                            }
+                        };
+                        me._responseJson  = me._response ? p(me._response) : {};
+
+                        // }
+                    }
+
+                    xhr.destroy();
+                    xhr = null;
+
+                    return err ? me.trigger( 'error', err ) : me.trigger('load');
+                });
+
+                xhr.on( 'error', function() {
+                    xhr.off();
+                    me._xhr = null;
+                    me.trigger( 'error', 'http' );
+                });
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.exec( 'setRequestHeader', key, val );
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/flash/blob',[
+        'runtime/flash/runtime',
+        'lib/blob'
+    ], function( FlashRuntime, Blob ) {
+
+        return FlashRuntime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.flashExec( 'Blob', 'slice', start, end );
+
+                return new Blob( blob.uid, blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview 没有图像处理的版本。
+     */
+    define('preset/withoutimage',[
+        'base',
+
+        // widgets
+        'widgets/filednd',
+        'widgets/filepaste',
+        'widgets/filepicker',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+
+        // runtimes
+        // html5
+        'runtime/html5/blob',
+        'runtime/html5/dnd',
+        'runtime/html5/filepaste',
+        'runtime/html5/filepicker',
+        'runtime/html5/transport',
+
+        // flash
+        'runtime/flash/filepicker',
+        'runtime/flash/transport',
+        'runtime/flash/blob'
+    ], function( Base ) {
+        return Base;
+    });
+    define('webuploader',[
+        'preset/withoutimage'
+    ], function( preset ) {
+        return preset;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.min.js
new file mode 100644
index 0000000..7d889db
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.noimage.min.js
@@ -0,0 +1,2 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({name:"dnd",init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return this.dnd=e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}},destroy:function(){this.dnd&&this.dnd.destroy()}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({name:"paste",init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return this.paste=e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}},destroy:function(){this.paste&&this.paste.destroy()}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});if(!c.runing){c.runing=!0;var d=[];f.each(c.pool,function(a,b){var e=b.file;e.getStatus()===h.INTERRUPT&&(d.push(e),c._trigged=!1,b.transport&&b.transport.send())});for(var b;b=d.shift();)b.setStatus(h.PROGRESS);b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload")}},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d.updateFileProgress(e),d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){b.percentage=a,g.updateFileProgress(k)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})},updateFileProgress:function(a){var b=0,c=0;a.blocks&&(f.each(a.blocks,function(a,b){c+=(b.percentage||0)*(b.end-b.start)}),b=c/a.size,this.owner.trigger("uploadProgress",a,b||0))}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({name:"validator",init:function(){var b=this;a.nextTick(function(){e.each(f,function(){this.call(b.owner)})})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileNumLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("reset",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileSizeLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("reset",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",d,a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}),b.on("reset",function(){d={}}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destroy;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destroy=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;
+return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b,f,g=this,h=g.getRuid(),i=g.elem.parent().get(0);if(i&&!d.contains(i,a.currentTarget))return!1;a=a.originalEvent||a,b=a.dataTransfer;try{f=b.getData("text/html")}catch(j){}return f?void 0:(g._getTansferFiles(b,function(a){g.trigger("drop",d.map(a,function(a){return new c(h,a)}))}),g.dndOver=!1,g.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k=[],l=[];for(d=b.items,e=b.files,j=!(!d||!d[0].webkitGetAsEntry),h=0,i=e.length;i>h;h++)f=e[h],g=d&&d[h],j&&g.webkitGetAsEntry().isDirectory?l.push(this._traverseDirectoryTree(g.webkitGetAsEntry(),k)):k.push(f);a.when.apply(a,l).done(function(){k.length&&c(k)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a&&(a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragOverHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler)))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=this.label=c(document.createElement("label")),k=this.input=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),b.value=null,this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){this.input.off(),this.label.off()}})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType&&h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destroy,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destroy=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.id,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){this.flashExec("FilePicker","destroy")}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(b,c,d){var e=b.$;return c.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,d=this._initAjax(),f=b._blob,g=c.server;d.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+e.param(b._formData),a=f.uid):(e.each(b._formData,function(a,b){d.exec("append",a,b)}),d.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(d,c.headers),d.exec("send",{method:c.method,url:g,forceURLStream:c.forceURLStream,mimeType:"application/octet-stream"},a)},getStatus:function(){return this._status},getResponse:function(){return this._response||""},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var b=this,c=new d("XMLHttpRequest");return c.on("uploadprogress progress",function(a){var c=a.loaded/a.total;return c=Math.min(1,Math.max(0,c)),b.trigger("progress",c)}),c.on("load",function(){var d,e=c.exec("getStatus"),f=!1,g="";return c.off(),b._xhr=null,e>=200&&300>e?f=!0:e>=500&&600>e?(f=!0,g="server"):g="http",f&&(b._response=c.exec("getResponse"),b._response=decodeURIComponent(b._response),d=a.JSON&&a.JSON.parse||function(a){try{return new Function("return "+a).call()}catch(b){return{}}},b._responseJson=b._response?d(b._response):{}),c.destroy(),c=null,g?b.trigger("error",g):b.trigger("load")}),c.on("error",function(){c.off(),b._xhr=null,b.trigger("error","http")}),b._xhr=c,c},_setRequestHeader:function(a,b){e.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("runtime/flash/blob",["runtime/flash/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.flashExec("Blob","slice",a,c);return new b(d.uid,d)}})}),b("preset/withoutimage",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/transport","runtime/flash/filepicker","runtime/flash/transport","runtime/flash/blob"],function(a){return a}),b("webuploader",["preset/withoutimage"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.js
new file mode 100644
index 0000000..b6624e6
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.js
@@ -0,0 +1,8012 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/dnd',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function DragAndDrop( opts ) {
+            opts = this.options = $.extend({}, DragAndDrop.options, opts );
+
+            opts.container = $( opts.container );
+
+            if ( !opts.container.length ) {
+                return;
+            }
+
+            RuntimeClent.call( this, 'DragAndDrop' );
+        }
+
+        DragAndDrop.options = {
+            accept: null,
+            disableGlobalDnd: false
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: DragAndDrop,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( DragAndDrop.prototype );
+
+        return DragAndDrop;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview DragAndDrop Widget。
+     */
+    define('widgets/filednd',[
+        'base',
+        'uploader',
+        'lib/dnd',
+        'widgets/widget'
+    ], function( Base, Uploader, Dnd ) {
+        var $ = Base.$;
+
+        Uploader.options.dnd = '';
+
+        /**
+         * @property {Selector} [dnd=undefined]  指定Drag And Drop拖拽的容器,如果不指定,则不启动。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @property {Selector} [disableGlobalDnd=false]  是否禁掉整个页面的拖拽功能,如果不禁用,图片拖进来的时候会默认被浏览器打开。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @event dndAccept
+         * @param {DataTransferItemList} items DataTransferItem
+         * @description 阻止此事件可以拒绝某些类型的文件拖入进来。目前只有 chrome 提供这样的 API,且只能通过 mime-type 验证。
+         * @for  Uploader
+         */
+        return Uploader.register({
+            name: 'dnd',
+
+            init: function( opts ) {
+
+                if ( !opts.dnd ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        disableGlobalDnd: opts.disableGlobalDnd,
+                        container: opts.dnd,
+                        accept: opts.accept
+                    }),
+                    dnd;
+
+                this.dnd = dnd = new Dnd( options );
+
+                dnd.once( 'ready', deferred.resolve );
+                dnd.on( 'drop', function( files ) {
+                    me.request( 'add-file', [ files ]);
+                });
+
+                // 检测文件是否全部允许添加。
+                dnd.on( 'accept', function( items ) {
+                    return me.owner.trigger( 'dndAccept', items );
+                });
+
+                dnd.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.dnd && this.dnd.destroy();
+            }
+        });
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepaste',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function FilePaste( opts ) {
+            opts = this.options = $.extend({}, opts );
+            opts.container = $( opts.container || document.body );
+            RuntimeClent.call( this, 'FilePaste' );
+        }
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePaste,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( FilePaste.prototype );
+
+        return FilePaste;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/filepaste',[
+        'base',
+        'uploader',
+        'lib/filepaste',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePaste ) {
+        var $ = Base.$;
+
+        /**
+         * @property {Selector} [paste=undefined]  指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为`document.body`.
+         * @namespace options
+         * @for Uploader
+         */
+        return Uploader.register({
+            name: 'paste',
+
+            init: function( opts ) {
+
+                if ( !opts.paste ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        container: opts.paste,
+                        accept: opts.accept
+                    }),
+                    paste;
+
+                this.paste = paste = new FilePaste( options );
+
+                paste.once( 'ready', deferred.resolve );
+                paste.on( 'paste', function( files ) {
+                    me.owner.request( 'add-file', [ files ]);
+                });
+                paste.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.paste && this.paste.destroy();
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor|dom} 指定选择文件的按钮容器,不指定则不创建按钮。**注意** 这里虽然写的是 id, 但是不是只支持 id, 还支持 class, 或者 dom 节点。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('lib/image',[
+        'base',
+        'runtime/client',
+        'lib/blob'
+    ], function( Base, RuntimeClient, Blob ) {
+        var $ = Base.$;
+
+        // 构造器。
+        function Image( opts ) {
+            this.options = $.extend({}, Image.options, opts );
+            RuntimeClient.call( this, 'Image' );
+
+            this.on( 'load', function() {
+                this._info = this.exec('info');
+                this._meta = this.exec('meta');
+            });
+        }
+
+        // 默认选项。
+        Image.options = {
+
+            // 默认的图片处理质量
+            quality: 90,
+
+            // 是否裁剪
+            crop: false,
+
+            // 是否保留头部信息
+            preserveHeaders: false,
+
+            // 是否允许放大。
+            allowMagnify: false
+        };
+
+        // 继承RuntimeClient.
+        Base.inherits( RuntimeClient, {
+            constructor: Image,
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    ruid = blob.getRuid();
+
+                this.connectRuntime( ruid, function() {
+                    me.exec( 'init', me.options );
+                    me.exec( 'loadFromBlob', blob );
+                });
+            },
+
+            resize: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'resize' ].concat( args ) );
+            },
+
+            crop: function() {
+                var args = Base.slice( arguments );
+                return this.exec.apply( this, [ 'crop' ].concat( args ) );
+            },
+
+            getAsDataUrl: function( type ) {
+                return this.exec( 'getAsDataUrl', type );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this.exec( 'getAsBlob', type );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+
+        return Image;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/image',[
+        'base',
+        'uploader',
+        'lib/image',
+        'widgets/widget'
+    ], function( Base, Uploader, Image ) {
+
+        var $ = Base.$,
+            throttle;
+
+        // 根据要处理的文件大小来节流,一次不能处理太多,会卡。
+        throttle = (function( max ) {
+            var occupied = 0,
+                waiting = [],
+                tick = function() {
+                    var item;
+
+                    while ( waiting.length && occupied < max ) {
+                        item = waiting.shift();
+                        occupied += item[ 0 ];
+                        item[ 1 ]();
+                    }
+                };
+
+            return function( emiter, size, cb ) {
+                waiting.push([ size, cb ]);
+                emiter.once( 'destroy', function() {
+                    occupied -= size;
+                    setTimeout( tick, 1 );
+                });
+                setTimeout( tick, 1 );
+            };
+        })( 5 * 1024 * 1024 );
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Object} [thumb]
+             * @namespace options
+             * @for Uploader
+             * @description 配置生成缩略图的选项。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 110,
+             *     height: 110,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 70,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: true,
+             *
+             *     // 是否允许裁剪。
+             *     crop: true,
+             *
+             *     // 为空的话则保留原有图片格式。
+             *     // 否则强制转换成指定的类型。
+             *     type: 'image/jpeg'
+             * }
+             * ```
+             */
+            thumb: {
+                width: 110,
+                height: 110,
+                quality: 70,
+                allowMagnify: true,
+                crop: true,
+                preserveHeaders: false,
+
+                // 为空的话则保留原有图片格式。
+                // 否则强制转换成指定的类型。
+                // IE 8下面 base64 大小不能超过 32K 否则预览失败,而非 jpeg 编码的图片很可
+                // 能会超过 32k, 所以这里设置成预览的时候都是 image/jpeg
+                type: 'image/jpeg'
+            },
+
+            /**
+             * @property {Object} [compress]
+             * @namespace options
+             * @for Uploader
+             * @description 配置压缩的图片的选项。如果此选项为`false`, 则图片在上传前不进行压缩。
+             *
+             * 默认为:
+             *
+             * ```javascript
+             * {
+             *     width: 1600,
+             *     height: 1600,
+             *
+             *     // 图片质量,只有type为`image/jpeg`的时候才有效。
+             *     quality: 90,
+             *
+             *     // 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
+             *     allowMagnify: false,
+             *
+             *     // 是否允许裁剪。
+             *     crop: false,
+             *
+             *     // 是否保留头部meta信息。
+             *     preserveHeaders: true,
+             *
+             *     // 如果发现压缩后文件大小比原来还大,则使用原来图片
+             *     // 此属性可能会影响图片自动纠正功能
+             *     noCompressIfLarger: false,
+             *
+             *     // 单位字节,如果图片大小小于此值,不会采用压缩。
+             *     compressSize: 0
+             * }
+             * ```
+             */
+            compress: {
+                width: 1600,
+                height: 1600,
+                quality: 90,
+                allowMagnify: false,
+                crop: false,
+                preserveHeaders: true
+            }
+        });
+
+        return Uploader.register({
+
+            name: 'image',
+
+
+            /**
+             * 生成缩略图,此过程为异步,所以需要传入`callback`。
+             * 通常情况在图片加入队里后调用此方法来生成预览图以增强交互效果。
+             *
+             * 当 width 或者 height 的值介于 0 - 1 时,被当成百分比使用。
+             *
+             * `callback`中可以接收到两个参数。
+             * * 第一个为error,如果生成缩略图有错误,此error将为真。
+             * * 第二个为ret, 缩略图的Data URL值。
+             *
+             * **注意**
+             * Date URL在IE6/7中不支持,所以不用调用此方法了,直接显示一张暂不支持预览图片好了。
+             * 也可以借助服务端,将 base64 数据传给服务端,生成一个临时文件供预览。
+             *
+             * @method makeThumb
+             * @grammar makeThumb( file, callback ) => undefined
+             * @grammar makeThumb( file, callback, width, height ) => undefined
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.makeThumb( file, function( error, ret ) {
+             *         if ( error ) {
+             *             $li.text('预览错误');
+             *         } else {
+             *             $li.append('<img alt="" src="' + ret + '" />');
+             *         }
+             *     });
+             *
+             * });
+             */
+            makeThumb: function( file, cb, width, height ) {
+                var opts, image;
+
+                file = this.request( 'get-file', file );
+
+                // 只预览图片格式。
+                if ( !file.type.match( /^image/ ) ) {
+                    cb( true );
+                    return;
+                }
+
+                opts = $.extend({}, this.options.thumb );
+
+                // 如果传入的是object.
+                if ( $.isPlainObject( width ) ) {
+                    opts = $.extend( opts, width );
+                    width = null;
+                }
+
+                width = width || opts.width;
+                height = height || opts.height;
+
+                image = new Image( opts );
+
+                image.once( 'load', function() {
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                // 当 resize 完后
+                image.once( 'complete', function() {
+                    cb( false, image.getAsDataUrl( opts.type ) );
+                    image.destroy();
+                });
+
+                image.once( 'error', function( reason ) {
+                    cb( reason || true );
+                    image.destroy();
+                });
+
+                throttle( image, file.source.size, function() {
+                    file._info && image.info( file._info );
+                    file._meta && image.meta( file._meta );
+                    image.loadFromBlob( file.source );
+                });
+            },
+
+            beforeSendFile: function( file ) {
+                var opts = this.options.compress || this.options.resize,
+                    compressSize = opts && opts.compressSize || 0,
+                    noCompressIfLarger = opts && opts.noCompressIfLarger || false,
+                    image, deferred;
+
+                file = this.request( 'get-file', file );
+
+                // 只压缩 jpeg 图片格式。
+                // gif 可能会丢失针
+                // bmp png 基本上尺寸都不大,且压缩比比较小。
+                if ( !opts || !~'image/jpeg,image/jpg'.indexOf( file.type ) ||
+                        file.size < compressSize ||
+                        file._compressed ) {
+                    return;
+                }
+
+                opts = $.extend({}, opts );
+                deferred = Base.Deferred();
+
+                image = new Image( opts );
+
+                deferred.always(function() {
+                    image.destroy();
+                    image = null;
+                });
+                image.once( 'error', deferred.reject );
+                image.once( 'load', function() {
+                    var width = opts.width,
+                        height = opts.height;
+
+                    file._info = file._info || image.info();
+                    file._meta = file._meta || image.meta();
+
+                    // 如果 width 的值介于 0 - 1
+                    // 说明设置的是百分比。
+                    if ( width <= 1 && width > 0 ) {
+                        width = file._info.width * width;
+                    }
+
+                    // 同样的规则应用于 height
+                    if ( height <= 1 && height > 0 ) {
+                        height = file._info.height * height;
+                    }
+
+                    image.resize( width, height );
+                });
+
+                image.once( 'complete', function() {
+                    var blob, size;
+
+                    // 移动端 UC / qq 浏览器的无图模式下
+                    // ctx.getImageData 处理大图的时候会报 Exception
+                    // INDEX_SIZE_ERR: DOM Exception 1
+                    try {
+                        blob = image.getAsBlob( opts.type );
+
+                        size = file.size;
+
+                        // 如果压缩后,比原来还大则不用压缩后的。
+                        if ( !noCompressIfLarger || blob.size < size ) {
+                            // file.source.destroy && file.source.destroy();
+                            file.source = blob;
+                            file.size = blob.size;
+
+                            file.trigger( 'resize', blob.size, size );
+                        }
+
+                        // 标记,避免重复压缩。
+                        file._compressed = true;
+                        deferred.resolve();
+                    } catch ( e ) {
+                        // 出错了直接继续,让其上传原始图片
+                        deferred.resolve();
+                    }
+                });
+
+                file._info && image.info( file._info );
+                file._meta && image.meta( file._meta );
+
+                image.loadFromBlob( file.source );
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        /**
+         * @property {Object} [runtimeOrder=html5,flash]
+         * @namespace options
+         * @for Uploader
+         * @description 指定运行时启动顺序。默认会想尝试 html5 是否支持,如果支持则使用 html5, 否则则使用 flash.
+         *
+         * 可以将此值设置成 `flash`,来强制使用 flash 运行时。
+         */
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                var files = [];
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        files.push(file);
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                var file;
+                while ( (file = files.shift()) ) {
+                    file.setStatus( Status.PROGRESS );
+                }
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me.updateFileProgress( file );
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    block.percentage = percentage;
+                    me.updateFileProgress( file );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            },
+
+            updateFileProgress: function(file) {
+                var totalPercent = 0,
+                    uploaded = 0;
+
+                if (!file.blocks) {
+                    return;
+                }
+
+                $.each( file.blocks, function( _, v ) {
+                    uploaded += (v.percentage || 0) * (v.end - v.start);
+                });
+
+                totalPercent = uploaded / file.size;
+                this.owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Md5
+     */
+    define('lib/md5',[
+        'runtime/client',
+        'mediator'
+    ], function( RuntimeClient, Mediator ) {
+
+        function Md5() {
+            RuntimeClient.call( this, 'Md5' );
+        }
+
+        // 让 Md5 具备事件功能。
+        Mediator.installTo( Md5.prototype );
+
+        Md5.prototype.loadFromBlob = function( blob ) {
+            var me = this;
+
+            if ( me.getRuid() ) {
+                me.disconnectRuntime();
+            }
+
+            // 连接到blob归属的同一个runtime.
+            me.connectRuntime( blob.ruid, function() {
+                me.exec('init');
+                me.exec( 'loadFromBlob', blob );
+            });
+        };
+
+        Md5.prototype.getResult = function() {
+            return this.exec('getResult');
+        };
+
+        return Md5;
+    });
+    /**
+     * @fileOverview 图片操作, 负责预览图片和上传前压缩图片
+     */
+    define('widgets/md5',[
+        'base',
+        'uploader',
+        'lib/md5',
+        'lib/blob',
+        'widgets/widget'
+    ], function( Base, Uploader, Md5, Blob ) {
+
+        return Uploader.register({
+            name: 'md5',
+
+
+            /**
+             * 计算文件 md5 值,返回一个 promise 对象,可以监听 progress 进度。
+             *
+             *
+             * @method md5File
+             * @grammar md5File( file[, start[, end]] ) => promise
+             * @for Uploader
+             * @example
+             *
+             * uploader.on( 'fileQueued', function( file ) {
+             *     var $li = ...;
+             *
+             *     uploader.md5File( file )
+             *
+             *         // 及时显示进度
+             *         .progress(function(percentage) {
+             *             console.log('Percentage:', percentage);
+             *         })
+             *
+             *         // 完成
+             *         .then(function(val) {
+             *             console.log('md5 result:', val);
+             *         });
+             *
+             * });
+             */
+            md5File: function( file, start, end ) {
+                var md5 = new Md5(),
+                    deferred = Base.Deferred(),
+                    blob = (file instanceof Blob) ? file :
+                        this.request( 'get-file', file ).source;
+
+                md5.on( 'progress load', function( e ) {
+                    e = e || {};
+                    deferred.notify( e.total ? e.loaded / e.total : 1 );
+                });
+
+                md5.on( 'complete', function() {
+                    deferred.resolve( md5.getResult() );
+                });
+
+                md5.on( 'error', function( reason ) {
+                    deferred.reject( reason );
+                });
+
+                if ( arguments.length > 1 ) {
+                    start = start || 0;
+                    end = end || 0;
+                    start < 0 && (start = blob.size + start);
+                    end < 0 && (end = blob.size + end);
+                    end = Math.min( end, blob.size );
+                    blob = blob.slice( start, end );
+                }
+
+                md5.loadFromBlob( blob );
+
+                return deferred.promise();
+            }
+        });
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/dnd',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        var $ = Base.$,
+            prefix = 'webuploader-dnd-';
+
+        return Html5Runtime.register( 'DragAndDrop', {
+            init: function() {
+                var elem = this.elem = this.options.container;
+
+                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
+                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
+                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
+                this.dropHandler = Base.bindFn( this._dropHandler, this );
+                this.dndOver = false;
+
+                elem.on( 'dragenter', this.dragEnterHandler );
+                elem.on( 'dragover', this.dragOverHandler );
+                elem.on( 'dragleave', this.dragLeaveHandler );
+                elem.on( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).on( 'dragover', this.dragOverHandler );
+                    $( document ).on( 'drop', this.dropHandler );
+                }
+            },
+
+            _dragEnterHandler: function( e ) {
+                var me = this,
+                    denied = me._denied || false,
+                    items;
+
+                e = e.originalEvent || e;
+
+                if ( !me.dndOver ) {
+                    me.dndOver = true;
+
+                    // 注意只有 chrome 支持。
+                    items = e.dataTransfer.items;
+
+                    if ( items && items.length ) {
+                        me._denied = denied = !me.trigger( 'accept', items );
+                    }
+
+                    me.elem.addClass( prefix + 'over' );
+                    me.elem[ denied ? 'addClass' :
+                            'removeClass' ]( prefix + 'denied' );
+                }
+
+                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
+
+                return false;
+            },
+
+            _dragOverHandler: function( e ) {
+                // 只处理框内的。
+                var parentElem = this.elem.parent().get( 0 );
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                clearTimeout( this._leaveTimer );
+                this._dragEnterHandler.call( this, e );
+
+                return false;
+            },
+
+            _dragLeaveHandler: function() {
+                var me = this,
+                    handler;
+
+                handler = function() {
+                    me.dndOver = false;
+                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
+                };
+
+                clearTimeout( me._leaveTimer );
+                me._leaveTimer = setTimeout( handler, 100 );
+                return false;
+            },
+
+            _dropHandler: function( e ) {
+                var me = this,
+                    ruid = me.getRuid(),
+                    parentElem = me.elem.parent().get( 0 ),
+                    dataTransfer, data;
+
+                // 只处理框内的。
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                e = e.originalEvent || e;
+                dataTransfer = e.dataTransfer;
+
+                // 如果是页面内拖拽,还不能处理,不阻止事件。
+                // 此处 ie11 下会报参数错误,
+                try {
+                    data = dataTransfer.getData('text/html');
+                } catch( err ) {
+                }
+
+                if ( data ) {
+                    return;
+                }
+
+                me._getTansferFiles( dataTransfer, function( results ) {
+                    me.trigger( 'drop', $.map( results, function( file ) {
+                        return new File( ruid, file );
+                    }) );
+                });
+
+                me.dndOver = false;
+                me.elem.removeClass( prefix + 'over' );
+                return false;
+            },
+
+            // 如果传入 callback 则去查看文件夹,否则只管当前文件夹。
+            _getTansferFiles: function( dataTransfer, callback ) {
+                var results  = [],
+                    promises = [],
+                    items, files, file, item, i, len, canAccessFolder;
+
+                items = dataTransfer.items;
+                files = dataTransfer.files;
+
+                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
+
+                for ( i = 0, len = files.length; i < len; i++ ) {
+                    file = files[ i ];
+                    item = items && items[ i ];
+
+                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
+
+                        promises.push( this._traverseDirectoryTree(
+                                item.webkitGetAsEntry(), results ) );
+                    } else {
+                        results.push( file );
+                    }
+                }
+
+                Base.when.apply( Base, promises ).done(function() {
+
+                    if ( !results.length ) {
+                        return;
+                    }
+
+                    callback( results );
+                });
+            },
+
+            _traverseDirectoryTree: function( entry, results ) {
+                var deferred = Base.Deferred(),
+                    me = this;
+
+                if ( entry.isFile ) {
+                    entry.file(function( file ) {
+                        results.push( file );
+                        deferred.resolve();
+                    });
+                } else if ( entry.isDirectory ) {
+                    entry.createReader().readEntries(function( entries ) {
+                        var len = entries.length,
+                            promises = [],
+                            arr = [],    // 为了保证顺序。
+                            i;
+
+                        for ( i = 0; i < len; i++ ) {
+                            promises.push( me._traverseDirectoryTree(
+                                    entries[ i ], arr ) );
+                        }
+
+                        Base.when.apply( Base, promises ).then(function() {
+                            results.push.apply( results, arr );
+                            deferred.resolve();
+                        }, deferred.reject );
+                    });
+                }
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                var elem = this.elem;
+
+                // 还没 init 就调用 destroy
+                if (!elem) {
+                    return;
+                }
+
+                elem.off( 'dragenter', this.dragEnterHandler );
+                elem.off( 'dragover', this.dragOverHandler );
+                elem.off( 'dragleave', this.dragLeaveHandler );
+                elem.off( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).off( 'dragover', this.dragOverHandler );
+                    $( document ).off( 'drop', this.dropHandler );
+                }
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/filepaste',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        return Html5Runtime.register( 'FilePaste', {
+            init: function() {
+                var opts = this.options,
+                    elem = this.elem = opts.container,
+                    accept = '.*',
+                    arr, i, len, item;
+
+                // accetp的mimeTypes中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].mimeTypes;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = arr.join(',');
+                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
+                    }
+                }
+                this.accept = accept = new RegExp( accept, 'i' );
+                this.hander = Base.bindFn( this._pasteHander, this );
+                elem.on( 'paste', this.hander );
+            },
+
+            _pasteHander: function( e ) {
+                var allowed = [],
+                    ruid = this.getRuid(),
+                    items, item, blob, i, len;
+
+                e = e.originalEvent || e;
+                items = e.clipboardData.items;
+
+                for ( i = 0, len = items.length; i < len; i++ ) {
+                    item = items[ i ];
+
+                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
+                        continue;
+                    }
+
+                    allowed.push( new File( ruid, blob ) );
+                }
+
+                if ( allowed.length ) {
+                    // 不阻止非文件粘贴(文字粘贴)的事件冒泡
+                    e.preventDefault();
+                    e.stopPropagation();
+                    this.trigger( 'paste', allowed );
+                }
+            },
+
+            destroy: function() {
+                this.elem.off( 'paste', this.hander );
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/util',[
+        'base'
+    ], function( Base ) {
+
+        var urlAPI = window.createObjectURL && window ||
+                window.URL && URL.revokeObjectURL && URL ||
+                window.webkitURL,
+            createObjectURL = Base.noop,
+            revokeObjectURL = createObjectURL;
+
+        if ( urlAPI ) {
+
+            // 更安全的方式调用,比如android里面就能把context改成其他的对象。
+            createObjectURL = function() {
+                return urlAPI.createObjectURL.apply( urlAPI, arguments );
+            };
+
+            revokeObjectURL = function() {
+                return urlAPI.revokeObjectURL.apply( urlAPI, arguments );
+            };
+        }
+
+        return {
+            createObjectURL: createObjectURL,
+            revokeObjectURL: revokeObjectURL,
+
+            dataURL2Blob: function( dataURI ) {
+                var byteStr, intArray, ab, i, mimetype, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                ab = new ArrayBuffer( byteStr.length );
+                intArray = new Uint8Array( ab );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                mimetype = parts[ 0 ].split(':')[ 1 ].split(';')[ 0 ];
+
+                return this.arrayBufferToBlob( ab, mimetype );
+            },
+
+            dataURL2ArrayBuffer: function( dataURI ) {
+                var byteStr, intArray, i, parts;
+
+                parts = dataURI.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    byteStr = atob( parts[ 1 ] );
+                } else {
+                    byteStr = decodeURIComponent( parts[ 1 ] );
+                }
+
+                intArray = new Uint8Array( byteStr.length );
+
+                for ( i = 0; i < byteStr.length; i++ ) {
+                    intArray[ i ] = byteStr.charCodeAt( i );
+                }
+
+                return intArray.buffer;
+            },
+
+            arrayBufferToBlob: function( buffer, type ) {
+                var builder = window.BlobBuilder || window.WebKitBlobBuilder,
+                    bb;
+
+                // android不支持直接new Blob, 只能借助blobbuilder.
+                if ( builder ) {
+                    bb = new builder();
+                    bb.append( buffer );
+                    return bb.getBlob( type );
+                }
+
+                return new Blob([ buffer ], type ? { type: type } : {} );
+            },
+
+            // 抽出来主要是为了解决android下面canvas.toDataUrl不支持jpeg.
+            // 你得到的结果是png.
+            canvasToDataUrl: function( canvas, type, quality ) {
+                return canvas.toDataURL( type, quality / 100 );
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            parseMeta: function( blob, callback ) {
+                callback( false, {});
+            },
+
+            // imagemeat会复写这个方法,如果用户选择加载那个文件了的话。
+            updateImageHead: function( data ) {
+                return data;
+            }
+        };
+    });
+    /**
+     * Terms:
+     *
+     * Uint8Array, FileReader, BlobBuilder, atob, ArrayBuffer
+     * @fileOverview Image控件
+     */
+    define('runtime/html5/imagemeta',[
+        'runtime/html5/util'
+    ], function( Util ) {
+
+        var api;
+
+        api = {
+            parsers: {
+                0xffe1: []
+            },
+
+            maxMetaDataSize: 262144,
+
+            parse: function( blob, cb ) {
+                var me = this,
+                    fr = new FileReader();
+
+                fr.onload = function() {
+                    cb( false, me._parse( this.result ) );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                fr.onerror = function( e ) {
+                    cb( e.message );
+                    fr = fr.onload = fr.onerror = null;
+                };
+
+                blob = blob.slice( 0, me.maxMetaDataSize );
+                fr.readAsArrayBuffer( blob.getSource() );
+            },
+
+            _parse: function( buffer, noParse ) {
+                if ( buffer.byteLength < 6 ) {
+                    return;
+                }
+
+                var dataview = new DataView( buffer ),
+                    offset = 2,
+                    maxOffset = dataview.byteLength - 4,
+                    headLength = offset,
+                    ret = {},
+                    markerBytes, markerLength, parsers, i;
+
+                if ( dataview.getUint16( 0 ) === 0xffd8 ) {
+
+                    while ( offset < maxOffset ) {
+                        markerBytes = dataview.getUint16( offset );
+
+                        if ( markerBytes >= 0xffe0 && markerBytes <= 0xffef ||
+                                markerBytes === 0xfffe ) {
+
+                            markerLength = dataview.getUint16( offset + 2 ) + 2;
+
+                            if ( offset + markerLength > dataview.byteLength ) {
+                                break;
+                            }
+
+                            parsers = api.parsers[ markerBytes ];
+
+                            if ( !noParse && parsers ) {
+                                for ( i = 0; i < parsers.length; i += 1 ) {
+                                    parsers[ i ].call( api, dataview, offset,
+                                            markerLength, ret );
+                                }
+                            }
+
+                            offset += markerLength;
+                            headLength = offset;
+                        } else {
+                            break;
+                        }
+                    }
+
+                    if ( headLength > 6 ) {
+                        if ( buffer.slice ) {
+                            ret.imageHead = buffer.slice( 2, headLength );
+                        } else {
+                            // Workaround for IE10, which does not yet
+                            // support ArrayBuffer.slice:
+                            ret.imageHead = new Uint8Array( buffer )
+                                    .subarray( 2, headLength );
+                        }
+                    }
+                }
+
+                return ret;
+            },
+
+            updateImageHead: function( buffer, head ) {
+                var data = this._parse( buffer, true ),
+                    buf1, buf2, bodyoffset;
+
+
+                bodyoffset = 2;
+                if ( data.imageHead ) {
+                    bodyoffset = 2 + data.imageHead.byteLength;
+                }
+
+                if ( buffer.slice ) {
+                    buf2 = buffer.slice( bodyoffset );
+                } else {
+                    buf2 = new Uint8Array( buffer ).subarray( bodyoffset );
+                }
+
+                buf1 = new Uint8Array( head.byteLength + 2 + buf2.byteLength );
+
+                buf1[ 0 ] = 0xFF;
+                buf1[ 1 ] = 0xD8;
+                buf1.set( new Uint8Array( head ), 2 );
+                buf1.set( new Uint8Array( buf2 ), head.byteLength + 2 );
+
+                return buf1.buffer;
+            }
+        };
+
+        Util.parseMeta = function() {
+            return api.parse.apply( api, arguments );
+        };
+
+        Util.updateImageHead = function() {
+            return api.updateImageHead.apply( api, arguments );
+        };
+
+        return api;
+    });
+    /**
+     * 代码来自于:https://github.com/blueimp/JavaScript-Load-Image
+     * 暂时项目中只用了orientation.
+     *
+     * 去除了 Exif Sub IFD Pointer, GPS Info IFD Pointer, Exif Thumbnail.
+     * @fileOverview EXIF解析
+     */
+
+    // Sample
+    // ====================================
+    // Make : Apple
+    // Model : iPhone 4S
+    // Orientation : 1
+    // XResolution : 72 [72/1]
+    // YResolution : 72 [72/1]
+    // ResolutionUnit : 2
+    // Software : QuickTime 7.7.1
+    // DateTime : 2013:09:01 22:53:55
+    // ExifIFDPointer : 190
+    // ExposureTime : 0.058823529411764705 [1/17]
+    // FNumber : 2.4 [12/5]
+    // ExposureProgram : Normal program
+    // ISOSpeedRatings : 800
+    // ExifVersion : 0220
+    // DateTimeOriginal : 2013:09:01 22:52:51
+    // DateTimeDigitized : 2013:09:01 22:52:51
+    // ComponentsConfiguration : YCbCr
+    // ShutterSpeedValue : 4.058893515764426
+    // ApertureValue : 2.5260688216892597 [4845/1918]
+    // BrightnessValue : -0.3126686601998395
+    // MeteringMode : Pattern
+    // Flash : Flash did not fire, compulsory flash mode
+    // FocalLength : 4.28 [107/25]
+    // SubjectArea : [4 values]
+    // FlashpixVersion : 0100
+    // ColorSpace : 1
+    // PixelXDimension : 2448
+    // PixelYDimension : 3264
+    // SensingMethod : One-chip color area sensor
+    // ExposureMode : 0
+    // WhiteBalance : Auto white balance
+    // FocalLengthIn35mmFilm : 35
+    // SceneCaptureType : Standard
+    define('runtime/html5/imagemeta/exif',[
+        'base',
+        'runtime/html5/imagemeta'
+    ], function( Base, ImageMeta ) {
+
+        var EXIF = {};
+
+        EXIF.ExifMap = function() {
+            return this;
+        };
+
+        EXIF.ExifMap.prototype.map = {
+            'Orientation': 0x0112
+        };
+
+        EXIF.ExifMap.prototype.get = function( id ) {
+            return this[ id ] || this[ this.map[ id ] ];
+        };
+
+        EXIF.exifTagTypes = {
+            // byte, 8-bit unsigned int:
+            1: {
+                getValue: function( dataView, dataOffset ) {
+                    return dataView.getUint8( dataOffset );
+                },
+                size: 1
+            },
+
+            // ascii, 8-bit byte:
+            2: {
+                getValue: function( dataView, dataOffset ) {
+                    return String.fromCharCode( dataView.getUint8( dataOffset ) );
+                },
+                size: 1,
+                ascii: true
+            },
+
+            // short, 16 bit int:
+            3: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint16( dataOffset, littleEndian );
+                },
+                size: 2
+            },
+
+            // long, 32 bit int:
+            4: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // rational = two long values,
+            // first is numerator, second is denominator:
+            5: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getUint32( dataOffset, littleEndian ) /
+                        dataView.getUint32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            },
+
+            // slong, 32 bit signed int:
+            9: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian );
+                },
+                size: 4
+            },
+
+            // srational, two slongs, first is numerator, second is denominator:
+            10: {
+                getValue: function( dataView, dataOffset, littleEndian ) {
+                    return dataView.getInt32( dataOffset, littleEndian ) /
+                        dataView.getInt32( dataOffset + 4, littleEndian );
+                },
+                size: 8
+            }
+        };
+
+        // undefined, 8-bit byte, value depending on field:
+        EXIF.exifTagTypes[ 7 ] = EXIF.exifTagTypes[ 1 ];
+
+        EXIF.getExifValue = function( dataView, tiffOffset, offset, type, length,
+                littleEndian ) {
+
+            var tagType = EXIF.exifTagTypes[ type ],
+                tagSize, dataOffset, values, i, str, c;
+
+            if ( !tagType ) {
+                Base.log('Invalid Exif data: Invalid tag type.');
+                return;
+            }
+
+            tagSize = tagType.size * length;
+
+            // Determine if the value is contained in the dataOffset bytes,
+            // or if the value at the dataOffset is a pointer to the actual data:
+            dataOffset = tagSize > 4 ? tiffOffset + dataView.getUint32( offset + 8,
+                    littleEndian ) : (offset + 8);
+
+            if ( dataOffset + tagSize > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid data offset.');
+                return;
+            }
+
+            if ( length === 1 ) {
+                return tagType.getValue( dataView, dataOffset, littleEndian );
+            }
+
+            values = [];
+
+            for ( i = 0; i < length; i += 1 ) {
+                values[ i ] = tagType.getValue( dataView,
+                        dataOffset + i * tagType.size, littleEndian );
+            }
+
+            if ( tagType.ascii ) {
+                str = '';
+
+                // Concatenate the chars:
+                for ( i = 0; i < values.length; i += 1 ) {
+                    c = values[ i ];
+
+                    // Ignore the terminating NULL byte(s):
+                    if ( c === '\u0000' ) {
+                        break;
+                    }
+                    str += c;
+                }
+
+                return str;
+            }
+            return values;
+        };
+
+        EXIF.parseExifTag = function( dataView, tiffOffset, offset, littleEndian,
+                data ) {
+
+            var tag = dataView.getUint16( offset, littleEndian );
+            data.exif[ tag ] = EXIF.getExifValue( dataView, tiffOffset, offset,
+                    dataView.getUint16( offset + 2, littleEndian ),    // tag type
+                    dataView.getUint32( offset + 4, littleEndian ),    // tag length
+                    littleEndian );
+        };
+
+        EXIF.parseExifTags = function( dataView, tiffOffset, dirOffset,
+                littleEndian, data ) {
+
+            var tagsNumber, dirEndOffset, i;
+
+            if ( dirOffset + 6 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory offset.');
+                return;
+            }
+
+            tagsNumber = dataView.getUint16( dirOffset, littleEndian );
+            dirEndOffset = dirOffset + 2 + 12 * tagsNumber;
+
+            if ( dirEndOffset + 4 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid directory size.');
+                return;
+            }
+
+            for ( i = 0; i < tagsNumber; i += 1 ) {
+                this.parseExifTag( dataView, tiffOffset,
+                        dirOffset + 2 + 12 * i,    // tag offset
+                        littleEndian, data );
+            }
+
+            // Return the offset to the next directory:
+            return dataView.getUint32( dirEndOffset, littleEndian );
+        };
+
+        // EXIF.getExifThumbnail = function(dataView, offset, length) {
+        //     var hexData,
+        //         i,
+        //         b;
+        //     if (!length || offset + length > dataView.byteLength) {
+        //         Base.log('Invalid Exif data: Invalid thumbnail data.');
+        //         return;
+        //     }
+        //     hexData = [];
+        //     for (i = 0; i < length; i += 1) {
+        //         b = dataView.getUint8(offset + i);
+        //         hexData.push((b < 16 ? '0' : '') + b.toString(16));
+        //     }
+        //     return 'data:image/jpeg,%' + hexData.join('%');
+        // };
+
+        EXIF.parseExifData = function( dataView, offset, length, data ) {
+
+            var tiffOffset = offset + 10,
+                littleEndian, dirOffset;
+
+            // Check for the ASCII code for "Exif" (0x45786966):
+            if ( dataView.getUint32( offset + 4 ) !== 0x45786966 ) {
+                // No Exif data, might be XMP data instead
+                return;
+            }
+            if ( tiffOffset + 8 > dataView.byteLength ) {
+                Base.log('Invalid Exif data: Invalid segment size.');
+                return;
+            }
+
+            // Check for the two null bytes:
+            if ( dataView.getUint16( offset + 8 ) !== 0x0000 ) {
+                Base.log('Invalid Exif data: Missing byte alignment offset.');
+                return;
+            }
+
+            // Check the byte alignment:
+            switch ( dataView.getUint16( tiffOffset ) ) {
+                case 0x4949:
+                    littleEndian = true;
+                    break;
+
+                case 0x4D4D:
+                    littleEndian = false;
+                    break;
+
+                default:
+                    Base.log('Invalid Exif data: Invalid byte alignment marker.');
+                    return;
+            }
+
+            // Check for the TIFF tag marker (0x002A):
+            if ( dataView.getUint16( tiffOffset + 2, littleEndian ) !== 0x002A ) {
+                Base.log('Invalid Exif data: Missing TIFF marker.');
+                return;
+            }
+
+            // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:
+            dirOffset = dataView.getUint32( tiffOffset + 4, littleEndian );
+            // Create the exif object to store the tags:
+            data.exif = new EXIF.ExifMap();
+            // Parse the tags of the main image directory and retrieve the
+            // offset to the next directory, usually the thumbnail directory:
+            dirOffset = EXIF.parseExifTags( dataView, tiffOffset,
+                    tiffOffset + dirOffset, littleEndian, data );
+
+            // 尝试读取缩略图
+            // if ( dirOffset ) {
+            //     thumbnailData = {exif: {}};
+            //     dirOffset = EXIF.parseExifTags(
+            //         dataView,
+            //         tiffOffset,
+            //         tiffOffset + dirOffset,
+            //         littleEndian,
+            //         thumbnailData
+            //     );
+
+            //     // Check for JPEG Thumbnail offset:
+            //     if (thumbnailData.exif[0x0201]) {
+            //         data.exif.Thumbnail = EXIF.getExifThumbnail(
+            //             dataView,
+            //             tiffOffset + thumbnailData.exif[0x0201],
+            //             thumbnailData.exif[0x0202] // Thumbnail data length
+            //         );
+            //     }
+            // }
+        };
+
+        ImageMeta.parsers[ 0xffe1 ].push( EXIF.parseExifData );
+        return EXIF;
+    });
+    /**
+     * 这个方式性能不行,但是可以解决android里面的toDataUrl的bug
+     * android里面toDataUrl('image/jpege')得到的结果却是png.
+     *
+     * 所以这里没辙,只能借助这个工具
+     * @fileOverview jpeg encoder
+     */
+    define('runtime/html5/jpegencoder',[], function( require, exports, module ) {
+
+        /*
+          Copyright (c) 2008, Adobe Systems Incorporated
+          All rights reserved.
+
+          Redistribution and use in source and binary forms, with or without
+          modification, are permitted provided that the following conditions are
+          met:
+
+          * Redistributions of source code must retain the above copyright notice,
+            this list of conditions and the following disclaimer.
+
+          * Redistributions in binary form must reproduce the above copyright
+            notice, this list of conditions and the following disclaimer in the
+            documentation and/or other materials provided with the distribution.
+
+          * Neither the name of Adobe Systems Incorporated nor the names of its
+            contributors may be used to endorse or promote products derived from
+            this software without specific prior written permission.
+
+          THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+          IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+          THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+          PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 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.
+        */
+        /*
+        JPEG encoder ported to JavaScript and optimized by Andreas Ritter, www.bytestrom.eu, 11/2009
+
+        Basic GUI blocking jpeg encoder
+        */
+
+        function JPEGEncoder(quality) {
+          var self = this;
+            var fround = Math.round;
+            var ffloor = Math.floor;
+            var YTable = new Array(64);
+            var UVTable = new Array(64);
+            var fdtbl_Y = new Array(64);
+            var fdtbl_UV = new Array(64);
+            var YDC_HT;
+            var UVDC_HT;
+            var YAC_HT;
+            var UVAC_HT;
+
+            var bitcode = new Array(65535);
+            var category = new Array(65535);
+            var outputfDCTQuant = new Array(64);
+            var DU = new Array(64);
+            var byteout = [];
+            var bytenew = 0;
+            var bytepos = 7;
+
+            var YDU = new Array(64);
+            var UDU = new Array(64);
+            var VDU = new Array(64);
+            var clt = new Array(256);
+            var RGB_YUV_TABLE = new Array(2048);
+            var currentQuality;
+
+            var ZigZag = [
+                     0, 1, 5, 6,14,15,27,28,
+                     2, 4, 7,13,16,26,29,42,
+                     3, 8,12,17,25,30,41,43,
+                     9,11,18,24,31,40,44,53,
+                    10,19,23,32,39,45,52,54,
+                    20,22,33,38,46,51,55,60,
+                    21,34,37,47,50,56,59,61,
+                    35,36,48,49,57,58,62,63
+                ];
+
+            var std_dc_luminance_nrcodes = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
+            var std_dc_luminance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_luminance_nrcodes = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
+            var std_ac_luminance_values = [
+                    0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
+                    0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
+                    0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
+                    0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
+                    0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
+                    0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
+                    0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
+                    0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+                    0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+                    0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+                    0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
+                    0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+                    0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+                    0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+                    0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
+                    0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
+                    0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
+                    0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
+                    0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
+                    0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            var std_dc_chrominance_nrcodes = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
+            var std_dc_chrominance_values = [0,1,2,3,4,5,6,7,8,9,10,11];
+            var std_ac_chrominance_nrcodes = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
+            var std_ac_chrominance_values = [
+                    0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
+                    0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
+                    0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
+                    0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
+                    0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
+                    0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
+                    0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
+                    0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
+                    0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
+                    0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
+                    0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
+                    0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
+                    0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
+                    0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
+                    0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
+                    0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
+                    0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
+                    0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
+                    0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
+                    0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+                    0xf9,0xfa
+                ];
+
+            function initQuantTables(sf){
+                    var YQT = [
+                        16, 11, 10, 16, 24, 40, 51, 61,
+                        12, 12, 14, 19, 26, 58, 60, 55,
+                        14, 13, 16, 24, 40, 57, 69, 56,
+                        14, 17, 22, 29, 51, 87, 80, 62,
+                        18, 22, 37, 56, 68,109,103, 77,
+                        24, 35, 55, 64, 81,104,113, 92,
+                        49, 64, 78, 87,103,121,120,101,
+                        72, 92, 95, 98,112,100,103, 99
+                    ];
+
+                    for (var i = 0; i < 64; i++) {
+                        var t = ffloor((YQT[i]*sf+50)/100);
+                        if (t < 1) {
+                            t = 1;
+                        } else if (t > 255) {
+                            t = 255;
+                        }
+                        YTable[ZigZag[i]] = t;
+                    }
+                    var UVQT = [
+                        17, 18, 24, 47, 99, 99, 99, 99,
+                        18, 21, 26, 66, 99, 99, 99, 99,
+                        24, 26, 56, 99, 99, 99, 99, 99,
+                        47, 66, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99,
+                        99, 99, 99, 99, 99, 99, 99, 99
+                    ];
+                    for (var j = 0; j < 64; j++) {
+                        var u = ffloor((UVQT[j]*sf+50)/100);
+                        if (u < 1) {
+                            u = 1;
+                        } else if (u > 255) {
+                            u = 255;
+                        }
+                        UVTable[ZigZag[j]] = u;
+                    }
+                    var aasf = [
+                        1.0, 1.387039845, 1.306562965, 1.175875602,
+                        1.0, 0.785694958, 0.541196100, 0.275899379
+                    ];
+                    var k = 0;
+                    for (var row = 0; row < 8; row++)
+                    {
+                        for (var col = 0; col < 8; col++)
+                        {
+                            fdtbl_Y[k]  = (1.0 / (YTable [ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            fdtbl_UV[k] = (1.0 / (UVTable[ZigZag[k]] * aasf[row] * aasf[col] * 8.0));
+                            k++;
+                        }
+                    }
+                }
+
+                function computeHuffmanTbl(nrcodes, std_table){
+                    var codevalue = 0;
+                    var pos_in_table = 0;
+                    var HT = new Array();
+                    for (var k = 1; k <= 16; k++) {
+                        for (var j = 1; j <= nrcodes[k]; j++) {
+                            HT[std_table[pos_in_table]] = [];
+                            HT[std_table[pos_in_table]][0] = codevalue;
+                            HT[std_table[pos_in_table]][1] = k;
+                            pos_in_table++;
+                            codevalue++;
+                        }
+                        codevalue*=2;
+                    }
+                    return HT;
+                }
+
+                function initHuffmanTbl()
+                {
+                    YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
+                    UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
+                    YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
+                    UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
+                }
+
+                function initCategoryNumber()
+                {
+                    var nrlower = 1;
+                    var nrupper = 2;
+                    for (var cat = 1; cat <= 15; cat++) {
+                        //Positive numbers
+                        for (var nr = nrlower; nr<nrupper; nr++) {
+                            category[32767+nr] = cat;
+                            bitcode[32767+nr] = [];
+                            bitcode[32767+nr][1] = cat;
+                            bitcode[32767+nr][0] = nr;
+                        }
+                        //Negative numbers
+                        for (var nrneg =-(nrupper-1); nrneg<=-nrlower; nrneg++) {
+                            category[32767+nrneg] = cat;
+                            bitcode[32767+nrneg] = [];
+                            bitcode[32767+nrneg][1] = cat;
+                            bitcode[32767+nrneg][0] = nrupper-1+nrneg;
+                        }
+                        nrlower <<= 1;
+                        nrupper <<= 1;
+                    }
+                }
+
+                function initRGBYUVTable() {
+                    for(var i = 0; i < 256;i++) {
+                        RGB_YUV_TABLE[i]            =  19595 * i;
+                        RGB_YUV_TABLE[(i+ 256)>>0]  =  38470 * i;
+                        RGB_YUV_TABLE[(i+ 512)>>0]  =   7471 * i + 0x8000;
+                        RGB_YUV_TABLE[(i+ 768)>>0]  = -11059 * i;
+                        RGB_YUV_TABLE[(i+1024)>>0]  = -21709 * i;
+                        RGB_YUV_TABLE[(i+1280)>>0]  =  32768 * i + 0x807FFF;
+                        RGB_YUV_TABLE[(i+1536)>>0]  = -27439 * i;
+                        RGB_YUV_TABLE[(i+1792)>>0]  = - 5329 * i;
+                    }
+                }
+
+                // IO functions
+                function writeBits(bs)
+                {
+                    var value = bs[0];
+                    var posval = bs[1]-1;
+                    while ( posval >= 0 ) {
+                        if (value & (1 << posval) ) {
+                            bytenew |= (1 << bytepos);
+                        }
+                        posval--;
+                        bytepos--;
+                        if (bytepos < 0) {
+                            if (bytenew == 0xFF) {
+                                writeByte(0xFF);
+                                writeByte(0);
+                            }
+                            else {
+                                writeByte(bytenew);
+                            }
+                            bytepos=7;
+                            bytenew=0;
+                        }
+                    }
+                }
+
+                function writeByte(value)
+                {
+                    byteout.push(clt[value]); // write char directly instead of converting later
+                }
+
+                function writeWord(value)
+                {
+                    writeByte((value>>8)&0xFF);
+                    writeByte((value   )&0xFF);
+                }
+
+                // DCT & quantization core
+                function fDCTQuant(data, fdtbl)
+                {
+                    var d0, d1, d2, d3, d4, d5, d6, d7;
+                    /* Pass 1: process rows. */
+                    var dataOff=0;
+                    var i;
+                    var I8 = 8;
+                    var I64 = 64;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff+1];
+                        d2 = data[dataOff+2];
+                        d3 = data[dataOff+3];
+                        d4 = data[dataOff+4];
+                        d5 = data[dataOff+5];
+                        d6 = data[dataOff+6];
+                        d7 = data[dataOff+7];
+
+                        var tmp0 = d0 + d7;
+                        var tmp7 = d0 - d7;
+                        var tmp1 = d1 + d6;
+                        var tmp6 = d1 - d6;
+                        var tmp2 = d2 + d5;
+                        var tmp5 = d2 - d5;
+                        var tmp3 = d3 + d4;
+                        var tmp4 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10 = tmp0 + tmp3;    /* phase 2 */
+                        var tmp13 = tmp0 - tmp3;
+                        var tmp11 = tmp1 + tmp2;
+                        var tmp12 = tmp1 - tmp2;
+
+                        data[dataOff] = tmp10 + tmp11; /* phase 3 */
+                        data[dataOff+4] = tmp10 - tmp11;
+
+                        var z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
+                        data[dataOff+2] = tmp13 + z1; /* phase 5 */
+                        data[dataOff+6] = tmp13 - z1;
+
+                        /* Odd part */
+                        tmp10 = tmp4 + tmp5; /* phase 2 */
+                        tmp11 = tmp5 + tmp6;
+                        tmp12 = tmp6 + tmp7;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
+                        var z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
+                        var z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
+                        var z3 = tmp11 * 0.707106781; /* c4 */
+
+                        var z11 = tmp7 + z3;    /* phase 5 */
+                        var z13 = tmp7 - z3;
+
+                        data[dataOff+5] = z13 + z2; /* phase 6 */
+                        data[dataOff+3] = z13 - z2;
+                        data[dataOff+1] = z11 + z4;
+                        data[dataOff+7] = z11 - z4;
+
+                        dataOff += 8; /* advance pointer to next row */
+                    }
+
+                    /* Pass 2: process columns. */
+                    dataOff = 0;
+                    for (i=0; i<I8; ++i)
+                    {
+                        d0 = data[dataOff];
+                        d1 = data[dataOff + 8];
+                        d2 = data[dataOff + 16];
+                        d3 = data[dataOff + 24];
+                        d4 = data[dataOff + 32];
+                        d5 = data[dataOff + 40];
+                        d6 = data[dataOff + 48];
+                        d7 = data[dataOff + 56];
+
+                        var tmp0p2 = d0 + d7;
+                        var tmp7p2 = d0 - d7;
+                        var tmp1p2 = d1 + d6;
+                        var tmp6p2 = d1 - d6;
+                        var tmp2p2 = d2 + d5;
+                        var tmp5p2 = d2 - d5;
+                        var tmp3p2 = d3 + d4;
+                        var tmp4p2 = d3 - d4;
+
+                        /* Even part */
+                        var tmp10p2 = tmp0p2 + tmp3p2;  /* phase 2 */
+                        var tmp13p2 = tmp0p2 - tmp3p2;
+                        var tmp11p2 = tmp1p2 + tmp2p2;
+                        var tmp12p2 = tmp1p2 - tmp2p2;
+
+                        data[dataOff] = tmp10p2 + tmp11p2; /* phase 3 */
+                        data[dataOff+32] = tmp10p2 - tmp11p2;
+
+                        var z1p2 = (tmp12p2 + tmp13p2) * 0.707106781; /* c4 */
+                        data[dataOff+16] = tmp13p2 + z1p2; /* phase 5 */
+                        data[dataOff+48] = tmp13p2 - z1p2;
+
+                        /* Odd part */
+                        tmp10p2 = tmp4p2 + tmp5p2; /* phase 2 */
+                        tmp11p2 = tmp5p2 + tmp6p2;
+                        tmp12p2 = tmp6p2 + tmp7p2;
+
+                        /* The rotator is modified from fig 4-8 to avoid extra negations. */
+                        var z5p2 = (tmp10p2 - tmp12p2) * 0.382683433; /* c6 */
+                        var z2p2 = 0.541196100 * tmp10p2 + z5p2; /* c2-c6 */
+                        var z4p2 = 1.306562965 * tmp12p2 + z5p2; /* c2+c6 */
+                        var z3p2 = tmp11p2 * 0.707106781; /* c4 */
+
+                        var z11p2 = tmp7p2 + z3p2;  /* phase 5 */
+                        var z13p2 = tmp7p2 - z3p2;
+
+                        data[dataOff+40] = z13p2 + z2p2; /* phase 6 */
+                        data[dataOff+24] = z13p2 - z2p2;
+                        data[dataOff+ 8] = z11p2 + z4p2;
+                        data[dataOff+56] = z11p2 - z4p2;
+
+                        dataOff++; /* advance pointer to next column */
+                    }
+
+                    // Quantize/descale the coefficients
+                    var fDCTQuant;
+                    for (i=0; i<I64; ++i)
+                    {
+                        // Apply the quantization and scaling factor & Round to nearest integer
+                        fDCTQuant = data[i]*fdtbl[i];
+                        outputfDCTQuant[i] = (fDCTQuant > 0.0) ? ((fDCTQuant + 0.5)|0) : ((fDCTQuant - 0.5)|0);
+                        //outputfDCTQuant[i] = fround(fDCTQuant);
+
+                    }
+                    return outputfDCTQuant;
+                }
+
+                function writeAPP0()
+                {
+                    writeWord(0xFFE0); // marker
+                    writeWord(16); // length
+                    writeByte(0x4A); // J
+                    writeByte(0x46); // F
+                    writeByte(0x49); // I
+                    writeByte(0x46); // F
+                    writeByte(0); // = "JFIF",'\0'
+                    writeByte(1); // versionhi
+                    writeByte(1); // versionlo
+                    writeByte(0); // xyunits
+                    writeWord(1); // xdensity
+                    writeWord(1); // ydensity
+                    writeByte(0); // thumbnwidth
+                    writeByte(0); // thumbnheight
+                }
+
+                function writeSOF0(width, height)
+                {
+                    writeWord(0xFFC0); // marker
+                    writeWord(17);   // length, truecolor YUV JPG
+                    writeByte(8);    // precision
+                    writeWord(height);
+                    writeWord(width);
+                    writeByte(3);    // nrofcomponents
+                    writeByte(1);    // IdY
+                    writeByte(0x11); // HVY
+                    writeByte(0);    // QTY
+                    writeByte(2);    // IdU
+                    writeByte(0x11); // HVU
+                    writeByte(1);    // QTU
+                    writeByte(3);    // IdV
+                    writeByte(0x11); // HVV
+                    writeByte(1);    // QTV
+                }
+
+                function writeDQT()
+                {
+                    writeWord(0xFFDB); // marker
+                    writeWord(132);    // length
+                    writeByte(0);
+                    for (var i=0; i<64; i++) {
+                        writeByte(YTable[i]);
+                    }
+                    writeByte(1);
+                    for (var j=0; j<64; j++) {
+                        writeByte(UVTable[j]);
+                    }
+                }
+
+                function writeDHT()
+                {
+                    writeWord(0xFFC4); // marker
+                    writeWord(0x01A2); // length
+
+                    writeByte(0); // HTYDCinfo
+                    for (var i=0; i<16; i++) {
+                        writeByte(std_dc_luminance_nrcodes[i+1]);
+                    }
+                    for (var j=0; j<=11; j++) {
+                        writeByte(std_dc_luminance_values[j]);
+                    }
+
+                    writeByte(0x10); // HTYACinfo
+                    for (var k=0; k<16; k++) {
+                        writeByte(std_ac_luminance_nrcodes[k+1]);
+                    }
+                    for (var l=0; l<=161; l++) {
+                        writeByte(std_ac_luminance_values[l]);
+                    }
+
+                    writeByte(1); // HTUDCinfo
+                    for (var m=0; m<16; m++) {
+                        writeByte(std_dc_chrominance_nrcodes[m+1]);
+                    }
+                    for (var n=0; n<=11; n++) {
+                        writeByte(std_dc_chrominance_values[n]);
+                    }
+
+                    writeByte(0x11); // HTUACinfo
+                    for (var o=0; o<16; o++) {
+                        writeByte(std_ac_chrominance_nrcodes[o+1]);
+                    }
+                    for (var p=0; p<=161; p++) {
+                        writeByte(std_ac_chrominance_values[p]);
+                    }
+                }
+
+                function writeSOS()
+                {
+                    writeWord(0xFFDA); // marker
+                    writeWord(12); // length
+                    writeByte(3); // nrofcomponents
+                    writeByte(1); // IdY
+                    writeByte(0); // HTY
+                    writeByte(2); // IdU
+                    writeByte(0x11); // HTU
+                    writeByte(3); // IdV
+                    writeByte(0x11); // HTV
+                    writeByte(0); // Ss
+                    writeByte(0x3f); // Se
+                    writeByte(0); // Bf
+                }
+
+                function processDU(CDU, fdtbl, DC, HTDC, HTAC){
+                    var EOB = HTAC[0x00];
+                    var M16zeroes = HTAC[0xF0];
+                    var pos;
+                    var I16 = 16;
+                    var I63 = 63;
+                    var I64 = 64;
+                    var DU_DCT = fDCTQuant(CDU, fdtbl);
+                    //ZigZag reorder
+                    for (var j=0;j<I64;++j) {
+                        DU[ZigZag[j]]=DU_DCT[j];
+                    }
+                    var Diff = DU[0] - DC; DC = DU[0];
+                    //Encode DC
+                    if (Diff==0) {
+                        writeBits(HTDC[0]); // Diff might be 0
+                    } else {
+                        pos = 32767+Diff;
+                        writeBits(HTDC[category[pos]]);
+                        writeBits(bitcode[pos]);
+                    }
+                    //Encode ACs
+                    var end0pos = 63; // was const... which is crazy
+                    for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {};
+                    //end0pos = first element in reverse order !=0
+                    if ( end0pos == 0) {
+                        writeBits(EOB);
+                        return DC;
+                    }
+                    var i = 1;
+                    var lng;
+                    while ( i <= end0pos ) {
+                        var startpos = i;
+                        for (; (DU[i]==0) && (i<=end0pos); ++i) {}
+                        var nrzeroes = i-startpos;
+                        if ( nrzeroes >= I16 ) {
+                            lng = nrzeroes>>4;
+                            for (var nrmarker=1; nrmarker <= lng; ++nrmarker)
+                                writeBits(M16zeroes);
+                            nrzeroes = nrzeroes&0xF;
+                        }
+                        pos = 32767+DU[i];
+                        writeBits(HTAC[(nrzeroes<<4)+category[pos]]);
+                        writeBits(bitcode[pos]);
+                        i++;
+                    }
+                    if ( end0pos != I63 ) {
+                        writeBits(EOB);
+                    }
+                    return DC;
+                }
+
+                function initCharLookupTable(){
+                    var sfcc = String.fromCharCode;
+                    for(var i=0; i < 256; i++){ ///// ACHTUNG // 255
+                        clt[i] = sfcc(i);
+                    }
+                }
+
+                this.encode = function(image,quality) // image data object
+                {
+                    // var time_start = new Date().getTime();
+
+                    if(quality) setQuality(quality);
+
+                    // Initialize bit writer
+                    byteout = new Array();
+                    bytenew=0;
+                    bytepos=7;
+
+                    // Add JPEG headers
+                    writeWord(0xFFD8); // SOI
+                    writeAPP0();
+                    writeDQT();
+                    writeSOF0(image.width,image.height);
+                    writeDHT();
+                    writeSOS();
+
+
+                    // Encode 8x8 macroblocks
+                    var DCY=0;
+                    var DCU=0;
+                    var DCV=0;
+
+                    bytenew=0;
+                    bytepos=7;
+
+
+                    this.encode.displayName = "_encode_";
+
+                    var imageData = image.data;
+                    var width = image.width;
+                    var height = image.height;
+
+                    var quadWidth = width*4;
+                    var tripleWidth = width*3;
+
+                    var x, y = 0;
+                    var r, g, b;
+                    var start,p, col,row,pos;
+                    while(y < height){
+                        x = 0;
+                        while(x < quadWidth){
+                        start = quadWidth * y + x;
+                        p = start;
+                        col = -1;
+                        row = 0;
+
+                        for(pos=0; pos < 64; pos++){
+                            row = pos >> 3;// /8
+                            col = ( pos & 7 ) * 4; // %8
+                            p = start + ( row * quadWidth ) + col;
+
+                            if(y+row >= height){ // padding bottom
+                                p-= (quadWidth*(y+1+row-height));
+                            }
+
+                            if(x+col >= quadWidth){ // padding right
+                                p-= ((x+col) - quadWidth +4)
+                            }
+
+                            r = imageData[ p++ ];
+                            g = imageData[ p++ ];
+                            b = imageData[ p++ ];
+
+
+                            /* // calculate YUV values dynamically
+                            YDU[pos]=((( 0.29900)*r+( 0.58700)*g+( 0.11400)*b))-128; //-0x80
+                            UDU[pos]=(((-0.16874)*r+(-0.33126)*g+( 0.50000)*b));
+                            VDU[pos]=((( 0.50000)*r+(-0.41869)*g+(-0.08131)*b));
+                            */
+
+                            // use lookup table (slightly faster)
+                            YDU[pos] = ((RGB_YUV_TABLE[r]             + RGB_YUV_TABLE[(g +  256)>>0] + RGB_YUV_TABLE[(b +  512)>>0]) >> 16)-128;
+                            UDU[pos] = ((RGB_YUV_TABLE[(r +  768)>>0] + RGB_YUV_TABLE[(g + 1024)>>0] + RGB_YUV_TABLE[(b + 1280)>>0]) >> 16)-128;
+                            VDU[pos] = ((RGB_YUV_TABLE[(r + 1280)>>0] + RGB_YUV_TABLE[(g + 1536)>>0] + RGB_YUV_TABLE[(b + 1792)>>0]) >> 16)-128;
+
+                        }
+
+                        DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
+                        DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
+                        DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
+                        x+=32;
+                        }
+                        y+=8;
+                    }
+
+
+                    ////////////////////////////////////////////////////////////////
+
+                    // Do the bit alignment of the EOI marker
+                    if ( bytepos >= 0 ) {
+                        var fillbits = [];
+                        fillbits[1] = bytepos+1;
+                        fillbits[0] = (1<<(bytepos+1))-1;
+                        writeBits(fillbits);
+                    }
+
+                    writeWord(0xFFD9); //EOI
+
+                    var jpegDataUri = 'data:image/jpeg;base64,' + btoa(byteout.join(''));
+
+                    byteout = [];
+
+                    // benchmarking
+                    // var duration = new Date().getTime() - time_start;
+                    // console.log('Encoding time: '+ currentQuality + 'ms');
+                    //
+
+                    return jpegDataUri
+            }
+
+            function setQuality(quality){
+                if (quality <= 0) {
+                    quality = 1;
+                }
+                if (quality > 100) {
+                    quality = 100;
+                }
+
+                if(currentQuality == quality) return // don't recalc if unchanged
+
+                var sf = 0;
+                if (quality < 50) {
+                    sf = Math.floor(5000 / quality);
+                } else {
+                    sf = Math.floor(200 - quality*2);
+                }
+
+                initQuantTables(sf);
+                currentQuality = quality;
+                // console.log('Quality set to: '+quality +'%');
+            }
+
+            function init(){
+                // var time_start = new Date().getTime();
+                if(!quality) quality = 50;
+                // Create tables
+                initCharLookupTable()
+                initHuffmanTbl();
+                initCategoryNumber();
+                initRGBYUVTable();
+
+                setQuality(quality);
+                // var duration = new Date().getTime() - time_start;
+                // console.log('Initialization '+ duration + 'ms');
+            }
+
+            init();
+
+        };
+
+        JPEGEncoder.encode = function( data, quality ) {
+            var encoder = new JPEGEncoder( quality );
+
+            return encoder.encode( data );
+        }
+
+        return JPEGEncoder;
+    });
+    /**
+     * @fileOverview Fix android canvas.toDataUrl bug.
+     */
+    define('runtime/html5/androidpatch',[
+        'runtime/html5/util',
+        'runtime/html5/jpegencoder',
+        'base'
+    ], function( Util, encoder, Base ) {
+        var origin = Util.canvasToDataUrl,
+            supportJpeg;
+
+        Util.canvasToDataUrl = function( canvas, type, quality ) {
+            var ctx, w, h, fragement, parts;
+
+            // 非android手机直接跳过。
+            if ( !Base.os.android ) {
+                return origin.apply( null, arguments );
+            }
+
+            // 检测是否canvas支持jpeg导出,根据数据格式来判断。
+            // JPEG 前两位分别是:255, 216
+            if ( type === 'image/jpeg' && typeof supportJpeg === 'undefined' ) {
+                fragement = origin.apply( null, arguments );
+
+                parts = fragement.split(',');
+
+                if ( ~parts[ 0 ].indexOf('base64') ) {
+                    fragement = atob( parts[ 1 ] );
+                } else {
+                    fragement = decodeURIComponent( parts[ 1 ] );
+                }
+
+                fragement = fragement.substring( 0, 2 );
+
+                supportJpeg = fragement.charCodeAt( 0 ) === 255 &&
+                        fragement.charCodeAt( 1 ) === 216;
+            }
+
+            // 只有在android环境下才修复
+            if ( type === 'image/jpeg' && !supportJpeg ) {
+                w = canvas.width;
+                h = canvas.height;
+                ctx = canvas.getContext('2d');
+
+                return encoder.encode( ctx.getImageData( 0, 0, w, h ), quality );
+            }
+
+            return origin.apply( null, arguments );
+        };
+    });
+    /**
+     * @fileOverview Image
+     */
+    define('runtime/html5/image',[
+        'base',
+        'runtime/html5/runtime',
+        'runtime/html5/util'
+    ], function( Base, Html5Runtime, Util ) {
+
+        var BLANK = 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D';
+
+        return Html5Runtime.register( 'Image', {
+
+            // flag: 标记是否被修改过。
+            modified: false,
+
+            init: function() {
+                var me = this,
+                    img = new Image();
+
+                img.onload = function() {
+
+                    me._info = {
+                        type: me.type,
+                        width: this.width,
+                        height: this.height
+                    };
+
+                    // 读取meta信息。
+                    if ( !me._metas && 'image/jpeg' === me.type ) {
+                        Util.parseMeta( me._blob, function( error, ret ) {
+                            me._metas = ret;
+                            me.owner.trigger('load');
+                        });
+                    } else {
+                        me.owner.trigger('load');
+                    }
+                };
+
+                img.onerror = function() {
+                    me.owner.trigger('error');
+                };
+
+                me._img = img;
+            },
+
+            loadFromBlob: function( blob ) {
+                var me = this,
+                    img = me._img;
+
+                me._blob = blob;
+                me.type = blob.type;
+                img.src = Util.createObjectURL( blob.getSource() );
+                me.owner.once( 'load', function() {
+                    Util.revokeObjectURL( img.src );
+                });
+            },
+
+            resize: function( width, height ) {
+                var canvas = this._canvas ||
+                        (this._canvas = document.createElement('canvas'));
+
+                this._resize( this._img, canvas, width, height );
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'resize' );
+            },
+
+            crop: function( x, y, w, h, s ) {
+                var cvs = this._canvas ||
+                        (this._canvas = document.createElement('canvas')),
+                    opts = this.options,
+                    img = this._img,
+                    iw = img.naturalWidth,
+                    ih = img.naturalHeight,
+                    orientation = this.getOrientation();
+
+                s = s || 1;
+
+                // todo 解决 orientation 的问题。
+                // values that require 90 degree rotation
+                // if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                //     switch ( orientation ) {
+                //         case 6:
+                //             tmp = x;
+                //             x = y;
+                //             y = iw * s - tmp - w;
+                //             console.log(ih * s, tmp, w)
+                //             break;
+                //     }
+
+                //     (w ^= h, h ^= w, w ^= h);
+                // }
+
+                cvs.width = w;
+                cvs.height = h;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+                this._renderImageToCanvas( cvs, img, -x, -y, iw * s, ih * s );
+
+                this._blob = null;    // 没用了,可以删掉了。
+                this.modified = true;
+                this.owner.trigger( 'complete', 'crop' );
+            },
+
+            getAsBlob: function( type ) {
+                var blob = this._blob,
+                    opts = this.options,
+                    canvas;
+
+                type = type || this.type;
+
+                // blob需要重新生成。
+                if ( this.modified || this.type !== type ) {
+                    canvas = this._canvas;
+
+                    if ( type === 'image/jpeg' ) {
+
+                        blob = Util.canvasToDataUrl( canvas, type, opts.quality );
+
+                        if ( opts.preserveHeaders && this._metas &&
+                                this._metas.imageHead ) {
+
+                            blob = Util.dataURL2ArrayBuffer( blob );
+                            blob = Util.updateImageHead( blob,
+                                    this._metas.imageHead );
+                            blob = Util.arrayBufferToBlob( blob, type );
+                            return blob;
+                        }
+                    } else {
+                        blob = Util.canvasToDataUrl( canvas, type );
+                    }
+
+                    blob = Util.dataURL2Blob( blob );
+                }
+
+                return blob;
+            },
+
+            getAsDataUrl: function( type ) {
+                var opts = this.options;
+
+                type = type || this.type;
+
+                if ( type === 'image/jpeg' ) {
+                    return Util.canvasToDataUrl( this._canvas, type, opts.quality );
+                } else {
+                    return this._canvas.toDataURL( type );
+                }
+            },
+
+            getOrientation: function() {
+                return this._metas && this._metas.exif &&
+                        this._metas.exif.get('Orientation') || 1;
+            },
+
+            info: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._info = val;
+                    return this;
+                }
+
+                // getter
+                return this._info;
+            },
+
+            meta: function( val ) {
+
+                // setter
+                if ( val ) {
+                    this._meta = val;
+                    return this;
+                }
+
+                // getter
+                return this._meta;
+            },
+
+            destroy: function() {
+                var canvas = this._canvas;
+                this._img.onload = null;
+
+                if ( canvas ) {
+                    canvas.getContext('2d')
+                            .clearRect( 0, 0, canvas.width, canvas.height );
+                    canvas.width = canvas.height = 0;
+                    this._canvas = null;
+                }
+
+                // 释放内存。非常重要,否则释放不了image的内存。
+                this._img.src = BLANK;
+                this._img = this._blob = null;
+            },
+
+            _resize: function( img, cvs, width, height ) {
+                var opts = this.options,
+                    naturalWidth = img.width,
+                    naturalHeight = img.height,
+                    orientation = this.getOrientation(),
+                    scale, w, h, x, y;
+
+                // values that require 90 degree rotation
+                if ( ~[ 5, 6, 7, 8 ].indexOf( orientation ) ) {
+
+                    // 交换width, height的值。
+                    width ^= height;
+                    height ^= width;
+                    width ^= height;
+                }
+
+                scale = Math[ opts.crop ? 'max' : 'min' ]( width / naturalWidth,
+                        height / naturalHeight );
+
+                // 不允许放大。
+                opts.allowMagnify || (scale = Math.min( 1, scale ));
+
+                w = naturalWidth * scale;
+                h = naturalHeight * scale;
+
+                if ( opts.crop ) {
+                    cvs.width = width;
+                    cvs.height = height;
+                } else {
+                    cvs.width = w;
+                    cvs.height = h;
+                }
+
+                x = (cvs.width - w) / 2;
+                y = (cvs.height - h) / 2;
+
+                opts.preserveHeaders || this._rotate2Orientaion( cvs, orientation );
+
+                this._renderImageToCanvas( cvs, img, x, y, w, h );
+            },
+
+            _rotate2Orientaion: function( canvas, orientation ) {
+                var width = canvas.width,
+                    height = canvas.height,
+                    ctx = canvas.getContext('2d');
+
+                switch ( orientation ) {
+                    case 5:
+                    case 6:
+                    case 7:
+                    case 8:
+                        canvas.width = height;
+                        canvas.height = width;
+                        break;
+                }
+
+                switch ( orientation ) {
+                    case 2:    // horizontal flip
+                        ctx.translate( width, 0 );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 3:    // 180 rotate left
+                        ctx.translate( width, height );
+                        ctx.rotate( Math.PI );
+                        break;
+
+                    case 4:    // vertical flip
+                        ctx.translate( 0, height );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 5:    // vertical flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.scale( 1, -1 );
+                        break;
+
+                    case 6:    // 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( 0, -height );
+                        break;
+
+                    case 7:    // horizontal flip + 90 rotate right
+                        ctx.rotate( 0.5 * Math.PI );
+                        ctx.translate( width, -height );
+                        ctx.scale( -1, 1 );
+                        break;
+
+                    case 8:    // 90 rotate left
+                        ctx.rotate( -0.5 * Math.PI );
+                        ctx.translate( -width, 0 );
+                        break;
+                }
+            },
+
+            // https://github.com/stomita/ios-imagefile-megapixel/
+            // blob/master/src/megapix-image.js
+            _renderImageToCanvas: (function() {
+
+                // 如果不是ios, 不需要这么复杂!
+                if ( !Base.os.ios ) {
+                    return function( canvas ) {
+                        var args = Base.slice( arguments, 1 ),
+                            ctx = canvas.getContext('2d');
+
+                        ctx.drawImage.apply( ctx, args );
+                    };
+                }
+
+                /**
+                 * Detecting vertical squash in loaded image.
+                 * Fixes a bug which squash image vertically while drawing into
+                 * canvas for some images.
+                 */
+                function detectVerticalSquash( img, iw, ih ) {
+                    var canvas = document.createElement('canvas'),
+                        ctx = canvas.getContext('2d'),
+                        sy = 0,
+                        ey = ih,
+                        py = ih,
+                        data, alpha, ratio;
+
+
+                    canvas.width = 1;
+                    canvas.height = ih;
+                    ctx.drawImage( img, 0, 0 );
+                    data = ctx.getImageData( 0, 0, 1, ih ).data;
+
+                    // search image edge pixel position in case
+                    // it is squashed vertically.
+                    while ( py > sy ) {
+                        alpha = data[ (py - 1) * 4 + 3 ];
+
+                        if ( alpha === 0 ) {
+                            ey = py;
+                        } else {
+                            sy = py;
+                        }
+
+                        py = (ey + sy) >> 1;
+                    }
+
+                    ratio = (py / ih);
+                    return (ratio === 0) ? 1 : ratio;
+                }
+
+                // fix ie7 bug
+                // http://stackoverflow.com/questions/11929099/
+                // html5-canvas-drawimage-ratio-bug-ios
+                if ( Base.os.ios >= 7 ) {
+                    return function( canvas, img, x, y, w, h ) {
+                        var iw = img.naturalWidth,
+                            ih = img.naturalHeight,
+                            vertSquashRatio = detectVerticalSquash( img, iw, ih );
+
+                        return canvas.getContext('2d').drawImage( img, 0, 0,
+                                iw * vertSquashRatio, ih * vertSquashRatio,
+                                x, y, w, h );
+                    };
+                }
+
+                /**
+                 * Detect subsampling in loaded image.
+                 * In iOS, larger images than 2M pixels may be
+                 * subsampled in rendering.
+                 */
+                function detectSubsampling( img ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        canvas, ctx;
+
+                    // subsampling may happen overmegapixel image
+                    if ( iw * ih > 1024 * 1024 ) {
+                        canvas = document.createElement('canvas');
+                        canvas.width = canvas.height = 1;
+                        ctx = canvas.getContext('2d');
+                        ctx.drawImage( img, -iw + 1, 0 );
+
+                        // subsampled image becomes half smaller in rendering size.
+                        // check alpha channel value to confirm image is covering
+                        // edge pixel or not. if alpha value is 0
+                        // image is not covering, hence subsampled.
+                        return ctx.getImageData( 0, 0, 1, 1 ).data[ 3 ] === 0;
+                    } else {
+                        return false;
+                    }
+                }
+
+
+                return function( canvas, img, x, y, width, height ) {
+                    var iw = img.naturalWidth,
+                        ih = img.naturalHeight,
+                        ctx = canvas.getContext('2d'),
+                        subsampled = detectSubsampling( img ),
+                        doSquash = this.type === 'image/jpeg',
+                        d = 1024,
+                        sy = 0,
+                        dy = 0,
+                        tmpCanvas, tmpCtx, vertSquashRatio, dw, dh, sx, dx;
+
+                    if ( subsampled ) {
+                        iw /= 2;
+                        ih /= 2;
+                    }
+
+                    ctx.save();
+                    tmpCanvas = document.createElement('canvas');
+                    tmpCanvas.width = tmpCanvas.height = d;
+
+                    tmpCtx = tmpCanvas.getContext('2d');
+                    vertSquashRatio = doSquash ?
+                            detectVerticalSquash( img, iw, ih ) : 1;
+
+                    dw = Math.ceil( d * width / iw );
+                    dh = Math.ceil( d * height / ih / vertSquashRatio );
+
+                    while ( sy < ih ) {
+                        sx = 0;
+                        dx = 0;
+                        while ( sx < iw ) {
+                            tmpCtx.clearRect( 0, 0, d, d );
+                            tmpCtx.drawImage( img, -sx, -sy );
+                            ctx.drawImage( tmpCanvas, 0, 0, d, d,
+                                    x + dx, y + dy, dw, dh );
+                            sx += d;
+                            dx += dw;
+                        }
+                        sy += d;
+                        dy += dh;
+                    }
+                    ctx.restore();
+                    tmpCanvas = tmpCtx = null;
+                };
+            })()
+        });
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/html5/md5',[
+        'runtime/html5/runtime'
+    ], function( FlashRuntime ) {
+
+        /*
+         * Fastest md5 implementation around (JKM md5)
+         * Credits: Joseph Myers
+         *
+         * @see http://www.myersdaily.org/joseph/javascript/md5-text.html
+         * @see http://jsperf.com/md5-shootout/7
+         */
+
+        /* this function is much faster,
+          so if possible we use it. Some IEs
+          are the only ones I know of that
+          need the idiotic second function,
+          generated by an if clause.  */
+        var add32 = function (a, b) {
+            return (a + b) & 0xFFFFFFFF;
+        },
+
+        cmn = function (q, a, b, x, s, t) {
+            a = add32(add32(a, q), add32(x, t));
+            return add32((a << s) | (a >>> (32 - s)), b);
+        },
+
+        ff = function (a, b, c, d, x, s, t) {
+            return cmn((b & c) | ((~b) & d), a, b, x, s, t);
+        },
+
+        gg = function (a, b, c, d, x, s, t) {
+            return cmn((b & d) | (c & (~d)), a, b, x, s, t);
+        },
+
+        hh = function (a, b, c, d, x, s, t) {
+            return cmn(b ^ c ^ d, a, b, x, s, t);
+        },
+
+        ii = function (a, b, c, d, x, s, t) {
+            return cmn(c ^ (b | (~d)), a, b, x, s, t);
+        },
+
+        md5cycle = function (x, k) {
+            var a = x[0],
+                b = x[1],
+                c = x[2],
+                d = x[3];
+
+            a = ff(a, b, c, d, k[0], 7, -680876936);
+            d = ff(d, a, b, c, k[1], 12, -389564586);
+            c = ff(c, d, a, b, k[2], 17, 606105819);
+            b = ff(b, c, d, a, k[3], 22, -1044525330);
+            a = ff(a, b, c, d, k[4], 7, -176418897);
+            d = ff(d, a, b, c, k[5], 12, 1200080426);
+            c = ff(c, d, a, b, k[6], 17, -1473231341);
+            b = ff(b, c, d, a, k[7], 22, -45705983);
+            a = ff(a, b, c, d, k[8], 7, 1770035416);
+            d = ff(d, a, b, c, k[9], 12, -1958414417);
+            c = ff(c, d, a, b, k[10], 17, -42063);
+            b = ff(b, c, d, a, k[11], 22, -1990404162);
+            a = ff(a, b, c, d, k[12], 7, 1804603682);
+            d = ff(d, a, b, c, k[13], 12, -40341101);
+            c = ff(c, d, a, b, k[14], 17, -1502002290);
+            b = ff(b, c, d, a, k[15], 22, 1236535329);
+
+            a = gg(a, b, c, d, k[1], 5, -165796510);
+            d = gg(d, a, b, c, k[6], 9, -1069501632);
+            c = gg(c, d, a, b, k[11], 14, 643717713);
+            b = gg(b, c, d, a, k[0], 20, -373897302);
+            a = gg(a, b, c, d, k[5], 5, -701558691);
+            d = gg(d, a, b, c, k[10], 9, 38016083);
+            c = gg(c, d, a, b, k[15], 14, -660478335);
+            b = gg(b, c, d, a, k[4], 20, -405537848);
+            a = gg(a, b, c, d, k[9], 5, 568446438);
+            d = gg(d, a, b, c, k[14], 9, -1019803690);
+            c = gg(c, d, a, b, k[3], 14, -187363961);
+            b = gg(b, c, d, a, k[8], 20, 1163531501);
+            a = gg(a, b, c, d, k[13], 5, -1444681467);
+            d = gg(d, a, b, c, k[2], 9, -51403784);
+            c = gg(c, d, a, b, k[7], 14, 1735328473);
+            b = gg(b, c, d, a, k[12], 20, -1926607734);
+
+            a = hh(a, b, c, d, k[5], 4, -378558);
+            d = hh(d, a, b, c, k[8], 11, -2022574463);
+            c = hh(c, d, a, b, k[11], 16, 1839030562);
+            b = hh(b, c, d, a, k[14], 23, -35309556);
+            a = hh(a, b, c, d, k[1], 4, -1530992060);
+            d = hh(d, a, b, c, k[4], 11, 1272893353);
+            c = hh(c, d, a, b, k[7], 16, -155497632);
+            b = hh(b, c, d, a, k[10], 23, -1094730640);
+            a = hh(a, b, c, d, k[13], 4, 681279174);
+            d = hh(d, a, b, c, k[0], 11, -358537222);
+            c = hh(c, d, a, b, k[3], 16, -722521979);
+            b = hh(b, c, d, a, k[6], 23, 76029189);
+            a = hh(a, b, c, d, k[9], 4, -640364487);
+            d = hh(d, a, b, c, k[12], 11, -421815835);
+            c = hh(c, d, a, b, k[15], 16, 530742520);
+            b = hh(b, c, d, a, k[2], 23, -995338651);
+
+            a = ii(a, b, c, d, k[0], 6, -198630844);
+            d = ii(d, a, b, c, k[7], 10, 1126891415);
+            c = ii(c, d, a, b, k[14], 15, -1416354905);
+            b = ii(b, c, d, a, k[5], 21, -57434055);
+            a = ii(a, b, c, d, k[12], 6, 1700485571);
+            d = ii(d, a, b, c, k[3], 10, -1894986606);
+            c = ii(c, d, a, b, k[10], 15, -1051523);
+            b = ii(b, c, d, a, k[1], 21, -2054922799);
+            a = ii(a, b, c, d, k[8], 6, 1873313359);
+            d = ii(d, a, b, c, k[15], 10, -30611744);
+            c = ii(c, d, a, b, k[6], 15, -1560198380);
+            b = ii(b, c, d, a, k[13], 21, 1309151649);
+            a = ii(a, b, c, d, k[4], 6, -145523070);
+            d = ii(d, a, b, c, k[11], 10, -1120210379);
+            c = ii(c, d, a, b, k[2], 15, 718787259);
+            b = ii(b, c, d, a, k[9], 21, -343485551);
+
+            x[0] = add32(a, x[0]);
+            x[1] = add32(b, x[1]);
+            x[2] = add32(c, x[2]);
+            x[3] = add32(d, x[3]);
+        },
+
+        /* there needs to be support for Unicode here,
+           * unless we pretend that we can redefine the MD-5
+           * algorithm for multi-byte characters (perhaps
+           * by adding every four 16-bit characters and
+           * shortening the sum to 32 bits). Otherwise
+           * I suggest performing MD-5 as if every character
+           * was two bytes--e.g., 0040 0025 = @%--but then
+           * how will an ordinary MD-5 sum be matched?
+           * There is no way to standardize text to something
+           * like UTF-8 before transformation; speed cost is
+           * utterly prohibitive. The JavaScript standard
+           * itself needs to look at this: it should start
+           * providing access to strings as preformed UTF-8
+           * 8-bit unsigned value arrays.
+           */
+        md5blk = function (s) {
+            var md5blks = [],
+                i; /* Andy King said do it this way. */
+
+            for (i = 0; i < 64; i += 4) {
+                md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);
+            }
+            return md5blks;
+        },
+
+        md5blk_array = function (a) {
+            var md5blks = [],
+                i; /* Andy King said do it this way. */
+
+            for (i = 0; i < 64; i += 4) {
+                md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);
+            }
+            return md5blks;
+        },
+
+        md51 = function (s) {
+            var n = s.length,
+                state = [1732584193, -271733879, -1732584194, 271733878],
+                i,
+                length,
+                tail,
+                tmp,
+                lo,
+                hi;
+
+            for (i = 64; i <= n; i += 64) {
+                md5cycle(state, md5blk(s.substring(i - 64, i)));
+            }
+            s = s.substring(i - 64);
+            length = s.length;
+            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);
+            }
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Beware that the final length might not fit in 32 bits so we take care of that
+            tmp = n * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+
+            md5cycle(state, tail);
+            return state;
+        },
+
+        md51_array = function (a) {
+            var n = a.length,
+                state = [1732584193, -271733879, -1732584194, 271733878],
+                i,
+                length,
+                tail,
+                tmp,
+                lo,
+                hi;
+
+            for (i = 64; i <= n; i += 64) {
+                md5cycle(state, md5blk_array(a.subarray(i - 64, i)));
+            }
+
+            // Not sure if it is a bug, however IE10 will always produce a sub array of length 1
+            // containing the last element of the parent array if the sub array specified starts
+            // beyond the length of the parent array - weird.
+            // https://connect.microsoft.com/IE/feedback/details/771452/typed-array-subarray-issue
+            a = (i - 64) < n ? a.subarray(i - 64) : new Uint8Array(0);
+
+            length = a.length;
+            tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= a[i] << ((i % 4) << 3);
+            }
+
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Beware that the final length might not fit in 32 bits so we take care of that
+            tmp = n * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+
+            md5cycle(state, tail);
+
+            return state;
+        },
+
+        hex_chr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'],
+
+        rhex = function (n) {
+            var s = '',
+                j;
+            for (j = 0; j < 4; j += 1) {
+                s += hex_chr[(n >> (j * 8 + 4)) & 0x0F] + hex_chr[(n >> (j * 8)) & 0x0F];
+            }
+            return s;
+        },
+
+        hex = function (x) {
+            var i;
+            for (i = 0; i < x.length; i += 1) {
+                x[i] = rhex(x[i]);
+            }
+            return x.join('');
+        },
+
+        md5 = function (s) {
+            return hex(md51(s));
+        },
+
+
+
+        ////////////////////////////////////////////////////////////////////////////
+
+        /**
+         * SparkMD5 OOP implementation.
+         *
+         * Use this class to perform an incremental md5, otherwise use the
+         * static methods instead.
+         */
+        SparkMD5 = function () {
+            // call reset to init the instance
+            this.reset();
+        };
+
+
+        // In some cases the fast add32 function cannot be used..
+        if (md5('hello') !== '5d41402abc4b2a76b9719d911017c592') {
+            add32 = function (x, y) {
+                var lsw = (x & 0xFFFF) + (y & 0xFFFF),
+                    msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+                return (msw << 16) | (lsw & 0xFFFF);
+            };
+        }
+
+
+        /**
+         * Appends a string.
+         * A conversion will be applied if an utf8 string is detected.
+         *
+         * @param {String} str The string to be appended
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.append = function (str) {
+            // converts the string to utf8 bytes if necessary
+            if (/[\u0080-\uFFFF]/.test(str)) {
+                str = unescape(encodeURIComponent(str));
+            }
+
+            // then append as binary
+            this.appendBinary(str);
+
+            return this;
+        };
+
+        /**
+         * Appends a binary string.
+         *
+         * @param {String} contents The binary string to be appended
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.appendBinary = function (contents) {
+            this._buff += contents;
+            this._length += contents.length;
+
+            var length = this._buff.length,
+                i;
+
+            for (i = 64; i <= length; i += 64) {
+                md5cycle(this._state, md5blk(this._buff.substring(i - 64, i)));
+            }
+
+            this._buff = this._buff.substr(i - 64);
+
+            return this;
+        };
+
+        /**
+         * Finishes the incremental computation, reseting the internal state and
+         * returning the result.
+         * Use the raw parameter to obtain the raw result instead of the hex one.
+         *
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.prototype.end = function (raw) {
+            var buff = this._buff,
+                length = buff.length,
+                i,
+                tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+                ret;
+
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= buff.charCodeAt(i) << ((i % 4) << 3);
+            }
+
+            this._finish(tail, length);
+            ret = !!raw ? this._state : hex(this._state);
+
+            this.reset();
+
+            return ret;
+        };
+
+        /**
+         * Finish the final calculation based on the tail.
+         *
+         * @param {Array}  tail   The tail (will be modified)
+         * @param {Number} length The length of the remaining buffer
+         */
+        SparkMD5.prototype._finish = function (tail, length) {
+            var i = length,
+                tmp,
+                lo,
+                hi;
+
+            tail[i >> 2] |= 0x80 << ((i % 4) << 3);
+            if (i > 55) {
+                md5cycle(this._state, tail);
+                for (i = 0; i < 16; i += 1) {
+                    tail[i] = 0;
+                }
+            }
+
+            // Do the final computation based on the tail and length
+            // Beware that the final length may not fit in 32 bits so we take care of that
+            tmp = this._length * 8;
+            tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);
+            lo = parseInt(tmp[2], 16);
+            hi = parseInt(tmp[1], 16) || 0;
+
+            tail[14] = lo;
+            tail[15] = hi;
+            md5cycle(this._state, tail);
+        };
+
+        /**
+         * Resets the internal state of the computation.
+         *
+         * @return {SparkMD5} The instance itself
+         */
+        SparkMD5.prototype.reset = function () {
+            this._buff = "";
+            this._length = 0;
+            this._state = [1732584193, -271733879, -1732584194, 271733878];
+
+            return this;
+        };
+
+        /**
+         * Releases memory used by the incremental buffer and other aditional
+         * resources. If you plan to use the instance again, use reset instead.
+         */
+        SparkMD5.prototype.destroy = function () {
+            delete this._state;
+            delete this._buff;
+            delete this._length;
+        };
+
+
+        /**
+         * Performs the md5 hash on a string.
+         * A conversion will be applied if utf8 string is detected.
+         *
+         * @param {String}  str The string
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.hash = function (str, raw) {
+            // converts the string to utf8 bytes if necessary
+            if (/[\u0080-\uFFFF]/.test(str)) {
+                str = unescape(encodeURIComponent(str));
+            }
+
+            var hash = md51(str);
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        /**
+         * Performs the md5 hash on a binary string.
+         *
+         * @param {String}  content The binary string
+         * @param {Boolean} raw     True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.hashBinary = function (content, raw) {
+            var hash = md51(content);
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        /**
+         * SparkMD5 OOP implementation for array buffers.
+         *
+         * Use this class to perform an incremental md5 ONLY for array buffers.
+         */
+        SparkMD5.ArrayBuffer = function () {
+            // call reset to init the instance
+            this.reset();
+        };
+
+        ////////////////////////////////////////////////////////////////////////////
+
+        /**
+         * Appends an array buffer.
+         *
+         * @param {ArrayBuffer} arr The array to be appended
+         *
+         * @return {SparkMD5.ArrayBuffer} The instance itself
+         */
+        SparkMD5.ArrayBuffer.prototype.append = function (arr) {
+            // TODO: we could avoid the concatenation here but the algorithm would be more complex
+            //       if you find yourself needing extra performance, please make a PR.
+            var buff = this._concatArrayBuffer(this._buff, arr),
+                length = buff.length,
+                i;
+
+            this._length += arr.byteLength;
+
+            for (i = 64; i <= length; i += 64) {
+                md5cycle(this._state, md5blk_array(buff.subarray(i - 64, i)));
+            }
+
+            // Avoids IE10 weirdness (documented above)
+            this._buff = (i - 64) < length ? buff.subarray(i - 64) : new Uint8Array(0);
+
+            return this;
+        };
+
+        /**
+         * Finishes the incremental computation, reseting the internal state and
+         * returning the result.
+         * Use the raw parameter to obtain the raw result instead of the hex one.
+         *
+         * @param {Boolean} raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.ArrayBuffer.prototype.end = function (raw) {
+            var buff = this._buff,
+                length = buff.length,
+                tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
+                i,
+                ret;
+
+            for (i = 0; i < length; i += 1) {
+                tail[i >> 2] |= buff[i] << ((i % 4) << 3);
+            }
+
+            this._finish(tail, length);
+            ret = !!raw ? this._state : hex(this._state);
+
+            this.reset();
+
+            return ret;
+        };
+
+        SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;
+
+        /**
+         * Resets the internal state of the computation.
+         *
+         * @return {SparkMD5.ArrayBuffer} The instance itself
+         */
+        SparkMD5.ArrayBuffer.prototype.reset = function () {
+            this._buff = new Uint8Array(0);
+            this._length = 0;
+            this._state = [1732584193, -271733879, -1732584194, 271733878];
+
+            return this;
+        };
+
+        /**
+         * Releases memory used by the incremental buffer and other aditional
+         * resources. If you plan to use the instance again, use reset instead.
+         */
+        SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;
+
+        /**
+         * Concats two array buffers, returning a new one.
+         *
+         * @param  {ArrayBuffer} first  The first array buffer
+         * @param  {ArrayBuffer} second The second array buffer
+         *
+         * @return {ArrayBuffer} The new array buffer
+         */
+        SparkMD5.ArrayBuffer.prototype._concatArrayBuffer = function (first, second) {
+            var firstLength = first.length,
+                result = new Uint8Array(firstLength + second.byteLength);
+
+            result.set(first);
+            result.set(new Uint8Array(second), firstLength);
+
+            return result;
+        };
+
+        /**
+         * Performs the md5 hash on an array buffer.
+         *
+         * @param {ArrayBuffer} arr The array buffer
+         * @param {Boolean}     raw True to get the raw result, false to get the hex result
+         *
+         * @return {String|Array} The result
+         */
+        SparkMD5.ArrayBuffer.hash = function (arr, raw) {
+            var hash = md51_array(new Uint8Array(arr));
+
+            return !!raw ? hash : hex(hash);
+        };
+
+        return FlashRuntime.register( 'Md5', {
+            init: function() {
+                // do nothing.
+            },
+
+            loadFromBlob: function( file ) {
+                var blob = file.getSource(),
+                    chunkSize = 2 * 1024 * 1024,
+                    chunks = Math.ceil( blob.size / chunkSize ),
+                    chunk = 0,
+                    owner = this.owner,
+                    spark = new SparkMD5.ArrayBuffer(),
+                    me = this,
+                    blobSlice = blob.mozSlice || blob.webkitSlice || blob.slice,
+                    loadNext, fr;
+
+                fr = new FileReader();
+
+                loadNext = function() {
+                    var start, end;
+
+                    start = chunk * chunkSize;
+                    end = Math.min( start + chunkSize, blob.size );
+
+                    fr.onload = function( e ) {
+                        spark.append( e.target.result );
+                        owner.trigger( 'progress', {
+                            total: file.size,
+                            loaded: end
+                        });
+                    };
+
+                    fr.onloadend = function() {
+                        fr.onloadend = fr.onload = null;
+
+                        if ( ++chunk < chunks ) {
+                            setTimeout( loadNext, 1 );
+                        } else {
+                            setTimeout(function(){
+                                owner.trigger('load');
+                                me.result = spark.end();
+                                loadNext = file = blob = spark = null;
+                                owner.trigger('complete');
+                            }, 50 );
+                        }
+                    };
+
+                    fr.readAsArrayBuffer( blobSlice.call( blob, start, end ) );
+                };
+
+                loadNext();
+            },
+
+            getResult: function() {
+                return this.result;
+            }
+        });
+    });
+    /**
+     * @fileOverview FlashRuntime
+     */
+    define('runtime/flash/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var $ = Base.$,
+            type = 'flash',
+            components = {};
+
+
+        function getFlashVersion() {
+            var version;
+
+            try {
+                version = navigator.plugins[ 'Shockwave Flash' ];
+                version = version.description;
+            } catch ( ex ) {
+                try {
+                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
+                            .GetVariable('$version');
+                } catch ( ex2 ) {
+                    version = '0.0';
+                }
+            }
+            version = version.match( /\d+/g );
+            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
+        }
+
+        function FlashRuntime() {
+            var pool = {},
+                clients = {},
+                destroy = this.destroy,
+                me = this,
+                jsreciver = Base.guid('webuploader_');
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/ ) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                clients[ uid ] = client;
+
+                if ( components[ comp ] ) {
+                    if ( !pool[ uid ] ) {
+                        pool[ uid ] = new components[ comp ]( client, me );
+                    }
+
+                    instance = pool[ uid ];
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+
+                return me.flashExec.apply( client, arguments );
+            };
+
+            function handler( evt, obj ) {
+                var type = evt.type || evt,
+                    parts, uid;
+
+                parts = type.split('::');
+                uid = parts[ 0 ];
+                type = parts[ 1 ];
+
+                // console.log.apply( console, arguments );
+
+                if ( type === 'Ready' && uid === me.uid ) {
+                    me.trigger('ready');
+                } else if ( clients[ uid ] ) {
+                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
+                }
+
+                // Base.log( evt, obj );
+            }
+
+            // flash的接受器。
+            window[ jsreciver ] = function() {
+                var args = arguments;
+
+                // 为了能捕获得到。
+                setTimeout(function() {
+                    handler.apply( null, args );
+                }, 1 );
+            };
+
+            this.jsreciver = jsreciver;
+
+            this.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+
+            this.flashExec = function( comp, fn ) {
+                var flash = me.getFlash(),
+                    args = Base.slice( arguments, 2 );
+
+                return flash.exec( this.uid, comp, fn, args );
+            };
+
+            // @todo
+        }
+
+        Base.inherits( Runtime, {
+            constructor: FlashRuntime,
+
+            init: function() {
+                var container = this.getContainer(),
+                    opts = this.options,
+                    html;
+
+                // if not the minimal height, shims are not initialized
+                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
+                container.css({
+                    position: 'absolute',
+                    top: '-8px',
+                    left: '-8px',
+                    width: '9px',
+                    height: '9px',
+                    overflow: 'hidden'
+                });
+
+                // insert flash object
+                html = '<object id="' + this.uid + '" type="application/' +
+                        'x-shockwave-flash" data="' +  opts.swf + '" ';
+
+                if ( Base.browser.ie ) {
+                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
+                }
+
+                html += 'width="100%" height="100%" style="outline:0">'  +
+                    '<param name="movie" value="' + opts.swf + '" />' +
+                    '<param name="flashvars" value="uid=' + this.uid +
+                    '&jsreciver=' + this.jsreciver + '" />' +
+                    '<param name="wmode" value="transparent" />' +
+                    '<param name="allowscriptaccess" value="always" />' +
+                '</object>';
+
+                container.html( html );
+            },
+
+            getFlash: function() {
+                if ( this._flash ) {
+                    return this._flash;
+                }
+
+                this._flash = $( '#' + this.uid ).get( 0 );
+                return this._flash;
+            }
+
+        });
+
+        FlashRuntime.register = function( name, component ) {
+            component = components[ name ] = Base.inherits( CompBase, $.extend({
+
+                // @todo fix this later
+                flashExec: function() {
+                    var owner = this.owner,
+                        runtime = this.getRuntime();
+
+                    return runtime.flashExec.apply( owner, arguments );
+                }
+            }, component ) );
+
+            return component;
+        };
+
+        if ( getFlashVersion() >= 11.4 ) {
+            Runtime.addRuntime( type, FlashRuntime );
+        }
+
+        return FlashRuntime;
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/flash/filepicker',[
+        'base',
+        'runtime/flash/runtime'
+    ], function( Base, FlashRuntime ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'FilePicker', {
+            init: function( opts ) {
+                var copy = $.extend({}, opts ),
+                    len, i;
+
+                // 修复Flash再没有设置title的情况下无法弹出flash文件选择框的bug.
+                len = copy.accept && copy.accept.length;
+                for (  i = 0; i < len; i++ ) {
+                    if ( !copy.accept[ i ].title ) {
+                        copy.accept[ i ].title = 'Files';
+                    }
+                }
+
+                delete copy.button;
+                delete copy.id;
+                delete copy.container;
+
+                this.flashExec( 'FilePicker', 'init', copy );
+            },
+
+            destroy: function() {
+                this.flashExec( 'FilePicker', 'destroy' );
+            }
+        });
+    });
+    /**
+     * @fileOverview 图片压缩
+     */
+    define('runtime/flash/image',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Image', {
+            // init: function( options ) {
+            //     var owner = this.owner;
+
+            //     this.flashExec( 'Image', 'init', options );
+            //     owner.on( 'load', function() {
+            //         debugger;
+            //     });
+            // },
+
+            loadFromBlob: function( blob ) {
+                var owner = this.owner;
+
+                owner.info() && this.flashExec( 'Image', 'info', owner.info() );
+                owner.meta() && this.flashExec( 'Image', 'meta', owner.meta() );
+
+                this.flashExec( 'Image', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/flash/transport',[
+        'base',
+        'runtime/flash/runtime',
+        'runtime/client'
+    ], function( Base, FlashRuntime, RuntimeClient ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+                this._responseJson = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    binary;
+
+                xhr.connectRuntime( blob.ruid );
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.uid;
+                } else {
+                    $.each( owner._formData, function( k, v ) {
+                        xhr.exec( 'append', k, v );
+                    });
+
+                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+                xhr.exec( 'send', {
+                    method: opts.method,
+                    url: server,
+                    forceURLStream: opts.forceURLStream,
+                    mimeType: 'application/octet-stream'
+                }, binary );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            getResponse: function() {
+                return this._response || '';
+            },
+
+            getResponseAsJson: function() {
+                return this._responseJson;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.exec('abort');
+                    xhr.destroy();
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new RuntimeClient('XMLHttpRequest');
+
+                xhr.on( 'uploadprogress progress', function( e ) {
+                    var percent = e.loaded / e.total;
+                    percent = Math.min( 1, Math.max( 0, percent ) );
+                    return me.trigger( 'progress', percent );
+                });
+
+                xhr.on( 'load', function() {
+                    var status = xhr.exec('getStatus'),
+                        readBody = false,
+                        err = '',
+                        p;
+
+                    xhr.off();
+                    me._xhr = null;
+
+                    if ( status >= 200 && status < 300 ) {
+                        readBody = true;
+                    } else if ( status >= 500 && status < 600 ) {
+                        readBody = true;
+                        err = 'server';
+                    } else {
+                        err = 'http';
+                    }
+
+                    if ( readBody ) {
+                        me._response = xhr.exec('getResponse');
+                        me._response = decodeURIComponent( me._response );
+
+                        // flash 处理可能存在 bug, 没辙只能靠 js 了
+                        // try {
+                        //     me._responseJson = xhr.exec('getResponseAsJson');
+                        // } catch ( error ) {
+
+                        p = window.JSON && window.JSON.parse || function( s ) {
+                            try {
+                                return new Function('return ' + s).call();
+                            } catch ( err ) {
+                                return {};
+                            }
+                        };
+                        me._responseJson  = me._response ? p(me._response) : {};
+
+                        // }
+                    }
+
+                    xhr.destroy();
+                    xhr = null;
+
+                    return err ? me.trigger( 'error', err ) : me.trigger('load');
+                });
+
+                xhr.on( 'error', function() {
+                    xhr.off();
+                    me._xhr = null;
+                    me.trigger( 'error', 'http' );
+                });
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.exec( 'setRequestHeader', key, val );
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/flash/blob',[
+        'runtime/flash/runtime',
+        'lib/blob'
+    ], function( FlashRuntime, Blob ) {
+
+        return FlashRuntime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.flashExec( 'Blob', 'slice', start, end );
+
+                return new Blob( blob.uid, blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Md5 flash实现
+     */
+    define('runtime/flash/md5',[
+        'runtime/flash/runtime'
+    ], function( FlashRuntime ) {
+
+        return FlashRuntime.register( 'Md5', {
+            init: function() {
+                // do nothing.
+            },
+
+            loadFromBlob: function( blob ) {
+                return this.flashExec( 'Md5', 'loadFromBlob', blob.uid );
+            }
+        });
+    });
+    /**
+     * @fileOverview 完全版本。
+     */
+    define('preset/all',[
+        'base',
+
+        // widgets
+        'widgets/filednd',
+        'widgets/filepaste',
+        'widgets/filepicker',
+        'widgets/image',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+        'widgets/md5',
+
+        // runtimes
+        // html5
+        'runtime/html5/blob',
+        'runtime/html5/dnd',
+        'runtime/html5/filepaste',
+        'runtime/html5/filepicker',
+        'runtime/html5/imagemeta/exif',
+        'runtime/html5/androidpatch',
+        'runtime/html5/image',
+        'runtime/html5/transport',
+        'runtime/html5/md5',
+
+        // flash
+        'runtime/flash/filepicker',
+        'runtime/flash/image',
+        'runtime/flash/transport',
+        'runtime/flash/blob',
+        'runtime/flash/md5'
+    ], function( Base ) {
+        return Base;
+    });
+    define('webuploader',[
+        'preset/all'
+    ], function( preset ) {
+        return preset;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.min.js
new file mode 100644
index 0000000..990b2ab
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.nolog.min.js
@@ -0,0 +1,3 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({name:"dnd",init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return this.dnd=e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}},destroy:function(){this.dnd&&this.dnd.destroy()}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({name:"paste",init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return this.paste=e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}},destroy:function(){this.paste&&this.paste.destroy()}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("lib/image",["base","runtime/client","lib/blob"],function(a,b,c){function d(a){this.options=e.extend({},d.options,a),b.call(this,"Image"),this.on("load",function(){this._info=this.exec("info"),this._meta=this.exec("meta")})}var e=a.$;return d.options={quality:90,crop:!1,preserveHeaders:!1,allowMagnify:!1},a.inherits(b,{constructor:d,info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},loadFromBlob:function(a){var b=this,c=a.getRuid();this.connectRuntime(c,function(){b.exec("init",b.options),b.exec("loadFromBlob",a)})},resize:function(){var b=a.slice(arguments);return this.exec.apply(this,["resize"].concat(b))},crop:function(){var b=a.slice(arguments);return this.exec.apply(this,["crop"].concat(b))},getAsDataUrl:function(a){return this.exec("getAsDataUrl",a)},getAsBlob:function(a){var b=this.exec("getAsBlob",a);return new c(this.getRuid(),b)}}),d}),b("widgets/image",["base","uploader","lib/image","widgets/widget"],function(a,b,c){var d,e=a.$;return d=function(a){var b=0,c=[],d=function(){for(var d;c.length&&a>b;)d=c.shift(),b+=d[0],d[1]()};return function(a,e,f){c.push([e,f]),a.once("destroy",function(){b-=e,setTimeout(d,1)}),setTimeout(d,1)}}(5242880),e.extend(b.options,{thumb:{width:110,height:110,quality:70,allowMagnify:!0,crop:!0,preserveHeaders:!1,type:"image/jpeg"},compress:{width:1600,height:1600,quality:90,allowMagnify:!1,crop:!1,preserveHeaders:!0}}),b.register({name:"image",makeThumb:function(a,b,f,g){var h,i;return a=this.request("get-file",a),a.type.match(/^image/)?(h=e.extend({},this.options.thumb),e.isPlainObject(f)&&(h=e.extend(h,f),f=null),f=f||h.width,g=g||h.height,i=new c(h),i.once("load",function(){a._info=a._info||i.info(),a._meta=a._meta||i.meta(),1>=f&&f>0&&(f=a._info.width*f),1>=g&&g>0&&(g=a._info.height*g),i.resize(f,g)}),i.once("complete",function(){b(!1,i.getAsDataUrl(h.type)),i.destroy()}),i.once("error",function(a){b(a||!0),i.destroy()}),void d(i,a.source.size,function(){a._info&&i.info(a._info),a._meta&&i.meta(a._meta),i.loadFromBlob(a.source)})):void b(!0)},beforeSendFile:function(b){var d,f,g=this.options.compress||this.options.resize,h=g&&g.compressSize||0,i=g&&g.noCompressIfLarger||!1;return b=this.request("get-file",b),!g||!~"image/jpeg,image/jpg".indexOf(b.type)||b.size<h||b._compressed?void 0:(g=e.extend({},g),f=a.Deferred(),d=new c(g),f.always(function(){d.destroy(),d=null}),d.once("error",f.reject),d.once("load",function(){var a=g.width,c=g.height;b._info=b._info||d.info(),b._meta=b._meta||d.meta(),1>=a&&a>0&&(a=b._info.width*a),1>=c&&c>0&&(c=b._info.height*c),d.resize(a,c)}),d.once("complete",function(){var a,c;try{a=d.getAsBlob(g.type),c=b.size,(!i||a.size<c)&&(b.source=a,b.size=a.size,b.trigger("resize",a.size,c)),b._compressed=!0,f.resolve()}catch(e){f.resolve()}}),b._info&&d.info(b._info),b._meta&&d.meta(b._meta),d.loadFromBlob(b.source),f.promise())}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});if(!c.runing){c.runing=!0;var d=[];f.each(c.pool,function(a,b){var e=b.file;e.getStatus()===h.INTERRUPT&&(d.push(e),c._trigged=!1,b.transport&&b.transport.send())});for(var b;b=d.shift();)b.setStatus(h.PROGRESS);b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload")}},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d.updateFileProgress(e),d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){b.percentage=a,g.updateFileProgress(k)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)
+}).always(function(){d.trigger("uploadComplete",a)})},updateFileProgress:function(a){var b=0,c=0;a.blocks&&(f.each(a.blocks,function(a,b){c+=(b.percentage||0)*(b.end-b.start)}),b=c/a.size,this.owner.trigger("uploadProgress",a,b||0))}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({name:"validator",init:function(){var b=this;a.nextTick(function(){e.each(f,function(){this.call(b.owner)})})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileNumLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("reset",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileSizeLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("reset",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",d,a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}),b.on("reset",function(){d={}}))}),d}),b("lib/md5",["runtime/client","mediator"],function(a,b){function c(){a.call(this,"Md5")}return b.installTo(c.prototype),c.prototype.loadFromBlob=function(a){var b=this;b.getRuid()&&b.disconnectRuntime(),b.connectRuntime(a.ruid,function(){b.exec("init"),b.exec("loadFromBlob",a)})},c.prototype.getResult=function(){return this.exec("getResult")},c}),b("widgets/md5",["base","uploader","lib/md5","lib/blob","widgets/widget"],function(a,b,c,d){return b.register({name:"md5",md5File:function(b,e,f){var g=new c,h=a.Deferred(),i=b instanceof d?b:this.request("get-file",b).source;return g.on("progress load",function(a){a=a||{},h.notify(a.total?a.loaded/a.total:1)}),g.on("complete",function(){h.resolve(g.getResult())}),g.on("error",function(a){h.reject(a)}),arguments.length>1&&(e=e||0,f=f||0,0>e&&(e=i.size+e),0>f&&(f=i.size+f),f=Math.min(f,i.size),i=i.slice(e,f)),g.loadFromBlob(i),h.promise()}})}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destroy;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destroy=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b,f,g=this,h=g.getRuid(),i=g.elem.parent().get(0);if(i&&!d.contains(i,a.currentTarget))return!1;a=a.originalEvent||a,b=a.dataTransfer;try{f=b.getData("text/html")}catch(j){}return f?void 0:(g._getTansferFiles(b,function(a){g.trigger("drop",d.map(a,function(a){return new c(h,a)}))}),g.dndOver=!1,g.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k=[],l=[];for(d=b.items,e=b.files,j=!(!d||!d[0].webkitGetAsEntry),h=0,i=e.length;i>h;h++)f=e[h],g=d&&d[h],j&&g.webkitGetAsEntry().isDirectory?l.push(this._traverseDirectoryTree(g.webkitGetAsEntry(),k)):k.push(f);a.when.apply(a,l).done(function(){k.length&&c(k)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a&&(a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragOverHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler)))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=this.label=c(document.createElement("label")),k=this.input=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),b.value=null,this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){this.input.off(),this.label.off()}})}),b("runtime/html5/util",["base"],function(b){var c=a.createObjectURL&&a||a.URL&&URL.revokeObjectURL&&URL||a.webkitURL,d=b.noop,e=d;return c&&(d=function(){return c.createObjectURL.apply(c,arguments)},e=function(){return c.revokeObjectURL.apply(c,arguments)}),{createObjectURL:d,revokeObjectURL:e,dataURL2Blob:function(a){var b,c,d,e,f,g;for(g=a.split(","),b=~g[0].indexOf("base64")?atob(g[1]):decodeURIComponent(g[1]),d=new ArrayBuffer(b.length),c=new Uint8Array(d),e=0;e<b.length;e++)c[e]=b.charCodeAt(e);return f=g[0].split(":")[1].split(";")[0],this.arrayBufferToBlob(d,f)},dataURL2ArrayBuffer:function(a){var b,c,d,e;for(e=a.split(","),b=~e[0].indexOf("base64")?atob(e[1]):decodeURIComponent(e[1]),c=new Uint8Array(b.length),d=0;d<b.length;d++)c[d]=b.charCodeAt(d);return c.buffer},arrayBufferToBlob:function(b,c){var d,e=a.BlobBuilder||a.WebKitBlobBuilder;return e?(d=new e,d.append(b),d.getBlob(c)):new Blob([b],c?{type:c}:{})},canvasToDataUrl:function(a,b,c){return a.toDataURL(b,c/100)},parseMeta:function(a,b){b(!1,{})},updateImageHead:function(a){return a}}}),b("runtime/html5/imagemeta",["runtime/html5/util"],function(a){var b;return b={parsers:{65505:[]},maxMetaDataSize:262144,parse:function(a,b){var c=this,d=new FileReader;d.onload=function(){b(!1,c._parse(this.result)),d=d.onload=d.onerror=null},d.onerror=function(a){b(a.message),d=d.onload=d.onerror=null},a=a.slice(0,c.maxMetaDataSize),d.readAsArrayBuffer(a.getSource())},_parse:function(a,c){if(!(a.byteLength<6)){var d,e,f,g,h=new DataView(a),i=2,j=h.byteLength-4,k=i,l={};if(65496===h.getUint16(0)){for(;j>i&&(d=h.getUint16(i),d>=65504&&65519>=d||65534===d)&&(e=h.getUint16(i+2)+2,!(i+e>h.byteLength));){if(f=b.parsers[d],!c&&f)for(g=0;g<f.length;g+=1)f[g].call(b,h,i,e,l);i+=e,k=i}k>6&&(l.imageHead=a.slice?a.slice(2,k):new Uint8Array(a).subarray(2,k))}return l}},updateImageHead:function(a,b){var c,d,e,f=this._parse(a,!0);return e=2,f.imageHead&&(e=2+f.imageHead.byteLength),d=a.slice?a.slice(e):new Uint8Array(a).subarray(e),c=new Uint8Array(b.byteLength+2+d.byteLength),c[0]=255,c[1]=216,c.set(new Uint8Array(b),2),c.set(new Uint8Array(d),b.byteLength+2),c.buffer}},a.parseMeta=function(){return b.parse.apply(b,arguments)},a.updateImageHead=function(){return b.updateImageHead.apply(b,arguments)},b}),b("runtime/html5/imagemeta/exif",["base","runtime/html5/imagemeta"],function(a,b){var c={};return c.ExifMap=function(){return this},c.ExifMap.prototype.map={Orientation:274},c.ExifMap.prototype.get=function(a){return this[a]||this[this.map[a]]},c.exifTagTypes={1:{getValue:function(a,b){return a.getUint8(b)},size:1},2:{getValue:function(a,b){return String.fromCharCode(a.getUint8(b))},size:1,ascii:!0},3:{getValue:function(a,b,c){return a.getUint16(b,c)},size:2},4:{getValue:function(a,b,c){return a.getUint32(b,c)},size:4},5:{getValue:function(a,b,c){return a.getUint32(b,c)/a.getUint32(b+4,c)},size:8},9:{getValue:function(a,b,c){return a.getInt32(b,c)},size:4},10:{getValue:function(a,b,c){return a.getInt32(b,c)/a.getInt32(b+4,c)},size:8}},c.exifTagTypes[7]=c.exifTagTypes[1],c.getExifValue=function(b,d,e,f,g,h){var i,j,k,l,m,n,o=c.exifTagTypes[f];if(!o)return void a.log("Invalid Exif data: Invalid tag type.");if(i=o.size*g,j=i>4?d+b.getUint32(e+8,h):e+8,j+i>b.byteLength)return void a.log("Invalid Exif data: Invalid data offset.");if(1===g)return o.getValue(b,j,h);for(k=[],l=0;g>l;l+=1)k[l]=o.getValue(b,j+l*o.size,h);if(o.ascii){for(m="",l=0;l<k.length&&(n=k[l],"\x00"!==n);l+=1)m+=n;return m}return k},c.parseExifTag=function(a,b,d,e,f){var g=a.getUint16(d,e);f.exif[g]=c.getExifValue(a,b,d,a.getUint16(d+2,e),a.getUint32(d+4,e),e)},c.parseExifTags=function(b,c,d,e,f){var g,h,i;if(d+6>b.byteLength)return void a.log("Invalid Exif data: Invalid directory offset.");if(g=b.getUint16(d,e),h=d+2+12*g,h+4>b.byteLength)return void a.log("Invalid Exif data: Invalid directory size.");for(i=0;g>i;i+=1)this.parseExifTag(b,c,d+2+12*i,e,f);return b.getUint32(h,e)},c.parseExifData=function(b,d,e,f){var g,h,i=d+10;if(1165519206===b.getUint32(d+4)){if(i+8>b.byteLength)return void a.log("Invalid Exif data: Invalid segment size.");if(0!==b.getUint16(d+8))return void a.log("Invalid Exif data: Missing byte alignment offset.");switch(b.getUint16(i)){case 18761:g=!0;break;case 19789:g=!1;break;default:return void a.log("Invalid Exif data: Invalid byte alignment marker.")}if(42!==b.getUint16(i+2,g))return void a.log("Invalid Exif data: Missing TIFF marker.");h=b.getUint32(i+4,g),f.exif=new c.ExifMap,h=c.parseExifTags(b,i,i+h,g,f)}},b.parsers[65505].push(c.parseExifData),c}),b("runtime/html5/jpegencoder",[],function(){function a(a){function b(a){for(var b=[16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22,37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99],c=0;64>c;c++){var d=y((b[c]*a+50)/100);1>d?d=1:d>255&&(d=255),z[P[c]]=d}for(var e=[17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99],f=0;64>f;f++){var g=y((e[f]*a+50)/100);1>g?g=1:g>255&&(g=255),A[P[f]]=g}for(var h=[1,1.387039845,1.306562965,1.175875602,1,.785694958,.5411961,.275899379],i=0,j=0;8>j;j++)for(var k=0;8>k;k++)B[i]=1/(z[P[i]]*h[j]*h[k]*8),C[i]=1/(A[P[i]]*h[j]*h[k]*8),i++}function c(a,b){for(var c=0,d=0,e=new Array,f=1;16>=f;f++){for(var g=1;g<=a[f];g++)e[b[d]]=[],e[b[d]][0]=c,e[b[d]][1]=f,d++,c++;c*=2}return e}function d(){t=c(Q,R),u=c(U,V),v=c(S,T),w=c(W,X)}function e(){for(var a=1,b=2,c=1;15>=c;c++){for(var d=a;b>d;d++)E[32767+d]=c,D[32767+d]=[],D[32767+d][1]=c,D[32767+d][0]=d;for(var e=-(b-1);-a>=e;e++)E[32767+e]=c,D[32767+e]=[],D[32767+e][1]=c,D[32767+e][0]=b-1+e;a<<=1,b<<=1}}function f(){for(var a=0;256>a;a++)O[a]=19595*a,O[a+256>>0]=38470*a,O[a+512>>0]=7471*a+32768,O[a+768>>0]=-11059*a,O[a+1024>>0]=-21709*a,O[a+1280>>0]=32768*a+8421375,O[a+1536>>0]=-27439*a,O[a+1792>>0]=-5329*a}function g(a){for(var b=a[0],c=a[1]-1;c>=0;)b&1<<c&&(I|=1<<J),c--,J--,0>J&&(255==I?(h(255),h(0)):h(I),J=7,I=0)}function h(a){H.push(N[a])}function i(a){h(a>>8&255),h(255&a)}function j(a,b){var c,d,e,f,g,h,i,j,k,l=0,m=8,n=64;for(k=0;m>k;++k){c=a[l],d=a[l+1],e=a[l+2],f=a[l+3],g=a[l+4],h=a[l+5],i=a[l+6],j=a[l+7];var o=c+j,p=c-j,q=d+i,r=d-i,s=e+h,t=e-h,u=f+g,v=f-g,w=o+u,x=o-u,y=q+s,z=q-s;a[l]=w+y,a[l+4]=w-y;var A=.707106781*(z+x);a[l+2]=x+A,a[l+6]=x-A,w=v+t,y=t+r,z=r+p;var B=.382683433*(w-z),C=.5411961*w+B,D=1.306562965*z+B,E=.707106781*y,G=p+E,H=p-E;a[l+5]=H+C,a[l+3]=H-C,a[l+1]=G+D,a[l+7]=G-D,l+=8}for(l=0,k=0;m>k;++k){c=a[l],d=a[l+8],e=a[l+16],f=a[l+24],g=a[l+32],h=a[l+40],i=a[l+48],j=a[l+56];var I=c+j,J=c-j,K=d+i,L=d-i,M=e+h,N=e-h,O=f+g,P=f-g,Q=I+O,R=I-O,S=K+M,T=K-M;a[l]=Q+S,a[l+32]=Q-S;var U=.707106781*(T+R);a[l+16]=R+U,a[l+48]=R-U,Q=P+N,S=N+L,T=L+J;var V=.382683433*(Q-T),W=.5411961*Q+V,X=1.306562965*T+V,Y=.707106781*S,Z=J+Y,$=J-Y;a[l+40]=$+W,a[l+24]=$-W,a[l+8]=Z+X,a[l+56]=Z-X,l++}var _;for(k=0;n>k;++k)_=a[k]*b[k],F[k]=_>0?_+.5|0:_-.5|0;return F}function k(){i(65504),i(16),h(74),h(70),h(73),h(70),h(0),h(1),h(1),h(0),i(1),i(1),h(0),h(0)}function l(a,b){i(65472),i(17),h(8),i(b),i(a),h(3),h(1),h(17),h(0),h(2),h(17),h(1),h(3),h(17),h(1)}function m(){i(65499),i(132),h(0);for(var a=0;64>a;a++)h(z[a]);h(1);for(var b=0;64>b;b++)h(A[b])}function n(){i(65476),i(418),h(0);for(var a=0;16>a;a++)h(Q[a+1]);for(var b=0;11>=b;b++)h(R[b]);h(16);for(var c=0;16>c;c++)h(S[c+1]);for(var d=0;161>=d;d++)h(T[d]);h(1);for(var e=0;16>e;e++)h(U[e+1]);for(var f=0;11>=f;f++)h(V[f]);h(17);for(var g=0;16>g;g++)h(W[g+1]);for(var j=0;161>=j;j++)h(X[j])}function o(){i(65498),i(12),h(3),h(1),h(0),h(2),h(17),h(3),h(17),h(0),h(63),h(0)}function p(a,b,c,d,e){for(var f,h=e[0],i=e[240],k=16,l=63,m=64,n=j(a,b),o=0;m>o;++o)G[P[o]]=n[o];var p=G[0]-c;c=G[0],0==p?g(d[0]):(f=32767+p,g(d[E[f]]),g(D[f]));for(var q=63;q>0&&0==G[q];q--);if(0==q)return g(h),c;for(var r,s=1;q>=s;){for(var t=s;0==G[s]&&q>=s;++s);var u=s-t;if(u>=k){r=u>>4;for(var v=1;r>=v;++v)g(i);u=15&u}f=32767+G[s],g(e[(u<<4)+E[f]]),g(D[f]),s++}return q!=l&&g(h),c}function q(){for(var a=String.fromCharCode,b=0;256>b;b++)N[b]=a(b)}function r(a){if(0>=a&&(a=1),a>100&&(a=100),x!=a){var c=0;c=Math.floor(50>a?5e3/a:200-2*a),b(c),x=a}}function s(){a||(a=50),q(),d(),e(),f(),r(a)}var t,u,v,w,x,y=(Math.round,Math.floor),z=new Array(64),A=new Array(64),B=new Array(64),C=new Array(64),D=new Array(65535),E=new Array(65535),F=new Array(64),G=new Array(64),H=[],I=0,J=7,K=new Array(64),L=new Array(64),M=new Array(64),N=new Array(256),O=new Array(2048),P=[0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18,24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63],Q=[0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0],R=[0,1,2,3,4,5,6,7,8,9,10,11],S=[0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125],T=[1,2,3,0,4,17,5,18,33,49,65,6,19,81,97,7,34,113,20,50,129,145,161,8,35,66,177,193,21,82,209,240,36,51,98,114,130,9,10,22,23,24,25,26,37,38,39,40,41,42,52,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,225,226,227,228,229,230,231,232,233,234,241,242,243,244,245,246,247,248,249,250],U=[0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0],V=[0,1,2,3,4,5,6,7,8,9,10,11],W=[0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119],X=[0,1,2,3,17,4,5,33,49,6,18,65,81,7,97,113,19,34,50,129,8,20,66,145,161,177,193,9,35,51,82,240,21,98,114,209,10,22,36,52,225,37,241,23,24,25,26,38,39,40,41,42,53,54,55,56,57,58,67,68,69,70,71,72,73,74,83,84,85,86,87,88,89,90,99,100,101,102,103,104,105,106,115,116,117,118,119,120,121,122,130,131,132,133,134,135,136,137,138,146,147,148,149,150,151,152,153,154,162,163,164,165,166,167,168,169,170,178,179,180,181,182,183,184,185,186,194,195,196,197,198,199,200,201,202,210,211,212,213,214,215,216,217,218,226,227,228,229,230,231,232,233,234,242,243,244,245,246,247,248,249,250];this.encode=function(a,b){b&&r(b),H=new Array,I=0,J=7,i(65496),k(),m(),l(a.width,a.height),n(),o();var c=0,d=0,e=0;I=0,J=7,this.encode.displayName="_encode_";for(var f,h,j,q,s,x,y,z,A,D=a.data,E=a.width,F=a.height,G=4*E,N=0;F>N;){for(f=0;G>f;){for(s=G*N+f,x=s,y=-1,z=0,A=0;64>A;A++)z=A>>3,y=4*(7&A),x=s+z*G+y,N+z>=F&&(x-=G*(N+1+z-F)),f+y>=G&&(x-=f+y-G+4),h=D[x++],j=D[x++],q=D[x++],K[A]=(O[h]+O[j+256>>0]+O[q+512>>0]>>16)-128,L[A]=(O[h+768>>0]+O[j+1024>>0]+O[q+1280>>0]>>16)-128,M[A]=(O[h+1280>>0]+O[j+1536>>0]+O[q+1792>>0]>>16)-128;c=p(K,B,c,t,v),d=p(L,C,d,u,w),e=p(M,C,e,u,w),f+=32}N+=8}if(J>=0){var P=[];P[1]=J+1,P[0]=(1<<J+1)-1,g(P)}i(65497);var Q="data:image/jpeg;base64,"+btoa(H.join(""));return H=[],Q},s()}return a.encode=function(b,c){var d=new a(c);return d.encode(b)},a}),b("runtime/html5/androidpatch",["runtime/html5/util","runtime/html5/jpegencoder","base"],function(a,b,c){var d,e=a.canvasToDataUrl;a.canvasToDataUrl=function(a,f,g){var h,i,j,k,l;return c.os.android?("image/jpeg"===f&&"undefined"==typeof d&&(k=e.apply(null,arguments),l=k.split(","),k=~l[0].indexOf("base64")?atob(l[1]):decodeURIComponent(l[1]),k=k.substring(0,2),d=255===k.charCodeAt(0)&&216===k.charCodeAt(1)),"image/jpeg"!==f||d?e.apply(null,arguments):(i=a.width,j=a.height,h=a.getContext("2d"),b.encode(h.getImageData(0,0,i,j),g))):e.apply(null,arguments)}}),b("runtime/html5/image",["base","runtime/html5/runtime","runtime/html5/util"],function(a,b,c){var d="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D";return b.register("Image",{modified:!1,init:function(){var a=this,b=new Image;b.onload=function(){a._info={type:a.type,width:this.width,height:this.height},a._metas||"image/jpeg"!==a.type?a.owner.trigger("load"):c.parseMeta(a._blob,function(b,c){a._metas=c,a.owner.trigger("load")})},b.onerror=function(){a.owner.trigger("error")},a._img=b},loadFromBlob:function(a){var b=this,d=b._img;b._blob=a,b.type=a.type,d.src=c.createObjectURL(a.getSource()),b.owner.once("load",function(){c.revokeObjectURL(d.src)})},resize:function(a,b){var c=this._canvas||(this._canvas=document.createElement("canvas"));this._resize(this._img,c,a,b),this._blob=null,this.modified=!0,this.owner.trigger("complete","resize")},crop:function(a,b,c,d,e){var f=this._canvas||(this._canvas=document.createElement("canvas")),g=this.options,h=this._img,i=h.naturalWidth,j=h.naturalHeight,k=this.getOrientation();e=e||1,f.width=c,f.height=d,g.preserveHeaders||this._rotate2Orientaion(f,k),this._renderImageToCanvas(f,h,-a,-b,i*e,j*e),this._blob=null,this.modified=!0,this.owner.trigger("complete","crop")},getAsBlob:function(a){var b,d=this._blob,e=this.options;if(a=a||this.type,this.modified||this.type!==a){if(b=this._canvas,"image/jpeg"===a){if(d=c.canvasToDataUrl(b,a,e.quality),e.preserveHeaders&&this._metas&&this._metas.imageHead)return d=c.dataURL2ArrayBuffer(d),d=c.updateImageHead(d,this._metas.imageHead),d=c.arrayBufferToBlob(d,a)}else d=c.canvasToDataUrl(b,a);d=c.dataURL2Blob(d)}return d},getAsDataUrl:function(a){var b=this.options;return a=a||this.type,"image/jpeg"===a?c.canvasToDataUrl(this._canvas,a,b.quality):this._canvas.toDataURL(a)},getOrientation:function(){return this._metas&&this._metas.exif&&this._metas.exif.get("Orientation")||1},info:function(a){return a?(this._info=a,this):this._info},meta:function(a){return a?(this._meta=a,this):this._meta},destroy:function(){var a=this._canvas;this._img.onload=null,a&&(a.getContext("2d").clearRect(0,0,a.width,a.height),a.width=a.height=0,this._canvas=null),this._img.src=d,this._img=this._blob=null},_resize:function(a,b,c,d){var e,f,g,h,i,j=this.options,k=a.width,l=a.height,m=this.getOrientation();~[5,6,7,8].indexOf(m)&&(c^=d,d^=c,c^=d),e=Math[j.crop?"max":"min"](c/k,d/l),j.allowMagnify||(e=Math.min(1,e)),f=k*e,g=l*e,j.crop?(b.width=c,b.height=d):(b.width=f,b.height=g),h=(b.width-f)/2,i=(b.height-g)/2,j.preserveHeaders||this._rotate2Orientaion(b,m),this._renderImageToCanvas(b,a,h,i,f,g)},_rotate2Orientaion:function(a,b){var c=a.width,d=a.height,e=a.getContext("2d");switch(b){case 5:case 6:case 7:case 8:a.width=d,a.height=c}switch(b){case 2:e.translate(c,0),e.scale(-1,1);break;case 3:e.translate(c,d),e.rotate(Math.PI);break;case 4:e.translate(0,d),e.scale(1,-1);break;case 5:e.rotate(.5*Math.PI),e.scale(1,-1);break;case 6:e.rotate(.5*Math.PI),e.translate(0,-d);break;case 7:e.rotate(.5*Math.PI),e.translate(c,-d),e.scale(-1,1);break;case 8:e.rotate(-.5*Math.PI),e.translate(-c,0)}},_renderImageToCanvas:function(){function b(a,b,c){var d,e,f,g=document.createElement("canvas"),h=g.getContext("2d"),i=0,j=c,k=c;for(g.width=1,g.height=c,h.drawImage(a,0,0),d=h.getImageData(0,0,1,c).data;k>i;)e=d[4*(k-1)+3],0===e?j=k:i=k,k=j+i>>1;return f=k/c,0===f?1:f}function c(a){var b,c,d=a.naturalWidth,e=a.naturalHeight;return d*e>1048576?(b=document.createElement("canvas"),b.width=b.height=1,c=b.getContext("2d"),c.drawImage(a,-d+1,0),0===c.getImageData(0,0,1,1).data[3]):!1}return a.os.ios?a.os.ios>=7?function(a,c,d,e,f,g){var h=c.naturalWidth,i=c.naturalHeight,j=b(c,h,i);return a.getContext("2d").drawImage(c,0,0,h*j,i*j,d,e,f,g)}:function(a,d,e,f,g,h){var i,j,k,l,m,n,o,p=d.naturalWidth,q=d.naturalHeight,r=a.getContext("2d"),s=c(d),t="image/jpeg"===this.type,u=1024,v=0,w=0;for(s&&(p/=2,q/=2),r.save(),i=document.createElement("canvas"),i.width=i.height=u,j=i.getContext("2d"),k=t?b(d,p,q):1,l=Math.ceil(u*g/p),m=Math.ceil(u*h/q/k);q>v;){for(n=0,o=0;p>n;)j.clearRect(0,0,u,u),j.drawImage(d,-n,-v),r.drawImage(i,0,0,u,u,e+o,f+w,l,m),n+=u,o+=l;v+=u,w+=m}r.restore(),i=j=null}:function(b){var c=a.slice(arguments,1),d=b.getContext("2d");d.drawImage.apply(d,c)}}()})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType&&h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("runtime/html5/md5",["runtime/html5/runtime"],function(a){var b=function(a,b){return a+b&4294967295},c=function(a,c,d,e,f,g){return c=b(b(c,a),b(e,g)),b(c<<f|c>>>32-f,d)},d=function(a,b,d,e,f,g,h){return c(b&d|~b&e,a,b,f,g,h)},e=function(a,b,d,e,f,g,h){return c(b&e|d&~e,a,b,f,g,h)},f=function(a,b,d,e,f,g,h){return c(b^d^e,a,b,f,g,h)},g=function(a,b,d,e,f,g,h){return c(d^(b|~e),a,b,f,g,h)},h=function(a,c){var h=a[0],i=a[1],j=a[2],k=a[3];h=d(h,i,j,k,c[0],7,-680876936),k=d(k,h,i,j,c[1],12,-389564586),j=d(j,k,h,i,c[2],17,606105819),i=d(i,j,k,h,c[3],22,-1044525330),h=d(h,i,j,k,c[4],7,-176418897),k=d(k,h,i,j,c[5],12,1200080426),j=d(j,k,h,i,c[6],17,-1473231341),i=d(i,j,k,h,c[7],22,-45705983),h=d(h,i,j,k,c[8],7,1770035416),k=d(k,h,i,j,c[9],12,-1958414417),j=d(j,k,h,i,c[10],17,-42063),i=d(i,j,k,h,c[11],22,-1990404162),h=d(h,i,j,k,c[12],7,1804603682),k=d(k,h,i,j,c[13],12,-40341101),j=d(j,k,h,i,c[14],17,-1502002290),i=d(i,j,k,h,c[15],22,1236535329),h=e(h,i,j,k,c[1],5,-165796510),k=e(k,h,i,j,c[6],9,-1069501632),j=e(j,k,h,i,c[11],14,643717713),i=e(i,j,k,h,c[0],20,-373897302),h=e(h,i,j,k,c[5],5,-701558691),k=e(k,h,i,j,c[10],9,38016083),j=e(j,k,h,i,c[15],14,-660478335),i=e(i,j,k,h,c[4],20,-405537848),h=e(h,i,j,k,c[9],5,568446438),k=e(k,h,i,j,c[14],9,-1019803690),j=e(j,k,h,i,c[3],14,-187363961),i=e(i,j,k,h,c[8],20,1163531501),h=e(h,i,j,k,c[13],5,-1444681467),k=e(k,h,i,j,c[2],9,-51403784),j=e(j,k,h,i,c[7],14,1735328473),i=e(i,j,k,h,c[12],20,-1926607734),h=f(h,i,j,k,c[5],4,-378558),k=f(k,h,i,j,c[8],11,-2022574463),j=f(j,k,h,i,c[11],16,1839030562),i=f(i,j,k,h,c[14],23,-35309556),h=f(h,i,j,k,c[1],4,-1530992060),k=f(k,h,i,j,c[4],11,1272893353),j=f(j,k,h,i,c[7],16,-155497632),i=f(i,j,k,h,c[10],23,-1094730640),h=f(h,i,j,k,c[13],4,681279174),k=f(k,h,i,j,c[0],11,-358537222),j=f(j,k,h,i,c[3],16,-722521979),i=f(i,j,k,h,c[6],23,76029189),h=f(h,i,j,k,c[9],4,-640364487),k=f(k,h,i,j,c[12],11,-421815835),j=f(j,k,h,i,c[15],16,530742520),i=f(i,j,k,h,c[2],23,-995338651),h=g(h,i,j,k,c[0],6,-198630844),k=g(k,h,i,j,c[7],10,1126891415),j=g(j,k,h,i,c[14],15,-1416354905),i=g(i,j,k,h,c[5],21,-57434055),h=g(h,i,j,k,c[12],6,1700485571),k=g(k,h,i,j,c[3],10,-1894986606),j=g(j,k,h,i,c[10],15,-1051523),i=g(i,j,k,h,c[1],21,-2054922799),h=g(h,i,j,k,c[8],6,1873313359),k=g(k,h,i,j,c[15],10,-30611744),j=g(j,k,h,i,c[6],15,-1560198380),i=g(i,j,k,h,c[13],21,1309151649),h=g(h,i,j,k,c[4],6,-145523070),k=g(k,h,i,j,c[11],10,-1120210379),j=g(j,k,h,i,c[2],15,718787259),i=g(i,j,k,h,c[9],21,-343485551),a[0]=b(h,a[0]),a[1]=b(i,a[1]),a[2]=b(j,a[2]),a[3]=b(k,a[3])},i=function(a){var b,c=[];for(b=0;64>b;b+=4)c[b>>2]=a.charCodeAt(b)+(a.charCodeAt(b+1)<<8)+(a.charCodeAt(b+2)<<16)+(a.charCodeAt(b+3)<<24);return c},j=function(a){var b,c=[];for(b=0;64>b;b+=4)c[b>>2]=a[b]+(a[b+1]<<8)+(a[b+2]<<16)+(a[b+3]<<24);return c},k=function(a){var b,c,d,e,f,g,j=a.length,k=[1732584193,-271733879,-1732584194,271733878];for(b=64;j>=b;b+=64)h(k,i(a.substring(b-64,b)));for(a=a.substring(b-64),c=a.length,d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],b=0;c>b;b+=1)d[b>>2]|=a.charCodeAt(b)<<(b%4<<3);if(d[b>>2]|=128<<(b%4<<3),b>55)for(h(k,d),b=0;16>b;b+=1)d[b]=0;return e=8*j,e=e.toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(e[2],16),g=parseInt(e[1],16)||0,d[14]=f,d[15]=g,h(k,d),k},l=function(a){var b,c,d,e,f,g,i=a.length,k=[1732584193,-271733879,-1732584194,271733878];for(b=64;i>=b;b+=64)h(k,j(a.subarray(b-64,b)));for(a=i>b-64?a.subarray(b-64):new Uint8Array(0),c=a.length,d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],b=0;c>b;b+=1)d[b>>2]|=a[b]<<(b%4<<3);if(d[b>>2]|=128<<(b%4<<3),b>55)for(h(k,d),b=0;16>b;b+=1)d[b]=0;return e=8*i,e=e.toString(16).match(/(.*?)(.{0,8})$/),f=parseInt(e[2],16),g=parseInt(e[1],16)||0,d[14]=f,d[15]=g,h(k,d),k},m=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"],n=function(a){var b,c="";for(b=0;4>b;b+=1)c+=m[a>>8*b+4&15]+m[a>>8*b&15];return c},o=function(a){var b;for(b=0;b<a.length;b+=1)a[b]=n(a[b]);return a.join("")},p=function(a){return o(k(a))},q=function(){this.reset()};return"5d41402abc4b2a76b9719d911017c592"!==p("hello")&&(b=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}),q.prototype.append=function(a){return/[\u0080-\uFFFF]/.test(a)&&(a=unescape(encodeURIComponent(a))),this.appendBinary(a),this},q.prototype.appendBinary=function(a){this._buff+=a,this._length+=a.length;var b,c=this._buff.length;for(b=64;c>=b;b+=64)h(this._state,i(this._buff.substring(b-64,b)));return this._buff=this._buff.substr(b-64),this},q.prototype.end=function(a){var b,c,d=this._buff,e=d.length,f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];for(b=0;e>b;b+=1)f[b>>2]|=d.charCodeAt(b)<<(b%4<<3);return this._finish(f,e),c=a?this._state:o(this._state),this.reset(),c},q.prototype._finish=function(a,b){var c,d,e,f=b;if(a[f>>2]|=128<<(f%4<<3),f>55)for(h(this._state,a),f=0;16>f;f+=1)a[f]=0;c=8*this._length,c=c.toString(16).match(/(.*?)(.{0,8})$/),d=parseInt(c[2],16),e=parseInt(c[1],16)||0,a[14]=d,a[15]=e,h(this._state,a)},q.prototype.reset=function(){return this._buff="",this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},q.prototype.destroy=function(){delete this._state,delete this._buff,delete this._length},q.hash=function(a,b){/[\u0080-\uFFFF]/.test(a)&&(a=unescape(encodeURIComponent(a)));var c=k(a);return b?c:o(c)},q.hashBinary=function(a,b){var c=k(a);return b?c:o(c)},q.ArrayBuffer=function(){this.reset()},q.ArrayBuffer.prototype.append=function(a){var b,c=this._concatArrayBuffer(this._buff,a),d=c.length;for(this._length+=a.byteLength,b=64;d>=b;b+=64)h(this._state,j(c.subarray(b-64,b)));return this._buff=d>b-64?c.subarray(b-64):new Uint8Array(0),this},q.ArrayBuffer.prototype.end=function(a){var b,c,d=this._buff,e=d.length,f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
+for(b=0;e>b;b+=1)f[b>>2]|=d[b]<<(b%4<<3);return this._finish(f,e),c=a?this._state:o(this._state),this.reset(),c},q.ArrayBuffer.prototype._finish=q.prototype._finish,q.ArrayBuffer.prototype.reset=function(){return this._buff=new Uint8Array(0),this._length=0,this._state=[1732584193,-271733879,-1732584194,271733878],this},q.ArrayBuffer.prototype.destroy=q.prototype.destroy,q.ArrayBuffer.prototype._concatArrayBuffer=function(a,b){var c=a.length,d=new Uint8Array(c+b.byteLength);return d.set(a),d.set(new Uint8Array(b),c),d},q.ArrayBuffer.hash=function(a,b){var c=l(new Uint8Array(a));return b?c:o(c)},a.register("Md5",{init:function(){},loadFromBlob:function(a){var b,c,d=a.getSource(),e=2097152,f=Math.ceil(d.size/e),g=0,h=this.owner,i=new q.ArrayBuffer,j=this,k=d.mozSlice||d.webkitSlice||d.slice;c=new FileReader,(b=function(){var l,m;l=g*e,m=Math.min(l+e,d.size),c.onload=function(b){i.append(b.target.result),h.trigger("progress",{total:a.size,loaded:m})},c.onloadend=function(){c.onloadend=c.onload=null,++g<f?setTimeout(b,1):setTimeout(function(){h.trigger("load"),j.result=i.end(),b=a=d=i=null,h.trigger("complete")},50)},c.readAsArrayBuffer(k.call(d,l,m))})()},getResult:function(){return this.result}})}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destroy,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destroy=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.id,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){this.flashExec("FilePicker","destroy")}})}),b("runtime/flash/image",["runtime/flash/runtime"],function(a){return a.register("Image",{loadFromBlob:function(a){var b=this.owner;b.info()&&this.flashExec("Image","info",b.info()),b.meta()&&this.flashExec("Image","meta",b.meta()),this.flashExec("Image","loadFromBlob",a.uid)}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(b,c,d){var e=b.$;return c.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,d=this._initAjax(),f=b._blob,g=c.server;d.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+e.param(b._formData),a=f.uid):(e.each(b._formData,function(a,b){d.exec("append",a,b)}),d.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(d,c.headers),d.exec("send",{method:c.method,url:g,forceURLStream:c.forceURLStream,mimeType:"application/octet-stream"},a)},getStatus:function(){return this._status},getResponse:function(){return this._response||""},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var b=this,c=new d("XMLHttpRequest");return c.on("uploadprogress progress",function(a){var c=a.loaded/a.total;return c=Math.min(1,Math.max(0,c)),b.trigger("progress",c)}),c.on("load",function(){var d,e=c.exec("getStatus"),f=!1,g="";return c.off(),b._xhr=null,e>=200&&300>e?f=!0:e>=500&&600>e?(f=!0,g="server"):g="http",f&&(b._response=c.exec("getResponse"),b._response=decodeURIComponent(b._response),d=a.JSON&&a.JSON.parse||function(a){try{return new Function("return "+a).call()}catch(b){return{}}},b._responseJson=b._response?d(b._response):{}),c.destroy(),c=null,g?b.trigger("error",g):b.trigger("load")}),c.on("error",function(){c.off(),b._xhr=null,b.trigger("error","http")}),b._xhr=c,c},_setRequestHeader:function(a,b){e.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("runtime/flash/blob",["runtime/flash/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.flashExec("Blob","slice",a,c);return new b(d.uid,d)}})}),b("runtime/flash/md5",["runtime/flash/runtime"],function(a){return a.register("Md5",{init:function(){},loadFromBlob:function(a){return this.flashExec("Md5","loadFromBlob",a.uid)}})}),b("preset/all",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/image","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","widgets/md5","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/imagemeta/exif","runtime/html5/androidpatch","runtime/html5/image","runtime/html5/transport","runtime/html5/md5","runtime/flash/filepicker","runtime/flash/image","runtime/flash/transport","runtime/flash/blob","runtime/flash/md5"],function(a){return a}),b("webuploader",["preset/all"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.js
new file mode 100644
index 0000000..08f4976
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.js
@@ -0,0 +1,4993 @@
+/*! WebUploader 0.1.5 */
+
+
+/**
+ * @fileOverview 让内部各个部件的代码可以用[amd](https://github.com/amdjs/amdjs-api/wiki/AMD)模块定义方式组织起来。
+ *
+ * AMD API 内部的简单不完全实现,请忽略。只有当WebUploader被合并成一个文件的时候才会引入。
+ */
+(function( root, factory ) {
+    var modules = {},
+
+        // 内部require, 简单不完全实现。
+        // https://github.com/amdjs/amdjs-api/wiki/require
+        _require = function( deps, callback ) {
+            var args, len, i;
+
+            // 如果deps不是数组,则直接返回指定module
+            if ( typeof deps === 'string' ) {
+                return getModule( deps );
+            } else {
+                args = [];
+                for( len = deps.length, i = 0; i < len; i++ ) {
+                    args.push( getModule( deps[ i ] ) );
+                }
+
+                return callback.apply( null, args );
+            }
+        },
+
+        // 内部define,暂时不支持不指定id.
+        _define = function( id, deps, factory ) {
+            if ( arguments.length === 2 ) {
+                factory = deps;
+                deps = null;
+            }
+
+            _require( deps || [], function() {
+                setModule( id, factory, arguments );
+            });
+        },
+
+        // 设置module, 兼容CommonJs写法。
+        setModule = function( id, factory, args ) {
+            var module = {
+                    exports: factory
+                },
+                returned;
+
+            if ( typeof factory === 'function' ) {
+                args.length || (args = [ _require, module.exports, module ]);
+                returned = factory.apply( null, args );
+                returned !== undefined && (module.exports = returned);
+            }
+
+            modules[ id ] = module.exports;
+        },
+
+        // 根据id获取module
+        getModule = function( id ) {
+            var module = modules[ id ] || root[ id ];
+
+            if ( !module ) {
+                throw new Error( '`' + id + '` is undefined' );
+            }
+
+            return module;
+        },
+
+        // 将所有modules,将路径ids装换成对象。
+        exportsTo = function( obj ) {
+            var key, host, parts, part, last, ucFirst;
+
+            // make the first character upper case.
+            ucFirst = function( str ) {
+                return str && (str.charAt( 0 ).toUpperCase() + str.substr( 1 ));
+            };
+
+            for ( key in modules ) {
+                host = obj;
+
+                if ( !modules.hasOwnProperty( key ) ) {
+                    continue;
+                }
+
+                parts = key.split('/');
+                last = ucFirst( parts.pop() );
+
+                while( (part = ucFirst( parts.shift() )) ) {
+                    host[ part ] = host[ part ] || {};
+                    host = host[ part ];
+                }
+
+                host[ last ] = modules[ key ];
+            }
+
+            return obj;
+        },
+
+        makeExport = function( dollar ) {
+            root.__dollar = dollar;
+
+            // exports every module.
+            return exportsTo( factory( root, _define, _require ) );
+        },
+
+        origin;
+
+    if ( typeof module === 'object' && typeof module.exports === 'object' ) {
+
+        // For CommonJS and CommonJS-like environments where a proper window is present,
+        module.exports = makeExport();
+    } else if ( typeof define === 'function' && define.amd ) {
+
+        // Allow using this built library as an AMD module
+        // in another project. That other project will only
+        // see this AMD call, not the internal modules in
+        // the closure below.
+        define([ 'jquery' ], makeExport );
+    } else {
+
+        // Browser globals case. Just assign the
+        // result to a property on the global.
+        origin = root.WebUploader;
+        root.WebUploader = makeExport();
+        root.WebUploader.noConflict = function() {
+            root.WebUploader = origin;
+        };
+    }
+})( window, function( window, define, require ) {
+
+
+    /**
+     * @fileOverview jQuery or Zepto
+     */
+    define('dollar-third',[],function() {
+        var $ = window.__dollar || window.jQuery || window.Zepto;
+
+        if ( !$ ) {
+            throw new Error('jQuery or Zepto not found!');
+        }
+
+        return $;
+    });
+    /**
+     * @fileOverview Dom 操作相关
+     */
+    define('dollar',[
+        'dollar-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 使用jQuery的Promise
+     */
+    define('promise-third',[
+        'dollar'
+    ], function( $ ) {
+        return {
+            Deferred: $.Deferred,
+            when: $.when,
+
+            isPromise: function( anything ) {
+                return anything && typeof anything.then === 'function';
+            }
+        };
+    });
+    /**
+     * @fileOverview Promise/A+
+     */
+    define('promise',[
+        'promise-third'
+    ], function( _ ) {
+        return _;
+    });
+    /**
+     * @fileOverview 基础类方法。
+     */
+
+    /**
+     * Web Uploader内部类的详细说明,以下提及的功能类,都可以在`WebUploader`这个变量中访问到。
+     *
+     * As you know, Web Uploader的每个文件都是用过[AMD](https://github.com/amdjs/amdjs-api/wiki/AMD)规范中的`define`组织起来的, 每个Module都会有个module id.
+     * 默认module id为该文件的路径,而此路径将会转化成名字空间存放在WebUploader中。如:
+     *
+     * * module `base`:WebUploader.Base
+     * * module `file`: WebUploader.File
+     * * module `lib/dnd`: WebUploader.Lib.Dnd
+     * * module `runtime/html5/dnd`: WebUploader.Runtime.Html5.Dnd
+     *
+     *
+     * 以下文档中对类的使用可能省略掉了`WebUploader`前缀。
+     * @module WebUploader
+     * @title WebUploader API文档
+     */
+    define('base',[
+        'dollar',
+        'promise'
+    ], function( $, promise ) {
+
+        var noop = function() {},
+            call = Function.call;
+
+        // http://jsperf.com/uncurrythis
+        // 反科里化
+        function uncurryThis( fn ) {
+            return function() {
+                return call.apply( fn, arguments );
+            };
+        }
+
+        function bindFn( fn, context ) {
+            return function() {
+                return fn.apply( context, arguments );
+            };
+        }
+
+        function createObject( proto ) {
+            var f;
+
+            if ( Object.create ) {
+                return Object.create( proto );
+            } else {
+                f = function() {};
+                f.prototype = proto;
+                return new f();
+            }
+        }
+
+
+        /**
+         * 基础类,提供一些简单常用的方法。
+         * @class Base
+         */
+        return {
+
+            /**
+             * @property {String} version 当前版本号。
+             */
+            version: '0.1.5',
+
+            /**
+             * @property {jQuery|Zepto} $ 引用依赖的jQuery或者Zepto对象。
+             */
+            $: $,
+
+            Deferred: promise.Deferred,
+
+            isPromise: promise.isPromise,
+
+            when: promise.when,
+
+            /**
+             * @description  简单的浏览器检查结果。
+             *
+             * * `webkit`  webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。
+             * * `chrome`  chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。
+             * * `ie`  ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。**暂不支持ie10+**
+             * * `firefox`  firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。
+             * * `safari`  safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。
+             * * `opera`  opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
+             *
+             * @property {Object} [browser]
+             */
+            browser: (function( ua ) {
+                var ret = {},
+                    webkit = ua.match( /WebKit\/([\d.]+)/ ),
+                    chrome = ua.match( /Chrome\/([\d.]+)/ ) ||
+                        ua.match( /CriOS\/([\d.]+)/ ),
+
+                    ie = ua.match( /MSIE\s([\d\.]+)/ ) ||
+                        ua.match( /(?:trident)(?:.*rv:([\w.]+))?/i ),
+                    firefox = ua.match( /Firefox\/([\d.]+)/ ),
+                    safari = ua.match( /Safari\/([\d.]+)/ ),
+                    opera = ua.match( /OPR\/([\d.]+)/ );
+
+                webkit && (ret.webkit = parseFloat( webkit[ 1 ] ));
+                chrome && (ret.chrome = parseFloat( chrome[ 1 ] ));
+                ie && (ret.ie = parseFloat( ie[ 1 ] ));
+                firefox && (ret.firefox = parseFloat( firefox[ 1 ] ));
+                safari && (ret.safari = parseFloat( safari[ 1 ] ));
+                opera && (ret.opera = parseFloat( opera[ 1 ] ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * @description  操作系统检查结果。
+             *
+             * * `android`  如果在android浏览器环境下,此值为对应的android版本号,否则为`undefined`。
+             * * `ios` 如果在ios浏览器环境下,此值为对应的ios版本号,否则为`undefined`。
+             * @property {Object} [os]
+             */
+            os: (function( ua ) {
+                var ret = {},
+
+                    // osx = !!ua.match( /\(Macintosh\; Intel / ),
+                    android = ua.match( /(?:Android);?[\s\/]+([\d.]+)?/ ),
+                    ios = ua.match( /(?:iPad|iPod|iPhone).*OS\s([\d_]+)/ );
+
+                // osx && (ret.osx = true);
+                android && (ret.android = parseFloat( android[ 1 ] ));
+                ios && (ret.ios = parseFloat( ios[ 1 ].replace( /_/g, '.' ) ));
+
+                return ret;
+            })( navigator.userAgent ),
+
+            /**
+             * 实现类与类之间的继承。
+             * @method inherits
+             * @grammar Base.inherits( super ) => child
+             * @grammar Base.inherits( super, protos ) => child
+             * @grammar Base.inherits( super, protos, statics ) => child
+             * @param  {Class} super 父类
+             * @param  {Object | Function} [protos] 子类或者对象。如果对象中包含constructor,子类将是用此属性值。
+             * @param  {Function} [protos.constructor] 子类构造器,不指定的话将创建个临时的直接执行父类构造器的方法。
+             * @param  {Object} [statics] 静态属性或方法。
+             * @return {Class} 返回子类。
+             * @example
+             * function Person() {
+             *     console.log( 'Super' );
+             * }
+             * Person.prototype.hello = function() {
+             *     console.log( 'hello' );
+             * };
+             *
+             * var Manager = Base.inherits( Person, {
+             *     world: function() {
+             *         console.log( 'World' );
+             *     }
+             * });
+             *
+             * // 因为没有指定构造器,父类的构造器将会执行。
+             * var instance = new Manager();    // => Super
+             *
+             * // 继承子父类的方法
+             * instance.hello();    // => hello
+             * instance.world();    // => World
+             *
+             * // 子类的__super__属性指向父类
+             * console.log( Manager.__super__ === Person );    // => true
+             */
+            inherits: function( Super, protos, staticProtos ) {
+                var child;
+
+                if ( typeof protos === 'function' ) {
+                    child = protos;
+                    protos = null;
+                } else if ( protos && protos.hasOwnProperty('constructor') ) {
+                    child = protos.constructor;
+                } else {
+                    child = function() {
+                        return Super.apply( this, arguments );
+                    };
+                }
+
+                // 复制静态方法
+                $.extend( true, child, Super, staticProtos || {} );
+
+                /* jshint camelcase: false */
+
+                // 让子类的__super__属性指向父类。
+                child.__super__ = Super.prototype;
+
+                // 构建原型,添加原型方法或属性。
+                // 暂时用Object.create实现。
+                child.prototype = createObject( Super.prototype );
+                protos && $.extend( true, child.prototype, protos );
+
+                return child;
+            },
+
+            /**
+             * 一个不做任何事情的方法。可以用来赋值给默认的callback.
+             * @method noop
+             */
+            noop: noop,
+
+            /**
+             * 返回一个新的方法,此方法将已指定的`context`来执行。
+             * @grammar Base.bindFn( fn, context ) => Function
+             * @method bindFn
+             * @example
+             * var doSomething = function() {
+             *         console.log( this.name );
+             *     },
+             *     obj = {
+             *         name: 'Object Name'
+             *     },
+             *     aliasFn = Base.bind( doSomething, obj );
+             *
+             *  aliasFn();    // => Object Name
+             *
+             */
+            bindFn: bindFn,
+
+            /**
+             * 引用Console.log如果存在的话,否则引用一个[空函数noop](#WebUploader:Base.noop)。
+             * @grammar Base.log( args... ) => undefined
+             * @method log
+             */
+            log: (function() {
+                if ( window.console ) {
+                    return bindFn( console.log, console );
+                }
+                return noop;
+            })(),
+
+            nextTick: (function() {
+
+                return function( cb ) {
+                    setTimeout( cb, 1 );
+                };
+
+                // @bug 当浏览器不在当前窗口时就停了。
+                // var next = window.requestAnimationFrame ||
+                //     window.webkitRequestAnimationFrame ||
+                //     window.mozRequestAnimationFrame ||
+                //     function( cb ) {
+                //         window.setTimeout( cb, 1000 / 60 );
+                //     };
+
+                // // fix: Uncaught TypeError: Illegal invocation
+                // return bindFn( next, window );
+            })(),
+
+            /**
+             * 被[uncurrythis](http://www.2ality.com/2011/11/uncurrying-this.html)的数组slice方法。
+             * 将用来将非数组对象转化成数组对象。
+             * @grammar Base.slice( target, start[, end] ) => Array
+             * @method slice
+             * @example
+             * function doSomthing() {
+             *     var args = Base.slice( arguments, 1 );
+             *     console.log( args );
+             * }
+             *
+             * doSomthing( 'ignored', 'arg2', 'arg3' );    // => Array ["arg2", "arg3"]
+             */
+            slice: uncurryThis( [].slice ),
+
+            /**
+             * 生成唯一的ID
+             * @method guid
+             * @grammar Base.guid() => String
+             * @grammar Base.guid( prefx ) => String
+             */
+            guid: (function() {
+                var counter = 0;
+
+                return function( prefix ) {
+                    var guid = (+new Date()).toString( 32 ),
+                        i = 0;
+
+                    for ( ; i < 5; i++ ) {
+                        guid += Math.floor( Math.random() * 65535 ).toString( 32 );
+                    }
+
+                    return (prefix || 'wu_') + guid + (counter++).toString( 32 );
+                };
+            })(),
+
+            /**
+             * 格式化文件大小, 输出成带单位的字符串
+             * @method formatSize
+             * @grammar Base.formatSize( size ) => String
+             * @grammar Base.formatSize( size, pointLength ) => String
+             * @grammar Base.formatSize( size, pointLength, units ) => String
+             * @param {Number} size 文件大小
+             * @param {Number} [pointLength=2] 精确到的小数点数。
+             * @param {Array} [units=[ 'B', 'K', 'M', 'G', 'TB' ]] 单位数组。从字节,到千字节,一直往上指定。如果单位数组里面只指定了到了K(千字节),同时文件大小大于M, 此方法的输出将还是显示成多少K.
+             * @example
+             * console.log( Base.formatSize( 100 ) );    // => 100B
+             * console.log( Base.formatSize( 1024 ) );    // => 1.00K
+             * console.log( Base.formatSize( 1024, 0 ) );    // => 1K
+             * console.log( Base.formatSize( 1024 * 1024 ) );    // => 1.00M
+             * console.log( Base.formatSize( 1024 * 1024 * 1024 ) );    // => 1.00G
+             * console.log( Base.formatSize( 1024 * 1024 * 1024, 0, ['B', 'KB', 'MB'] ) );    // => 1024MB
+             */
+            formatSize: function( size, pointLength, units ) {
+                var unit;
+
+                units = units || [ 'B', 'K', 'M', 'G', 'TB' ];
+
+                while ( (unit = units.shift()) && size > 1024 ) {
+                    size = size / 1024;
+                }
+
+                return (unit === 'B' ? size : size.toFixed( pointLength || 2 )) +
+                        unit;
+            }
+        };
+    });
+    /**
+     * 事件处理类,可以独立使用,也可以扩展给对象使用。
+     * @fileOverview Mediator
+     */
+    define('mediator',[
+        'base'
+    ], function( Base ) {
+        var $ = Base.$,
+            slice = [].slice,
+            separator = /\s+/,
+            protos;
+
+        // 根据条件过滤出事件handlers.
+        function findHandlers( arr, name, callback, context ) {
+            return $.grep( arr, function( handler ) {
+                return handler &&
+                        (!name || handler.e === name) &&
+                        (!callback || handler.cb === callback ||
+                        handler.cb._cb === callback) &&
+                        (!context || handler.ctx === context);
+            });
+        }
+
+        function eachEvent( events, callback, iterator ) {
+            // 不支持对象,只支持多个event用空格隔开
+            $.each( (events || '').split( separator ), function( _, key ) {
+                iterator( key, callback );
+            });
+        }
+
+        function triggerHanders( events, args ) {
+            var stoped = false,
+                i = -1,
+                len = events.length,
+                handler;
+
+            while ( ++i < len ) {
+                handler = events[ i ];
+
+                if ( handler.cb.apply( handler.ctx2, args ) === false ) {
+                    stoped = true;
+                    break;
+                }
+            }
+
+            return !stoped;
+        }
+
+        protos = {
+
+            /**
+             * 绑定事件。
+             *
+             * `callback`方法在执行时,arguments将会来源于trigger的时候携带的参数。如
+             * ```javascript
+             * var obj = {};
+             *
+             * // 使得obj有事件行为
+             * Mediator.installTo( obj );
+             *
+             * obj.on( 'testa', function( arg1, arg2 ) {
+             *     console.log( arg1, arg2 ); // => 'arg1', 'arg2'
+             * });
+             *
+             * obj.trigger( 'testa', 'arg1', 'arg2' );
+             * ```
+             *
+             * 如果`callback`中,某一个方法`return false`了,则后续的其他`callback`都不会被执行到。
+             * 切会影响到`trigger`方法的返回值,为`false`。
+             *
+             * `on`还可以用来添加一个特殊事件`all`, 这样所有的事件触发都会响应到。同时此类`callback`中的arguments有一个不同处,
+             * 就是第一个参数为`type`,记录当前是什么事件在触发。此类`callback`的优先级比脚低,会再正常`callback`执行完后触发。
+             * ```javascript
+             * obj.on( 'all', function( type, arg1, arg2 ) {
+             *     console.log( type, arg1, arg2 ); // => 'testa', 'arg1', 'arg2'
+             * });
+             * ```
+             *
+             * @method on
+             * @grammar on( name, callback[, context] ) => self
+             * @param  {String}   name     事件名,支持多个事件用空格隔开
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             * @class Mediator
+             */
+            on: function( name, callback, context ) {
+                var me = this,
+                    set;
+
+                if ( !callback ) {
+                    return this;
+                }
+
+                set = this._events || (this._events = []);
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var handler = { e: name };
+
+                    handler.cb = callback;
+                    handler.ctx = context;
+                    handler.ctx2 = context || me;
+                    handler.id = set.length;
+
+                    set.push( handler );
+                });
+
+                return this;
+            },
+
+            /**
+             * 绑定事件,且当handler执行完后,自动解除绑定。
+             * @method once
+             * @grammar once( name, callback[, context] ) => self
+             * @param  {String}   name     事件名
+             * @param  {Function} callback 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            once: function( name, callback, context ) {
+                var me = this;
+
+                if ( !callback ) {
+                    return me;
+                }
+
+                eachEvent( name, callback, function( name, callback ) {
+                    var once = function() {
+                            me.off( name, once );
+                            return callback.apply( context || me, arguments );
+                        };
+
+                    once._cb = callback;
+                    me.on( name, once, context );
+                });
+
+                return me;
+            },
+
+            /**
+             * 解除事件绑定
+             * @method off
+             * @grammar off( [name[, callback[, context] ] ] ) => self
+             * @param  {String}   [name]     事件名
+             * @param  {Function} [callback] 事件处理器
+             * @param  {Object}   [context]  事件处理器的上下文。
+             * @return {self} 返回自身,方便链式
+             * @chainable
+             */
+            off: function( name, cb, ctx ) {
+                var events = this._events;
+
+                if ( !events ) {
+                    return this;
+                }
+
+                if ( !name && !cb && !ctx ) {
+                    this._events = [];
+                    return this;
+                }
+
+                eachEvent( name, cb, function( name, cb ) {
+                    $.each( findHandlers( events, name, cb, ctx ), function() {
+                        delete events[ this.id ];
+                    });
+                });
+
+                return this;
+            },
+
+            /**
+             * 触发事件
+             * @method trigger
+             * @grammar trigger( name[, args...] ) => self
+             * @param  {String}   type     事件名
+             * @param  {*} [...] 任意参数
+             * @return {Boolean} 如果handler中return false了,则返回false, 否则返回true
+             */
+            trigger: function( type ) {
+                var args, events, allEvents;
+
+                if ( !this._events || !type ) {
+                    return this;
+                }
+
+                args = slice.call( arguments, 1 );
+                events = findHandlers( this._events, type );
+                allEvents = findHandlers( this._events, 'all' );
+
+                return triggerHanders( events, args ) &&
+                        triggerHanders( allEvents, arguments );
+            }
+        };
+
+        /**
+         * 中介者,它本身是个单例,但可以通过[installTo](#WebUploader:Mediator:installTo)方法,使任何对象具备事件行为。
+         * 主要目的是负责模块与模块之间的合作,降低耦合度。
+         *
+         * @class Mediator
+         */
+        return $.extend({
+
+            /**
+             * 可以通过这个接口,使任何对象具备事件功能。
+             * @method installTo
+             * @param  {Object} obj 需要具备事件行为的对象。
+             * @return {Object} 返回obj.
+             */
+            installTo: function( obj ) {
+                return $.extend( obj, protos );
+            }
+
+        }, protos );
+    });
+    /**
+     * @fileOverview Uploader上传类
+     */
+    define('uploader',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$;
+
+        /**
+         * 上传入口类。
+         * @class Uploader
+         * @constructor
+         * @grammar new Uploader( opts ) => Uploader
+         * @example
+         * var uploader = WebUploader.Uploader({
+         *     swf: 'path_of_swf/Uploader.swf',
+         *
+         *     // 开起分片上传。
+         *     chunked: true
+         * });
+         */
+        function Uploader( opts ) {
+            this.options = $.extend( true, {}, Uploader.options, opts );
+            this._init( this.options );
+        }
+
+        // default Options
+        // widgets中有相应扩展
+        Uploader.options = {};
+        Mediator.installTo( Uploader.prototype );
+
+        // 批量添加纯命令式方法。
+        $.each({
+            upload: 'start-upload',
+            stop: 'stop-upload',
+            getFile: 'get-file',
+            getFiles: 'get-files',
+            addFile: 'add-file',
+            addFiles: 'add-file',
+            sort: 'sort-files',
+            removeFile: 'remove-file',
+            cancelFile: 'cancel-file',
+            skipFile: 'skip-file',
+            retry: 'retry',
+            isInProgress: 'is-in-progress',
+            makeThumb: 'make-thumb',
+            md5File: 'md5-file',
+            getDimension: 'get-dimension',
+            addButton: 'add-btn',
+            predictRuntimeType: 'predict-runtime-type',
+            refresh: 'refresh',
+            disable: 'disable',
+            enable: 'enable',
+            reset: 'reset'
+        }, function( fn, command ) {
+            Uploader.prototype[ fn ] = function() {
+                return this.request( command, arguments );
+            };
+        });
+
+        $.extend( Uploader.prototype, {
+            state: 'pending',
+
+            _init: function( opts ) {
+                var me = this;
+
+                me.request( 'init', opts, function() {
+                    me.state = 'ready';
+                    me.trigger('ready');
+                });
+            },
+
+            /**
+             * 获取或者设置Uploader配置项。
+             * @method option
+             * @grammar option( key ) => *
+             * @grammar option( key, val ) => self
+             * @example
+             *
+             * // 初始状态图片上传前不会压缩
+             * var uploader = new WebUploader.Uploader({
+             *     compress: null;
+             * });
+             *
+             * // 修改后图片上传前,尝试将图片压缩到1600 * 1600
+             * uploader.option( 'compress', {
+             *     width: 1600,
+             *     height: 1600
+             * });
+             */
+            option: function( key, val ) {
+                var opts = this.options;
+
+                // setter
+                if ( arguments.length > 1 ) {
+
+                    if ( $.isPlainObject( val ) &&
+                            $.isPlainObject( opts[ key ] ) ) {
+                        $.extend( opts[ key ], val );
+                    } else {
+                        opts[ key ] = val;
+                    }
+
+                } else {    // getter
+                    return key ? opts[ key ] : opts;
+                }
+            },
+
+            /**
+             * 获取文件统计信息。返回一个包含一下信息的对象。
+             * * `successNum` 上传成功的文件数
+             * * `progressNum` 上传中的文件数
+             * * `cancelNum` 被删除的文件数
+             * * `invalidNum` 无效的文件数
+             * * `uploadFailNum` 上传失败的文件数
+             * * `queueNum` 还在队列中的文件数
+             * * `interruptNum` 被暂停的文件数
+             * @method getStats
+             * @grammar getStats() => Object
+             */
+            getStats: function() {
+                // return this._mgr.getStats.apply( this._mgr, arguments );
+                var stats = this.request('get-stats');
+
+                return stats ? {
+                    successNum: stats.numOfSuccess,
+                    progressNum: stats.numOfProgress,
+
+                    // who care?
+                    // queueFailNum: 0,
+                    cancelNum: stats.numOfCancel,
+                    invalidNum: stats.numOfInvalid,
+                    uploadFailNum: stats.numOfUploadFailed,
+                    queueNum: stats.numOfQueue,
+                    interruptNum: stats.numofInterrupt
+                } : {};
+            },
+
+            // 需要重写此方法来来支持opts.onEvent和instance.onEvent的处理器
+            trigger: function( type/*, args...*/ ) {
+                var args = [].slice.call( arguments, 1 ),
+                    opts = this.options,
+                    name = 'on' + type.substring( 0, 1 ).toUpperCase() +
+                        type.substring( 1 );
+
+                if (
+                        // 调用通过on方法注册的handler.
+                        Mediator.trigger.apply( this, arguments ) === false ||
+
+                        // 调用opts.onEvent
+                        $.isFunction( opts[ name ] ) &&
+                        opts[ name ].apply( this, args ) === false ||
+
+                        // 调用this.onEvent
+                        $.isFunction( this[ name ] ) &&
+                        this[ name ].apply( this, args ) === false ||
+
+                        // 广播所有uploader的事件。
+                        Mediator.trigger.apply( Mediator,
+                        [ this, type ].concat( args ) ) === false ) {
+
+                    return false;
+                }
+
+                return true;
+            },
+
+            /**
+             * 销毁 webuploader 实例
+             * @method destroy
+             * @grammar destroy() => undefined
+             */
+            destroy: function() {
+                this.request( 'destroy', arguments );
+                this.off();
+            },
+
+            // widgets/widget.js将补充此方法的详细文档。
+            request: Base.noop
+        });
+
+        /**
+         * 创建Uploader实例,等同于new Uploader( opts );
+         * @method create
+         * @class Base
+         * @static
+         * @grammar Base.create( opts ) => Uploader
+         */
+        Base.create = Uploader.create = function( opts ) {
+            return new Uploader( opts );
+        };
+
+        // 暴露Uploader,可以通过它来扩展业务逻辑。
+        Base.Uploader = Uploader;
+
+        return Uploader;
+    });
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/runtime',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            factories = {},
+
+            // 获取对象的第一个key
+            getFirstKey = function( obj ) {
+                for ( var key in obj ) {
+                    if ( obj.hasOwnProperty( key ) ) {
+                        return key;
+                    }
+                }
+                return null;
+            };
+
+        // 接口类。
+        function Runtime( options ) {
+            this.options = $.extend({
+                container: document.body
+            }, options );
+            this.uid = Base.guid('rt_');
+        }
+
+        $.extend( Runtime.prototype, {
+
+            getContainer: function() {
+                var opts = this.options,
+                    parent, container;
+
+                if ( this._container ) {
+                    return this._container;
+                }
+
+                parent = $( opts.container || document.body );
+                container = $( document.createElement('div') );
+
+                container.attr( 'id', 'rt_' + this.uid );
+                container.css({
+                    position: 'absolute',
+                    top: '0px',
+                    left: '0px',
+                    width: '1px',
+                    height: '1px',
+                    overflow: 'hidden'
+                });
+
+                parent.append( container );
+                parent.addClass('webuploader-container');
+                this._container = container;
+                this._parent = parent;
+                return container;
+            },
+
+            init: Base.noop,
+            exec: Base.noop,
+
+            destroy: function() {
+                this._container && this._container.remove();
+                this._parent && this._parent.removeClass('webuploader-container');
+                this.off();
+            }
+        });
+
+        Runtime.orders = 'html5,flash';
+
+
+        /**
+         * 添加Runtime实现。
+         * @param {String} type    类型
+         * @param {Runtime} factory 具体Runtime实现。
+         */
+        Runtime.addRuntime = function( type, factory ) {
+            factories[ type ] = factory;
+        };
+
+        Runtime.hasRuntime = function( type ) {
+            return !!(type ? factories[ type ] : getFirstKey( factories ));
+        };
+
+        Runtime.create = function( opts, orders ) {
+            var type, runtime;
+
+            orders = orders || Runtime.orders;
+            $.each( orders.split( /\s*,\s*/g ), function() {
+                if ( factories[ this ] ) {
+                    type = this;
+                    return false;
+                }
+            });
+
+            type = type || getFirstKey( factories );
+
+            if ( !type ) {
+                throw new Error('Runtime Error');
+            }
+
+            runtime = new factories[ type ]( opts );
+            return runtime;
+        };
+
+        Mediator.installTo( Runtime.prototype );
+        return Runtime;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/client',[
+        'base',
+        'mediator',
+        'runtime/runtime'
+    ], function( Base, Mediator, Runtime ) {
+
+        var cache;
+
+        cache = (function() {
+            var obj = {};
+
+            return {
+                add: function( runtime ) {
+                    obj[ runtime.uid ] = runtime;
+                },
+
+                get: function( ruid, standalone ) {
+                    var i;
+
+                    if ( ruid ) {
+                        return obj[ ruid ];
+                    }
+
+                    for ( i in obj ) {
+                        // 有些类型不能重用,比如filepicker.
+                        if ( standalone && obj[ i ].__standalone ) {
+                            continue;
+                        }
+
+                        return obj[ i ];
+                    }
+
+                    return null;
+                },
+
+                remove: function( runtime ) {
+                    delete obj[ runtime.uid ];
+                }
+            };
+        })();
+
+        function RuntimeClient( component, standalone ) {
+            var deferred = Base.Deferred(),
+                runtime;
+
+            this.uid = Base.guid('client_');
+
+            // 允许runtime没有初始化之前,注册一些方法在初始化后执行。
+            this.runtimeReady = function( cb ) {
+                return deferred.done( cb );
+            };
+
+            this.connectRuntime = function( opts, cb ) {
+
+                // already connected.
+                if ( runtime ) {
+                    throw new Error('already connected!');
+                }
+
+                deferred.done( cb );
+
+                if ( typeof opts === 'string' && cache.get( opts ) ) {
+                    runtime = cache.get( opts );
+                }
+
+                // 像filePicker只能独立存在,不能公用。
+                runtime = runtime || cache.get( null, standalone );
+
+                // 需要创建
+                if ( !runtime ) {
+                    runtime = Runtime.create( opts, opts.runtimeOrder );
+                    runtime.__promise = deferred.promise();
+                    runtime.once( 'ready', deferred.resolve );
+                    runtime.init();
+                    cache.add( runtime );
+                    runtime.__client = 1;
+                } else {
+                    // 来自cache
+                    Base.$.extend( runtime.options, opts );
+                    runtime.__promise.then( deferred.resolve );
+                    runtime.__client++;
+                }
+
+                standalone && (runtime.__standalone = standalone);
+                return runtime;
+            };
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.disconnectRuntime = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                runtime.__client--;
+
+                if ( runtime.__client <= 0 ) {
+                    cache.remove( runtime );
+                    delete runtime.__promise;
+                    runtime.destroy();
+                }
+
+                runtime = null;
+            };
+
+            this.exec = function() {
+                if ( !runtime ) {
+                    return;
+                }
+
+                var args = Base.slice( arguments );
+                component && args.unshift( component );
+
+                return runtime.exec.apply( this, args );
+            };
+
+            this.getRuid = function() {
+                return runtime && runtime.uid;
+            };
+
+            this.destroy = (function( destroy ) {
+                return function() {
+                    destroy && destroy.apply( this, arguments );
+                    this.trigger('destroy');
+                    this.off();
+                    this.exec('destroy');
+                    this.disconnectRuntime();
+                };
+            })( this.destroy );
+        }
+
+        Mediator.installTo( RuntimeClient.prototype );
+        return RuntimeClient;
+    });
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/dnd',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function DragAndDrop( opts ) {
+            opts = this.options = $.extend({}, DragAndDrop.options, opts );
+
+            opts.container = $( opts.container );
+
+            if ( !opts.container.length ) {
+                return;
+            }
+
+            RuntimeClent.call( this, 'DragAndDrop' );
+        }
+
+        DragAndDrop.options = {
+            accept: null,
+            disableGlobalDnd: false
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: DragAndDrop,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( DragAndDrop.prototype );
+
+        return DragAndDrop;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/widget',[
+        'base',
+        'uploader'
+    ], function( Base, Uploader ) {
+
+        var $ = Base.$,
+            _init = Uploader.prototype._init,
+            _destroy = Uploader.prototype.destroy,
+            IGNORE = {},
+            widgetClass = [];
+
+        function isArrayLike( obj ) {
+            if ( !obj ) {
+                return false;
+            }
+
+            var length = obj.length,
+                type = $.type( obj );
+
+            if ( obj.nodeType === 1 && length ) {
+                return true;
+            }
+
+            return type === 'array' || type !== 'function' && type !== 'string' &&
+                    (length === 0 || typeof length === 'number' && length > 0 &&
+                    (length - 1) in obj);
+        }
+
+        function Widget( uploader ) {
+            this.owner = uploader;
+            this.options = uploader.options;
+        }
+
+        $.extend( Widget.prototype, {
+
+            init: Base.noop,
+
+            // 类Backbone的事件监听声明,监听uploader实例上的事件
+            // widget直接无法监听事件,事件只能通过uploader来传递
+            invoke: function( apiName, args ) {
+
+                /*
+                    {
+                        'make-thumb': 'makeThumb'
+                    }
+                 */
+                var map = this.responseMap;
+
+                // 如果无API响应声明则忽略
+                if ( !map || !(apiName in map) || !(map[ apiName ] in this) ||
+                        !$.isFunction( this[ map[ apiName ] ] ) ) {
+
+                    return IGNORE;
+                }
+
+                return this[ map[ apiName ] ].apply( this, args );
+
+            },
+
+            /**
+             * 发送命令。当传入`callback`或者`handler`中返回`promise`时。返回一个当所有`handler`中的promise都完成后完成的新`promise`。
+             * @method request
+             * @grammar request( command, args ) => * | Promise
+             * @grammar request( command, args, callback ) => Promise
+             * @for  Uploader
+             */
+            request: function() {
+                return this.owner.request.apply( this.owner, arguments );
+            }
+        });
+
+        // 扩展Uploader.
+        $.extend( Uploader.prototype, {
+
+            /**
+             * @property {String | Array} [disableWidgets=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 默认所有 Uploader.register 了的 widget 都会被加载,如果禁用某一部分,请通过此 option 指定黑名单。
+             */
+
+            // 覆写_init用来初始化widgets
+            _init: function() {
+                var me = this,
+                    widgets = me._widgets = [],
+                    deactives = me.options.disableWidgets || '';
+
+                $.each( widgetClass, function( _, klass ) {
+                    (!deactives || !~deactives.indexOf( klass._name )) &&
+                        widgets.push( new klass( me ) );
+                });
+
+                return _init.apply( me, arguments );
+            },
+
+            request: function( apiName, args, callback ) {
+                var i = 0,
+                    widgets = this._widgets,
+                    len = widgets && widgets.length,
+                    rlts = [],
+                    dfds = [],
+                    widget, rlt, promise, key;
+
+                args = isArrayLike( args ) ? args : [ args ];
+
+                for ( ; i < len; i++ ) {
+                    widget = widgets[ i ];
+                    rlt = widget.invoke( apiName, args );
+
+                    if ( rlt !== IGNORE ) {
+
+                        // Deferred对象
+                        if ( Base.isPromise( rlt ) ) {
+                            dfds.push( rlt );
+                        } else {
+                            rlts.push( rlt );
+                        }
+                    }
+                }
+
+                // 如果有callback,则用异步方式。
+                if ( callback || dfds.length ) {
+                    promise = Base.when.apply( Base, dfds );
+                    key = promise.pipe ? 'pipe' : 'then';
+
+                    // 很重要不能删除。删除了会死循环。
+                    // 保证执行顺序。让callback总是在下一个 tick 中执行。
+                    return promise[ key ](function() {
+                                var deferred = Base.Deferred(),
+                                    args = arguments;
+
+                                if ( args.length === 1 ) {
+                                    args = args[ 0 ];
+                                }
+
+                                setTimeout(function() {
+                                    deferred.resolve( args );
+                                }, 1 );
+
+                                return deferred.promise();
+                            })[ callback ? key : 'done' ]( callback || Base.noop );
+                } else {
+                    return rlts[ 0 ];
+                }
+            },
+
+            destroy: function() {
+                _destroy.apply( this, arguments );
+                this._widgets = null;
+            }
+        });
+
+        /**
+         * 添加组件
+         * @grammar Uploader.register(proto);
+         * @grammar Uploader.register(map, proto);
+         * @param  {object} responseMap API 名称与函数实现的映射
+         * @param  {object} proto 组件原型,构造函数通过 constructor 属性定义
+         * @method Uploader.register
+         * @for Uploader
+         * @example
+         * Uploader.register({
+         *     'make-thumb': 'makeThumb'
+         * }, {
+         *     init: function( options ) {},
+         *     makeThumb: function() {}
+         * });
+         *
+         * Uploader.register({
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         */
+        Uploader.register = Widget.register = function( responseMap, widgetProto ) {
+            var map = { init: 'init', destroy: 'destroy', name: 'anonymous' },
+                klass;
+
+            if ( arguments.length === 1 ) {
+                widgetProto = responseMap;
+
+                // 自动生成 map 表。
+                $.each(widgetProto, function(key) {
+                    if ( key[0] === '_' || key === 'name' ) {
+                        key === 'name' && (map.name = widgetProto.name);
+                        return;
+                    }
+
+                    map[key.replace(/[A-Z]/g, '-$&').toLowerCase()] = key;
+                });
+
+            } else {
+                map = $.extend( map, responseMap );
+            }
+
+            widgetProto.responseMap = map;
+            klass = Base.inherits( Widget, widgetProto );
+            klass._name = map.name;
+            widgetClass.push( klass );
+
+            return klass;
+        };
+
+        /**
+         * 删除插件,只有在注册时指定了名字的才能被删除。
+         * @grammar Uploader.unRegister(name);
+         * @param  {string} name 组件名字
+         * @method Uploader.unRegister
+         * @for Uploader
+         * @example
+         *
+         * Uploader.register({
+         *     name: 'custom',
+         *
+         *     'make-thumb': function() {
+         *
+         *     }
+         * });
+         *
+         * Uploader.unRegister('custom');
+         */
+        Uploader.unRegister = Widget.unRegister = function( name ) {
+            if ( !name || name === 'anonymous' ) {
+                return;
+            }
+
+            // 删除指定的插件。
+            for ( var i = widgetClass.length; i--; ) {
+                if ( widgetClass[i]._name === name ) {
+                    widgetClass.splice(i, 1)
+                }
+            }
+        };
+
+        return Widget;
+    });
+    /**
+     * @fileOverview DragAndDrop Widget。
+     */
+    define('widgets/filednd',[
+        'base',
+        'uploader',
+        'lib/dnd',
+        'widgets/widget'
+    ], function( Base, Uploader, Dnd ) {
+        var $ = Base.$;
+
+        Uploader.options.dnd = '';
+
+        /**
+         * @property {Selector} [dnd=undefined]  指定Drag And Drop拖拽的容器,如果不指定,则不启动。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @property {Selector} [disableGlobalDnd=false]  是否禁掉整个页面的拖拽功能,如果不禁用,图片拖进来的时候会默认被浏览器打开。
+         * @namespace options
+         * @for Uploader
+         */
+
+        /**
+         * @event dndAccept
+         * @param {DataTransferItemList} items DataTransferItem
+         * @description 阻止此事件可以拒绝某些类型的文件拖入进来。目前只有 chrome 提供这样的 API,且只能通过 mime-type 验证。
+         * @for  Uploader
+         */
+        return Uploader.register({
+            name: 'dnd',
+
+            init: function( opts ) {
+
+                if ( !opts.dnd ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        disableGlobalDnd: opts.disableGlobalDnd,
+                        container: opts.dnd,
+                        accept: opts.accept
+                    }),
+                    dnd;
+
+                this.dnd = dnd = new Dnd( options );
+
+                dnd.once( 'ready', deferred.resolve );
+                dnd.on( 'drop', function( files ) {
+                    me.request( 'add-file', [ files ]);
+                });
+
+                // 检测文件是否全部允许添加。
+                dnd.on( 'accept', function( items ) {
+                    return me.owner.trigger( 'dndAccept', items );
+                });
+
+                dnd.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.dnd && this.dnd.destroy();
+            }
+        });
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepaste',[
+        'base',
+        'mediator',
+        'runtime/client'
+    ], function( Base, Mediator, RuntimeClent ) {
+
+        var $ = Base.$;
+
+        function FilePaste( opts ) {
+            opts = this.options = $.extend({}, opts );
+            opts.container = $( opts.container || document.body );
+            RuntimeClent.call( this, 'FilePaste' );
+        }
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePaste,
+
+            init: function() {
+                var me = this;
+
+                me.connectRuntime( me.options, function() {
+                    me.exec('init');
+                    me.trigger('ready');
+                });
+            }
+        });
+
+        Mediator.installTo( FilePaste.prototype );
+
+        return FilePaste;
+    });
+    /**
+     * @fileOverview 组件基类。
+     */
+    define('widgets/filepaste',[
+        'base',
+        'uploader',
+        'lib/filepaste',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePaste ) {
+        var $ = Base.$;
+
+        /**
+         * @property {Selector} [paste=undefined]  指定监听paste事件的容器,如果不指定,不启用此功能。此功能为通过粘贴来添加截屏的图片。建议设置为`document.body`.
+         * @namespace options
+         * @for Uploader
+         */
+        return Uploader.register({
+            name: 'paste',
+
+            init: function( opts ) {
+
+                if ( !opts.paste ||
+                        this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                var me = this,
+                    deferred = Base.Deferred(),
+                    options = $.extend({}, {
+                        container: opts.paste,
+                        accept: opts.accept
+                    }),
+                    paste;
+
+                this.paste = paste = new FilePaste( options );
+
+                paste.once( 'ready', deferred.resolve );
+                paste.on( 'paste', function( files ) {
+                    me.owner.request( 'add-file', [ files ]);
+                });
+                paste.init();
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                this.paste && this.paste.destroy();
+            }
+        });
+    });
+    /**
+     * @fileOverview Blob
+     */
+    define('lib/blob',[
+        'base',
+        'runtime/client'
+    ], function( Base, RuntimeClient ) {
+
+        function Blob( ruid, source ) {
+            var me = this;
+
+            me.source = source;
+            me.ruid = ruid;
+            this.size = source.size || 0;
+
+            // 如果没有指定 mimetype, 但是知道文件后缀。
+            if ( !source.type && this.ext &&
+                    ~'jpg,jpeg,png,gif,bmp'.indexOf( this.ext ) ) {
+                this.type = 'image/' + (this.ext === 'jpg' ? 'jpeg' : this.ext);
+            } else {
+                this.type = source.type || 'application/octet-stream';
+            }
+
+            RuntimeClient.call( me, 'Blob' );
+            this.uid = source.uid || this.uid;
+
+            if ( ruid ) {
+                me.connectRuntime( ruid );
+            }
+        }
+
+        Base.inherits( RuntimeClient, {
+            constructor: Blob,
+
+            slice: function( start, end ) {
+                return this.exec( 'slice', start, end );
+            },
+
+            getSource: function() {
+                return this.source;
+            }
+        });
+
+        return Blob;
+    });
+    /**
+     * 为了统一化Flash的File和HTML5的File而存在。
+     * 以至于要调用Flash里面的File,也可以像调用HTML5版本的File一下。
+     * @fileOverview File
+     */
+    define('lib/file',[
+        'base',
+        'lib/blob'
+    ], function( Base, Blob ) {
+
+        var uid = 1,
+            rExt = /\.([^.]+)$/;
+
+        function File( ruid, file ) {
+            var ext;
+
+            this.name = file.name || ('untitled' + uid++);
+            ext = rExt.exec( file.name ) ? RegExp.$1.toLowerCase() : '';
+
+            // todo 支持其他类型文件的转换。
+            // 如果有 mimetype, 但是文件名里面没有找出后缀规律
+            if ( !ext && file.type ) {
+                ext = /\/(jpg|jpeg|png|gif|bmp)$/i.exec( file.type ) ?
+                        RegExp.$1.toLowerCase() : '';
+                this.name += '.' + ext;
+            }
+
+            this.ext = ext;
+            this.lastModifiedDate = file.lastModifiedDate ||
+                    (new Date()).toLocaleString();
+
+            Blob.apply( this, arguments );
+        }
+
+        return Base.inherits( Blob, File );
+    });
+
+    /**
+     * @fileOverview 错误信息
+     */
+    define('lib/filepicker',[
+        'base',
+        'runtime/client',
+        'lib/file'
+    ], function( Base, RuntimeClent, File ) {
+
+        var $ = Base.$;
+
+        function FilePicker( opts ) {
+            opts = this.options = $.extend({}, FilePicker.options, opts );
+
+            opts.container = $( opts.id );
+
+            if ( !opts.container.length ) {
+                throw new Error('按钮指定错误');
+            }
+
+            opts.innerHTML = opts.innerHTML || opts.label ||
+                    opts.container.html() || '';
+
+            opts.button = $( opts.button || document.createElement('div') );
+            opts.button.html( opts.innerHTML );
+            opts.container.html( opts.button );
+
+            RuntimeClent.call( this, 'FilePicker', true );
+        }
+
+        FilePicker.options = {
+            button: null,
+            container: null,
+            label: null,
+            innerHTML: null,
+            multiple: true,
+            accept: null,
+            name: 'file'
+        };
+
+        Base.inherits( RuntimeClent, {
+            constructor: FilePicker,
+
+            init: function() {
+                var me = this,
+                    opts = me.options,
+                    button = opts.button;
+
+                button.addClass('webuploader-pick');
+
+                me.on( 'all', function( type ) {
+                    var files;
+
+                    switch ( type ) {
+                        case 'mouseenter':
+                            button.addClass('webuploader-pick-hover');
+                            break;
+
+                        case 'mouseleave':
+                            button.removeClass('webuploader-pick-hover');
+                            break;
+
+                        case 'change':
+                            files = me.exec('getFiles');
+                            me.trigger( 'select', $.map( files, function( file ) {
+                                file = new File( me.getRuid(), file );
+
+                                // 记录来源。
+                                file._refer = opts.container;
+                                return file;
+                            }), opts.container );
+                            break;
+                    }
+                });
+
+                me.connectRuntime( opts, function() {
+                    me.refresh();
+                    me.exec( 'init', opts );
+                    me.trigger('ready');
+                });
+
+                this._resizeHandler = Base.bindFn( this.refresh, this );
+                $( window ).on( 'resize', this._resizeHandler );
+            },
+
+            refresh: function() {
+                var shimContainer = this.getRuntime().getContainer(),
+                    button = this.options.button,
+                    width = button.outerWidth ?
+                            button.outerWidth() : button.width(),
+
+                    height = button.outerHeight ?
+                            button.outerHeight() : button.height(),
+
+                    pos = button.offset();
+
+                width && height && shimContainer.css({
+                    bottom: 'auto',
+                    right: 'auto',
+                    width: width + 'px',
+                    height: height + 'px'
+                }).offset( pos );
+            },
+
+            enable: function() {
+                var btn = this.options.button;
+
+                btn.removeClass('webuploader-pick-disable');
+                this.refresh();
+            },
+
+            disable: function() {
+                var btn = this.options.button;
+
+                this.getRuntime().getContainer().css({
+                    top: '-99999px'
+                });
+
+                btn.addClass('webuploader-pick-disable');
+            },
+
+            destroy: function() {
+                var btn = this.options.button;
+                $( window ).off( 'resize', this._resizeHandler );
+                btn.removeClass('webuploader-pick-disable webuploader-pick-hover ' +
+                    'webuploader-pick');
+            }
+        });
+
+        return FilePicker;
+    });
+
+    /**
+     * @fileOverview 文件选择相关
+     */
+    define('widgets/filepicker',[
+        'base',
+        'uploader',
+        'lib/filepicker',
+        'widgets/widget'
+    ], function( Base, Uploader, FilePicker ) {
+        var $ = Base.$;
+
+        $.extend( Uploader.options, {
+
+            /**
+             * @property {Selector | Object} [pick=undefined]
+             * @namespace options
+             * @for Uploader
+             * @description 指定选择文件的按钮容器,不指定则不创建按钮。
+             *
+             * * `id` {Seletor} 指定选择文件的按钮容器,不指定则不创建按钮。
+             * * `label` {String} 请采用 `innerHTML` 代替
+             * * `innerHTML` {String} 指定按钮文字。不指定时优先从指定的容器中看是否自带文字。
+             * * `multiple` {Boolean} 是否开起同时选择多个文件能力。
+             */
+            pick: null,
+
+            /**
+             * @property {Arroy} [accept=null]
+             * @namespace options
+             * @for Uploader
+             * @description 指定接受哪些类型的文件。 由于目前还有ext转mimeType表,所以这里需要分开指定。
+             *
+             * * `title` {String} 文字描述
+             * * `extensions` {String} 允许的文件后缀,不带点,多个用逗号分割。
+             * * `mimeTypes` {String} 多个用逗号分割。
+             *
+             * 如:
+             *
+             * ```
+             * {
+             *     title: 'Images',
+             *     extensions: 'gif,jpg,jpeg,bmp,png',
+             *     mimeTypes: 'image/*'
+             * }
+             * ```
+             */
+            accept: null/*{
+                title: 'Images',
+                extensions: 'gif,jpg,jpeg,bmp,png',
+                mimeTypes: 'image/*'
+            }*/
+        });
+
+        return Uploader.register({
+            name: 'picker',
+
+            init: function( opts ) {
+                this.pickers = [];
+                return opts.pick && this.addBtn( opts.pick );
+            },
+
+            refresh: function() {
+                $.each( this.pickers, function() {
+                    this.refresh();
+                });
+            },
+
+            /**
+             * @method addButton
+             * @for Uploader
+             * @grammar addButton( pick ) => Promise
+             * @description
+             * 添加文件选择按钮,如果一个按钮不够,需要调用此方法来添加。参数跟[options.pick](#WebUploader:Uploader:options)一致。
+             * @example
+             * uploader.addButton({
+             *     id: '#btnContainer',
+             *     innerHTML: '选择文件'
+             * });
+             */
+            addBtn: function( pick ) {
+                var me = this,
+                    opts = me.options,
+                    accept = opts.accept,
+                    promises = [];
+
+                if ( !pick ) {
+                    return;
+                }
+
+                $.isPlainObject( pick ) || (pick = {
+                    id: pick
+                });
+
+                $( pick.id ).each(function() {
+                    var options, picker, deferred;
+
+                    deferred = Base.Deferred();
+
+                    options = $.extend({}, pick, {
+                        accept: $.isPlainObject( accept ) ? [ accept ] : accept,
+                        swf: opts.swf,
+                        runtimeOrder: opts.runtimeOrder,
+                        id: this
+                    });
+
+                    picker = new FilePicker( options );
+
+                    picker.once( 'ready', deferred.resolve );
+                    picker.on( 'select', function( files ) {
+                        me.owner.request( 'add-file', [ files ]);
+                    });
+                    picker.init();
+
+                    me.pickers.push( picker );
+
+                    promises.push( deferred.promise() );
+                });
+
+                return Base.when.apply( Base, promises );
+            },
+
+            disable: function() {
+                $.each( this.pickers, function() {
+                    this.disable();
+                });
+            },
+
+            enable: function() {
+                $.each( this.pickers, function() {
+                    this.enable();
+                });
+            },
+
+            destroy: function() {
+                $.each( this.pickers, function() {
+                    this.destroy();
+                });
+                this.pickers = null;
+            }
+        });
+    });
+    /**
+     * @fileOverview 文件属性封装
+     */
+    define('file',[
+        'base',
+        'mediator'
+    ], function( Base, Mediator ) {
+
+        var $ = Base.$,
+            idPrefix = 'WU_FILE_',
+            idSuffix = 0,
+            rExt = /\.([^.]+)$/,
+            statusMap = {};
+
+        function gid() {
+            return idPrefix + idSuffix++;
+        }
+
+        /**
+         * 文件类
+         * @class File
+         * @constructor 构造函数
+         * @grammar new File( source ) => File
+         * @param {Lib.File} source [lib.File](#Lib.File)实例, 此source对象是带有Runtime信息的。
+         */
+        function WUFile( source ) {
+
+            /**
+             * 文件名,包括扩展名(后缀)
+             * @property name
+             * @type {string}
+             */
+            this.name = source.name || 'Untitled';
+
+            /**
+             * 文件体积(字节)
+             * @property size
+             * @type {uint}
+             * @default 0
+             */
+            this.size = source.size || 0;
+
+            /**
+             * 文件MIMETYPE类型,与文件类型的对应关系请参考[http://t.cn/z8ZnFny](http://t.cn/z8ZnFny)
+             * @property type
+             * @type {string}
+             * @default 'application/octet-stream'
+             */
+            this.type = source.type || 'application/octet-stream';
+
+            /**
+             * 文件最后修改日期
+             * @property lastModifiedDate
+             * @type {int}
+             * @default 当前时间戳
+             */
+            this.lastModifiedDate = source.lastModifiedDate || (new Date() * 1);
+
+            /**
+             * 文件ID,每个对象具有唯一ID,与文件名无关
+             * @property id
+             * @type {string}
+             */
+            this.id = gid();
+
+            /**
+             * 文件扩展名,通过文件名获取,例如test.png的扩展名为png
+             * @property ext
+             * @type {string}
+             */
+            this.ext = rExt.exec( this.name ) ? RegExp.$1 : '';
+
+
+            /**
+             * 状态文字说明。在不同的status语境下有不同的用途。
+             * @property statusText
+             * @type {string}
+             */
+            this.statusText = '';
+
+            // 存储文件状态,防止通过属性直接修改
+            statusMap[ this.id ] = WUFile.Status.INITED;
+
+            this.source = source;
+            this.loaded = 0;
+
+            this.on( 'error', function( msg ) {
+                this.setStatus( WUFile.Status.ERROR, msg );
+            });
+        }
+
+        $.extend( WUFile.prototype, {
+
+            /**
+             * 设置状态,状态变化时会触发`change`事件。
+             * @method setStatus
+             * @grammar setStatus( status[, statusText] );
+             * @param {File.Status|String} status [文件状态值](#WebUploader:File:File.Status)
+             * @param {String} [statusText=''] 状态说明,常在error时使用,用http, abort,server等来标记是由于什么原因导致文件错误。
+             */
+            setStatus: function( status, text ) {
+
+                var prevStatus = statusMap[ this.id ];
+
+                typeof text !== 'undefined' && (this.statusText = text);
+
+                if ( status !== prevStatus ) {
+                    statusMap[ this.id ] = status;
+                    /**
+                     * 文件状态变化
+                     * @event statuschange
+                     */
+                    this.trigger( 'statuschange', status, prevStatus );
+                }
+
+            },
+
+            /**
+             * 获取文件状态
+             * @return {File.Status}
+             * @example
+                     文件状态具体包括以下几种类型:
+                     {
+                         // 初始化
+                        INITED:     0,
+                        // 已入队列
+                        QUEUED:     1,
+                        // 正在上传
+                        PROGRESS:     2,
+                        // 上传出错
+                        ERROR:         3,
+                        // 上传成功
+                        COMPLETE:     4,
+                        // 上传取消
+                        CANCELLED:     5
+                    }
+             */
+            getStatus: function() {
+                return statusMap[ this.id ];
+            },
+
+            /**
+             * 获取文件原始信息。
+             * @return {*}
+             */
+            getSource: function() {
+                return this.source;
+            },
+
+            destroy: function() {
+                this.off();
+                delete statusMap[ this.id ];
+            }
+        });
+
+        Mediator.installTo( WUFile.prototype );
+
+        /**
+         * 文件状态值,具体包括以下几种类型:
+         * * `inited` 初始状态
+         * * `queued` 已经进入队列, 等待上传
+         * * `progress` 上传中
+         * * `complete` 上传完成。
+         * * `error` 上传出错,可重试
+         * * `interrupt` 上传中断,可续传。
+         * * `invalid` 文件不合格,不能重试上传。会自动从队列中移除。
+         * * `cancelled` 文件被移除。
+         * @property {Object} Status
+         * @namespace File
+         * @class File
+         * @static
+         */
+        WUFile.Status = {
+            INITED:     'inited',    // 初始状态
+            QUEUED:     'queued',    // 已经进入队列, 等待上传
+            PROGRESS:   'progress',    // 上传中
+            ERROR:      'error',    // 上传出错,可重试
+            COMPLETE:   'complete',    // 上传完成。
+            CANCELLED:  'cancelled',    // 上传取消。
+            INTERRUPT:  'interrupt',    // 上传中断,可续传。
+            INVALID:    'invalid'    // 文件不合格,不能重试上传。
+        };
+
+        return WUFile;
+    });
+
+    /**
+     * @fileOverview 文件队列
+     */
+    define('queue',[
+        'base',
+        'mediator',
+        'file'
+    ], function( Base, Mediator, WUFile ) {
+
+        var $ = Base.$,
+            STATUS = WUFile.Status;
+
+        /**
+         * 文件队列, 用来存储各个状态中的文件。
+         * @class Queue
+         * @extends Mediator
+         */
+        function Queue() {
+
+            /**
+             * 统计文件数。
+             * * `numOfQueue` 队列中的文件数。
+             * * `numOfSuccess` 上传成功的文件数
+             * * `numOfCancel` 被取消的文件数
+             * * `numOfProgress` 正在上传中的文件数
+             * * `numOfUploadFailed` 上传错误的文件数。
+             * * `numOfInvalid` 无效的文件数。
+             * * `numofDeleted` 被移除的文件数。
+             * @property {Object} stats
+             */
+            this.stats = {
+                numOfQueue: 0,
+                numOfSuccess: 0,
+                numOfCancel: 0,
+                numOfProgress: 0,
+                numOfUploadFailed: 0,
+                numOfInvalid: 0,
+                numofDeleted: 0,
+                numofInterrupt: 0,
+            };
+
+            // 上传队列,仅包括等待上传的文件
+            this._queue = [];
+
+            // 存储所有文件
+            this._map = {};
+        }
+
+        $.extend( Queue.prototype, {
+
+            /**
+             * 将新文件加入对队列尾部
+             *
+             * @method append
+             * @param  {File} file   文件对象
+             */
+            append: function( file ) {
+                this._queue.push( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 将新文件加入对队列头部
+             *
+             * @method prepend
+             * @param  {File} file   文件对象
+             */
+            prepend: function( file ) {
+                this._queue.unshift( file );
+                this._fileAdded( file );
+                return this;
+            },
+
+            /**
+             * 获取文件对象
+             *
+             * @method getFile
+             * @param  {String} fileId   文件ID
+             * @return {File}
+             */
+            getFile: function( fileId ) {
+                if ( typeof fileId !== 'string' ) {
+                    return fileId;
+                }
+                return this._map[ fileId ];
+            },
+
+            /**
+             * 从队列中取出一个指定状态的文件。
+             * @grammar fetch( status ) => File
+             * @method fetch
+             * @param {String} status [文件状态值](#WebUploader:File:File.Status)
+             * @return {File} [File](#WebUploader:File)
+             */
+            fetch: function( status ) {
+                var len = this._queue.length,
+                    i, file;
+
+                status = status || STATUS.QUEUED;
+
+                for ( i = 0; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( status === file.getStatus() ) {
+                        return file;
+                    }
+                }
+
+                return null;
+            },
+
+            /**
+             * 对队列进行排序,能够控制文件上传顺序。
+             * @grammar sort( fn ) => undefined
+             * @method sort
+             * @param {Function} fn 排序方法
+             */
+            sort: function( fn ) {
+                if ( typeof fn === 'function' ) {
+                    this._queue.sort( fn );
+                }
+            },
+
+            /**
+             * 获取指定类型的文件列表, 列表中每一个成员为[File](#WebUploader:File)对象。
+             * @grammar getFiles( [status1[, status2 ...]] ) => Array
+             * @method getFiles
+             * @param {String} [status] [文件状态值](#WebUploader:File:File.Status)
+             */
+            getFiles: function() {
+                var sts = [].slice.call( arguments, 0 ),
+                    ret = [],
+                    i = 0,
+                    len = this._queue.length,
+                    file;
+
+                for ( ; i < len; i++ ) {
+                    file = this._queue[ i ];
+
+                    if ( sts.length && !~$.inArray( file.getStatus(), sts ) ) {
+                        continue;
+                    }
+
+                    ret.push( file );
+                }
+
+                return ret;
+            },
+
+            /**
+             * 在队列中删除文件。
+             * @grammar removeFile( file ) => Array
+             * @method removeFile
+             * @param {File} 文件对象。
+             */
+            removeFile: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( existing ) {
+                    delete this._map[ file.id ];
+                    file.destroy();
+                    this.stats.numofDeleted++;
+                }
+            },
+
+            _fileAdded: function( file ) {
+                var me = this,
+                    existing = this._map[ file.id ];
+
+                if ( !existing ) {
+                    this._map[ file.id ] = file;
+
+                    file.on( 'statuschange', function( cur, pre ) {
+                        me._onFileStatusChange( cur, pre );
+                    });
+                }
+            },
+
+            _onFileStatusChange: function( curStatus, preStatus ) {
+                var stats = this.stats;
+
+                switch ( preStatus ) {
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress--;
+                        break;
+
+                    case STATUS.QUEUED:
+                        stats.numOfQueue --;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed--;
+                        break;
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid--;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt--;
+                        break;
+                }
+
+                switch ( curStatus ) {
+                    case STATUS.QUEUED:
+                        stats.numOfQueue++;
+                        break;
+
+                    case STATUS.PROGRESS:
+                        stats.numOfProgress++;
+                        break;
+
+                    case STATUS.ERROR:
+                        stats.numOfUploadFailed++;
+                        break;
+
+                    case STATUS.COMPLETE:
+                        stats.numOfSuccess++;
+                        break;
+
+                    case STATUS.CANCELLED:
+                        stats.numOfCancel++;
+                        break;
+
+
+                    case STATUS.INVALID:
+                        stats.numOfInvalid++;
+                        break;
+
+                    case STATUS.INTERRUPT:
+                        stats.numofInterrupt++;
+                        break;
+                }
+            }
+
+        });
+
+        Mediator.installTo( Queue.prototype );
+
+        return Queue;
+    });
+    /**
+     * @fileOverview 队列
+     */
+    define('widgets/queue',[
+        'base',
+        'uploader',
+        'queue',
+        'file',
+        'lib/file',
+        'runtime/client',
+        'widgets/widget'
+    ], function( Base, Uploader, Queue, WUFile, File, RuntimeClient ) {
+
+        var $ = Base.$,
+            rExt = /\.\w+$/,
+            Status = WUFile.Status;
+
+        return Uploader.register({
+            name: 'queue',
+
+            init: function( opts ) {
+                var me = this,
+                    deferred, len, i, item, arr, accept, runtime;
+
+                if ( $.isPlainObject( opts.accept ) ) {
+                    opts.accept = [ opts.accept ];
+                }
+
+                // accept中的中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].extensions;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = '\\.' + arr.join(',')
+                                .replace( /,/g, '$|\\.' )
+                                .replace( /\*/g, '.*' ) + '$';
+                    }
+
+                    me.accept = new RegExp( accept, 'i' );
+                }
+
+                me.queue = new Queue();
+                me.stats = me.queue.stats;
+
+                // 如果当前不是html5运行时,那就算了。
+                // 不执行后续操作
+                if ( this.request('predict-runtime-type') !== 'html5' ) {
+                    return;
+                }
+
+                // 创建一个 html5 运行时的 placeholder
+                // 以至于外部添加原生 File 对象的时候能正确包裹一下供 webuploader 使用。
+                deferred = Base.Deferred();
+                this.placeholder = runtime = new RuntimeClient('Placeholder');
+                runtime.connectRuntime({
+                    runtimeOrder: 'html5'
+                }, function() {
+                    me._ruid = runtime.getRuid();
+                    deferred.resolve();
+                });
+                return deferred.promise();
+            },
+
+
+            // 为了支持外部直接添加一个原生File对象。
+            _wrapFile: function( file ) {
+                if ( !(file instanceof WUFile) ) {
+
+                    if ( !(file instanceof File) ) {
+                        if ( !this._ruid ) {
+                            throw new Error('Can\'t add external files.');
+                        }
+                        file = new File( this._ruid, file );
+                    }
+
+                    file = new WUFile( file );
+                }
+
+                return file;
+            },
+
+            // 判断文件是否可以被加入队列
+            acceptFile: function( file ) {
+                var invalid = !file || !file.size || this.accept &&
+
+                        // 如果名字中有后缀,才做后缀白名单处理。
+                        rExt.exec( file.name ) && !this.accept.test( file.name );
+
+                return !invalid;
+            },
+
+
+            /**
+             * @event beforeFileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列之前触发,此事件的handler返回值为`false`,则此文件不会被添加进入队列。
+             * @for  Uploader
+             */
+
+            /**
+             * @event fileQueued
+             * @param {File} file File对象
+             * @description 当文件被加入队列以后触发。
+             * @for  Uploader
+             */
+
+            _addFile: function( file ) {
+                var me = this;
+
+                file = me._wrapFile( file );
+
+                // 不过类型判断允许不允许,先派送 `beforeFileQueued`
+                if ( !me.owner.trigger( 'beforeFileQueued', file ) ) {
+                    return;
+                }
+
+                // 类型不匹配,则派送错误事件,并返回。
+                if ( !me.acceptFile( file ) ) {
+                    me.owner.trigger( 'error', 'Q_TYPE_DENIED', file );
+                    return;
+                }
+
+                me.queue.append( file );
+                me.owner.trigger( 'fileQueued', file );
+                return file;
+            },
+
+            getFile: function( fileId ) {
+                return this.queue.getFile( fileId );
+            },
+
+            /**
+             * @event filesQueued
+             * @param {File} files 数组,内容为原始File(lib/File)对象。
+             * @description 当一批文件添加进队列以后触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @property {Boolean} [auto=false]
+             * @namespace options
+             * @for Uploader
+             * @description 设置为 true 后,不需要手动调用上传,有文件选择即开始上传。
+             *
+             */
+
+            /**
+             * @method addFiles
+             * @grammar addFiles( file ) => undefined
+             * @grammar addFiles( [file1, file2 ...] ) => undefined
+             * @param {Array of File or File} [files] Files 对象 数组
+             * @description 添加文件到队列
+             * @for  Uploader
+             */
+            addFile: function( files ) {
+                var me = this;
+
+                if ( !files.length ) {
+                    files = [ files ];
+                }
+
+                files = $.map( files, function( file ) {
+                    return me._addFile( file );
+                });
+
+                me.owner.trigger( 'filesQueued', files );
+
+                if ( me.options.auto ) {
+                    setTimeout(function() {
+                        me.request('start-upload');
+                    }, 20 );
+                }
+            },
+
+            getStats: function() {
+                return this.stats;
+            },
+
+            /**
+             * @event fileDequeued
+             * @param {File} file File对象
+             * @description 当文件被移除队列后触发。
+             * @for  Uploader
+             */
+
+             /**
+             * @method removeFile
+             * @grammar removeFile( file ) => undefined
+             * @grammar removeFile( id ) => undefined
+             * @grammar removeFile( file, true ) => undefined
+             * @grammar removeFile( id, true ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 移除某一文件, 默认只会标记文件状态为已取消,如果第二个参数为 `true` 则会从 queue 中移除。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.removeFile( file );
+             * })
+             */
+            removeFile: function( file, remove ) {
+                var me = this;
+
+                file = file.id ? file : me.queue.getFile( file );
+
+                this.request( 'cancel-file', file );
+
+                if ( remove ) {
+                    this.queue.removeFile( file );
+                }
+            },
+
+            /**
+             * @method getFiles
+             * @grammar getFiles() => Array
+             * @grammar getFiles( status1, status2, status... ) => Array
+             * @description 返回指定状态的文件集合,不传参数将返回所有状态的文件。
+             * @for  Uploader
+             * @example
+             * console.log( uploader.getFiles() );    // => all files
+             * console.log( uploader.getFiles('error') )    // => all error files.
+             */
+            getFiles: function() {
+                return this.queue.getFiles.apply( this.queue, arguments );
+            },
+
+            fetchFile: function() {
+                return this.queue.fetch.apply( this.queue, arguments );
+            },
+
+            /**
+             * @method retry
+             * @grammar retry() => undefined
+             * @grammar retry( file ) => undefined
+             * @description 重试上传,重试指定文件,或者从出错的文件开始重新上传。
+             * @for  Uploader
+             * @example
+             * function retry() {
+             *     uploader.retry();
+             * }
+             */
+            retry: function( file, noForceStart ) {
+                var me = this,
+                    files, i, len;
+
+                if ( file ) {
+                    file = file.id ? file : me.queue.getFile( file );
+                    file.setStatus( Status.QUEUED );
+                    noForceStart || me.request('start-upload');
+                    return;
+                }
+
+                files = me.queue.getFiles( Status.ERROR );
+                i = 0;
+                len = files.length;
+
+                for ( ; i < len; i++ ) {
+                    file = files[ i ];
+                    file.setStatus( Status.QUEUED );
+                }
+
+                me.request('start-upload');
+            },
+
+            /**
+             * @method sort
+             * @grammar sort( fn ) => undefined
+             * @description 排序队列中的文件,在上传之前调整可以控制上传顺序。
+             * @for  Uploader
+             */
+            sortFiles: function() {
+                return this.queue.sort.apply( this.queue, arguments );
+            },
+
+            /**
+             * @event reset
+             * @description 当 uploader 被重置的时候触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @method reset
+             * @grammar reset() => undefined
+             * @description 重置uploader。目前只重置了队列。
+             * @for  Uploader
+             * @example
+             * uploader.reset();
+             */
+            reset: function() {
+                this.owner.trigger('reset');
+                this.queue = new Queue();
+                this.stats = this.queue.stats;
+            },
+
+            destroy: function() {
+                this.reset();
+                this.placeholder && this.placeholder.destroy();
+            }
+        });
+
+    });
+    /**
+     * @fileOverview 添加获取Runtime相关信息的方法。
+     */
+    define('widgets/runtime',[
+        'uploader',
+        'runtime/runtime',
+        'widgets/widget'
+    ], function( Uploader, Runtime ) {
+
+        Uploader.support = function() {
+            return Runtime.hasRuntime.apply( Runtime, arguments );
+        };
+
+        return Uploader.register({
+            name: 'runtime',
+
+            init: function() {
+                if ( !this.predictRuntimeType() ) {
+                    throw Error('Runtime Error');
+                }
+            },
+
+            /**
+             * 预测Uploader将采用哪个`Runtime`
+             * @grammar predictRuntimeType() => String
+             * @method predictRuntimeType
+             * @for  Uploader
+             */
+            predictRuntimeType: function() {
+                var orders = this.options.runtimeOrder || Runtime.orders,
+                    type = this.type,
+                    i, len;
+
+                if ( !type ) {
+                    orders = orders.split( /\s*,\s*/g );
+
+                    for ( i = 0, len = orders.length; i < len; i++ ) {
+                        if ( Runtime.hasRuntime( orders[ i ] ) ) {
+                            this.type = type = orders[ i ];
+                            break;
+                        }
+                    }
+                }
+
+                return type;
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     */
+    define('lib/transport',[
+        'base',
+        'runtime/client',
+        'mediator'
+    ], function( Base, RuntimeClient, Mediator ) {
+
+        var $ = Base.$;
+
+        function Transport( opts ) {
+            var me = this;
+
+            opts = me.options = $.extend( true, {}, Transport.options, opts || {} );
+            RuntimeClient.call( this, 'Transport' );
+
+            this._blob = null;
+            this._formData = opts.formData || {};
+            this._headers = opts.headers || {};
+
+            this.on( 'progress', this._timeout );
+            this.on( 'load error', function() {
+                me.trigger( 'progress', 1 );
+                clearTimeout( me._timer );
+            });
+        }
+
+        Transport.options = {
+            server: '',
+            method: 'POST',
+
+            // 跨域时,是否允许携带cookie, 只有html5 runtime才有效
+            withCredentials: false,
+            fileVal: 'file',
+            timeout: 2 * 60 * 1000,    // 2分钟
+            formData: {},
+            headers: {},
+            sendAsBinary: false
+        };
+
+        $.extend( Transport.prototype, {
+
+            // 添加Blob, 只能添加一次,最后一次有效。
+            appendBlob: function( key, blob, filename ) {
+                var me = this,
+                    opts = me.options;
+
+                if ( me.getRuid() ) {
+                    me.disconnectRuntime();
+                }
+
+                // 连接到blob归属的同一个runtime.
+                me.connectRuntime( blob.ruid, function() {
+                    me.exec('init');
+                });
+
+                me._blob = blob;
+                opts.fileVal = key || opts.fileVal;
+                opts.filename = filename || opts.filename;
+            },
+
+            // 添加其他字段
+            append: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._formData, key );
+                } else {
+                    this._formData[ key ] = value;
+                }
+            },
+
+            setRequestHeader: function( key, value ) {
+                if ( typeof key === 'object' ) {
+                    $.extend( this._headers, key );
+                } else {
+                    this._headers[ key ] = value;
+                }
+            },
+
+            send: function( method ) {
+                this.exec( 'send', method );
+                this._timeout();
+            },
+
+            abort: function() {
+                clearTimeout( this._timer );
+                return this.exec('abort');
+            },
+
+            destroy: function() {
+                this.trigger('destroy');
+                this.off();
+                this.exec('destroy');
+                this.disconnectRuntime();
+            },
+
+            getResponse: function() {
+                return this.exec('getResponse');
+            },
+
+            getResponseAsJson: function() {
+                return this.exec('getResponseAsJson');
+            },
+
+            getStatus: function() {
+                return this.exec('getStatus');
+            },
+
+            _timeout: function() {
+                var me = this,
+                    duration = me.options.timeout;
+
+                if ( !duration ) {
+                    return;
+                }
+
+                clearTimeout( me._timer );
+                me._timer = setTimeout(function() {
+                    me.abort();
+                    me.trigger( 'error', 'timeout' );
+                }, duration );
+            }
+
+        });
+
+        // 让Transport具备事件功能。
+        Mediator.installTo( Transport.prototype );
+
+        return Transport;
+    });
+    /**
+     * @fileOverview 负责文件上传相关。
+     */
+    define('widgets/upload',[
+        'base',
+        'uploader',
+        'file',
+        'lib/transport',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile, Transport ) {
+
+        var $ = Base.$,
+            isPromise = Base.isPromise,
+            Status = WUFile.Status;
+
+        // 添加默认配置项
+        $.extend( Uploader.options, {
+
+
+            /**
+             * @property {Boolean} [prepareNextFile=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否允许在文件传输时提前把下一个文件准备好。
+             * 对于一个文件的准备工作比较耗时,比如图片压缩,md5序列化。
+             * 如果能提前在当前文件传输期处理,可以节省总体耗时。
+             */
+            prepareNextFile: false,
+
+            /**
+             * @property {Boolean} [chunked=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否要分片处理大文件上传。
+             */
+            chunked: false,
+
+            /**
+             * @property {Boolean} [chunkSize=5242880]
+             * @namespace options
+             * @for Uploader
+             * @description 如果要分片,分多大一片? 默认大小为5M.
+             */
+            chunkSize: 5 * 1024 * 1024,
+
+            /**
+             * @property {Boolean} [chunkRetry=2]
+             * @namespace options
+             * @for Uploader
+             * @description 如果某个分片由于网络问题出错,允许自动重传多少次?
+             */
+            chunkRetry: 2,
+
+            /**
+             * @property {Boolean} [threads=3]
+             * @namespace options
+             * @for Uploader
+             * @description 上传并发数。允许同时最大上传进程数。
+             */
+            threads: 3,
+
+
+            /**
+             * @property {Object} [formData={}]
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传请求的参数表,每次发送都会发送此对象中的参数。
+             */
+            formData: {}
+
+            /**
+             * @property {Object} [fileVal='file']
+             * @namespace options
+             * @for Uploader
+             * @description 设置文件上传域的name。
+             */
+
+            /**
+             * @property {Object} [method='POST']
+             * @namespace options
+             * @for Uploader
+             * @description 文件上传方式,`POST`或者`GET`。
+             */
+
+            /**
+             * @property {Object} [sendAsBinary=false]
+             * @namespace options
+             * @for Uploader
+             * @description 是否已二进制的流的方式发送文件,这样整个上传内容`php://input`都为文件内容,
+             * 其他参数在$_GET数组中。
+             */
+        });
+
+        // 负责将文件切片。
+        function CuteFile( file, chunkSize ) {
+            var pending = [],
+                blob = file.source,
+                total = blob.size,
+                chunks = chunkSize ? Math.ceil( total / chunkSize ) : 1,
+                start = 0,
+                index = 0,
+                len, api;
+
+            api = {
+                file: file,
+
+                has: function() {
+                    return !!pending.length;
+                },
+
+                shift: function() {
+                    return pending.shift();
+                },
+
+                unshift: function( block ) {
+                    pending.unshift( block );
+                }
+            };
+
+            while ( index < chunks ) {
+                len = Math.min( chunkSize, total - start );
+
+                pending.push({
+                    file: file,
+                    start: start,
+                    end: chunkSize ? (start + len) : total,
+                    total: total,
+                    chunks: chunks,
+                    chunk: index++,
+                    cuted: api
+                });
+                start += len;
+            }
+
+            file.blocks = pending.concat();
+            file.remaning = pending.length;
+
+            return api;
+        }
+
+        Uploader.register({
+            name: 'upload',
+
+            init: function() {
+                var owner = this.owner,
+                    me = this;
+
+                this.runing = false;
+                this.progress = false;
+
+                owner
+                    .on( 'startUpload', function() {
+                        me.progress = true;
+                    })
+                    .on( 'uploadFinished', function() {
+                        me.progress = false;
+                    });
+
+                // 记录当前正在传的数据,跟threads相关
+                this.pool = [];
+
+                // 缓存分好片的文件。
+                this.stack = [];
+
+                // 缓存即将上传的文件。
+                this.pending = [];
+
+                // 跟踪还有多少分片在上传中但是没有完成上传。
+                this.remaning = 0;
+                this.__tick = Base.bindFn( this._tick, this );
+
+                owner.on( 'uploadComplete', function( file ) {
+
+                    // 把其他块取消了。
+                    file.blocks && $.each( file.blocks, function( _, v ) {
+                        v.transport && (v.transport.abort(), v.transport.destroy());
+                        delete v.transport;
+                    });
+
+                    delete file.blocks;
+                    delete file.remaning;
+                });
+            },
+
+            reset: function() {
+                this.request( 'stop-upload', true );
+                this.runing = false;
+                this.pool = [];
+                this.stack = [];
+                this.pending = [];
+                this.remaning = 0;
+                this._trigged = false;
+                this._promise = null;
+            },
+
+            /**
+             * @event startUpload
+             * @description 当开始上传流程时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 开始上传。此方法可以从初始状态调用开始上传流程,也可以从暂停状态调用,继续上传流程。
+             *
+             * 可以指定开始某一个文件。
+             * @grammar upload() => undefined
+             * @grammar upload( file | fileId) => undefined
+             * @method upload
+             * @for  Uploader
+             */
+            startUpload: function(file) {
+                var me = this;
+
+                // 移出invalid的文件
+                $.each( me.request( 'get-files', Status.INVALID ), function() {
+                    me.request( 'remove-file', this );
+                });
+
+                // 如果指定了开始某个文件,则只开始指定文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        $.each( me.pool, function( _, v ) {
+
+                            // 之前暂停过。
+                            if (v.file !== file) {
+                                return;
+                            }
+
+                            v.transport && v.transport.send();
+                        });
+
+                        file.setStatus( Status.QUEUED );
+                    } else if (file.getStatus() === Status.PROGRESS) {
+                        return;
+                    } else {
+                        file.setStatus( Status.QUEUED );
+                    }
+                } else {
+                    $.each( me.request( 'get-files', [ Status.INITED ] ), function() {
+                        this.setStatus( Status.QUEUED );
+                    });
+                }
+
+                if ( me.runing ) {
+                    return;
+                }
+
+                me.runing = true;
+
+                // 如果有暂停的,则续传
+                $.each( me.pool, function( _, v ) {
+                    var file = v.file;
+
+                    if ( file.getStatus() === Status.INTERRUPT ) {
+                        file.setStatus( Status.PROGRESS );
+                        me._trigged = false;
+                        v.transport && v.transport.send();
+                    }
+                });
+
+                file || $.each( me.request( 'get-files',
+                        Status.INTERRUPT ), function() {
+                    this.setStatus( Status.PROGRESS );
+                });
+
+                me._trigged = false;
+                Base.nextTick( me.__tick );
+                me.owner.trigger('startUpload');
+            },
+
+            /**
+             * @event stopUpload
+             * @description 当开始上传流程暂停时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * 暂停上传。第一个参数为是否中断上传当前正在上传的文件。
+             *
+             * 如果第一个参数是文件,则只暂停指定文件。
+             * @grammar stop() => undefined
+             * @grammar stop( true ) => undefined
+             * @grammar stop( file ) => undefined
+             * @method stop
+             * @for  Uploader
+             */
+            stopUpload: function( file, interrupt ) {
+                var me = this;
+
+                if (file === true) {
+                    interrupt = file;
+                    file = null;
+                }
+
+                if ( me.runing === false ) {
+                    return;
+                }
+
+                // 如果只是暂停某个文件。
+                if ( file ) {
+                    file = file.id ? file : me.request( 'get-file', file );
+
+                    if ( file.getStatus() !== Status.PROGRESS &&
+                            file.getStatus() !== Status.QUEUED ) {
+                        return;
+                    }
+
+                    file.setStatus( Status.INTERRUPT );
+                    $.each( me.pool, function( _, v ) {
+
+                        // 只 abort 指定的文件。
+                        if (v.file !== file) {
+                            return;
+                        }
+
+                        v.transport && v.transport.abort();
+                        me._putback(v);
+                        me._popBlock(v);
+                    });
+
+                    return Base.nextTick( me.__tick );
+                }
+
+                me.runing = false;
+
+                if (this._promise && this._promise.file) {
+                    this._promise.file.setStatus( Status.INTERRUPT );
+                }
+
+                interrupt && $.each( me.pool, function( _, v ) {
+                    v.transport && v.transport.abort();
+                    v.file.setStatus( Status.INTERRUPT );
+                });
+
+                me.owner.trigger('stopUpload');
+            },
+
+            /**
+             * @method cancelFile
+             * @grammar cancelFile( file ) => undefined
+             * @grammar cancelFile( id ) => undefined
+             * @param {File|id} file File对象或这File对象的id
+             * @description 标记文件状态为已取消, 同时将中断文件传输。
+             * @for  Uploader
+             * @example
+             *
+             * $li.on('click', '.remove-this', function() {
+             *     uploader.cancelFile( file );
+             * })
+             */
+            cancelFile: function( file ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                file.setStatus( Status.CANCELLED );
+                this.owner.trigger( 'fileDequeued', file );
+            },
+
+            /**
+             * 判断`Uplaode`r是否正在上传中。
+             * @grammar isInProgress() => Boolean
+             * @method isInProgress
+             * @for  Uploader
+             */
+            isInProgress: function() {
+                return !!this.progress;
+            },
+
+            _getStats: function() {
+                return this.request('get-stats');
+            },
+
+            /**
+             * 掉过一个文件上传,直接标记指定文件为已上传状态。
+             * @grammar skipFile( file ) => undefined
+             * @method skipFile
+             * @for  Uploader
+             */
+            skipFile: function( file, status ) {
+                file = file.id ? file : this.request( 'get-file', file );
+
+                file.setStatus( status || Status.COMPLETE );
+                file.skipped = true;
+
+                // 如果正在上传。
+                file.blocks && $.each( file.blocks, function( _, v ) {
+                    var _tr = v.transport;
+
+                    if ( _tr ) {
+                        _tr.abort();
+                        _tr.destroy();
+                        delete v.transport;
+                    }
+                });
+
+                this.owner.trigger( 'uploadSkip', file );
+            },
+
+            /**
+             * @event uploadFinished
+             * @description 当所有文件上传结束时触发。
+             * @for  Uploader
+             */
+            _tick: function() {
+                var me = this,
+                    opts = me.options,
+                    fn, val;
+
+                // 上一个promise还没有结束,则等待完成后再执行。
+                if ( me._promise ) {
+                    return me._promise.always( me.__tick );
+                }
+
+                // 还有位置,且还有文件要处理的话。
+                if ( me.pool.length < opts.threads && (val = me._nextBlock()) ) {
+                    me._trigged = false;
+
+                    fn = function( val ) {
+                        me._promise = null;
+
+                        // 有可能是reject过来的,所以要检测val的类型。
+                        val && val.file && me._startSend( val );
+                        Base.nextTick( me.__tick );
+                    };
+
+                    me._promise = isPromise( val ) ? val.always( fn ) : fn( val );
+
+                // 没有要上传的了,且没有正在传输的了。
+                } else if ( !me.remaning && !me._getStats().numOfQueue &&
+                    !me._getStats().numofInterrupt ) {
+                    me.runing = false;
+
+                    me._trigged || Base.nextTick(function() {
+                        me.owner.trigger('uploadFinished');
+                    });
+                    me._trigged = true;
+                }
+            },
+
+            _putback: function(block) {
+                var idx;
+
+                block.cuted.unshift(block);
+                idx = this.stack.indexOf(block.cuted);
+
+                if (!~idx) {
+                    this.stack.unshift(block.cuted);
+                }
+            },
+
+            _getStack: function() {
+                var i = 0,
+                    act;
+
+                while ( (act = this.stack[ i++ ]) ) {
+                    if ( act.has() && act.file.getStatus() === Status.PROGRESS ) {
+                        return act;
+                    } else if (!act.has() ||
+                            act.file.getStatus() !== Status.PROGRESS &&
+                            act.file.getStatus() !== Status.INTERRUPT ) {
+
+                        // 把已经处理完了的,或者,状态为非 progress(上传中)、
+                        // interupt(暂停中) 的移除。
+                        this.stack.splice( --i, 1 );
+                    }
+                }
+
+                return null;
+            },
+
+            _nextBlock: function() {
+                var me = this,
+                    opts = me.options,
+                    act, next, done, preparing;
+
+                // 如果当前文件还有没有需要传输的,则直接返回剩下的。
+                if ( (act = this._getStack()) ) {
+
+                    // 是否提前准备下一个文件
+                    if ( opts.prepareNextFile && !me.pending.length ) {
+                        me._prepareNextFile();
+                    }
+
+                    return act.shift();
+
+                // 否则,如果正在运行,则准备下一个文件,并等待完成后返回下个分片。
+                } else if ( me.runing ) {
+
+                    // 如果缓存中有,则直接在缓存中取,没有则去queue中取。
+                    if ( !me.pending.length && me._getStats().numOfQueue ) {
+                        me._prepareNextFile();
+                    }
+
+                    next = me.pending.shift();
+                    done = function( file ) {
+                        if ( !file ) {
+                            return null;
+                        }
+
+                        act = CuteFile( file, opts.chunked ? opts.chunkSize : 0 );
+                        me.stack.push(act);
+                        return act.shift();
+                    };
+
+                    // 文件可能还在prepare中,也有可能已经完全准备好了。
+                    if ( isPromise( next) ) {
+                        preparing = next.file;
+                        next = next[ next.pipe ? 'pipe' : 'then' ]( done );
+                        next.file = preparing;
+                        return next;
+                    }
+
+                    return done( next );
+                }
+            },
+
+
+            /**
+             * @event uploadStart
+             * @param {File} file File对象
+             * @description 某个文件开始上传前触发,一个文件只会触发一次。
+             * @for  Uploader
+             */
+            _prepareNextFile: function() {
+                var me = this,
+                    file = me.request('fetch-file'),
+                    pending = me.pending,
+                    promise;
+
+                if ( file ) {
+                    promise = me.request( 'before-send-file', file, function() {
+
+                        // 有可能文件被skip掉了。文件被skip掉后,状态坑定不是Queued.
+                        if ( file.getStatus() === Status.PROGRESS ||
+                            file.getStatus() === Status.INTERRUPT ) {
+                            return file;
+                        }
+
+                        return me._finishFile( file );
+                    });
+
+                    me.owner.trigger( 'uploadStart', file );
+                    file.setStatus( Status.PROGRESS );
+
+                    promise.file = file;
+
+                    // 如果还在pending中,则替换成文件本身。
+                    promise.done(function() {
+                        var idx = $.inArray( promise, pending );
+
+                        ~idx && pending.splice( idx, 1, file );
+                    });
+
+                    // befeore-send-file的钩子就有错误发生。
+                    promise.fail(function( reason ) {
+                        file.setStatus( Status.ERROR, reason );
+                        me.owner.trigger( 'uploadError', file, reason );
+                        me.owner.trigger( 'uploadComplete', file );
+                    });
+
+                    pending.push( promise );
+                }
+            },
+
+            // 让出位置了,可以让其他分片开始上传
+            _popBlock: function( block ) {
+                var idx = $.inArray( block, this.pool );
+
+                this.pool.splice( idx, 1 );
+                block.file.remaning--;
+                this.remaning--;
+            },
+
+            // 开始上传,可以被掉过。如果promise被reject了,则表示跳过此分片。
+            _startSend: function( block ) {
+                var me = this,
+                    file = block.file,
+                    promise;
+
+                // 有可能在 before-send-file 的 promise 期间改变了文件状态。
+                // 如:暂停,取消
+                // 我们不能中断 promise, 但是可以在 promise 完后,不做上传操作。
+                if ( file.getStatus() !== Status.PROGRESS ) {
+
+                    // 如果是中断,则还需要放回去。
+                    if (file.getStatus() === Status.INTERRUPT) {
+                        me._putback(block);
+                    }
+
+                    return;
+                }
+
+                me.pool.push( block );
+                me.remaning++;
+
+                // 如果没有分片,则直接使用原始的。
+                // 不会丢失content-type信息。
+                block.blob = block.chunks === 1 ? file.source :
+                        file.source.slice( block.start, block.end );
+
+                // hook, 每个分片发送之前可能要做些异步的事情。
+                promise = me.request( 'before-send', block, function() {
+
+                    // 有可能文件已经上传出错了,所以不需要再传输了。
+                    if ( file.getStatus() === Status.PROGRESS ) {
+                        me._doSend( block );
+                    } else {
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+
+                // 如果为fail了,则跳过此分片。
+                promise.fail(function() {
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file ).always(function() {
+                            block.percentage = 1;
+                            me._popBlock( block );
+                            me.owner.trigger( 'uploadComplete', file );
+                            Base.nextTick( me.__tick );
+                        });
+                    } else {
+                        block.percentage = 1;
+                        me._popBlock( block );
+                        Base.nextTick( me.__tick );
+                    }
+                });
+            },
+
+
+            /**
+             * @event uploadBeforeSend
+             * @param {Object} object
+             * @param {Object} data 默认的上传参数,可以扩展此对象来控制上传参数。
+             * @param {Object} headers 可以扩展此对象来控制上传头部。
+             * @description 当某个文件的分块在发送前触发,主要用来询问是否要添加附带参数,大文件在开起分片上传的前提下此事件可能会触发多次。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadAccept
+             * @param {Object} object
+             * @param {Object} ret 服务端的返回数据,json格式,如果服务端不是json格式,从ret._raw中取数据,自行解析。
+             * @description 当某个文件上传到服务端响应后,会派送此事件来询问服务端响应是否有效。如果此事件handler返回值为`false`, 则此文件将派送`server`类型的`uploadError`事件。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadProgress
+             * @param {File} file File对象
+             * @param {Number} percentage 上传进度
+             * @description 上传过程中触发,携带上传进度。
+             * @for  Uploader
+             */
+
+
+            /**
+             * @event uploadError
+             * @param {File} file File对象
+             * @param {String} reason 出错的code
+             * @description 当文件上传出错时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadSuccess
+             * @param {File} file File对象
+             * @param {Object} response 服务端返回的数据
+             * @description 当文件上传成功时触发。
+             * @for  Uploader
+             */
+
+            /**
+             * @event uploadComplete
+             * @param {File} [file] File对象
+             * @description 不管成功或者失败,文件上传完成时触发。
+             * @for  Uploader
+             */
+
+            // 做上传操作。
+            _doSend: function( block ) {
+                var me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    file = block.file,
+                    tr = new Transport( opts ),
+                    data = $.extend({}, opts.formData ),
+                    headers = $.extend({}, opts.headers ),
+                    requestAccept, ret;
+
+                block.transport = tr;
+
+                tr.on( 'destroy', function() {
+                    delete block.transport;
+                    me._popBlock( block );
+                    Base.nextTick( me.__tick );
+                });
+
+                // 广播上传进度。以文件为单位。
+                tr.on( 'progress', function( percentage ) {
+                    var totalPercent = 0,
+                        uploaded = 0;
+
+                    // 可能没有abort掉,progress还是执行进来了。
+                    // if ( !file.blocks ) {
+                    //     return;
+                    // }
+
+                    totalPercent = block.percentage = percentage;
+
+                    if ( block.chunks > 1 ) {    // 计算文件的整体速度。
+                        $.each( file.blocks, function( _, v ) {
+                            uploaded += (v.percentage || 0) * (v.end - v.start);
+                        });
+
+                        totalPercent = uploaded / file.size;
+                    }
+
+                    owner.trigger( 'uploadProgress', file, totalPercent || 0 );
+                });
+
+                // 用来询问,是否返回的结果是有错误的。
+                requestAccept = function( reject ) {
+                    var fn;
+
+                    ret = tr.getResponseAsJson() || {};
+                    ret._raw = tr.getResponse();
+                    fn = function( value ) {
+                        reject = value;
+                    };
+
+                    // 服务端响应了,不代表成功了,询问是否响应正确。
+                    if ( !owner.trigger( 'uploadAccept', block, ret, fn ) ) {
+                        reject = reject || 'server';
+                    }
+
+                    return reject;
+                };
+
+                // 尝试重试,然后广播文件上传出错。
+                tr.on( 'error', function( type, flag ) {
+                    block.retried = block.retried || 0;
+
+                    // 自动重试
+                    if ( block.chunks > 1 && ~'http,abort'.indexOf( type ) &&
+                            block.retried < opts.chunkRetry ) {
+
+                        block.retried++;
+                        tr.send();
+
+                    } else {
+
+                        // http status 500 ~ 600
+                        if ( !flag && type === 'server' ) {
+                            type = requestAccept( type );
+                        }
+
+                        file.setStatus( Status.ERROR, type );
+                        owner.trigger( 'uploadError', file, type );
+                        owner.trigger( 'uploadComplete', file );
+                    }
+                });
+
+                // 上传成功
+                tr.on( 'load', function() {
+                    var reason;
+
+                    // 如果非预期,转向上传出错。
+                    if ( (reason = requestAccept()) ) {
+                        tr.trigger( 'error', reason, true );
+                        return;
+                    }
+
+                    // 全部上传完成。
+                    if ( file.remaning === 1 ) {
+                        me._finishFile( file, ret );
+                    } else {
+                        tr.destroy();
+                    }
+                });
+
+                // 配置默认的上传字段。
+                data = $.extend( data, {
+                    id: file.id,
+                    name: file.name,
+                    type: file.type,
+                    lastModifiedDate: file.lastModifiedDate,
+                    size: file.size
+                });
+
+                block.chunks > 1 && $.extend( data, {
+                    chunks: block.chunks,
+                    chunk: block.chunk
+                });
+
+                // 在发送之间可以添加字段什么的。。。
+                // 如果默认的字段不够使用,可以通过监听此事件来扩展
+                owner.trigger( 'uploadBeforeSend', block, data, headers );
+
+                // 开始发送。
+                tr.appendBlob( opts.fileVal, block.blob, file.name );
+                tr.append( data );
+                tr.setRequestHeader( headers );
+                tr.send();
+            },
+
+            // 完成上传。
+            _finishFile: function( file, ret, hds ) {
+                var owner = this.owner;
+
+                return owner
+                        .request( 'after-send-file', arguments, function() {
+                            file.setStatus( Status.COMPLETE );
+                            owner.trigger( 'uploadSuccess', file, ret, hds );
+                        })
+                        .fail(function( reason ) {
+
+                            // 如果外部已经标记为invalid什么的,不再改状态。
+                            if ( file.getStatus() === Status.PROGRESS ) {
+                                file.setStatus( Status.ERROR, reason );
+                            }
+
+                            owner.trigger( 'uploadError', file, reason );
+                        })
+                        .always(function() {
+                            owner.trigger( 'uploadComplete', file );
+                        });
+            }
+
+        });
+    });
+    /**
+     * @fileOverview 各种验证,包括文件总大小是否超出、单文件是否超出和文件是否重复。
+     */
+
+    define('widgets/validator',[
+        'base',
+        'uploader',
+        'file',
+        'widgets/widget'
+    ], function( Base, Uploader, WUFile ) {
+
+        var $ = Base.$,
+            validators = {},
+            api;
+
+        /**
+         * @event error
+         * @param {String} type 错误类型。
+         * @description 当validate不通过时,会以派送错误事件的形式通知调用者。通过`upload.on('error', handler)`可以捕获到此类错误,目前有以下错误会在特定的情况下派送错来。
+         *
+         * * `Q_EXCEED_NUM_LIMIT` 在设置了`fileNumLimit`且尝试给`uploader`添加的文件数量超出这个值时派送。
+         * * `Q_EXCEED_SIZE_LIMIT` 在设置了`Q_EXCEED_SIZE_LIMIT`且尝试给`uploader`添加的文件总大小超出这个值时派送。
+         * * `Q_TYPE_DENIED` 当文件类型不满足时触发。。
+         * @for  Uploader
+         */
+
+        // 暴露给外面的api
+        api = {
+
+            // 添加验证器
+            addValidator: function( type, cb ) {
+                validators[ type ] = cb;
+            },
+
+            // 移除验证器
+            removeValidator: function( type ) {
+                delete validators[ type ];
+            }
+        };
+
+        // 在Uploader初始化的时候启动Validators的初始化
+        Uploader.register({
+            name: 'validator',
+
+            init: function() {
+                var me = this;
+                Base.nextTick(function() {
+                    $.each( validators, function() {
+                        this.call( me.owner );
+                    });
+                });
+            }
+        });
+
+        /**
+         * @property {int} [fileNumLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总数量, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileNumLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileNumLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( count >= max && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_NUM_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return count >= max ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function() {
+                count++;
+            });
+
+            uploader.on( 'fileDequeued', function() {
+                count--;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+
+        /**
+         * @property {int} [fileSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证文件总大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                count = 0,
+                max = parseInt( opts.fileSizeLimit, 10 ),
+                flag = true;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var invalid = count + file.size > max;
+
+                if ( invalid && flag ) {
+                    flag = false;
+                    this.trigger( 'error', 'Q_EXCEED_SIZE_LIMIT', max, file );
+                    setTimeout(function() {
+                        flag = true;
+                    }, 1 );
+                }
+
+                return invalid ? false : true;
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                count += file.size;
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                count -= file.size;
+            });
+
+            uploader.on( 'reset', function() {
+                count = 0;
+            });
+        });
+
+        /**
+         * @property {int} [fileSingleSizeLimit=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 验证单个文件大小是否超出限制, 超出则不允许加入队列。
+         */
+        api.addValidator( 'fileSingleSizeLimit', function() {
+            var uploader = this,
+                opts = uploader.options,
+                max = opts.fileSingleSizeLimit;
+
+            if ( !max ) {
+                return;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+
+                if ( file.size > max ) {
+                    file.setStatus( WUFile.Status.INVALID, 'exceed_size' );
+                    this.trigger( 'error', 'F_EXCEED_SIZE', max, file );
+                    return false;
+                }
+
+            });
+
+        });
+
+        /**
+         * @property {Boolean} [duplicate=undefined]
+         * @namespace options
+         * @for Uploader
+         * @description 去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.
+         */
+        api.addValidator( 'duplicate', function() {
+            var uploader = this,
+                opts = uploader.options,
+                mapping = {};
+
+            if ( opts.duplicate ) {
+                return;
+            }
+
+            function hashString( str ) {
+                var hash = 0,
+                    i = 0,
+                    len = str.length,
+                    _char;
+
+                for ( ; i < len; i++ ) {
+                    _char = str.charCodeAt( i );
+                    hash = _char + (hash << 6) + (hash << 16) - hash;
+                }
+
+                return hash;
+            }
+
+            uploader.on( 'beforeFileQueued', function( file ) {
+                var hash = file.__hash || (file.__hash = hashString( file.name +
+                        file.size + file.lastModifiedDate ));
+
+                // 已经重复了
+                if ( mapping[ hash ] ) {
+                    this.trigger( 'error', 'F_DUPLICATE', file );
+                    return false;
+                }
+            });
+
+            uploader.on( 'fileQueued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (mapping[ hash ] = true);
+            });
+
+            uploader.on( 'fileDequeued', function( file ) {
+                var hash = file.__hash;
+
+                hash && (delete mapping[ hash ]);
+            });
+
+            uploader.on( 'reset', function() {
+                mapping = {};
+            });
+        });
+
+        return api;
+    });
+
+    /**
+     * @fileOverview Runtime管理器,负责Runtime的选择, 连接
+     */
+    define('runtime/compbase',[],function() {
+
+        function CompBase( owner, runtime ) {
+
+            this.owner = owner;
+            this.options = owner.options;
+
+            this.getRuntime = function() {
+                return runtime;
+            };
+
+            this.getRuid = function() {
+                return runtime.uid;
+            };
+
+            this.trigger = function() {
+                return owner.trigger.apply( owner, arguments );
+            };
+        }
+
+        return CompBase;
+    });
+    /**
+     * @fileOverview Html5Runtime
+     */
+    define('runtime/html5/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var type = 'html5',
+            components = {};
+
+        function Html5Runtime() {
+            var pool = {},
+                me = this,
+                destroy = this.destroy;
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                if ( components[ comp ] ) {
+                    instance = pool[ uid ] = pool[ uid ] ||
+                            new components[ comp ]( client, me );
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+            };
+
+            me.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+        }
+
+        Base.inherits( Runtime, {
+            constructor: Html5Runtime,
+
+            // 不需要连接其他程序,直接执行callback
+            init: function() {
+                var me = this;
+                setTimeout(function() {
+                    me.trigger('ready');
+                }, 1 );
+            }
+
+        });
+
+        // 注册Components
+        Html5Runtime.register = function( name, component ) {
+            var klass = components[ name ] = Base.inherits( CompBase, component );
+            return klass;
+        };
+
+        // 注册html5运行时。
+        // 只有在支持的前提下注册。
+        if ( window.Blob && window.FileReader && window.DataView ) {
+            Runtime.addRuntime( type, Html5Runtime );
+        }
+
+        return Html5Runtime;
+    });
+    /**
+     * @fileOverview Blob Html实现
+     */
+    define('runtime/html5/blob',[
+        'runtime/html5/runtime',
+        'lib/blob'
+    ], function( Html5Runtime, Blob ) {
+
+        return Html5Runtime.register( 'Blob', {
+            slice: function( start, end ) {
+                var blob = this.owner.source,
+                    slice = blob.slice || blob.webkitSlice || blob.mozSlice;
+
+                blob = slice.call( blob, start, end );
+
+                return new Blob( this.getRuid(), blob );
+            }
+        });
+    });
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/dnd',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        var $ = Base.$,
+            prefix = 'webuploader-dnd-';
+
+        return Html5Runtime.register( 'DragAndDrop', {
+            init: function() {
+                var elem = this.elem = this.options.container;
+
+                this.dragEnterHandler = Base.bindFn( this._dragEnterHandler, this );
+                this.dragOverHandler = Base.bindFn( this._dragOverHandler, this );
+                this.dragLeaveHandler = Base.bindFn( this._dragLeaveHandler, this );
+                this.dropHandler = Base.bindFn( this._dropHandler, this );
+                this.dndOver = false;
+
+                elem.on( 'dragenter', this.dragEnterHandler );
+                elem.on( 'dragover', this.dragOverHandler );
+                elem.on( 'dragleave', this.dragLeaveHandler );
+                elem.on( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).on( 'dragover', this.dragOverHandler );
+                    $( document ).on( 'drop', this.dropHandler );
+                }
+            },
+
+            _dragEnterHandler: function( e ) {
+                var me = this,
+                    denied = me._denied || false,
+                    items;
+
+                e = e.originalEvent || e;
+
+                if ( !me.dndOver ) {
+                    me.dndOver = true;
+
+                    // 注意只有 chrome 支持。
+                    items = e.dataTransfer.items;
+
+                    if ( items && items.length ) {
+                        me._denied = denied = !me.trigger( 'accept', items );
+                    }
+
+                    me.elem.addClass( prefix + 'over' );
+                    me.elem[ denied ? 'addClass' :
+                            'removeClass' ]( prefix + 'denied' );
+                }
+
+                e.dataTransfer.dropEffect = denied ? 'none' : 'copy';
+
+                return false;
+            },
+
+            _dragOverHandler: function( e ) {
+                // 只处理框内的。
+                var parentElem = this.elem.parent().get( 0 );
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                clearTimeout( this._leaveTimer );
+                this._dragEnterHandler.call( this, e );
+
+                return false;
+            },
+
+            _dragLeaveHandler: function() {
+                var me = this,
+                    handler;
+
+                handler = function() {
+                    me.dndOver = false;
+                    me.elem.removeClass( prefix + 'over ' + prefix + 'denied' );
+                };
+
+                clearTimeout( me._leaveTimer );
+                me._leaveTimer = setTimeout( handler, 100 );
+                return false;
+            },
+
+            _dropHandler: function( e ) {
+                var me = this,
+                    ruid = me.getRuid(),
+                    parentElem = me.elem.parent().get( 0 ),
+                    dataTransfer, data;
+
+                // 只处理框内的。
+                if ( parentElem && !$.contains( parentElem, e.currentTarget ) ) {
+                    return false;
+                }
+
+                e = e.originalEvent || e;
+                dataTransfer = e.dataTransfer;
+
+                // 如果是页面内拖拽,还不能处理,不阻止事件。
+                // 此处 ie11 下会报参数错误,
+                try {
+                    data = dataTransfer.getData('text/html');
+                } catch( err ) {
+                }
+
+                if ( data ) {
+                    return;
+                }
+
+                me._getTansferFiles( dataTransfer, function( results ) {
+                    me.trigger( 'drop', $.map( results, function( file ) {
+                        return new File( ruid, file );
+                    }) );
+                });
+
+                me.dndOver = false;
+                me.elem.removeClass( prefix + 'over' );
+                return false;
+            },
+
+            // 如果传入 callback 则去查看文件夹,否则只管当前文件夹。
+            _getTansferFiles: function( dataTransfer, callback ) {
+                var results  = [],
+                    promises = [],
+                    items, files, file, item, i, len, canAccessFolder;
+
+                items = dataTransfer.items;
+                files = dataTransfer.files;
+
+                canAccessFolder = !!(items && items[ 0 ].webkitGetAsEntry);
+
+                for ( i = 0, len = files.length; i < len; i++ ) {
+                    file = files[ i ];
+                    item = items && items[ i ];
+
+                    if ( canAccessFolder && item.webkitGetAsEntry().isDirectory ) {
+
+                        promises.push( this._traverseDirectoryTree(
+                                item.webkitGetAsEntry(), results ) );
+                    } else {
+                        results.push( file );
+                    }
+                }
+
+                Base.when.apply( Base, promises ).done(function() {
+
+                    if ( !results.length ) {
+                        return;
+                    }
+
+                    callback( results );
+                });
+            },
+
+            _traverseDirectoryTree: function( entry, results ) {
+                var deferred = Base.Deferred(),
+                    me = this;
+
+                if ( entry.isFile ) {
+                    entry.file(function( file ) {
+                        results.push( file );
+                        deferred.resolve();
+                    });
+                } else if ( entry.isDirectory ) {
+                    entry.createReader().readEntries(function( entries ) {
+                        var len = entries.length,
+                            promises = [],
+                            arr = [],    // 为了保证顺序。
+                            i;
+
+                        for ( i = 0; i < len; i++ ) {
+                            promises.push( me._traverseDirectoryTree(
+                                    entries[ i ], arr ) );
+                        }
+
+                        Base.when.apply( Base, promises ).then(function() {
+                            results.push.apply( results, arr );
+                            deferred.resolve();
+                        }, deferred.reject );
+                    });
+                }
+
+                return deferred.promise();
+            },
+
+            destroy: function() {
+                var elem = this.elem;
+
+                // 还没 init 就调用 destroy
+                if (!elem) {
+                    return;
+                }
+
+                elem.off( 'dragenter', this.dragEnterHandler );
+                elem.off( 'dragover', this.dragOverHandler );
+                elem.off( 'dragleave', this.dragLeaveHandler );
+                elem.off( 'drop', this.dropHandler );
+
+                if ( this.options.disableGlobalDnd ) {
+                    $( document ).off( 'dragover', this.dragOverHandler );
+                    $( document ).off( 'drop', this.dropHandler );
+                }
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePaste
+     */
+    define('runtime/html5/filepaste',[
+        'base',
+        'runtime/html5/runtime',
+        'lib/file'
+    ], function( Base, Html5Runtime, File ) {
+
+        return Html5Runtime.register( 'FilePaste', {
+            init: function() {
+                var opts = this.options,
+                    elem = this.elem = opts.container,
+                    accept = '.*',
+                    arr, i, len, item;
+
+                // accetp的mimeTypes中生成匹配正则。
+                if ( opts.accept ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        item = opts.accept[ i ].mimeTypes;
+                        item && arr.push( item );
+                    }
+
+                    if ( arr.length ) {
+                        accept = arr.join(',');
+                        accept = accept.replace( /,/g, '|' ).replace( /\*/g, '.*' );
+                    }
+                }
+                this.accept = accept = new RegExp( accept, 'i' );
+                this.hander = Base.bindFn( this._pasteHander, this );
+                elem.on( 'paste', this.hander );
+            },
+
+            _pasteHander: function( e ) {
+                var allowed = [],
+                    ruid = this.getRuid(),
+                    items, item, blob, i, len;
+
+                e = e.originalEvent || e;
+                items = e.clipboardData.items;
+
+                for ( i = 0, len = items.length; i < len; i++ ) {
+                    item = items[ i ];
+
+                    if ( item.kind !== 'file' || !(blob = item.getAsFile()) ) {
+                        continue;
+                    }
+
+                    allowed.push( new File( ruid, blob ) );
+                }
+
+                if ( allowed.length ) {
+                    // 不阻止非文件粘贴(文字粘贴)的事件冒泡
+                    e.preventDefault();
+                    e.stopPropagation();
+                    this.trigger( 'paste', allowed );
+                }
+            },
+
+            destroy: function() {
+                this.elem.off( 'paste', this.hander );
+            }
+        });
+    });
+
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/html5/filepicker',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var $ = Base.$;
+
+        return Html5Runtime.register( 'FilePicker', {
+            init: function() {
+                var container = this.getRuntime().getContainer(),
+                    me = this,
+                    owner = me.owner,
+                    opts = me.options,
+                    label = this.label = $( document.createElement('label') ),
+                    input =  this.input = $( document.createElement('input') ),
+                    arr, i, len, mouseHandler;
+
+                input.attr( 'type', 'file' );
+                input.attr( 'name', opts.name );
+                input.addClass('webuploader-element-invisible');
+
+                label.on( 'click', function() {
+                    input.trigger('click');
+                });
+
+                label.css({
+                    opacity: 0,
+                    width: '100%',
+                    height: '100%',
+                    display: 'block',
+                    cursor: 'pointer',
+                    background: '#ffffff'
+                });
+
+                if ( opts.multiple ) {
+                    input.attr( 'multiple', 'multiple' );
+                }
+
+                // @todo Firefox不支持单独指定后缀
+                if ( opts.accept && opts.accept.length > 0 ) {
+                    arr = [];
+
+                    for ( i = 0, len = opts.accept.length; i < len; i++ ) {
+                        arr.push( opts.accept[ i ].mimeTypes );
+                    }
+
+                    input.attr( 'accept', arr.join(',') );
+                }
+
+                container.append( input );
+                container.append( label );
+
+                mouseHandler = function( e ) {
+                    owner.trigger( e.type );
+                };
+
+                input.on( 'change', function( e ) {
+                    var fn = arguments.callee,
+                        clone;
+
+                    me.files = e.target.files;
+
+                    // reset input
+                    clone = this.cloneNode( true );
+                    clone.value = null;
+                    this.parentNode.replaceChild( clone, this );
+
+                    input.off();
+                    input = $( clone ).on( 'change', fn )
+                            .on( 'mouseenter mouseleave', mouseHandler );
+
+                    owner.trigger('change');
+                });
+
+                label.on( 'mouseenter mouseleave', mouseHandler );
+
+            },
+
+
+            getFiles: function() {
+                return this.files;
+            },
+
+            destroy: function() {
+                this.input.off();
+                this.label.off();
+            }
+        });
+    });
+    /**
+     * @fileOverview Transport
+     * @todo 支持chunked传输,优势:
+     * 可以将大文件分成小块,挨个传输,可以提高大文件成功率,当失败的时候,也只需要重传那小部分,
+     * 而不需要重头再传一次。另外断点续传也需要用chunked方式。
+     */
+    define('runtime/html5/transport',[
+        'base',
+        'runtime/html5/runtime'
+    ], function( Base, Html5Runtime ) {
+
+        var noop = Base.noop,
+            $ = Base.$;
+
+        return Html5Runtime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    formData, binary, fr;
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.getSource();
+                } else {
+                    formData = new FormData();
+                    $.each( owner._formData, function( k, v ) {
+                        formData.append( k, v );
+                    });
+
+                    formData.append( opts.fileVal, blob.getSource(),
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                if ( opts.withCredentials && 'withCredentials' in xhr ) {
+                    xhr.open( opts.method, server, true );
+                    xhr.withCredentials = true;
+                } else {
+                    xhr.open( opts.method, server );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+
+                if ( binary ) {
+                    // 强制设置成 content-type 为文件流。
+                    xhr.overrideMimeType &&
+                            xhr.overrideMimeType('application/octet-stream');
+
+                    // android直接发送blob会导致服务端接收到的是空文件。
+                    // bug详情。
+                    // https://code.google.com/p/android/issues/detail?id=39882
+                    // 所以先用fileReader读取出来再通过arraybuffer的方式发送。
+                    if ( Base.os.android ) {
+                        fr = new FileReader();
+
+                        fr.onload = function() {
+                            xhr.send( this.result );
+                            fr = fr.onload = null;
+                        };
+
+                        fr.readAsArrayBuffer( binary );
+                    } else {
+                        xhr.send( binary );
+                    }
+                } else {
+                    xhr.send( formData );
+                }
+            },
+
+            getResponse: function() {
+                return this._response;
+            },
+
+            getResponseAsJson: function() {
+                return this._parseJson( this._response );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    xhr.abort();
+
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new XMLHttpRequest(),
+                    opts = this.options;
+
+                if ( opts.withCredentials && !('withCredentials' in xhr) &&
+                        typeof XDomainRequest !== 'undefined' ) {
+                    xhr = new XDomainRequest();
+                }
+
+                xhr.upload.onprogress = function( e ) {
+                    var percentage = 0;
+
+                    if ( e.lengthComputable ) {
+                        percentage = e.loaded / e.total;
+                    }
+
+                    return me.trigger( 'progress', percentage );
+                };
+
+                xhr.onreadystatechange = function() {
+
+                    if ( xhr.readyState !== 4 ) {
+                        return;
+                    }
+
+                    xhr.upload.onprogress = noop;
+                    xhr.onreadystatechange = noop;
+                    me._xhr = null;
+                    me._status = xhr.status;
+
+                    if ( xhr.status >= 200 && xhr.status < 300 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger('load');
+                    } else if ( xhr.status >= 500 && xhr.status < 600 ) {
+                        me._response = xhr.responseText;
+                        return me.trigger( 'error', 'server' );
+                    }
+
+
+                    return me.trigger( 'error', me._status ? 'http' : 'abort' );
+                };
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.setRequestHeader( key, val );
+                });
+            },
+
+            _parseJson: function( str ) {
+                var json;
+
+                try {
+                    json = JSON.parse( str );
+                } catch ( ex ) {
+                    json = {};
+                }
+
+                return json;
+            }
+        });
+    });
+    /**
+     * @fileOverview FlashRuntime
+     */
+    define('runtime/flash/runtime',[
+        'base',
+        'runtime/runtime',
+        'runtime/compbase'
+    ], function( Base, Runtime, CompBase ) {
+
+        var $ = Base.$,
+            type = 'flash',
+            components = {};
+
+
+        function getFlashVersion() {
+            var version;
+
+            try {
+                version = navigator.plugins[ 'Shockwave Flash' ];
+                version = version.description;
+            } catch ( ex ) {
+                try {
+                    version = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
+                            .GetVariable('$version');
+                } catch ( ex2 ) {
+                    version = '0.0';
+                }
+            }
+            version = version.match( /\d+/g );
+            return parseFloat( version[ 0 ] + '.' + version[ 1 ], 10 );
+        }
+
+        function FlashRuntime() {
+            var pool = {},
+                clients = {},
+                destroy = this.destroy,
+                me = this,
+                jsreciver = Base.guid('webuploader_');
+
+            Runtime.apply( me, arguments );
+            me.type = type;
+
+
+            // 这个方法的调用者,实际上是RuntimeClient
+            me.exec = function( comp, fn/*, args...*/ ) {
+                var client = this,
+                    uid = client.uid,
+                    args = Base.slice( arguments, 2 ),
+                    instance;
+
+                clients[ uid ] = client;
+
+                if ( components[ comp ] ) {
+                    if ( !pool[ uid ] ) {
+                        pool[ uid ] = new components[ comp ]( client, me );
+                    }
+
+                    instance = pool[ uid ];
+
+                    if ( instance[ fn ] ) {
+                        return instance[ fn ].apply( instance, args );
+                    }
+                }
+
+                return me.flashExec.apply( client, arguments );
+            };
+
+            function handler( evt, obj ) {
+                var type = evt.type || evt,
+                    parts, uid;
+
+                parts = type.split('::');
+                uid = parts[ 0 ];
+                type = parts[ 1 ];
+
+                // console.log.apply( console, arguments );
+
+                if ( type === 'Ready' && uid === me.uid ) {
+                    me.trigger('ready');
+                } else if ( clients[ uid ] ) {
+                    clients[ uid ].trigger( type.toLowerCase(), evt, obj );
+                }
+
+                // Base.log( evt, obj );
+            }
+
+            // flash的接受器。
+            window[ jsreciver ] = function() {
+                var args = arguments;
+
+                // 为了能捕获得到。
+                setTimeout(function() {
+                    handler.apply( null, args );
+                }, 1 );
+            };
+
+            this.jsreciver = jsreciver;
+
+            this.destroy = function() {
+                // @todo 删除池子中的所有实例
+                return destroy && destroy.apply( this, arguments );
+            };
+
+            this.flashExec = function( comp, fn ) {
+                var flash = me.getFlash(),
+                    args = Base.slice( arguments, 2 );
+
+                return flash.exec( this.uid, comp, fn, args );
+            };
+
+            // @todo
+        }
+
+        Base.inherits( Runtime, {
+            constructor: FlashRuntime,
+
+            init: function() {
+                var container = this.getContainer(),
+                    opts = this.options,
+                    html;
+
+                // if not the minimal height, shims are not initialized
+                // in older browsers (e.g FF3.6, IE6,7,8, Safari 4.0,5.0, etc)
+                container.css({
+                    position: 'absolute',
+                    top: '-8px',
+                    left: '-8px',
+                    width: '9px',
+                    height: '9px',
+                    overflow: 'hidden'
+                });
+
+                // insert flash object
+                html = '<object id="' + this.uid + '" type="application/' +
+                        'x-shockwave-flash" data="' +  opts.swf + '" ';
+
+                if ( Base.browser.ie ) {
+                    html += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
+                }
+
+                html += 'width="100%" height="100%" style="outline:0">'  +
+                    '<param name="movie" value="' + opts.swf + '" />' +
+                    '<param name="flashvars" value="uid=' + this.uid +
+                    '&jsreciver=' + this.jsreciver + '" />' +
+                    '<param name="wmode" value="transparent" />' +
+                    '<param name="allowscriptaccess" value="always" />' +
+                '</object>';
+
+                container.html( html );
+            },
+
+            getFlash: function() {
+                if ( this._flash ) {
+                    return this._flash;
+                }
+
+                this._flash = $( '#' + this.uid ).get( 0 );
+                return this._flash;
+            }
+
+        });
+
+        FlashRuntime.register = function( name, component ) {
+            component = components[ name ] = Base.inherits( CompBase, $.extend({
+
+                // @todo fix this later
+                flashExec: function() {
+                    var owner = this.owner,
+                        runtime = this.getRuntime();
+
+                    return runtime.flashExec.apply( owner, arguments );
+                }
+            }, component ) );
+
+            return component;
+        };
+
+        if ( getFlashVersion() >= 11.4 ) {
+            Runtime.addRuntime( type, FlashRuntime );
+        }
+
+        return FlashRuntime;
+    });
+    /**
+     * @fileOverview FilePicker
+     */
+    define('runtime/flash/filepicker',[
+        'base',
+        'runtime/flash/runtime'
+    ], function( Base, FlashRuntime ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'FilePicker', {
+            init: function( opts ) {
+                var copy = $.extend({}, opts ),
+                    len, i;
+
+                // 修复Flash再没有设置title的情况下无法弹出flash文件选择框的bug.
+                len = copy.accept && copy.accept.length;
+                for (  i = 0; i < len; i++ ) {
+                    if ( !copy.accept[ i ].title ) {
+                        copy.accept[ i ].title = 'Files';
+                    }
+                }
+
+                delete copy.button;
+                delete copy.id;
+                delete copy.container;
+
+                this.flashExec( 'FilePicker', 'init', copy );
+            },
+
+            destroy: function() {
+                this.flashExec( 'FilePicker', 'destroy' );
+            }
+        });
+    });
+    /**
+     * @fileOverview  Transport flash实现
+     */
+    define('runtime/flash/transport',[
+        'base',
+        'runtime/flash/runtime',
+        'runtime/client'
+    ], function( Base, FlashRuntime, RuntimeClient ) {
+        var $ = Base.$;
+
+        return FlashRuntime.register( 'Transport', {
+            init: function() {
+                this._status = 0;
+                this._response = null;
+                this._responseJson = null;
+            },
+
+            send: function() {
+                var owner = this.owner,
+                    opts = this.options,
+                    xhr = this._initAjax(),
+                    blob = owner._blob,
+                    server = opts.server,
+                    binary;
+
+                xhr.connectRuntime( blob.ruid );
+
+                if ( opts.sendAsBinary ) {
+                    server += (/\?/.test( server ) ? '&' : '?') +
+                            $.param( owner._formData );
+
+                    binary = blob.uid;
+                } else {
+                    $.each( owner._formData, function( k, v ) {
+                        xhr.exec( 'append', k, v );
+                    });
+
+                    xhr.exec( 'appendBlob', opts.fileVal, blob.uid,
+                            opts.filename || owner._formData.name || '' );
+                }
+
+                this._setRequestHeader( xhr, opts.headers );
+                xhr.exec( 'send', {
+                    method: opts.method,
+                    url: server,
+                    forceURLStream: opts.forceURLStream,
+                    mimeType: 'application/octet-stream'
+                }, binary );
+            },
+
+            getStatus: function() {
+                return this._status;
+            },
+
+            getResponse: function() {
+                return this._response || '';
+            },
+
+            getResponseAsJson: function() {
+                return this._responseJson;
+            },
+
+            abort: function() {
+                var xhr = this._xhr;
+
+                if ( xhr ) {
+                    xhr.exec('abort');
+                    xhr.destroy();
+                    this._xhr = xhr = null;
+                }
+            },
+
+            destroy: function() {
+                this.abort();
+            },
+
+            _initAjax: function() {
+                var me = this,
+                    xhr = new RuntimeClient('XMLHttpRequest');
+
+                xhr.on( 'uploadprogress progress', function( e ) {
+                    var percent = e.loaded / e.total;
+                    percent = Math.min( 1, Math.max( 0, percent ) );
+                    return me.trigger( 'progress', percent );
+                });
+
+                xhr.on( 'load', function() {
+                    var status = xhr.exec('getStatus'),
+                        readBody = false,
+                        err = '',
+                        p;
+
+                    xhr.off();
+                    me._xhr = null;
+
+                    if ( status >= 200 && status < 300 ) {
+                        readBody = true;
+                    } else if ( status >= 500 && status < 600 ) {
+                        readBody = true;
+                        err = 'server';
+                    } else {
+                        err = 'http';
+                    }
+
+                    if ( readBody ) {
+                        me._response = xhr.exec('getResponse');
+                        me._response = decodeURIComponent( me._response );
+
+                        // flash 处理可能存在 bug, 没辙只能靠 js 了
+                        // try {
+                        //     me._responseJson = xhr.exec('getResponseAsJson');
+                        // } catch ( error ) {
+
+                        p = window.JSON && window.JSON.parse || function( s ) {
+                            try {
+                                return new Function('return ' + s).call();
+                            } catch ( err ) {
+                                return {};
+                            }
+                        };
+                        me._responseJson  = me._response ? p(me._response) : {};
+
+                        // }
+                    }
+
+                    xhr.destroy();
+                    xhr = null;
+
+                    return err ? me.trigger( 'error', err ) : me.trigger('load');
+                });
+
+                xhr.on( 'error', function() {
+                    xhr.off();
+                    me._xhr = null;
+                    me.trigger( 'error', 'http' );
+                });
+
+                me._xhr = xhr;
+                return xhr;
+            },
+
+            _setRequestHeader: function( xhr, headers ) {
+                $.each( headers, function( key, val ) {
+                    xhr.exec( 'setRequestHeader', key, val );
+                });
+            }
+        });
+    });
+    /**
+     * @fileOverview 没有图像处理的版本。
+     */
+    define('preset/withoutimage',[
+        'base',
+
+        // widgets
+        'widgets/filednd',
+        'widgets/filepaste',
+        'widgets/filepicker',
+        'widgets/queue',
+        'widgets/runtime',
+        'widgets/upload',
+        'widgets/validator',
+
+        // runtimes
+        // html5
+        'runtime/html5/blob',
+        'runtime/html5/dnd',
+        'runtime/html5/filepaste',
+        'runtime/html5/filepicker',
+        'runtime/html5/transport',
+
+        // flash
+        'runtime/flash/filepicker',
+        'runtime/flash/transport'
+    ], function( Base ) {
+        return Base;
+    });
+    define('webuploader',[
+        'preset/withoutimage'
+    ], function( preset ) {
+        return preset;
+    });
+    return require('webuploader');
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.min.js
new file mode 100644
index 0000000..349be36
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/webuploader/webuploader.withoutimage.min.js
@@ -0,0 +1,2 @@
+/* WebUploader 0.1.5 */!function(a,b){var c,d={},e=function(a,b){var c,d,e;if("string"==typeof a)return h(a);for(c=[],d=a.length,e=0;d>e;e++)c.push(h(a[e]));return b.apply(null,c)},f=function(a,b,c){2===arguments.length&&(c=b,b=null),e(b||[],function(){g(a,c,arguments)})},g=function(a,b,c){var f,g={exports:b};"function"==typeof b&&(c.length||(c=[e,g.exports,g]),f=b.apply(null,c),void 0!==f&&(g.exports=f)),d[a]=g.exports},h=function(b){var c=d[b]||a[b];if(!c)throw new Error("`"+b+"` is undefined");return c},i=function(a){var b,c,e,f,g,h;h=function(a){return a&&a.charAt(0).toUpperCase()+a.substr(1)};for(b in d)if(c=a,d.hasOwnProperty(b)){for(e=b.split("/"),g=h(e.pop());f=h(e.shift());)c[f]=c[f]||{},c=c[f];c[g]=d[b]}return a},j=function(c){return a.__dollar=c,i(b(a,f,e))};"object"==typeof module&&"object"==typeof module.exports?module.exports=j():"function"==typeof define&&define.amd?define(["jquery"],j):(c=a.WebUploader,a.WebUploader=j(),a.WebUploader.noConflict=function(){a.WebUploader=c})}(window,function(a,b,c){return b("dollar-third",[],function(){var b=a.__dollar||a.jQuery||a.Zepto;if(!b)throw new Error("jQuery or Zepto not found!");return b}),b("dollar",["dollar-third"],function(a){return a}),b("promise-third",["dollar"],function(a){return{Deferred:a.Deferred,when:a.when,isPromise:function(a){return a&&"function"==typeof a.then}}}),b("promise",["promise-third"],function(a){return a}),b("base",["dollar","promise"],function(b,c){function d(a){return function(){return h.apply(a,arguments)}}function e(a,b){return function(){return a.apply(b,arguments)}}function f(a){var b;return Object.create?Object.create(a):(b=function(){},b.prototype=a,new b)}var g=function(){},h=Function.call;return{version:"0.1.5",$:b,Deferred:c.Deferred,isPromise:c.isPromise,when:c.when,browser:function(a){var b={},c=a.match(/WebKit\/([\d.]+)/),d=a.match(/Chrome\/([\d.]+)/)||a.match(/CriOS\/([\d.]+)/),e=a.match(/MSIE\s([\d\.]+)/)||a.match(/(?:trident)(?:.*rv:([\w.]+))?/i),f=a.match(/Firefox\/([\d.]+)/),g=a.match(/Safari\/([\d.]+)/),h=a.match(/OPR\/([\d.]+)/);return c&&(b.webkit=parseFloat(c[1])),d&&(b.chrome=parseFloat(d[1])),e&&(b.ie=parseFloat(e[1])),f&&(b.firefox=parseFloat(f[1])),g&&(b.safari=parseFloat(g[1])),h&&(b.opera=parseFloat(h[1])),b}(navigator.userAgent),os:function(a){var b={},c=a.match(/(?:Android);?[\s\/]+([\d.]+)?/),d=a.match(/(?:iPad|iPod|iPhone).*OS\s([\d_]+)/);return c&&(b.android=parseFloat(c[1])),d&&(b.ios=parseFloat(d[1].replace(/_/g,"."))),b}(navigator.userAgent),inherits:function(a,c,d){var e;return"function"==typeof c?(e=c,c=null):e=c&&c.hasOwnProperty("constructor")?c.constructor:function(){return a.apply(this,arguments)},b.extend(!0,e,a,d||{}),e.__super__=a.prototype,e.prototype=f(a.prototype),c&&b.extend(!0,e.prototype,c),e},noop:g,bindFn:e,log:function(){return a.console?e(console.log,console):g}(),nextTick:function(){return function(a){setTimeout(a,1)}}(),slice:d([].slice),guid:function(){var a=0;return function(b){for(var c=(+new Date).toString(32),d=0;5>d;d++)c+=Math.floor(65535*Math.random()).toString(32);return(b||"wu_")+c+(a++).toString(32)}}(),formatSize:function(a,b,c){var d;for(c=c||["B","K","M","G","TB"];(d=c.shift())&&a>1024;)a/=1024;return("B"===d?a:a.toFixed(b||2))+d}}}),b("mediator",["base"],function(a){function b(a,b,c,d){return f.grep(a,function(a){return!(!a||b&&a.e!==b||c&&a.cb!==c&&a.cb._cb!==c||d&&a.ctx!==d)})}function c(a,b,c){f.each((a||"").split(h),function(a,d){c(d,b)})}function d(a,b){for(var c,d=!1,e=-1,f=a.length;++e<f;)if(c=a[e],c.cb.apply(c.ctx2,b)===!1){d=!0;break}return!d}var e,f=a.$,g=[].slice,h=/\s+/;return e={on:function(a,b,d){var e,f=this;return b?(e=this._events||(this._events=[]),c(a,b,function(a,b){var c={e:a};c.cb=b,c.ctx=d,c.ctx2=d||f,c.id=e.length,e.push(c)}),this):this},once:function(a,b,d){var e=this;return b?(c(a,b,function(a,b){var c=function(){return e.off(a,c),b.apply(d||e,arguments)};c._cb=b,e.on(a,c,d)}),e):e},off:function(a,d,e){var g=this._events;return g?a||d||e?(c(a,d,function(a,c){f.each(b(g,a,c,e),function(){delete g[this.id]})}),this):(this._events=[],this):this},trigger:function(a){var c,e,f;return this._events&&a?(c=g.call(arguments,1),e=b(this._events,a),f=b(this._events,"all"),d(e,c)&&d(f,arguments)):this}},f.extend({installTo:function(a){return f.extend(a,e)}},e)}),b("uploader",["base","mediator"],function(a,b){function c(a){this.options=d.extend(!0,{},c.options,a),this._init(this.options)}var d=a.$;return c.options={},b.installTo(c.prototype),d.each({upload:"start-upload",stop:"stop-upload",getFile:"get-file",getFiles:"get-files",addFile:"add-file",addFiles:"add-file",sort:"sort-files",removeFile:"remove-file",cancelFile:"cancel-file",skipFile:"skip-file",retry:"retry",isInProgress:"is-in-progress",makeThumb:"make-thumb",md5File:"md5-file",getDimension:"get-dimension",addButton:"add-btn",predictRuntimeType:"predict-runtime-type",refresh:"refresh",disable:"disable",enable:"enable",reset:"reset"},function(a,b){c.prototype[a]=function(){return this.request(b,arguments)}}),d.extend(c.prototype,{state:"pending",_init:function(a){var b=this;b.request("init",a,function(){b.state="ready",b.trigger("ready")})},option:function(a,b){var c=this.options;return arguments.length>1?void(d.isPlainObject(b)&&d.isPlainObject(c[a])?d.extend(c[a],b):c[a]=b):a?c[a]:c},getStats:function(){var a=this.request("get-stats");return a?{successNum:a.numOfSuccess,progressNum:a.numOfProgress,cancelNum:a.numOfCancel,invalidNum:a.numOfInvalid,uploadFailNum:a.numOfUploadFailed,queueNum:a.numOfQueue,interruptNum:a.numofInterrupt}:{}},trigger:function(a){var c=[].slice.call(arguments,1),e=this.options,f="on"+a.substring(0,1).toUpperCase()+a.substring(1);return b.trigger.apply(this,arguments)===!1||d.isFunction(e[f])&&e[f].apply(this,c)===!1||d.isFunction(this[f])&&this[f].apply(this,c)===!1||b.trigger.apply(b,[this,a].concat(c))===!1?!1:!0},destroy:function(){this.request("destroy",arguments),this.off()},request:a.noop}),a.create=c.create=function(a){return new c(a)},a.Uploader=c,c}),b("runtime/runtime",["base","mediator"],function(a,b){function c(b){this.options=d.extend({container:document.body},b),this.uid=a.guid("rt_")}var d=a.$,e={},f=function(a){for(var b in a)if(a.hasOwnProperty(b))return b;return null};return d.extend(c.prototype,{getContainer:function(){var a,b,c=this.options;return this._container?this._container:(a=d(c.container||document.body),b=d(document.createElement("div")),b.attr("id","rt_"+this.uid),b.css({position:"absolute",top:"0px",left:"0px",width:"1px",height:"1px",overflow:"hidden"}),a.append(b),a.addClass("webuploader-container"),this._container=b,this._parent=a,b)},init:a.noop,exec:a.noop,destroy:function(){this._container&&this._container.remove(),this._parent&&this._parent.removeClass("webuploader-container"),this.off()}}),c.orders="html5,flash",c.addRuntime=function(a,b){e[a]=b},c.hasRuntime=function(a){return!!(a?e[a]:f(e))},c.create=function(a,b){var g,h;if(b=b||c.orders,d.each(b.split(/\s*,\s*/g),function(){return e[this]?(g=this,!1):void 0}),g=g||f(e),!g)throw new Error("Runtime Error");return h=new e[g](a)},b.installTo(c.prototype),c}),b("runtime/client",["base","mediator","runtime/runtime"],function(a,b,c){function d(b,d){var f,g=a.Deferred();this.uid=a.guid("client_"),this.runtimeReady=function(a){return g.done(a)},this.connectRuntime=function(b,h){if(f)throw new Error("already connected!");return g.done(h),"string"==typeof b&&e.get(b)&&(f=e.get(b)),f=f||e.get(null,d),f?(a.$.extend(f.options,b),f.__promise.then(g.resolve),f.__client++):(f=c.create(b,b.runtimeOrder),f.__promise=g.promise(),f.once("ready",g.resolve),f.init(),e.add(f),f.__client=1),d&&(f.__standalone=d),f},this.getRuntime=function(){return f},this.disconnectRuntime=function(){f&&(f.__client--,f.__client<=0&&(e.remove(f),delete f.__promise,f.destroy()),f=null)},this.exec=function(){if(f){var c=a.slice(arguments);return b&&c.unshift(b),f.exec.apply(this,c)}},this.getRuid=function(){return f&&f.uid},this.destroy=function(a){return function(){a&&a.apply(this,arguments),this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()}}(this.destroy)}var e;return e=function(){var a={};return{add:function(b){a[b.uid]=b},get:function(b,c){var d;if(b)return a[b];for(d in a)if(!c||!a[d].__standalone)return a[d];return null},remove:function(b){delete a[b.uid]}}}(),b.installTo(d.prototype),d}),b("lib/dnd",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},d.options,a),a.container=e(a.container),a.container.length&&c.call(this,"DragAndDrop")}var e=a.$;return d.options={accept:null,disableGlobalDnd:!1},a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/widget",["base","uploader"],function(a,b){function c(a){if(!a)return!1;var b=a.length,c=e.type(a);return 1===a.nodeType&&b?!0:"array"===c||"function"!==c&&"string"!==c&&(0===b||"number"==typeof b&&b>0&&b-1 in a)}function d(a){this.owner=a,this.options=a.options}var e=a.$,f=b.prototype._init,g=b.prototype.destroy,h={},i=[];return e.extend(d.prototype,{init:a.noop,invoke:function(a,b){var c=this.responseMap;return c&&a in c&&c[a]in this&&e.isFunction(this[c[a]])?this[c[a]].apply(this,b):h},request:function(){return this.owner.request.apply(this.owner,arguments)}}),e.extend(b.prototype,{_init:function(){var a=this,b=a._widgets=[],c=a.options.disableWidgets||"";return e.each(i,function(d,e){(!c||!~c.indexOf(e._name))&&b.push(new e(a))}),f.apply(a,arguments)},request:function(b,d,e){var f,g,i,j,k=0,l=this._widgets,m=l&&l.length,n=[],o=[];for(d=c(d)?d:[d];m>k;k++)f=l[k],g=f.invoke(b,d),g!==h&&(a.isPromise(g)?o.push(g):n.push(g));return e||o.length?(i=a.when.apply(a,o),j=i.pipe?"pipe":"then",i[j](function(){var b=a.Deferred(),c=arguments;return 1===c.length&&(c=c[0]),setTimeout(function(){b.resolve(c)},1),b.promise()})[e?j:"done"](e||a.noop)):n[0]},destroy:function(){g.apply(this,arguments),this._widgets=null}}),b.register=d.register=function(b,c){var f,g={init:"init",destroy:"destroy",name:"anonymous"};return 1===arguments.length?(c=b,e.each(c,function(a){return"_"===a[0]||"name"===a?void("name"===a&&(g.name=c.name)):void(g[a.replace(/[A-Z]/g,"-$&").toLowerCase()]=a)})):g=e.extend(g,b),c.responseMap=g,f=a.inherits(d,c),f._name=g.name,i.push(f),f},b.unRegister=d.unRegister=function(a){if(a&&"anonymous"!==a)for(var b=i.length;b--;)i[b]._name===a&&i.splice(b,1)},d}),b("widgets/filednd",["base","uploader","lib/dnd","widgets/widget"],function(a,b,c){var d=a.$;return b.options.dnd="",b.register({name:"dnd",init:function(b){if(b.dnd&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{disableGlobalDnd:b.disableGlobalDnd,container:b.dnd,accept:b.accept});return this.dnd=e=new c(h),e.once("ready",g.resolve),e.on("drop",function(a){f.request("add-file",[a])}),e.on("accept",function(a){return f.owner.trigger("dndAccept",a)}),e.init(),g.promise()}},destroy:function(){this.dnd&&this.dnd.destroy()}})}),b("lib/filepaste",["base","mediator","runtime/client"],function(a,b,c){function d(a){a=this.options=e.extend({},a),a.container=e(a.container||document.body),c.call(this,"FilePaste")}var e=a.$;return a.inherits(c,{constructor:d,init:function(){var a=this;a.connectRuntime(a.options,function(){a.exec("init"),a.trigger("ready")})}}),b.installTo(d.prototype),d}),b("widgets/filepaste",["base","uploader","lib/filepaste","widgets/widget"],function(a,b,c){var d=a.$;return b.register({name:"paste",init:function(b){if(b.paste&&"html5"===this.request("predict-runtime-type")){var e,f=this,g=a.Deferred(),h=d.extend({},{container:b.paste,accept:b.accept});return this.paste=e=new c(h),e.once("ready",g.resolve),e.on("paste",function(a){f.owner.request("add-file",[a])}),e.init(),g.promise()}},destroy:function(){this.paste&&this.paste.destroy()}})}),b("lib/blob",["base","runtime/client"],function(a,b){function c(a,c){var d=this;d.source=c,d.ruid=a,this.size=c.size||0,this.type=!c.type&&this.ext&&~"jpg,jpeg,png,gif,bmp".indexOf(this.ext)?"image/"+("jpg"===this.ext?"jpeg":this.ext):c.type||"application/octet-stream",b.call(d,"Blob"),this.uid=c.uid||this.uid,a&&d.connectRuntime(a)}return a.inherits(b,{constructor:c,slice:function(a,b){return this.exec("slice",a,b)},getSource:function(){return this.source}}),c}),b("lib/file",["base","lib/blob"],function(a,b){function c(a,c){var f;this.name=c.name||"untitled"+d++,f=e.exec(c.name)?RegExp.$1.toLowerCase():"",!f&&c.type&&(f=/\/(jpg|jpeg|png|gif|bmp)$/i.exec(c.type)?RegExp.$1.toLowerCase():"",this.name+="."+f),this.ext=f,this.lastModifiedDate=c.lastModifiedDate||(new Date).toLocaleString(),b.apply(this,arguments)}var d=1,e=/\.([^.]+)$/;return a.inherits(b,c)}),b("lib/filepicker",["base","runtime/client","lib/file"],function(b,c,d){function e(a){if(a=this.options=f.extend({},e.options,a),a.container=f(a.id),!a.container.length)throw new Error("按钮指定错误");a.innerHTML=a.innerHTML||a.label||a.container.html()||"",a.button=f(a.button||document.createElement("div")),a.button.html(a.innerHTML),a.container.html(a.button),c.call(this,"FilePicker",!0)}var f=b.$;return e.options={button:null,container:null,label:null,innerHTML:null,multiple:!0,accept:null,name:"file"},b.inherits(c,{constructor:e,init:function(){var c=this,e=c.options,g=e.button;g.addClass("webuploader-pick"),c.on("all",function(a){var b;switch(a){case"mouseenter":g.addClass("webuploader-pick-hover");break;case"mouseleave":g.removeClass("webuploader-pick-hover");break;case"change":b=c.exec("getFiles"),c.trigger("select",f.map(b,function(a){return a=new d(c.getRuid(),a),a._refer=e.container,a}),e.container)}}),c.connectRuntime(e,function(){c.refresh(),c.exec("init",e),c.trigger("ready")}),this._resizeHandler=b.bindFn(this.refresh,this),f(a).on("resize",this._resizeHandler)},refresh:function(){var a=this.getRuntime().getContainer(),b=this.options.button,c=b.outerWidth?b.outerWidth():b.width(),d=b.outerHeight?b.outerHeight():b.height(),e=b.offset();c&&d&&a.css({bottom:"auto",right:"auto",width:c+"px",height:d+"px"}).offset(e)},enable:function(){var a=this.options.button;a.removeClass("webuploader-pick-disable"),this.refresh()},disable:function(){var a=this.options.button;this.getRuntime().getContainer().css({top:"-99999px"}),a.addClass("webuploader-pick-disable")},destroy:function(){var b=this.options.button;f(a).off("resize",this._resizeHandler),b.removeClass("webuploader-pick-disable webuploader-pick-hover webuploader-pick")}}),e}),b("widgets/filepicker",["base","uploader","lib/filepicker","widgets/widget"],function(a,b,c){var d=a.$;return d.extend(b.options,{pick:null,accept:null}),b.register({name:"picker",init:function(a){return this.pickers=[],a.pick&&this.addBtn(a.pick)},refresh:function(){d.each(this.pickers,function(){this.refresh()})},addBtn:function(b){var e=this,f=e.options,g=f.accept,h=[];if(b)return d.isPlainObject(b)||(b={id:b}),d(b.id).each(function(){var i,j,k;k=a.Deferred(),i=d.extend({},b,{accept:d.isPlainObject(g)?[g]:g,swf:f.swf,runtimeOrder:f.runtimeOrder,id:this}),j=new c(i),j.once("ready",k.resolve),j.on("select",function(a){e.owner.request("add-file",[a])}),j.init(),e.pickers.push(j),h.push(k.promise())}),a.when.apply(a,h)},disable:function(){d.each(this.pickers,function(){this.disable()})},enable:function(){d.each(this.pickers,function(){this.enable()})},destroy:function(){d.each(this.pickers,function(){this.destroy()}),this.pickers=null}})}),b("file",["base","mediator"],function(a,b){function c(){return f+g++}function d(a){this.name=a.name||"Untitled",this.size=a.size||0,this.type=a.type||"application/octet-stream",this.lastModifiedDate=a.lastModifiedDate||1*new Date,this.id=c(),this.ext=h.exec(this.name)?RegExp.$1:"",this.statusText="",i[this.id]=d.Status.INITED,this.source=a,this.loaded=0,this.on("error",function(a){this.setStatus(d.Status.ERROR,a)})}var e=a.$,f="WU_FILE_",g=0,h=/\.([^.]+)$/,i={};return e.extend(d.prototype,{setStatus:function(a,b){var c=i[this.id];"undefined"!=typeof b&&(this.statusText=b),a!==c&&(i[this.id]=a,this.trigger("statuschange",a,c))},getStatus:function(){return i[this.id]},getSource:function(){return this.source},destroy:function(){this.off(),delete i[this.id]}}),b.installTo(d.prototype),d.Status={INITED:"inited",QUEUED:"queued",PROGRESS:"progress",ERROR:"error",COMPLETE:"complete",CANCELLED:"cancelled",INTERRUPT:"interrupt",INVALID:"invalid"},d}),b("queue",["base","mediator","file"],function(a,b,c){function d(){this.stats={numOfQueue:0,numOfSuccess:0,numOfCancel:0,numOfProgress:0,numOfUploadFailed:0,numOfInvalid:0,numofDeleted:0,numofInterrupt:0},this._queue=[],this._map={}}var e=a.$,f=c.Status;return e.extend(d.prototype,{append:function(a){return this._queue.push(a),this._fileAdded(a),this},prepend:function(a){return this._queue.unshift(a),this._fileAdded(a),this},getFile:function(a){return"string"!=typeof a?a:this._map[a]},fetch:function(a){var b,c,d=this._queue.length;for(a=a||f.QUEUED,b=0;d>b;b++)if(c=this._queue[b],a===c.getStatus())return c;return null},sort:function(a){"function"==typeof a&&this._queue.sort(a)},getFiles:function(){for(var a,b=[].slice.call(arguments,0),c=[],d=0,f=this._queue.length;f>d;d++)a=this._queue[d],(!b.length||~e.inArray(a.getStatus(),b))&&c.push(a);return c},removeFile:function(a){var b=this._map[a.id];b&&(delete this._map[a.id],a.destroy(),this.stats.numofDeleted++)},_fileAdded:function(a){var b=this,c=this._map[a.id];c||(this._map[a.id]=a,a.on("statuschange",function(a,c){b._onFileStatusChange(a,c)}))},_onFileStatusChange:function(a,b){var c=this.stats;switch(b){case f.PROGRESS:c.numOfProgress--;break;case f.QUEUED:c.numOfQueue--;break;case f.ERROR:c.numOfUploadFailed--;break;case f.INVALID:c.numOfInvalid--;break;case f.INTERRUPT:c.numofInterrupt--}switch(a){case f.QUEUED:c.numOfQueue++;break;case f.PROGRESS:c.numOfProgress++;break;case f.ERROR:c.numOfUploadFailed++;break;case f.COMPLETE:c.numOfSuccess++;break;case f.CANCELLED:c.numOfCancel++;break;case f.INVALID:c.numOfInvalid++;break;case f.INTERRUPT:c.numofInterrupt++}}}),b.installTo(d.prototype),d}),b("widgets/queue",["base","uploader","queue","file","lib/file","runtime/client","widgets/widget"],function(a,b,c,d,e,f){var g=a.$,h=/\.\w+$/,i=d.Status;return b.register({name:"queue",init:function(b){var d,e,h,i,j,k,l,m=this;if(g.isPlainObject(b.accept)&&(b.accept=[b.accept]),b.accept){for(j=[],h=0,e=b.accept.length;e>h;h++)i=b.accept[h].extensions,i&&j.push(i);j.length&&(k="\\."+j.join(",").replace(/,/g,"$|\\.").replace(/\*/g,".*")+"$"),m.accept=new RegExp(k,"i")}return m.queue=new c,m.stats=m.queue.stats,"html5"===this.request("predict-runtime-type")?(d=a.Deferred(),this.placeholder=l=new f("Placeholder"),l.connectRuntime({runtimeOrder:"html5"},function(){m._ruid=l.getRuid(),d.resolve()}),d.promise()):void 0},_wrapFile:function(a){if(!(a instanceof d)){if(!(a instanceof e)){if(!this._ruid)throw new Error("Can't add external files.");a=new e(this._ruid,a)}a=new d(a)}return a},acceptFile:function(a){var b=!a||!a.size||this.accept&&h.exec(a.name)&&!this.accept.test(a.name);return!b},_addFile:function(a){var b=this;return a=b._wrapFile(a),b.owner.trigger("beforeFileQueued",a)?b.acceptFile(a)?(b.queue.append(a),b.owner.trigger("fileQueued",a),a):void b.owner.trigger("error","Q_TYPE_DENIED",a):void 0},getFile:function(a){return this.queue.getFile(a)},addFile:function(a){var b=this;a.length||(a=[a]),a=g.map(a,function(a){return b._addFile(a)}),b.owner.trigger("filesQueued",a),b.options.auto&&setTimeout(function(){b.request("start-upload")},20)},getStats:function(){return this.stats},removeFile:function(a,b){var c=this;a=a.id?a:c.queue.getFile(a),this.request("cancel-file",a),b&&this.queue.removeFile(a)},getFiles:function(){return this.queue.getFiles.apply(this.queue,arguments)},fetchFile:function(){return this.queue.fetch.apply(this.queue,arguments)},retry:function(a,b){var c,d,e,f=this;if(a)return a=a.id?a:f.queue.getFile(a),a.setStatus(i.QUEUED),void(b||f.request("start-upload"));for(c=f.queue.getFiles(i.ERROR),d=0,e=c.length;e>d;d++)a=c[d],a.setStatus(i.QUEUED);f.request("start-upload")},sortFiles:function(){return this.queue.sort.apply(this.queue,arguments)},reset:function(){this.owner.trigger("reset"),this.queue=new c,this.stats=this.queue.stats},destroy:function(){this.reset(),this.placeholder&&this.placeholder.destroy()}})}),b("widgets/runtime",["uploader","runtime/runtime","widgets/widget"],function(a,b){return a.support=function(){return b.hasRuntime.apply(b,arguments)},a.register({name:"runtime",init:function(){if(!this.predictRuntimeType())throw Error("Runtime Error")},predictRuntimeType:function(){var a,c,d=this.options.runtimeOrder||b.orders,e=this.type;if(!e)for(d=d.split(/\s*,\s*/g),a=0,c=d.length;c>a;a++)if(b.hasRuntime(d[a])){this.type=e=d[a];break}return e}})}),b("lib/transport",["base","runtime/client","mediator"],function(a,b,c){function d(a){var c=this;a=c.options=e.extend(!0,{},d.options,a||{}),b.call(this,"Transport"),this._blob=null,this._formData=a.formData||{},this._headers=a.headers||{},this.on("progress",this._timeout),this.on("load error",function(){c.trigger("progress",1),clearTimeout(c._timer)})}var e=a.$;return d.options={server:"",method:"POST",withCredentials:!1,fileVal:"file",timeout:12e4,formData:{},headers:{},sendAsBinary:!1},e.extend(d.prototype,{appendBlob:function(a,b,c){var d=this,e=d.options;d.getRuid()&&d.disconnectRuntime(),d.connectRuntime(b.ruid,function(){d.exec("init")}),d._blob=b,e.fileVal=a||e.fileVal,e.filename=c||e.filename},append:function(a,b){"object"==typeof a?e.extend(this._formData,a):this._formData[a]=b},setRequestHeader:function(a,b){"object"==typeof a?e.extend(this._headers,a):this._headers[a]=b},send:function(a){this.exec("send",a),this._timeout()},abort:function(){return clearTimeout(this._timer),this.exec("abort")},destroy:function(){this.trigger("destroy"),this.off(),this.exec("destroy"),this.disconnectRuntime()},getResponse:function(){return this.exec("getResponse")},getResponseAsJson:function(){return this.exec("getResponseAsJson")},getStatus:function(){return this.exec("getStatus")},_timeout:function(){var a=this,b=a.options.timeout;b&&(clearTimeout(a._timer),a._timer=setTimeout(function(){a.abort(),a.trigger("error","timeout")},b))}}),c.installTo(d.prototype),d}),b("widgets/upload",["base","uploader","file","lib/transport","widgets/widget"],function(a,b,c,d){function e(a,b){var c,d,e=[],f=a.source,g=f.size,h=b?Math.ceil(g/b):1,i=0,j=0;for(d={file:a,has:function(){return!!e.length},shift:function(){return e.shift()},unshift:function(a){e.unshift(a)}};h>j;)c=Math.min(b,g-i),e.push({file:a,start:i,end:b?i+c:g,total:g,chunks:h,chunk:j++,cuted:d}),i+=c;return a.blocks=e.concat(),a.remaning=e.length,d}var f=a.$,g=a.isPromise,h=c.Status;f.extend(b.options,{prepareNextFile:!1,chunked:!1,chunkSize:5242880,chunkRetry:2,threads:3,formData:{}}),b.register({name:"upload",init:function(){var b=this.owner,c=this;this.runing=!1,this.progress=!1,b.on("startUpload",function(){c.progress=!0}).on("uploadFinished",function(){c.progress=!1}),this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this.__tick=a.bindFn(this._tick,this),b.on("uploadComplete",function(a){a.blocks&&f.each(a.blocks,function(a,b){b.transport&&(b.transport.abort(),b.transport.destroy()),delete b.transport}),delete a.blocks,delete a.remaning})},reset:function(){this.request("stop-upload",!0),this.runing=!1,this.pool=[],this.stack=[],this.pending=[],this.remaning=0,this._trigged=!1,this._promise=null},startUpload:function(b){var c=this;if(f.each(c.request("get-files",h.INVALID),function(){c.request("remove-file",this)}),b)if(b=b.id?b:c.request("get-file",b),b.getStatus()===h.INTERRUPT)f.each(c.pool,function(a,c){c.file===b&&c.transport&&c.transport.send()}),b.setStatus(h.QUEUED);else{if(b.getStatus()===h.PROGRESS)return;b.setStatus(h.QUEUED)}else f.each(c.request("get-files",[h.INITED]),function(){this.setStatus(h.QUEUED)});c.runing||(c.runing=!0,f.each(c.pool,function(a,b){var d=b.file;d.getStatus()===h.INTERRUPT&&(d.setStatus(h.PROGRESS),c._trigged=!1,b.transport&&b.transport.send())}),b||f.each(c.request("get-files",h.INTERRUPT),function(){this.setStatus(h.PROGRESS)}),c._trigged=!1,a.nextTick(c.__tick),c.owner.trigger("startUpload"))},stopUpload:function(b,c){var d=this;if(b===!0&&(c=b,b=null),d.runing!==!1){if(b){if(b=b.id?b:d.request("get-file",b),b.getStatus()!==h.PROGRESS&&b.getStatus()!==h.QUEUED)return;return b.setStatus(h.INTERRUPT),f.each(d.pool,function(a,c){c.file===b&&(c.transport&&c.transport.abort(),d._putback(c),d._popBlock(c))}),a.nextTick(d.__tick)}d.runing=!1,this._promise&&this._promise.file&&this._promise.file.setStatus(h.INTERRUPT),c&&f.each(d.pool,function(a,b){b.transport&&b.transport.abort(),b.file.setStatus(h.INTERRUPT)}),d.owner.trigger("stopUpload")}},cancelFile:function(a){a=a.id?a:this.request("get-file",a),a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),a.setStatus(h.CANCELLED),this.owner.trigger("fileDequeued",a)},isInProgress:function(){return!!this.progress},_getStats:function(){return this.request("get-stats")},skipFile:function(a,b){a=a.id?a:this.request("get-file",a),a.setStatus(b||h.COMPLETE),a.skipped=!0,a.blocks&&f.each(a.blocks,function(a,b){var c=b.transport;c&&(c.abort(),c.destroy(),delete b.transport)}),this.owner.trigger("uploadSkip",a)},_tick:function(){var b,c,d=this,e=d.options;return d._promise?d._promise.always(d.__tick):void(d.pool.length<e.threads&&(c=d._nextBlock())?(d._trigged=!1,b=function(b){d._promise=null,b&&b.file&&d._startSend(b),a.nextTick(d.__tick)},d._promise=g(c)?c.always(b):b(c)):d.remaning||d._getStats().numOfQueue||d._getStats().numofInterrupt||(d.runing=!1,d._trigged||a.nextTick(function(){d.owner.trigger("uploadFinished")}),d._trigged=!0))},_putback:function(a){var b;a.cuted.unshift(a),b=this.stack.indexOf(a.cuted),~b||this.stack.unshift(a.cuted)},_getStack:function(){for(var a,b=0;a=this.stack[b++];){if(a.has()&&a.file.getStatus()===h.PROGRESS)return a;(!a.has()||a.file.getStatus()!==h.PROGRESS&&a.file.getStatus()!==h.INTERRUPT)&&this.stack.splice(--b,1)}return null},_nextBlock:function(){var a,b,c,d,f=this,h=f.options;return(a=this._getStack())?(h.prepareNextFile&&!f.pending.length&&f._prepareNextFile(),a.shift()):f.runing?(!f.pending.length&&f._getStats().numOfQueue&&f._prepareNextFile(),b=f.pending.shift(),c=function(b){return b?(a=e(b,h.chunked?h.chunkSize:0),f.stack.push(a),a.shift()):null},g(b)?(d=b.file,b=b[b.pipe?"pipe":"then"](c),b.file=d,b):c(b)):void 0},_prepareNextFile:function(){var a,b=this,c=b.request("fetch-file"),d=b.pending;c&&(a=b.request("before-send-file",c,function(){return c.getStatus()===h.PROGRESS||c.getStatus()===h.INTERRUPT?c:b._finishFile(c)}),b.owner.trigger("uploadStart",c),c.setStatus(h.PROGRESS),a.file=c,a.done(function(){var b=f.inArray(a,d);~b&&d.splice(b,1,c)}),a.fail(function(a){c.setStatus(h.ERROR,a),b.owner.trigger("uploadError",c,a),b.owner.trigger("uploadComplete",c)}),d.push(a))},_popBlock:function(a){var b=f.inArray(a,this.pool);this.pool.splice(b,1),a.file.remaning--,this.remaning--},_startSend:function(b){var c,d=this,e=b.file;return e.getStatus()!==h.PROGRESS?void(e.getStatus()===h.INTERRUPT&&d._putback(b)):(d.pool.push(b),d.remaning++,b.blob=1===b.chunks?e.source:e.source.slice(b.start,b.end),c=d.request("before-send",b,function(){e.getStatus()===h.PROGRESS?d._doSend(b):(d._popBlock(b),a.nextTick(d.__tick))}),void c.fail(function(){1===e.remaning?d._finishFile(e).always(function(){b.percentage=1,d._popBlock(b),d.owner.trigger("uploadComplete",e),a.nextTick(d.__tick)}):(b.percentage=1,d._popBlock(b),a.nextTick(d.__tick))}))},_doSend:function(b){var c,e,g=this,i=g.owner,j=g.options,k=b.file,l=new d(j),m=f.extend({},j.formData),n=f.extend({},j.headers);b.transport=l,l.on("destroy",function(){delete b.transport,g._popBlock(b),a.nextTick(g.__tick)}),l.on("progress",function(a){var c=0,d=0;c=b.percentage=a,b.chunks>1&&(f.each(k.blocks,function(a,b){d+=(b.percentage||0)*(b.end-b.start)}),c=d/k.size),i.trigger("uploadProgress",k,c||0)}),c=function(a){var c;return e=l.getResponseAsJson()||{},e._raw=l.getResponse(),c=function(b){a=b},i.trigger("uploadAccept",b,e,c)||(a=a||"server"),a},l.on("error",function(a,d){b.retried=b.retried||0,b.chunks>1&&~"http,abort".indexOf(a)&&b.retried<j.chunkRetry?(b.retried++,l.send()):(d||"server"!==a||(a=c(a)),k.setStatus(h.ERROR,a),i.trigger("uploadError",k,a),i.trigger("uploadComplete",k))}),l.on("load",function(){var a;return(a=c())?void l.trigger("error",a,!0):void(1===k.remaning?g._finishFile(k,e):l.destroy())}),m=f.extend(m,{id:k.id,name:k.name,type:k.type,lastModifiedDate:k.lastModifiedDate,size:k.size}),b.chunks>1&&f.extend(m,{chunks:b.chunks,chunk:b.chunk}),i.trigger("uploadBeforeSend",b,m,n),l.appendBlob(j.fileVal,b.blob,k.name),l.append(m),l.setRequestHeader(n),l.send()},_finishFile:function(a,b,c){var d=this.owner;return d.request("after-send-file",arguments,function(){a.setStatus(h.COMPLETE),d.trigger("uploadSuccess",a,b,c)}).fail(function(b){a.getStatus()===h.PROGRESS&&a.setStatus(h.ERROR,b),d.trigger("uploadError",a,b)}).always(function(){d.trigger("uploadComplete",a)})}})}),b("widgets/validator",["base","uploader","file","widgets/widget"],function(a,b,c){var d,e=a.$,f={};return d={addValidator:function(a,b){f[a]=b},removeValidator:function(a){delete f[a]}},b.register({name:"validator",init:function(){var b=this;a.nextTick(function(){e.each(f,function(){this.call(b.owner)})})}}),d.addValidator("fileNumLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileNumLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){return c>=d&&e&&(e=!1,this.trigger("error","Q_EXCEED_NUM_LIMIT",d,a),setTimeout(function(){e=!0},1)),c>=d?!1:!0}),a.on("fileQueued",function(){c++}),a.on("fileDequeued",function(){c--}),a.on("reset",function(){c=0}))}),d.addValidator("fileSizeLimit",function(){var a=this,b=a.options,c=0,d=parseInt(b.fileSizeLimit,10),e=!0;d&&(a.on("beforeFileQueued",function(a){var b=c+a.size>d;return b&&e&&(e=!1,this.trigger("error","Q_EXCEED_SIZE_LIMIT",d,a),setTimeout(function(){e=!0},1)),b?!1:!0}),a.on("fileQueued",function(a){c+=a.size}),a.on("fileDequeued",function(a){c-=a.size}),a.on("reset",function(){c=0}))}),d.addValidator("fileSingleSizeLimit",function(){var a=this,b=a.options,d=b.fileSingleSizeLimit;d&&a.on("beforeFileQueued",function(a){return a.size>d?(a.setStatus(c.Status.INVALID,"exceed_size"),this.trigger("error","F_EXCEED_SIZE",d,a),!1):void 0})}),d.addValidator("duplicate",function(){function a(a){for(var b,c=0,d=0,e=a.length;e>d;d++)b=a.charCodeAt(d),c=b+(c<<6)+(c<<16)-c;return c}var b=this,c=b.options,d={};c.duplicate||(b.on("beforeFileQueued",function(b){var c=b.__hash||(b.__hash=a(b.name+b.size+b.lastModifiedDate));return d[c]?(this.trigger("error","F_DUPLICATE",b),!1):void 0}),b.on("fileQueued",function(a){var b=a.__hash;b&&(d[b]=!0)}),b.on("fileDequeued",function(a){var b=a.__hash;b&&delete d[b]}),b.on("reset",function(){d={}}))}),d}),b("runtime/compbase",[],function(){function a(a,b){this.owner=a,this.options=a.options,this.getRuntime=function(){return b},this.getRuid=function(){return b.uid},this.trigger=function(){return a.trigger.apply(a,arguments)}}return a}),b("runtime/html5/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a={},d=this,e=this.destroy;c.apply(d,arguments),d.type=f,d.exec=function(c,e){var f,h=this,i=h.uid,j=b.slice(arguments,2);return g[c]&&(f=a[i]=a[i]||new g[c](h,d),f[e])?f[e].apply(f,j):void 0},d.destroy=function(){return e&&e.apply(this,arguments)}}var f="html5",g={};return b.inherits(c,{constructor:e,init:function(){var a=this;setTimeout(function(){a.trigger("ready")},1)}}),e.register=function(a,c){var e=g[a]=b.inherits(d,c);return e},a.Blob&&a.FileReader&&a.DataView&&c.addRuntime(f,e),e}),b("runtime/html5/blob",["runtime/html5/runtime","lib/blob"],function(a,b){return a.register("Blob",{slice:function(a,c){var d=this.owner.source,e=d.slice||d.webkitSlice||d.mozSlice;
+return d=e.call(d,a,c),new b(this.getRuid(),d)}})}),b("runtime/html5/dnd",["base","runtime/html5/runtime","lib/file"],function(a,b,c){var d=a.$,e="webuploader-dnd-";return b.register("DragAndDrop",{init:function(){var b=this.elem=this.options.container;this.dragEnterHandler=a.bindFn(this._dragEnterHandler,this),this.dragOverHandler=a.bindFn(this._dragOverHandler,this),this.dragLeaveHandler=a.bindFn(this._dragLeaveHandler,this),this.dropHandler=a.bindFn(this._dropHandler,this),this.dndOver=!1,b.on("dragenter",this.dragEnterHandler),b.on("dragover",this.dragOverHandler),b.on("dragleave",this.dragLeaveHandler),b.on("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).on("dragover",this.dragOverHandler),d(document).on("drop",this.dropHandler))},_dragEnterHandler:function(a){var b,c=this,d=c._denied||!1;return a=a.originalEvent||a,c.dndOver||(c.dndOver=!0,b=a.dataTransfer.items,b&&b.length&&(c._denied=d=!c.trigger("accept",b)),c.elem.addClass(e+"over"),c.elem[d?"addClass":"removeClass"](e+"denied")),a.dataTransfer.dropEffect=d?"none":"copy",!1},_dragOverHandler:function(a){var b=this.elem.parent().get(0);return b&&!d.contains(b,a.currentTarget)?!1:(clearTimeout(this._leaveTimer),this._dragEnterHandler.call(this,a),!1)},_dragLeaveHandler:function(){var a,b=this;return a=function(){b.dndOver=!1,b.elem.removeClass(e+"over "+e+"denied")},clearTimeout(b._leaveTimer),b._leaveTimer=setTimeout(a,100),!1},_dropHandler:function(a){var b,f,g=this,h=g.getRuid(),i=g.elem.parent().get(0);if(i&&!d.contains(i,a.currentTarget))return!1;a=a.originalEvent||a,b=a.dataTransfer;try{f=b.getData("text/html")}catch(j){}return f?void 0:(g._getTansferFiles(b,function(a){g.trigger("drop",d.map(a,function(a){return new c(h,a)}))}),g.dndOver=!1,g.elem.removeClass(e+"over"),!1)},_getTansferFiles:function(b,c){var d,e,f,g,h,i,j,k=[],l=[];for(d=b.items,e=b.files,j=!(!d||!d[0].webkitGetAsEntry),h=0,i=e.length;i>h;h++)f=e[h],g=d&&d[h],j&&g.webkitGetAsEntry().isDirectory?l.push(this._traverseDirectoryTree(g.webkitGetAsEntry(),k)):k.push(f);a.when.apply(a,l).done(function(){k.length&&c(k)})},_traverseDirectoryTree:function(b,c){var d=a.Deferred(),e=this;return b.isFile?b.file(function(a){c.push(a),d.resolve()}):b.isDirectory&&b.createReader().readEntries(function(b){var f,g=b.length,h=[],i=[];for(f=0;g>f;f++)h.push(e._traverseDirectoryTree(b[f],i));a.when.apply(a,h).then(function(){c.push.apply(c,i),d.resolve()},d.reject)}),d.promise()},destroy:function(){var a=this.elem;a&&(a.off("dragenter",this.dragEnterHandler),a.off("dragover",this.dragOverHandler),a.off("dragleave",this.dragLeaveHandler),a.off("drop",this.dropHandler),this.options.disableGlobalDnd&&(d(document).off("dragover",this.dragOverHandler),d(document).off("drop",this.dropHandler)))}})}),b("runtime/html5/filepaste",["base","runtime/html5/runtime","lib/file"],function(a,b,c){return b.register("FilePaste",{init:function(){var b,c,d,e,f=this.options,g=this.elem=f.container,h=".*";if(f.accept){for(b=[],c=0,d=f.accept.length;d>c;c++)e=f.accept[c].mimeTypes,e&&b.push(e);b.length&&(h=b.join(","),h=h.replace(/,/g,"|").replace(/\*/g,".*"))}this.accept=h=new RegExp(h,"i"),this.hander=a.bindFn(this._pasteHander,this),g.on("paste",this.hander)},_pasteHander:function(a){var b,d,e,f,g,h=[],i=this.getRuid();for(a=a.originalEvent||a,b=a.clipboardData.items,f=0,g=b.length;g>f;f++)d=b[f],"file"===d.kind&&(e=d.getAsFile())&&h.push(new c(i,e));h.length&&(a.preventDefault(),a.stopPropagation(),this.trigger("paste",h))},destroy:function(){this.elem.off("paste",this.hander)}})}),b("runtime/html5/filepicker",["base","runtime/html5/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(){var a,b,d,e,f=this.getRuntime().getContainer(),g=this,h=g.owner,i=g.options,j=this.label=c(document.createElement("label")),k=this.input=c(document.createElement("input"));if(k.attr("type","file"),k.attr("name",i.name),k.addClass("webuploader-element-invisible"),j.on("click",function(){k.trigger("click")}),j.css({opacity:0,width:"100%",height:"100%",display:"block",cursor:"pointer",background:"#ffffff"}),i.multiple&&k.attr("multiple","multiple"),i.accept&&i.accept.length>0){for(a=[],b=0,d=i.accept.length;d>b;b++)a.push(i.accept[b].mimeTypes);k.attr("accept",a.join(","))}f.append(k),f.append(j),e=function(a){h.trigger(a.type)},k.on("change",function(a){var b,d=arguments.callee;g.files=a.target.files,b=this.cloneNode(!0),b.value=null,this.parentNode.replaceChild(b,this),k.off(),k=c(b).on("change",d).on("mouseenter mouseleave",e),h.trigger("change")}),j.on("mouseenter mouseleave",e)},getFiles:function(){return this.files},destroy:function(){this.input.off(),this.label.off()}})}),b("runtime/html5/transport",["base","runtime/html5/runtime"],function(a,b){var c=a.noop,d=a.$;return b.register("Transport",{init:function(){this._status=0,this._response=null},send:function(){var b,c,e,f=this.owner,g=this.options,h=this._initAjax(),i=f._blob,j=g.server;g.sendAsBinary?(j+=(/\?/.test(j)?"&":"?")+d.param(f._formData),c=i.getSource()):(b=new FormData,d.each(f._formData,function(a,c){b.append(a,c)}),b.append(g.fileVal,i.getSource(),g.filename||f._formData.name||"")),g.withCredentials&&"withCredentials"in h?(h.open(g.method,j,!0),h.withCredentials=!0):h.open(g.method,j),this._setRequestHeader(h,g.headers),c?(h.overrideMimeType&&h.overrideMimeType("application/octet-stream"),a.os.android?(e=new FileReader,e.onload=function(){h.send(this.result),e=e.onload=null},e.readAsArrayBuffer(c)):h.send(c)):h.send(b)},getResponse:function(){return this._response},getResponseAsJson:function(){return this._parseJson(this._response)},getStatus:function(){return this._status},abort:function(){var a=this._xhr;a&&(a.upload.onprogress=c,a.onreadystatechange=c,a.abort(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var a=this,b=new XMLHttpRequest,d=this.options;return!d.withCredentials||"withCredentials"in b||"undefined"==typeof XDomainRequest||(b=new XDomainRequest),b.upload.onprogress=function(b){var c=0;return b.lengthComputable&&(c=b.loaded/b.total),a.trigger("progress",c)},b.onreadystatechange=function(){return 4===b.readyState?(b.upload.onprogress=c,b.onreadystatechange=c,a._xhr=null,a._status=b.status,b.status>=200&&b.status<300?(a._response=b.responseText,a.trigger("load")):b.status>=500&&b.status<600?(a._response=b.responseText,a.trigger("error","server")):a.trigger("error",a._status?"http":"abort")):void 0},a._xhr=b,b},_setRequestHeader:function(a,b){d.each(b,function(b,c){a.setRequestHeader(b,c)})},_parseJson:function(a){var b;try{b=JSON.parse(a)}catch(c){b={}}return b}})}),b("runtime/flash/runtime",["base","runtime/runtime","runtime/compbase"],function(b,c,d){function e(){var a;try{a=navigator.plugins["Shockwave Flash"],a=a.description}catch(b){try{a=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version")}catch(c){a="0.0"}}return a=a.match(/\d+/g),parseFloat(a[0]+"."+a[1],10)}function f(){function d(a,b){var c,d,e=a.type||a;c=e.split("::"),d=c[0],e=c[1],"Ready"===e&&d===j.uid?j.trigger("ready"):f[d]&&f[d].trigger(e.toLowerCase(),a,b)}var e={},f={},g=this.destroy,j=this,k=b.guid("webuploader_");c.apply(j,arguments),j.type=h,j.exec=function(a,c){var d,g=this,h=g.uid,k=b.slice(arguments,2);return f[h]=g,i[a]&&(e[h]||(e[h]=new i[a](g,j)),d=e[h],d[c])?d[c].apply(d,k):j.flashExec.apply(g,arguments)},a[k]=function(){var a=arguments;setTimeout(function(){d.apply(null,a)},1)},this.jsreciver=k,this.destroy=function(){return g&&g.apply(this,arguments)},this.flashExec=function(a,c){var d=j.getFlash(),e=b.slice(arguments,2);return d.exec(this.uid,a,c,e)}}var g=b.$,h="flash",i={};return b.inherits(c,{constructor:f,init:function(){var a,c=this.getContainer(),d=this.options;c.css({position:"absolute",top:"-8px",left:"-8px",width:"9px",height:"9px",overflow:"hidden"}),a='<object id="'+this.uid+'" type="application/x-shockwave-flash" data="'+d.swf+'" ',b.browser.ie&&(a+='classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" '),a+='width="100%" height="100%" style="outline:0"><param name="movie" value="'+d.swf+'" /><param name="flashvars" value="uid='+this.uid+"&jsreciver="+this.jsreciver+'" /><param name="wmode" value="transparent" /><param name="allowscriptaccess" value="always" /></object>',c.html(a)},getFlash:function(){return this._flash?this._flash:(this._flash=g("#"+this.uid).get(0),this._flash)}}),f.register=function(a,c){return c=i[a]=b.inherits(d,g.extend({flashExec:function(){var a=this.owner,b=this.getRuntime();return b.flashExec.apply(a,arguments)}},c))},e()>=11.4&&c.addRuntime(h,f),f}),b("runtime/flash/filepicker",["base","runtime/flash/runtime"],function(a,b){var c=a.$;return b.register("FilePicker",{init:function(a){var b,d,e=c.extend({},a);for(b=e.accept&&e.accept.length,d=0;b>d;d++)e.accept[d].title||(e.accept[d].title="Files");delete e.button,delete e.id,delete e.container,this.flashExec("FilePicker","init",e)},destroy:function(){this.flashExec("FilePicker","destroy")}})}),b("runtime/flash/transport",["base","runtime/flash/runtime","runtime/client"],function(b,c,d){var e=b.$;return c.register("Transport",{init:function(){this._status=0,this._response=null,this._responseJson=null},send:function(){var a,b=this.owner,c=this.options,d=this._initAjax(),f=b._blob,g=c.server;d.connectRuntime(f.ruid),c.sendAsBinary?(g+=(/\?/.test(g)?"&":"?")+e.param(b._formData),a=f.uid):(e.each(b._formData,function(a,b){d.exec("append",a,b)}),d.exec("appendBlob",c.fileVal,f.uid,c.filename||b._formData.name||"")),this._setRequestHeader(d,c.headers),d.exec("send",{method:c.method,url:g,forceURLStream:c.forceURLStream,mimeType:"application/octet-stream"},a)},getStatus:function(){return this._status},getResponse:function(){return this._response||""},getResponseAsJson:function(){return this._responseJson},abort:function(){var a=this._xhr;a&&(a.exec("abort"),a.destroy(),this._xhr=a=null)},destroy:function(){this.abort()},_initAjax:function(){var b=this,c=new d("XMLHttpRequest");return c.on("uploadprogress progress",function(a){var c=a.loaded/a.total;return c=Math.min(1,Math.max(0,c)),b.trigger("progress",c)}),c.on("load",function(){var d,e=c.exec("getStatus"),f=!1,g="";return c.off(),b._xhr=null,e>=200&&300>e?f=!0:e>=500&&600>e?(f=!0,g="server"):g="http",f&&(b._response=c.exec("getResponse"),b._response=decodeURIComponent(b._response),d=a.JSON&&a.JSON.parse||function(a){try{return new Function("return "+a).call()}catch(b){return{}}},b._responseJson=b._response?d(b._response):{}),c.destroy(),c=null,g?b.trigger("error",g):b.trigger("load")}),c.on("error",function(){c.off(),b._xhr=null,b.trigger("error","http")}),b._xhr=c,c},_setRequestHeader:function(a,b){e.each(b,function(b,c){a.exec("setRequestHeader",b,c)})}})}),b("preset/withoutimage",["base","widgets/filednd","widgets/filepaste","widgets/filepicker","widgets/queue","widgets/runtime","widgets/upload","widgets/validator","runtime/html5/blob","runtime/html5/dnd","runtime/html5/filepaste","runtime/html5/filepicker","runtime/html5/transport","runtime/flash/filepicker","runtime/flash/transport"],function(a){return a}),b("webuploader",["preset/withoutimage"],function(a){return a}),c("webuploader")});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/ztree/jquery.ztree.all.min.js b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/ztree/jquery.ztree.all.min.js
new file mode 100644
index 0000000..390a5f8
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/js/plugins/ztree/jquery.ztree.all.min.js
@@ -0,0 +1,165 @@
+
+/*
+ * JQuery zTree core v3.5.28
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2017-01-20
+ */
+(function(q){var H,I,J,K,L,M,u,r={},v={},w={},N={treeId:"",treeObj:null,view:{addDiyDom:null,autoCancelSelected:!0,dblClickExpand:!0,expandSpeed:"fast",fontCss:{},nameIsHTML:!1,selectedMulti:!0,showIcon:!0,showLine:!0,showTitle:!0,txtSelectedEnable:!1},data:{key:{children:"children",name:"name",title:"",url:"url",icon:"icon"},simpleData:{enable:!1,idKey:"id",pIdKey:"pId",rootPId:null},keep:{parent:!1,leaf:!1}},async:{enable:!1,contentType:"application/x-www-form-urlencoded",type:"post",dataType:"text",
+url:"",autoParam:[],otherParam:[],dataFilter:null},callback:{beforeAsync:null,beforeClick:null,beforeDblClick:null,beforeRightClick:null,beforeMouseDown:null,beforeMouseUp:null,beforeExpand:null,beforeCollapse:null,beforeRemove:null,onAsyncError:null,onAsyncSuccess:null,onNodeCreated:null,onClick:null,onDblClick:null,onRightClick:null,onMouseDown:null,onMouseUp:null,onExpand:null,onCollapse:null,onRemove:null}},x=[function(b){var a=b.treeObj,c=f.event;a.bind(c.NODECREATED,function(a,c,g){j.apply(b.callback.onNodeCreated,
+[a,c,g])});a.bind(c.CLICK,function(a,c,g,l,h){j.apply(b.callback.onClick,[c,g,l,h])});a.bind(c.EXPAND,function(a,c,g){j.apply(b.callback.onExpand,[a,c,g])});a.bind(c.COLLAPSE,function(a,c,g){j.apply(b.callback.onCollapse,[a,c,g])});a.bind(c.ASYNC_SUCCESS,function(a,c,g,l){j.apply(b.callback.onAsyncSuccess,[a,c,g,l])});a.bind(c.ASYNC_ERROR,function(a,c,g,l,h,f){j.apply(b.callback.onAsyncError,[a,c,g,l,h,f])});a.bind(c.REMOVE,function(a,c,g){j.apply(b.callback.onRemove,[a,c,g])});a.bind(c.SELECTED,
+function(a,c,g){j.apply(b.callback.onSelected,[c,g])});a.bind(c.UNSELECTED,function(a,c,g){j.apply(b.callback.onUnSelected,[c,g])})}],y=[function(b){var a=f.event;b.treeObj.unbind(a.NODECREATED).unbind(a.CLICK).unbind(a.EXPAND).unbind(a.COLLAPSE).unbind(a.ASYNC_SUCCESS).unbind(a.ASYNC_ERROR).unbind(a.REMOVE).unbind(a.SELECTED).unbind(a.UNSELECTED)}],z=[function(b){var a=h.getCache(b);a||(a={},h.setCache(b,a));a.nodes=[];a.doms=[]}],A=[function(b,a,c,d,e,g){if(c){var l=h.getRoot(b),f=b.data.key.children;
+c.level=a;c.tId=b.treeId+"_"+ ++l.zId;c.parentTId=d?d.tId:null;c.open=typeof c.open=="string"?j.eqs(c.open,"true"):!!c.open;c[f]&&c[f].length>0?(c.isParent=!0,c.zAsync=!0):(c.isParent=typeof c.isParent=="string"?j.eqs(c.isParent,"true"):!!c.isParent,c.open=c.isParent&&!b.async.enable?c.open:!1,c.zAsync=!c.isParent);c.isFirstNode=e;c.isLastNode=g;c.getParentNode=function(){return h.getNodeCache(b,c.parentTId)};c.getPreNode=function(){return h.getPreNode(b,c)};c.getNextNode=function(){return h.getNextNode(b,
+c)};c.getIndex=function(){return h.getNodeIndex(b,c)};c.getPath=function(){return h.getNodePath(b,c)};c.isAjaxing=!1;h.fixPIdKeyValue(b,c)}}],t=[function(b){var a=b.target,c=h.getSetting(b.data.treeId),d="",e=null,g="",l="",i=null,n=null,k=null;if(j.eqs(b.type,"mousedown"))l="mousedown";else if(j.eqs(b.type,"mouseup"))l="mouseup";else if(j.eqs(b.type,"contextmenu"))l="contextmenu";else if(j.eqs(b.type,"click"))if(j.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+f.id.SWITCH)!==null)d=j.getNodeMainDom(a).id,
+g="switchNode";else{if(k=j.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+f.id.A}]))d=j.getNodeMainDom(k).id,g="clickNode"}else if(j.eqs(b.type,"dblclick")&&(l="dblclick",k=j.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+f.id.A}])))d=j.getNodeMainDom(k).id,g="switchNode";if(l.length>0&&d.length==0&&(k=j.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+f.id.A}])))d=j.getNodeMainDom(k).id;if(d.length>0)switch(e=h.getNodeCache(c,d),g){case "switchNode":e.isParent?j.eqs(b.type,"click")||j.eqs(b.type,"dblclick")&&
+j.apply(c.view.dblClickExpand,[c.treeId,e],c.view.dblClickExpand)?i=H:g="":g="";break;case "clickNode":i=I}switch(l){case "mousedown":n=J;break;case "mouseup":n=K;break;case "dblclick":n=L;break;case "contextmenu":n=M}return{stop:!1,node:e,nodeEventType:g,nodeEventCallback:i,treeEventType:l,treeEventCallback:n}}],B=[function(b){var a=h.getRoot(b);a||(a={},h.setRoot(b,a));a[b.data.key.children]=[];a.expandTriggerFlag=!1;a.curSelectedList=[];a.noSelection=!0;a.createdNodes=[];a.zId=0;a._ver=(new Date).getTime()}],
+C=[],D=[],E=[],F=[],G=[],h={addNodeCache:function(b,a){h.getCache(b).nodes[h.getNodeCacheId(a.tId)]=a},getNodeCacheId:function(b){return b.substring(b.lastIndexOf("_")+1)},addAfterA:function(b){D.push(b)},addBeforeA:function(b){C.push(b)},addInnerAfterA:function(b){F.push(b)},addInnerBeforeA:function(b){E.push(b)},addInitBind:function(b){x.push(b)},addInitUnBind:function(b){y.push(b)},addInitCache:function(b){z.push(b)},addInitNode:function(b){A.push(b)},addInitProxy:function(b,a){a?t.splice(0,0,
+b):t.push(b)},addInitRoot:function(b){B.push(b)},addNodesData:function(b,a,c,d){var e=b.data.key.children;a[e]?c>=a[e].length&&(c=-1):(a[e]=[],c=-1);if(a[e].length>0&&c===0)a[e][0].isFirstNode=!1,i.setNodeLineIcos(b,a[e][0]);else if(a[e].length>0&&c<0)a[e][a[e].length-1].isLastNode=!1,i.setNodeLineIcos(b,a[e][a[e].length-1]);a.isParent=!0;c<0?a[e]=a[e].concat(d):(b=[c,0].concat(d),a[e].splice.apply(a[e],b))},addSelectedNode:function(b,a){var c=h.getRoot(b);h.isSelectedNode(b,a)||c.curSelectedList.push(a)},
+addCreatedNode:function(b,a){(b.callback.onNodeCreated||b.view.addDiyDom)&&h.getRoot(b).createdNodes.push(a)},addZTreeTools:function(b){G.push(b)},exSetting:function(b){q.extend(!0,N,b)},fixPIdKeyValue:function(b,a){b.data.simpleData.enable&&(a[b.data.simpleData.pIdKey]=a.parentTId?a.getParentNode()[b.data.simpleData.idKey]:b.data.simpleData.rootPId)},getAfterA:function(b,a,c){for(var d=0,e=D.length;d<e;d++)D[d].apply(this,arguments)},getBeforeA:function(b,a,c){for(var d=0,e=C.length;d<e;d++)C[d].apply(this,
+arguments)},getInnerAfterA:function(b,a,c){for(var d=0,e=F.length;d<e;d++)F[d].apply(this,arguments)},getInnerBeforeA:function(b,a,c){for(var d=0,e=E.length;d<e;d++)E[d].apply(this,arguments)},getCache:function(b){return w[b.treeId]},getNodeIndex:function(b,a){if(!a)return null;for(var c=b.data.key.children,d=a.parentTId?a.getParentNode():h.getRoot(b),e=0,g=d[c].length-1;e<=g;e++)if(d[c][e]===a)return e;return-1},getNextNode:function(b,a){if(!a)return null;for(var c=b.data.key.children,d=a.parentTId?
+a.getParentNode():h.getRoot(b),e=0,g=d[c].length-1;e<=g;e++)if(d[c][e]===a)return e==g?null:d[c][e+1];return null},getNodeByParam:function(b,a,c,d){if(!a||!c)return null;for(var e=b.data.key.children,g=0,l=a.length;g<l;g++){if(a[g][c]==d)return a[g];var f=h.getNodeByParam(b,a[g][e],c,d);if(f)return f}return null},getNodeCache:function(b,a){if(!a)return null;var c=w[b.treeId].nodes[h.getNodeCacheId(a)];return c?c:null},getNodeName:function(b,a){return""+a[b.data.key.name]},getNodePath:function(b,a){if(!a)return null;
+var c;(c=a.parentTId?a.getParentNode().getPath():[])&&c.push(a);return c},getNodeTitle:function(b,a){return""+a[b.data.key.title===""?b.data.key.name:b.data.key.title]},getNodes:function(b){return h.getRoot(b)[b.data.key.children]},getNodesByParam:function(b,a,c,d){if(!a||!c)return[];for(var e=b.data.key.children,g=[],l=0,f=a.length;l<f;l++)a[l][c]==d&&g.push(a[l]),g=g.concat(h.getNodesByParam(b,a[l][e],c,d));return g},getNodesByParamFuzzy:function(b,a,c,d){if(!a||!c)return[];for(var e=b.data.key.children,
+g=[],d=d.toLowerCase(),l=0,f=a.length;l<f;l++)typeof a[l][c]=="string"&&a[l][c].toLowerCase().indexOf(d)>-1&&g.push(a[l]),g=g.concat(h.getNodesByParamFuzzy(b,a[l][e],c,d));return g},getNodesByFilter:function(b,a,c,d,e){if(!a)return d?null:[];for(var g=b.data.key.children,f=d?null:[],i=0,n=a.length;i<n;i++){if(j.apply(c,[a[i],e],!1)){if(d)return a[i];f.push(a[i])}var k=h.getNodesByFilter(b,a[i][g],c,d,e);if(d&&k)return k;f=d?k:f.concat(k)}return f},getPreNode:function(b,a){if(!a)return null;for(var c=
+b.data.key.children,d=a.parentTId?a.getParentNode():h.getRoot(b),e=0,g=d[c].length;e<g;e++)if(d[c][e]===a)return e==0?null:d[c][e-1];return null},getRoot:function(b){return b?v[b.treeId]:null},getRoots:function(){return v},getSetting:function(b){return r[b]},getSettings:function(){return r},getZTreeTools:function(b){return(b=this.getRoot(this.getSetting(b)))?b.treeTools:null},initCache:function(b){for(var a=0,c=z.length;a<c;a++)z[a].apply(this,arguments)},initNode:function(b,a,c,d,e,g){for(var f=
+0,h=A.length;f<h;f++)A[f].apply(this,arguments)},initRoot:function(b){for(var a=0,c=B.length;a<c;a++)B[a].apply(this,arguments)},isSelectedNode:function(b,a){for(var c=h.getRoot(b),d=0,e=c.curSelectedList.length;d<e;d++)if(a===c.curSelectedList[d])return!0;return!1},removeNodeCache:function(b,a){var c=b.data.key.children;if(a[c])for(var d=0,e=a[c].length;d<e;d++)h.removeNodeCache(b,a[c][d]);h.getCache(b).nodes[h.getNodeCacheId(a.tId)]=null},removeSelectedNode:function(b,a){for(var c=h.getRoot(b),
+d=0,e=c.curSelectedList.length;d<e;d++)if(a===c.curSelectedList[d]||!h.getNodeCache(b,c.curSelectedList[d].tId))c.curSelectedList.splice(d,1),b.treeObj.trigger(f.event.UNSELECTED,[b.treeId,a]),d--,e--},setCache:function(b,a){w[b.treeId]=a},setRoot:function(b,a){v[b.treeId]=a},setZTreeTools:function(b,a){for(var c=0,d=G.length;c<d;c++)G[c].apply(this,arguments)},transformToArrayFormat:function(b,a){if(!a)return[];var c=b.data.key.children,d=[];if(j.isArray(a))for(var e=0,g=a.length;e<g;e++)d.push(a[e]),
+a[e][c]&&(d=d.concat(h.transformToArrayFormat(b,a[e][c])));else d.push(a),a[c]&&(d=d.concat(h.transformToArrayFormat(b,a[c])));return d},transformTozTreeFormat:function(b,a){var c,d,e=b.data.simpleData.idKey,g=b.data.simpleData.pIdKey,f=b.data.key.children;if(!e||e==""||!a)return[];if(j.isArray(a)){var h=[],i={};for(c=0,d=a.length;c<d;c++)i[a[c][e]]=a[c];for(c=0,d=a.length;c<d;c++)i[a[c][g]]&&a[c][e]!=a[c][g]?(i[a[c][g]][f]||(i[a[c][g]][f]=[]),i[a[c][g]][f].push(a[c])):h.push(a[c]);return h}else return[a]}},
+m={bindEvent:function(b){for(var a=0,c=x.length;a<c;a++)x[a].apply(this,arguments)},unbindEvent:function(b){for(var a=0,c=y.length;a<c;a++)y[a].apply(this,arguments)},bindTree:function(b){var a={treeId:b.treeId},c=b.treeObj;b.view.txtSelectedEnable||c.bind("selectstart",u).css({"-moz-user-select":"-moz-none"});c.bind("click",a,m.proxy);c.bind("dblclick",a,m.proxy);c.bind("mouseover",a,m.proxy);c.bind("mouseout",a,m.proxy);c.bind("mousedown",a,m.proxy);c.bind("mouseup",a,m.proxy);c.bind("contextmenu",
+a,m.proxy)},unbindTree:function(b){b.treeObj.unbind("selectstart",u).unbind("click",m.proxy).unbind("dblclick",m.proxy).unbind("mouseover",m.proxy).unbind("mouseout",m.proxy).unbind("mousedown",m.proxy).unbind("mouseup",m.proxy).unbind("contextmenu",m.proxy)},doProxy:function(b){for(var a=[],c=0,d=t.length;c<d;c++){var e=t[c].apply(this,arguments);a.push(e);if(e.stop)break}return a},proxy:function(b){var a=h.getSetting(b.data.treeId);if(!j.uCanDo(a,b))return!0;for(var a=m.doProxy(b),c=!0,d=0,e=a.length;d<
+e;d++){var g=a[d];g.nodeEventCallback&&(c=g.nodeEventCallback.apply(g,[b,g.node])&&c);g.treeEventCallback&&(c=g.treeEventCallback.apply(g,[b,g.node])&&c)}return c}};H=function(b,a){var c=h.getSetting(b.data.treeId);if(a.open){if(j.apply(c.callback.beforeCollapse,[c.treeId,a],!0)==!1)return!0}else if(j.apply(c.callback.beforeExpand,[c.treeId,a],!0)==!1)return!0;h.getRoot(c).expandTriggerFlag=!0;i.switchNode(c,a);return!0};I=function(b,a){var c=h.getSetting(b.data.treeId),d=c.view.autoCancelSelected&&
+(b.ctrlKey||b.metaKey)&&h.isSelectedNode(c,a)?0:c.view.autoCancelSelected&&(b.ctrlKey||b.metaKey)&&c.view.selectedMulti?2:1;if(j.apply(c.callback.beforeClick,[c.treeId,a,d],!0)==!1)return!0;d===0?i.cancelPreSelectedNode(c,a):i.selectNode(c,a,d===2);c.treeObj.trigger(f.event.CLICK,[b,c.treeId,a,d]);return!0};J=function(b,a){var c=h.getSetting(b.data.treeId);j.apply(c.callback.beforeMouseDown,[c.treeId,a],!0)&&j.apply(c.callback.onMouseDown,[b,c.treeId,a]);return!0};K=function(b,a){var c=h.getSetting(b.data.treeId);
+j.apply(c.callback.beforeMouseUp,[c.treeId,a],!0)&&j.apply(c.callback.onMouseUp,[b,c.treeId,a]);return!0};L=function(b,a){var c=h.getSetting(b.data.treeId);j.apply(c.callback.beforeDblClick,[c.treeId,a],!0)&&j.apply(c.callback.onDblClick,[b,c.treeId,a]);return!0};M=function(b,a){var c=h.getSetting(b.data.treeId);j.apply(c.callback.beforeRightClick,[c.treeId,a],!0)&&j.apply(c.callback.onRightClick,[b,c.treeId,a]);return typeof c.callback.onRightClick!="function"};u=function(b){b=b.originalEvent.srcElement.nodeName.toLowerCase();
+return b==="input"||b==="textarea"};var j={apply:function(b,a,c){return typeof b=="function"?b.apply(O,a?a:[]):c},canAsync:function(b,a){var c=b.data.key.children;return b.async.enable&&a&&a.isParent&&!(a.zAsync||a[c]&&a[c].length>0)},clone:function(b){if(b===null)return null;var a=j.isArray(b)?[]:{},c;for(c in b)a[c]=b[c]instanceof Date?new Date(b[c].getTime()):typeof b[c]==="object"?j.clone(b[c]):b[c];return a},eqs:function(b,a){return b.toLowerCase()===a.toLowerCase()},isArray:function(b){return Object.prototype.toString.apply(b)===
+"[object Array]"},isElement:function(b){return typeof HTMLElement==="object"?b instanceof HTMLElement:b&&typeof b==="object"&&b!==null&&b.nodeType===1&&typeof b.nodeName==="string"},$:function(b,a,c){a&&typeof a!="string"&&(c=a,a="");return typeof b=="string"?q(b,c?c.treeObj.get(0).ownerDocument:null):q("#"+b.tId+a,c?c.treeObj:null)},getMDom:function(b,a,c){if(!a)return null;for(;a&&a.id!==b.treeId;){for(var d=0,e=c.length;a.tagName&&d<e;d++)if(j.eqs(a.tagName,c[d].tagName)&&a.getAttribute(c[d].attrName)!==
+null)return a;a=a.parentNode}return null},getNodeMainDom:function(b){return q(b).parent("li").get(0)||q(b).parentsUntil("li").parent().get(0)},isChildOrSelf:function(b,a){return q(b).closest("#"+a).length>0},uCanDo:function(){return!0}},i={addNodes:function(b,a,c,d,e){if(!b.data.keep.leaf||!a||a.isParent)if(j.isArray(d)||(d=[d]),b.data.simpleData.enable&&(d=h.transformTozTreeFormat(b,d)),a){var g=k(a,f.id.SWITCH,b),l=k(a,f.id.ICON,b),p=k(a,f.id.UL,b);if(!a.open)i.replaceSwitchClass(a,g,f.folder.CLOSE),
+i.replaceIcoClass(a,l,f.folder.CLOSE),a.open=!1,p.css({display:"none"});h.addNodesData(b,a,c,d);i.createNodes(b,a.level+1,d,a,c);e||i.expandCollapseParentNode(b,a,!0)}else h.addNodesData(b,h.getRoot(b),c,d),i.createNodes(b,0,d,null,c)},appendNodes:function(b,a,c,d,e,g,f){if(!c)return[];var j=[],n=b.data.key.children,k=(d?d:h.getRoot(b))[n],m,Q;if(!k||e>=k.length-c.length)e=-1;for(var s=0,R=c.length;s<R;s++){var o=c[s];g&&(m=(e===0||k.length==c.length)&&s==0,Q=e<0&&s==c.length-1,h.initNode(b,a,o,d,
+m,Q,f),h.addNodeCache(b,o));m=[];o[n]&&o[n].length>0&&(m=i.appendNodes(b,a+1,o[n],o,-1,g,f&&o.open));f&&(i.makeDOMNodeMainBefore(j,b,o),i.makeDOMNodeLine(j,b,o),h.getBeforeA(b,o,j),i.makeDOMNodeNameBefore(j,b,o),h.getInnerBeforeA(b,o,j),i.makeDOMNodeIcon(j,b,o),h.getInnerAfterA(b,o,j),i.makeDOMNodeNameAfter(j,b,o),h.getAfterA(b,o,j),o.isParent&&o.open&&i.makeUlHtml(b,o,j,m.join("")),i.makeDOMNodeMainAfter(j,b,o),h.addCreatedNode(b,o))}return j},appendParentULDom:function(b,a){var c=[],d=k(a,b);!d.get(0)&&
+a.parentTId&&(i.appendParentULDom(b,a.getParentNode()),d=k(a,b));var e=k(a,f.id.UL,b);e.get(0)&&e.remove();e=i.appendNodes(b,a.level+1,a[b.data.key.children],a,-1,!1,!0);i.makeUlHtml(b,a,c,e.join(""));d.append(c.join(""))},asyncNode:function(b,a,c,d){var e,g;if(a&&!a.isParent)return j.apply(d),!1;else if(a&&a.isAjaxing)return!1;else if(j.apply(b.callback.beforeAsync,[b.treeId,a],!0)==!1)return j.apply(d),!1;if(a)a.isAjaxing=!0,k(a,f.id.ICON,b).attr({style:"","class":f.className.BUTTON+" "+f.className.ICO_LOADING});
+var l={};for(e=0,g=b.async.autoParam.length;a&&e<g;e++){var p=b.async.autoParam[e].split("="),n=p;p.length>1&&(n=p[1],p=p[0]);l[n]=a[p]}if(j.isArray(b.async.otherParam))for(e=0,g=b.async.otherParam.length;e<g;e+=2)l[b.async.otherParam[e]]=b.async.otherParam[e+1];else for(var m in b.async.otherParam)l[m]=b.async.otherParam[m];var P=h.getRoot(b)._ver;q.ajax({contentType:b.async.contentType,cache:!1,type:b.async.type,url:j.apply(b.async.url,[b.treeId,a],b.async.url),data:b.async.contentType.indexOf("application/json")>
+-1?JSON.stringify(l):l,dataType:b.async.dataType,success:function(e){if(P==h.getRoot(b)._ver){var g=[];try{g=!e||e.length==0?[]:typeof e=="string"?eval("("+e+")"):e}catch(l){g=e}if(a)a.isAjaxing=null,a.zAsync=!0;i.setNodeLineIcos(b,a);g&&g!==""?(g=j.apply(b.async.dataFilter,[b.treeId,a,g],g),i.addNodes(b,a,-1,g?j.clone(g):[],!!c)):i.addNodes(b,a,-1,[],!!c);b.treeObj.trigger(f.event.ASYNC_SUCCESS,[b.treeId,a,e]);j.apply(d)}},error:function(c,d,e){if(P==h.getRoot(b)._ver){if(a)a.isAjaxing=null;i.setNodeLineIcos(b,
+a);b.treeObj.trigger(f.event.ASYNC_ERROR,[b.treeId,a,c,d,e])}}});return!0},cancelPreSelectedNode:function(b,a,c){var d=h.getRoot(b).curSelectedList,e,g;for(e=d.length-1;e>=0;e--)if(g=d[e],a===g||!a&&(!c||c!==g))if(k(g,f.id.A,b).removeClass(f.node.CURSELECTED),a){h.removeSelectedNode(b,a);break}else d.splice(e,1),b.treeObj.trigger(f.event.UNSELECTED,[b.treeId,g])},createNodeCallback:function(b){if(b.callback.onNodeCreated||b.view.addDiyDom)for(var a=h.getRoot(b);a.createdNodes.length>0;){var c=a.createdNodes.shift();
+j.apply(b.view.addDiyDom,[b.treeId,c]);b.callback.onNodeCreated&&b.treeObj.trigger(f.event.NODECREATED,[b.treeId,c])}},createNodes:function(b,a,c,d,e){if(c&&c.length!=0){var g=h.getRoot(b),l=b.data.key.children,l=!d||d.open||!!k(d[l][0],b).get(0);g.createdNodes=[];var a=i.appendNodes(b,a,c,d,e,!0,l),j,n;d?(d=k(d,f.id.UL,b),d.get(0)&&(j=d)):j=b.treeObj;j&&(e>=0&&(n=j.children()[e]),e>=0&&n?q(n).before(a.join("")):j.append(a.join("")));i.createNodeCallback(b)}},destroy:function(b){b&&(h.initCache(b),
+h.initRoot(b),m.unbindTree(b),m.unbindEvent(b),b.treeObj.empty(),delete r[b.treeId])},expandCollapseNode:function(b,a,c,d,e){var g=h.getRoot(b),l=b.data.key.children,p;if(a){if(g.expandTriggerFlag)p=e,e=function(){p&&p();a.open?b.treeObj.trigger(f.event.EXPAND,[b.treeId,a]):b.treeObj.trigger(f.event.COLLAPSE,[b.treeId,a])},g.expandTriggerFlag=!1;if(!a.open&&a.isParent&&(!k(a,f.id.UL,b).get(0)||a[l]&&a[l].length>0&&!k(a[l][0],b).get(0)))i.appendParentULDom(b,a),i.createNodeCallback(b);if(a.open==c)j.apply(e,
+[]);else{var c=k(a,f.id.UL,b),g=k(a,f.id.SWITCH,b),n=k(a,f.id.ICON,b);a.isParent?(a.open=!a.open,a.iconOpen&&a.iconClose&&n.attr("style",i.makeNodeIcoStyle(b,a)),a.open?(i.replaceSwitchClass(a,g,f.folder.OPEN),i.replaceIcoClass(a,n,f.folder.OPEN),d==!1||b.view.expandSpeed==""?(c.show(),j.apply(e,[])):a[l]&&a[l].length>0?c.slideDown(b.view.expandSpeed,e):(c.show(),j.apply(e,[]))):(i.replaceSwitchClass(a,g,f.folder.CLOSE),i.replaceIcoClass(a,n,f.folder.CLOSE),d==!1||b.view.expandSpeed==""||!(a[l]&&
+a[l].length>0)?(c.hide(),j.apply(e,[])):c.slideUp(b.view.expandSpeed,e))):j.apply(e,[])}}else j.apply(e,[])},expandCollapseParentNode:function(b,a,c,d,e){a&&(a.parentTId?(i.expandCollapseNode(b,a,c,d),a.parentTId&&i.expandCollapseParentNode(b,a.getParentNode(),c,d,e)):i.expandCollapseNode(b,a,c,d,e))},expandCollapseSonNode:function(b,a,c,d,e){var g=h.getRoot(b),f=b.data.key.children,g=a?a[f]:g[f],f=a?!1:d,j=h.getRoot(b).expandTriggerFlag;h.getRoot(b).expandTriggerFlag=!1;if(g)for(var k=0,m=g.length;k<
+m;k++)g[k]&&i.expandCollapseSonNode(b,g[k],c,f);h.getRoot(b).expandTriggerFlag=j;i.expandCollapseNode(b,a,c,d,e)},isSelectedNode:function(b,a){if(!a)return!1;var c=h.getRoot(b).curSelectedList,d;for(d=c.length-1;d>=0;d--)if(a===c[d])return!0;return!1},makeDOMNodeIcon:function(b,a,c){var d=h.getNodeName(a,c),d=a.view.nameIsHTML?d:d.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");b.push("<span id='",c.tId,f.id.ICON,"' title='' treeNode",f.id.ICON," class='",i.makeNodeIcoClass(a,c),"' style='",
+i.makeNodeIcoStyle(a,c),"'></span><span id='",c.tId,f.id.SPAN,"' class='",f.className.NAME,"'>",d,"</span>")},makeDOMNodeLine:function(b,a,c){b.push("<span id='",c.tId,f.id.SWITCH,"' title='' class='",i.makeNodeLineClass(a,c),"' treeNode",f.id.SWITCH,"></span>")},makeDOMNodeMainAfter:function(b){b.push("</li>")},makeDOMNodeMainBefore:function(b,a,c){b.push("<li id='",c.tId,"' class='",f.className.LEVEL,c.level,"' tabindex='0' hidefocus='true' treenode>")},makeDOMNodeNameAfter:function(b){b.push("</a>")},
+makeDOMNodeNameBefore:function(b,a,c){var d=h.getNodeTitle(a,c),e=i.makeNodeUrl(a,c),g=i.makeNodeFontCss(a,c),l=[],k;for(k in g)l.push(k,":",g[k],";");b.push("<a id='",c.tId,f.id.A,"' class='",f.className.LEVEL,c.level,"' treeNode",f.id.A,' onclick="',c.click||"",'" ',e!=null&&e.length>0?"href='"+e+"'":""," target='",i.makeNodeTarget(c),"' style='",l.join(""),"'");j.apply(a.view.showTitle,[a.treeId,c],a.view.showTitle)&&d&&b.push("title='",d.replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,
+"&gt;"),"'");b.push(">")},makeNodeFontCss:function(b,a){var c=j.apply(b.view.fontCss,[b.treeId,a],b.view.fontCss);return c&&typeof c!="function"?c:{}},makeNodeIcoClass:function(b,a){var c=["ico"];a.isAjaxing||(c[0]=(a.iconSkin?a.iconSkin+"_":"")+c[0],a.isParent?c.push(a.open?f.folder.OPEN:f.folder.CLOSE):c.push(f.folder.DOCU));return f.className.BUTTON+" "+c.join("_")},makeNodeIcoStyle:function(b,a){var c=[];if(!a.isAjaxing){var d=a.isParent&&a.iconOpen&&a.iconClose?a.open?a.iconOpen:a.iconClose:
+a[b.data.key.icon];d&&c.push("background:url(",d,") 0 0 no-repeat;");(b.view.showIcon==!1||!j.apply(b.view.showIcon,[b.treeId,a],!0))&&c.push("width:0px;height:0px;")}return c.join("")},makeNodeLineClass:function(b,a){var c=[];b.view.showLine?a.level==0&&a.isFirstNode&&a.isLastNode?c.push(f.line.ROOT):a.level==0&&a.isFirstNode?c.push(f.line.ROOTS):a.isLastNode?c.push(f.line.BOTTOM):c.push(f.line.CENTER):c.push(f.line.NOLINE);a.isParent?c.push(a.open?f.folder.OPEN:f.folder.CLOSE):c.push(f.folder.DOCU);
+return i.makeNodeLineClassEx(a)+c.join("_")},makeNodeLineClassEx:function(b){return f.className.BUTTON+" "+f.className.LEVEL+b.level+" "+f.className.SWITCH+" "},makeNodeTarget:function(b){return b.target||"_blank"},makeNodeUrl:function(b,a){var c=b.data.key.url;return a[c]?a[c]:null},makeUlHtml:function(b,a,c,d){c.push("<ul id='",a.tId,f.id.UL,"' class='",f.className.LEVEL,a.level," ",i.makeUlLineClass(b,a),"' style='display:",a.open?"block":"none","'>");c.push(d);c.push("</ul>")},makeUlLineClass:function(b,
+a){return b.view.showLine&&!a.isLastNode?f.line.LINE:""},removeChildNodes:function(b,a){if(a){var c=b.data.key.children,d=a[c];if(d){for(var e=0,g=d.length;e<g;e++)h.removeNodeCache(b,d[e]);h.removeSelectedNode(b);delete a[c];b.data.keep.parent?k(a,f.id.UL,b).empty():(a.isParent=!1,a.open=!1,c=k(a,f.id.SWITCH,b),d=k(a,f.id.ICON,b),i.replaceSwitchClass(a,c,f.folder.DOCU),i.replaceIcoClass(a,d,f.folder.DOCU),k(a,f.id.UL,b).remove())}}},scrollIntoView:function(b){if(b){if(!Element.prototype.scrollIntoViewIfNeeded)Element.prototype.scrollIntoViewIfNeeded=
+function(a){function b(a,d,e,f){return{left:a,top:d,width:e,height:f,right:a+e,bottom:d+f,translate:function(g,h){return b(g+a,h+d,e,f)},relativeFromTo:function(h,i){var j=a,l=d,h=h.offsetParent,i=i.offsetParent;if(h===i)return g;for(;h;h=h.offsetParent)j+=h.offsetLeft+h.clientLeft,l+=h.offsetTop+h.clientTop;for(;i;i=i.offsetParent)j-=i.offsetLeft+i.clientLeft,l-=i.offsetTop+i.clientTop;return b(j,l,e,f)}}}for(var d,e=this,g=b(this.offsetLeft,this.offsetTop,this.offsetWidth,this.offsetHeight);j.isElement(d=
+e.parentNode);){var f=d.offsetLeft+d.clientLeft,h=d.offsetTop+d.clientTop,g=g.relativeFromTo(e,d).translate(-f,-h);d.scrollLeft=!1===a||g.left<=d.scrollLeft+d.clientWidth&&d.scrollLeft<=g.right-d.clientWidth+d.clientWidth?Math.min(g.left,Math.max(g.right-d.clientWidth,d.scrollLeft)):(g.right-d.clientWidth+g.left)/2;d.scrollTop=!1===a||g.top<=d.scrollTop+d.clientHeight&&d.scrollTop<=g.bottom-d.clientHeight+d.clientHeight?Math.min(g.top,Math.max(g.bottom-d.clientHeight,d.scrollTop)):(g.bottom-d.clientHeight+
+g.top)/2;g=g.translate(f-d.scrollLeft,h-d.scrollTop);e=d}};b.scrollIntoViewIfNeeded()}},setFirstNode:function(b,a){var c=b.data.key.children;if(a[c].length>0)a[c][0].isFirstNode=!0},setLastNode:function(b,a){var c=b.data.key.children,d=a[c].length;if(d>0)a[c][d-1].isLastNode=!0},removeNode:function(b,a){var c=h.getRoot(b),d=b.data.key.children,e=a.parentTId?a.getParentNode():c;a.isFirstNode=!1;a.isLastNode=!1;a.getPreNode=function(){return null};a.getNextNode=function(){return null};if(h.getNodeCache(b,
+a.tId)){k(a,b).remove();h.removeNodeCache(b,a);h.removeSelectedNode(b,a);for(var g=0,j=e[d].length;g<j;g++)if(e[d][g].tId==a.tId){e[d].splice(g,1);break}i.setFirstNode(b,e);i.setLastNode(b,e);var p,g=e[d].length;if(!b.data.keep.parent&&g==0)e.isParent=!1,e.open=!1,g=k(e,f.id.UL,b),j=k(e,f.id.SWITCH,b),p=k(e,f.id.ICON,b),i.replaceSwitchClass(e,j,f.folder.DOCU),i.replaceIcoClass(e,p,f.folder.DOCU),g.css("display","none");else if(b.view.showLine&&g>0){var n=e[d][g-1],g=k(n,f.id.UL,b),j=k(n,f.id.SWITCH,
+b);p=k(n,f.id.ICON,b);e==c?e[d].length==1?i.replaceSwitchClass(n,j,f.line.ROOT):(c=k(e[d][0],f.id.SWITCH,b),i.replaceSwitchClass(e[d][0],c,f.line.ROOTS),i.replaceSwitchClass(n,j,f.line.BOTTOM)):i.replaceSwitchClass(n,j,f.line.BOTTOM);g.removeClass(f.line.LINE)}}},replaceIcoClass:function(b,a,c){if(a&&!b.isAjaxing&&(b=a.attr("class"),b!=void 0)){b=b.split("_");switch(c){case f.folder.OPEN:case f.folder.CLOSE:case f.folder.DOCU:b[b.length-1]=c}a.attr("class",b.join("_"))}},replaceSwitchClass:function(b,
+a,c){if(a){var d=a.attr("class");if(d!=void 0){d=d.split("_");switch(c){case f.line.ROOT:case f.line.ROOTS:case f.line.CENTER:case f.line.BOTTOM:case f.line.NOLINE:d[0]=i.makeNodeLineClassEx(b)+c;break;case f.folder.OPEN:case f.folder.CLOSE:case f.folder.DOCU:d[1]=c}a.attr("class",d.join("_"));c!==f.folder.DOCU?a.removeAttr("disabled"):a.attr("disabled","disabled")}}},selectNode:function(b,a,c){c||i.cancelPreSelectedNode(b,null,a);k(a,f.id.A,b).addClass(f.node.CURSELECTED);h.addSelectedNode(b,a);
+b.treeObj.trigger(f.event.SELECTED,[b.treeId,a])},setNodeFontCss:function(b,a){var c=k(a,f.id.A,b),d=i.makeNodeFontCss(b,a);d&&c.css(d)},setNodeLineIcos:function(b,a){if(a){var c=k(a,f.id.SWITCH,b),d=k(a,f.id.UL,b),e=k(a,f.id.ICON,b),g=i.makeUlLineClass(b,a);g.length==0?d.removeClass(f.line.LINE):d.addClass(g);c.attr("class",i.makeNodeLineClass(b,a));a.isParent?c.removeAttr("disabled"):c.attr("disabled","disabled");e.removeAttr("style");e.attr("style",i.makeNodeIcoStyle(b,a));e.attr("class",i.makeNodeIcoClass(b,
+a))}},setNodeName:function(b,a){var c=h.getNodeTitle(b,a),d=k(a,f.id.SPAN,b);d.empty();b.view.nameIsHTML?d.html(h.getNodeName(b,a)):d.text(h.getNodeName(b,a));j.apply(b.view.showTitle,[b.treeId,a],b.view.showTitle)&&k(a,f.id.A,b).attr("title",!c?"":c)},setNodeTarget:function(b,a){k(a,f.id.A,b).attr("target",i.makeNodeTarget(a))},setNodeUrl:function(b,a){var c=k(a,f.id.A,b),d=i.makeNodeUrl(b,a);d==null||d.length==0?c.removeAttr("href"):c.attr("href",d)},switchNode:function(b,a){a.open||!j.canAsync(b,
+a)?i.expandCollapseNode(b,a,!a.open):b.async.enable?i.asyncNode(b,a)||i.expandCollapseNode(b,a,!a.open):a&&i.expandCollapseNode(b,a,!a.open)}};q.fn.zTree={consts:{className:{BUTTON:"button",LEVEL:"level",ICO_LOADING:"ico_loading",SWITCH:"switch",NAME:"node_name"},event:{NODECREATED:"ztree_nodeCreated",CLICK:"ztree_click",EXPAND:"ztree_expand",COLLAPSE:"ztree_collapse",ASYNC_SUCCESS:"ztree_async_success",ASYNC_ERROR:"ztree_async_error",REMOVE:"ztree_remove",SELECTED:"ztree_selected",UNSELECTED:"ztree_unselected"},
+id:{A:"_a",ICON:"_ico",SPAN:"_span",SWITCH:"_switch",UL:"_ul"},line:{ROOT:"root",ROOTS:"roots",CENTER:"center",BOTTOM:"bottom",NOLINE:"noline",LINE:"line"},folder:{OPEN:"open",CLOSE:"close",DOCU:"docu"},node:{CURSELECTED:"curSelectedNode"}},_z:{tools:j,view:i,event:m,data:h},getZTreeObj:function(b){return(b=h.getZTreeTools(b))?b:null},destroy:function(b){if(b&&b.length>0)i.destroy(h.getSetting(b));else for(var a in r)i.destroy(r[a])},init:function(b,a,c){var d=j.clone(N);q.extend(!0,d,a);d.treeId=
+b.attr("id");d.treeObj=b;d.treeObj.empty();r[d.treeId]=d;if(typeof document.body.style.maxHeight==="undefined")d.view.expandSpeed="";h.initRoot(d);b=h.getRoot(d);a=d.data.key.children;c=c?j.clone(j.isArray(c)?c:[c]):[];b[a]=d.data.simpleData.enable?h.transformTozTreeFormat(d,c):c;h.initCache(d);m.unbindTree(d);m.bindTree(d);m.unbindEvent(d);m.bindEvent(d);c={setting:d,addNodes:function(a,b,c,f){function h(){i.addNodes(d,a,b,m,f==!0)}a||(a=null);if(a&&!a.isParent&&d.data.keep.leaf)return null;var k=
+parseInt(b,10);isNaN(k)?(f=!!c,c=b,b=-1):b=k;if(!c)return null;var m=j.clone(j.isArray(c)?c:[c]);j.canAsync(d,a)?i.asyncNode(d,a,f,h):h();return m},cancelSelectedNode:function(a){i.cancelPreSelectedNode(d,a)},destroy:function(){i.destroy(d)},expandAll:function(a){a=!!a;i.expandCollapseSonNode(d,null,a,!0);return a},expandNode:function(a,b,c,f,n){function m(){var b=k(a,d).get(0);b&&f!==!1&&i.scrollIntoView(b)}if(!a||!a.isParent)return null;b!==!0&&b!==!1&&(b=!a.open);if((n=!!n)&&b&&j.apply(d.callback.beforeExpand,
+[d.treeId,a],!0)==!1)return null;else if(n&&!b&&j.apply(d.callback.beforeCollapse,[d.treeId,a],!0)==!1)return null;b&&a.parentTId&&i.expandCollapseParentNode(d,a.getParentNode(),b,!1);if(b===a.open&&!c)return null;h.getRoot(d).expandTriggerFlag=n;!j.canAsync(d,a)&&c?i.expandCollapseSonNode(d,a,b,!0,m):(a.open=!b,i.switchNode(this.setting,a),m());return b},getNodes:function(){return h.getNodes(d)},getNodeByParam:function(a,b,c){return!a?null:h.getNodeByParam(d,c?c[d.data.key.children]:h.getNodes(d),
+a,b)},getNodeByTId:function(a){return h.getNodeCache(d,a)},getNodesByParam:function(a,b,c){return!a?null:h.getNodesByParam(d,c?c[d.data.key.children]:h.getNodes(d),a,b)},getNodesByParamFuzzy:function(a,b,c){return!a?null:h.getNodesByParamFuzzy(d,c?c[d.data.key.children]:h.getNodes(d),a,b)},getNodesByFilter:function(a,b,c,f){b=!!b;return!a||typeof a!="function"?b?null:[]:h.getNodesByFilter(d,c?c[d.data.key.children]:h.getNodes(d),a,b,f)},getNodeIndex:function(a){if(!a)return null;for(var b=d.data.key.children,
+c=a.parentTId?a.getParentNode():h.getRoot(d),f=0,i=c[b].length;f<i;f++)if(c[b][f]==a)return f;return-1},getSelectedNodes:function(){for(var a=[],b=h.getRoot(d).curSelectedList,c=0,f=b.length;c<f;c++)a.push(b[c]);return a},isSelectedNode:function(a){return h.isSelectedNode(d,a)},reAsyncChildNodes:function(a,b,c){if(this.setting.async.enable){var j=!a;j&&(a=h.getRoot(d));if(b=="refresh"){for(var b=this.setting.data.key.children,n=0,m=a[b]?a[b].length:0;n<m;n++)h.removeNodeCache(d,a[b][n]);h.removeSelectedNode(d);
+a[b]=[];j?this.setting.treeObj.empty():k(a,f.id.UL,d).empty()}i.asyncNode(this.setting,j?null:a,!!c)}},refresh:function(){this.setting.treeObj.empty();var a=h.getRoot(d),b=a[d.data.key.children];h.initRoot(d);a[d.data.key.children]=b;h.initCache(d);i.createNodes(d,0,a[d.data.key.children],null,-1)},removeChildNodes:function(a){if(!a)return null;var b=a[d.data.key.children];i.removeChildNodes(d,a);return b?b:null},removeNode:function(a,b){a&&(b=!!b,b&&j.apply(d.callback.beforeRemove,[d.treeId,a],!0)==
+!1||(i.removeNode(d,a),b&&this.setting.treeObj.trigger(f.event.REMOVE,[d.treeId,a])))},selectNode:function(a,b,c){function f(){if(!c){var b=k(a,d).get(0);i.scrollIntoView(b)}}if(a&&j.uCanDo(d)){b=d.view.selectedMulti&&b;if(a.parentTId)i.expandCollapseParentNode(d,a.getParentNode(),!0,!1,f);else if(!c)try{k(a,d).focus().blur()}catch(h){}i.selectNode(d,a,b)}},transformTozTreeNodes:function(a){return h.transformTozTreeFormat(d,a)},transformToArray:function(a){return h.transformToArrayFormat(d,a)},updateNode:function(a){a&&
+k(a,d).get(0)&&j.uCanDo(d)&&(i.setNodeName(d,a),i.setNodeTarget(d,a),i.setNodeUrl(d,a),i.setNodeLineIcos(d,a),i.setNodeFontCss(d,a))}};b.treeTools=c;h.setZTreeTools(d,c);b[a]&&b[a].length>0?i.createNodes(d,0,b[a],null,-1):d.async.enable&&d.async.url&&d.async.url!==""&&i.asyncNode(d);return c}};var O=q.fn.zTree,k=j.$,f=O.consts})(jQuery);
+
+/*
+ * JQuery zTree excheck v3.5.28
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2017-01-20
+ */
+(function(m){var p,q,r,o={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},v={check:{enable:!1,autoCheckTrigger:!1,chkStyle:o.checkbox.STYLE,nocheckInherit:!1,chkDisabledInherit:!1,radioType:o.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c,
+a){if(a.chkDisabled===!0)return!1;var b=g.getSetting(c.data.treeId),d=b.data.key.checked;if(k.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;a[d]=!a[d];e.checkNodeRelation(b,a);d=n(a,j.id.CHECK,b);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(j.event.CHECK,[c,b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=g.getSetting(c.data.treeId),d=n(a,j.id.CHECK,b);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c,a){if(a.chkDisabled===
+!0)return!1;var b=g.getSetting(c.data.treeId),d=n(a,j.id.CHECK,b);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};m.extend(!0,m.fn.zTree.consts,o);m.extend(!0,m.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,h,i=c.data.key.children,l=c.data.key.checked;b=j.radio;if(c.check.chkStyle==b.STYLE){var f=g.getRadioCheckedList(c);if(a[l])if(c.check.radioType==b.TYPE_ALL){for(d=f.length-1;d>=0;d--)b=f[d],b[l]&&b!=a&&(b[l]=!1,f.splice(d,1),e.setChkClass(c,n(b,j.id.CHECK,c),b),b.parentTId!=
+a.parentTId&&e.repairParentChkClassWithSelf(c,b));f.push(a)}else{f=a.parentTId?a.getParentNode():g.getRoot(c);for(d=0,h=f[i].length;d<h;d++)b=f[i][d],b[l]&&b!=a&&(b[l]=!1,e.setChkClass(c,n(b,j.id.CHECK,c),b))}else if(c.check.radioType==b.TYPE_ALL)for(d=0,h=f.length;d<h;d++)if(a==f[d]){f.splice(d,1);break}}else a[l]&&(!a[i]||a[i].length==0||c.check.chkboxType.Y.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!0),!a[l]&&(!a[i]||a[i].length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,
+a,!1),a[l]&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!a[l]&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=c.data.key.checked,d=j.checkbox,h=j.radio,i="",i=a.chkDisabled===!0?d.DISABLED:a.halfCheck?d.PART:c.check.chkStyle==h.STYLE?a.check_Child_State<1?d.FULL:d.PART:a[b]?a.check_Child_State===2||a.check_Child_State===-1?d.FULL:d.PART:a.check_Child_State<1?d.FULL:d.PART,b=c.check.chkStyle+"_"+(a[b]?d.TRUE:d.FALSE)+
+"_"+i,b=a.check_Focus&&a.chkDisabled!==!0?b+"_"+d.FOCUS:b;return j.className.BUTTON+" "+d.DEFAULT+" "+b},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===j.checkbox.STYLE)for(var b=c.data.key.checked,d=c.data.key.children,h=g.getRoot(c),i=0,l=h[d].length;i<l;i++){var f=h[d][i];f.nocheck!==!0&&f.chkDisabled!==!0&&(f[b]=a);e.setSonNodeCheckBox(c,f,a)}},repairChkClass:function(c,a){if(a&&(g.makeChkFlag(c,a),a.nocheck!==!0)){var b=n(a,j.id.CHECK,c);e.setChkClass(c,b,a)}},repairParentChkClass:function(c,
+a){if(a&&a.parentTId){var b=a.getParentNode();e.repairChkClass(c,b);e.repairParentChkClass(c,b)}},repairParentChkClassWithSelf:function(c,a){if(a){var b=c.data.key.children;a[b]&&a[b].length>0?e.repairParentChkClass(c,a[b][0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b,d){if(a){var h=c.data.key.children;if(a.chkDisabled!=b)a.chkDisabled=b;e.repairChkClass(c,a);if(a[h]&&d)for(var i=0,l=a[h].length;i<l;i++)e.repairSonChkDisabled(c,a[h][i],b,d)}},repairParentChkDisabled:function(c,
+a,b,d){if(a){if(a.chkDisabled!=b&&d)a.chkDisabled=b;e.repairChkClass(c,a);e.repairParentChkDisabled(c,a.getParentNode(),b,d)}},setChkClass:function(c,a,b){a&&(b.nocheck===!0?a.hide():a.show(),a.attr("class",e.makeChkClass(c,b)))},setParentNodeCheckBox:function(c,a,b,d){var h=c.data.key.children,i=c.data.key.checked,l=n(a,j.id.CHECK,c);d||(d=a);g.makeChkFlag(c,a);a.nocheck!==!0&&a.chkDisabled!==!0&&(a[i]=b,e.setChkClass(c,l,a),c.check.autoCheckTrigger&&a!=d&&c.treeObj.trigger(j.event.CHECK,[null,c.treeId,
+a]));if(a.parentTId){l=!0;if(!b)for(var h=a.getParentNode()[h],f=0,k=h.length;f<k;f++)if(h[f].nocheck!==!0&&h[f].chkDisabled!==!0&&h[f][i]||(h[f].nocheck===!0||h[f].chkDisabled===!0)&&h[f].check_Child_State>0){l=!1;break}l&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var h=c.data.key.children,i=c.data.key.checked,l=n(a,j.id.CHECK,c);d||(d=a);var f=!1;if(a[h])for(var k=0,m=a[h].length;k<m;k++){var o=a[h][k];e.setSonNodeCheckBox(c,o,b,d);o.chkDisabled===
+!0&&(f=!0)}if(a!=g.getRoot(c)&&a.chkDisabled!==!0){f&&a.nocheck!==!0&&g.makeChkFlag(c,a);if(a.nocheck!==!0&&a.chkDisabled!==!0){if(a[i]=b,!f)a.check_Child_State=a[h]&&a[h].length>0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,l,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&a.chkDisabled!==!0&&c.treeObj.trigger(j.event.CHECK,[null,c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=g.getRoot(c).radioCheckedList,b=0,d=a.length;b<d;b++)g.getNodeCache(c,a[b].tId)||(a.splice(b,
+1),b--,d--);return a},getCheckStatus:function(c,a){if(!c.check.enable||a.nocheck||a.chkDisabled)return null;var b=c.data.key.checked;return{checked:a[b],half:a.halfCheck?a.halfCheck:c.check.chkStyle==j.radio.STYLE?a.check_Child_State===2:a[b]?a.check_Child_State>-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var h=c.data.key.children,i=c.data.key.checked,e=b&&c.check.chkStyle==j.radio.STYLE&&c.check.radioType==j.radio.TYPE_ALL,d=!d?[]:d,
+f=0,k=a.length;f<k;f++){if(a[f].nocheck!==!0&&a[f].chkDisabled!==!0&&a[f][i]==b&&(d.push(a[f]),e))break;g.getTreeCheckedNodes(c,a[f][h],b,d);if(e&&d.length>0)break}return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];for(var d=c.data.key.children,h=c.data.key.checked,b=!b?[]:b,i=0,e=a.length;i<e;i++)a[i].nocheck!==!0&&a[i].chkDisabled!==!0&&a[i][h]!=a[i].checkedOld&&b.push(a[i]),g.getTreeChangeCheckedNodes(c,a[i][d],b);return b},makeChkFlag:function(c,a){if(a){var b=c.data.key.children,
+d=c.data.key.checked,h=-1;if(a[b])for(var i=0,e=a[b].length;i<e;i++){var f=a[b][i],g=-1;if(c.check.chkStyle==j.radio.STYLE)if(g=f.nocheck===!0||f.chkDisabled===!0?f.check_Child_State:f.halfCheck===!0?2:f[d]?2:f.check_Child_State>0?2:0,g==2){h=2;break}else g==0&&(h=0);else if(c.check.chkStyle==j.checkbox.STYLE)if(g=f.nocheck===!0||f.chkDisabled===!0?f.check_Child_State:f.halfCheck===!0?1:f[d]?f.check_Child_State===-1||f.check_Child_State===2?2:1:f.check_Child_State>0?1:0,g===1){h=1;break}else if(g===
+2&&h>-1&&i>0&&g!==h){h=1;break}else if(h===2&&g>-1&&g<2){h=1;break}else g>-1&&(h=g)}a.check_Child_State=h}}}});var m=m.fn.zTree,k=m._z.tools,j=m.consts,e=m._z.view,g=m._z.data,n=k.$;g.exSetting(v);g.addInitBind(function(c){c.treeObj.bind(j.event.CHECK,function(a,b,d,h){a.srcEvent=b;k.apply(c.callback.onCheck,[a,d,h])})});g.addInitUnBind(function(c){c.treeObj.unbind(j.event.CHECK)});g.addInitCache(function(){});g.addInitNode(function(c,a,b,d){if(b){a=c.data.key.checked;typeof b[a]=="string"&&(b[a]=
+k.eqs(b[a],"true"));b[a]=!!b[a];b.checkedOld=b[a];if(typeof b.nocheck=="string")b.nocheck=k.eqs(b.nocheck,"true");b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;if(typeof b.chkDisabled=="string")b.chkDisabled=k.eqs(b.chkDisabled,"true");b.chkDisabled=!!b.chkDisabled||c.check.chkDisabledInherit&&d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=k.eqs(b.halfCheck,"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=function(){return g.getCheckStatus(c,
+b)};c.check.chkStyle==j.radio.STYLE&&c.check.radioType==j.radio.TYPE_ALL&&b[a]&&g.getRoot(c).radioCheckedList.push(b)}});g.addInitProxy(function(c){var a=c.target,b=g.getSetting(c.data.treeId),d="",h=null,e="",l=null;if(k.eqs(c.type,"mouseover")){if(b.check.enable&&k.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=k.getNodeMainDom(a).id,e="mouseoverCheck"}else if(k.eqs(c.type,"mouseout")){if(b.check.enable&&k.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=
+k.getNodeMainDom(a).id,e="mouseoutCheck"}else if(k.eqs(c.type,"click")&&b.check.enable&&k.eqs(a.tagName,"span")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=k.getNodeMainDom(a).id,e="checkNode";if(d.length>0)switch(h=g.getNodeCache(b,d),e){case "checkNode":l=p;break;case "mouseoverCheck":l=q;break;case "mouseoutCheck":l=r}return{stop:e==="checkNode",node:h,nodeEventType:e,nodeEventCallback:l,treeEventType:"",treeEventCallback:null}},!0);g.addInitRoot(function(c){g.getRoot(c).radioCheckedList=[]});
+g.addBeforeA(function(c,a,b){c.check.enable&&(g.makeChkFlag(c,a),b.push("<span ID='",a.tId,j.id.CHECK,"' class='",e.makeChkClass(c,a),"' treeNode",j.id.CHECK,a.nocheck===!0?" style='display:none;'":"","></span>"))});g.addZTreeTools(function(c,a){a.checkNode=function(a,b,c,g){var f=this.setting.data.key.checked;if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!a[f]),g=!!g,(a[f]!==b||c)&&!(g&&k.apply(this.setting.callback.beforeCheck,[this.setting.treeId,a],!0)==!1)&&k.uCanDo(this.setting)&&this.setting.check.enable&&
+a.nocheck!==!0))a[f]=b,b=n(a,j.id.CHECK,this.setting),(c||this.setting.check.chkStyle===j.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting,a),g&&this.setting.treeObj.trigger(j.event.CHECK,[null,this.setting.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var b=this.setting.data.key.children;return g.getTreeCheckedNodes(this.setting,g.getRoot(this.setting)[b],a!==!1)};
+a.getChangeCheckedNodes=function(){var a=this.setting.data.key.children;return g.getTreeChangeCheckedNodes(this.setting,g.getRoot(this.setting)[a])};a.setChkDisabled=function(a,b,c,g){b=!!b;c=!!c;e.repairSonChkDisabled(this.setting,a,b,!!g);e.repairParentChkDisabled(this.setting,a.getParentNode(),b,c)};var b=a.updateNode;a.updateNode=function(c,g){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&n(c,this.setting).get(0)&&k.uCanDo(this.setting)){var i=n(c,j.id.CHECK,this.setting);(g==!0||this.setting.check.chkStyle===
+j.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,i,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d,g){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)};var t=e.removeNode;e.removeNode=function(c,a){var b=a.getParentNode();t&&t.apply(e,arguments);a&&b&&(e.repairChkClass(c,b),e.repairParentChkClass(c,b))};var u=e.appendNodes;e.appendNodes=function(c,a,b,d,h,i,j){var f="";u&&(f=u.apply(e,arguments));
+d&&g.makeChkFlag(c,d);return f}})(jQuery);
+
+/*
+ * JQuery zTree exedit v3.5.28
+ * http://treejs.cn/
+ *
+ * Copyright (c) 2010 Hunter.z
+ *
+ * Licensed same as jquery - MIT License
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ * email: hunter.z@263.net
+ * Date: 2017-01-20
+ */
+(function(v){var J={event:{DRAG:"ztree_drag",DROP:"ztree_drop",RENAME:"ztree_rename",DRAGMOVE:"ztree_dragmove"},id:{EDIT:"_edit",INPUT:"_input",REMOVE:"_remove"},move:{TYPE_INNER:"inner",TYPE_PREV:"prev",TYPE_NEXT:"next"},node:{CURSELECTED_EDIT:"curSelectedNode_Edit",TMPTARGET_TREE:"tmpTargetzTree",TMPTARGET_NODE:"tmpTargetNode"}},x={onHoverOverNode:function(b,a){var c=m.getSetting(b.data.treeId),d=m.getRoot(c);if(d.curHoverNode!=a)x.onHoverOutNode(b);d.curHoverNode=a;f.addHoverDom(c,a)},onHoverOutNode:function(b){var b=
+m.getSetting(b.data.treeId),a=m.getRoot(b);if(a.curHoverNode&&!m.isSelectedNode(b,a.curHoverNode))f.removeTreeDom(b,a.curHoverNode),a.curHoverNode=null},onMousedownNode:function(b,a){function c(b){if(B.dragFlag==0&&Math.abs(O-b.clientX)<e.edit.drag.minMoveSize&&Math.abs(P-b.clientY)<e.edit.drag.minMoveSize)return!0;var a,c,n,k,i;i=e.data.key.children;M.css("cursor","pointer");if(B.dragFlag==0){if(g.apply(e.callback.beforeDrag,[e.treeId,l],!0)==!1)return r(b),!0;for(a=0,c=l.length;a<c;a++){if(a==0)B.dragNodeShowBefore=
+[];n=l[a];n.isParent&&n.open?(f.expandCollapseNode(e,n,!n.open),B.dragNodeShowBefore[n.tId]=!0):B.dragNodeShowBefore[n.tId]=!1}B.dragFlag=1;t.showHoverDom=!1;g.showIfameMask(e,!0);n=!0;k=-1;if(l.length>1){var j=l[0].parentTId?l[0].getParentNode()[i]:m.getNodes(e);i=[];for(a=0,c=j.length;a<c;a++)if(B.dragNodeShowBefore[j[a].tId]!==void 0&&(n&&k>-1&&k+1!==a&&(n=!1),i.push(j[a]),k=a),l.length===i.length){l=i;break}}n&&(I=l[0].getPreNode(),R=l[l.length-1].getNextNode());D=o("<ul class='zTreeDragUL'></ul>",
+e);for(a=0,c=l.length;a<c;a++)n=l[a],n.editNameFlag=!1,f.selectNode(e,n,a>0),f.removeTreeDom(e,n),a>e.edit.drag.maxShowNodeNum-1||(k=o("<li id='"+n.tId+"_tmp'></li>",e),k.append(o(n,d.id.A,e).clone()),k.css("padding","0"),k.children("#"+n.tId+d.id.A).removeClass(d.node.CURSELECTED),D.append(k),a==e.edit.drag.maxShowNodeNum-1&&(k=o("<li id='"+n.tId+"_moretmp'><a>  ...  </a></li>",e),D.append(k)));D.attr("id",l[0].tId+d.id.UL+"_tmp");D.addClass(e.treeObj.attr("class"));D.appendTo(M);A=o("<span class='tmpzTreeMove_arrow'></span>",
+e);A.attr("id","zTreeMove_arrow_tmp");A.appendTo(M);e.treeObj.trigger(d.event.DRAG,[b,e.treeId,l])}if(B.dragFlag==1){s&&A.attr("id")==b.target.id&&u&&b.clientX+G.scrollLeft()+2>v("#"+u+d.id.A,s).offset().left?(n=v("#"+u+d.id.A,s),b.target=n.length>0?n.get(0):b.target):s&&(s.removeClass(d.node.TMPTARGET_TREE),u&&v("#"+u+d.id.A,s).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+J.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+J.move.TYPE_INNER));
+u=s=null;K=!1;h=e;n=m.getSettings();for(var y in n)if(n[y].treeId&&n[y].edit.enable&&n[y].treeId!=e.treeId&&(b.target.id==n[y].treeId||v(b.target).parents("#"+n[y].treeId).length>0))K=!0,h=n[y];y=G.scrollTop();k=G.scrollLeft();i=h.treeObj.offset();a=h.treeObj.get(0).scrollHeight;n=h.treeObj.get(0).scrollWidth;c=b.clientY+y-i.top;var p=h.treeObj.height()+i.top-b.clientY-y,q=b.clientX+k-i.left,H=h.treeObj.width()+i.left-b.clientX-k;i=c<e.edit.drag.borderMax&&c>e.edit.drag.borderMin;var j=p<e.edit.drag.borderMax&&
+p>e.edit.drag.borderMin,F=q<e.edit.drag.borderMax&&q>e.edit.drag.borderMin,x=H<e.edit.drag.borderMax&&H>e.edit.drag.borderMin,p=c>e.edit.drag.borderMin&&p>e.edit.drag.borderMin&&q>e.edit.drag.borderMin&&H>e.edit.drag.borderMin,q=i&&h.treeObj.scrollTop()<=0,H=j&&h.treeObj.scrollTop()+h.treeObj.height()+10>=a,N=F&&h.treeObj.scrollLeft()<=0,Q=x&&h.treeObj.scrollLeft()+h.treeObj.width()+10>=n;if(b.target&&g.isChildOrSelf(b.target,h.treeId)){for(var E=b.target;E&&E.tagName&&!g.eqs(E.tagName,"li")&&E.id!=
+h.treeId;)E=E.parentNode;var S=!0;for(a=0,c=l.length;a<c;a++)if(n=l[a],E.id===n.tId){S=!1;break}else if(o(n,e).find("#"+E.id).length>0){S=!1;break}if(S&&b.target&&g.isChildOrSelf(b.target,E.id+d.id.A))s=v(E),u=E.id}n=l[0];if(p&&g.isChildOrSelf(b.target,h.treeId)){if(!s&&(b.target.id==h.treeId||q||H||N||Q)&&(K||!K&&n.parentTId))s=h.treeObj;i?h.treeObj.scrollTop(h.treeObj.scrollTop()-10):j&&h.treeObj.scrollTop(h.treeObj.scrollTop()+10);F?h.treeObj.scrollLeft(h.treeObj.scrollLeft()-10):x&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+
+10);s&&s!=h.treeObj&&s.offset().left<h.treeObj.offset().left&&h.treeObj.scrollLeft(h.treeObj.scrollLeft()+s.offset().left-h.treeObj.offset().left)}D.css({top:b.clientY+y+3+"px",left:b.clientX+k+3+"px"});c=a=0;if(s&&s.attr("id")!=h.treeId){var z=u==null?null:m.getNodeCache(h,u);i=(b.ctrlKey||b.metaKey)&&e.edit.drag.isMove&&e.edit.drag.isCopy||!e.edit.drag.isMove&&e.edit.drag.isCopy;k=!!(I&&u===I.tId);F=!!(R&&u===R.tId);j=n.parentTId&&n.parentTId==u;n=(i||!F)&&g.apply(h.edit.drag.prev,[h.treeId,l,z],
+!!h.edit.drag.prev);k=(i||!k)&&g.apply(h.edit.drag.next,[h.treeId,l,z],!!h.edit.drag.next);i=(i||!j)&&!(h.data.keep.leaf&&!z.isParent)&&g.apply(h.edit.drag.inner,[h.treeId,l,z],!!h.edit.drag.inner);j=function(){s=null;u="";w=d.move.TYPE_INNER;A.css({display:"none"});if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null};if(!n&&!k&&!i)j();else if(F=v("#"+u+d.id.A,s),x=z.isLastNode?null:v("#"+z.getNextNode().tId+d.id.A,s.next()),p=F.offset().top,q=F.offset().left,
+H=n?i?0.25:k?0.5:1:-1,N=k?i?0.75:n?0.5:0:-1,y=(b.clientY+y-p)/F.height(),(H==1||y<=H&&y>=-0.2)&&n?(a=1-A.width(),c=p-A.height()/2,w=d.move.TYPE_PREV):(N==0||y>=N&&y<=1.2)&&k?(a=1-A.width(),c=x==null||z.isParent&&z.open?p+F.height()-A.height()/2:x.offset().top-A.height()/2,w=d.move.TYPE_NEXT):i?(a=5-A.width(),c=p,w=d.move.TYPE_INNER):j(),s){A.css({display:"block",top:c+"px",left:q+a+"px"});F.addClass(d.node.TMPTARGET_NODE+"_"+w);if(T!=u||U!=w)L=(new Date).getTime();if(z&&z.isParent&&w==d.move.TYPE_INNER&&
+(y=!0,window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId!==z.tId?(clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null):window.zTreeMoveTimer&&window.zTreeMoveTargetNodeTId===z.tId&&(y=!1),y))window.zTreeMoveTimer=setTimeout(function(){w==d.move.TYPE_INNER&&z&&z.isParent&&!z.open&&(new Date).getTime()-L>h.edit.drag.autoOpenTime&&g.apply(h.callback.beforeDragOpen,[h.treeId,z],!0)&&(f.switchNode(h,z),h.edit.drag.autoExpandTrigger&&h.treeObj.trigger(d.event.EXPAND,[h.treeId,z]))},
+h.edit.drag.autoOpenTime+50),window.zTreeMoveTargetNodeTId=z.tId}}else if(w=d.move.TYPE_INNER,s&&g.apply(h.edit.drag.inner,[h.treeId,l,null],!!h.edit.drag.inner)?s.addClass(d.node.TMPTARGET_TREE):s=null,A.css({display:"none"}),window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;T=u;U=w;e.treeObj.trigger(d.event.DRAGMOVE,[b,e.treeId,l])}return!1}function r(b){if(window.zTreeMoveTimer)clearTimeout(window.zTreeMoveTimer),window.zTreeMoveTargetNodeTId=null;U=T=
+null;G.unbind("mousemove",c);G.unbind("mouseup",r);G.unbind("selectstart",k);M.css("cursor","auto");s&&(s.removeClass(d.node.TMPTARGET_TREE),u&&v("#"+u+d.id.A,s).removeClass(d.node.TMPTARGET_NODE+"_"+d.move.TYPE_PREV).removeClass(d.node.TMPTARGET_NODE+"_"+J.move.TYPE_NEXT).removeClass(d.node.TMPTARGET_NODE+"_"+J.move.TYPE_INNER));g.showIfameMask(e,!1);t.showHoverDom=!0;if(B.dragFlag!=0){B.dragFlag=0;var a,i,j;for(a=0,i=l.length;a<i;a++)j=l[a],j.isParent&&B.dragNodeShowBefore[j.tId]&&!j.open&&(f.expandCollapseNode(e,
+j,!j.open),delete B.dragNodeShowBefore[j.tId]);D&&D.remove();A&&A.remove();var p=(b.ctrlKey||b.metaKey)&&e.edit.drag.isMove&&e.edit.drag.isCopy||!e.edit.drag.isMove&&e.edit.drag.isCopy;!p&&s&&u&&l[0].parentTId&&u==l[0].parentTId&&w==d.move.TYPE_INNER&&(s=null);if(s){var q=u==null?null:m.getNodeCache(h,u);if(g.apply(e.callback.beforeDrop,[h.treeId,l,q,w,p],!0)==!1)f.selectNodes(x,l);else{var C=p?g.clone(l):l;a=function(){if(K){if(!p)for(var a=0,c=l.length;a<c;a++)f.removeNode(e,l[a]);w==d.move.TYPE_INNER?
+f.addNodes(h,q,-1,C):f.addNodes(h,q.getParentNode(),w==d.move.TYPE_PREV?q.getIndex():q.getIndex()+1,C)}else if(p&&w==d.move.TYPE_INNER)f.addNodes(h,q,-1,C);else if(p)f.addNodes(h,q.getParentNode(),w==d.move.TYPE_PREV?q.getIndex():q.getIndex()+1,C);else if(w!=d.move.TYPE_NEXT)for(a=0,c=C.length;a<c;a++)f.moveNode(h,q,C[a],w,!1);else for(a=-1,c=C.length-1;a<c;c--)f.moveNode(h,q,C[c],w,!1);f.selectNodes(h,C);a=o(C[0],e).get(0);f.scrollIntoView(a);e.treeObj.trigger(d.event.DROP,[b,h.treeId,C,q,w,p])};
+w==d.move.TYPE_INNER&&g.canAsync(h,q)?f.asyncNode(h,q,!1,a):a()}}else f.selectNodes(x,l),e.treeObj.trigger(d.event.DROP,[b,e.treeId,l,null,null,null])}}function k(){return!1}var i,j,e=m.getSetting(b.data.treeId),B=m.getRoot(e),t=m.getRoots();if(b.button==2||!e.edit.enable||!e.edit.drag.isCopy&&!e.edit.drag.isMove)return!0;var p=b.target,q=m.getRoot(e).curSelectedList,l=[];if(m.isSelectedNode(e,a))for(i=0,j=q.length;i<j;i++){if(q[i].editNameFlag&&g.eqs(p.tagName,"input")&&p.getAttribute("treeNode"+
+d.id.INPUT)!==null)return!0;l.push(q[i]);if(l[0].parentTId!==q[i].parentTId){l=[a];break}}else l=[a];f.editNodeBlur=!0;f.cancelCurEditNode(e);var G=v(e.treeObj.get(0).ownerDocument),M=v(e.treeObj.get(0).ownerDocument.body),D,A,s,K=!1,h=e,x=e,I,R,T=null,U=null,u=null,w=d.move.TYPE_INNER,O=b.clientX,P=b.clientY,L=(new Date).getTime();g.uCanDo(e)&&G.bind("mousemove",c);G.bind("mouseup",r);G.bind("selectstart",k);b.preventDefault&&b.preventDefault();return!0}};v.extend(!0,v.fn.zTree.consts,J);v.extend(!0,
+v.fn.zTree._z,{tools:{getAbs:function(b){b=b.getBoundingClientRect();return[b.left+(document.body.scrollLeft+document.documentElement.scrollLeft),b.top+(document.body.scrollTop+document.documentElement.scrollTop)]},inputFocus:function(b){b.get(0)&&(b.focus(),g.setCursorPosition(b.get(0),b.val().length))},inputSelect:function(b){b.get(0)&&(b.focus(),b.select())},setCursorPosition:function(b,a){if(b.setSelectionRange)b.focus(),b.setSelectionRange(a,a);else if(b.createTextRange){var c=b.createTextRange();
+c.collapse(!0);c.moveEnd("character",a);c.moveStart("character",a);c.select()}},showIfameMask:function(b,a){for(var c=m.getRoot(b);c.dragMaskList.length>0;)c.dragMaskList[0].remove(),c.dragMaskList.shift();if(a)for(var d=o("iframe",b),f=0,i=d.length;f<i;f++){var j=d.get(f),e=g.getAbs(j),j=o("<div id='zTreeMask_"+f+"' class='zTreeMask' style='top:"+e[1]+"px; left:"+e[0]+"px; width:"+j.offsetWidth+"px; height:"+j.offsetHeight+"px;'></div>",b);j.appendTo(o("body",b));c.dragMaskList.push(j)}}},view:{addEditBtn:function(b,
+a){if(!(a.editNameFlag||o(a,d.id.EDIT,b).length>0)&&g.apply(b.edit.showRenameBtn,[b.treeId,a],b.edit.showRenameBtn)){var c=o(a,d.id.A,b),r="<span class='"+d.className.BUTTON+" edit' id='"+a.tId+d.id.EDIT+"' title='"+g.apply(b.edit.renameTitle,[b.treeId,a],b.edit.renameTitle)+"' treeNode"+d.id.EDIT+" style='display:none;'></span>";c.append(r);o(a,d.id.EDIT,b).bind("click",function(){if(!g.uCanDo(b)||g.apply(b.callback.beforeEditName,[b.treeId,a],!0)==!1)return!1;f.editNode(b,a);return!1}).show()}},
+addRemoveBtn:function(b,a){if(!(a.editNameFlag||o(a,d.id.REMOVE,b).length>0)&&g.apply(b.edit.showRemoveBtn,[b.treeId,a],b.edit.showRemoveBtn)){var c=o(a,d.id.A,b),r="<span class='"+d.className.BUTTON+" remove' id='"+a.tId+d.id.REMOVE+"' title='"+g.apply(b.edit.removeTitle,[b.treeId,a],b.edit.removeTitle)+"' treeNode"+d.id.REMOVE+" style='display:none;'></span>";c.append(r);o(a,d.id.REMOVE,b).bind("click",function(){if(!g.uCanDo(b)||g.apply(b.callback.beforeRemove,[b.treeId,a],!0)==!1)return!1;f.removeNode(b,
+a);b.treeObj.trigger(d.event.REMOVE,[b.treeId,a]);return!1}).bind("mousedown",function(){return!0}).show()}},addHoverDom:function(b,a){if(m.getRoots().showHoverDom)a.isHover=!0,b.edit.enable&&(f.addEditBtn(b,a),f.addRemoveBtn(b,a)),g.apply(b.view.addHoverDom,[b.treeId,a])},cancelCurEditNode:function(b,a,c){var r=m.getRoot(b),k=b.data.key.name,i=r.curEditNode;if(i){var j=r.curEditInput,a=a?a:c?i[k]:j.val();if(g.apply(b.callback.beforeRename,[b.treeId,i,a,c],!0)===!1)return!1;i[k]=a;o(i,d.id.A,b).removeClass(d.node.CURSELECTED_EDIT);
+j.unbind();f.setNodeName(b,i);i.editNameFlag=!1;r.curEditNode=null;r.curEditInput=null;f.selectNode(b,i,!1);b.treeObj.trigger(d.event.RENAME,[b.treeId,i,c])}return r.noSelection=!0},editNode:function(b,a){var c=m.getRoot(b);f.editNodeBlur=!1;if(m.isSelectedNode(b,a)&&c.curEditNode==a&&a.editNameFlag)setTimeout(function(){g.inputFocus(c.curEditInput)},0);else{var r=b.data.key.name;a.editNameFlag=!0;f.removeTreeDom(b,a);f.cancelCurEditNode(b);f.selectNode(b,a,!1);o(a,d.id.SPAN,b).html("<input type=text class='rename' id='"+
+a.tId+d.id.INPUT+"' treeNode"+d.id.INPUT+" >");var k=o(a,d.id.INPUT,b);k.attr("value",a[r]);b.edit.editNameSelectAll?g.inputSelect(k):g.inputFocus(k);k.bind("blur",function(){f.editNodeBlur||f.cancelCurEditNode(b)}).bind("keydown",function(a){a.keyCode=="13"?(f.editNodeBlur=!0,f.cancelCurEditNode(b)):a.keyCode=="27"&&f.cancelCurEditNode(b,null,!0)}).bind("click",function(){return!1}).bind("dblclick",function(){return!1});o(a,d.id.A,b).addClass(d.node.CURSELECTED_EDIT);c.curEditInput=k;c.noSelection=
+!1;c.curEditNode=a}},moveNode:function(b,a,c,r,k,i){var j=m.getRoot(b),e=b.data.key.children;if(a!=c&&(!b.data.keep.leaf||!a||a.isParent||r!=d.move.TYPE_INNER)){var g=c.parentTId?c.getParentNode():j,t=a===null||a==j;t&&a===null&&(a=j);if(t)r=d.move.TYPE_INNER;j=a.parentTId?a.getParentNode():j;if(r!=d.move.TYPE_PREV&&r!=d.move.TYPE_NEXT)r=d.move.TYPE_INNER;if(r==d.move.TYPE_INNER)if(t)c.parentTId=null;else{if(!a.isParent)a.isParent=!0,a.open=!!a.open,f.setNodeLineIcos(b,a);c.parentTId=a.tId}var p;
+t?p=t=b.treeObj:(!i&&r==d.move.TYPE_INNER?f.expandCollapseNode(b,a,!0,!1):i||f.expandCollapseNode(b,a.getParentNode(),!0,!1),t=o(a,b),p=o(a,d.id.UL,b),t.get(0)&&!p.get(0)&&(p=[],f.makeUlHtml(b,a,p,""),t.append(p.join(""))),p=o(a,d.id.UL,b));var q=o(c,b);q.get(0)?t.get(0)||q.remove():q=f.appendNodes(b,c.level,[c],null,-1,!1,!0).join("");p.get(0)&&r==d.move.TYPE_INNER?p.append(q):t.get(0)&&r==d.move.TYPE_PREV?t.before(q):t.get(0)&&r==d.move.TYPE_NEXT&&t.after(q);var l=-1,v=0,x=null,t=null,D=c.level;
+if(c.isFirstNode){if(l=0,g[e].length>1)x=g[e][1],x.isFirstNode=!0}else if(c.isLastNode)l=g[e].length-1,x=g[e][l-1],x.isLastNode=!0;else for(p=0,q=g[e].length;p<q;p++)if(g[e][p].tId==c.tId){l=p;break}l>=0&&g[e].splice(l,1);if(r!=d.move.TYPE_INNER)for(p=0,q=j[e].length;p<q;p++)j[e][p].tId==a.tId&&(v=p);if(r==d.move.TYPE_INNER){a[e]||(a[e]=[]);if(a[e].length>0)t=a[e][a[e].length-1],t.isLastNode=!1;a[e].splice(a[e].length,0,c);c.isLastNode=!0;c.isFirstNode=a[e].length==1}else a.isFirstNode&&r==d.move.TYPE_PREV?
+(j[e].splice(v,0,c),t=a,t.isFirstNode=!1,c.parentTId=a.parentTId,c.isFirstNode=!0,c.isLastNode=!1):a.isLastNode&&r==d.move.TYPE_NEXT?(j[e].splice(v+1,0,c),t=a,t.isLastNode=!1,c.parentTId=a.parentTId,c.isFirstNode=!1,c.isLastNode=!0):(r==d.move.TYPE_PREV?j[e].splice(v,0,c):j[e].splice(v+1,0,c),c.parentTId=a.parentTId,c.isFirstNode=!1,c.isLastNode=!1);m.fixPIdKeyValue(b,c);m.setSonNodeLevel(b,c.getParentNode(),c);f.setNodeLineIcos(b,c);f.repairNodeLevelClass(b,c,D);!b.data.keep.parent&&g[e].length<
+1?(g.isParent=!1,g.open=!1,a=o(g,d.id.UL,b),r=o(g,d.id.SWITCH,b),e=o(g,d.id.ICON,b),f.replaceSwitchClass(g,r,d.folder.DOCU),f.replaceIcoClass(g,e,d.folder.DOCU),a.css("display","none")):x&&f.setNodeLineIcos(b,x);t&&f.setNodeLineIcos(b,t);b.check&&b.check.enable&&f.repairChkClass&&(f.repairChkClass(b,g),f.repairParentChkClassWithSelf(b,g),g!=c.parent&&f.repairParentChkClassWithSelf(b,c));i||f.expandCollapseParentNode(b,c.getParentNode(),!0,k)}},removeEditBtn:function(b,a){o(a,d.id.EDIT,b).unbind().remove()},
+removeRemoveBtn:function(b,a){o(a,d.id.REMOVE,b).unbind().remove()},removeTreeDom:function(b,a){a.isHover=!1;f.removeEditBtn(b,a);f.removeRemoveBtn(b,a);g.apply(b.view.removeHoverDom,[b.treeId,a])},repairNodeLevelClass:function(b,a,c){if(c!==a.level){var f=o(a,b),g=o(a,d.id.A,b),b=o(a,d.id.UL,b),c=d.className.LEVEL+c,a=d.className.LEVEL+a.level;f.removeClass(c);f.addClass(a);g.removeClass(c);g.addClass(a);b.removeClass(c);b.addClass(a)}},selectNodes:function(b,a){for(var c=0,d=a.length;c<d;c++)f.selectNode(b,
+a[c],c>0)}},event:{},data:{setSonNodeLevel:function(b,a,c){if(c){var d=b.data.key.children;c.level=a?a.level+1:0;if(c[d])for(var a=0,f=c[d].length;a<f;a++)c[d][a]&&m.setSonNodeLevel(b,c,c[d][a])}}}});var I=v.fn.zTree,g=I._z.tools,d=I.consts,f=I._z.view,m=I._z.data,o=g.$;m.exSetting({edit:{enable:!1,editNameSelectAll:!1,showRemoveBtn:!0,showRenameBtn:!0,removeTitle:"remove",renameTitle:"rename",drag:{autoExpandTrigger:!1,isCopy:!0,isMove:!0,prev:!0,next:!0,inner:!0,minMoveSize:5,borderMax:10,borderMin:-5,
+maxShowNodeNum:5,autoOpenTime:500}},view:{addHoverDom:null,removeHoverDom:null},callback:{beforeDrag:null,beforeDragOpen:null,beforeDrop:null,beforeEditName:null,beforeRename:null,onDrag:null,onDragMove:null,onDrop:null,onRename:null}});m.addInitBind(function(b){var a=b.treeObj,c=d.event;a.bind(c.RENAME,function(a,c,d,f){g.apply(b.callback.onRename,[a,c,d,f])});a.bind(c.DRAG,function(a,c,d,f){g.apply(b.callback.onDrag,[c,d,f])});a.bind(c.DRAGMOVE,function(a,c,d,f){g.apply(b.callback.onDragMove,[c,
+d,f])});a.bind(c.DROP,function(a,c,d,f,e,m,o){g.apply(b.callback.onDrop,[c,d,f,e,m,o])})});m.addInitUnBind(function(b){var b=b.treeObj,a=d.event;b.unbind(a.RENAME);b.unbind(a.DRAG);b.unbind(a.DRAGMOVE);b.unbind(a.DROP)});m.addInitCache(function(){});m.addInitNode(function(b,a,c){if(c)c.isHover=!1,c.editNameFlag=!1});m.addInitProxy(function(b){var a=b.target,c=m.getSetting(b.data.treeId),f=b.relatedTarget,k="",i=null,j="",e=null,o=null;if(g.eqs(b.type,"mouseover")){if(o=g.getMDom(c,a,[{tagName:"a",
+attrName:"treeNode"+d.id.A}]))k=g.getNodeMainDom(o).id,j="hoverOverNode"}else if(g.eqs(b.type,"mouseout"))o=g.getMDom(c,f,[{tagName:"a",attrName:"treeNode"+d.id.A}]),o||(k="remove",j="hoverOutNode");else if(g.eqs(b.type,"mousedown")&&(o=g.getMDom(c,a,[{tagName:"a",attrName:"treeNode"+d.id.A}])))k=g.getNodeMainDom(o).id,j="mousedownNode";if(k.length>0)switch(i=m.getNodeCache(c,k),j){case "mousedownNode":e=x.onMousedownNode;break;case "hoverOverNode":e=x.onHoverOverNode;break;case "hoverOutNode":e=
+x.onHoverOutNode}return{stop:!1,node:i,nodeEventType:j,nodeEventCallback:e,treeEventType:"",treeEventCallback:null}});m.addInitRoot(function(b){var b=m.getRoot(b),a=m.getRoots();b.curEditNode=null;b.curEditInput=null;b.curHoverNode=null;b.dragFlag=0;b.dragNodeShowBefore=[];b.dragMaskList=[];a.showHoverDom=!0});m.addZTreeTools(function(b,a){a.cancelEditName=function(a){m.getRoot(this.setting).curEditNode&&f.cancelCurEditNode(this.setting,a?a:null,!0)};a.copyNode=function(a,b,k,i){if(!b)return null;
+if(a&&!a.isParent&&this.setting.data.keep.leaf&&k===d.move.TYPE_INNER)return null;var j=this,e=g.clone(b);if(!a)a=null,k=d.move.TYPE_INNER;k==d.move.TYPE_INNER?(b=function(){f.addNodes(j.setting,a,-1,[e],i)},g.canAsync(this.setting,a)?f.asyncNode(this.setting,a,i,b):b()):(f.addNodes(this.setting,a.parentNode,-1,[e],i),f.moveNode(this.setting,a,e,k,!1,i));return e};a.editName=function(a){a&&a.tId&&a===m.getNodeCache(this.setting,a.tId)&&(a.parentTId&&f.expandCollapseParentNode(this.setting,a.getParentNode(),
+!0),f.editNode(this.setting,a))};a.moveNode=function(a,b,k,i){function j(){f.moveNode(e.setting,a,b,k,!1,i)}if(!b)return b;if(a&&!a.isParent&&this.setting.data.keep.leaf&&k===d.move.TYPE_INNER)return null;else if(a&&(b.parentTId==a.tId&&k==d.move.TYPE_INNER||o(b,this.setting).find("#"+a.tId).length>0))return null;else a||(a=null);var e=this;g.canAsync(this.setting,a)&&k===d.move.TYPE_INNER?f.asyncNode(this.setting,a,i,j):j();return b};a.setEditable=function(a){this.setting.edit.enable=a;return this.refresh()}});
+var O=f.cancelPreSelectedNode;f.cancelPreSelectedNode=function(b,a){for(var c=m.getRoot(b).curSelectedList,d=0,g=c.length;d<g;d++)if(!a||a===c[d])if(f.removeTreeDom(b,c[d]),a)break;O&&O.apply(f,arguments)};var P=f.createNodes;f.createNodes=function(b,a,c,d,g){P&&P.apply(f,arguments);c&&f.repairParentChkClassWithSelf&&f.repairParentChkClassWithSelf(b,d)};var W=f.makeNodeUrl;f.makeNodeUrl=function(b,a){return b.edit.enable?null:W.apply(f,arguments)};var L=f.removeNode;f.removeNode=function(b,a){var c=
+m.getRoot(b);if(c.curEditNode===a)c.curEditNode=null;L&&L.apply(f,arguments)};var Q=f.selectNode;f.selectNode=function(b,a,c){var d=m.getRoot(b);if(m.isSelectedNode(b,a)&&d.curEditNode==a&&a.editNameFlag)return!1;Q&&Q.apply(f,arguments);f.addHoverDom(b,a);return!0};var V=g.uCanDo;g.uCanDo=function(b,a){var c=m.getRoot(b);if(a&&(g.eqs(a.type,"mouseover")||g.eqs(a.type,"mouseout")||g.eqs(a.type,"mousedown")||g.eqs(a.type,"mouseup")))return!0;if(c.curEditNode)f.editNodeBlur=!1,c.curEditInput.focus();
+return!c.curEditNode&&(V?V.apply(f,arguments):!0)}})(jQuery);
+
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/code/gen.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/code/gen.js
new file mode 100644
index 0000000..619d9b1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/code/gen.js
@@ -0,0 +1,93 @@
+/**
+ * 初始化
+ */
+var Code = {
+    ztreeInstance: null,
+    tableName: "",
+    submitData: {},
+    switchs: {}
+};
+
+/**
+ * 选择table的事件
+ */
+Code.selectTable = function (tableName) {
+
+    SelectList.clearSelect("templateList");
+    Code.switchs = {};
+
+    if (SelectList.singelSelect("tableList", "tableName", tableName) == true) {
+        Code.tableName = tableName;
+        Code.setTableName(tableName);
+    } else {
+        Code.tableName = "";
+    }
+};
+
+/**
+ * 选择模板的事件
+ */
+Code.selectTemplate = function (templateKey) {
+    if (Code.tableName != "") {
+        if (SelectList.mutiSelect("templateList", "key", templateKey) == true) {
+            Code.switchs[templateKey] = true;
+        } else {
+            Code.switchs[templateKey] = false;
+        }
+    } else {
+        Feng.info("请先选择表");
+    }
+};
+
+/**
+ * 点击生成
+ */
+Code.generate = function () {
+    Code.submitData = {};
+    Code.submitData.tableName = Code.tableName;
+    this.set('projectPath').set('author').set('projectPackage').set('corePackage').set('ignoreTabelPrefix').set('bizName').set('moduleName').set('parentMenuName');
+    var baseAjax = Feng.baseAjax("/code/generate", "生成代码");
+
+    for (var item in Code.switchs) {
+        Code.submitData[item] = Code.switchs[item];
+    }
+
+    baseAjax.setData(Code.submitData);
+    baseAjax.start();
+};
+
+/**
+ * 设置表名称
+ */
+Code.setTableName = function (tableName) {
+    var preSize = $("#ignoreTabelPrefix").val().length;
+    $("#tableName").val(tableName);
+    $("#className").val(Feng.underLineToCamel(tableName.substring(preSize)));
+};
+
+/**
+ * 点击父级编号input框时
+ */
+Code.onClickDept = function (e, treeId, treeNode) {
+    $("#parentMenuName").attr("value", Code.ztreeInstance.getSelectedVal());
+};
+
+/**
+ * 显示父级菜单选择的树
+ */
+Code.showMenuSelectTree = function () {
+    Feng.showInputTree("parentMenuName", "pcodeTreeDiv", 15, 34);
+};
+
+$(function () {
+    var ztree = new $ZTree("pcodeTree", "/menu/selectMenuTreeList");
+    ztree.bindOnClick(Code.onClickDept);
+    ztree.init();
+    Code.ztreeInstance = ztree;
+    $("#pcodeTree").css('width',$("#parentMenuName").css('width'));
+});
+
+Code.set = function (key, value) {
+    Code.submitData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+    return this;
+};
\ No newline at end of file
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense.js
new file mode 100644
index 0000000..3749f2f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense.js
@@ -0,0 +1,93 @@
+/**
+ * 报销管理管理初始化
+ */
+var Expense = {
+    id: "ExpenseTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Expense.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: '报销id', field: 'id', visible: true, align: 'center', valign: 'middle'},
+        {title: '报销金额', field: 'money', visible: true, align: 'center', valign: 'middle'},
+        {title: '描述', field: 'desc', visible: true, align: 'center', valign: 'middle'},
+        {title: '状态', field: 'stateName', visible: true, align: 'center', valign: 'middle'},
+        {title: '创建时间', field: 'createtime', visible: true, align: 'center', valign: 'middle'},
+        {
+            title: '操作', visible: true, align: 'center', valign: 'middle', formatter: function (value, row, index) {
+            if (row.state == 3) {
+                return '<button type="button" class="btn btn-danger button-margin" onclick="Expense.deleteRecord(' + row.id + ')" id=""><i class="fa fa-arrows-alt"></i>&nbsp;删除</button>';
+            } else {
+                return '<button type="button" class="btn btn-primary button-margin" onclick="Expense.findRecord(' + row.id + ')" id=""><i class="fa fa-edit"></i>&nbsp;查看</button>' +
+                    '<button type="button" class="btn btn-danger button-margin" onclick="Expense.deleteRecord(' + row.id + ')" id=""><i class="fa fa-arrows-alt"></i>&nbsp;删除</button>';
+            }
+        }
+        }
+    ];
+};
+
+/**
+ * 流程详情
+ */
+Expense.findRecord = function (id) {
+    var index = layer.open({
+        type: 2,
+        title: '流程详情',
+        area: ['1000px', '500px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/expense/expense_update/' + id
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 删除审核记录
+ */
+Expense.deleteRecord = function (id) {
+    var ajax = new $ax(Feng.ctxPath + "/expense/delete", function (data) {
+        Feng.success("删除成功!");
+        Expense.table.refresh();
+    }, function (data) {
+        Feng.error("删除失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("expenseId", id);
+    ajax.start();
+};
+
+/**
+ * 点击添加报销管理
+ */
+Expense.openAddExpense = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加报销管理',
+        area: ['600px', '350px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/expense/expense_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 查询报销管理列表
+ */
+Expense.search = function () {
+    var queryData = {};
+    queryData['condition'] = $("#condition").val();
+    Expense.table.refresh({query: queryData});
+};
+
+$(function () {
+    var defaultColunms = Expense.initColumn();
+    var table = new BSTable(Expense.id, "/expense/list", defaultColunms);
+    table.setPaginationType("client");
+    Expense.table = table.init();
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense_info.js
new file mode 100644
index 0000000..481af18
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/expense/expense_info.js
@@ -0,0 +1,96 @@
+/**
+ * 初始化报销管理详情对话框
+ */
+var ExpenseInfoDlg = {
+    expenseInfoData : {}
+};
+
+/**
+ * 清除数据
+ */
+ExpenseInfoDlg.clearData = function() {
+    this.expenseInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+ExpenseInfoDlg.set = function(key, val) {
+    this.expenseInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+    return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+ExpenseInfoDlg.get = function(key) {
+    return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+ExpenseInfoDlg.close = function() {
+    parent.layer.close(window.parent.Expense.layerIndex);
+}
+
+/**
+ * 收集数据
+ */
+ExpenseInfoDlg.collectData = function() {
+    this
+    .set('id')
+    .set('money')
+    .set('desc')
+    ;
+}
+
+/**
+ * 提交添加
+ */
+ExpenseInfoDlg.addSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/expense/add", function(data){
+        Feng.success("添加成功!");
+        window.parent.Expense.table.refresh();
+        ExpenseInfoDlg.close();
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.expenseInfoData);
+    ajax.start();
+}
+
+/**
+ * 提交修改
+ */
+ExpenseInfoDlg.editSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/expense/update", function(data){
+        Feng.success("修改成功!");
+        window.parent.Expense.table.refresh();
+        ExpenseInfoDlg.close();
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.expenseInfoData);
+    ajax.start();
+}
+
+$(function() {
+
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process.js
new file mode 100644
index 0000000..27c79c7
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process.js
@@ -0,0 +1,77 @@
+/**
+ * 报销管理管理初始化
+ */
+var Process = {
+    id: "ProcessTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Process.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: '任务id', field: 'id', visible: true, align: 'center', valign: 'middle'},
+        {title: '名称', field: 'name', visible: true, align: 'center', valign: 'middle'},
+        {title: '金额', field: 'money', visible: true, align: 'center', valign: 'middle'},
+        {title: '创建时间', field: 'createTime', visible: true, align: 'center', valign: 'middle'},
+        {title: '申请人', field: 'assignee', visible: true, align: 'center', valign: 'middle'},
+        {
+            title: '操作', visible: true, align: 'center', valign: 'middle', formatter: function (value, row, index) {
+            if (row.selfFlag == true) {
+                return '<button type="button" class="btn btn-primary button-margin" onclick="Process.pass(' + row.id + ')" id=""><i class="fa fa-edit"></i>&nbsp;通过</button>' +
+                    '<button type="button" class="btn btn-danger button-margin" onclick="Process.unPass(' + row.id + ')" id=""><i class="fa fa-arrows-alt"></i>&nbsp;不通过</button>';
+            } else {
+                return '<button type="button" class="btn btn-primary button-margin" onclick="Process.pass(' + row.id + ')" id=""><i class="fa fa-edit"></i>&nbsp;通过</button>';
+            }
+        }
+        }
+    ];
+};
+
+/**
+ * 通过审核
+ */
+Process.pass = function (id) {
+    var ajax = new $ax(Feng.ctxPath + "/process/pass", function (data) {
+        Feng.success("审核成功!");
+        Process.table.refresh();
+    }, function (data) {
+        Feng.error("审核失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("taskId", id);
+    ajax.start();
+};
+
+/**
+ * 未通过审核
+ */
+Process.unPass = function (id) {
+    var ajax = new $ax(Feng.ctxPath + "/process/unPass", function (data) {
+        Feng.success("审核成功!");
+        Process.table.refresh();
+    }, function (data) {
+        Feng.error("审核失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("taskId", id);
+    ajax.start();
+};
+
+/**
+ * 查询报销管理列表
+ */
+Process.search = function () {
+    var queryData = {};
+    queryData['condition'] = $("#condition").val();
+    Process.table.refresh({query: queryData});
+};
+
+$(function () {
+    var defaultColunms = Process.initColumn();
+    var table = new BSTable(Process.id, "/process/list", defaultColunms);
+    table.setPaginationType("client");
+    Process.table = table.init();
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process_info.js
new file mode 100644
index 0000000..481af18
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/flowable/process/process_info.js
@@ -0,0 +1,96 @@
+/**
+ * 初始化报销管理详情对话框
+ */
+var ExpenseInfoDlg = {
+    expenseInfoData : {}
+};
+
+/**
+ * 清除数据
+ */
+ExpenseInfoDlg.clearData = function() {
+    this.expenseInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+ExpenseInfoDlg.set = function(key, val) {
+    this.expenseInfoData[key] = (typeof val == "undefined") ? $("#" + key).val() : val;
+    return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+ExpenseInfoDlg.get = function(key) {
+    return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+ExpenseInfoDlg.close = function() {
+    parent.layer.close(window.parent.Expense.layerIndex);
+}
+
+/**
+ * 收集数据
+ */
+ExpenseInfoDlg.collectData = function() {
+    this
+    .set('id')
+    .set('money')
+    .set('desc')
+    ;
+}
+
+/**
+ * 提交添加
+ */
+ExpenseInfoDlg.addSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/expense/add", function(data){
+        Feng.success("添加成功!");
+        window.parent.Expense.table.refresh();
+        ExpenseInfoDlg.close();
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.expenseInfoData);
+    ajax.start();
+}
+
+/**
+ * 提交修改
+ */
+ExpenseInfoDlg.editSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/expense/update", function(data){
+        Feng.success("修改成功!");
+        window.parent.Expense.table.refresh();
+        ExpenseInfoDlg.close();
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.expenseInfoData);
+    ajax.start();
+}
+
+$(function() {
+
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/code/code.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/code/code.js
new file mode 100644
index 0000000..1f2fc4e
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/code/code.js
@@ -0,0 +1,18 @@
+/**
+ * 代码生成管理初始化
+ */
+var Code = {
+
+};
+
+/**
+ * 提交代码生成
+ */
+Code.generate = function () {
+    var baseAjax = Feng.baseAjax("/code/generate","生成代码");
+    baseAjax.set("bizChName");
+    baseAjax.set("bizEnName");
+    baseAjax.set("path");
+    baseAjax.set("moduleName");
+    baseAjax.start();
+};
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept.js
new file mode 100644
index 0000000..ccbba59
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept.js
@@ -0,0 +1,110 @@
+/**
+ * 部门管理初始化
+ */
+var Dept = {
+    id: "DeptTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Dept.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', align: 'center', valign: 'middle',width:'50px'},
+        {title: '部门简称', field: 'simplename', align: 'center', valign: 'middle', sortable: true},
+        {title: '部门全称', field: 'fullname', align: 'center', valign: 'middle', sortable: true},
+        {title: '排序', field: 'num', align: 'center', valign: 'middle', sortable: true},
+        {title: '备注', field: 'tips', align: 'center', valign: 'middle', sortable: true}];
+};
+
+/**
+ * 检查是否选中
+ */
+Dept.check = function () {
+    var selected = $('#' + this.id).bootstrapTreeTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        Dept.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加部门
+ */
+Dept.openAddDept = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加部门',
+        area: ['800px', '420px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/dept/dept_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看部门详情
+ */
+Dept.openDeptDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '部门详情',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/dept/dept_update/' + Dept.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 删除部门
+ */
+Dept.delete = function () {
+    if (this.check()) {
+
+        var operation = function(){
+            var ajax = new $ax(Feng.ctxPath + "/dept/delete", function () {
+                Feng.success("删除成功!");
+                Dept.table.refresh();
+            }, function (data) {
+                Feng.error("删除失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("deptId",Dept.seItem.id);
+            ajax.start();
+        };
+
+        Feng.confirm("是否刪除该部门?", operation);
+    }
+};
+
+/**
+ * 查询部门列表
+ */
+Dept.search = function () {
+    var queryData = {};
+    queryData['condition'] = $("#condition").val();
+    Dept.table.refresh({query: queryData});
+};
+
+$(function () {
+    var defaultColunms = Dept.initColumn();
+    var table = new BSTreeTable(Dept.id, "/dept/list", defaultColunms);
+    table.setExpandColumn(2);
+    table.setIdField("id");
+    table.setCodeField("id");
+    table.setParentCodeField("pid");
+    table.setExpandAll(true);
+    table.init();
+    Dept.table = table;
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept_info.js
new file mode 100644
index 0000000..139c1c9
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dept/dept_info.js
@@ -0,0 +1,182 @@
+/**
+ * 初始化部门详情对话框
+ */
+var DeptInfoDlg = {
+    deptInfoData : {},
+    zTreeInstance : null,
+    validateFields: {
+        simplename: {
+            validators: {
+                notEmpty: {
+                    message: '部门名称不能为空'
+                }
+            }
+        },
+        fullname: {
+            validators: {
+                notEmpty: {
+                    message: '部门全称不能为空'
+                }
+            }
+        },
+        pName: {
+            validators: {
+                notEmpty: {
+                    message: '上级名称不能为空'
+                }
+            }
+        }
+    }
+};
+
+/**
+ * 清除数据
+ */
+DeptInfoDlg.clearData = function() {
+    this.deptInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+DeptInfoDlg.set = function(key, val) {
+    this.deptInfoData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+    return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+DeptInfoDlg.get = function(key) {
+    return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+DeptInfoDlg.close = function() {
+    parent.layer.close(window.parent.Dept.layerIndex);
+}
+
+/**
+ * 点击部门ztree列表的选项时
+ *
+ * @param e
+ * @param treeId
+ * @param treeNode
+ * @returns
+ */
+DeptInfoDlg.onClickDept = function(e, treeId, treeNode) {
+    $("#pName").attr("value", DeptInfoDlg.zTreeInstance.getSelectedVal());
+    $("#pid").attr("value", treeNode.id);
+}
+
+/**
+ * 显示部门选择的树
+ *
+ * @returns
+ */
+DeptInfoDlg.showDeptSelectTree = function() {
+    var pName = $("#pName");
+    var pNameOffset = $("#pName").offset();
+    $("#parentDeptMenu").css({
+        left : pNameOffset.left + "px",
+        top : pNameOffset.top + pName.outerHeight() + "px"
+    }).slideDown("fast");
+
+    $("body").bind("mousedown", onBodyDown);
+}
+
+/**
+ * 隐藏部门选择的树
+ */
+DeptInfoDlg.hideDeptSelectTree = function() {
+    $("#parentDeptMenu").fadeOut("fast");
+    $("body").unbind("mousedown", onBodyDown);// mousedown当鼠标按下就可以触发,不用弹起
+}
+
+/**
+ * 收集数据
+ */
+DeptInfoDlg.collectData = function() {
+    this.set('id').set('simplename').set('fullname').set('tips').set('num').set('pid');
+}
+
+/**
+ * 验证数据是否为空
+ */
+DeptInfoDlg.validate = function () {
+    $('#deptInfoForm').data("bootstrapValidator").resetForm();
+    $('#deptInfoForm').bootstrapValidator('validate');
+    return $("#deptInfoForm").data('bootstrapValidator').isValid();
+}
+
+/**
+ * 提交添加部门
+ */
+DeptInfoDlg.addSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/dept/add", function(data){
+        Feng.success("添加成功!");
+        window.parent.Dept.table.refresh();
+        DeptInfoDlg.close();
+    },function(data){
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.deptInfoData);
+    ajax.start();
+}
+
+/**
+ * 提交修改
+ */
+DeptInfoDlg.editSubmit = function() {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/dept/update", function(data){
+        Feng.success("修改成功!");
+        window.parent.Dept.table.refresh();
+        DeptInfoDlg.close();
+    },function(data){
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.deptInfoData);
+    ajax.start();
+}
+
+function onBodyDown(event) {
+    if (!(event.target.id == "menuBtn" || event.target.id == "parentDeptMenu" || $(
+            event.target).parents("#parentDeptMenu").length > 0)) {
+        DeptInfoDlg.hideDeptSelectTree();
+    }
+}
+
+$(function() {
+    Feng.initValidator("deptInfoForm", DeptInfoDlg.validateFields);
+
+    var ztree = new $ZTree("parentDeptMenuTree", "/dept/tree");
+    ztree.bindOnClick(DeptInfoDlg.onClickDept);
+    ztree.init();
+    DeptInfoDlg.zTreeInstance = ztree;
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict.js
new file mode 100644
index 0000000..b4f87a2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict.js
@@ -0,0 +1,104 @@
+/**
+ * 字典管理初始化
+ */
+var Dict = {
+    id: "DictTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Dict.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '名称', field: 'name', align: 'center', valign: 'middle', sortable: true},
+        {title: '详情', field: 'detail', align: 'center', valign: 'middle', sortable: true},
+        {title: '备注', field: 'tips', align: 'center', valign: 'middle', sortable: true}];
+};
+
+/**
+ * 检查是否选中
+ */
+Dict.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        Dict.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加字典
+ */
+Dict.openAddDict = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加字典',
+        area: ['800px', '420px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/dict/dict_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看字典详情
+ */
+Dict.openDictDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '字典详情',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/dict/dict_edit/' + Dict.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 删除字典
+ */
+Dict.delete = function () {
+    if (this.check()) {
+
+        var operation = function(){
+            var ajax = new $ax(Feng.ctxPath + "/dict/delete", function (data) {
+                Feng.success("删除成功!");
+                Dict.table.refresh();
+            }, function (data) {
+                Feng.error("删除失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("dictId", Dict.seItem.id);
+            ajax.start();
+        };
+
+        Feng.confirm("是否刪除字典 " + Dict.seItem.name + "?", operation);
+    }
+};
+
+/**
+ * 查询字典列表
+ */
+Dict.search = function () {
+    var queryData = {};
+    queryData['condition'] = $("#condition").val();
+    Dict.table.refresh({query: queryData});
+};
+
+$(function () {
+    var defaultColunms = Dict.initColumn();
+    var table = new BSTable(Dict.id, "/dict/list", defaultColunms);
+    table.setPaginationType("client");
+    Dict.table = table.init();
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict_info.js
new file mode 100644
index 0000000..34ceb41
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/dict/dict_info.js
@@ -0,0 +1,118 @@
+/**
+ * 初始化字典详情对话框
+ */
+var DictInfoDlg = {
+    count: $("#itemSize").val(),
+    dictName: '',			//字典的名称
+    dictCode: '',//字典类型编码
+    dictTips: '',//字典备注
+    mutiString: '',		//拼接字符串内容(拼接字典条目)
+    itemTemplate: $("#itemTemplate").html()
+};
+
+/**
+ * item获取新的id
+ */
+DictInfoDlg.newId = function () {
+    if(this.count == undefined){
+        this.count = 0;
+    }
+    this.count = this.count + 1;
+    return "dictItem" + this.count;
+};
+
+/**
+ * 关闭此对话框
+ */
+DictInfoDlg.close = function () {
+    parent.layer.close(window.parent.Dict.layerIndex);
+};
+
+/**
+ * 添加条目
+ */
+DictInfoDlg.addItem = function () {
+    $("#itemsArea").append(this.itemTemplate);
+    $("#dictItem").attr("id", this.newId());
+};
+
+/**
+ * 删除item
+ */
+DictInfoDlg.deleteItem = function (event) {
+    var obj = Feng.eventParseObject(event);
+    obj = obj.is('button') ? obj : obj.parent();
+    obj.parent().parent().remove();
+};
+
+/**
+ * 清除为空的item Dom
+ */
+DictInfoDlg.clearNullDom = function(){
+    $("[name='dictItem']").each(function(){
+        var num = $(this).find("[name='itemNum']").val();
+        var name = $(this).find("[name='itemName']").val();
+        if(num == '' || name == ''){
+            $(this).remove();
+        }
+    });
+};
+
+/**
+ * 收集添加字典的数据
+ */
+DictInfoDlg.collectData = function () {
+    this.clearNullDom();
+    var mutiString = "";
+    $("[name='dictItem']").each(function(){
+        var code = $(this).find("[name='itemCode']").val();
+        var name = $(this).find("[name='itemName']").val();
+        var num = $(this).find("[name='itemNum']").val();
+        mutiString = mutiString + (code + ":" + name + ":"+ num+";");
+    });
+    this.dictName = $("#dictName").val();
+    this.dictCode = $("#dictCode").val();
+    this.dictTips = $("#dictTips").val();
+    this.mutiString = mutiString;
+};
+
+
+/**
+ * 提交添加字典
+ */
+DictInfoDlg.addSubmit = function () {
+    this.collectData();
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/dict/add", function (data) {
+        Feng.success("添加成功!");
+        window.parent.Dict.table.refresh();
+        DictInfoDlg.close();
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set('dictName',this.dictName);
+    ajax.set('dictCode',this.dictCode);
+    ajax.set('dictTips',this.dictTips);
+    ajax.set('dictValues',this.mutiString);
+    ajax.start();
+};
+
+/**
+ * 提交修改
+ */
+DictInfoDlg.editSubmit = function () {
+    this.collectData();
+    var ajax = new $ax(Feng.ctxPath + "/dict/update", function (data) {
+        Feng.success("修改成功!");
+        window.parent.Dict.table.refresh();
+        DictInfoDlg.close();
+    }, function (data) {
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set('dictId',$("#dictId").val());
+    ajax.set('dictName',this.dictName);
+    ajax.set('dictCode',this.dictCode);
+    ajax.set('dictTips',this.dictTips);
+    ajax.set('dictValues',this.mutiString);
+    ajax.start();
+};
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/log.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/log.js
new file mode 100644
index 0000000..d58951f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/log.js
@@ -0,0 +1,97 @@
+/**
+ * 日志管理初始化
+ */
+var OptLog = {
+    id: "OptLogTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+OptLog.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '日志类型', field: 'logtype', align: 'center', valign: 'middle', sortable: true},
+        {title: '日志名称', field: 'logname', align: 'center', valign: 'middle', sortable: true},
+        // {title: '用户名称', field: 'userName', align: 'center', valign: 'middle', sortable: true, sortName: 'userid'},
+        {title: '用户名称', field: 'userName', align: 'center', valign: 'middle'},
+        {title: '类名', field: 'classname', align: 'center', valign: 'middle', sortable: true},
+        {title: '方法名', field: 'method', align: 'center', valign: 'middle', sortable: true},
+        {title: '时间', field: 'createtime', align: 'center', valign: 'middle', sortable: true},
+        {title: '具体消息', field: 'message', align: 'center', valign: 'middle', sortable: true}];
+};
+
+/**
+ * 检查是否选中
+ */
+OptLog.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if(selected.length == 0){
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    }else{
+        OptLog.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 查看日志详情
+ */
+OptLog.detail = function () {
+    if (this.check()) {
+        var ajax = new $ax(Feng.ctxPath + "/log/detail/" + this.seItem.id, function (data) {
+            Feng.infoDetail("日志详情", data.regularMessage);
+        }, function (data) {
+            Feng.error("获取详情失败!");
+        });
+        ajax.start();
+    }
+};
+
+
+/**
+ * 清空日志
+ */
+OptLog.delLog = function () {
+    Feng.confirm("是否清空所有日志?",function(){
+        var ajax = Feng.baseAjax("/log/delLog","清空日志");
+        ajax.start();
+        OptLog.table.refresh();
+    });
+}
+
+/**
+ * 查询表单提交参数对象
+ * @returns {{}}
+ */
+OptLog.formParams = function() {
+    var queryData = {};
+
+    queryData['logName'] = $("#logName").val();
+    queryData['beginTime'] = $("#beginTime").val();
+    queryData['endTime'] = $("#endTime").val();
+    queryData['logType'] = $("#logType").val();
+
+    return queryData;
+}
+
+/**
+ * 查询日志列表
+ */
+OptLog.search = function () {
+
+    OptLog.table.refresh({query: OptLog.formParams()});
+};
+
+$(function () {
+    var defaultColunms = OptLog.initColumn();
+    var table = new BSTable(OptLog.id, "/log/list", defaultColunms);
+    table.setPaginationType("server");
+    table.setQueryParams(OptLog.formParams());
+    OptLog.table = table.init();
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/login_log.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/login_log.js
new file mode 100644
index 0000000..1afeb35
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/log/login_log.js
@@ -0,0 +1,113 @@
+/**
+ * 日志管理初始化
+ */
+var LoginLog = {
+    id: "LoginLogTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+LoginLog.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '日志名称', field: 'logname', align: 'center', valign: 'middle', sortable: true},
+        {title: '用户名称', field: 'userName', align: 'center', valign: 'middle'},
+        {title: '时间', field: 'createtime', align: 'center', valign: 'middle', sortable: true},
+        {title: '具体消息', field: 'message', align: 'center', valign: 'middle', sortable: true},
+        {title: 'ip', field: 'ip', align: 'center', valign: 'middle', sortable: true}];
+};
+
+/**
+ * 检查是否选中
+ */
+LoginLog.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        LoginLog.seItem = selected[0];
+        return true;
+    }
+};
+
+
+/**
+ * 清空日志
+ */
+LoginLog.delLog = function () {
+    Feng.confirm("是否清空所有日志?", function () {
+        var ajax = Feng.baseAjax("/loginLog/delLoginLog", "清空日志");
+        ajax.start();
+        LoginLog.table.refresh();
+    });
+}
+
+/**
+ * 查询日志列表
+ */
+LoginLog.search = function () {
+    var queryData = {};
+
+    queryData['logName'] = $("#logName").val();
+    queryData['beginTime'] = $("#beginTime").val();
+    queryData['endTime'] = $("#endTime").val();
+
+    LoginLog.table.refresh({query: queryData});
+};
+
+$(function () {
+
+    init();
+
+    var defaultColunms = LoginLog.initColumn();
+    var table = new BSTable(LoginLog.id, "/loginLog/list", defaultColunms);
+    table.setPaginationType("server");
+    LoginLog.table = table.init();
+});
+
+function init() {
+
+    var BootstrapTable = $.fn.bootstrapTable.Constructor;
+    BootstrapTable.prototype.onSort = function (event) {
+        var $this = event.type === "keypress" ? $(event.currentTarget) : $(event.currentTarget).parent(),
+            $this_ = this.$header.find('th').eq($this.index()),
+            sortName = this.header.sortNames[$this.index()];
+
+        this.$header.add(this.$header_).find('span.order').remove();
+
+        if (this.options.sortName === $this.data('field')) {
+            this.options.sortOrder = this.options.sortOrder === 'asc' ? 'desc' : 'asc';
+        } else {
+            this.options.sortName = sortName || $this.data('field');
+            this.options.sortOrder = $this.data('order') === 'asc' ? 'desc' : 'asc';
+        }
+        this.trigger('sort', this.options.sortName, this.options.sortOrder);
+
+        $this.add($this_).data('order', this.options.sortOrder);
+
+        // Assign the correct sortable arrow
+        this.getCaret();
+
+        if (this.options.sidePagination === 'server') {
+            this.initServer(this.options.silentSort);
+            return;
+        }
+
+        this.initSort();
+        this.initBody();
+    };
+    BootstrapTable.prototype.getCaret = function () {
+        var that = this;
+
+        $.each(this.$header.find('th'), function (i, th) {
+            var sortName = that.header.sortNames[i];
+            $(th).find('.sortable').removeClass('desc asc').addClass((sortName || $(th).data('field')) === that.options.sortName ? that.options.sortOrder : 'both');
+        });
+    };
+}
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu.js
new file mode 100644
index 0000000..79e65a1
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu.js
@@ -0,0 +1,119 @@
+/**
+ * 角色管理的单例
+ */
+var Menu = {
+    id: "menuTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Menu.initColumn = function () {
+    var columns = [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '菜单名称', field: 'name', align: 'center', valign: 'middle', sortable: true},
+        {title: '菜单编号', field: 'code', align: 'center', valign: 'middle', sortable: true},
+        {title: '菜单父编号', field: 'pcode', align: 'center', valign: 'middle', sortable: true},
+        {title: '请求地址', field: 'url', align: 'center', valign: 'middle', sortable: true},
+        {title: '排序', field: 'num', align: 'center', valign: 'middle', sortable: true},
+        {title: '层级', field: 'levels', align: 'center', valign: 'middle', sortable: true},
+        {title: '是否是菜单', field: 'isMenuName', align: 'center', valign: 'middle', sortable: true},
+        {title: '状态', field: 'statusName', align: 'center', valign: 'middle', sortable: true}]
+    return columns;
+};
+
+
+/**
+ * 检查是否选中
+ */
+Menu.check = function () {
+    var selected = $('#' + this.id).bootstrapTreeTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        Menu.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加菜单
+ */
+Menu.openAddMenu = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加菜单',
+        area: ['830px', '450px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/menu/menu_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 点击修改
+ */
+Menu.openChangeMenu = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改菜单',
+            area: ['800px', '450px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/menu/menu_edit/' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 删除
+ */
+Menu.delMenu = function () {
+    if (this.check()) {
+
+        var operation = function () {
+            var ajax = new $ax(Feng.ctxPath + "/menu/remove", function (data) {
+                Feng.success("删除成功!");
+                Menu.table.refresh();
+            }, function (data) {
+                Feng.error("删除失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("menuId", Menu.seItem.id);
+            ajax.start();
+        };
+
+        Feng.confirm("是否刪除该菜单?", operation);
+    }
+};
+
+/**
+ * 搜索
+ */
+Menu.search = function () {
+    var queryData = {};
+
+    queryData['menuName'] = $("#menuName").val();
+    queryData['level'] = $("#level").val();
+
+    Menu.table.refresh({query: queryData});
+}
+
+$(function () {
+    var defaultColunms = Menu.initColumn();
+    var table = new BSTreeTable(Menu.id, "/menu/list", defaultColunms);
+    table.setExpandColumn(2);
+    table.setIdField("id");
+    table.setCodeField("code");
+    table.setParentCodeField("pcode");
+    table.setExpandAll(true);
+    table.init();
+    Menu.table = table;
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu_info.js
new file mode 100644
index 0000000..8fca601
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/menu/menu_info.js
@@ -0,0 +1,175 @@
+/**
+ * 菜单详情对话框
+ */
+var MenuInfoDlg = {
+    menuInfoData: {},
+    ztreeInstance: null,
+    validateFields: {
+        name: {
+            validators: {
+                notEmpty: {
+                    message: '菜单名称不能为空'
+                }
+            }
+        },
+        code: {
+            validators: {
+                notEmpty: {
+                    message: '菜单编号不能为空'
+                }
+            }
+        },
+        pcodeName: {
+            validators: {
+                notEmpty: {
+                    message: '父菜单不能为空'
+                }
+            }
+        },
+        url: {
+            validators: {
+                notEmpty: {
+                    message: '请求地址不能为空'
+                }
+            }
+        },
+        num: {
+            validators: {
+                notEmpty: {
+                    message: '序号不能为空'
+                }
+            }
+        }
+    }
+};
+
+/**
+ * 清除数据
+ */
+MenuInfoDlg.clearData = function () {
+    this.menuInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+MenuInfoDlg.set = function (key, value) {
+    this.menuInfoData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+    return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+MenuInfoDlg.get = function (key) {
+    return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+MenuInfoDlg.close = function () {
+    parent.layer.close(window.parent.Menu.layerIndex);
+}
+
+/**
+ * 收集数据
+ */
+MenuInfoDlg.collectData = function () {
+    this.set('id').set('name').set('code').set('pcode').set('url').set('num').set('levels').set('icon').set("ismenu");
+}
+
+/**
+ * 验证数据是否为空
+ */
+MenuInfoDlg.validate = function () {
+    $('#menuInfoForm').data("bootstrapValidator").resetForm();
+    $('#menuInfoForm').bootstrapValidator('validate');
+    return $("#menuInfoForm").data('bootstrapValidator').isValid();
+}
+
+/**
+ * 提交添加用户
+ */
+MenuInfoDlg.addSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/menu/add", function (data) {
+        Feng.success("添加成功!");
+        window.parent.Menu.table.refresh();
+        MenuInfoDlg.close();
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.menuInfoData);
+    ajax.start();
+}
+
+/**
+ * 提交修改
+ */
+MenuInfoDlg.editSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/menu/edit", function (data) {
+        Feng.success("修改成功!");
+        window.parent.Menu.table.refresh();
+        MenuInfoDlg.close();
+    }, function (data) {
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.menuInfoData);
+    ajax.start();
+}
+
+/**
+ * 点击父级编号input框时
+ */
+MenuInfoDlg.onClickDept = function (e, treeId, treeNode) {
+    $("#pcodeName").attr("value", MenuInfoDlg.ztreeInstance.getSelectedVal());
+    $("#pcode").attr("value", treeNode.id);
+};
+
+
+/**
+ * 显示父级菜单选择的树
+ */
+MenuInfoDlg.showMenuSelectTree = function () {
+    Feng.showInputTree("pcodeName", "pcodeTreeDiv", 15, 34);
+};
+
+$(function () {
+    Feng.initValidator("menuInfoForm", MenuInfoDlg.validateFields);
+
+    var ztree = new $ZTree("pcodeTree", "/menu/selectMenuTreeList");
+    ztree.bindOnClick(MenuInfoDlg.onClickDept);
+    ztree.init();
+    MenuInfoDlg.ztreeInstance = ztree;
+
+    //初始化是否是菜单
+    if($("#ismenuValue").val() == undefined){
+        $("#ismenu").val(0);
+    }else{
+        $("#ismenu").val($("#ismenuValue").val());
+    }
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice.js
new file mode 100644
index 0000000..fc5f730
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice.js
@@ -0,0 +1,106 @@
+/**
+ * 通知管理初始化
+ */
+var Notice = {
+    id: "NoticeTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Notice.initColumn = function () {
+    return [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '标题', field: 'title', align: 'center', valign: 'middle', sortable: true},
+        {title: '内容', field: 'content', align: 'center', valign: 'middle', sortable: true},
+        {title: '发布者', field: 'createrName', align: 'center', valign: 'middle', sortable: true},
+        {title: '创建时间', field: 'createtime', align: 'center', valign: 'middle', sortable: true}
+    ];
+};
+
+/**
+ * 检查是否选中
+ */
+Notice.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        Notice.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加通知
+ */
+Notice.openAddNotice = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加通知',
+        area: ['800px', '500px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/notice/notice_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 打开查看通知详情
+ */
+Notice.openNoticeDetail = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '通知详情',
+            area: ['800px', '420px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/notice/notice_update/' + Notice.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 删除通知
+ */
+Notice.delete = function () {
+    if (this.check()) {
+
+        var operation = function(){
+            var ajax = new $ax(Feng.ctxPath + "/notice/delete", function (data) {
+                Feng.success("删除成功!");
+                Notice.table.refresh();
+            }, function (data) {
+                Feng.error("删除失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("noticeId", Notice.seItem.id);
+            ajax.start();
+        };
+
+        Feng.confirm("是否删除通知 " + Notice.seItem.title + "?", operation);
+    }
+};
+
+/**
+ * 查询通知列表
+ */
+Notice.search = function () {
+    var queryData = {};
+    queryData['condition'] = $("#condition").val();
+    Notice.table.refresh({query: queryData});
+};
+
+$(function () {
+    var defaultColunms = Notice.initColumn();
+    var table = new BSTable(Notice.id, "/notice/list", defaultColunms);
+    table.setPaginationType("client");
+    Notice.table = table.init();
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice_info.js
new file mode 100644
index 0000000..a376d48
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/notice/notice_info.js
@@ -0,0 +1,127 @@
+/**
+ * 初始化通知详情对话框
+ */
+var NoticeInfoDlg = {
+    noticeInfoData: {},
+    editor: null,
+    validateFields: {
+        title: {
+            validators: {
+                notEmpty: {
+                    message: '标题不能为空'
+                }
+            }
+        }
+    }
+};
+
+/**
+ * 清除数据
+ */
+NoticeInfoDlg.clearData = function () {
+    this.noticeInfoData = {};
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+NoticeInfoDlg.set = function (key, value) {
+    this.noticeInfoData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+    return this;
+}
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+NoticeInfoDlg.get = function (key) {
+    return $("#" + key).val();
+}
+
+/**
+ * 关闭此对话框
+ */
+NoticeInfoDlg.close = function () {
+    parent.layer.close(window.parent.Notice.layerIndex);
+}
+
+/**
+ * 收集数据
+ */
+NoticeInfoDlg.collectData = function () {
+    this.noticeInfoData['content'] = NoticeInfoDlg.editor.txt.html();
+    this.set('id').set('title');
+}
+
+/**
+ * 验证数据是否为空
+ */
+NoticeInfoDlg.validate = function () {
+    $('#noticeInfoForm').data("bootstrapValidator").resetForm();
+    $('#noticeInfoForm').bootstrapValidator('validate');
+    return $("#noticeInfoForm").data('bootstrapValidator').isValid();
+};
+
+/**
+ * 提交添加
+ */
+NoticeInfoDlg.addSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/notice/add", function (data) {
+        Feng.success("添加成功!");
+        window.parent.Notice.table.refresh();
+        NoticeInfoDlg.close();
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.noticeInfoData);
+    ajax.start();
+}
+
+/**
+ * 提交修改
+ */
+NoticeInfoDlg.editSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/notice/update", function (data) {
+        Feng.success("修改成功!");
+        window.parent.Notice.table.refresh();
+        NoticeInfoDlg.close();
+    }, function (data) {
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.noticeInfoData);
+    ajax.start();
+}
+
+$(function () {
+    Feng.initValidator("noticeInfoForm", NoticeInfoDlg.validateFields);
+
+    //初始化编辑器
+    var E = window.wangEditor;
+    var editor = new E('#editor');
+    editor.create();
+    editor.txt.html($("#contentVal").val());
+    NoticeInfoDlg.editor = editor;
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role.js
new file mode 100644
index 0000000..53788f2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role.js
@@ -0,0 +1,125 @@
+/**
+ * 角色管理的单例
+ */
+var Role = {
+    id: "roleTable",	//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1
+};
+
+/**
+ * 初始化表格的列
+ */
+Role.initColumn = function () {
+    var columns = [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '名称', field: 'name', align: 'center', valign: 'middle', sortable: true},
+        {title: '上级角色', field: 'pName', align: 'center', valign: 'middle', sortable: true},
+        {title: '所在部门', field: 'deptName', align: 'center', valign: 'middle', sortable: true},
+        {title: '别名', field: 'tips', align: 'center', valign: 'middle', sortable: true}]
+    return columns;
+};
+
+
+/**
+ * 检查是否选中
+ */
+Role.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        Role.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加管理员
+ */
+Role.openAddRole = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加角色',
+        area: ['800px', '450px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/role/role_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 点击修改按钮时
+ */
+Role.openChangeRole = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '修改角色',
+            area: ['800px', '450px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/role/role_edit/' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 删除角色
+ */
+Role.delRole = function () {
+    if (this.check()) {
+
+        var operation = function(){
+            var ajax = new $ax(Feng.ctxPath + "/role/remove", function () {
+                Feng.success("删除成功!");
+                Role.table.refresh();
+            }, function (data) {
+                Feng.error("删除失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("roleId", Role.seItem.id);
+            ajax.start();
+        };
+
+        Feng.confirm("是否删除角色 " + Role.seItem.name + "?",operation);
+    }
+};
+
+/**
+ * 权限配置
+ */
+Role.assign = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '权限配置',
+            area: ['300px', '450px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/role/role_assign/' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 搜索角色
+ */
+Role.search = function () {
+    var queryData = {};
+    queryData['roleName'] = $("#roleName").val();
+    Role.table.refresh({query: queryData});
+}
+
+$(function () {
+    var defaultColunms = Role.initColumn();
+    var table = new BSTable(Role.id, "/role/list", defaultColunms);
+    table.setPaginationType("client");
+    table.init();
+    Role.table = table;
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role_info.js
new file mode 100644
index 0000000..7041b3f
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/role/role_info.js
@@ -0,0 +1,194 @@
+/**
+ * 角色详情对话框(可用于添加和修改对话框)
+ */
+var RolInfoDlg = {
+    roleInfoData: {},
+    deptZtree: null,
+    pNameZtree: null,
+    validateFields: {
+        name: {
+            validators: {
+                notEmpty: {
+                    message: '用户名不能为空'
+                }
+            }
+        },
+        tips: {
+            validators: {
+                notEmpty: {
+                    message: '别名不能为空'
+                }
+            }
+        },
+        pName: {
+            validators: {
+                notEmpty: {
+                    message: '父级名称不能为空'
+                }
+            }
+        }
+    }
+};
+
+/**
+ * 清除数据
+ */
+RolInfoDlg.clearData = function () {
+    this.roleInfoData = {};
+};
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+RolInfoDlg.set = function (key, value) {
+    this.roleInfoData[key] = (typeof value == "undefined") ? $("#" + key).val() : value;
+    return this;
+};
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+RolInfoDlg.get = function (key) {
+    return $("#" + key).val();
+};
+
+/**
+ * 关闭此对话框
+ */
+RolInfoDlg.close = function () {
+    parent.layer.close(window.parent.Role.layerIndex);
+};
+
+/**
+ * 点击部门input框时
+ *
+ * @param e
+ * @param treeId
+ * @param treeNode
+ * @returns
+ */
+RolInfoDlg.onClickDept = function (e, treeId, treeNode) {
+    $("#deptName").attr("value", RolInfoDlg.deptZtree.getSelectedVal());
+    $("#deptid").attr("value", treeNode.id);
+};
+RolInfoDlg.onDblClickDept = function (e, treeId, treeNode) {
+    $("#deptName").attr("value", RolInfoDlg.deptZtree.getSelectedVal());
+    $("#deptid").attr("value", treeNode.id);
+    $("#deptContent").fadeOut("fast");
+};
+
+/**
+ * 点击父级菜单input框时
+ *
+ * @param e
+ * @param treeId
+ * @param treeNode
+ * @returns
+ */
+RolInfoDlg.onClickPName = function (e, treeId, treeNode) {
+    $("#pName").attr("value", RolInfoDlg.pNameZtree.getSelectedVal());
+    $("#pid").attr("value", treeNode.id);
+};
+
+/**
+ * 显示部门选择的树
+ *
+ * @returns
+ */
+RolInfoDlg.showDeptSelectTree = function () {
+    Feng.showInputTree("deptName", "deptContent");
+};
+
+/**
+ * 显示父级菜单的树
+ *
+ * @returns
+ */
+RolInfoDlg.showPNameSelectTree = function () {
+    Feng.showInputTree("pName", "pNameContent");
+};
+
+/**
+ * 收集数据
+ */
+RolInfoDlg.collectData = function () {
+    this.set('id').set('name').set('pid').set('deptid').set('tips').set('num');
+};
+
+/**
+ * 验证数据是否为空
+ */
+RolInfoDlg.validate = function () {
+    $('#roleInfoForm').data("bootstrapValidator").resetForm();
+    $('#roleInfoForm').bootstrapValidator('validate');
+    return $("#roleInfoForm").data('bootstrapValidator').isValid();
+};
+
+/**
+ * 提交添加用户
+ */
+RolInfoDlg.addSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/role/add", function (data) {
+        Feng.success("添加成功!");
+        window.parent.Role.table.refresh();
+        RolInfoDlg.close();
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.roleInfoData);
+    ajax.start();
+};
+
+/**
+ * 提交修改
+ */
+RolInfoDlg.editSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/role/edit", function (data) {
+        Feng.success("修改成功!");
+        window.parent.Role.table.refresh();
+        RolInfoDlg.close();
+    }, function (data) {
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.roleInfoData);
+    ajax.start();
+};
+
+$(function () {
+    Feng.initValidator("roleInfoForm", RolInfoDlg.validateFields);
+
+    var deptTree = new $ZTree("deptTree", "/dept/tree");
+    deptTree.bindOnClick(RolInfoDlg.onClickDept);
+    deptTree.bindOnDblClick(RolInfoDlg.onDblClickDept)
+    deptTree.init();
+    RolInfoDlg.deptZtree = deptTree;
+
+    var pNameTree = new $ZTree("pNameTree", "/role/roleTreeList");
+    pNameTree.bindOnClick(RolInfoDlg.onClickPName);
+    pNameTree.init();
+    RolInfoDlg.pNameZtree = pNameTree;
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user.js
new file mode 100644
index 0000000..63f3ca0
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user.js
@@ -0,0 +1,207 @@
+/**
+ * 系统管理--用户管理的单例对象
+ */
+var MgrUser = {
+    id: "managerTable",//表格id
+    seItem: null,		//选中的条目
+    table: null,
+    layerIndex: -1,
+    deptid:0
+};
+
+/**
+ * 初始化表格的列
+ */
+MgrUser.initColumn = function () {
+    var columns = [
+        {field: 'selectItem', radio: true},
+        {title: 'id', field: 'id', visible: false, align: 'center', valign: 'middle'},
+        {title: '账号', field: 'account', align: 'center', valign: 'middle', sortable: true},
+        {title: '姓名', field: 'name', align: 'center', valign: 'middle', sortable: true},
+        {title: '性别', field: 'sexName', align: 'center', valign: 'middle', sortable: true},
+        {title: '角色', field: 'roleName', align: 'center', valign: 'middle', sortable: true},
+        {title: '部门', field: 'deptName', align: 'center', valign: 'middle', sortable: true},
+        {title: '邮箱', field: 'email', align: 'center', valign: 'middle', sortable: true},
+        {title: '电话', field: 'phone', align: 'center', valign: 'middle', sortable: true},
+        {title: '创建时间', field: 'createtime', align: 'center', valign: 'middle', sortable: true},
+        {title: '状态', field: 'statusName', align: 'center', valign: 'middle', sortable: true}];
+    return columns;
+};
+
+/**
+ * 检查是否选中
+ */
+MgrUser.check = function () {
+    var selected = $('#' + this.id).bootstrapTable('getSelections');
+    if (selected.length == 0) {
+        Feng.info("请先选中表格中的某一记录!");
+        return false;
+    } else {
+        MgrUser.seItem = selected[0];
+        return true;
+    }
+};
+
+/**
+ * 点击添加管理员
+ */
+MgrUser.openAddMgr = function () {
+    var index = layer.open({
+        type: 2,
+        title: '添加管理员',
+        area: ['800px', '560px'], //宽高
+        fix: false, //不固定
+        maxmin: true,
+        content: Feng.ctxPath + '/mgr/user_add'
+    });
+    this.layerIndex = index;
+};
+
+/**
+ * 点击修改按钮时
+ * @param userId 管理员id
+ */
+MgrUser.openChangeUser = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '编辑管理员',
+            area: ['800px', '450px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/mgr/user_edit/' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 点击角色分配
+ * @param
+ */
+MgrUser.roleAssign = function () {
+    if (this.check()) {
+        var index = layer.open({
+            type: 2,
+            title: '角色分配',
+            area: ['300px', '400px'], //宽高
+            fix: false, //不固定
+            maxmin: true,
+            content: Feng.ctxPath + '/mgr/role_assign/' + this.seItem.id
+        });
+        this.layerIndex = index;
+    }
+};
+
+/**
+ * 删除用户
+ */
+MgrUser.delMgrUser = function () {
+    if (this.check()) {
+
+        var operation = function(){
+            var userId = MgrUser.seItem.id;
+            var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function () {
+                Feng.success("删除成功!");
+                MgrUser.table.refresh();
+            }, function (data) {
+                Feng.error("删除失败!" + data.responseJSON.message + "!");
+            });
+            ajax.set("userId", userId);
+            ajax.start();
+        };
+
+        Feng.confirm("是否删除用户" + MgrUser.seItem.account + "?",operation);
+    }
+};
+
+/**
+ * 冻结用户账户
+ * @param userId
+ */
+MgrUser.freezeAccount = function () {
+    if (this.check()) {
+        var userId = this.seItem.id;
+        var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
+            Feng.success("冻结成功!");
+            MgrUser.table.refresh();
+        }, function (data) {
+            Feng.error("冻结失败!" + data.responseJSON.message + "!");
+        });
+        ajax.set("userId", userId);
+        ajax.start();
+    }
+};
+
+/**
+ * 解除冻结用户账户
+ * @param userId
+ */
+MgrUser.unfreeze = function () {
+    if (this.check()) {
+        var userId = this.seItem.id;
+        var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) {
+            Feng.success("解除冻结成功!");
+            MgrUser.table.refresh();
+        }, function (data) {
+            Feng.error("解除冻结失败!");
+        });
+        ajax.set("userId", userId);
+        ajax.start();
+    }
+}
+
+/**
+ * 重置密码
+ */
+MgrUser.resetPwd = function () {
+    if (this.check()) {
+        var userId = this.seItem.id;
+        parent.layer.confirm('是否重置密码为111111?', {
+            btn: ['确定', '取消'],
+            shade: false //不显示遮罩
+        }, function () {
+            var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) {
+                Feng.success("重置密码成功!");
+            }, function (data) {
+                Feng.error("重置密码失败!");
+            });
+            ajax.set("userId", userId);
+            ajax.start();
+        });
+    }
+};
+
+MgrUser.resetSearch = function () {
+    $("#name").val("");
+    $("#beginTime").val("");
+    $("#endTime").val("");
+
+    MgrUser.search();
+}
+
+MgrUser.search = function () {
+    var queryData = {};
+
+    queryData['deptid'] = MgrUser.deptid;
+    queryData['name'] = $("#name").val();
+    queryData['beginTime'] = $("#beginTime").val();
+    queryData['endTime'] = $("#endTime").val();
+
+    MgrUser.table.refresh({query: queryData});
+}
+
+MgrUser.onClickDept = function (e, treeId, treeNode) {
+    MgrUser.deptid = treeNode.id;
+    MgrUser.search();
+};
+
+$(function () {
+    var defaultColunms = MgrUser.initColumn();
+    var table = new BSTable("managerTable", "/mgr/list", defaultColunms);
+    table.setPaginationType("client");
+    MgrUser.table = table.init();
+    var ztree = new $ZTree("deptTree", "/dept/tree");
+    ztree.bindOnClick(MgrUser.onClickDept);
+    ztree.init();
+});
diff --git a/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user_info.js b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user_info.js
new file mode 100644
index 0000000..673c755
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/main/webapp/static/modular/system/user/user_info.js
@@ -0,0 +1,290 @@
+/**
+ * 用户详情对话框(可用于添加和修改对话框)
+ */
+var UserInfoDlg = {
+    userInfoData: {},
+    validateFields: {
+        account: {
+            validators: {
+                notEmpty: {
+                    message: '账户不能为空'
+                }
+            }
+        },
+        name: {
+            validators: {
+                notEmpty: {
+                    message: '姓名不能为空'
+                }
+            }
+        },
+        citySel: {
+            validators: {
+                notEmpty: {
+                    message: '部门不能为空'
+                }
+            }
+        },
+        password: {
+            validators: {
+                notEmpty: {
+                    message: '密码不能为空'
+                },
+                identical: {
+                    field: 'rePassword',
+                    message: '两次密码不一致'
+                },
+            }
+        },
+        rePassword: {
+            validators: {
+                notEmpty: {
+                    message: '密码不能为空'
+                },
+                identical: {
+                    field: 'password',
+                    message: '两次密码不一致'
+                },
+            }
+        }
+    }
+};
+
+/**
+ * 清除数据
+ */
+UserInfoDlg.clearData = function () {
+    this.userInfoData = {};
+};
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+UserInfoDlg.set = function (key, value) {
+    if(typeof value == "undefined"){
+        if(typeof $("#" + key).val() =="undefined"){
+            var str="";
+            var ids="";
+            $("input[name='"+key+"']:checkbox").each(function(){
+                if(true == $(this).is(':checked')){
+                    str+=$(this).val()+",";
+                }
+            });
+            if(str){
+                if(str.substr(str.length-1)== ','){
+                    ids = str.substr(0,str.length-1);
+                }
+            }else{
+                $("input[name='"+key+"']:radio").each(function(){
+                    if(true == $(this).is(':checked')){
+                        ids=$(this).val()
+                    }
+                });
+            }
+            this.userInfoData[key] = ids;
+        }else{
+            this.userInfoData[key]= $("#" + key).val();
+        }
+    }
+
+    return this;
+};
+
+/**
+ * 设置对话框中的数据
+ *
+ * @param key 数据的名称
+ * @param val 数据的具体值
+ */
+UserInfoDlg.get = function (key) {
+    return $("#" + key).val();
+};
+
+/**
+ * 关闭此对话框
+ */
+UserInfoDlg.close = function () {
+    parent.layer.close(window.parent.MgrUser.layerIndex);
+};
+
+/**
+ * 点击部门input框时
+ *
+ * @param e
+ * @param treeId
+ * @param treeNode
+ * @returns
+ */
+UserInfoDlg.onClickDept = function (e, treeId, treeNode) {
+    $("#citySel").attr("value", instance.getSelectedVal());
+    $("#deptid").attr("value", treeNode.id);
+};
+
+/**
+ * 显示部门选择的树
+ *
+ * @returns
+ */
+UserInfoDlg.showDeptSelectTree = function () {
+    var cityObj = $("#citySel");
+    var cityOffset = $("#citySel").offset();
+    $("#menuContent").css({
+        left: cityOffset.left + "px",
+        top: cityOffset.top + cityObj.outerHeight() + "px"
+    }).slideDown("fast");
+
+    $("body").bind("mousedown", onBodyDown);
+};
+
+/**
+ * 显示用户详情部门选择的树
+ *
+ * @returns
+ */
+UserInfoDlg.showInfoDeptSelectTree = function () {
+    var cityObj = $("#citySel");
+    var cityPosition = $("#citySel").position();
+    $("#menuContent").css({
+        left: cityPosition.left + "px",
+        top: cityPosition.top + cityObj.outerHeight() + "px"
+    }).slideDown("fast");
+
+    $("body").bind("mousedown", onBodyDown);
+};
+
+/**
+ * 隐藏部门选择的树
+ */
+UserInfoDlg.hideDeptSelectTree = function () {
+    $("#menuContent").fadeOut("fast");
+    $("body").unbind("mousedown", onBodyDown);// mousedown当鼠标按下就可以触发,不用弹起
+};
+
+/**
+ * 收集数据
+ */
+UserInfoDlg.collectData = function () {
+    this.set('id').set('account').set('sex').set('password').set('avatar')
+        .set('email').set('name').set('birthday').set('rePassword').set('deptid').set('phone');
+};
+
+/**
+ * 验证两个密码是否一致
+ */
+UserInfoDlg.validatePwd = function () {
+    var password = this.get("password");
+    var rePassword = this.get("rePassword");
+    if (password == rePassword) {
+        return true;
+    } else {
+        return false;
+    }
+};
+
+/**
+ * 验证数据是否为空
+ */
+UserInfoDlg.validate = function () {
+    $('#userInfoForm').data("bootstrapValidator").resetForm();
+    $('#userInfoForm').bootstrapValidator('validate');
+    return $("#userInfoForm").data('bootstrapValidator').isValid();
+};
+
+/**
+ * 提交添加用户
+ */
+UserInfoDlg.addSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    if (!this.validatePwd()) {
+        Feng.error("两次密码输入不一致");
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/mgr/add", function (data) {
+        Feng.success("添加成功!");
+        window.parent.MgrUser.table.refresh();
+        UserInfoDlg.close();
+    }, function (data) {
+        Feng.error("添加失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.userInfoData);
+    ajax.start();
+};
+
+/**
+ * 提交修改
+ */
+UserInfoDlg.editSubmit = function () {
+
+    this.clearData();
+    this.collectData();
+
+    if (!this.validate()) {
+        return;
+    }
+
+    //提交信息
+    var ajax = new $ax(Feng.ctxPath + "/mgr/edit", function (data) {
+        Feng.success("修改成功!");
+        if (window.parent.MgrUser != undefined) {
+            window.parent.MgrUser.table.refresh();
+            UserInfoDlg.close();
+        }
+    }, function (data) {
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set(this.userInfoData);
+    ajax.start();
+};
+
+/**
+ * 修改密码
+ */
+UserInfoDlg.chPwd = function () {
+    var ajax = new $ax(Feng.ctxPath + "/mgr/changePwd", function (data) {
+        Feng.success("修改成功!");
+    }, function (data) {
+        Feng.error("修改失败!" + data.responseJSON.message + "!");
+    });
+    ajax.set("oldPwd");
+    ajax.set("newPwd");
+    ajax.set("rePwd");
+    ajax.start();
+
+};
+
+function onBodyDown(event) {
+    if (!(event.target.id == "menuBtn" || event.target.id == "menuContent" || $(
+            event.target).parents("#menuContent").length > 0)) {
+        UserInfoDlg.hideDeptSelectTree();
+    }
+}
+
+$(function () {
+    Feng.initValidator("userInfoForm", UserInfoDlg.validateFields);
+
+    //初始化性别选项
+    $("#sex").val($("#sexValue").val());
+
+    var ztree = new $ZTree("treeDemo", "/dept/tree");
+    ztree.bindOnClick(UserInfoDlg.onClickDept);
+    ztree.init();
+    instance = ztree;
+
+    // 初始化头像上传
+    var avatarUp = new $WebUpload("avatar");
+    avatarUp.setUploadBarId("progressBar");
+    avatarUp.init();
+
+});
diff --git a/UserOKTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/UserOKTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
new file mode 100644
index 0000000..81e89c2
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -0,0 +1,46 @@
+//package com.stylefeng.guns;
+//
+//import com.alibaba.fastjson.JSON;
+//import com.stylefeng.guns.core.util.ToolUtil;
+//import com.stylefeng.guns.modular.system.service.IUserInfoService;
+//import com.stylefeng.guns.modular.system.util.PayMoneyUtil;
+//import com.stylefeng.guns.modular.system.util.ResultUtil;
+//import org.junit.Test;
+//import org.junit.runner.RunWith;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.test.context.SpringBootTest;
+//import org.springframework.test.context.junit4.SpringRunner;
+//
+//import java.text.SimpleDateFormat;
+//import java.util.Date;
+//
+//@RunWith(SpringRunner.class)
+//@SpringBootTest
+//public class GunsApplicationTest {
+//
+//    Logger logger = LoggerFactory.getLogger(GunsApplicationTest.class);
+//
+//    @Autowired
+//    private PayMoneyUtil payMoneyUtil;
+//
+//    @Autowired
+//    private IUserInfoService userInfoService;
+//
+//
+//    @Test
+//    public void test(){
+//        try {
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+//            String out_trade_no = sdf.format(new Date()) + 1 + "123";
+//
+//            String appletsOpenId = "";
+//            String tradeType = "APP";
+//            ResultUtil resultUtil = userInfoService.depositBalance(1, 0.01, 183, 1);
+//            logger.error(JSON.toJSONString(resultUtil));
+//        }catch (Exception e){
+//            e.printStackTrace();
+//        }
+//    }
+//}
diff --git a/UserOKTravel/guns-admin/src/test/sql/test.sql b/UserOKTravel/guns-admin/src/test/sql/test.sql
new file mode 100644
index 0000000..04b15ca
--- /dev/null
+++ b/UserOKTravel/guns-admin/src/test/sql/test.sql
@@ -0,0 +1,35 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : localhost
+ Source Server Type    : MySQL
+ Source Server Version : 50719
+ Source Host           : localhost:3306
+ Source Schema         : guns
+
+ Target Server Type    : MySQL
+ Target Server Version : 50719
+ File Encoding         : 65001
+
+ Date: 10/07/2018 14:09:19
+*/
+
+DROP DATABASE IF EXISTS guns_test;
+CREATE DATABASE IF NOT EXISTS guns_test DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
+
+use guns_test;
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for test
+-- ----------------------------
+DROP TABLE IF EXISTS `test`;
+CREATE TABLE `test` (
+  `aaa` int(11) NOT NULL AUTO_INCREMENT,
+  `bbb` varchar(255) DEFAULT NULL,
+  PRIMARY KEY (`aaa`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
+
+SET FOREIGN_KEY_CHECKS = 1;

--
Gitblit v1.7.1